diff --git a/DEPS b/DEPS
index 22af22e..f40cd90 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': 'f78a404f2af4e2c09f7d227a05795b49f80ff00e',
+  'v8_revision': 'a1504a2304851fd867427fcdb033c42623b33bdc',
   # 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/android_webview/browser/aw_permission_manager.cc b/android_webview/browser/aw_permission_manager.cc
index f7e643a2..b86f1a43 100644
--- a/android_webview/browser/aw_permission_manager.cc
+++ b/android_webview/browser/aw_permission_manager.cc
@@ -15,7 +15,7 @@
 #include "content/public/browser/render_process_host.h"
 #include "content/public/browser/web_contents.h"
 
-using content::mojom::PermissionStatus;
+using blink::mojom::PermissionStatus;
 using content::PermissionType;
 
 namespace android_webview {
@@ -28,8 +28,8 @@
                  const GURL& requesting_origin,
                  const GURL& embedding_origin,
                  PermissionStatus status) {
-    DCHECK(status == content::mojom::PermissionStatus::GRANTED ||
-           status == content::mojom::PermissionStatus::DENIED);
+    DCHECK(status == PermissionStatus::GRANTED ||
+           status == PermissionStatus::DENIED);
 
     // TODO(ddorwin): We should be denying empty origins at a higher level.
     if (requesting_origin.is_empty() || embedding_origin.is_empty()) {
@@ -66,7 +66,7 @@
                              const GURL& embedding_origin) const {
     // TODO(ddorwin): We should be denying empty origins at a higher level.
     if (requesting_origin.is_empty() || embedding_origin.is_empty()) {
-      return content::mojom::PermissionStatus::ASK;
+      return PermissionStatus::ASK;
     }
 
     DCHECK(requesting_origin.is_valid())
@@ -76,14 +76,14 @@
 
     if (permission != PermissionType::PROTECTED_MEDIA_IDENTIFIER) {
       NOTREACHED() << "Results are only cached for PROTECTED_MEDIA_IDENTIFIER";
-      return content::mojom::PermissionStatus::ASK;
+      return PermissionStatus::ASK;
     }
 
     std::string key = GetCacheKey(requesting_origin, embedding_origin);
     StatusMap::const_iterator it = pmi_result_cache_.find(key);
     if (it == pmi_result_cache_.end()) {
       DLOG(WARNING) << "GetResult() called for uncached origins: " << key;
-      return content::mojom::PermissionStatus::ASK;
+      return PermissionStatus::ASK;
     }
 
     DCHECK(!key.empty());
@@ -178,7 +178,7 @@
   if (!delegate) {
     DVLOG(0) << "Dropping permission request for "
              << static_cast<int>(permission);
-    callback.Run(content::mojom::PermissionStatus::DENIED);
+    callback.Run(PermissionStatus::DENIED);
     return kNoPendingOperation;
   }
 
@@ -245,14 +245,14 @@
     case PermissionType::BACKGROUND_SYNC:
       NOTIMPLEMENTED() << "RequestPermission is not implemented for "
                        << static_cast<int>(permission);
-      callback.Run(content::mojom::PermissionStatus::DENIED);
+      callback.Run(PermissionStatus::DENIED);
       break;
     case PermissionType::MIDI:
-      callback.Run(content::mojom::PermissionStatus::GRANTED);
+      callback.Run(PermissionStatus::GRANTED);
       break;
     case PermissionType::NUM:
       NOTREACHED() << "PermissionType::NUM was not expected here.";
-      callback.Run(content::mojom::PermissionStatus::DENIED);
+      callback.Run(PermissionStatus::DENIED);
       break;
   }
   return request_id;
@@ -286,8 +286,8 @@
     int request_id,
     const base::Callback<void(PermissionStatus)>& callback,
     bool allowed) {
-  PermissionStatus status = allowed ? content::mojom::PermissionStatus::GRANTED
-                                    : content::mojom::PermissionStatus::DENIED;
+  PermissionStatus status =
+      allowed ? PermissionStatus::GRANTED : PermissionStatus::DENIED;
   if (manager.get()) {
     PendingRequest* pending_request =
         manager->pending_requests_.Lookup(request_id);
@@ -391,10 +391,10 @@
     return result_cache_->GetResult(permission, requesting_origin,
                                     embedding_origin);
   } else if (permission == PermissionType::MIDI) {
-    return content::mojom::PermissionStatus::GRANTED;
+    return PermissionStatus::GRANTED;
   }
 
-  return content::mojom::PermissionStatus::DENIED;
+  return PermissionStatus::DENIED;
 }
 
 void AwPermissionManager::RegisterPermissionUsage(
diff --git a/android_webview/browser/aw_permission_manager.h b/android_webview/browser/aw_permission_manager.h
index da741c09..9de09de 100644
--- a/android_webview/browser/aw_permission_manager.h
+++ b/android_webview/browser/aw_permission_manager.h
@@ -27,20 +27,20 @@
       content::PermissionType permission,
       content::RenderFrameHost* render_frame_host,
       const GURL& requesting_origin,
-      const base::Callback<void(content::mojom::PermissionStatus)>& callback)
+      const base::Callback<void(blink::mojom::PermissionStatus)>& callback)
       override;
   int RequestPermissions(
       const std::vector<content::PermissionType>& permissions,
       content::RenderFrameHost* render_frame_host,
       const GURL& requesting_origin,
       const base::Callback<
-          void(const std::vector<content::mojom::PermissionStatus>&)>& callback)
+          void(const std::vector<blink::mojom::PermissionStatus>&)>& callback)
       override;
   void CancelPermissionRequest(int request_id) override;
   void ResetPermission(content::PermissionType permission,
                        const GURL& requesting_origin,
                        const GURL& embedding_origin) override;
-  content::mojom::PermissionStatus GetPermissionStatus(
+  blink::mojom::PermissionStatus GetPermissionStatus(
       content::PermissionType permission,
       const GURL& requesting_origin,
       const GURL& embedding_origin) override;
@@ -51,7 +51,7 @@
       content::PermissionType permission,
       const GURL& requesting_origin,
       const GURL& embedding_origin,
-      const base::Callback<void(content::mojom::PermissionStatus)>& callback)
+      const base::Callback<void(blink::mojom::PermissionStatus)>& callback)
       override;
   void UnsubscribePermissionStatusChange(int subscription_id) override;
 
@@ -66,7 +66,7 @@
   static void OnRequestResponse(
       const base::WeakPtr<AwPermissionManager>& manager,
       int request_id,
-      const base::Callback<void(content::mojom::PermissionStatus)>& callback,
+      const base::Callback<void(blink::mojom::PermissionStatus)>& callback,
       bool allowed);
 
   PendingRequestsMap pending_requests_;
diff --git a/ash/display/display_color_manager_chromeos.cc b/ash/display/display_color_manager_chromeos.cc
index e555919..eb34744 100644
--- a/ash/display/display_color_manager_chromeos.cc
+++ b/ash/display/display_color_manager_chromeos.cc
@@ -23,7 +23,11 @@
 namespace {
 
 scoped_ptr<DisplayColorManager::ColorCalibrationData> ParseDisplayProfile(
-    const base::FilePath& path) {
+    const base::FilePath& path,
+    bool has_color_correction_matrix) {
+  VLOG(1) << "Trying ICC file " << path.value()
+          << " has_color_correction_matrix: "
+          << (has_color_correction_matrix ? "true" : "false");
   qcms_profile* display_profile = qcms_profile_from_path(path.value().c_str());
   if (!display_profile) {
     LOG(WARNING) << "Unable to load ICC file: " << path.value();
@@ -32,30 +36,111 @@
 
   size_t vcgt_channel_length =
       qcms_profile_get_vcgt_channel_length(display_profile);
-  if (!vcgt_channel_length) {
-    LOG(WARNING) << "No vcgt table in ICC file: " << path.value();
-    qcms_profile_release(display_profile);
-    return nullptr;
-  }
 
-  std::vector<uint16_t> vcgt_data;
-  vcgt_data.resize(vcgt_channel_length * 3);
-  if (!qcms_profile_get_vcgt_rgb_channels(display_profile, &vcgt_data[0])) {
-    LOG(WARNING) << "Unable to get vcgt data";
+  if (!has_color_correction_matrix && !vcgt_channel_length) {
+    LOG(WARNING) << "No vcgt table in ICC file: " << path.value();
     qcms_profile_release(display_profile);
     return nullptr;
   }
 
   scoped_ptr<DisplayColorManager::ColorCalibrationData> data(
       new DisplayColorManager::ColorCalibrationData());
-  data->lut.resize(vcgt_channel_length);
-  for (size_t i = 0; i < vcgt_channel_length; ++i) {
-    data->lut[i].r = vcgt_data[i];
-    data->lut[i].g = vcgt_data[vcgt_channel_length + i];
-    data->lut[i].b = vcgt_data[(vcgt_channel_length * 2) + i];
+  if (vcgt_channel_length) {
+    VLOG_IF(1, has_color_correction_matrix)
+        << "Using VCGT data on CTM enabled platform.";
+
+    std::vector<uint16_t> vcgt_data;
+    vcgt_data.resize(vcgt_channel_length * 3);
+    if (!qcms_profile_get_vcgt_rgb_channels(display_profile, &vcgt_data[0])) {
+      LOG(WARNING) << "Unable to get vcgt data";
+      qcms_profile_release(display_profile);
+      return nullptr;
+    }
+
+    data->gamma_lut.resize(vcgt_channel_length);
+    for (size_t i = 0; i < vcgt_channel_length; ++i) {
+      data->gamma_lut[i].r = vcgt_data[i];
+      data->gamma_lut[i].g = vcgt_data[vcgt_channel_length + i];
+      data->gamma_lut[i].b = vcgt_data[(vcgt_channel_length * 2) + i];
+    }
+  } else {
+    VLOG(1) << "Using full degamma/gamma/CTM from profile.";
+    qcms_profile* srgb_profile = qcms_profile_sRGB();
+
+    qcms_transform* transform =
+        qcms_transform_create(srgb_profile, QCMS_DATA_RGB_8, display_profile,
+                              QCMS_DATA_RGB_8, QCMS_INTENT_PERCEPTUAL);
+
+    if (!transform) {
+      LOG(WARNING)
+          << "Unable to create transformation from sRGB to display profile.";
+
+      qcms_profile_release(display_profile);
+      qcms_profile_release(srgb_profile);
+      return nullptr;
+    }
+
+    if (!qcms_transform_is_matrix(transform)) {
+      LOG(WARNING) << "No transformation matrix available";
+
+      qcms_transform_release(transform);
+      qcms_profile_release(display_profile);
+      qcms_profile_release(srgb_profile);
+      return nullptr;
+    }
+
+    size_t degamma_size = qcms_transform_get_input_trc_rgba(
+        transform, srgb_profile, QCMS_TRC_USHORT, NULL);
+    size_t gamma_size = qcms_transform_get_output_trc_rgba(
+        transform, display_profile, QCMS_TRC_USHORT, NULL);
+
+    if (degamma_size == 0 || gamma_size == 0) {
+      LOG(WARNING)
+          << "Invalid number of elements in gamma tables: degamma size = "
+          << degamma_size << " gamma size = " << gamma_size;
+
+      qcms_transform_release(transform);
+      qcms_profile_release(display_profile);
+      qcms_profile_release(srgb_profile);
+      return nullptr;
+    }
+
+    std::vector<uint16_t> degamma_data;
+    std::vector<uint16_t> gamma_data;
+    degamma_data.resize(degamma_size * 4);
+    gamma_data.resize(gamma_size * 4);
+
+    qcms_transform_get_input_trc_rgba(transform, srgb_profile, QCMS_TRC_USHORT,
+                                      &degamma_data[0]);
+    qcms_transform_get_output_trc_rgba(transform, display_profile,
+                                       QCMS_TRC_USHORT, &gamma_data[0]);
+
+    data->degamma_lut.resize(degamma_size);
+    for (size_t i = 0; i < degamma_size; ++i) {
+      data->degamma_lut[i].r = degamma_data[i * 4];
+      data->degamma_lut[i].g = degamma_data[(i * 4) + 1];
+      data->degamma_lut[i].b = degamma_data[(i * 4) + 2];
+    }
+
+    data->gamma_lut.resize(gamma_size);
+    for (size_t i = 0; i < gamma_size; ++i) {
+      data->gamma_lut[i].r = gamma_data[i * 4];
+      data->gamma_lut[i].g = gamma_data[(i * 4) + 1];
+      data->gamma_lut[i].b = gamma_data[(i * 4) + 2];
+    }
+
+    data->correction_matrix.resize(9);
+    for (int i = 0; i < 9; ++i) {
+      data->correction_matrix[i] =
+          qcms_transform_get_matrix(transform, i / 3, i % 3);
+    }
+
+    qcms_transform_release(transform);
+    qcms_profile_release(srgb_profile);
   }
+
+  VLOG(1) << "ICC file successfully parsed";
   qcms_profile_release(display_profile);
-  VLOG(1) << "Gamma data successfully read from icc file";
   return data;
 }
 
@@ -90,9 +175,11 @@
 void DisplayColorManager::ApplyDisplayColorCalibration(int64_t display_id,
                                                        int64_t product_id) {
   if (calibration_map_.find(product_id) != calibration_map_.end()) {
-    ColorCalibrationData* ramp = calibration_map_[product_id];
-    if (!configurator_->SetGammaRamp(display_id, ramp->lut))
-      LOG(WARNING) << "Error applying gamma ramp";
+    ColorCalibrationData* data = calibration_map_[product_id];
+    if (!configurator_->SetColorCorrection(display_id, data->degamma_lut,
+                                           data->gamma_lut,
+                                           data->correction_matrix))
+      LOG(WARNING) << "Error applying color correction data";
   }
 }
 
@@ -108,12 +195,14 @@
       display->product_id(),
       base::Bind(&DisplayColorManager::FinishLoadCalibrationForDisplay,
                  weak_ptr_factory_.GetWeakPtr(), display->display_id(),
-                 display->product_id(), display->type()));
+                 display->product_id(), display->has_color_correction_matrix(),
+                 display->type()));
 }
 
 void DisplayColorManager::FinishLoadCalibrationForDisplay(
     int64_t display_id,
     int64_t product_id,
+    bool has_color_correction_matrix,
     ui::DisplayConnectionType type,
     const base::FilePath& path,
     bool file_downloaded) {
@@ -137,7 +226,8 @@
           << " with product id: " << product_string;
 
   base::PostTaskAndReplyWithResult(
-      blocking_pool_, FROM_HERE, base::Bind(&ParseDisplayProfile, path),
+      blocking_pool_, FROM_HERE,
+      base::Bind(&ParseDisplayProfile, path, has_color_correction_matrix),
       base::Bind(&DisplayColorManager::UpdateCalibrationData,
                  weak_ptr_factory_.GetWeakPtr(), display_id, product_id));
 }
diff --git a/ash/display/display_color_manager_chromeos.h b/ash/display/display_color_manager_chromeos.h
index 58e2d9c..e37fe70 100644
--- a/ash/display/display_color_manager_chromeos.h
+++ b/ash/display/display_color_manager_chromeos.h
@@ -49,12 +49,15 @@
     ColorCalibrationData();
     ~ColorCalibrationData();
 
-    std::vector<ui::GammaRampRGBEntry> lut;
+    std::vector<ui::GammaRampRGBEntry> degamma_lut;
+    std::vector<ui::GammaRampRGBEntry> gamma_lut;
+    std::vector<float> correction_matrix;
   };
 
  protected:
   virtual void FinishLoadCalibrationForDisplay(int64_t display_id,
                                                int64_t product_id,
+                                               bool has_color_correction_matrix,
                                                ui::DisplayConnectionType type,
                                                const base::FilePath& path,
                                                bool file_downloaded);
diff --git a/ash/display/display_color_manager_chromeos_unittest.cc b/ash/display/display_color_manager_chromeos_unittest.cc
index f99db71..d1ed347 100644
--- a/ash/display/display_color_manager_chromeos_unittest.cc
+++ b/ash/display/display_color_manager_chromeos_unittest.cc
@@ -25,7 +25,9 @@
 namespace {
 
 const char kSetGammaAction[] =
-    "set_gamma_ramp(id=123,rgb[0]*rgb[255]=???????????\?)";
+    "set_color_correction(id=123,gamma[0]*gamma[255]=???????????\?)";
+const char kSetFullCTMAction[] =
+    "set_color_correction(id=123,degamma[0]*gamma[0]*ctm[0]*ctm[8]*)";
 
 class DisplayColorManagerForTest : public DisplayColorManager {
  public:
@@ -40,11 +42,13 @@
  private:
   void FinishLoadCalibrationForDisplay(int64_t display_id,
                                        int64_t product_id,
+                                       bool has_color_correction_matrix,
                                        ui::DisplayConnectionType type,
                                        const base::FilePath& path,
                                        bool file_downloaded) override {
     DisplayColorManager::FinishLoadCalibrationForDisplay(
-        display_id, product_id, type, path, file_downloaded);
+        display_id, product_id, has_color_correction_matrix, type, path,
+        file_downloaded);
     // If path is empty, there is no icc file, and the DCM's work is done.
     if (path.empty() && !on_finished_for_test_.is_null()) {
       on_finished_for_test_.Run();
@@ -163,18 +167,17 @@
   std::vector<const ui::DisplayMode*> modes;
   ui::DisplayMode mode(gfx::Size(1024, 768), false, 60.0f);
   modes.push_back(&mode);
-  scoped_ptr<ui::TestDisplaySnapshot> snapshot =
-      make_scoped_ptr(new ui::TestDisplaySnapshot(
-          123, gfx::Point(0, 0),                /* origin */
-          gfx::Size(0, 0),                      /* physical_size */
-          ui::DISPLAY_CONNECTION_TYPE_INTERNAL, /* type */
-          false,      /* is_aspect_preserving_scaling */
-          0x06af5c10, /* product_id */
-          modes,      /* modes */
-          modes[0] /* current_mode */,
-          modes[0] /* native_mode */));
+  ui::TestDisplaySnapshot snapshot(
+      123, gfx::Point(0, 0),                /* origin */
+      gfx::Size(0, 0),                      /* physical_size */
+      ui::DISPLAY_CONNECTION_TYPE_INTERNAL, /* type */
+      false,                                /* is_aspect_preserving_scaling */
+      0x06af5c10,                           /* product_id */
+      false,                                /* has_color_correction_matrix */
+      modes,                                /* modes */
+      modes[0] /* current_mode */, modes[0] /* native_mode */);
   std::vector<ui::DisplaySnapshot*> outputs;
-  outputs.push_back(snapshot.get());
+  outputs.push_back(&snapshot);
   native_display_delegate_->set_outputs(outputs);
 
   configurator_.OnConfigurationChanged();
@@ -185,22 +188,97 @@
   EXPECT_TRUE(base::MatchPattern(log_->GetActionsAndClear(), kSetGammaAction));
 }
 
+TEST_F(DisplayColorManagerTest, VCGTOnlyWithPlatformCTM) {
+  std::vector<const ui::DisplayMode*> modes;
+  ui::DisplayMode mode(gfx::Size(1024, 768), false, 60.0f);
+  modes.push_back(&mode);
+  ui::TestDisplaySnapshot snapshot(
+      123, gfx::Point(0, 0),                /* origin */
+      gfx::Size(0, 0),                      /* physical_size */
+      ui::DISPLAY_CONNECTION_TYPE_INTERNAL, /* type */
+      false,                                /* is_aspect_preserving_scaling */
+      0x06af5c10,                           /* product_id */
+      true,                                 /* has_color_correction_matrix */
+      modes,                                /* modes */
+      modes[0] /* current_mode */, modes[0] /* native_mode */);
+  std::vector<ui::DisplaySnapshot*> outputs;
+  outputs.push_back(&snapshot);
+  native_display_delegate_->set_outputs(outputs);
+
+  configurator_.OnConfigurationChanged();
+  EXPECT_TRUE(test_api_.TriggerConfigureTimeout());
+
+  log_->GetActionsAndClear();
+  WaitOnColorCalibration();
+  EXPECT_TRUE(base::MatchPattern(log_->GetActionsAndClear(), kSetGammaAction));
+}
+
+TEST_F(DisplayColorManagerTest, FullWithPlatformCTM) {
+  std::vector<const ui::DisplayMode*> modes;
+  ui::DisplayMode mode(gfx::Size(1024, 768), false, 60.0f);
+  modes.push_back(&mode);
+  ui::TestDisplaySnapshot snapshot(
+      123, gfx::Point(0, 0),                /* origin */
+      gfx::Size(0, 0),                      /* physical_size */
+      ui::DISPLAY_CONNECTION_TYPE_INTERNAL, /* type */
+      false,                                /* is_aspect_preserving_scaling */
+      0x4c834a42,                           /* product_id */
+      true,                                 /* has_color_correction_matrix */
+      modes,                                /* modes */
+      modes[0] /* current_mode */, modes[0] /* native_mode */);
+  std::vector<ui::DisplaySnapshot*> outputs;
+  outputs.push_back(&snapshot);
+  native_display_delegate_->set_outputs(outputs);
+
+  configurator_.OnConfigurationChanged();
+  EXPECT_TRUE(test_api_.TriggerConfigureTimeout());
+
+  log_->GetActionsAndClear();
+  WaitOnColorCalibration();
+  EXPECT_TRUE(
+      base::MatchPattern(log_->GetActionsAndClear(), kSetFullCTMAction));
+}
+
+TEST_F(DisplayColorManagerTest, FullWithoutPlatformCTM) {
+  std::vector<const ui::DisplayMode*> modes;
+  ui::DisplayMode mode(gfx::Size(1024, 768), false, 60.0f);
+  modes.push_back(&mode);
+  ui::TestDisplaySnapshot snapshot(
+      123, gfx::Point(0, 0),                /* origin */
+      gfx::Size(0, 0),                      /* physical_size */
+      ui::DISPLAY_CONNECTION_TYPE_INTERNAL, /* type */
+      false,                                /* is_aspect_preserving_scaling */
+      0x4c834a42,                           /* product_id */
+      false,                                /* has_color_correction_matrix */
+      modes,                                /* modes */
+      modes[0] /* current_mode */, modes[0] /* native_mode */);
+  std::vector<ui::DisplaySnapshot*> outputs;
+  outputs.push_back(&snapshot);
+  native_display_delegate_->set_outputs(outputs);
+
+  configurator_.OnConfigurationChanged();
+  EXPECT_TRUE(test_api_.TriggerConfigureTimeout());
+
+  log_->GetActionsAndClear();
+  WaitOnColorCalibration();
+  EXPECT_STREQ("", log_->GetActionsAndClear().c_str());
+}
+
 TEST_F(DisplayColorManagerTest, NoMatchProductID) {
   std::vector<const ui::DisplayMode*> modes;
   ui::DisplayMode mode(gfx::Size(1024, 768), false, 60.0f);
   modes.push_back(&mode);
-  scoped_ptr<ui::TestDisplaySnapshot> snapshot =
-      make_scoped_ptr(new ui::TestDisplaySnapshot(
-          123, gfx::Point(0, 0),                /* origin */
-          gfx::Size(0, 0),                      /* physical_size */
-          ui::DISPLAY_CONNECTION_TYPE_INTERNAL, /* type */
-          false, /* is_aspect_preserving_scaling */
-          0,     /* product_id */
-          modes, /* modes */
-          modes[0] /* current_mode */,
-          modes[0] /* native_mode */));
+  ui::TestDisplaySnapshot snapshot(
+      123, gfx::Point(0, 0),                /* origin */
+      gfx::Size(0, 0),                      /* physical_size */
+      ui::DISPLAY_CONNECTION_TYPE_INTERNAL, /* type */
+      false,                                /* is_aspect_preserving_scaling */
+      0,                                    /* product_id */
+      false,                                /* has_color_correction_matrix */
+      modes,                                /* modes */
+      modes[0] /* current_mode */, modes[0] /* native_mode */);
   std::vector<ui::DisplaySnapshot*> outputs;
-  outputs.push_back(snapshot.get());
+  outputs.push_back(&snapshot);
   native_display_delegate_->set_outputs(outputs);
 
   configurator_.OnConfigurationChanged();
@@ -215,18 +293,17 @@
   std::vector<const ui::DisplayMode*> modes;
   ui::DisplayMode mode(gfx::Size(1024, 768), false, 60.0f);
   modes.push_back(&mode);
-  scoped_ptr<ui::TestDisplaySnapshot> snapshot =
-      make_scoped_ptr(new ui::TestDisplaySnapshot(
-          123, gfx::Point(0, 0),                /* origin */
-          gfx::Size(0, 0),                      /* physical_size */
-          ui::DISPLAY_CONNECTION_TYPE_INTERNAL, /* type */
-          false,      /* is_aspect_preserving_scaling */
-          0x0dae3211, /* product_id */
-          modes,      /* modes */
-          modes[0] /* current_mode */,
-          modes[0] /* native_mode */));
+  ui::TestDisplaySnapshot snapshot(
+      123, gfx::Point(0, 0),                /* origin */
+      gfx::Size(0, 0),                      /* physical_size */
+      ui::DISPLAY_CONNECTION_TYPE_INTERNAL, /* type */
+      false,                                /* is_aspect_preserving_scaling */
+      0x0dae3211,                           /* product_id */
+      false,                                /* has_color_correction_matrix */
+      modes,                                /* modes */
+      modes[0] /* current_mode */, modes[0] /* native_mode */);
   std::vector<ui::DisplaySnapshot*> outputs;
-  outputs.push_back(snapshot.get());
+  outputs.push_back(&snapshot);
   native_display_delegate_->set_outputs(outputs);
 
   configurator_.OnConfigurationChanged();
diff --git a/ash/display/test_data/4c834a42.icc b/ash/display/test_data/4c834a42.icc
new file mode 100644
index 0000000..82f2ddb
--- /dev/null
+++ b/ash/display/test_data/4c834a42.icc
Binary files differ
diff --git a/base/debug/task_annotator.h b/base/debug/task_annotator.h
index 443c71bf3..2687c5c 100644
--- a/base/debug/task_annotator.h
+++ b/base/debug/task_annotator.h
@@ -39,11 +39,6 @@
   DISALLOW_COPY_AND_ASSIGN(TaskAnnotator);
 };
 
-#define TRACE_TASK_EXECUTION(run_function, task)           \
-  TRACE_EVENT2("toplevel", (run_function), "src_file",     \
-               (task).posted_from.file_name(), "src_func", \
-               (task).posted_from.function_name());
-
 }  // namespace debug
 }  // namespace base
 
diff --git a/base/memory/ptr_util.h b/base/memory/ptr_util.h
index 2c8db5e..04f2c02 100644
--- a/base/memory/ptr_util.h
+++ b/base/memory/ptr_util.h
@@ -7,31 +7,6 @@
 
 #include <memory>
 
-// A function to convert T* into scoped_ptr<T>
-// Doing e.g. make_scoped_ptr(new FooBarBaz<type>(arg)) is a shorter notation
-// for scoped_ptr<FooBarBaz<type>>(new FooBarBaz<type>(arg))
-//
-// Why doesn't this just return a scoped_ptr?
-//
-// make_scoped_ptr is currently being migrated out of scoped_ptr.h, so we can
-// globally rename make_scoped_ptr to WrapUnique without breaking the build.
-// Doing so without breaking intermediate builds involves several steps:
-//
-// 1. Move make_scoped_ptr into ptr_util.h and include ptr_util.h from
-//    scoped_ptr.h.
-// 2. Add an #include for ptr_util.h to every file that references
-//    make_scoped_ptr.
-// 3. Remove ptr_util.h include from scoped_ptr.h.
-// 4. Global rewrite everything.
-//
-// Unfortunately, step 1 introduces an awkward cycle of dependencies between
-// ptr_util.h and scoped_ptr.h To break that cycle, we exploit the fact that
-// scoped_ptr is really just a type alias for std::unique_ptr.
-template <typename T>
-std::unique_ptr<T> make_scoped_ptr(T* ptr) {
-  return std::unique_ptr<T>(ptr);
-}
-
 namespace base {
 
 // Helper to transfer ownership of a raw pointer to a std::unique_ptr<T>.
diff --git a/base/memory/scoped_ptr.h b/base/memory/scoped_ptr.h
index 37a98023..e6388748 100644
--- a/base/memory/scoped_ptr.h
+++ b/base/memory/scoped_ptr.h
@@ -11,10 +11,15 @@
 
 #include <memory>
 
-// TODO(dcheng): Temporary, to facilitate transition off scoped_ptr.
-#include "base/memory/ptr_util.h"
-
 template <typename T, typename D = std::default_delete<T>>
 using scoped_ptr = std::unique_ptr<T, D>;
 
+// A function to convert T* into scoped_ptr<T>
+// Doing e.g. make_scoped_ptr(new FooBarBaz<type>(arg)) is a shorter notation
+// for scoped_ptr<FooBarBaz<type> >(new FooBarBaz<type>(arg))
+template <typename T>
+scoped_ptr<T> make_scoped_ptr(T* ptr) {
+  return scoped_ptr<T>(ptr);
+}
+
 #endif  // BASE_MEMORY_SCOPED_PTR_H_
diff --git a/base/threading/sequenced_worker_pool.cc b/base/threading/sequenced_worker_pool.cc
index 086f54b..52663dc 100644
--- a/base/threading/sequenced_worker_pool.cc
+++ b/base/threading/sequenced_worker_pool.cc
@@ -809,6 +809,7 @@
             TRACE_EVENT_FLAG_FLOW_IN,
             "src_file", task.posted_from.file_name(),
             "src_func", task.posted_from.function_name());
+        TRACE_TASK_EXECUTION("SequencedWorkerPool::Inner::ThreadLoop", task);
         int new_thread_id = WillRunWorkerTask(task);
         {
           AutoUnlock unlock(lock_);
diff --git a/base/threading/thread_id_name_manager.cc b/base/threading/thread_id_name_manager.cc
index 56cfa27..107e0dc4 100644
--- a/base/threading/thread_id_name_manager.cc
+++ b/base/threading/thread_id_name_manager.cc
@@ -10,6 +10,7 @@
 #include "base/logging.h"
 #include "base/memory/singleton.h"
 #include "base/strings/string_util.h"
+#include "base/trace_event/heap_profiler_allocation_context_tracker.h"
 
 namespace base {
 namespace {
@@ -50,27 +51,37 @@
 
 void ThreadIdNameManager::SetName(PlatformThreadId id,
                                   const std::string& name) {
-  AutoLock locked(lock_);
-  NameToInternedNameMap::iterator iter = name_to_interned_name_.find(name);
   std::string* leaked_str = NULL;
-  if (iter != name_to_interned_name_.end()) {
-    leaked_str = iter->second;
-  } else {
-    leaked_str = new std::string(name);
-    name_to_interned_name_[name] = leaked_str;
+  {
+    AutoLock locked(lock_);
+    NameToInternedNameMap::iterator iter = name_to_interned_name_.find(name);
+    if (iter != name_to_interned_name_.end()) {
+      leaked_str = iter->second;
+    } else {
+      leaked_str = new std::string(name);
+      name_to_interned_name_[name] = leaked_str;
+    }
+
+    ThreadIdToHandleMap::iterator id_to_handle_iter =
+        thread_id_to_handle_.find(id);
+
+    // The main thread of a process will not be created as a Thread object which
+    // means there is no PlatformThreadHandler registered.
+    if (id_to_handle_iter == thread_id_to_handle_.end()) {
+      main_process_name_ = leaked_str;
+      main_process_id_ = id;
+      return;
+    }
+    thread_handle_to_interned_name_[id_to_handle_iter->second] = leaked_str;
   }
 
-  ThreadIdToHandleMap::iterator id_to_handle_iter =
-      thread_id_to_handle_.find(id);
-
-  // The main thread of a process will not be created as a Thread object which
-  // means there is no PlatformThreadHandler registered.
-  if (id_to_handle_iter == thread_id_to_handle_.end()) {
-    main_process_name_ = leaked_str;
-    main_process_id_ = id;
-    return;
-  }
-  thread_handle_to_interned_name_[id_to_handle_iter->second] = leaked_str;
+  // Add the leaked thread name to heap profiler context tracker. The name added
+  // is valid for the lifetime of the process. AllocationContextTracker cannot
+  // call GetName(which holds a lock) during the first allocation because it can
+  // cause a deadlock when the first allocation happens in the
+  // ThreadIdNameManager itself when holding the lock.
+  trace_event::AllocationContextTracker::SetCurrentThreadName(
+      leaked_str->c_str());
 }
 
 const char* ThreadIdNameManager::GetName(PlatformThreadId id) {
diff --git a/base/threading/worker_pool_posix.cc b/base/threading/worker_pool_posix.cc
index 53ae4e6..dcebe0a 100644
--- a/base/threading/worker_pool_posix.cc
+++ b/base/threading/worker_pool_posix.cc
@@ -86,9 +86,7 @@
     PendingTask pending_task = pool_->WaitForTask();
     if (pending_task.task.is_null())
       break;
-    TRACE_EVENT2("toplevel", "WorkerThread::ThreadMain::Run",
-        "src_file", pending_task.posted_from.file_name(),
-        "src_func", pending_task.posted_from.function_name());
+    TRACE_TASK_EXECUTION("WorkerThread::ThreadMain::Run", pending_task);
 
     tracked_objects::TaskStopwatch stopwatch;
     stopwatch.Start();
diff --git a/base/threading/worker_pool_win.cc b/base/threading/worker_pool_win.cc
index 1b0ade5..575caaa6 100644
--- a/base/threading/worker_pool_win.cc
+++ b/base/threading/worker_pool_win.cc
@@ -21,9 +21,7 @@
 
 DWORD CALLBACK WorkItemCallback(void* param) {
   PendingTask* pending_task = static_cast<PendingTask*>(param);
-  TRACE_EVENT2("toplevel", "WorkItemCallback::Run",
-               "src_file", pending_task->posted_from.file_name(),
-               "src_func", pending_task->posted_from.function_name());
+  TRACE_TASK_EXECUTION("WorkerThread::ThreadMain::Run", *pending_task);
 
   g_worker_pool_running_on_this_thread.Get().Set(true);
 
diff --git a/base/trace_event/common/trace_event_common.h b/base/trace_event/common/trace_event_common.h
index f65b35b..0b549d4 100644
--- a/base/trace_event/common/trace_event_common.h
+++ b/base/trace_event/common/trace_event_common.h
@@ -926,6 +926,15 @@
                                    name, id, TRACE_EVENT_FLAG_COPY, arg1_name, \
                                    arg1_val, arg2_name, arg2_val)
 
+// Special trace event macro to trace task execution with the location where it
+// was posted from.
+#define TRACE_TASK_EXECUTION(run_function, task)                        \
+  TRACE_EVENT2("toplevel", run_function, "src_file",                    \
+               (task).posted_from.file_name(), "src_func",              \
+               (task).posted_from.function_name());                     \
+  TRACE_EVENT_API_SCOPED_TASK_EXECUTION_EVENT INTERNAL_TRACE_EVENT_UID( \
+      task_event)((task).posted_from.file_name());
+
 // TRACE_EVENT_METADATA* events are information related to other
 // injected events, not events in their own right.
 #define TRACE_EVENT_METADATA1(category_group, name, arg1_name, arg1_val) \
diff --git a/base/trace_event/heap_profiler_allocation_context_tracker.cc b/base/trace_event/heap_profiler_allocation_context_tracker.cc
index 2877d2a..1fc8bc0 100644
--- a/base/trace_event/heap_profiler_allocation_context_tracker.cc
+++ b/base/trace_event/heap_profiler_allocation_context_tracker.cc
@@ -19,6 +19,7 @@
 namespace {
 
 const size_t kMaxStackDepth = 128u;
+const size_t kMaxTaskDepth = 16u;
 AllocationContextTracker* const kInitializingSentinel =
     reinterpret_cast<AllocationContextTracker*>(-1);
 
@@ -49,12 +50,20 @@
   return tracker;
 }
 
-AllocationContextTracker::AllocationContextTracker() {
+AllocationContextTracker::AllocationContextTracker() : thread_name_(nullptr) {
   pseudo_stack_.reserve(kMaxStackDepth);
+  task_contexts_.reserve(kMaxTaskDepth);
 }
 AllocationContextTracker::~AllocationContextTracker() {}
 
 // static
+void AllocationContextTracker::SetCurrentThreadName(const char* name) {
+  if (name && capture_enabled()) {
+    GetInstanceForCurrentThread()->thread_name_ = name;
+  }
+}
+
+// static
 void AllocationContextTracker::SetCaptureEnabled(bool enabled) {
   // When enabling capturing, also initialize the TLS slot. This does not create
   // a TLS instance yet.
@@ -92,6 +101,20 @@
   pseudo_stack_.pop_back();
 }
 
+void AllocationContextTracker::PushCurrentTaskContext(const char* context) {
+  DCHECK(context);
+  if (task_contexts_.size() < kMaxTaskDepth)
+    task_contexts_.push_back(context);
+  else
+    NOTREACHED();
+}
+
+void AllocationContextTracker::PopCurrentTaskContext(const char* context) {
+  DCHECK_EQ(context, task_contexts_.back())
+      << "Encountered an unmatched context end";
+  task_contexts_.pop_back();
+}
+
 // static
 AllocationContext AllocationContextTracker::GetContextSnapshot() {
   AllocationContext ctx;
@@ -103,6 +126,13 @@
     auto src_end = pseudo_stack_.end();
     auto dst_end = std::end(ctx.backtrace.frames);
 
+    // Add the thread name as the first enrty in the backtrace.
+    if (thread_name_) {
+      DCHECK(dst < dst_end);
+      *dst = thread_name_;
+      ++dst;
+    }
+
     // Copy as much of the bottom of the pseudo stack into the backtrace as
     // possible.
     for (; src != src_end && dst != dst_end; src++, dst++)
@@ -112,7 +142,9 @@
     std::fill(dst, dst_end, nullptr);
   }
 
-  ctx.type_name = nullptr;
+  // TODO(ssid): Fix crbug.com/594803 to add file name as 3rd dimension
+  // (component name) in the heap profiler and not piggy back on the type name.
+  ctx.type_name = task_contexts_.empty() ? nullptr : task_contexts_.back();
 
   return ctx;
 }
diff --git a/base/trace_event/heap_profiler_allocation_context_tracker.h b/base/trace_event/heap_profiler_allocation_context_tracker.h
index 20a6e30..d6133323 100644
--- a/base/trace_event/heap_profiler_allocation_context_tracker.h
+++ b/base/trace_event/heap_profiler_allocation_context_tracker.h
@@ -48,12 +48,21 @@
   // returns nullptr in the nested calls.
   static AllocationContextTracker* GetInstanceForCurrentThread();
 
+  // Set the thread name in the AllocationContextTracker of the current thread
+  // if capture is enabled.
+  static void SetCurrentThreadName(const char* name);
+
   // Pushes a frame onto the thread-local pseudo stack.
   void PushPseudoStackFrame(StackFrame frame);
 
   // Pops a frame from the thread-local pseudo stack.
   void PopPseudoStackFrame(StackFrame frame);
 
+  // Push and pop current task's context. A stack is used to support nested
+  // tasks and the top of the stack will be used in allocation context.
+  void PushCurrentTaskContext(const char* context);
+  void PopCurrentTaskContext(const char* context);
+
   // Returns a snapshot of the current thread-local context.
   AllocationContext GetContextSnapshot();
 
@@ -67,6 +76,13 @@
   // The pseudo stack where frames are |TRACE_EVENT| names.
   std::vector<StackFrame> pseudo_stack_;
 
+  // The thread name is used as the first entry in the pseudo stack.
+  const char* thread_name_;
+
+  // Stack of tasks' contexts. Context serves as a different dimension than
+  // pseudo stack to cluster allocations.
+  std::vector<const char*> task_contexts_;
+
   DISALLOW_COPY_AND_ASSIGN(AllocationContextTracker);
 };
 
diff --git a/base/trace_event/heap_profiler_allocation_context_tracker_unittest.cc b/base/trace_event/heap_profiler_allocation_context_tracker_unittest.cc
index 2498fcd..05c60c7 100644
--- a/base/trace_event/heap_profiler_allocation_context_tracker_unittest.cc
+++ b/base/trace_event/heap_profiler_allocation_context_tracker_unittest.cc
@@ -7,6 +7,7 @@
 #include <iterator>
 
 #include "base/memory/ref_counted.h"
+#include "base/pending_task.h"
 #include "base/trace_event/heap_profiler_allocation_context.h"
 #include "base/trace_event/heap_profiler_allocation_context_tracker.h"
 #include "base/trace_event/trace_event.h"
@@ -229,5 +230,53 @@
   }
 }
 
+TEST_F(AllocationContextTrackerTest, SetCurrentThreadName) {
+  TRACE_EVENT0("Testing", kCupcake);
+
+  // Test if the thread name is inserted into backtrace.
+  const char kThread1[] = "thread1";
+  AllocationContextTracker::SetCurrentThreadName(kThread1);
+  AllocationContext ctx1 =
+      AllocationContextTracker::GetInstanceForCurrentThread()
+          ->GetContextSnapshot();
+  ASSERT_EQ(kThread1, ctx1.backtrace.frames[0]);
+  ASSERT_EQ(kCupcake, ctx1.backtrace.frames[1]);
+
+  // Test if the thread name is reset.
+  const char kThread2[] = "thread2";
+  AllocationContextTracker::SetCurrentThreadName(kThread2);
+  AllocationContext ctx2 =
+      AllocationContextTracker::GetInstanceForCurrentThread()
+          ->GetContextSnapshot();
+  ASSERT_EQ(kThread2, ctx2.backtrace.frames[0]);
+  ASSERT_EQ(kCupcake, ctx2.backtrace.frames[1]);
+}
+
+TEST_F(AllocationContextTrackerTest, TrackTaskContext) {
+  const char kContext1[] = "context1";
+  const char kContext2[] = "context2";
+  {
+    // The context from the scoped task event should be used as type name.
+    TRACE_EVENT_API_SCOPED_TASK_EXECUTION_EVENT event1(kContext1);
+    AllocationContext ctx1 =
+        AllocationContextTracker::GetInstanceForCurrentThread()
+            ->GetContextSnapshot();
+    ASSERT_EQ(kContext1, ctx1.type_name);
+
+    // In case of nested events, the last event's context should be used.
+    TRACE_EVENT_API_SCOPED_TASK_EXECUTION_EVENT event2(kContext2);
+    AllocationContext ctx2 =
+        AllocationContextTracker::GetInstanceForCurrentThread()
+            ->GetContextSnapshot();
+    ASSERT_EQ(kContext2, ctx2.type_name);
+  }
+
+  // Type should be nullptr without task event.
+  AllocationContext ctx =
+      AllocationContextTracker::GetInstanceForCurrentThread()
+          ->GetContextSnapshot();
+  ASSERT_FALSE(ctx.type_name);
+}
+
 }  // namespace trace_event
 }  // namespace base
diff --git a/base/trace_event/heap_profiler_type_name_deduplicator.cc b/base/trace_event/heap_profiler_type_name_deduplicator.cc
index e7f57c8..055f86ab 100644
--- a/base/trace_event/heap_profiler_type_name_deduplicator.cc
+++ b/base/trace_event/heap_profiler_type_name_deduplicator.cc
@@ -16,6 +16,33 @@
 namespace base {
 namespace trace_event {
 
+namespace {
+
+// Extract directory name if |type_name| was file name. Otherwise, return
+// |type_name|.
+StringPiece ExtractDirNameFromFileName(const char* type_name) {
+  StringPiece result(type_name);
+  size_t last_seperator = result.find_last_of("\\/");
+
+  // If |type_name| was a not a file path, the seperator will not be found, so
+  // the whole type name is returned.
+  if (last_seperator == StringPiece::npos)
+    return result;
+
+  // Remove the file name from the path.
+  result.remove_suffix(result.length() - last_seperator);
+
+  // Remove the parent directory references.
+  const char kParentDirectory[] = "..";
+  const size_t kParentDirectoryLength = 3; // '../' or '..\'.
+  while (result.starts_with(kParentDirectory)) {
+    result.remove_prefix(kParentDirectoryLength);
+  }
+  return result;
+}
+
+}  // namespace
+
 TypeNameDeduplicator::TypeNameDeduplicator() {
   // A null pointer has type ID 0 ("unknown type");
   type_ids_.insert(std::make_pair(nullptr, 0));
@@ -53,9 +80,13 @@
     // a dictionary.
     SStringPrintf(&buffer, ",\"%d\":", it->second);
 
+    // TODO(ssid): crbug.com/594803 the type name is misused for file name in
+    // some cases.
+    StringPiece type_info = ExtractDirNameFromFileName(it->first);
+
     // |EscapeJSONString| appends, it does not overwrite |buffer|.
     bool put_in_quotes = true;
-    EscapeJSONString(it->first, put_in_quotes, &buffer);
+    EscapeJSONString(type_info, put_in_quotes, &buffer);
     out->append(buffer);
   }
 
diff --git a/base/trace_event/heap_profiler_type_name_deduplicator_unittest.cc b/base/trace_event/heap_profiler_type_name_deduplicator_unittest.cc
index 92ffcf8..8ab3f37 100644
--- a/base/trace_event/heap_profiler_type_name_deduplicator_unittest.cc
+++ b/base/trace_event/heap_profiler_type_name_deduplicator_unittest.cc
@@ -13,6 +13,8 @@
 namespace base {
 namespace trace_event {
 
+namespace {
+
 // Define all strings once, because the deduplicator requires pointer equality,
 // and string interning is unreliable.
 const char kInt[] = "int";
@@ -20,12 +22,43 @@
 const char kString[] = "string";
 const char kNeedsEscape[] = "\"quotes\"";
 
+#if defined(OS_POSIX)
+const char kTaskFileName[] = "../../base/trace_event/trace_log.cc";
+const char kTaskPath[] = "base/trace_event";
+#else
+const char kTaskFileName[] = "..\\..\\base\\memory\\memory_win.cc";
+const char kTaskPath[] = "base\\memory";
+#endif
+
 scoped_ptr<Value> DumpAndReadBack(const TypeNameDeduplicator& deduplicator) {
   std::string json;
   deduplicator.AppendAsTraceFormat(&json);
   return JSONReader::Read(json);
 }
 
+// Inserts a single type name into a new TypeNameDeduplicator instance and
+// checks if the value gets inserted and the exported value for |type_name| is
+// the same as |expected_value|.
+void TestInsertTypeAndReadback(const char* type_name,
+                               const char* expected_value) {
+  scoped_ptr<TypeNameDeduplicator> dedup(new TypeNameDeduplicator);
+  ASSERT_EQ(1, dedup->Insert(type_name));
+
+  scoped_ptr<Value> type_names = DumpAndReadBack(*dedup);
+  ASSERT_NE(nullptr, type_names);
+
+  const DictionaryValue* dictionary;
+  ASSERT_TRUE(type_names->GetAsDictionary(&dictionary));
+
+  // When the type name was inserted, it got ID 1. The exported key "1"
+  // should be equal to |expected_value|.
+  std::string value;
+  ASSERT_TRUE(dictionary->GetString("1", &value));
+  ASSERT_EQ(expected_value, value);
+}
+
+}  // namespace
+
 TEST(TypeNameDeduplicatorTest, Deduplication) {
   // The type IDs should be like this:
   // 0: [unknown]
@@ -48,22 +81,14 @@
 }
 
 TEST(TypeNameDeduplicatorTest, EscapeTypeName) {
-  scoped_ptr<TypeNameDeduplicator> dedup(new TypeNameDeduplicator);
-  ASSERT_EQ(1, dedup->Insert(kNeedsEscape));
-
   // Reading json should not fail, because the type name should have been
-  // escaped properly.
-  scoped_ptr<Value> type_names = DumpAndReadBack(*dedup);
-  ASSERT_NE(nullptr, type_names);
+  // escaped properly and exported value should contain quotes.
+  TestInsertTypeAndReadback(kNeedsEscape, kNeedsEscape);
+}
 
-  const DictionaryValue* dictionary;
-  ASSERT_TRUE(type_names->GetAsDictionary(&dictionary));
-
-  // When the type name was inserted, it got ID 1. The exported key "1"
-  // should contain the name, with quotes.
-  std::string type_name;
-  ASSERT_TRUE(dictionary->GetString("1", &type_name));
-  ASSERT_EQ("\"quotes\"", type_name);
+TEST(TypeNameDeduplicatorTest, TestExtractFileName) {
+  // The exported value for passed file name should be the folders in the path.
+  TestInsertTypeAndReadback(kTaskFileName, kTaskPath);
 }
 
 }  // namespace trace_event
diff --git a/base/trace_event/trace_event.h b/base/trace_event/trace_event.h
index 2321d7ad..e7801e6 100644
--- a/base/trace_event/trace_event.h
+++ b/base/trace_event/trace_event.h
@@ -18,6 +18,7 @@
 #include "base/macros.h"
 #include "base/time/time.h"
 #include "base/trace_event/common/trace_event_common.h"
+#include "base/trace_event/heap_profiler_allocation_context_tracker.h"
 #include "base/trace_event/trace_event_system_stats_monitor.h"
 #include "base/trace_event/trace_log.h"
 #include "build/build_config.h"
@@ -210,6 +211,10 @@
 #define TRACE_EVENT_API_THREAD_BUCKET(thread_bucket)                           \
     g_trace_state[thread_bucket]
 
+// Scoped tracker for task execution context in the heap profiler.
+#define TRACE_EVENT_API_SCOPED_TASK_EXECUTION_EVENT \
+  trace_event_internal::ScopedTaskExecutionEvent
+
 ////////////////////////////////////////////////////////////////////////////////
 
 // Implementation detail: trace event macros create temporary variables
@@ -1045,6 +1050,31 @@
   const char* previous_state_;
 };
 
+// ScopedTaskExecutionEvent records the current task's context in the heap
+// profiler.
+class ScopedTaskExecutionEvent {
+ public:
+  explicit ScopedTaskExecutionEvent(const char* task_context)
+      : context_(task_context) {
+    if (UNLIKELY(
+            base::trace_event::AllocationContextTracker::capture_enabled())) {
+      base::trace_event::AllocationContextTracker::GetInstanceForCurrentThread()
+          ->PushCurrentTaskContext(context_);
+    }
+  }
+
+  ~ScopedTaskExecutionEvent() {
+    if (UNLIKELY(
+            base::trace_event::AllocationContextTracker::capture_enabled())) {
+      base::trace_event::AllocationContextTracker::GetInstanceForCurrentThread()
+          ->PopCurrentTaskContext(context_);
+    }
+  }
+
+ private:
+  const char* context_;
+};
+
 }  // namespace trace_event_internal
 
 namespace base {
diff --git a/blimp/client/app/blimp_startup.cc b/blimp/client/app/blimp_startup.cc
index 0c2b6ecf..00668833 100644
--- a/blimp/client/app/blimp_startup.cc
+++ b/blimp/client/app/blimp_startup.cc
@@ -37,8 +37,12 @@
   // TODO(haibinlu): Remove this before release.
   // Enables a few verbose log by default.
   if (!base::CommandLine::ForCurrentProcess()->HasSwitch("vmodule")) {
-    base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
-        "vmodule", "blimp_message_pump=1, blimp_connection=1");
+    std::string log_filter =
+        std::string("blimp_message_pump=1, blimp_connection=1,") +
+        std::string("blimp_compositor=1, blimp_compositor_manager=1,") +
+        std::string("remote_channel_impl=1");
+    base::CommandLine::ForCurrentProcess()->AppendSwitchASCII("vmodule",
+                                                              log_filter);
   }
 
   logging::LoggingSettings settings;
diff --git a/blimp/client/feature/compositor/blimp_compositor.cc b/blimp/client/feature/compositor/blimp_compositor.cc
index 3bb910fd6..dc889419 100644
--- a/blimp/client/feature/compositor/blimp_compositor.cc
+++ b/blimp/client/feature/compositor/blimp_compositor.cc
@@ -165,6 +165,9 @@
   if (!host_)
     return;
 
+  VLOG(1) << "Setting visibility to: " << visible
+          << " for render widget: " << render_widget_id_;
+
   if (visible && window_ != gfx::kNullAcceleratedWidget) {
     // If we're supposed to be visible and we have a valid
     // gfx::AcceleratedWidget make our compositor visible. If the compositor
@@ -186,6 +189,7 @@
 void BlimpCompositor::CreateLayerTreeHost(
     const cc::proto::InitializeImpl& initialize_message) {
   DCHECK(!host_);
+  VLOG(1) << "Creating LayerTreeHost for render widget: " << render_widget_id_;
 
   // Create the LayerTreeHost
   cc::LayerTreeHost::InitParams params;
@@ -217,6 +221,8 @@
 
 void BlimpCompositor::DestroyLayerTreeHost() {
   DCHECK(host_);
+  VLOG(1) << "Destroying LayerTreeHost for render widget: "
+          << render_widget_id_;
   // Tear down the output surface connection with the old LayerTreeHost
   // instance.
   SetVisibleInternal(false);
diff --git a/blimp/client/feature/compositor/blimp_compositor_manager.cc b/blimp/client/feature/compositor/blimp_compositor_manager.cc
index 4e5e67f..9902745 100644
--- a/blimp/client/feature/compositor/blimp_compositor_manager.cc
+++ b/blimp/client/feature/compositor/blimp_compositor_manager.cc
@@ -89,6 +89,8 @@
     return;
 
   if (active_compositor_) {
+    VLOG(1) << "Hiding currently active compositor for render widget: "
+            << active_compositor_->render_widget_id();
     active_compositor_->SetVisible(false);
     active_compositor_->ReleaseAcceleratedWidget();
   }
diff --git a/blimp/common/logging.cc b/blimp/common/logging.cc
index 37aa513..c115f56d 100644
--- a/blimp/common/logging.cc
+++ b/blimp/common/logging.cc
@@ -133,6 +133,23 @@
   }
 };
 
+// Logs fields from COMPOSITOR messages.
+class CompositorLogExtractor : public LogExtractor {
+  void ExtractFields(const BlimpMessage& message,
+                     LogFields* output) const override {
+    AddField("render_widget_id", message.compositor().render_widget_id(),
+             output);
+  }
+};
+
+// Logs fields from INPUT messages.
+class InputLogExtractor : public LogExtractor {
+  void ExtractFields(const BlimpMessage& message,
+                     LogFields* output) const override {
+    AddField("render_widget_id", message.input().render_widget_id(), output);
+  }
+};
+
 // Logs fields from RENDER_WIDGET messages.
 class RenderWidgetLogExtractor : public LogExtractor {
   void ExtractFields(const BlimpMessage& message,
@@ -190,9 +207,9 @@
 
 BlimpMessageLogger::BlimpMessageLogger() {
   AddHandler("COMPOSITOR", BlimpMessage::COMPOSITOR,
-             make_scoped_ptr(new NullLogExtractor));
+             make_scoped_ptr(new CompositorLogExtractor));
   AddHandler("INPUT", BlimpMessage::INPUT,
-             make_scoped_ptr(new NullLogExtractor));
+             make_scoped_ptr(new InputLogExtractor));
   AddHandler("NAVIGATION", BlimpMessage::NAVIGATION,
              make_scoped_ptr(new NavigationLogExtractor));
   AddHandler("PROTOCOL_CONTROL", BlimpMessage::PROTOCOL_CONTROL,
diff --git a/blimp/common/logging_unittest.cc b/blimp/common/logging_unittest.cc
index 6dafa3b0..238aa59 100644
--- a/blimp/common/logging_unittest.cc
+++ b/blimp/common/logging_unittest.cc
@@ -46,14 +46,15 @@
   BlimpMessage base_msg;
   base_msg.set_type(BlimpMessage::COMPOSITOR);
   base_msg.set_target_tab_id(kTargetTab);
-  VerifyLogOutput("type=COMPOSITOR target_tab_id=123", base_msg);
+  VerifyLogOutput("type=COMPOSITOR render_widget_id=0 target_tab_id=123",
+                  base_msg);
 }
 
 TEST_F(LoggingTest, Input) {
   BlimpMessage base_msg;
   base_msg.set_type(BlimpMessage::INPUT);
   base_msg.set_target_tab_id(kTargetTab);
-  VerifyLogOutput("type=INPUT target_tab_id=123", base_msg);
+  VerifyLogOutput("type=INPUT render_widget_id=0 target_tab_id=123", base_msg);
 }
 
 TEST_F(LoggingTest, Navigation) {
diff --git a/blimp/engine/app/blimp_content_main_delegate.cc b/blimp/engine/app/blimp_content_main_delegate.cc
index 6fe0b41..265f368a 100644
--- a/blimp/engine/app/blimp_content_main_delegate.cc
+++ b/blimp/engine/app/blimp_content_main_delegate.cc
@@ -4,6 +4,7 @@
 
 #include "blimp/engine/app/blimp_content_main_delegate.h"
 
+#include "base/command_line.h"
 #include "base/files/file.h"
 #include "base/files/file_path.h"
 #include "base/logging.h"
@@ -17,6 +18,13 @@
 namespace engine {
 namespace {
 void InitLogging() {
+  // TODO(haibinlu): Remove this before release.
+  // Enables a few verbose log by default.
+  if (!base::CommandLine::ForCurrentProcess()->HasSwitch("vmodule")) {
+    base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
+        "vmodule", "remote_channel_main=1");
+  }
+
   logging::LoggingSettings settings;
   base::FilePath log_filename;
   PathService::Get(base::DIR_EXE, &log_filename);
diff --git a/blimp/engine/app/blimp_permission_manager.cc b/blimp/engine/app/blimp_permission_manager.cc
index 81b963f..7e4b7b2 100644
--- a/blimp/engine/app/blimp_permission_manager.cc
+++ b/blimp/engine/app/blimp_permission_manager.cc
@@ -21,8 +21,8 @@
     content::PermissionType permission,
     content::RenderFrameHost* render_frame_host,
     const GURL& origin,
-    const base::Callback<void(content::mojom::PermissionStatus)>& callback) {
-  callback.Run(content::mojom::PermissionStatus::DENIED);
+    const base::Callback<void(blink::mojom::PermissionStatus)>& callback) {
+  callback.Run(blink::mojom::PermissionStatus::DENIED);
   return kNoPendingOperation;
 }
 
@@ -31,9 +31,9 @@
     content::RenderFrameHost* render_frame_host,
     const GURL& requesting_origin,
     const base::Callback<
-        void(const std::vector<content::mojom::PermissionStatus>&)>& callback) {
-  callback.Run(std::vector<content::mojom::PermissionStatus>(
-      permission.size(), content::mojom::PermissionStatus::DENIED));
+        void(const std::vector<blink::mojom::PermissionStatus>&)>& callback) {
+  callback.Run(std::vector<blink::mojom::PermissionStatus>(
+      permission.size(), blink::mojom::PermissionStatus::DENIED));
   return kNoPendingOperation;
 }
 
@@ -43,11 +43,11 @@
                                              const GURL& requesting_origin,
                                              const GURL& embedding_origin) {}
 
-content::mojom::PermissionStatus BlimpPermissionManager::GetPermissionStatus(
+blink::mojom::PermissionStatus BlimpPermissionManager::GetPermissionStatus(
     content::PermissionType permission,
     const GURL& requesting_origin,
     const GURL& embedding_origin) {
-  return content::mojom::PermissionStatus::DENIED;
+  return blink::mojom::PermissionStatus::DENIED;
 }
 
 void BlimpPermissionManager::RegisterPermissionUsage(
@@ -59,7 +59,7 @@
     content::PermissionType permission,
     const GURL& requesting_origin,
     const GURL& embedding_origin,
-    const base::Callback<void(content::mojom::PermissionStatus)>& callback) {
+    const base::Callback<void(blink::mojom::PermissionStatus)>& callback) {
   return -1;
 }
 
diff --git a/blimp/engine/app/blimp_permission_manager.h b/blimp/engine/app/blimp_permission_manager.h
index d14582a1..7b09262 100644
--- a/blimp/engine/app/blimp_permission_manager.h
+++ b/blimp/engine/app/blimp_permission_manager.h
@@ -24,20 +24,20 @@
       content::PermissionType permission,
       content::RenderFrameHost* render_frame_host,
       const GURL& requesting_origin,
-      const base::Callback<void(content::mojom::PermissionStatus)>& callback)
+      const base::Callback<void(blink::mojom::PermissionStatus)>& callback)
       override;
   int RequestPermissions(
       const std::vector<content::PermissionType>& permission,
       content::RenderFrameHost* render_frame_host,
       const GURL& requesting_origin,
       const base::Callback<
-          void(const std::vector<content::mojom::PermissionStatus>&)>& callback)
+          void(const std::vector<blink::mojom::PermissionStatus>&)>& callback)
       override;
   void CancelPermissionRequest(int request_id) override;
   void ResetPermission(content::PermissionType permission,
                        const GURL& requesting_origin,
                        const GURL& embedding_origin) override;
-  content::mojom::PermissionStatus GetPermissionStatus(
+  blink::mojom::PermissionStatus GetPermissionStatus(
       content::PermissionType permission,
       const GURL& requesting_origin,
       const GURL& embedding_origin) override;
@@ -48,7 +48,7 @@
       content::PermissionType permission,
       const GURL& requesting_origin,
       const GURL& embedding_origin,
-      const base::Callback<void(content::mojom::PermissionStatus)>& callback)
+      const base::Callback<void(blink::mojom::PermissionStatus)>& callback)
       override;
   void UnsubscribePermissionStatusChange(int subscription_id) override;
 
diff --git a/build/get_landmines.py b/build/get_landmines.py
index 372a5d2..395c18f 100755
--- a/build/get_landmines.py
+++ b/build/get_landmines.py
@@ -54,7 +54,7 @@
       gyp_msvs_version().startswith('2013')):
     print "Switch to VS2013"
   if (platform() == 'win' and gyp_msvs_version().startswith('2015')):
-    print 'Switch to VS2015 Update 2 almost-done'
+    print 'Switch to VS2015 Update 2'
   print 'Need to clobber everything due to an IDL change in r154579 (blink)'
   print 'Need to clobber everything due to gen file moves in r175513 (Blink)'
   if (platform() != 'ios'):
diff --git a/build/vs_toolchain.py b/build/vs_toolchain.py
index 4d0380e..6138f0e 100755
--- a/build/vs_toolchain.py
+++ b/build/vs_toolchain.py
@@ -278,8 +278,8 @@
   """Load a list of SHA1s corresponding to the toolchains that we want installed
   to build with."""
   if GetVisualStudioVersion() == '2015':
-    # Update 1 with hot fixes.
-    return ['a3796183a9fc4d22a687c5212b9c76dbd136d70d']
+    # Update 2.
+    return ['95ddda401ec5678f15eeed01d2bee08fcbc5ee97']
   else:
     return ['4087e065abebdca6dbd0caca2910c6718d2ec67f']
 
diff --git a/cc/proto/layer_tree_settings.proto b/cc/proto/layer_tree_settings.proto
index 4fa3b797..fa141f1 100644
--- a/cc/proto/layer_tree_settings.proto
+++ b/cc/proto/layer_tree_settings.proto
@@ -54,7 +54,6 @@
   optional float skewport_target_time_in_seconds = 31;
   optional int32 skewport_extrapolation_limit_in_content_pixels = 32;
   optional uint32 max_memory_for_prepaint_percentage = 33;
-  optional bool strict_layer_property_change_checking = 34;
   optional bool use_zero_copy = 35;
   optional bool use_partial_raster = 36;
   optional bool enable_elastic_overscroll = 37;
diff --git a/cc/trees/layer_tree_settings.h b/cc/trees/layer_tree_settings.h
index 50a02ba..b4f56eb 100644
--- a/cc/trees/layer_tree_settings.h
+++ b/cc/trees/layer_tree_settings.h
@@ -74,7 +74,6 @@
   float skewport_target_time_in_seconds;
   int skewport_extrapolation_limit_in_content_pixels;
   size_t max_memory_for_prepaint_percentage;
-  bool strict_layer_property_change_checking;
   bool use_zero_copy;
   bool use_partial_raster;
   bool enable_elastic_overscroll;
diff --git a/cc/trees/layer_tree_settings_unittest.cc b/cc/trees/layer_tree_settings_unittest.cc
index 8c10a1a..cf9e279 100644
--- a/cc/trees/layer_tree_settings_unittest.cc
+++ b/cc/trees/layer_tree_settings_unittest.cc
@@ -74,8 +74,6 @@
       settings.skewport_extrapolation_limit_in_content_pixels * 3 + 1;
   settings.max_memory_for_prepaint_percentage =
       settings.max_memory_for_prepaint_percentage * 3 + 1;
-  settings.strict_layer_property_change_checking =
-      !settings.strict_layer_property_change_checking;
   settings.use_zero_copy = !settings.use_zero_copy;
   settings.use_partial_raster = !settings.use_partial_raster;
   settings.enable_elastic_overscroll = !settings.enable_elastic_overscroll;
@@ -134,7 +132,6 @@
   settings.skewport_target_time_in_seconds = 0.6f;
   settings.skewport_extrapolation_limit_in_content_pixels = 61;
   settings.max_memory_for_prepaint_percentage = 62;
-  settings.strict_layer_property_change_checking = true;
   settings.use_zero_copy = true;
   settings.use_partial_raster = true;
   settings.enable_elastic_overscroll = false;
diff --git a/cc/trees/remote_channel_impl.cc b/cc/trees/remote_channel_impl.cc
index a55dc97..58fdca78 100644
--- a/cc/trees/remote_channel_impl.cc
+++ b/cc/trees/remote_channel_impl.cc
@@ -63,6 +63,7 @@
   // If we don't have an output surface, queue the message and defer processing
   // it till we initialize a new output surface.
   if (main().waiting_for_output_surface_initialization) {
+    VLOG(1) << "Queueing message proto since output surface was released.";
     main().pending_messages.push(proto->to_impl());
   } else {
     HandleProto(proto->to_impl());
@@ -92,6 +93,7 @@
                                 proxy_impl_weak_ptr_));
       break;
     case proto::CompositorMessageToImpl::SET_NEEDS_COMMIT:
+      VLOG(1) << "Received commit request from the engine.";
       ImplThreadTaskRunner()->PostTask(
           FROM_HERE,
           base::Bind(&ProxyImpl::SetNeedsCommitOnImpl, proxy_impl_weak_ptr_));
@@ -100,11 +102,14 @@
       const proto::SetDeferCommits& defer_commits_message =
           proto.defer_commits_message();
       bool defer_commits = defer_commits_message.defer_commits();
+      VLOG(1) << "Received set defer commits to: " << defer_commits
+              << " from the engine.";
       ImplThreadTaskRunner()->PostTask(
           FROM_HERE, base::Bind(&ProxyImpl::SetDeferCommitsOnImpl,
                                 proxy_impl_weak_ptr_, defer_commits));
     } break;
     case proto::CompositorMessageToImpl::START_COMMIT: {
+      VLOG(1) << "Received commit proto from the engine.";
       base::TimeTicks main_thread_start_time = base::TimeTicks::Now();
       const proto::StartCommit& start_commit_message =
           proto.start_commit_message();
@@ -115,6 +120,7 @@
         DebugScopedSetMainThreadBlocked main_thread_blocked(
             task_runner_provider_);
         CompletionEvent completion;
+        VLOG(1) << "Starting commit.";
         ImplThreadTaskRunner()->PostTask(
             FROM_HERE,
             base::Bind(&ProxyImpl::StartCommitOnImpl, proxy_impl_weak_ptr_,
@@ -129,12 +135,15 @@
           proto.begin_main_frame_aborted_message();
       CommitEarlyOutReason reason = CommitEarlyOutReasonFromProtobuf(
           begin_main_frame_aborted_message.reason());
+      VLOG(1) << "Received BeginMainFrameAborted from the engine with reason: "
+              << CommitEarlyOutReasonToString(reason);
       ImplThreadTaskRunner()->PostTask(
           FROM_HERE,
           base::Bind(&ProxyImpl::BeginMainFrameAbortedOnImpl,
                      proxy_impl_weak_ptr_, reason, main_thread_start_time));
     } break;
     case proto::CompositorMessageToImpl::SET_NEEDS_REDRAW: {
+      VLOG(1) << "Received redraw request from the engine.";
       const proto::SetNeedsRedraw& set_needs_redraw_message =
           proto.set_needs_redraw_message();
       gfx::Rect damaged_rect =
@@ -168,6 +177,7 @@
 void RemoteChannelImpl::ReleaseOutputSurface() {
   DCHECK(task_runner_provider_->IsMainThread());
   DCHECK(!main().waiting_for_output_surface_initialization);
+  VLOG(1) << "Releasing Output Surface";
 
   {
     CompletionEvent completion;
@@ -183,6 +193,7 @@
 
 void RemoteChannelImpl::SetVisible(bool visible) {
   DCHECK(task_runner_provider_->IsMainThread());
+  VLOG(1) << "Setting visibility to: " << visible;
 
   ImplThreadTaskRunner()->PostTask(
       FROM_HERE,
@@ -415,6 +426,7 @@
     return;
   }
 
+  VLOG(1) << "OutputSurface initialized successfully";
   main().renderer_capabilities = capabilities;
   main().layer_tree_host->DidInitializeOutputSurface();
 
@@ -423,6 +435,7 @@
   // initialized.
   main().waiting_for_output_surface_initialization = false;
   while (!main().pending_messages.empty()) {
+    VLOG(1) << "Handling queued message";
     HandleProto(main().pending_messages.front());
     main().pending_messages.pop();
   }
@@ -436,6 +449,7 @@
 void RemoteChannelImpl::SendMessageProtoOnMain(
     scoped_ptr<proto::CompositorMessage> proto) {
   DCHECK(task_runner_provider_->IsMainThread());
+  VLOG(1) << "Sending BeginMainFrame request to the engine.";
 
   main().remote_proto_channel->SendCompositorProto(*proto);
 }
diff --git a/cc/trees/remote_channel_main.cc b/cc/trees/remote_channel_main.cc
index 3aea001..a5e9483 100644
--- a/cc/trees/remote_channel_main.cc
+++ b/cc/trees/remote_channel_main.cc
@@ -83,6 +83,7 @@
       to_impl_proto->mutable_defer_commits_message();
   defer_commits_message->set_defer_commits(defer_commits);
 
+  VLOG(1) << "Sending defer commits: " << defer_commits << " to client.";
   SendMessageProto(proto);
 }
 
@@ -118,6 +119,7 @@
       to_impl_proto->mutable_set_needs_redraw_message();
   RectToProto(damage_rect, set_needs_redraw_message->mutable_damaged_rect());
 
+  VLOG(1) << "Sending redraw request to client.";
   SendMessageProto(proto);
 
   // The client will not inform us when the frame buffers are swapped.
@@ -132,6 +134,7 @@
   to_impl_proto->set_message_type(
       proto::CompositorMessageToImpl::SET_NEEDS_COMMIT);
 
+  VLOG(1) << "Sending commit request to client.";
   SendMessageProto(proto);
 }
 
@@ -147,6 +150,8 @@
   CommitEarlyOutReasonToProtobuf(
       reason, begin_main_frame_aborted_message->mutable_reason());
 
+  VLOG(1) << "Sending BeginMainFrameAborted message to client with reason: "
+          << CommitEarlyOutReasonToString(reason);
   SendMessageProto(proto);
 }
 
@@ -163,6 +168,8 @@
   layer_tree_host->ToProtobufForCommit(
       start_commit_message->mutable_layer_tree_host());
 
+  VLOG(1) << "Sending commit message to client. Commit bytes size: "
+          << proto.ByteSize();
   SendMessageProto(proto);
 
   // In order to avoid incurring the overhead for the client to send us a
@@ -197,6 +204,7 @@
       initialize_impl_proto->mutable_layer_tree_settings();
   layer_tree_host->settings().ToProtobuf(settings_proto);
 
+  VLOG(1) << "Sending initialize message to client";
   SendMessageProto(proto);
   initialized_ = true;
 }
@@ -207,6 +215,7 @@
   proto::CompositorMessageToImpl* to_impl_proto = proto.mutable_to_impl();
   to_impl_proto->set_message_type(proto::CompositorMessageToImpl::CLOSE_IMPL);
 
+  VLOG(1) << "Sending close message to client.";
   SendMessageProto(proto);
   initialized_ = false;
 }
@@ -225,6 +234,7 @@
       NOTIMPLEMENTED() << "Ignoring message proto of unknown type";
       break;
     case proto::CompositorMessageToMain::BEGIN_MAIN_FRAME: {
+      VLOG(1) << "Received BeginMainFrame request from client.";
       const proto::BeginMainFrame& begin_main_frame_message =
           proto.begin_main_frame_message();
       scoped_ptr<BeginMainFrameAndCommitState> begin_main_frame_state;
diff --git a/chrome/VERSION b/chrome/VERSION
index b4131a77..3be449b0 100644
--- a/chrome/VERSION
+++ b/chrome/VERSION
@@ -1,4 +1,4 @@
 MAJOR=51
 MINOR=0
-BUILD=2696
+BUILD=2697
 PATCH=0
diff --git a/chrome/android/java/res/layout/new_tab_page.xml b/chrome/android/java/res/layout/new_tab_page.xml
index 1c3af21..1d286fa 100644
--- a/chrome/android/java/res/layout/new_tab_page.xml
+++ b/chrome/android/java/res/layout/new_tab_page.xml
@@ -5,151 +5,20 @@
 
 <org.chromium.chrome.browser.ntp.NewTabPageView
     xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:chrome="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:paddingTop="@dimen/tab_strip_height" >
 
-    <org.chromium.chrome.browser.ntp.NewTabScrollView
-        android:id="@+id/ntp_scrollview"
-        android:background="@color/ntp_bg"
-        android:fillViewport="true"
+    <ViewStub
+        android:id="@+id/new_tab_page_layout_stub"
+        android:inflatedId="@+id/ntp_scrollview"
         android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:layout_marginBottom="48dp"
-        android:focusable="true"
-        android:focusableInTouchMode="true"
-        android:contentDescription="@string/accessibility_new_tab_page" >
-
-        <org.chromium.chrome.browser.ntp.NewTabPageLayout
-            android:id="@+id/ntp_content"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:layout_gravity="center_horizontal"
-            android:orientation="vertical"
-            android:gravity="center"
-            android:paddingTop="@dimen/toolbar_height_no_shadow"
-            android:visibility="gone"
-            chrome:maxWidth="692dp" >
-
-            <!-- Spacer. Note: this must have layout_weight="1" and the other spacers must have
-                 layout_weight="0". The NewTabPageLayout will redistribute the extra space between
-                 them. -->
-            <View
-                android:id="@+id/ntp_top_spacer"
-                android:layout_width="0dp"
-                android:layout_height="0dp"
-                android:layout_weight="1"
-                android:visibility="invisible" />
-
-            <!-- Search provider logo -->
-            <org.chromium.chrome.browser.ntp.LogoView
-                android:id="@+id/search_provider_logo"
-                android:layout_width="wrap_content"
-                android:layout_height="@dimen/ntp_logo_height"
-                android:layout_marginStart="16dp"
-                android:layout_marginEnd="16dp"
-                android:layout_marginTop="26dp"
-                android:layout_marginBottom="30dp"
-                android:src="@drawable/google_logo" />
-
-            <!-- Search box -->
-            <LinearLayout
-                android:id="@+id/search_box"
-                android:layout_width="match_parent"
-                android:layout_height="48dp"
-                android:layout_marginStart="12dp"
-                android:layout_marginEnd="12dp"
-                android:layout_marginBottom="8dp"
-                android:gravity="center_vertical"
-                android:background="@drawable/bg_ntp_search_box"
-                android:orientation="horizontal" >
-                <EditText
-                    android:id="@+id/search_box_text"
-                    android:layout_width="0dp"
-                    android:layout_height="match_parent"
-                    android:layout_marginStart="12dp"
-                    android:layout_weight="1"
-                    android:background="@null"
-                    android:ellipsize="end"
-                    android:focusableInTouchMode="false"
-                    android:gravity="center_vertical"
-                    android:inputType="text"
-                    android:singleLine="true"
-                    android:textSize="@dimen/location_bar_url_text_size" />
-                <org.chromium.chrome.browser.widget.TintedImageView
-                    android:id="@+id/voice_search_button"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_marginStart="8dp"
-                    android:layout_marginEnd="8dp"
-                    android:contentDescription="@string/accessibility_toolbar_btn_mic"
-                    android:src="@drawable/btn_mic" />
-            </LinearLayout>
-
-            <!-- Spacer -->
-            <View
-                android:id="@+id/ntp_middle_spacer"
-                android:layout_width="0dp"
-                android:layout_height="0dp"
-                android:layout_weight="0"
-                android:visibility="invisible" />
-
-            <!-- Most visited items -->
-            <org.chromium.chrome.browser.ntp.MostVisitedLayout
-                android:id="@+id/most_visited_layout"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_marginBottom="16dp"
-                android:layout_marginStart="12dp"
-                android:layout_marginEnd="12dp"
-                android:layout_gravity="center_horizontal"
-                android:paddingTop="@dimen/most_visited_layout_padding_top"
-                android:paddingBottom="4dp" />
-
-            <!-- Most visited items placeholder -->
-            <ViewStub
-                android:id="@+id/most_visited_placeholder_stub"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_weight="1"
-                android:inflatedId="@+id/most_visited_placeholder"
-                android:layout="@layout/most_visited_placeholder" />
-
-            <android.support.v7.widget.RecyclerView
-                android:id="@+id/snippets_card_list"
-                android:scrollbars="none"
-                android:visibility="gone"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"/>
-
-            <!-- Spacer -->
-            <View
-                android:id="@+id/ntp_bottom_spacer"
-                android:layout_width="0dp"
-                android:layout_height="0dp"
-                android:layout_weight="0"
-                android:visibility="invisible" />
-
-            <View
-                android:id="@+id/no_search_logo_spacer"
-                android:layout_width="match_parent"
-                android:layout_height="0dp"
-                android:layout_weight="1"
-                android:visibility="gone" />
-
-            <View
-                android:id="@+id/ntp_scroll_spacer"
-                android:layout_width="match_parent"
-                android:layout_height="0dp"
-                android:visibility="gone" />
-        </org.chromium.chrome.browser.ntp.NewTabPageLayout>
-    </org.chromium.chrome.browser.ntp.NewTabScrollView>
+        android:layout_height="match_parent" />
 
     <!-- Bookmarks and Recent tabs buttons -->
     <org.chromium.chrome.browser.ntp.NewTabPageToolbar
         android:id="@+id/ntp_toolbar"
-        android:background="#fff"
+        android:background="@color/ntp_bg"
         android:layout_width="match_parent"
         android:layout_height="48dp"
         android:layout_gravity="bottom"
diff --git a/chrome/android/java/res/layout/new_tab_page_incognito.xml b/chrome/android/java/res/layout/new_tab_page_incognito.xml
index 00777bf..2c0c9e0 100644
--- a/chrome/android/java/res/layout/new_tab_page_incognito.xml
+++ b/chrome/android/java/res/layout/new_tab_page_incognito.xml
@@ -11,7 +11,7 @@
     android:layout_height="match_parent"
     android:paddingTop="@dimen/tab_strip_height" >
 
-    <org.chromium.chrome.browser.ntp.NewTabScrollView
+    <org.chromium.chrome.browser.ntp.NewTabPageScrollView
         android:id="@+id/ntp_scrollview"
         android:background="@color/ntp_bg_incognito"
         android:layout_width="match_parent"
@@ -78,6 +78,6 @@
 
         </LinearLayout>
 
-    </org.chromium.chrome.browser.ntp.NewTabScrollView>
+    </org.chromium.chrome.browser.ntp.NewTabPageScrollView>
 
 </org.chromium.chrome.browser.ntp.IncognitoNewTabPageView>
diff --git a/chrome/android/java/res/layout/new_tab_page_layout.xml b/chrome/android/java/res/layout/new_tab_page_layout.xml
new file mode 100644
index 0000000..14e589aa
--- /dev/null
+++ b/chrome/android/java/res/layout/new_tab_page_layout.xml
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 2016 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. -->
+<org.chromium.chrome.browser.ntp.NewTabPageLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:chrome="http://schemas.android.com/apk/res-auto"
+    android:id="@+id/ntp_content"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:layout_gravity="center_horizontal"
+    android:orientation="vertical"
+    android:gravity="center"
+    android:paddingTop="@dimen/toolbar_height_no_shadow"
+    android:visibility="gone"
+    chrome:maxWidth="692dp" >
+
+    <!-- Spacer. Note: this must have layout_weight="1" and the other spacers must have
+         layout_weight="0". The NewTabPageLayout will redistribute the extra space between
+         them. -->
+    <View
+        android:id="@+id/ntp_top_spacer"
+        android:layout_width="0dp"
+        android:layout_height="0dp"
+        android:layout_weight="1"
+        android:visibility="invisible" />
+
+    <!-- Search provider logo -->
+    <org.chromium.chrome.browser.ntp.LogoView
+        android:id="@+id/search_provider_logo"
+        android:layout_width="wrap_content"
+        android:layout_height="@dimen/ntp_logo_height"
+        android:layout_marginStart="16dp"
+        android:layout_marginEnd="16dp"
+        android:layout_marginTop="26dp"
+        android:layout_marginBottom="30dp"
+        android:src="@drawable/google_logo" />
+
+    <!-- Search box -->
+    <LinearLayout
+        android:id="@+id/search_box"
+        android:layout_width="match_parent"
+        android:layout_height="48dp"
+        android:layout_marginStart="12dp"
+        android:layout_marginEnd="12dp"
+        android:layout_marginBottom="8dp"
+        android:gravity="center_vertical"
+        android:background="@drawable/bg_ntp_search_box"
+        android:orientation="horizontal" >
+        <EditText
+            android:id="@+id/search_box_text"
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_marginStart="12dp"
+            android:layout_weight="1"
+            android:background="@null"
+            android:ellipsize="end"
+            android:focusableInTouchMode="false"
+            android:gravity="center_vertical"
+            android:inputType="text"
+            android:singleLine="true"
+            android:textSize="@dimen/location_bar_url_text_size" />
+        <org.chromium.chrome.browser.widget.TintedImageView
+            android:id="@+id/voice_search_button"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="8dp"
+            android:layout_marginEnd="8dp"
+            android:contentDescription="@string/accessibility_toolbar_btn_mic"
+            android:src="@drawable/btn_mic" />
+    </LinearLayout>
+
+    <!-- Spacer -->
+    <View
+        android:id="@+id/ntp_middle_spacer"
+        android:layout_width="0dp"
+        android:layout_height="0dp"
+        android:layout_weight="0"
+        android:visibility="invisible" />
+
+    <!-- Most visited items -->
+    <org.chromium.chrome.browser.ntp.MostVisitedLayout
+        android:id="@+id/most_visited_layout"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginBottom="16dp"
+        android:layout_marginStart="12dp"
+        android:layout_marginEnd="12dp"
+        android:layout_gravity="center_horizontal"
+        android:paddingTop="@dimen/most_visited_layout_padding_top"
+        android:paddingBottom="4dp" />
+
+    <!-- Most visited items placeholder -->
+    <ViewStub
+        android:id="@+id/most_visited_placeholder_stub"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_weight="1"
+        android:inflatedId="@+id/most_visited_placeholder"
+        android:layout="@layout/most_visited_placeholder" />
+
+    <!-- Spacer -->
+    <View
+        android:id="@+id/ntp_bottom_spacer"
+        android:layout_width="0dp"
+        android:layout_height="0dp"
+        android:layout_weight="0"
+        android:visibility="invisible" />
+
+    <View
+        android:id="@+id/no_search_logo_spacer"
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:layout_weight="1"
+        android:visibility="gone" />
+
+    <View
+        android:id="@+id/ntp_scroll_spacer"
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:visibility="gone" />
+</org.chromium.chrome.browser.ntp.NewTabPageLayout>
diff --git a/chrome/android/java/res/layout/new_tab_page_recycler_view.xml b/chrome/android/java/res/layout/new_tab_page_recycler_view.xml
new file mode 100644
index 0000000..1411662f
--- /dev/null
+++ b/chrome/android/java/res/layout/new_tab_page_recycler_view.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 2016 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. -->
+
+<org.chromium.chrome.browser.ntp.v2.NewTabPageRecyclerView
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:background="@color/ntp_with_cards_bg"
+    android:fillViewport="true"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:focusable="true"
+    android:focusableInTouchMode="true"
+    android:contentDescription="@string/accessibility_new_tab_page" />
diff --git a/chrome/android/java/res/layout/new_tab_page_scroll_view.xml b/chrome/android/java/res/layout/new_tab_page_scroll_view.xml
new file mode 100644
index 0000000..c359c0a1
--- /dev/null
+++ b/chrome/android/java/res/layout/new_tab_page_scroll_view.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 2016 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. -->
+
+<org.chromium.chrome.browser.ntp.NewTabPageScrollView
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:background="@color/ntp_bg"
+    android:fillViewport="true"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:layout_marginBottom="48dp"
+    android:focusable="true"
+    android:focusableInTouchMode="true"
+    android:contentDescription="@string/accessibility_new_tab_page" >
+
+    <include layout="@layout/new_tab_page_layout" />
+
+</org.chromium.chrome.browser.ntp.NewTabPageScrollView>
diff --git a/chrome/android/java/res/layout/new_tab_page_snippets_card.xml b/chrome/android/java/res/layout/new_tab_page_snippets_card.xml
index b8f28931..5189e51 100644
--- a/chrome/android/java/res/layout/new_tab_page_snippets_card.xml
+++ b/chrome/android/java/res/layout/new_tab_page_snippets_card.xml
@@ -8,64 +8,53 @@
     android:id="@+id/snippets_card_view"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
+    android:padding="16dp"
     android:background="@drawable/bg_find_toolbar_popup">
-    
+
     <ImageView
         android:id="@+id/article_thumbnail"
         android:layout_width="@dimen/snippets_thumbnail_size"
         android:layout_height="@dimen/snippets_thumbnail_size"
         android:layout_alignParentTop="true"
-        android:layout_alignParentStart="true"           
+        android:layout_alignParentEnd="true"
+        android:layout_marginStart="16dp"
+        android:scaleType="centerCrop"
         android:contentDescription="@null"
-        android:padding="8dp"            
         android:src="@null"/>
-    
+
     <TextView
         android:id="@+id/article_headline"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:layout_toEndOf="@+id/article_thumbnail"
+        android:layout_alignParentStart="true"
+        android:layout_toStartOf="@+id/article_thumbnail"
         android:maxLines="2"
-        android:paddingTop="8dp"
-        android:paddingStart="8dp"
-        android:paddingEnd="8dp"                
-        android:textSize="18sp"
-        android:textColor="@color/snippets_headline_text_color" />
-    
-    <TextView
-        android:id="@+id/article_publisher"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_below="@+id/article_headline"
-        android:layout_toEndOf="@+id/article_thumbnail"                
         android:ellipsize="end"
-        android:maxLines="1"                
-        android:padding="8dp"
-        android:textSize="14sp"
-        android:textColor="@color/snippets_publisher_name_color" />
-    
+        android:textSize="16sp"
+        android:textColor="@color/snippets_headline_text_color" />
+
     <TextView
         android:id="@+id/article_snippet"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_alignParentStart="true"
-        android:layout_below="@+id/article_thumbnail"
-        android:padding="8dp"
+        android:layout_below="@+id/article_headline"
+        android:layout_toStartOf="@+id/article_thumbnail"
+        android:maxLines="2"
+        android:layout_marginTop="8dp"
+        android:ellipsize="end"
         android:textSize="14sp"
-        android:textColor="@color/snippets_text_color"
-        android:visibility="gone" />
-            
-     <TextView
-        android:id="@+id/read_more_link"
-        android:layout_width="wrap_content"
+        android:textColor="@color/snippets_text_color" />
+
+    <TextView
+        android:id="@+id/article_publisher"
+        android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:layout_alignParentEnd="true"
         android:layout_below="@+id/article_snippet"
-        android:padding="16dp"
-        android:text="@string/snippets_ntp_read_more_link_text"
-        android:textAllCaps="true"
+        android:layout_toStartOf="@+id/article_thumbnail"
+        android:layout_marginTop="16dp"
+        android:maxLines="1"
+        android:ellipsize="end"
         android:textSize="14sp"
-        android:textColor="@color/snippets_read_more_link_color"
-        android:visibility="gone" />
-     
+        android:textColor="@color/snippets_publisher_name_color" />
 </RelativeLayout>
diff --git a/chrome/android/java/res/values-sw600dp/dimens.xml b/chrome/android/java/res/values-sw600dp/dimens.xml
index b35c96b7..d82327fe1 100644
--- a/chrome/android/java/res/values-sw600dp/dimens.xml
+++ b/chrome/android/java/res/values-sw600dp/dimens.xml
@@ -40,7 +40,6 @@
 
     <!-- NTP dimensions -->
     <dimen name="ntp_logo_height">180dp</dimen>
-    <dimen name="snippets_thumbnail_size">120dp</dimen>
 
     <!-- Recent tabs page -->
     <dimen name="recent_tabs_visible_separator_padding">28dp</dimen>
diff --git a/chrome/android/java/res/values/colors.xml b/chrome/android/java/res/values/colors.xml
index d5b691a..b1a9fd6 100644
--- a/chrome/android/java/res/values/colors.xml
+++ b/chrome/android/java/res/values/colors.xml
@@ -79,7 +79,7 @@
     <!-- First Run Experience Colors -->
     <color name="fre_text_color">#000000</color>
     <color name="fre_title_color">#161616</color>
-    
+
     <!-- Account Signin Colors -->
     <!-- As in dimens.xml, signin uses values from the First Run Experience -->
     <color name="signin_light_text_color">#494949</color>
@@ -95,11 +95,11 @@
     <color name="ntp_list_header_text">#333</color>
     <color name="ntp_list_header_subtext">#969696</color>
     <color name="ntp_list_header_subtext_active">#7cadff</color>
-    <color name="snippets_publisher_name_color">#7f7f7f</color>
-    <color name="snippets_text_color">#7f7f7f</color>
-    <color name="snippets_list_header_text_color">#7f7f7f</color>
-    <color name="snippets_headline_text_color">#000000</color>
-    <color name="snippets_read_more_link_color">@color/light_active_color</color>
+    <color name="ntp_with_cards_bg">#f2f2f2</color>
+    <color name="snippets_publisher_name_color">#646464</color>
+    <color name="snippets_text_color">#646464</color>
+    <color name="snippets_list_header_text_color">#646464</color>
+    <color name="snippets_headline_text_color">#333333</color>
 
     <!-- Signin promo screen colors -->
     <color name="illustration_background_color">#4FC3F7</color>
diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res/values/dimens.xml
index 1a1e01b5..e2e5eb8 100644
--- a/chrome/android/java/res/values/dimens.xml
+++ b/chrome/android/java/res/values/dimens.xml
@@ -271,8 +271,8 @@
     <dimen name="ntp_list_item_min_height">48dp</dimen>
     <dimen name="ntp_list_item_text_size">16sp</dimen>
     <dimen name="ntp_shadow_height">9dp</dimen>
-    <dimen name="snippets_thumbnail_size">90dp</dimen>
-    
+    <dimen name="snippets_thumbnail_size">72dp</dimen>
+
     <!-- Interests page -->
     <dimen name="ntp_interest_item_text_size">20sp</dimen>
     <dimen name="ntp_interest_item_min_height">180dp</dimen>
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeApplication.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeApplication.java
index 6c1c5f86..af46032 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeApplication.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeApplication.java
@@ -862,7 +862,7 @@
      */
     private void cacheNativeFlags() {
         if (sIsFinishedCachingNativeFlags) return;
-        FeatureUtilities.cacheHerbFlavor();
+        FeatureUtilities.cacheNativeFlags();
         sIsFinishedCachingNativeFlags = true;
     }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeSwitches.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeSwitches.java
index 5183214f..9a8d754 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeSwitches.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeSwitches.java
@@ -233,7 +233,8 @@
     /**
      * Forces a user down the document to tabbed mode migration pathway.
      */
-    public static final String ENABLE_FORCED_MIGRATION = "enable-forced-migration";
+    public static final String ENABLE_FORCED_MIGRATION_TO_TABBED_MODE =
+            "enable-forced-migration-to-tabbed-mode";
 
     /**
      * Determines which of the Herb prototypes is being tested.
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/media/router/cast/CastSessionImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/media/router/cast/CastSessionImpl.java
index 27dcf6b..3339a72 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/media/router/cast/CastSessionImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/media/router/cast/CastSessionImpl.java
@@ -129,21 +129,28 @@
                             MediaNotificationManager.show(context, mNotificationBuilder.build());
                         }
                     });
+            mMediaPlayer.setOnMetadataUpdatedListener(
+                    new RemoteMediaPlayer.OnMetadataUpdatedListener() {
+                        @Override
+                        public void onMetadataUpdated() {
+                            setNotificationMetadata(mNotificationBuilder);
+                            MediaNotificationManager.show(context, mNotificationBuilder.build());
+                        }
+                    });
         }
 
         mNotificationBuilder = new MediaNotificationInfo.Builder()
-                .setMetadata(new MediaMetadata(mCastDevice.getFriendlyName(), "", ""))
                 .setPaused(false)
                 .setOrigin(origin)
                 // TODO(avayvod): the same session might have more than one tab id. Should we track
                 // the last foreground alive tab and update the notification with it?
                 .setTabId(tabId)
                 .setPrivate(isIncognito)
-                .setIcon(R.drawable.ic_notification_media_route)
                 .setActions(MediaNotificationInfo.ACTION_STOP)
                 .setContentIntent(Tab.createBringTabToFrontIntent(tabId))
                 .setId(R.id.presentation_notification)
                 .setListener(this);
+        setNotificationMetadata(mNotificationBuilder);
         MediaNotificationManager.show(context, mNotificationBuilder.build());
     }
 
@@ -466,4 +473,32 @@
         if (mMediaPlayer != null && !isApiClientInvalid()) mMediaPlayer.requestStatus(mApiClient);
     }
 
+    private void setNotificationMetadata(MediaNotificationInfo.Builder builder) {
+        MediaMetadata notificationMetadata = new MediaMetadata("", "", "");
+        builder.setMetadata(notificationMetadata);
+        builder.setIcon(R.drawable.ic_notification_media_route);
+
+        if (mCastDevice != null) notificationMetadata.setTitle(mCastDevice.getFriendlyName());
+
+        if (mMediaPlayer == null) return;
+
+        com.google.android.gms.cast.MediaInfo info = mMediaPlayer.getMediaInfo();
+        if (info == null) return;
+
+        com.google.android.gms.cast.MediaMetadata metadata = info.getMetadata();
+        if (metadata == null) return;
+
+        String title = metadata.getString(com.google.android.gms.cast.MediaMetadata.KEY_TITLE);
+        if (title != null) notificationMetadata.setTitle(title);
+
+        String artist = metadata.getString(com.google.android.gms.cast.MediaMetadata.KEY_ARTIST);
+        if (artist == null) {
+            artist = metadata.getString(com.google.android.gms.cast.MediaMetadata.KEY_ALBUM_ARTIST);
+        }
+        if (artist != null) notificationMetadata.setArtist(artist);
+
+        String album = metadata.getString(
+                com.google.android.gms.cast.MediaMetadata.KEY_ALBUM_TITLE);
+        if (album != null) notificationMetadata.setAlbum(album);
+    }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/IncognitoNewTabPageView.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/IncognitoNewTabPageView.java
index 669bdf1bc3..25099d1 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/IncognitoNewTabPageView.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/IncognitoNewTabPageView.java
@@ -20,7 +20,7 @@
 
     private IncognitoNewTabPageManager mManager;
     private boolean mFirstShow = true;
-    private NewTabScrollView mScrollView;
+    private NewTabPageScrollView mScrollView;
 
     private int mSnapshotWidth;
     private int mSnapshotHeight;
@@ -49,7 +49,7 @@
     protected void onFinishInflate() {
         super.onFinishInflate();
 
-        mScrollView = (NewTabScrollView) findViewById(R.id.ntp_scrollview);
+        mScrollView = (NewTabPageScrollView) findViewById(R.id.ntp_scrollview);
 
         // FOCUS_BEFORE_DESCENDANTS is needed to support keyboard shortcuts. Otherwise, pressing
         // any shortcut causes the UrlBar to be focused. See ViewRootImpl.leaveTouchMode().
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java
index 322a765..a62a2202 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java
@@ -47,7 +47,8 @@
 import org.chromium.chrome.browser.ntp.NewTabPageView.NewTabPageManager;
 import org.chromium.chrome.browser.ntp.interests.InterestsPage;
 import org.chromium.chrome.browser.ntp.interests.InterestsPage.InterestsClickListener;
-import org.chromium.chrome.browser.ntp.snippets.SnippetsManager;
+import org.chromium.chrome.browser.ntp.snippets.SnippetsBridge;
+import org.chromium.chrome.browser.ntp.snippets.SnippetsBridge.SnippetsObserver;
 import org.chromium.chrome.browser.offlinepages.OfflinePageBridge;
 import org.chromium.chrome.browser.preferences.PrefServiceBridge;
 import org.chromium.chrome.browser.profiles.MostVisitedSites;
@@ -116,7 +117,7 @@
     private String mAnimatedLogoUrl;
     private FakeboxDelegate mFakeboxDelegate;
     private OfflinePageBridge mOfflinePageBridge;
-    private SnippetsManager mSnippetsManager;
+    private SnippetsBridge mSnippetsBridge;
 
     // The timestamp at which the constructor was called.
     private final long mConstructedTimeNs;
@@ -241,7 +242,8 @@
 
         @Override
         public boolean isToolbarEnabled() {
-            return ChromeFeatureList.isEnabled(ChromeFeatureList.NTP_TOOLBAR);
+            return ChromeFeatureList.isEnabled(ChromeFeatureList.NTP_TOOLBAR)
+                    && !ChromeFeatureList.isEnabled(ChromeFeatureList.NTP_SNIPPETS);
         }
 
         private void recordOpenedMostVisitedItem(MostVisitedItem item) {
@@ -415,6 +417,12 @@
         }
 
         @Override
+        public void setSnippetsObserver(SnippetsObserver observer) {
+            if (mIsDestroyed) return;
+            mSnippetsBridge.setObserver(observer);
+        }
+
+        @Override
         public void getURLThumbnail(String url, ThumbnailCallback thumbnailCallback) {
             if (mIsDestroyed) return;
             mMostVisitedSites.getURLThumbnail(url, thumbnailCallback);
@@ -539,7 +547,9 @@
         mProfile = tab.getProfile();
 
         mTitle = activity.getResources().getString(R.string.button_new_tab);
-        mBackgroundColor = ApiCompatibilityUtils.getColor(activity.getResources(), R.color.ntp_bg);
+        mBackgroundColor = ChromeFeatureList.isEnabled(ChromeFeatureList.NTP_SNIPPETS)
+                ? ApiCompatibilityUtils.getColor(activity.getResources(), R.color.ntp_with_cards_bg)
+                : ApiCompatibilityUtils.getColor(activity.getResources(), R.color.ntp_bg);
         mThemeColor = ApiCompatibilityUtils.getColor(
                 activity.getResources(), R.color.default_primary_color);
         TemplateUrlService.getInstance().addObserver(this);
@@ -563,12 +573,14 @@
         mLogoBridge = new LogoBridge(mProfile);
         updateSearchProviderHasLogo();
 
-        mSnippetsManager = new SnippetsManager(mNewTabPageManager, mProfile);
+        if (ChromeFeatureList.isEnabled(ChromeFeatureList.NTP_SNIPPETS)) {
+            mSnippetsBridge = new SnippetsBridge(mProfile);
+        }
 
         LayoutInflater inflater = LayoutInflater.from(activity);
         mNewTabPageView = (NewTabPageView) inflater.inflate(R.layout.new_tab_page, null);
         mNewTabPageView.initialize(mNewTabPageManager, isInSingleUrlBarMode(activity),
-                mSearchProviderHasLogo, mSnippetsManager);
+                mSearchProviderHasLogo, mSnippetsBridge != null);
 
         RecordHistogram.recordBooleanHistogram(
                 "NewTabPage.MobileIsUserOnline", NetworkChangeNotifier.isOnline());
@@ -625,12 +637,7 @@
     }
 
     private void updateSearchProviderHasLogo() {
-        if (ChromeFeatureList.isEnabled(ChromeFeatureList.NTP_SNIPPETS)) {
-            mSearchProviderHasLogo = false;
-            if (mNewTabPageView != null) mNewTabPageView.setSearchProviderHasLogo(false);
-        } else {
-            mSearchProviderHasLogo = TemplateUrlService.getInstance().isDefaultSearchEngineGoogle();
-        }
+        mSearchProviderHasLogo = TemplateUrlService.getInstance().isDefaultSearchEngineGoogle();
     }
 
     private void onSearchEngineUpdated() {
@@ -726,6 +733,7 @@
         assert !mIsDestroyed;
         assert getView().getParent() == null : "Destroy called before removed from window";
         if (mIsVisible) recordNTPInteractionTime();
+
         if (mOfflinePageBridge != null) {
             mOfflinePageBridge = null;
         }
@@ -745,9 +753,9 @@
             mLogoBridge.destroy();
             mLogoBridge = null;
         }
-        if (mSnippetsManager != null) {
-            mSnippetsManager.destroy();
-            mSnippetsManager = null;
+        if (mSnippetsBridge != null) {
+            mSnippetsBridge.destroy();
+            mSnippetsBridge = null;
         }
         if (mMostVisitedItemRemovedController != null) {
             mTab.getSnackbarManager().dismissSnackbars(mMostVisitedItemRemovedController);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java
index ed07b24..2b32ad21 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java
@@ -5,6 +5,7 @@
 package org.chromium.chrome.browser.ntp;
 
 import android.content.Context;
+import android.content.res.Resources;
 import android.util.AttributeSet;
 import android.view.View;
 
@@ -29,6 +30,7 @@
     private final int mMiddleSpacerHeight;
     private final int mBottomSpacerHeight;
     private final int mTotalSpacerHeight;
+    private final int mMostVisitedLayoutBleed;
 
     private int mParentScrollViewportHeight;
 
@@ -37,16 +39,22 @@
     private View mBottomSpacer;
     private View mScrollCompensationSpacer;
 
+    private LogoView mSearchProviderLogoView;
+    private View mSearchBoxView;
+    private MostVisitedLayout mMostVisitedLayout;
+
     /**
      * Constructor for inflating from XML.
      */
     public NewTabPageLayout(Context context, AttributeSet attrs) {
         super(context, attrs);
-        float density = getResources().getDisplayMetrics().density;
+        Resources res = getResources();
+        float density = res.getDisplayMetrics().density;
         mTopSpacerHeight = Math.round(density * TOP_SPACER_HEIGHT_DP);
         mMiddleSpacerHeight = Math.round(density * MIDDLE_SPACER_HEIGHT_DP);
         mBottomSpacerHeight = Math.round(density * BOTTOM_SPACER_HEIGHT_DP);
         mTotalSpacerHeight = Math.round(density * TOTAL_SPACER_HEIGHT_DP);
+        mMostVisitedLayoutBleed = res.getDimensionPixelSize(R.dimen.most_visited_layout_bleed);
     }
 
     @Override
@@ -56,6 +64,9 @@
         mMiddleSpacer = findViewById(R.id.ntp_middle_spacer);
         mBottomSpacer = findViewById(R.id.ntp_bottom_spacer);
         mScrollCompensationSpacer = findViewById(R.id.ntp_scroll_spacer);
+        mSearchProviderLogoView = (LogoView) findViewById(R.id.search_provider_logo);
+        mSearchBoxView = findViewById(R.id.search_box);
+        mMostVisitedLayout = (MostVisitedLayout) findViewById(R.id.most_visited_layout);
     }
 
     /**
@@ -106,6 +117,19 @@
         } else {
             mScrollCompensationSpacer.setVisibility(View.GONE);
         }
+
+        // Make the search box and logo as wide as the most visited items
+        if (mMostVisitedLayout.getVisibility() != GONE) {
+            int mostVisitedWidthSpec = MeasureSpec.makeMeasureSpec(
+                    mMostVisitedLayout.getMeasuredWidth() - mMostVisitedLayoutBleed,
+                    MeasureSpec.EXACTLY);
+            int searchBoxHeight = MeasureSpec.makeMeasureSpec(
+                    mSearchBoxView.getMeasuredHeight(), MeasureSpec.EXACTLY);
+            mSearchBoxView.measure(mostVisitedWidthSpec, searchBoxHeight);
+            int logoHeight = MeasureSpec.makeMeasureSpec(
+                    mSearchProviderLogoView.getMeasuredHeight(), MeasureSpec.EXACTLY);
+            mSearchProviderLogoView.measure(mostVisitedWidthSpec, logoHeight);
+        }
     }
 
     /**
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabScrollView.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageScrollView.java
similarity index 96%
rename from chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabScrollView.java
rename to chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageScrollView.java
index b354d6b..b3fae9b 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabScrollView.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageScrollView.java
@@ -8,7 +8,6 @@
 import android.graphics.Canvas;
 import android.os.Build;
 import android.util.AttributeSet;
-import android.util.Log;
 import android.view.GestureDetector;
 import android.view.KeyEvent;
 import android.view.MotionEvent;
@@ -17,6 +16,7 @@
 import android.view.inputmethod.InputConnection;
 import android.widget.ScrollView;
 
+import org.chromium.base.Log;
 import org.chromium.chrome.R;
 import org.chromium.chrome.browser.widget.FadingShadow;
 
@@ -24,9 +24,8 @@
  * Simple wrapper on top of a ScrollView that will acquire focus when tapped.  Ensures the
  * New Tab page receives focus when clicked.
  */
-public class NewTabScrollView extends ScrollView {
-
-    private static final String TAG = "NewTabScrollView";
+public class NewTabPageScrollView extends ScrollView {
+    private static final String TAG = "NewTabPageScrollView";
 
     /**
      * Listener for scroll changes.
@@ -49,7 +48,7 @@
     /**
      * Constructor needed to inflate from XML.
      */
-    public NewTabScrollView(Context context, AttributeSet attrs) {
+    public NewTabPageScrollView(Context context, AttributeSet attrs) {
         super(context, attrs);
 
         mGestureDetector = new GestureDetector(
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageUma.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageUma.java
index 60681f1..28edcc41 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageUma.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageUma.java
@@ -4,12 +4,17 @@
 
 package org.chromium.chrome.browser.ntp;
 
+import android.support.annotation.IntDef;
+
 import org.chromium.base.metrics.RecordHistogram;
 import org.chromium.base.metrics.RecordUserAction;
 import org.chromium.chrome.browser.rappor.RapporServiceBridge;
 import org.chromium.chrome.browser.util.UrlUtilities;
 import org.chromium.ui.base.PageTransition;
 
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
 /**
  * Records UMA stats for which actions the user takes on the NTP in the
  * "NewTabPage.ActionAndroid" histogram.
@@ -46,6 +51,19 @@
     // The number of possible actions pertinent to Rappor
     private static final int RAPPOR_NUM_ACTIONS = 2;
 
+    /** Possible interactions with the snippets. */
+    @IntDef({SNIPPETS_ACTION_SHOWN, SNIPPETS_ACTION_SCROLLED, SNIPPETS_ACTION_CLICKED})
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface SnippetsAction {}
+    /** Snippets are enabled and are being shown to the user. */
+    public static final int SNIPPETS_ACTION_SHOWN = 0;
+    /** The snippet list has been scrolled. */
+    public static final int SNIPPETS_ACTION_SCROLLED = 1;
+    /** A snippet has been clicked. */
+    public static final int SNIPPETS_ACTION_CLICKED = 2;
+    /** The number of possible actions. */
+    private static final int NUM_SNIPPETS_ACTIONS = 3;
+
     /**
      * Records an action taken by the user on the NTP.
      * @param action One of the ACTION_* values defined in this class.
@@ -108,4 +126,13 @@
                 return;
         }
     }
+
+    /**
+     * Records important events related to snippets.
+     * @param action action key, one of {@link SnippetsAction}'s values.
+     */
+    public static void recordSnippetAction(@SnippetsAction int action) {
+        RecordHistogram.recordEnumeratedHistogram(
+                "NewTabPage.Snippets.Interactions", action, NUM_SNIPPETS_ACTIONS);
+    }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageView.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageView.java
index e2b074a..c43625b 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageView.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageView.java
@@ -16,7 +16,6 @@
 import android.net.Uri;
 import android.support.v4.graphics.drawable.RoundedBitmapDrawable;
 import android.support.v4.graphics.drawable.RoundedBitmapDrawableFactory;
-import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
 import android.text.Editable;
 import android.text.TextUtils;
@@ -34,10 +33,8 @@
 
 import org.chromium.base.Log;
 import org.chromium.base.VisibleForTesting;
-import org.chromium.base.metrics.RecordHistogram;
 import org.chromium.base.metrics.RecordUserAction;
 import org.chromium.chrome.R;
-import org.chromium.chrome.browser.ChromeFeatureList;
 import org.chromium.chrome.browser.favicon.FaviconHelper.FaviconImageCallback;
 import org.chromium.chrome.browser.favicon.FaviconHelper.IconAvailabilityCallback;
 import org.chromium.chrome.browser.favicon.LargeIconBridge.LargeIconCallback;
@@ -45,7 +42,9 @@
 import org.chromium.chrome.browser.ntp.LogoBridge.LogoObserver;
 import org.chromium.chrome.browser.ntp.MostVisitedItem.MostVisitedItemManager;
 import org.chromium.chrome.browser.ntp.NewTabPage.OnSearchBoxScrollListener;
-import org.chromium.chrome.browser.ntp.snippets.SnippetsManager;
+import org.chromium.chrome.browser.ntp.cards.NewTabPageAdapter;
+import org.chromium.chrome.browser.ntp.cards.NewTabPageRecyclerView;
+import org.chromium.chrome.browser.ntp.snippets.SnippetsBridge.SnippetsObserver;
 import org.chromium.chrome.browser.profiles.MostVisitedSites.MostVisitedURLsObserver;
 import org.chromium.chrome.browser.profiles.MostVisitedSites.ThumbnailCallback;
 import org.chromium.chrome.browser.util.ViewUtils;
@@ -62,10 +61,20 @@
 
     private static final int SHADOW_COLOR = 0x11000000;
     private static final long SNAP_SCROLL_DELAY_MS = 30;
-    private static final String TAG = "NewTabPageView";
+    private static final String TAG = "Ntp";
 
-    private ViewGroup mContentView;
-    private NewTabScrollView mScrollView;
+    /**
+     * Indicates which UI mode we are using. Should be checked when manipulating some members, as
+     * they may be unused or {@code null} depending on the mode.
+     */
+    private boolean mUseCardsUi;
+
+    // Note: Only one of these will be valid at a time, depending on if we are using the old NTP
+    // (NewTabPageScrollView) or the new NTP with cards (NewTabPageRecyclerView).
+    private NewTabPageScrollView mScrollView;
+    private NewTabPageRecyclerView mRecyclerView;
+
+    private NewTabPageLayout mContentView;
     private LogoView mSearchProviderLogoView;
     private View mSearchBoxView;
     private TextView mSearchBoxTextView;
@@ -73,7 +82,9 @@
     private MostVisitedLayout mMostVisitedLayout;
     private View mMostVisitedPlaceholder;
     private View mNoSearchLogoSpacer;
-    private RecyclerView mSnippetsView;
+
+    /** Adapter for {@link #mRecyclerView}. Will be {@code null} when using the old UI */
+    private NewTabPageAdapter mNtpAdapter;
 
     private OnSearchBoxScrollListener mSearchBoxScrollListener;
 
@@ -142,6 +153,9 @@
          */
         void setMostVisitedURLsObserver(MostVisitedURLsObserver observer, int numResults);
 
+        /** Sets the observer that will be notified of new snippets. */
+        void setSnippetsObserver(SnippetsObserver observer);
+
         /**
          * Gets a cached thumbnail of a URL.
          * @param url The URL whose thumbnail is being retrieved.
@@ -234,22 +248,41 @@
      *                with the page.
      * @param isSingleUrlBarMode Whether the NTP is in single URL bar mode.
      * @param searchProviderHasLogo Whether the search provider has a logo.
+     * @param useCardsUi Whether to use the new cards based UI or the old one.
      */
     public void initialize(NewTabPageManager manager, boolean isSingleUrlBarMode,
-            boolean searchProviderHasLogo, SnippetsManager snippetsManager) {
+            boolean searchProviderHasLogo, boolean useCardsUi) {
         mManager = manager;
+        ViewStub stub = (ViewStub) findViewById(R.id.new_tab_page_layout_stub);
 
-        mScrollView = (NewTabScrollView) findViewById(R.id.ntp_scrollview);
-        mScrollView.enableBottomShadow(SHADOW_COLOR);
-        mContentView = (ViewGroup) findViewById(R.id.ntp_content);
+        mUseCardsUi = useCardsUi;
+        if (mUseCardsUi) {
+            stub.setLayoutResource(R.layout.new_tab_page_recycler_view);
+            mRecyclerView = (NewTabPageRecyclerView) stub.inflate();
+
+            // Don't attach now, the recyclerView itself will determine when to do it.
+            mContentView = (NewTabPageLayout) LayoutInflater.from(getContext())
+                    .inflate(R.layout.new_tab_page_layout, mRecyclerView, false);
+
+            // Tailor the LayoutParams for the snippets UI, as the configuration in the XML is
+            // made for the ScrollView UI.
+            ViewGroup.LayoutParams params = mContentView.getLayoutParams();
+            params.height = ViewGroup.LayoutParams.WRAP_CONTENT;
+        } else {
+            stub.setLayoutResource(R.layout.new_tab_page_scroll_view);
+            mScrollView = (NewTabPageScrollView) stub.inflate();
+            mScrollView.enableBottomShadow(SHADOW_COLOR);
+            mContentView = (NewTabPageLayout) findViewById(R.id.ntp_content);
+        }
 
         mMostVisitedDesign = new MostVisitedDesign(getContext());
-        mMostVisitedLayout = (MostVisitedLayout) findViewById(R.id.most_visited_layout);
+        mMostVisitedLayout =
+                (MostVisitedLayout) mContentView.findViewById(R.id.most_visited_layout);
         mMostVisitedDesign.initMostVisitedLayout(mMostVisitedLayout, searchProviderHasLogo);
 
-        mSearchProviderLogoView = (LogoView) findViewById(R.id.search_provider_logo);
-        mSearchBoxView = findViewById(R.id.search_box);
-        mNoSearchLogoSpacer = findViewById(R.id.no_search_logo_spacer);
+        mSearchProviderLogoView = (LogoView) mContentView.findViewById(R.id.search_provider_logo);
+        mSearchBoxView = mContentView.findViewById(R.id.search_box);
+        mNoSearchLogoSpacer = mContentView.findViewById(R.id.no_search_logo_spacer);
 
         mSearchBoxTextView = (TextView) mSearchBoxView.findViewById(R.id.search_box_text);
         String hintText = getResources().getString(R.string.search_or_type_url);
@@ -281,7 +314,7 @@
             }
         });
 
-        mVoiceSearchButton = (ImageView) findViewById(R.id.voice_search_button);
+        mVoiceSearchButton = (ImageView) mContentView.findViewById(R.id.voice_search_button);
         mVoiceSearchButton.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
@@ -317,13 +350,16 @@
             }
         } else {
             ((ViewGroup) toolbar.getParent()).removeView(toolbar);
-            FrameLayout.LayoutParams params =
-                    (FrameLayout.LayoutParams) mScrollView.getLayoutParams();
-            params.bottomMargin = 0;
-            mScrollView.setLayoutParams(params);
+            if (!mUseCardsUi) {
+                // Only remove if we're using the old NTP view, the new one does not use a
+                // ScrollView
+                FrameLayout.LayoutParams params =
+                        (FrameLayout.LayoutParams) mScrollView.getLayoutParams();
+                params.bottomMargin = 0;
+                mScrollView.setLayoutParams(params);
+            }
         }
 
-        initializeSearchBoxScrollHandling();
         addOnLayoutChangeListener(this);
         setSearchProviderHasLogo(searchProviderHasLogo);
 
@@ -332,13 +368,12 @@
                 mMostVisitedDesign.getNumberOfTiles(searchProviderHasLogo));
 
         // Set up snippets
-        if (ChromeFeatureList.isEnabled(ChromeFeatureList.NTP_SNIPPETS)) {
-            mSnippetsView = (RecyclerView) findViewById(R.id.snippets_card_list);
-            mSnippetsView.setVisibility(View.VISIBLE);
-            RecordHistogram.recordEnumeratedHistogram(SnippetsManager.SNIPPETS_STATE_HISTOGRAM,
-                    SnippetsManager.SNIPPETS_SHOWN, SnippetsManager.NUM_SNIPPETS_ACTIONS);
-            mSnippetsView.setLayoutManager(new LinearLayoutManager(getContext()));
-            mSnippetsView.addOnScrollListener(new RecyclerView.OnScrollListener() {
+        if (mUseCardsUi) {
+            mNtpAdapter = new NewTabPageAdapter(mManager, mContentView);
+            mRecyclerView.setAdapter(mNtpAdapter);
+
+            NewTabPageUma.recordSnippetAction(NewTabPageUma.SNIPPETS_ACTION_SHOWN);
+            mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
                 private boolean mScrolledOnce = false;
                 @Override
                 public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
@@ -346,13 +381,12 @@
                     RecordUserAction.record("MobileNTP.Snippets.Scrolled");
                     if (mScrolledOnce) return;
                     mScrolledOnce = true;
-                    RecordHistogram.recordEnumeratedHistogram(
-                            SnippetsManager.SNIPPETS_STATE_HISTOGRAM,
-                            SnippetsManager.SNIPPETS_SCROLLED,
-                            SnippetsManager.NUM_SNIPPETS_ACTIONS);
+                    NewTabPageUma.recordSnippetAction(NewTabPageUma.SNIPPETS_ACTION_SCROLLED);
                 }
             });
-            snippetsManager.setSnippetsView(mSnippetsView);
+            initializeSearchBoxRecyclerViewScrollHandling();
+        } else {
+            initializeSearchBoxScrollHandling();
         }
     }
 
@@ -362,10 +396,10 @@
         float percentage = 0;
         // During startup the view may not be fully initialized, so we only calculate the current
         // percentage if some basic view properties are sane.
-        if (mScrollView.getHeight() != 0 && mSearchBoxView.getTop() != 0) {
-            int scrollY = mScrollView.getScrollY();
-            percentage = Math.max(
-                    0f, Math.min(1f, scrollY / (float) mSearchBoxView.getTop()));
+        View wrapperView = mUseCardsUi ? mRecyclerView : mScrollView;
+        if (wrapperView.getHeight() != 0 && mSearchBoxView.getTop() != 0) {
+            int scrollY = getVerticalScroll();
+            percentage = Math.max(0f, Math.min(1f, scrollY / (float) mSearchBoxView.getTop()));
         }
 
         updateVisualsForToolbarTransition(percentage);
@@ -375,6 +409,15 @@
         }
     }
 
+    private void initializeSearchBoxRecyclerViewScrollHandling() {
+        mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
+            @Override
+            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
+                updateSearchBoxOnScroll();
+            }
+        });
+    }
+
     private void initializeSearchBoxScrollHandling() {
         final Runnable mSnapScrollRunnable = new Runnable() {
             @Override
@@ -388,7 +431,7 @@
                 mPendingSnapScroll = false;
             }
         };
-        mScrollView.setOnScrollListener(new NewTabScrollView.OnScrollListener() {
+        mScrollView.setOnScrollListener(new NewTabPageScrollView.OnScrollListener() {
             @Override
             public void onScrollChanged(int l, int t, int oldl, int oldt) {
                 if (mPendingSnapScroll) {
@@ -548,7 +591,7 @@
      */
     private void setUrlFocusChangeAnimationPercentInternal(float percent) {
         mContentView.setTranslationY(percent * (-mMostVisitedLayout.getTop()
-                + mScrollView.getScrollY() + mContentView.getPaddingTop()));
+                + getVerticalScroll() + mContentView.getPaddingTop()));
         updateVisualsForToolbarTransition(percent);
     }
 
@@ -586,7 +629,12 @@
         transformedBounds.set(originalBounds);
         View view = (View) mSearchBoxView.getParent();
         while (view != null) {
-            transformedBounds.offset(-view.getScrollX(), -view.getScrollY());
+            if (view instanceof RecyclerView) {
+                transformedBounds.offset(-((RecyclerView) view).computeHorizontalScrollOffset(),
+                        -((RecyclerView) view).computeVerticalScrollOffset());
+            } else {
+                transformedBounds.offset(-view.getScrollX(), -view.getScrollY());
+            }
             if (view == this) break;
             transformedBounds.offset((int) view.getX(), (int) view.getY());
             view = (View) view.getParent();
@@ -640,23 +688,6 @@
         }
     }
 
-    @Override
-    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
-        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
-
-        // Make the search box and logo the same width as the most visited tiles.
-        if (mMostVisitedLayout.getVisibility() != GONE) {
-            int mostVisitedWidth = MeasureSpec.makeMeasureSpec(mMostVisitedLayout.getMeasuredWidth()
-                    - mMostVisitedDesign.getMostVisitedLayoutBleed(), MeasureSpec.EXACTLY);
-            int searchBoxHeight = MeasureSpec.makeMeasureSpec(
-                    mSearchBoxView.getMeasuredHeight(), MeasureSpec.EXACTLY);
-            int logoHeight = MeasureSpec.makeMeasureSpec(
-                    mSearchProviderLogoView.getMeasuredHeight(), MeasureSpec.EXACTLY);
-            mSearchBoxView.measure(mostVisitedWidth, searchBoxHeight);
-            mSearchProviderLogoView.measure(mostVisitedWidth, logoHeight);
-        }
-    }
-
     /**
      * @see org.chromium.chrome.browser.compositor.layouts.content.
      *         InvalidationAwareThumbnailProvider#shouldCaptureThumbnail()
@@ -664,10 +695,8 @@
     boolean shouldCaptureThumbnail() {
         if (getWidth() == 0 || getHeight() == 0) return false;
 
-        return mSnapshotMostVisitedChanged
-                || getWidth() != mSnapshotWidth
-                || getHeight() != mSnapshotHeight
-                || mScrollView.getScrollY() != mSnapshotScrollY;
+        return mSnapshotMostVisitedChanged || getWidth() != mSnapshotWidth
+                || getHeight() != mSnapshotHeight || getVerticalScroll() != mSnapshotScrollY;
     }
 
     /**
@@ -679,7 +708,7 @@
         ViewUtils.captureBitmap(this, canvas);
         mSnapshotWidth = getWidth();
         mSnapshotHeight = getHeight();
-        mSnapshotScrollY = mScrollView.getScrollY();
+        mSnapshotScrollY = getVerticalScroll();
         mSnapshotMostVisitedChanged = false;
     }
 
@@ -825,15 +854,12 @@
         private static final int ICON_BACKGROUND_COLOR = 0xff787878;
         private static final int ICON_MIN_SIZE_PX = 48;
 
-        private int mMostVisitedLayoutBleed;
         private int mMinIconSize;
         private int mDesiredIconSize;
         private RoundedIconGenerator mIconGenerator;
 
         MostVisitedDesign(Context context) {
             Resources res = context.getResources();
-            mMostVisitedLayoutBleed = res.getDimensionPixelSize(
-                    R.dimen.most_visited_layout_bleed);
             mDesiredIconSize = res.getDimensionPixelSize(R.dimen.most_visited_icon_size);
             // On ldpi devices, mDesiredIconSize could be even smaller than ICON_MIN_SIZE_PX.
             mMinIconSize = Math.min(mDesiredIconSize, ICON_MIN_SIZE_PX);
@@ -848,10 +874,6 @@
             return searchProviderHasLogo ? NUM_TILES : NUM_TILES_NO_LOGO;
         }
 
-        public int getMostVisitedLayoutBleed() {
-            return mMostVisitedLayoutBleed;
-        }
-
         public void initMostVisitedLayout(MostVisitedLayout mostVisitedLayout,
                 boolean searchProviderHasLogo) {
             mostVisitedLayout.setMaxRows(searchProviderHasLogo ? MAX_ROWS : MAX_ROWS_NO_LOGO);
@@ -942,4 +964,12 @@
             }
         }
     }
+
+    private int getVerticalScroll() {
+        if (mUseCardsUi) {
+            return mRecyclerView.computeVerticalScrollOffset();
+        } else {
+            return mScrollView.getScrollY();
+        }
+    }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/AboveTheFoldListItem.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/AboveTheFoldListItem.java
new file mode 100644
index 0000000..3e1efb8
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/AboveTheFoldListItem.java
@@ -0,0 +1,21 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.ntp.cards;
+
+/**
+ * Item in the RecyclerView that will hold the above the fold contents for the NTP, i.e. the
+ * logo, tiles and search bar that are initially visible when opening the NTP.
+ *
+ * When using the new NTP UI, that is based on a RecyclerView, the view containing the entire
+ * content of the old UI is put in the AboveTheFoldListItem, and inserted in the RecyclerView.
+ * Other elements coming after it and initially off-screen are just added to the RecyclerView after
+ * that.
+ */
+class AboveTheFoldListItem implements NewTabPageListItem {
+    @Override
+    public int getType() {
+        return NewTabPageListItem.VIEW_TYPE_ABOVE_THE_FOLD;
+    }
+}
\ No newline at end of file
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapter.java
new file mode 100644
index 0000000..189ab13
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapter.java
@@ -0,0 +1,101 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.ntp.cards;
+
+import android.support.v7.widget.RecyclerView.Adapter;
+import android.view.ViewGroup;
+
+import org.chromium.base.Log;
+import org.chromium.chrome.browser.ntp.NewTabPageLayout;
+import org.chromium.chrome.browser.ntp.NewTabPageView.NewTabPageManager;
+import org.chromium.chrome.browser.ntp.snippets.SnippetArticle;
+import org.chromium.chrome.browser.ntp.snippets.SnippetArticleViewHolder;
+import org.chromium.chrome.browser.ntp.snippets.SnippetHeaderListItem;
+import org.chromium.chrome.browser.ntp.snippets.SnippetsBridge.SnippetsObserver;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * A class that handles merging above the fold elements and below the fold cards into an adapter
+ * that will be used to back the NTP RecyclerView. The first element in the adapter should always be
+ * the above-the-fold view (containing the logo, search box, and most visited tiles) and subsequent
+ * elements will be the cards shown to the user
+ */
+public class NewTabPageAdapter extends Adapter<NewTabPageViewHolder> implements SnippetsObserver {
+    private static final String TAG = "Ntp";
+
+    private final NewTabPageManager mNewTabPageManager;
+    private final NewTabPageLayout mNewTabPageLayout;
+    private final AboveTheFoldListItem mAboveTheFoldListItem;
+    private final List<NewTabPageListItem> mNewTabPageListItems;
+
+    /**
+     * Constructor to create the manager for all the cards to display on the NTP
+     *
+     * @param manager the NewTabPageManager to use to interact with the snippets service and the
+     *                rest of the system.
+     * @param newTabPageLayout the layout encapsulating all the above-the-fold elements
+     *                         (logo, search box, most visited tiles)
+     */
+    public NewTabPageAdapter(NewTabPageManager manager, NewTabPageLayout newTabPageLayout) {
+        mNewTabPageManager = manager;
+        mNewTabPageLayout = newTabPageLayout;
+        mAboveTheFoldListItem = new AboveTheFoldListItem();
+        mNewTabPageListItems = new ArrayList<NewTabPageListItem>();
+        mNewTabPageListItems.add(mAboveTheFoldListItem);
+
+        mNewTabPageManager.setSnippetsObserver(this);
+    }
+
+    @Override
+    public void onSnippetsReceived(List<SnippetArticle> listSnippets) {
+        int newSnippetCount = listSnippets.size();
+        Log.d(TAG, "Received %d new snippets.", newSnippetCount);
+        mNewTabPageListItems.clear();
+        mNewTabPageListItems.add(mAboveTheFoldListItem);
+
+        if (newSnippetCount > 0) {
+            mNewTabPageListItems.add(new SnippetHeaderListItem());
+            mNewTabPageListItems.addAll(listSnippets);
+        }
+
+        notifyDataSetChanged();
+    }
+
+    @Override
+    @NewTabPageListItem.ViewType
+    public int getItemViewType(int position) {
+        return mNewTabPageListItems.get(position).getType();
+    }
+
+    @Override
+    public NewTabPageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+        if (viewType == NewTabPageListItem.VIEW_TYPE_ABOVE_THE_FOLD) {
+            return new NewTabPageViewHolder(mNewTabPageLayout);
+        }
+
+        if (viewType == NewTabPageListItem.VIEW_TYPE_HEADER) {
+            return new NewTabPageViewHolder(SnippetHeaderListItem.createView(parent));
+        }
+
+        if (viewType == NewTabPageListItem.VIEW_TYPE_SNIPPET) {
+            return new SnippetArticleViewHolder(
+                    SnippetArticleViewHolder.createView(parent), mNewTabPageManager);
+        }
+
+        return null;
+    }
+
+    @Override
+    public void onBindViewHolder(NewTabPageViewHolder holder, final int position) {
+        holder.onBindViewHolder(mNewTabPageListItems.get(position));
+    }
+
+    @Override
+    public int getItemCount() {
+        return mNewTabPageListItems.size();
+    }
+}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageListItem.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageListItem.java
new file mode 100644
index 0000000..d3ede56
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageListItem.java
@@ -0,0 +1,50 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.ntp.cards;
+
+import android.support.annotation.IntDef;
+import android.support.v7.widget.RecyclerView.Adapter;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+/** Base type for anything to add to the new tab page */
+public interface NewTabPageListItem {
+    /**
+     * View type values for the items that will be held by the NTP's RecyclerView.
+     * @see Adapter#getItemViewType(int)
+     * @see NewTabPageListItem#getType()
+     */
+    @IntDef({VIEW_TYPE_ABOVE_THE_FOLD, VIEW_TYPE_HEADER, VIEW_TYPE_SNIPPET})
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface ViewType {}
+
+    /**
+     * View type for the above the fold item
+     * @see Adapter#getItemViewType(int)
+     */
+    public static final int VIEW_TYPE_ABOVE_THE_FOLD = 1;
+
+    /**
+     * View type for card group headers
+     * @see Adapter#getItemViewType(int)
+     */
+    public static final int VIEW_TYPE_HEADER = 2;
+
+    /**
+     * View type for snippet cards
+     * @see Adapter#getItemViewType(int)
+     */
+    public static final int VIEW_TYPE_SNIPPET = 3;
+
+    /**
+      * Returns the type ({@link ViewType}) of this list item. This is so we can
+      * distinguish between different elements that are held in a single RecyclerView holder.
+      *
+      * @return the type of this list item.
+      */
+    @ViewType
+    public int getType();
+}
\ No newline at end of file
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageRecyclerView.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageRecyclerView.java
new file mode 100644
index 0000000..eb1397a
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageRecyclerView.java
@@ -0,0 +1,97 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.ntp.cards;
+
+import android.content.Context;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.util.AttributeSet;
+import android.view.GestureDetector;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.inputmethod.EditorInfo;
+import android.view.inputmethod.InputConnection;
+
+/**
+ * Simple wrapper on top of a RecyclerView that will acquire focus when tapped.  Ensures the
+ * New Tab page receives focus when clicked.
+ */
+public class NewTabPageRecyclerView extends RecyclerView {
+    /**
+     * Listener for scroll changes.
+     */
+    public interface OnScrollListener {
+        /**
+         * Triggered when the scroll changes.  See ScrollView#onScrollChanged for more
+         * details.
+         */
+        void onScrollChanged(int l, int t, int oldl, int oldt);
+    }
+
+    private GestureDetector mGestureDetector;
+    private OnScrollListener mOnScrollListener;
+
+    /**
+     * Constructor needed to inflate from XML.
+     */
+    public NewTabPageRecyclerView(Context context, AttributeSet attrs) {
+        super(context, attrs);
+
+        mGestureDetector =
+                new GestureDetector(getContext(), new GestureDetector.SimpleOnGestureListener() {
+                    @Override
+                    public boolean onSingleTapUp(MotionEvent e) {
+                        boolean retVal = super.onSingleTapUp(e);
+                        requestFocus();
+                        return retVal;
+                    }
+                });
+        setLayoutManager(new LinearLayoutManager(getContext()));
+    }
+
+    @Override
+    public boolean onInterceptTouchEvent(MotionEvent ev) {
+        mGestureDetector.onTouchEvent(ev);
+        return super.onInterceptTouchEvent(ev);
+    }
+
+    @Override
+    public boolean onTouchEvent(MotionEvent ev) {
+        // Action down would already have been handled in onInterceptTouchEvent
+        if (ev.getActionMasked() != MotionEvent.ACTION_DOWN) {
+            mGestureDetector.onTouchEvent(ev);
+        }
+        return super.onTouchEvent(ev);
+    }
+
+    /**
+     * Sets the listener to be notified of scroll changes.
+     * @param listener The listener to be updated on scroll changes.
+     */
+    public void setOnScrollListener(OnScrollListener listener) {
+        mOnScrollListener = listener;
+    }
+
+    @Override
+    protected void onScrollChanged(int l, int t, int oldl, int oldt) {
+        super.onScrollChanged(l, t, oldl, oldt);
+        if (mOnScrollListener != null) mOnScrollListener.onScrollChanged(l, t, oldl, oldt);
+    }
+
+    @Override
+    public void focusableViewAvailable(View v) {
+        // To avoid odd jumps during NTP animation transitions, we do not attempt to give focus
+        // to child views if this scroll view already has focus.
+        if (hasFocus()) return;
+        super.focusableViewAvailable(v);
+    }
+
+    @Override
+    public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
+        // Fixes lanscape transitions when unfocusing the URL bar: crbug.com/288546
+        outAttrs.imeOptions = EditorInfo.IME_FLAG_NO_FULLSCREEN;
+        return super.onCreateInputConnection(outAttrs);
+    }
+}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageViewHolder.java
new file mode 100644
index 0000000..96b2dfb4
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageViewHolder.java
@@ -0,0 +1,33 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.ntp.cards;
+
+import android.support.v7.widget.RecyclerView;
+import android.view.View;
+
+/**
+ * Holds metadata about an item we want to display on the NTP. An item can be anything that will be
+ * displayed on the NTP RecyclerView.
+ */
+public class NewTabPageViewHolder extends RecyclerView.ViewHolder {
+    /**
+     * Constructs a NewTabPageViewHolder item used to display an part of the NTP (e.g., header,
+     * article snippet, above the fold view, etc.)
+     *
+     * @param itemView The View for this item
+     */
+    public NewTabPageViewHolder(View itemView) {
+        super(itemView);
+    }
+
+    /**
+     * Called when the NTP cards adapter is requested to update the currently visible ViewHolder
+     * with data. The default implementation does nothing.
+     *
+     * @param item The NewTabPageListItem object that holds the data for this ViewHolder
+     */
+    public void onBindViewHolder(NewTabPageListItem item) {
+    }
+}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticle.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticle.java
new file mode 100644
index 0000000..89f8093
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticle.java
@@ -0,0 +1,118 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+package org.chromium.chrome.browser.ntp.snippets;
+
+import android.graphics.drawable.Drawable;
+import android.os.AsyncTask;
+import android.view.View;
+import android.widget.ImageView;
+
+import org.chromium.base.Log;
+import org.chromium.base.StreamUtil;
+import org.chromium.chrome.browser.ntp.cards.NewTabPageListItem;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.net.URL;
+
+/**
+ * Represents the data for an article card on the NTP.
+ */
+public class SnippetArticle implements NewTabPageListItem {
+    private static final String TAG = "SnippetArticle";
+
+    private static final int FADE_IN_ANIMATION_TIME_MS = 300;
+
+    public final String mTitle;
+    public final String mPublisher;
+    public final String mPreviewText;
+    public final String mUrl;
+    public final String mThumbnailUrl;
+    public final long mTimestamp;
+    public final int mPosition;
+
+    private ThumbnailRenderingTask mThumbnailRenderingTask;
+
+    // Async task to create the thumbnail from a URL
+    // TODO(maybelle): This task to retrieve the thumbnail from the web is temporary while
+    // we are prototyping this feature for clank. For the real production feature, we
+    // will likely have to download/decode the thumbnail on the native side.
+    private static class ThumbnailRenderingTask extends AsyncTask<String, Void, Drawable> {
+        private ImageView mThumbnailView;
+
+        ThumbnailRenderingTask(ImageView thumbnailView) {
+            mThumbnailView = thumbnailView;
+        }
+
+        @Override
+        protected Drawable doInBackground(String... params) {
+            if (params[0].isEmpty()) return null;
+            InputStream is = null;
+            try {
+                is = (InputStream) new URL(params[0]).getContent();
+                return Drawable.createFromStream(is, "thumbnail");
+            } catch (MalformedURLException e) {
+                Log.e(TAG, "Could not get image thumbnail due to malformed URL", e);
+            } catch (IOException e) {
+                Log.e(TAG, "Could not get image thumbnail", e);
+            } finally {
+                StreamUtil.closeQuietly(is);
+            }
+            return null;
+        }
+
+        @Override
+        protected void onPostExecute(Drawable thumbnail) {
+            if (thumbnail == null) {
+                mThumbnailView.setVisibility(View.GONE);
+            } else {
+                // Fade in the image thumbnail
+                mThumbnailView.setImageDrawable(thumbnail);
+                mThumbnailView.setVisibility(View.VISIBLE);
+                mThumbnailView.setAlpha(0f);
+                mThumbnailView.animate().alpha(1f).setDuration(FADE_IN_ANIMATION_TIME_MS);
+            }
+        }
+    }
+
+    /**
+     * Creates a SnippetArticle object that will hold the data
+     * @param title the title of the article
+     * @param publisher the canonical publisher name (e.g., New York Times)
+     * @param previewText the snippet preview text
+     * @param url the URL of the article
+     * @param thumbnailUrl the URL of the thumbnail
+     * @param timestamp the time in ms when this article was published
+     * @param position the position of this article in the list of snippets
+     */
+    public SnippetArticle(String title, String publisher, String previewText, String url,
+            String thumbnailUrl, long timestamp, int position) {
+        mTitle = title;
+        mPublisher = publisher;
+        mPreviewText = previewText;
+        mUrl = url;
+        mThumbnailUrl = thumbnailUrl;
+        mTimestamp = timestamp;
+        mPosition = position;
+    }
+
+    @Override
+    public int getType() {
+        return NewTabPageListItem.VIEW_TYPE_SNIPPET;
+    }
+
+    /**
+     * Retrieves this SnippetArticle's thumbnail asynchronously and sets it onto the given
+     * ImageView.
+     *
+     * @param view The ImageView to set the thumbnail onto.
+     */
+    public void setThumbnailOnView(ImageView view) {
+        if (mThumbnailRenderingTask != null) mThumbnailRenderingTask.cancel(true);
+
+        mThumbnailRenderingTask = new ThumbnailRenderingTask(view);
+        mThumbnailRenderingTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, mThumbnailUrl);
+    }
+}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticleViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticleViewHolder.java
new file mode 100644
index 0000000..b85fe1f
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticleViewHolder.java
@@ -0,0 +1,95 @@
+// 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.
+
+package org.chromium.chrome.browser.ntp.snippets;
+
+import android.text.format.DateUtils;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import org.chromium.base.metrics.RecordHistogram;
+import org.chromium.base.metrics.RecordUserAction;
+import org.chromium.chrome.R;
+import org.chromium.chrome.browser.ntp.NewTabPageUma;
+import org.chromium.chrome.browser.ntp.NewTabPageView.NewTabPageManager;
+import org.chromium.chrome.browser.ntp.cards.NewTabPageListItem;
+import org.chromium.chrome.browser.ntp.cards.NewTabPageViewHolder;
+
+/**
+ * A class that represents the view for a single card snippet.
+ */
+public class SnippetArticleViewHolder extends NewTabPageViewHolder implements View.OnClickListener {
+    private final NewTabPageManager mNewTabPageManager;
+    public TextView mHeadlineTextView;
+    public TextView mPublisherTextView;
+    public TextView mArticleSnippetTextView;
+    public ImageView mThumbnailView;
+    public String mUrl;
+    public int mPosition;
+
+    /**
+     * Creates the CardView object to display snippets information
+     *
+     * @param parent The parent view for the card
+     * @return a CardView object for displaying snippets
+     */
+    public static View createView(ViewGroup parent) {
+        return LayoutInflater.from(parent.getContext())
+                .inflate(R.layout.new_tab_page_snippets_card, parent, false);
+    }
+
+    /**
+     * Constructs a SnippetCardItemView item used to display snippets
+     *
+     * @param cardView The View for the snippet card
+     * @param manager The SnippetsManager object used to open an article
+     */
+    public SnippetArticleViewHolder(View cardView, NewTabPageManager manager) {
+        super(cardView);
+
+        mNewTabPageManager = manager;
+        cardView.setOnClickListener(this);
+        mThumbnailView = (ImageView) cardView.findViewById(R.id.article_thumbnail);
+        mHeadlineTextView = (TextView) cardView.findViewById(R.id.article_headline);
+        mPublisherTextView = (TextView) cardView.findViewById(R.id.article_publisher);
+        mArticleSnippetTextView = (TextView) cardView.findViewById(R.id.article_snippet);
+        cardView.addOnAttachStateChangeListener(new View.OnAttachStateChangeListener() {
+            @Override
+            public void onViewAttachedToWindow(View v) {
+                RecordHistogram.recordSparseSlowlyHistogram(
+                        "NewTabPage.Snippets.CardShown", mPosition);
+            }
+
+            @Override
+            public void onViewDetachedFromWindow(View v) {}
+        });
+    }
+
+    @Override
+    public void onClick(View v) {
+        mNewTabPageManager.open(mUrl);
+        RecordUserAction.record("MobileNTP.Snippets.Click");
+        RecordHistogram.recordSparseSlowlyHistogram("NewTabPage.Snippets.CardClicked", mPosition);
+        NewTabPageUma.recordSnippetAction(NewTabPageUma.SNIPPETS_ACTION_CLICKED);
+        NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_SNIPPET);
+    }
+
+    @Override
+    public void onBindViewHolder(NewTabPageListItem article) {
+        SnippetArticle item = (SnippetArticle) article;
+
+        mHeadlineTextView.setText(item.mTitle);
+        mPublisherTextView.setText(
+                DateUtils.getRelativeTimeSpanString(item.mTimestamp, System.currentTimeMillis(),
+                        DateUtils.MINUTE_IN_MILLIS, DateUtils.FORMAT_ABBREV_RELATIVE));
+        mArticleSnippetTextView.setText(item.mPreviewText);
+        mUrl = item.mUrl;
+        mPosition = item.mPosition;
+
+        item.setThumbnailOnView(mThumbnailView);
+    }
+}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetCardItemViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetCardItemViewHolder.java
deleted file mode 100644
index d032d52..0000000
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetCardItemViewHolder.java
+++ /dev/null
@@ -1,111 +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.
-
-package org.chromium.chrome.browser.ntp.snippets;
-
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.view.ViewGroup;
-import android.widget.ImageView;
-import android.widget.TextView;
-
-import org.chromium.base.metrics.RecordHistogram;
-import org.chromium.base.metrics.RecordUserAction;
-import org.chromium.chrome.R;
-import org.chromium.chrome.browser.ntp.NewTabPageUma;
-import org.chromium.chrome.browser.ntp.snippets.SnippetsManager.SnippetArticle;
-import org.chromium.chrome.browser.ntp.snippets.SnippetsManager.SnippetListItem;
-
-/**
- * A class that represents the view for a single card snippet.
- */
-class SnippetCardItemViewHolder extends SnippetListItemViewHolder implements View.OnClickListener {
-    public TextView mHeadlineTextView;
-    public TextView mPublisherTextView;
-    public TextView mArticleSnippetTextView;
-    public TextView mReadMoreLinkTextView;
-    public ImageView mThumbnailView;
-    public String mUrl;
-    public int mPosition;
-
-    /**
-     * Creates the CardView object to display snippets information
-     *
-     * @param parent The parent view for the card
-     * @return a CardView object for displaying snippets
-     */
-    public static View createView(ViewGroup parent) {
-        return LayoutInflater.from(parent.getContext())
-                .inflate(R.layout.new_tab_page_snippets_card, parent, false);
-    }
-
-    /**
-     * Constructs a SnippetCardItemView item used to display snippets
-     *
-     * @param cardView The View for the snippet card
-     * @param manager The SnippetsManager object used to open an article
-     */
-    public SnippetCardItemViewHolder(View cardView, SnippetsManager manager) {
-        super(cardView, manager);
-
-        cardView.setOnClickListener(this);
-        mThumbnailView = (ImageView) cardView.findViewById(R.id.article_thumbnail);
-        mHeadlineTextView = (TextView) cardView.findViewById(R.id.article_headline);
-        mPublisherTextView = (TextView) cardView.findViewById(R.id.article_publisher);
-        mArticleSnippetTextView = (TextView) cardView.findViewById(R.id.article_snippet);
-        mReadMoreLinkTextView = (TextView) cardView.findViewById(R.id.read_more_link);
-        mReadMoreLinkTextView.setOnClickListener(new OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                loadUrl(mUrl);
-                RecordUserAction.record("MobileNTP.Snippets.Click");
-                RecordHistogram.recordSparseSlowlyHistogram(
-                        "NewTabPage.Snippets.CardClicked", mPosition);
-                RecordHistogram.recordEnumeratedHistogram(SnippetsManager.SNIPPETS_STATE_HISTOGRAM,
-                        SnippetsManager.SNIPPETS_CLICKED, SnippetsManager.NUM_SNIPPETS_ACTIONS);
-                NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_SNIPPET);
-            }
-        });
-        cardView.addOnAttachStateChangeListener(new View.OnAttachStateChangeListener() {
-            @Override
-            public void onViewAttachedToWindow(View v) {
-                RecordHistogram.recordSparseSlowlyHistogram(
-                        "NewTabPage.Snippets.CardShown", mPosition);
-            }
-
-            @Override
-            public void onViewDetachedFromWindow(View v) {}
-        });
-    }
-
-    @Override
-    public void onClick(View v) {
-        // Toggle visibility of snippet text
-        int visibility =
-                (mArticleSnippetTextView.getVisibility() == View.GONE) ? View.VISIBLE : View.GONE;
-        mArticleSnippetTextView.setVisibility(visibility);
-        mReadMoreLinkTextView.setVisibility(visibility);
-
-        String action = visibility == View.VISIBLE ? "MobileNTP.Snippets.ShowMore"
-                                                   : "MobileNTP.Snippets.ShowLess";
-        String histogram = visibility == View.VISIBLE ? "NewTabPage.Snippets.CardExpanded"
-                                                      : "NewTabPage.Snippets.CardHidden";
-        RecordUserAction.record(action);
-        RecordHistogram.recordSparseSlowlyHistogram(histogram, mPosition);
-    }
-
-    @Override
-    public void onBindViewHolder(SnippetListItem snippetItem) {
-        SnippetArticle item = (SnippetArticle) snippetItem;
-
-        mHeadlineTextView.setText(item.mTitle);
-        mPublisherTextView.setText(item.mPublisher);
-        mArticleSnippetTextView.setText(item.mPreviewText);
-        mUrl = item.mUrl;
-        mPosition = item.mPosition;
-
-        item.setThumbnailOnView(mThumbnailView);
-    }
-}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetHeaderItemViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetHeaderItemViewHolder.java
deleted file mode 100644
index 05eda5a..0000000
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetHeaderItemViewHolder.java
+++ /dev/null
@@ -1,46 +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.
-
-package org.chromium.chrome.browser.ntp.snippets;
-
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.TextView;
-
-import org.chromium.chrome.R;
-import org.chromium.chrome.browser.ntp.snippets.SnippetsManager.SnippetHeader;
-import org.chromium.chrome.browser.ntp.snippets.SnippetsManager.SnippetListItem;
-
-/**
- * A class that represents the view for a header of a group of card snippets.
- */
-class SnippetHeaderItemViewHolder extends SnippetListItemViewHolder {
-    private TextView mHeaderTextView;
-
-    public SnippetHeaderItemViewHolder(View view, SnippetsManager manager) {
-        super(view, manager);
-        mHeaderTextView = (TextView) view.findViewById(R.id.snippets_list_header);
-    }
-
-    /**
-     * Creates the TextView object for displaying the header for a group of snippets
-     *
-     * @param parent The parent view for the header
-     * @return a TextView object for displaying a header for a group of snippets
-     */
-    public static View createView(ViewGroup parent) {
-        return LayoutInflater.from(parent.getContext())
-                .inflate(R.layout.new_tab_page_snippets_header, parent, false);
-    }
-
-    @Override
-    public void onBindViewHolder(SnippetListItem snippetItem) {
-        SnippetHeader item = (SnippetHeader) snippetItem;
-
-        String headerText = mHeaderTextView.getContext().getString(
-                R.string.snippets_header, item.mRecommendationBasis);
-        mHeaderTextView.setText(headerText);
-    }
-}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetHeaderListItem.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetHeaderListItem.java
new file mode 100644
index 0000000..79f398f
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetHeaderListItem.java
@@ -0,0 +1,34 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.ntp.snippets;
+
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import org.chromium.chrome.R;
+import org.chromium.chrome.browser.ntp.cards.NewTabPageListItem;
+
+/**
+ * Represents the data for a header of a group of snippets
+ */
+public class SnippetHeaderListItem implements NewTabPageListItem {
+
+    /**
+     * Creates the View object for displaying the header for a group of snippets
+     *
+     * @param parent The parent view for the header
+     * @return a View object for displaying a header for a group of snippets
+     */
+    public static View createView(ViewGroup parent) {
+        return LayoutInflater.from(parent.getContext())
+                .inflate(R.layout.new_tab_page_snippets_header, parent, false);
+    }
+
+    @Override
+    public int getType() {
+        return NewTabPageListItem.VIEW_TYPE_HEADER;
+    }
+}
\ No newline at end of file
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetListItemViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetListItemViewHolder.java
deleted file mode 100644
index 75dc552..0000000
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetListItemViewHolder.java
+++ /dev/null
@@ -1,46 +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.
-
-package org.chromium.chrome.browser.ntp.snippets;
-
-import android.support.v7.widget.RecyclerView;
-import android.view.View;
-
-import org.chromium.chrome.browser.ntp.snippets.SnippetsManager.SnippetListItem;
-
-/**
- * A class that represents an item we want to display in our list of card snippets.
- */
-abstract class SnippetListItemViewHolder extends RecyclerView.ViewHolder {
-    private final SnippetsManager mManager;
-
-    /**
-     * Constructs a SnippetListItemViewHolder item used to display a component in the list of
-     * snippets (e.g., header, article snippet, separator, etc.)
-     *
-     * @param cardView The View for this item
-     * @param manager The SnippetsManager object used to open an article
-     */
-    public SnippetListItemViewHolder(View itemView, SnippetsManager manager) {
-        super(itemView);
-        mManager = manager;
-    }
-
-    /**
-     * Opens the given URL
-     *
-     * @param url The URL to open.
-     */
-    protected void loadUrl(String url) {
-        mManager.loadUrl(url);
-    }
-
-    /**
-     * Called when the snippets adapter is requested to update the currently visible ViewHolder with
-     * data.
-     *
-     * @param article The SnippetListItem object that holds the data for this ViewHolder
-     */
-    public abstract void onBindViewHolder(SnippetListItem snippetItem);
-}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsAdapter.java
deleted file mode 100644
index fd481a4..0000000
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsAdapter.java
+++ /dev/null
@@ -1,71 +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.
-
-package org.chromium.chrome.browser.ntp.snippets;
-
-import android.support.v7.widget.RecyclerView.Adapter;
-import android.view.ViewGroup;
-
-import org.chromium.chrome.browser.ntp.snippets.SnippetsManager.SnippetListItem;
-
-import java.util.Collections;
-import java.util.List;
-
-/**
- * A class that represents the adapter backing the snippets RecyclerView.
- */
-class SnippetsAdapter extends Adapter<SnippetListItemViewHolder> {
-    private List<SnippetListItem> mSnippetListItems;
-    private final SnippetsManager mManager;
-
-    /**
-     * Constructs a SnippetsAdapter object that backs the Snippets RecyclerView on the NTP
-     *
-     * @param snippetsManager SnippetsManager object used to open an article
-     */
-    public SnippetsAdapter(SnippetsManager snippetsManager) {
-        mManager = snippetsManager;
-        mSnippetListItems = Collections.emptyList();
-    }
-
-    /**
-     * Set the list of items to display in the snippets RecyclerView
-     *
-     * @param listItems the new list of items to display
-     */
-    public void setSnippetListItems(List<SnippetListItem> listItems) {
-        mSnippetListItems = listItems;
-        notifyDataSetChanged();
-    }
-
-    @Override
-    public int getItemViewType(int position) {
-        return mSnippetListItems.get(position).getType();
-    }
-
-    @Override
-    public SnippetListItemViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
-        if (viewType == SnippetsManager.SNIPPET_ITEM_TYPE_HEADER) {
-            return new SnippetHeaderItemViewHolder(
-                    SnippetHeaderItemViewHolder.createView(parent), mManager);
-        }
-
-        if (viewType == SnippetsManager.SNIPPET_ITEM_TYPE_SNIPPET) {
-            return new SnippetCardItemViewHolder(
-                    SnippetCardItemViewHolder.createView(parent), mManager);
-        }
-
-        return null;
-    }
-
-    @Override
-    public void onBindViewHolder(SnippetListItemViewHolder holder, final int position) {
-        holder.onBindViewHolder(mSnippetListItems.get(position));
-    }
-
-    @Override
-    public int getItemCount() {
-        return mSnippetListItems.size();
-    }
-}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsBridge.java
index 64df7d0b..be48eada 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsBridge.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsBridge.java
@@ -7,6 +7,9 @@
 import org.chromium.base.annotations.CalledByNative;
 import org.chromium.chrome.browser.profiles.Profile;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * Provides access to the snippets to display on the NTP using the C++ NTP Snippets Service
  */
@@ -14,14 +17,13 @@
     private static final String TAG = "SnippetsBridge";
 
     private long mNativeSnippetsBridge;
+    private SnippetsObserver mObserver;
 
     /**
      * An observer for notifying when new snippets are loaded
      */
     public interface SnippetsObserver {
-        @CalledByNative("SnippetsObserver")
-        public void onSnippetsAvailable(
-                String[] titles, String[] urls, String[] thumbnailUrls, String[] previewText);
+        public void onSnippetsReceived(List<SnippetArticle> snippets);
     }
 
     /**
@@ -29,28 +31,53 @@
      *
      * @param profile Profile of the user that we will retrieve snippets for.
      */
-    public SnippetsBridge(Profile profile, final SnippetsObserver observer) {
+    public SnippetsBridge(Profile profile) {
         mNativeSnippetsBridge = nativeInit(profile);
-        SnippetsObserver wrappedObserver = new SnippetsObserver() {
-            @Override
-            public void onSnippetsAvailable(
-                    String[] titles, String[] urls, String[] thumbnailUrls, String[] previewText) {
-                // Don't notify observer if we've already been destroyed.
-                if (mNativeSnippetsBridge != 0) {
-                    observer.onSnippetsAvailable(titles, urls, thumbnailUrls, previewText);
-                }
-            }
-        };
-        nativeSetObserver(mNativeSnippetsBridge, wrappedObserver);
     }
 
-    void destroy() {
+    /**
+     * Destroys the native service and unregisters observers. This object can't be reused to
+     * communicate with any native service and should be discarded.
+     */
+    public void destroy() {
         assert mNativeSnippetsBridge != 0;
         nativeDestroy(mNativeSnippetsBridge);
         mNativeSnippetsBridge = 0;
+        mObserver = null;
+    }
+
+    /**
+     * Sets the recipient for the fetched snippets. This method should be called only once.
+     *
+     * Before the observer is set, the native code will not attempt to transmit them to java. Upon
+     * registration, the observer will be notified of already fetched snippets.
+     *
+     * @param observer object to notify when snippets are received.
+     */
+    public void setObserver(SnippetsObserver observer) {
+        assert mObserver == null;
+
+        mObserver = observer;
+        nativeSetObserver(mNativeSnippetsBridge, this);
+    }
+
+    @CalledByNative
+    private void onSnippetsAvailable(String[] titles, String[] urls, String[] thumbnailUrls,
+            String[] previewText, long[] timestamps) {
+        // Don't notify observer if we've already been destroyed.
+        if (mNativeSnippetsBridge == 0) return;
+        assert mObserver != null;
+
+        List<SnippetArticle> newSnippets = new ArrayList<>(titles.length);
+        for (int i = 0; i < titles.length; i++) {
+            newSnippets.add(new SnippetArticle(
+                    titles[i], "", previewText[i], urls[i], thumbnailUrls[i], timestamps[i], i));
+        }
+
+        mObserver.onSnippetsReceived(newSnippets);
     }
 
     private native long nativeInit(Profile profile);
     private native void nativeDestroy(long nativeNTPSnippetsBridge);
-    private native void nativeSetObserver(long nativeNTPSnippetsBridge, SnippetsObserver observer);
+    private native void nativeSetObserver(long nativeNTPSnippetsBridge, SnippetsBridge bridge);
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsManager.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsManager.java
deleted file mode 100644
index 16d74ade3..0000000
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsManager.java
+++ /dev/null
@@ -1,188 +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.
-
-package org.chromium.chrome.browser.ntp.snippets;
-
-import android.graphics.drawable.Drawable;
-import android.os.AsyncTask;
-import android.support.v7.widget.RecyclerView;
-import android.widget.ImageView;
-
-import org.chromium.base.Log;
-import org.chromium.base.StreamUtil;
-import org.chromium.chrome.browser.ntp.NewTabPageView.NewTabPageManager;
-import org.chromium.chrome.browser.ntp.snippets.SnippetsBridge.SnippetsObserver;
-import org.chromium.chrome.browser.profiles.Profile;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * A class that stores and manages the article snippets that will be shown on the NTP.
- */
-public class SnippetsManager {
-    private static final String TAG = "SnippetsManager";
-
-    /**
-     * Describes the header of a group of similar card snippets
-     */
-    public static final int SNIPPET_ITEM_TYPE_HEADER = 1;
-    /**
-     * Describes a single card snippet
-     */
-    public static final int SNIPPET_ITEM_TYPE_SNIPPET = 2;
-
-    /**
-     * Enum values for recording {@code SNIPPETS_STATE_HISTOGRAM} histogram.
-     * Stored here as it is recorded in multiple places.
-     */
-    public static final int SNIPPETS_SHOWN = 0;
-    public static final int SNIPPETS_SCROLLED = 1;
-    public static final int SNIPPETS_CLICKED = 2;
-    public static final int NUM_SNIPPETS_ACTIONS = 3;
-    public static final String SNIPPETS_STATE_HISTOGRAM = "NewTabPage.Snippets.Interactions";
-
-    private NewTabPageManager mNewTabPageManager;
-    private SnippetsAdapter mDataAdapter;
-    private SnippetsBridge mSnippetsBridge;
-
-    /** Base type for anything to add to the snippets view
-     */
-    public interface SnippetListItem {
-        /**
-         * Returns the type of this snippet item (SNIPPET_ITEM_TYPE_HEADER or
-         * SNIPPET_ITEM_TYPE_SNIPPET). This is so we can distinguish between different elements
-         * that are held in a single RecyclerView holder.
-         *
-         * @return the type of this list item.
-         */
-        public int getType();
-    }
-
-    /** Represents the data for a header of a group of snippets
-     */
-    public static class SnippetHeader implements SnippetListItem {
-        public final String mRecommendationBasis;
-
-        public SnippetHeader(String recommendationBasis) {
-            mRecommendationBasis = recommendationBasis;
-        }
-
-        @Override
-        public int getType() {
-            return SNIPPET_ITEM_TYPE_HEADER;
-        }
-    }
-
-    /**
-     * Represents the data for a card snippet.
-     */
-    public static class SnippetArticle implements SnippetListItem {
-        public final String mTitle;
-        public final String mPublisher;
-        public final String mPreviewText;
-        public final String mUrl;
-        public final String mThumbnailPath;
-        public final int mPosition;
-
-        private ThumbnailRenderingTask mThumbnailRenderingTask;
-
-        // Async task to create the thumbnail from a URL
-        // TODO(maybelle): This task to retrieve the thumbnail from the web is temporary while
-        // we are prototyping this feature for clank. For the real production feature, we
-        // will likely have to download/decode the thumbnail on the native side.
-        private static class ThumbnailRenderingTask extends AsyncTask<String, Void, Drawable> {
-            private ImageView mThumbnailView;
-
-            ThumbnailRenderingTask(ImageView thumbnailView) {
-                mThumbnailView = thumbnailView;
-            }
-
-            @Override
-            protected Drawable doInBackground(String... params) {
-                if (params[0].isEmpty()) return null;
-                InputStream is = null;
-                try {
-                    is = (InputStream) new URL(params[0]).getContent();
-                    return Drawable.createFromStream(is, "thumbnail");
-                } catch (MalformedURLException e) {
-                    Log.e(TAG, "Could not get image thumbnail due to malformed URL", e);
-                } catch (IOException e) {
-                    Log.e(TAG, "Could not get image thumbnail", e);
-                } finally {
-                    StreamUtil.closeQuietly(is);
-                }
-                return null;
-            }
-
-            @Override
-            protected void onPostExecute(Drawable thumbnail) {
-                mThumbnailView.setImageDrawable(thumbnail);
-            }
-        }
-
-        public SnippetArticle(String title, String publisher, String previewText, String url,
-                String thumbnailPath, int position) {
-            mTitle = title;
-            mPublisher = publisher;
-            mPreviewText = previewText;
-            mUrl = url;
-            mThumbnailPath = thumbnailPath;
-            mPosition = position;
-        }
-
-        @Override
-        public int getType() {
-            return SNIPPET_ITEM_TYPE_SNIPPET;
-        }
-
-        /**
-         * Retrieves this SnippetArticle's thumbnail asynchronously and sets it onto the given
-         * ImageView.
-         *
-         * @param view The ImageView to set the thumbnail onto.
-         */
-        public void setThumbnailOnView(ImageView view) {
-            if (mThumbnailRenderingTask != null) mThumbnailRenderingTask.cancel(true);
-
-            mThumbnailRenderingTask = new ThumbnailRenderingTask(view);
-            mThumbnailRenderingTask.executeOnExecutor(
-                    AsyncTask.THREAD_POOL_EXECUTOR, mThumbnailPath);
-        }
-    }
-
-    public SnippetsManager(NewTabPageManager tabManager, Profile profile) {
-        mNewTabPageManager = tabManager;
-        mDataAdapter = new SnippetsAdapter(this);
-        mSnippetsBridge = new SnippetsBridge(profile, new SnippetsObserver() {
-            @Override
-            public void onSnippetsAvailable(
-                    String[] titles, String[] urls, String[] thumbnailUrls, String[] previewText) {
-                List<SnippetListItem> listItems = new ArrayList<SnippetListItem>();
-                for (int i = 0; i < titles.length; ++i) {
-                    SnippetArticle article = new SnippetArticle(
-                            titles[i], "", previewText[i], urls[i], thumbnailUrls[i], i);
-                    listItems.add(article);
-                }
-                mDataAdapter.setSnippetListItems(listItems);
-            }
-        });
-    }
-
-    public void setSnippetsView(RecyclerView mSnippetsView) {
-        mSnippetsView.setAdapter(mDataAdapter);
-    }
-
-    public void loadUrl(String url) {
-        mNewTabPageManager.open(url);
-    }
-
-    public void destroy() {
-        mSnippetsBridge.destroy();
-    }
-}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java
index b7450d8..0095f4a7 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java
@@ -45,6 +45,7 @@
             "contextual_search_last_animation_time";
     private static final String ENABLE_CUSTOM_TABS = "enable_custom_tabs";
     private static final String HERB_FLAVOR_KEY = "herb_flavor";
+    private static final String FORCED_TO_MIGRATE_KEY = "forced_to_migrate";
 
     private static final String SUCCESS_UPLOAD_SUFFIX = "_crash_success_upload";
     private static final String FAILURE_UPLOAD_SUFFIX = "_crash_failure_upload";
@@ -340,6 +341,22 @@
     }
 
     /**
+     * @return Whether or not the user is being forced to migrate to tabbed mode.
+     */
+    public boolean getCachedIsForcedToMigrate() {
+        return mSharedPreferences.getBoolean(FORCED_TO_MIGRATE_KEY, false);
+    }
+
+    /**
+     * Caches whether or not the user is being forced to migrate to tabbed mode.
+     */
+    public void setCachedIsForcedToMigrate(boolean state) {
+        SharedPreferences.Editor ed = mSharedPreferences.edit();
+        ed.putBoolean(FORCED_TO_MIGRATE_KEY, state);
+        ed.apply();
+    }
+
+    /**
      * Writes the given int value to the named shared preference.
      *
      * @param key The name of the preference to modify.
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java
index cf5469ab..fd39796 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java
@@ -109,7 +109,8 @@
         // TODO(dfalcantara): Delete this preference entirely.  https://crbug.com/582539
         Preference documentMode = findPreference(PREF_DOCUMENT_MODE);
         boolean showDocumentToggle = FeatureUtilities.isDocumentModeEligible(getActivity());
-        if (CommandLine.getInstance().hasSwitch(ChromeSwitches.ENABLE_FORCED_MIGRATION)) {
+        if (CommandLine.getInstance().hasSwitch(
+                ChromeSwitches.ENABLE_FORCED_MIGRATION_TO_TABBED_MODE)) {
             showDocumentToggle &=
                     FeatureUtilities.isDocumentMode(ApplicationStatus.getApplicationContext());
         }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/AccountSigninView.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/AccountSigninView.java
index 4cd73c3..581c3c6 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/signin/AccountSigninView.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/AccountSigninView.java
@@ -31,6 +31,7 @@
 import org.chromium.chrome.browser.preferences.PrefServiceBridge;
 import org.chromium.chrome.browser.profiles.ProfileDownloader;
 import org.chromium.chrome.browser.signin.AccountTrackerService.OnSystemAccountsSeededListener;
+import org.chromium.chrome.browser.sync.SyncUserDataWiper;
 import org.chromium.chrome.browser.sync.ui.ConfirmImportSyncDataDialog;
 import org.chromium.chrome.browser.sync.ui.ConfirmImportSyncDataDialog.ImportSyncType;
 import org.chromium.signin.InvestigatedScenario;
@@ -544,8 +545,17 @@
                     mDelegate.getFragmentManager(),
                     new ConfirmImportSyncDataDialog.Listener() {
                         @Override
-                        public void onConfirm() {
-                            showConfirmSigninPage();
+                        public void onConfirm(boolean wipeData) {
+                            if (wipeData) {
+                                SyncUserDataWiper.wipeSyncUserData(new Runnable(){
+                                    @Override
+                                    public void run() {
+                                        showConfirmSigninPage();
+                                    }
+                                });
+                            } else {
+                                showConfirmSigninPage();
+                            }
                         }
                     });
         } else {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncAccountSwitcher.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncAccountSwitcher.java
index 3211fe7..5edc3b5 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncAccountSwitcher.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncAccountSwitcher.java
@@ -63,7 +63,7 @@
     }
 
     @Override
-    public void onConfirm() {
+    public void onConfirm(final boolean wipeData) {
         assert mNewAccountName != null;
 
         final SigninManager.SignInCallback callback = this;
@@ -72,9 +72,22 @@
         SigninManager.get(mActivity).signOut(new Runnable() {
             @Override
             public void run() {
-                SigninManager.get(mActivity).signIn(mNewAccountName, mActivity, callback);
+                SigninManager.get(mActivity).clearLastSignedInUser();
+
+                if (wipeData) {
+                    SyncUserDataWiper.wipeSyncUserData(new Runnable() {
+                        @Override
+                        public void run() {
+                            SigninManager.get(mActivity)
+                                    .signIn(mNewAccountName, mActivity, callback);
+                        }
+                    });
+                } else {
+                    SigninManager.get(mActivity).signIn(mNewAccountName, mActivity, callback);
+                }
             }
         });
+
     }
 
     @Override
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncUserDataWiper.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncUserDataWiper.java
new file mode 100644
index 0000000..8f29fab
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncUserDataWiper.java
@@ -0,0 +1,49 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.sync;
+
+import org.chromium.chrome.browser.BrowsingDataType;
+import org.chromium.chrome.browser.TimePeriod;
+import org.chromium.chrome.browser.bookmarks.BookmarkModel;
+import org.chromium.chrome.browser.preferences.PrefServiceBridge;
+import org.chromium.chrome.browser.preferences.PrefServiceBridge.OnClearBrowsingDataListener;
+
+/**
+ * A class to wipe the user's bookmarks and all types of sync data.
+ */
+public class SyncUserDataWiper {
+    private static final int[] SYNC_DATA_TYPES = {
+            BrowsingDataType.HISTORY,
+            BrowsingDataType.CACHE,
+            BrowsingDataType.COOKIES,
+            BrowsingDataType.PASSWORDS,
+            BrowsingDataType.FORM_DATA
+    };
+
+    /**
+     * Wipes the user's bookmarks and sync data.
+     * @param callback Called when the data is cleared.
+     */
+    public static void wipeSyncUserData(final Runnable callback) {
+        final BookmarkModel model = new BookmarkModel();
+
+        model.runAfterBookmarkModelLoaded(new Runnable() {
+            @Override
+            public void run() {
+                model.removeAllUserBookmarks();
+                model.destroy();
+                PrefServiceBridge.getInstance().clearBrowsingData(
+                        new OnClearBrowsingDataListener(){
+                            @Override
+                            public void onBrowsingDataCleared() {
+                                callback.run();
+                            }
+                        },
+                        SYNC_DATA_TYPES, TimePeriod.EVERYTHING);
+            }
+        });
+    }
+}
+
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/ui/ConfirmImportSyncDataDialog.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/ui/ConfirmImportSyncDataDialog.java
index 8e392c5..c20b50b 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/sync/ui/ConfirmImportSyncDataDialog.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/ui/ConfirmImportSyncDataDialog.java
@@ -18,12 +18,7 @@
 import org.chromium.base.VisibleForTesting;
 import org.chromium.base.metrics.RecordUserAction;
 import org.chromium.chrome.R;
-import org.chromium.chrome.browser.BrowsingDataType;
-import org.chromium.chrome.browser.TimePeriod;
-import org.chromium.chrome.browser.bookmarks.BookmarkModel;
 import org.chromium.chrome.browser.preferences.ManagedPreferencesUtils;
-import org.chromium.chrome.browser.preferences.PrefServiceBridge;
-import org.chromium.chrome.browser.preferences.PrefServiceBridge.OnClearBrowsingDataListener;
 import org.chromium.chrome.browser.signin.SigninManager;
 import org.chromium.chrome.browser.widget.RadioButtonWithDescription;
 
@@ -35,17 +30,17 @@
  * option to merge the data of the two accounts or to keep them separate.
  */
 public class ConfirmImportSyncDataDialog extends DialogFragment
-        implements DialogInterface.OnClickListener, OnClearBrowsingDataListener {
+        implements DialogInterface.OnClickListener {
 
     /**
      * Callback for completion of the dialog.
      */
     public interface Listener {
         /**
-         * The user has completed the dialog using the positive button. If requested, the previous
-         * sync data has been cleared.
+         * The user has completed the dialog using the positive button.
+         * @param wipeData Whether the user requested that existing data should be wiped.
          */
-        public void onConfirm();
+        public void onConfirm(boolean wipeData);
     }
 
     /**
@@ -59,14 +54,6 @@
     public static final String CONFIRM_IMPORT_SYNC_DATA_DIALOG_TAG =
             "sync_account_switch_import_data_tag";
 
-    private static final int[] SYNC_DATA_TYPES = {
-            BrowsingDataType.HISTORY,
-            BrowsingDataType.CACHE,
-            BrowsingDataType.COOKIES,
-            BrowsingDataType.PASSWORDS,
-            BrowsingDataType.FORM_DATA
-    };
-
     private static final String KEY_OLD_ACCOUNT_NAME = "lastAccountName";
     private static final String KEY_NEW_ACCOUNT_NAME = "newAccountName";
     private static final String KEY_IMPORT_SYNC_TYPE = "importSyncType";
@@ -190,30 +177,10 @@
 
         assert mConfirmImportOption.isChecked() ^ mKeepSeparateOption.isChecked();
 
-        if (mConfirmImportOption.isChecked()) {
-            RecordUserAction.record("Signin_ImportDataPrompt_ImportData");
-            mListener.onConfirm();
-        } else {
-            RecordUserAction.record("Signin_ImportDataPrompt_DontImport");
-
-            final BookmarkModel model = new BookmarkModel();
-            model.runAfterBookmarkModelLoaded(new Runnable() {
-                @Override
-                public void run() {
-                    model.removeAllUserBookmarks();
-                    model.destroy();
-                    PrefServiceBridge.getInstance().clearBrowsingData(
-                            ConfirmImportSyncDataDialog.this,
-                            SYNC_DATA_TYPES, TimePeriod.EVERYTHING);
-                }
-            });
-        }
-    }
-
-    @Override
-    public void onBrowsingDataCleared() {
-        SigninManager.get(getActivity()).clearLastSignedInUser();
-        if (mListener != null) mListener.onConfirm();
+        RecordUserAction.record(mKeepSeparateOption.isChecked()
+                ? "Signin_ImportDataPrompt_DontImport"
+                : "Signin_ImportDataPrompt_ImportData");
+        mListener.onConfirm(mKeepSeparateOption.isChecked());
     }
 }
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/DocumentModeAssassin.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/DocumentModeAssassin.java
index 41dc2f5..a8fceb5 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/DocumentModeAssassin.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/DocumentModeAssassin.java
@@ -63,8 +63,6 @@
  * 2) CLEANUP OF ALL DOCUMENT-RELATED THINGS:
  *    DocumentActivity tasks in Android's Recents are removed, TabState files in the document mode
  *    directory are deleted, and document mode preferences are cleared.
- *
- *    TODO(dfalcantara): Add histograms for tracking migration progress?
  */
 @TargetApi(Build.VERSION_CODES.LOLLIPOP)
 public class DocumentModeAssassin {
@@ -521,8 +519,10 @@
 
     /** @return Whether or not a migration to tabbed mode from document mode is necessary. */
     public boolean isMigrationNecessary() {
-        return CommandLine.getInstance().hasSwitch(ChromeSwitches.ENABLE_FORCED_MIGRATION)
-                && FeatureUtilities.isDocumentMode(getContext());
+        return (CommandLine.getInstance().hasSwitch(
+                        ChromeSwitches.ENABLE_FORCED_MIGRATION_TO_TABBED_MODE)
+                || FeatureUtilities.isForcedToMigrateToTabbedMode())
+               && FeatureUtilities.isDocumentMode(ApplicationStatus.getApplicationContext());
     }
 
     /** @return Context to use when grabbing SharedPreferences, Files, and other resources. */
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/document/TabDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/document/TabDelegate.java
index 4544d40e..b017573b 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/document/TabDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/document/TabDelegate.java
@@ -212,6 +212,7 @@
      * @return Whether the TabDelegate is allowed to directly launch a DocumentActivity.
      */
     protected boolean isAllowedToLaunchDocumentActivity(Context context) {
-        return !CommandLine.getInstance().hasSwitch(ChromeSwitches.ENABLE_FORCED_MIGRATION);
+        return !CommandLine.getInstance().hasSwitch(
+                ChromeSwitches.ENABLE_FORCED_MIGRATION_TO_TABBED_MODE);
     }
 }
\ No newline at end of file
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java b/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java
index 778da05..d9bebad 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java
@@ -48,6 +48,8 @@
     private static String sCachedHerbFlavor;
     private static boolean sIsHerbFlavorCached;
 
+    private static Boolean sIsForcedToMigrate;
+
     /** Used to track if cached command line flags should be refreshed. */
     private static CommandLine.ResetListener sResetListener = null;
 
@@ -196,6 +198,19 @@
     }
 
     /**
+     * @return Whether or not users are being forced to migrate to tabbed mode.
+     */
+    public static boolean isForcedToMigrateToTabbedMode() {
+        if (sIsForcedToMigrate == null) {
+            Context context = ApplicationStatus.getApplicationContext();
+            sIsForcedToMigrate =
+                    ChromePreferenceManager.getInstance(context).getCachedIsForcedToMigrate();
+        }
+
+        return sIsForcedToMigrate;
+    }
+
+    /**
      * @return Which flavor of Herb is being tested.  See {@link ChromeSwitches#HERB_FLAVOR_ANISE}
      *         and its related switches.
      */
@@ -223,9 +238,27 @@
     }
 
     /**
+     * Caches flags that must take effect on startup but are set via native code.
+     */
+    public static void cacheNativeFlags() {
+        cacheHerbFlavor();
+
+        // Check whether the user is being forced to migrate.
+        CommandLine instance = CommandLine.getInstance();
+        boolean wasForcedToMigrate = isForcedToMigrateToTabbedMode();
+        boolean forceMigration = instance.hasSwitch(
+                ChromeSwitches.ENABLE_FORCED_MIGRATION_TO_TABBED_MODE);
+        if (wasForcedToMigrate != forceMigration) {
+            Context context = ApplicationStatus.getApplicationContext();
+            ChromePreferenceManager.getInstance(context).setCachedIsForcedToMigrate(forceMigration);
+            sIsForcedToMigrate = forceMigration;
+        }
+    }
+
+    /**
      * Caches which flavor of Herb the user prefers from native.
      */
-    public static void cacheHerbFlavor() {
+    private static void cacheHerbFlavor() {
         Context context = ApplicationStatus.getApplicationContext();
         if (isHerbDisallowed(context)) return;
 
diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd
index 864da80..bfdd808 100644
--- a/chrome/android/java/strings/android_chrome_strings.grd
+++ b/chrome/android/java/strings/android_chrome_strings.grd
@@ -1827,10 +1827,7 @@
         Remove all
       </message>
       <message name="IDS_SNIPPETS_HEADER" desc="Header for a group of content snippets">
-        For readers of <ph name="PUBLISHER">%1$s<ex>The New York Times</ex></ph>
-      </message>
-      <message name="IDS_SNIPPETS_NTP_READ_MORE_LINK_TEXT" desc="Link to an article this snippet is describing">
-        Read more
+        Articles for you
       </message>
 
       <!-- Toolbar button strings -->
diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni
index 514d09d2..2eb05518 100644
--- a/chrome/android/java_sources.gni
+++ b/chrome/android/java_sources.gni
@@ -482,10 +482,10 @@
   "java/src/org/chromium/chrome/browser/ntp/NewTabPage.java",
   "java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java",
   "java/src/org/chromium/chrome/browser/ntp/NewTabPagePrefs.java",
+  "java/src/org/chromium/chrome/browser/ntp/NewTabPageScrollView.java",
   "java/src/org/chromium/chrome/browser/ntp/NewTabPageToolbar.java",
   "java/src/org/chromium/chrome/browser/ntp/NewTabPageUma.java",
   "java/src/org/chromium/chrome/browser/ntp/NewTabPageView.java",
-  "java/src/org/chromium/chrome/browser/ntp/NewTabScrollView.java",
   "java/src/org/chromium/chrome/browser/ntp/RecentTabsExpandableListView.java",
   "java/src/org/chromium/chrome/browser/ntp/RecentTabsGroupView.java",
   "java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java",
@@ -497,14 +497,17 @@
   "java/src/org/chromium/chrome/browser/ntp/interests/InterestsPage.java",
   "java/src/org/chromium/chrome/browser/ntp/interests/InterestsService.java",
   "java/src/org/chromium/chrome/browser/ntp/interests/InterestsView.java",
-  "java/src/org/chromium/chrome/browser/ntp/snippets/SnippetCardItemViewHolder.java",
-  "java/src/org/chromium/chrome/browser/ntp/snippets/SnippetHeaderItemViewHolder.java",
-  "java/src/org/chromium/chrome/browser/ntp/snippets/SnippetListItemViewHolder.java",
-  "java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsAdapter.java",
+  "java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticle.java",
+  "java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticleViewHolder.java",
+  "java/src/org/chromium/chrome/browser/ntp/snippets/SnippetHeaderListItem.java",
   "java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsBridge.java",
   "java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsController.java",
   "java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsLauncher.java",
-  "java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsManager.java",
+  "java/src/org/chromium/chrome/browser/ntp/cards/AboveTheFoldListItem.java",
+  "java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapter.java",
+  "java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageListItem.java",
+  "java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageRecyclerView.java",
+  "java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageViewHolder.java",
   "java/src/org/chromium/chrome/browser/offlinepages/ClientId.java",
   "java/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridge.java",
   "java/src/org/chromium/chrome/browser/offlinepages/OfflinePageFreeUpSpaceCallback.java",
@@ -734,6 +737,7 @@
   "java/src/org/chromium/chrome/browser/sync/SyncController.java",
   "java/src/org/chromium/chrome/browser/sync/SyncNotificationController.java",
   "java/src/org/chromium/chrome/browser/sync/SyncSessionsMetrics.java",
+  "java/src/org/chromium/chrome/browser/sync/SyncUserDataWiper.java",
   "java/src/org/chromium/chrome/browser/sync/ui/ConfirmImportSyncDataDialog.java",
   "java/src/org/chromium/chrome/browser/sync/ui/PassphraseActivity.java",
   "java/src/org/chromium/chrome/browser/sync/ui/PassphraseCreationDialogFragment.java",
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
index 8ee86da..35f74e1 100644
--- a/chrome/app/generated_resources.grd
+++ b/chrome/app/generated_resources.grd
@@ -13338,7 +13338,7 @@
         </message>
         <if expr="not chromeos">
           <message name="IDS_APP_LIST_MESSAGE_LEARN_MORE_TEXT" desc="Link anchor text displayed at the end of a message in the app launcher linking to a site with additional information about the message.">
-            Learn more.
+            Learn more
           </message>
           <message name="IDS_APP_LIST_MESSAGE_LEARN_MORE_LINK" desc="URL for the Learn More link displayed at the end of the app launcher message.">
             https://support.google.com/chrome/answer/3060053?hl=[GRITLANGCODE]
@@ -14561,6 +14561,12 @@
       <message name="IDS_FLAGS_HERB_PROTOTYPE_FLAVOR_ELDERBERRY" desc="CCT everywhere" translateable="false">
         ELDERBERRY: All View Intents in CCT v2
       </message>
+      <message name="IDS_FLAGS_FORCE_MIGRATION_TO_TABBED_MODE_NAME" desc="Name for the flag to force users into tabbed mode from document mode." translateable="false">
+        Force users into tabbed mode
+      </message>
+      <message name="IDS_FLAGS_FORCE_MIGRATION_TO_TABBED_MODE_DESCRIPTION" desc="Description for the flag to force users into tabbed mode from document mode." translateable="false">
+        If enabled, Chrome will automatically migrate users out of document mode and into tabbed mode when it launches.
+      </message>
       <message name="IDS_FLAGS_TAB_SWITCHER_IN_DOCUMENT_MODE_NAME" desc="Name for the flag to enable tab switcher in document mode.">
         Enable tab switcher in document mode.
       </message>
diff --git a/chrome/browser/DEPS b/chrome/browser/DEPS
index 8334c7c..4e8301f 100644
--- a/chrome/browser/DEPS
+++ b/chrome/browser/DEPS
@@ -99,6 +99,7 @@
   "+third_party/WebKit/public/platform/modules/app_banner/WebAppBannerPromptReply.h",
   "+third_party/WebKit/public/platform/modules/push_messaging/WebPushPermissionStatus.h",
   "+third_party/WebKit/public/platform/modules/screen_orientation/WebScreenOrientationLockType.h",
+  "+third_party/WebKit/public/platform/modules/permissions/permission_status.mojom.h",
   "+third_party/WebKit/public/web/WebCache.h",
   "+third_party/WebKit/public/web/WebContextMenuData.h",
   "+third_party/WebKit/public/web/WebFindOptions.h",
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index 62a9d06..b853309c 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -1692,6 +1692,10 @@
     {"tab-management-experiment-type", IDS_FLAGS_HERB_PROTOTYPE_CHOICES_NAME,
      IDS_FLAGS_HERB_PROTOTYPE_CHOICES_DESCRIPTION, kOsAndroid,
      MULTI_VALUE_TYPE(kHerbPrototypeChoices)},
+    {"enable-forced-migration-to-tabbed-mode",
+     IDS_FLAGS_FORCE_MIGRATION_TO_TABBED_MODE_NAME,
+     IDS_FLAGS_FORCE_MIGRATION_TO_TABBED_MODE_DESCRIPTION, kOsAndroid,
+     SINGLE_VALUE_TYPE(switches::kEnableForcedMigrationToTabbedMode)},
     {"enable-tab-switcher-in-document-mode",
      IDS_FLAGS_TAB_SWITCHER_IN_DOCUMENT_MODE_NAME,
      IDS_FLAGS_TAB_SWITCHER_IN_DOCUMENT_MODE_DESCRIPTION, kOsAndroid,
diff --git a/chrome/browser/android/ntp/ntp_snippets_bridge.cc b/chrome/browser/android/ntp/ntp_snippets_bridge.cc
index 9af0c09..1ad0519 100644
--- a/chrome/browser/android/ntp/ntp_snippets_bridge.cc
+++ b/chrome/browser/android/ntp/ntp_snippets_bridge.cc
@@ -18,6 +18,7 @@
 
 using base::android::JavaParamRef;
 using base::android::ToJavaArrayOfStrings;
+using base::android::ToJavaLongArray;
 using ntp_snippets::NTPSnippetsService;
 using ntp_snippets::NTPSnippetsServiceObserver;
 
@@ -59,19 +60,22 @@
   std::vector<std::string> urls;
   std::vector<std::string> thumbnail_urls;
   std::vector<std::string> snippets;
+  std::vector<int64_t> timestamps;
   for (const ntp_snippets::NTPSnippet& snippet : *service) {
     titles.push_back(snippet.title());
     urls.push_back(snippet.url().spec());
     thumbnail_urls.push_back(snippet.salient_image_url().spec());
     snippets.push_back(snippet.snippet());
+    timestamps.push_back(snippet.publish_date().ToJavaTime());
   }
 
   JNIEnv* env = base::android::AttachCurrentThread();
-  Java_SnippetsObserver_onSnippetsAvailable(
+  Java_SnippetsBridge_onSnippetsAvailable(
       env, observer_.obj(), ToJavaArrayOfStrings(env, titles).obj(),
       ToJavaArrayOfStrings(env, urls).obj(),
       ToJavaArrayOfStrings(env, thumbnail_urls).obj(),
-      ToJavaArrayOfStrings(env, snippets).obj());
+      ToJavaArrayOfStrings(env, snippets).obj(),
+      ToJavaLongArray(env, timestamps).obj());
 }
 
 void NTPSnippetsBridge::NTPSnippetsServiceShutdown(
diff --git a/chrome/browser/android/ntp/ntp_snippets_bridge.h b/chrome/browser/android/ntp/ntp_snippets_bridge.h
index d013f53..79c562ca 100644
--- a/chrome/browser/android/ntp/ntp_snippets_bridge.h
+++ b/chrome/browser/android/ntp/ntp_snippets_bridge.h
@@ -11,7 +11,7 @@
 #include "base/scoped_observer.h"
 #include "components/ntp_snippets/ntp_snippets_service.h"
 
-// The C++ counterpart to NTPSnippetsBridge.java. Enables Java code to access
+// The C++ counterpart to SnippetsBridge.java. Enables Java code to access
 // the list of snippets to show on the NTP
 class NTPSnippetsBridge : public ntp_snippets::NTPSnippetsServiceObserver {
  public:
@@ -36,6 +36,7 @@
 
   ntp_snippets::NTPSnippetsService* ntp_snippets_service_;
 
+  // Used to notify the Java side when new snippets have been fetched.
   base::android::ScopedJavaGlobalRef<jobject> observer_;
   ScopedObserver<ntp_snippets::NTPSnippetsService,
                  ntp_snippets::NTPSnippetsServiceObserver>
diff --git a/chrome/browser/net/utility_process_mojo_proxy_resolver_factory.cc b/chrome/browser/net/utility_process_mojo_proxy_resolver_factory.cc
index c2fecec..6711f6a6 100644
--- a/chrome/browser/net/utility_process_mojo_proxy_resolver_factory.cc
+++ b/chrome/browser/net/utility_process_mojo_proxy_resolver_factory.cc
@@ -51,7 +51,7 @@
           base::ThreadTaskRunnerHandle::Get());
   utility_process_host->SetName(l10n_util::GetStringUTF16(
       IDS_UTILITY_PROCESS_PROXY_RESOLVER_NAME));
-  bool process_started = utility_process_host->StartMojoMode();
+  bool process_started = utility_process_host->Start();
   if (process_started) {
     content::ServiceRegistry* service_registry =
         utility_process_host->GetServiceRegistry();
diff --git a/chrome/browser/notifications/notification_permission_context_unittest.cc b/chrome/browser/notifications/notification_permission_context_unittest.cc
index 9415ca4..d0610eb 100644
--- a/chrome/browser/notifications/notification_permission_context_unittest.cc
+++ b/chrome/browser/notifications/notification_permission_context_unittest.cc
@@ -20,15 +20,15 @@
 #include "content/public/browser/permission_manager.h"
 #include "content/public/browser/render_process_host.h"
 #include "content/public/browser/web_contents.h"
-#include "content/public/common/permission_status.mojom.h"
 #include "content/public/test/test_browser_thread_bundle.h"
 #include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/WebKit/public/platform/modules/permissions/permission_status.mojom.h"
 #include "url/gurl.h"
 
 namespace {
 
 void DoNothing(ContentSetting content_setting) {}
-void DoNothing2(content::mojom::PermissionStatus status) {}
+void DoNothing2(blink::mojom::PermissionStatus status) {}
 
 class TestNotificationPermissionContext : public NotificationPermissionContext {
  public:
diff --git a/chrome/browser/permissions/permission_manager.cc b/chrome/browser/permissions/permission_manager.cc
index 0b7473b..951966c 100644
--- a/chrome/browser/permissions/permission_manager.cc
+++ b/chrome/browser/permissions/permission_manager.cc
@@ -24,7 +24,7 @@
 #include "chrome/browser/ui/website_settings/permission_bubble_manager.h"
 #endif
 
-using content::mojom::PermissionStatus;
+using blink::mojom::PermissionStatus;
 using content::PermissionType;
 
 namespace {
@@ -34,11 +34,11 @@
   switch (setting) {
     case CONTENT_SETTING_ALLOW:
     case CONTENT_SETTING_SESSION_ONLY:
-      return content::mojom::PermissionStatus::GRANTED;
+      return PermissionStatus::GRANTED;
     case CONTENT_SETTING_BLOCK:
-      return content::mojom::PermissionStatus::DENIED;
+      return PermissionStatus::DENIED;
     case CONTENT_SETTING_ASK:
-      return content::mojom::PermissionStatus::ASK;
+      return PermissionStatus::ASK;
     case CONTENT_SETTING_DETECT_IMPORTANT_CONTENT:
     case CONTENT_SETTING_DEFAULT:
     case CONTENT_SETTING_NUM_SETTINGS:
@@ -46,7 +46,7 @@
   }
 
   NOTREACHED();
-  return content::mojom::PermissionStatus::DENIED;
+  return PermissionStatus::DENIED;
 }
 
 // Wrap a callback taking a PermissionStatus to pass it as a callback taking a
@@ -148,7 +148,7 @@
         render_frame_id_(render_frame_host->GetRoutingID()),
         callback_(callback),
         permissions_(permissions),
-        results_(permissions.size(), content::mojom::PermissionStatus::DENIED),
+        results_(permissions.size(), PermissionStatus::DENIED),
         remaining_results_(permissions.size()) {}
 
   void SetPermissionStatus(int permission_id, PermissionStatus status) {
@@ -326,7 +326,7 @@
 
   PermissionContextBase* context = PermissionContext::Get(profile_, permission);
   if (!context)
-    return content::mojom::PermissionStatus::DENIED;
+    return PermissionStatus::DENIED;
 
   return ContentSettingToPermissionStatus(context->GetPermissionStatus(
       requesting_origin.GetOrigin(), embedding_origin.GetOrigin()));
diff --git a/chrome/browser/permissions/permission_manager.h b/chrome/browser/permissions/permission_manager.h
index bbc2387..4123cf7 100644
--- a/chrome/browser/permissions/permission_manager.h
+++ b/chrome/browser/permissions/permission_manager.h
@@ -33,20 +33,20 @@
       content::PermissionType permission,
       content::RenderFrameHost* render_frame_host,
       const GURL& requesting_origin,
-      const base::Callback<void(content::mojom::PermissionStatus)>& callback)
+      const base::Callback<void(blink::mojom::PermissionStatus)>& callback)
       override;
   int RequestPermissions(
       const std::vector<content::PermissionType>& permissions,
       content::RenderFrameHost* render_frame_host,
       const GURL& requesting_origin,
       const base::Callback<
-          void(const std::vector<content::mojom::PermissionStatus>&)>& callback)
+          void(const std::vector<blink::mojom::PermissionStatus>&)>& callback)
       override;
   void CancelPermissionRequest(int request_id) override;
   void ResetPermission(content::PermissionType permission,
                        const GURL& requesting_origin,
                        const GURL& embedding_origin) override;
-  content::mojom::PermissionStatus GetPermissionStatus(
+  blink::mojom::PermissionStatus GetPermissionStatus(
       content::PermissionType permission,
       const GURL& requesting_origin,
       const GURL& embedding_origin) override;
@@ -57,7 +57,7 @@
       content::PermissionType permission,
       const GURL& requesting_origin,
       const GURL& embedding_origin,
-      const base::Callback<void(content::mojom::PermissionStatus)>& callback)
+      const base::Callback<void(blink::mojom::PermissionStatus)>& callback)
       override;
   void UnsubscribePermissionStatusChange(int subscription_id) override;
 
@@ -77,7 +77,7 @@
   void OnPermissionsRequestResponseStatus(
       int request_id,
       int permission_id,
-      content::mojom::PermissionStatus status);
+      blink::mojom::PermissionStatus status);
 
   // Not all WebContents are able to display permission requests. If the PBM
   // is required but missing for |web_contents|, don't pass along the request.
diff --git a/chrome/browser/permissions/permission_manager_unittest.cc b/chrome/browser/permissions/permission_manager_unittest.cc
index 9e10194..19cab7d 100644
--- a/chrome/browser/permissions/permission_manager_unittest.cc
+++ b/chrome/browser/permissions/permission_manager_unittest.cc
@@ -14,8 +14,8 @@
 #include "content/public/test/test_browser_thread_bundle.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
+using blink::mojom::PermissionStatus;
 using content::PermissionType;
-using content::mojom::PermissionStatus;
 
 namespace {
 
@@ -45,7 +45,7 @@
       : url_("https://example.com"),
         other_url_("https://foo.com"),
         callback_called_(false),
-        callback_result_(content::mojom::PermissionStatus::ASK) {}
+        callback_result_(PermissionStatus::ASK) {}
 
   PermissionManager* GetPermissionManager() {
     return profile_.GetPermissionManager();
@@ -82,7 +82,7 @@
 
   void Reset() {
     callback_called_ = false;
-    callback_result_ = content::mojom::PermissionStatus::ASK;
+    callback_result_ = PermissionStatus::ASK;
   }
 
  private:
@@ -95,42 +95,36 @@
 };
 
 TEST_F(PermissionManagerTest, GetPermissionStatusDefault) {
-  CheckPermissionStatus(PermissionType::MIDI_SYSEX,
-                        content::mojom::PermissionStatus::ASK);
-  CheckPermissionStatus(PermissionType::PUSH_MESSAGING,
-                        content::mojom::PermissionStatus::ASK);
-  CheckPermissionStatus(PermissionType::NOTIFICATIONS,
-                        content::mojom::PermissionStatus::ASK);
-  CheckPermissionStatus(PermissionType::GEOLOCATION,
-                        content::mojom::PermissionStatus::ASK);
+  CheckPermissionStatus(PermissionType::MIDI_SYSEX, PermissionStatus::ASK);
+  CheckPermissionStatus(PermissionType::PUSH_MESSAGING, PermissionStatus::ASK);
+  CheckPermissionStatus(PermissionType::NOTIFICATIONS, PermissionStatus::ASK);
+  CheckPermissionStatus(PermissionType::GEOLOCATION, PermissionStatus::ASK);
 #if defined(OS_ANDROID)
   CheckPermissionStatus(PermissionType::PROTECTED_MEDIA_IDENTIFIER,
-                        content::mojom::PermissionStatus::ASK);
+                        PermissionStatus::ASK);
 #endif
 }
 
 TEST_F(PermissionManagerTest, GetPermissionStatusAfterSet) {
   SetPermission(CONTENT_SETTINGS_TYPE_GEOLOCATION, CONTENT_SETTING_ALLOW);
-  CheckPermissionStatus(PermissionType::GEOLOCATION,
-                        content::mojom::PermissionStatus::GRANTED);
+  CheckPermissionStatus(PermissionType::GEOLOCATION, PermissionStatus::GRANTED);
 
   SetPermission(CONTENT_SETTINGS_TYPE_NOTIFICATIONS, CONTENT_SETTING_ALLOW);
   CheckPermissionStatus(PermissionType::NOTIFICATIONS,
-                        content::mojom::PermissionStatus::GRANTED);
+                        PermissionStatus::GRANTED);
 
   SetPermission(CONTENT_SETTINGS_TYPE_MIDI_SYSEX, CONTENT_SETTING_ALLOW);
-  CheckPermissionStatus(PermissionType::MIDI_SYSEX,
-                        content::mojom::PermissionStatus::GRANTED);
+  CheckPermissionStatus(PermissionType::MIDI_SYSEX, PermissionStatus::GRANTED);
 
   SetPermission(CONTENT_SETTINGS_TYPE_PUSH_MESSAGING, CONTENT_SETTING_ALLOW);
   CheckPermissionStatus(PermissionType::PUSH_MESSAGING,
-                        content::mojom::PermissionStatus::GRANTED);
+                        PermissionStatus::GRANTED);
 
 #if defined(OS_ANDROID)
   SetPermission(CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER,
                 CONTENT_SETTING_ALLOW);
   CheckPermissionStatus(PermissionType::PROTECTED_MEDIA_IDENTIFIER,
-                        content::mojom::PermissionStatus::GRANTED);
+                        PermissionStatus::GRANTED);
 #endif
 }
 
@@ -145,7 +139,7 @@
       CONTENT_SETTING_ALLOW);
 
   EXPECT_TRUE(callback_called());
-  EXPECT_EQ(content::mojom::PermissionStatus::GRANTED, callback_result());
+  EXPECT_EQ(PermissionStatus::GRANTED, callback_result());
 
   GetPermissionManager()->UnsubscribePermissionStatusChange(subscription_id);
 }
@@ -224,7 +218,7 @@
       CONTENT_SETTING_ALLOW);
 
   EXPECT_TRUE(callback_called());
-  EXPECT_EQ(content::mojom::PermissionStatus::GRANTED, callback_result());
+  EXPECT_EQ(PermissionStatus::GRANTED, callback_result());
 
   GetPermissionManager()->UnsubscribePermissionStatusChange(subscription_id);
 }
@@ -243,7 +237,7 @@
       CONTENT_SETTINGS_TYPE_GEOLOCATION);
 
   EXPECT_TRUE(callback_called());
-  EXPECT_EQ(content::mojom::PermissionStatus::ASK, callback_result());
+  EXPECT_EQ(PermissionStatus::ASK, callback_result());
 
   GetPermissionManager()->UnsubscribePermissionStatusChange(subscription_id);
 }
@@ -259,7 +253,7 @@
       CONTENT_SETTING_BLOCK);
 
   EXPECT_TRUE(callback_called());
-  EXPECT_EQ(content::mojom::PermissionStatus::DENIED, callback_result());
+  EXPECT_EQ(PermissionStatus::DENIED, callback_result());
 
   GetPermissionManager()->UnsubscribePermissionStatusChange(subscription_id);
 }
@@ -298,7 +292,7 @@
       CONTENT_SETTING_ALLOW);
 
   EXPECT_TRUE(callback_called());
-  EXPECT_EQ(content::mojom::PermissionStatus::GRANTED, callback_result());
+  EXPECT_EQ(PermissionStatus::GRANTED, callback_result());
 
   Reset();
 
@@ -307,7 +301,7 @@
       CONTENT_SETTING_ASK);
 
   EXPECT_TRUE(callback_called());
-  EXPECT_EQ(content::mojom::PermissionStatus::ASK, callback_result());
+  EXPECT_EQ(PermissionStatus::ASK, callback_result());
 
   GetPermissionManager()->UnsubscribePermissionStatusChange(subscription_id);
 }
diff --git a/chrome/browser/permissions/permission_uma_util.cc b/chrome/browser/permissions/permission_uma_util.cc
index 4a3f649..a936af7 100644
--- a/chrome/browser/permissions/permission_uma_util.cc
+++ b/chrome/browser/permissions/permission_uma_util.cc
@@ -228,15 +228,15 @@
     content::PermissionManager* manager = profile->GetPermissionManager();
     if (!manager)
       return;
-    content::mojom::PermissionStatus embedding_permission_status =
+    blink::mojom::PermissionStatus embedding_permission_status =
         manager->GetPermissionStatus(permission, embedding_origin,
                                      embedding_origin);
 
     base::HistogramBase* histogram = base::LinearHistogram::FactoryGet(
         "Permissions.Requested.CrossOrigin_" +
             PermissionUtil::GetPermissionString(permission),
-        1, static_cast<int>(content::mojom::PermissionStatus::LAST),
-        static_cast<int>(content::mojom::PermissionStatus::LAST) + 1,
+        1, static_cast<int>(blink::mojom::PermissionStatus::LAST),
+        static_cast<int>(blink::mojom::PermissionStatus::LAST) + 1,
         base::HistogramBase::kUmaTargetedHistogramFlag);
     histogram->Add(static_cast<int>(embedding_permission_status));
   } else {
diff --git a/chrome/browser/push_messaging/push_messaging_service_impl.cc b/chrome/browser/push_messaging/push_messaging_service_impl.cc
index 7e75439..e2080b03 100644
--- a/chrome/browser/push_messaging/push_messaging_service_impl.cc
+++ b/chrome/browser/push_messaging/push_messaging_service_impl.cc
@@ -68,13 +68,13 @@
 }
 
 blink::WebPushPermissionStatus ToPushPermission(
-    content::mojom::PermissionStatus permission_status) {
+    blink::mojom::PermissionStatus permission_status) {
   switch (permission_status) {
-    case content::mojom::PermissionStatus::GRANTED:
+    case blink::mojom::PermissionStatus::GRANTED:
       return blink::WebPushPermissionStatusGranted;
-    case content::mojom::PermissionStatus::DENIED:
+    case blink::mojom::PermissionStatus::DENIED:
       return blink::WebPushPermissionStatusDenied;
-    case content::mojom::PermissionStatus::ASK:
+    case blink::mojom::PermissionStatus::ASK:
       return blink::WebPushPermissionStatusPrompt;
     default:
       NOTREACHED();
@@ -517,8 +517,8 @@
     const PushMessagingAppIdentifier& app_identifier,
     const content::PushSubscriptionOptions& options,
     const content::PushMessagingService::RegisterCallback& register_callback,
-    content::mojom::PermissionStatus permission_status) {
-  if (permission_status != content::mojom::PermissionStatus::GRANTED) {
+    blink::mojom::PermissionStatus permission_status) {
+  if (permission_status != blink::mojom::PermissionStatus::GRANTED) {
     SubscribeEndWithError(register_callback,
                           content::PUSH_REGISTRATION_STATUS_PERMISSION_DENIED);
     return;
diff --git a/chrome/browser/push_messaging/push_messaging_service_impl.h b/chrome/browser/push_messaging/push_messaging_service_impl.h
index 04eaac9..5d752f6 100644
--- a/chrome/browser/push_messaging/push_messaging_service_impl.h
+++ b/chrome/browser/push_messaging/push_messaging_service_impl.h
@@ -23,9 +23,9 @@
 #include "components/gcm_driver/gcm_client.h"
 #include "components/keyed_service/core/keyed_service.h"
 #include "content/public/browser/push_messaging_service.h"
-#include "content/public/common/permission_status.mojom.h"
 #include "content/public/common/push_event_payload.h"
 #include "content/public/common/push_messaging_status.h"
+#include "third_party/WebKit/public/platform/modules/permissions/permission_status.mojom.h"
 #include "third_party/WebKit/public/platform/modules/push_messaging/WebPushPermissionStatus.h"
 
 #if defined(ENABLE_NOTIFICATIONS)
@@ -166,7 +166,7 @@
       const PushMessagingAppIdentifier& app_identifier,
       const content::PushSubscriptionOptions& options,
       const content::PushMessagingService::RegisterCallback& callback,
-      content::mojom::PermissionStatus permission_status);
+      blink::mojom::PermissionStatus permission_status);
 
   // GetEncryptionInfo method --------------------------------------------------
 
diff --git a/chrome/browser/search/search.cc b/chrome/browser/search/search.cc
index 380d5b3..645fecb 100644
--- a/chrome/browser/search/search.cc
+++ b/chrome/browser/search/search.cc
@@ -390,7 +390,7 @@
   if (!IsRenderedInInstantProcess(contents, profile))
     return false;
 
-  if (entry->GetURL() == GetLocalInstantURL(profile))
+  if (entry->GetURL() == GURL(chrome::kChromeSearchLocalNtpUrl))
     return true;
 
   GURL new_tab_url(GetNewTabPageURL(profile));
@@ -475,10 +475,6 @@
       kPrerenderInstantUrlOnOmniboxFocus, false, flags);
 }
 
-GURL GetLocalInstantURL(Profile* profile) {
-  return GURL(chrome::kChromeSearchLocalNtpUrl);
-}
-
 bool ShouldShowGoogleLocalNTP() {
   FieldTrialFlags flags;
   return !GetFieldTrialInfo(&flags) || GetBoolValueForFlagWithDefault(
diff --git a/chrome/browser/search/search.h b/chrome/browser/search/search.h
index ff0fb1f1..99d9ac9e 100644
--- a/chrome/browser/search/search.h
+++ b/chrome/browser/search/search.h
@@ -127,10 +127,6 @@
 // focused.
 bool ShouldPrerenderInstantUrlOnOmniboxFocus();
 
-// Returns the Local Instant URL of the New Tab Page.
-// TODO(kmadhusu): Remove this function and update the call sites.
-GURL GetLocalInstantURL(Profile* profile);
-
 // Returns true if the local new tab page should show a Google logo and search
 // box for users whose default search provider is Google, or false if not.
 bool ShouldShowGoogleLocalNTP();
diff --git a/chrome/browser/search/search_unittest.cc b/chrome/browser/search/search_unittest.cc
index 06f5090..4108dfd 100644
--- a/chrome/browser/search/search_unittest.cc
+++ b/chrome/browser/search/search_unittest.cc
@@ -512,9 +512,6 @@
 }
 
 TEST_F(SearchTest, CommandLineOverrides) {
-  GURL local_instant_url(GetLocalInstantURL(profile()));
-  EXPECT_EQ(GURL(chrome::kChromeSearchLocalNtpUrl), local_instant_url);
-
   TemplateURLService* template_url_service =
       TemplateURLServiceFactory::GetForProfile(profile());
   TemplateURLData data;
@@ -543,12 +540,6 @@
   ASSERT_TRUE(instant_url.is_valid());
   EXPECT_EQ("http://www.bar.com/webhp?strk", instant_url.spec());
 
-  // Similarly, setting a Google base URL on the command line should allow you
-  // to get the Google version of the local NTP, even though search provider's
-  // URL doesn't contain "google".
-  local_instant_url = GetLocalInstantURL(profile());
-  EXPECT_EQ(GURL(chrome::kChromeSearchLocalNtpUrl), local_instant_url);
-
   // If we specify extra search query params, they should be inserted into the
   // query portion of the instant URL.
   base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
@@ -624,7 +615,7 @@
 TEST_F(SearchTest, IsNTPURL) {
   GURL invalid_url;
   GURL ntp_url(chrome::kChromeUINewTabURL);
-  GURL local_ntp_url(GetLocalInstantURL(profile()));
+  GURL local_ntp_url(chrome::kChromeSearchLocalNtpUrl);
 
   EXPECT_FALSE(IsNTPURL(invalid_url, profile()));
   // No margin.
diff --git a/chrome/browser/ui/browser_instant_controller.cc b/chrome/browser/ui/browser_instant_controller.cc
index 80fb81828..434e51d8 100644
--- a/chrome/browser/ui/browser_instant_controller.cc
+++ b/chrome/browser/ui/browser_instant_controller.cc
@@ -206,9 +206,9 @@
 
     SearchModel* model = SearchTabHelper::FromWebContents(contents)->model();
     if (google_base_url_domain_changed && model->mode().is_origin_ntp()) {
+      GURL local_ntp_url(chrome::kChromeSearchLocalNtpUrl);
       // Replace the server NTP with the local NTP.
-      content::NavigationController::LoadURLParams params(
-          search::GetLocalInstantURL(profile()));
+      content::NavigationController::LoadURLParams params(local_ntp_url);
       params.should_replace_current_entry = true;
       params.referrer = content::Referrer();
       params.transition_type = ui::PAGE_TRANSITION_RELOAD;
diff --git a/chrome/browser/ui/passwords/password_manager_presenter.cc b/chrome/browser/ui/passwords/password_manager_presenter.cc
index 5fddcf8b..6cc5e82 100644
--- a/chrome/browser/ui/passwords/password_manager_presenter.cc
+++ b/chrome/browser/ui/passwords/password_manager_presenter.cc
@@ -9,6 +9,9 @@
 #include "base/bind.h"
 #include "base/command_line.h"
 #include "base/metrics/user_metrics_action.h"
+#include "base/strings/string_piece.h"
+#include "base/strings/string_split.h"
+#include "base/strings/string_util.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/time/time.h"
 #include "base/values.h"
@@ -26,11 +29,13 @@
 #include "components/browser_sync/browser/profile_sync_service.h"
 #include "components/password_manager/core/browser/affiliation_utils.h"
 #include "components/password_manager/core/browser/password_manager_util.h"
+#include "components/password_manager/core/browser/password_ui_utils.h"
 #include "components/password_manager/core/common/password_manager_pref_names.h"
 #include "components/password_manager/sync/browser/password_sync_util.h"
 #include "components/prefs/pref_service.h"
 #include "content/public/browser/user_metrics.h"
 #include "content/public/browser/web_contents.h"
+#include "net/base/registry_controlled_domains/registry_controlled_domain.h"
 
 #if defined(OS_WIN)
 #include "chrome/browser/password_manager/password_manager_util_win.h"
@@ -38,8 +43,94 @@
 #include "chrome/browser/password_manager/password_manager_util_mac.h"
 #endif
 
+using base::StringPiece;
 using password_manager::PasswordStore;
 
+namespace {
+
+const int kAndroidAppSchemeAndDelimiterLength = 10;  // Length of 'android://'.
+
+const char kSortKeyPartsSeparator = ' ';
+
+// Reverse order of subdomains in hostname.
+std::string SplitByDotAndReverse(StringPiece host) {
+  std::vector<std::string> parts =
+      base::SplitString(host, ".", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
+  std::reverse(parts.begin(), parts.end());
+  return base::JoinString(parts, ".");
+}
+
+// Helper function that returns the type of the entry (non-Android credentials,
+// Android w/ affiliated web realm (i.e. clickable) or w/o web realm).
+std::string GetEntryTypeCode(bool is_android_uri, bool is_clickable) {
+  if (!is_android_uri)
+    return "0";
+  if (is_clickable)
+    return "1";
+  return "2";
+}
+
+// Creates key for sorting password or password exception entries.
+// The key is eTLD+1 followed by subdomains
+// (e.g. secure.accounts.example.com => example.com.accounts.secure).
+// If |username_and_password_in_key == true|, username and password is appended
+// to the key. The entry type code (non-Android, Android w/ or w/o affiliated
+// web realm) is also appended to the key.
+std::string CreateSortKey(const autofill::PasswordForm& form,
+                          const std::string& languages,
+                          bool username_and_password_in_key) {
+  bool is_android_uri = false;
+  bool is_clickable = false;
+  GURL link_url;
+  std::string origin = password_manager::GetShownOriginAndLinkUrl(
+      form, languages, &is_android_uri, &link_url, &is_clickable);
+
+  if (!is_clickable) {  // e.g. android://com.example.r => r.example.com.
+    origin = SplitByDotAndReverse(
+        StringPiece(&origin[kAndroidAppSchemeAndDelimiterLength],
+                    origin.length() - kAndroidAppSchemeAndDelimiterLength));
+  }
+
+  std::string site_name =
+      net::registry_controlled_domains::GetDomainAndRegistry(
+          origin, net::registry_controlled_domains::INCLUDE_PRIVATE_REGISTRIES);
+  if (site_name.empty())  // e.g. localhost.
+    site_name = origin;
+  std::string key =
+      site_name + SplitByDotAndReverse(StringPiece(
+                      &origin[0], origin.length() - site_name.length()));
+
+  if (username_and_password_in_key) {
+    key = key + kSortKeyPartsSeparator +
+          base::UTF16ToUTF8(form.username_value) + kSortKeyPartsSeparator +
+          base::UTF16ToUTF8(form.password_value);
+  }
+
+  // Since Android and non-Android entries shouldn't be merged into one entry,
+  // add the entry type code to the sort key.
+  key +=
+      kSortKeyPartsSeparator + GetEntryTypeCode(is_android_uri, is_clickable);
+  return key;
+}
+
+// Finds duplicates of |form| in |duplicates|, removes them from |store| and
+// from |duplicates|.
+void RemoveDuplicates(const autofill::PasswordForm& form,
+                      const std::string& languages,
+                      DuplicatesMap* duplicates,
+                      PasswordStore* store,
+                      bool username_and_password_in_key) {
+  std::string key =
+      CreateSortKey(form, languages, username_and_password_in_key);
+  std::pair<DuplicatesMap::iterator, DuplicatesMap::iterator> dups =
+      duplicates->equal_range(key);
+  for (DuplicatesMap::iterator it = dups.first; it != dups.second; ++it)
+    store->RemoveLogin(*it->second);
+  duplicates->erase(key);
+}
+
+}  // namespace
+
 PasswordManagerPresenter::PasswordManagerPresenter(
     PasswordUIView* password_view)
     : populater_(this),
@@ -98,7 +189,9 @@
 
   // Reset the current lists.
   password_list_.clear();
+  password_duplicates_.clear();
   password_exception_list_.clear();
+  password_exception_duplicates_.clear();
 
   populater_.Populate();
   exception_populater_.Populate();
@@ -114,6 +207,9 @@
   PasswordStore* store = GetPasswordStore();
   if (!store)
     return;
+
+  RemoveDuplicates(*password_list_[index], languages_, &password_duplicates_,
+                   store, true);
   store->RemoveLogin(*password_list_[index]);
   content::RecordAction(
       base::UserMetricsAction("PasswordManager_RemoveSavedPassword"));
@@ -129,6 +225,8 @@
   PasswordStore* store = GetPasswordStore();
   if (!store)
     return;
+  RemoveDuplicates(*password_exception_list_[index], languages_,
+                   &password_exception_duplicates_, store, false);
   store->RemoveLogin(*password_exception_list_[index]);
   content::RecordAction(
       base::UserMetricsAction("PasswordManager_RemovePasswordException"));
@@ -221,6 +319,38 @@
   password_view_->SetPasswordExceptionList(password_exception_list_);
 }
 
+void PasswordManagerPresenter::SortEntriesAndHideDuplicates(
+    const std::string& languages,
+    std::vector<scoped_ptr<autofill::PasswordForm>>* list,
+    DuplicatesMap* duplicates,
+    bool username_and_password_in_key) {
+  std::vector<std::pair<std::string, scoped_ptr<autofill::PasswordForm>>> pairs;
+  pairs.reserve(list->size());
+  for (auto& form : *list) {
+    pairs.push_back(std::make_pair(
+        CreateSortKey(*form, languages, username_and_password_in_key),
+        std::move(form)));
+  }
+
+  std::sort(
+      pairs.begin(), pairs.end(),
+      [](const std::pair<std::string, scoped_ptr<autofill::PasswordForm>>& left,
+         const std::pair<std::string, scoped_ptr<autofill::PasswordForm>>&
+             right) { return left.first < right.first; });
+
+  list->clear();
+  duplicates->clear();
+  std::string previous_key;
+  for (auto& pair : pairs) {
+    if (pair.first != previous_key) {
+      list->push_back(std::move(pair.second));
+      previous_key = pair.first;
+    } else {
+      duplicates->insert(std::make_pair(previous_key, std::move(pair.second)));
+    }
+  }
+}
+
 PasswordManagerPresenter::ListPopulater::ListPopulater(
     PasswordManagerPresenter* page) : page_(page) {
 }
@@ -246,6 +376,9 @@
     ScopedVector<autofill::PasswordForm> results) {
   page_->password_list_ =
       password_manager_util::ConvertScopedVector(std::move(results));
+  page_->SortEntriesAndHideDuplicates(page_->languages_, &page_->password_list_,
+                                      &page_->password_duplicates_,
+                                      true /* use username and password */);
   page_->SetPasswordList();
 }
 
@@ -268,5 +401,9 @@
     OnGetPasswordStoreResults(ScopedVector<autofill::PasswordForm> results) {
   page_->password_exception_list_ =
       password_manager_util::ConvertScopedVector(std::move(results));
+  page_->SortEntriesAndHideDuplicates(
+      page_->languages_, &page_->password_exception_list_,
+      &page_->password_exception_duplicates_,
+      false /* don't use username and password*/);
   page_->SetPasswordExceptionList();
 }
diff --git a/chrome/browser/ui/passwords/password_manager_presenter.h b/chrome/browser/ui/passwords/password_manager_presenter.h
index 0096cdf..f8a8b7e7 100644
--- a/chrome/browser/ui/passwords/password_manager_presenter.h
+++ b/chrome/browser/ui/passwords/password_manager_presenter.h
@@ -7,6 +7,7 @@
 
 #include <stddef.h>
 
+#include <map>
 #include <string>
 #include <vector>
 
@@ -21,6 +22,10 @@
 struct PasswordForm;
 }
 
+// Multimap from sort key to password forms.
+using DuplicatesMap =
+    std::multimap<std::string, scoped_ptr<autofill::PasswordForm>>;
+
 class PasswordUIView;
 
 class Profile;
@@ -72,6 +77,18 @@
   void SetPasswordList();
   void SetPasswordExceptionList();
 
+  // Sort entries of |list| based on sort key. The key is the concatenation of
+  // origin, entry type (non-Android credential, Android w/ affiliated web realm
+  // or Android w/o affiliated web realm). If |username_and_password_in_key|,
+  // username and password are also included in sort key. If there are several
+  // forms with the same key, all such forms but the first one are
+  // stored in |duplicates| instead of |list|.
+  void SortEntriesAndHideDuplicates(
+      const std::string& languages,
+      std::vector<scoped_ptr<autofill::PasswordForm>>* list,
+      DuplicatesMap* duplicates,
+      bool username_and_password_in_key);
+
   // A short class to mediate requests to the password store.
   class ListPopulater : public password_manager::PasswordStoreConsumer {
    public:
@@ -117,6 +134,8 @@
 
   std::vector<scoped_ptr<autofill::PasswordForm>> password_list_;
   std::vector<scoped_ptr<autofill::PasswordForm>> password_exception_list_;
+  DuplicatesMap password_duplicates_;
+  DuplicatesMap password_exception_duplicates_;
 
   // Whether to show stored passwords or not.
   BooleanPrefMember show_passwords_;
diff --git a/chrome/browser/ui/passwords/password_manager_presenter_unittest.cc b/chrome/browser/ui/passwords/password_manager_presenter_unittest.cc
index e8a8207..bde87b03 100644
--- a/chrome/browser/ui/passwords/password_manager_presenter_unittest.cc
+++ b/chrome/browser/ui/passwords/password_manager_presenter_unittest.cc
@@ -23,6 +23,18 @@
 using testing::Eq;
 using testing::Property;
 
+namespace {
+
+struct SortEntry {
+  const char* const origin;
+  const char* const username;
+  const char* const password;
+  const char* const affiliated_web_realm;
+  const int expected_position;
+};
+
+}  // namespace
+
 class MockPasswordUIView : public PasswordUIView {
  public:
   explicit MockPasswordUIView(Profile* profile)
@@ -75,6 +87,9 @@
   void AddPasswordException(const GURL& origin);
   void UpdateLists();
   MockPasswordUIView* GetUIController() { return mock_controller_.get(); }
+  void SortAndCheckPositions(const SortEntry test_entries[],
+                             size_t number_of_entries,
+                             bool username_and_password_in_key);
 
  private:
   content::TestBrowserThreadBundle thread_bundle_;
@@ -110,6 +125,53 @@
   mock_controller_->GetPasswordManagerPresenter()->SetPasswordExceptionList();
 }
 
+void PasswordManagerPresenterTest::SortAndCheckPositions(
+    const SortEntry test_entries[],
+    size_t number_of_entries,
+    bool username_and_password_in_key) {
+  std::vector<scoped_ptr<autofill::PasswordForm>> list;
+  size_t expected_number_of_unique_entries = 0;
+  for (size_t i = 0; i < number_of_entries; i++) {
+    const SortEntry& entry = test_entries[i];
+    scoped_ptr<autofill::PasswordForm> form(new autofill::PasswordForm());
+    form->signon_realm = entry.origin;
+    form->origin = GURL(base::ASCIIToUTF16(entry.origin));
+    if (username_and_password_in_key) {
+      form->username_value = base::ASCIIToUTF16(entry.username);
+      form->password_value = base::ASCIIToUTF16(entry.password);
+    }
+    if (entry.affiliated_web_realm)
+      form->affiliated_web_realm = entry.affiliated_web_realm;
+    list.push_back(std::move(form));
+    if (entry.expected_position >= 0)
+      expected_number_of_unique_entries++;
+  }
+
+  DuplicatesMap duplicates;
+  std::string languages;
+  mock_controller_->GetPasswordManagerPresenter()->SortEntriesAndHideDuplicates(
+      languages, &list, &duplicates, username_and_password_in_key);
+
+  ASSERT_EQ(expected_number_of_unique_entries, list.size());
+  ASSERT_EQ(number_of_entries - expected_number_of_unique_entries,
+            duplicates.size());
+  for (size_t i = 0; i < number_of_entries; i++) {
+    const SortEntry& entry = test_entries[i];
+    if (entry.expected_position >= 0) {
+      SCOPED_TRACE(testing::Message("position in sorted list: ")
+                   << entry.expected_position);
+      EXPECT_EQ(GURL(base::ASCIIToUTF16(entry.origin)),
+                list[entry.expected_position]->origin);
+      if (username_and_password_in_key) {
+        EXPECT_EQ(base::ASCIIToUTF16(entry.username),
+                  list[entry.expected_position]->username_value);
+        EXPECT_EQ(base::ASCIIToUTF16(entry.password),
+                  list[entry.expected_position]->password_value);
+      }
+    }
+  }
+}
+
 namespace {
 
 TEST_F(PasswordManagerPresenterTest, UIControllerIsCalled) {
@@ -165,4 +227,65 @@
   UpdateLists();
 }
 
+TEST_F(PasswordManagerPresenterTest, Sorting_DifferentOrigins) {
+  const SortEntry test_cases[] = {
+      {"http://example-b.com", "user_a", "pwd", nullptr, 2},
+      {"http://example-a.com", "user_a1", "pwd", nullptr, 0},
+      {"http://example-a.com", "user_a2", "pwd", nullptr, 1},
+      {"http://example-c.com", "user_a", "pwd", nullptr, 3}};
+  SortAndCheckPositions(test_cases, arraysize(test_cases), true);
+}
+
+TEST_F(PasswordManagerPresenterTest, Sorting_DifferentUsernames) {
+  const SortEntry test_cases[] = {
+      {"http://example.com", "user_a", "pwd", nullptr, 0},
+      {"http://example.com", "user_c", "pwd", nullptr, 2},
+      {"http://example.com", "user_b", "pwd", nullptr, 1}};
+  SortAndCheckPositions(test_cases, arraysize(test_cases), true);
+}
+
+TEST_F(PasswordManagerPresenterTest, Sorting_DifferentPasswords) {
+  const SortEntry test_cases[] = {
+      {"http://example.com", "user_a", "1", nullptr, 0},
+      {"http://example.com", "user_a", "2", nullptr, 1},
+      {"http://example.com", "user_a", "3", nullptr, 2}};
+  SortAndCheckPositions(test_cases, arraysize(test_cases), true);
+}
+
+TEST_F(PasswordManagerPresenterTest, Sorting_HideDuplicates) {
+  const SortEntry test_cases[] = {
+      {"http://example.com", "user_a", "pwd", nullptr, 0},
+      // Different username.
+      {"http://example.com", "user_b", "pwd", nullptr, 2},
+      // Different password.
+      {"http://example.com", "user_a", "secret", nullptr, 1},
+      // Different origin.
+      {"http://sub1.example.com", "user_a", "pwd", nullptr, 3},
+      {"http://example.com", "user_a", "pwd", nullptr, -1}  // Hide it.
+  };
+  SortAndCheckPositions(test_cases, arraysize(test_cases), true);
+}
+
+TEST_F(PasswordManagerPresenterTest, Sorting_DontUseUsernameAndPasswordInKey) {
+  const SortEntry test_cases[] = {
+      {"http://example-b.com", nullptr, nullptr, nullptr, 1},
+      {"http://example-a.com", nullptr, nullptr, nullptr, 0},
+      {"http://example-a.com", nullptr, nullptr, nullptr, -1},  // Hide it.
+      {"http://example-c.com", nullptr, nullptr, nullptr, 2}};
+  SortAndCheckPositions(test_cases, arraysize(test_cases), false);
+}
+
+TEST_F(PasswordManagerPresenterTest, Sorting_AndroidCredentials) {
+  const SortEntry test_cases[] = {
+      {"https://alpha.com", "user", "secret", nullptr, 0},
+      {"android://hash@com.alpha", "user", "secret", "https://alpha.com", 1},
+      {"android://hash@com.alpha", "user", "secret", "https://alpha.com", -1},
+      {"android://hash@com.alpha", "user", "secret", nullptr, 2},
+
+      {"android://hash@com.betta.android", "user", "secret",
+       "https://betta.com", 3},
+      {"android://hash@com.betta.android", "user", "secret", nullptr, 4}};
+  SortAndCheckPositions(test_cases, arraysize(test_cases), true);
+}
+
 }  // namespace
diff --git a/chrome/browser/ui/webui/options/startup_pages_handler.cc b/chrome/browser/ui/webui/options/startup_pages_handler.cc
index cc3d269..44c3a29c 100644
--- a/chrome/browser/ui/webui/options/startup_pages_handler.cc
+++ b/chrome/browser/ui/webui/options/startup_pages_handler.cc
@@ -16,6 +16,7 @@
 #include "chrome/browser/prefs/session_startup_pref.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/search_engines/template_url_service_factory.h"
+#include "chrome/browser/ui/webui/settings_utils.h"
 #include "chrome/common/pref_names.h"
 #include "chrome/grit/generated_resources.h"
 #include "components/metrics/proto/omnibox_event.pb.h"
@@ -24,9 +25,9 @@
 #include "components/omnibox/browser/autocomplete_input.h"
 #include "components/omnibox/browser/autocomplete_result.h"
 #include "components/prefs/pref_service.h"
-#include "components/url_formatter/url_fixer.h"
 #include "content/public/browser/notification_details.h"
 #include "content/public/browser/web_ui.h"
+#include "url/gurl.h"
 
 namespace options {
 
@@ -166,8 +167,8 @@
   std::string url_string;
   CHECK(args->GetString(0, &url_string));
 
-  GURL url = url_formatter::FixupURL(url_string, std::string());
-  if (!url.is_valid())
+  GURL fixed_url;
+  if (!settings_utils::FixupAndValidateStartupPage(url_string, &fixed_url))
     return;
 
   int row_count = startup_custom_pages_table_model_->RowCount();
@@ -175,24 +176,24 @@
   if (!args->GetInteger(1, &index) || index > row_count)
     index = row_count;
 
-  startup_custom_pages_table_model_->Add(index, url);
+  startup_custom_pages_table_model_->Add(index, fixed_url);
 }
 
 void StartupPagesHandler::EditStartupPage(const base::ListValue* args) {
-  std::string url_string;
-  GURL fixed_url;
-  int index;
   CHECK_EQ(args->GetSize(), 2U);
+  int index;
   CHECK(args->GetInteger(0, &index));
-  CHECK(args->GetString(1, &url_string));
 
   if (index < 0 || index > startup_custom_pages_table_model_->RowCount()) {
     NOTREACHED();
     return;
   }
 
-  fixed_url = url_formatter::FixupURL(url_string, std::string());
-  if (!fixed_url.is_empty()) {
+  std::string url_string;
+  CHECK(args->GetString(1, &url_string));
+
+  GURL fixed_url;
+  if (settings_utils::FixupAndValidateStartupPage(url_string, &fixed_url)) {
     std::vector<GURL> urls = startup_custom_pages_table_model_->GetURLs();
     urls[index] = fixed_url;
     startup_custom_pages_table_model_->SetURLs(urls);
diff --git a/chrome/browser/ui/webui/settings_utils.cc b/chrome/browser/ui/webui/settings_utils.cc
new file mode 100644
index 0000000..ae35bf3
--- /dev/null
+++ b/chrome/browser/ui/webui/settings_utils.cc
@@ -0,0 +1,22 @@
+// Copyright 2016 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/webui/settings_utils.h"
+
+#include "chrome/browser/extensions/extension_tab_util.h"
+#include "components/url_formatter/url_fixer.h"
+#include "url/gurl.h"
+
+namespace settings_utils {
+
+bool FixupAndValidateStartupPage(const std::string& url_string,
+                                 GURL* fixed_url) {
+  GURL url = url_formatter::FixupURL(url_string, std::string());
+  bool valid = url.is_valid() && !extensions::ExtensionTabUtil::IsKillURL(url);
+  if (valid && fixed_url)
+    fixed_url->Swap(&url);
+  return valid;
+}
+
+}  // namespace settings_utils
diff --git a/chrome/browser/ui/webui/settings_utils.h b/chrome/browser/ui/webui/settings_utils.h
index 9f95aa4..bd5079d 100644
--- a/chrome/browser/ui/webui/settings_utils.h
+++ b/chrome/browser/ui/webui/settings_utils.h
@@ -5,8 +5,12 @@
 #ifndef CHROME_BROWSER_UI_WEBUI_SETTINGS_UTILS_H_
 #define CHROME_BROWSER_UI_WEBUI_SETTINGS_UTILS_H_
 
+#include <string>
+
 #include "base/macros.h"
 
+class GURL;
+
 namespace content {
 class WebContents;
 }
@@ -19,6 +23,11 @@
 // Invoke UI for SSL certificates.
 void ShowManageSSLCertificates(content::WebContents* web_contents);
 
+// Returns whether |url_string| is a valid startup page. |fixed_url| is set to
+// the fixed up, valid URL if not null.
+bool FixupAndValidateStartupPage(const std::string& url_string,
+                                 GURL* fixed_url);
+
 }  // namespace settings_utils
 
 #endif  // CHROME_BROWSER_UI_WEBUI_SETTINGS_UTILS_H_
diff --git a/chrome/browser/ui/webui/settings_utils_unittest.cc b/chrome/browser/ui/webui/settings_utils_unittest.cc
new file mode 100644
index 0000000..477cbf1
--- /dev/null
+++ b/chrome/browser/ui/webui/settings_utils_unittest.cc
@@ -0,0 +1,28 @@
+// Copyright 2016 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/webui/settings_utils.h"
+
+#include "testing/gtest/include/gtest/gtest.h"
+#include "url/gurl.h"
+
+namespace settings_utils {
+
+TEST(SettingsUtilsTest, FixupAndValidateStartupPage) {
+  EXPECT_FALSE(FixupAndValidateStartupPage(std::string(), nullptr));
+  EXPECT_FALSE(FixupAndValidateStartupPage("   ", nullptr));
+  EXPECT_FALSE(FixupAndValidateStartupPage("^&*@)^)", nullptr));
+  EXPECT_FALSE(FixupAndValidateStartupPage("chrome://quit", nullptr));
+
+  EXPECT_TRUE(FixupAndValidateStartupPage("facebook.com", nullptr));
+  EXPECT_TRUE(FixupAndValidateStartupPage("http://reddit.com", nullptr));
+  EXPECT_TRUE(FixupAndValidateStartupPage("https://google.com", nullptr));
+  EXPECT_TRUE(FixupAndValidateStartupPage("chrome://apps", nullptr));
+
+  GURL fixed_url;
+  EXPECT_TRUE(FixupAndValidateStartupPage("about:settings", &fixed_url));
+  EXPECT_EQ("chrome://settings/", fixed_url.spec());
+}
+
+}  // namespace settings_utils
diff --git a/chrome/chrome_browser_ui.gypi b/chrome/chrome_browser_ui.gypi
index 955400d..171f7e8e 100644
--- a/chrome/chrome_browser_ui.gypi
+++ b/chrome/chrome_browser_ui.gypi
@@ -2045,6 +2045,7 @@
       'browser/ui/webui/settings/settings_startup_pages_handler.h',
       'browser/ui/webui/settings/site_settings_handler.cc',
       'browser/ui/webui/settings/site_settings_handler.h',
+      'browser/ui/webui/settings_utils.cc',
       'browser/ui/webui/settings_utils.h',
       'browser/ui/webui/settings_utils_linux.cc',
       'browser/ui/webui/settings_utils_mac.mm',
diff --git a/chrome/chrome_tests_unit.gypi b/chrome/chrome_tests_unit.gypi
index f4542d9..338a120d 100644
--- a/chrome/chrome_tests_unit.gypi
+++ b/chrome/chrome_tests_unit.gypi
@@ -1565,6 +1565,7 @@
       'browser/ui/webui/options/sync_setup_handler_unittest.cc',
       'browser/ui/webui/settings/people_handler_unittest.cc',
       'browser/ui/webui/settings/reset_settings_handler_unittest.cc',
+      'browser/ui/webui/settings_utils_unittest.cc',
       'browser/ui/webui/signin/login_ui_service_unittest.cc',
       'browser/ui/webui/sync_internals_message_handler_unittest.cc',
       'browser/ui/webui/web_dialog_web_contents_delegate_unittest.cc',
diff --git a/chrome/common/chrome_switches.cc b/chrome/common/chrome_switches.cc
index 135b117..02cdb9f 100644
--- a/chrome/common/chrome_switches.cc
+++ b/chrome/common/chrome_switches.cc
@@ -1316,6 +1316,8 @@
     "tab-management-experiment-type-dill";
 const char kTabManagementExperimentTypeElderberry[] =
     "tab-management-experiment-type-elderberry";
+const char kEnableForcedMigrationToTabbedMode[] =
+    "enable-forced-migration-to-tabbed-mode";
 #endif  // defined(OS_ANDROID)
 
 #if defined(OS_WIN) || defined(OS_LINUX)
diff --git a/chrome/common/chrome_switches.h b/chrome/common/chrome_switches.h
index 159fb8a..31ca1e6 100644
--- a/chrome/common/chrome_switches.h
+++ b/chrome/common/chrome_switches.h
@@ -313,6 +313,7 @@
 extern const char kTabManagementExperimentTypeChive[];
 extern const char kTabManagementExperimentTypeDill[];
 extern const char kTabManagementExperimentTypeElderberry[];
+extern const char kEnableForcedMigrationToTabbedMode[];
 #endif  // defined(OS_ANDROID)
 
 #if defined(USE_ASH)
diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc
index 8d2b344e..4265789 100644
--- a/chrome/renderer/chrome_content_renderer_client.cc
+++ b/chrome/renderer/chrome_content_renderer_client.cc
@@ -1054,8 +1054,8 @@
 
   bool is_post = base::EqualsASCII(
       base::StringPiece16(failed_request.httpMethod()), "POST");
-  bool is_ignoring_cache = failed_request.getCachePolicy() ==
-                           blink::WebURLRequest::ReloadBypassingCache;
+  bool is_ignoring_cache =
+      failed_request.getCachePolicy() == blink::WebURLRequest::BypassingCache;
   if (error_html) {
     NetErrorHelper::Get(render_frame)
         ->GetErrorHTML(error, is_post, is_ignoring_cache, error_html);
diff --git a/chrome/renderer/extensions/cast_streaming_native_handler.cc b/chrome/renderer/extensions/cast_streaming_native_handler.cc
index 6b55fdb9..12ffab3 100644
--- a/chrome/renderer/extensions/cast_streaming_native_handler.cc
+++ b/chrome/renderer/extensions/cast_streaming_native_handler.cc
@@ -31,6 +31,7 @@
 #include "extensions/renderer/script_context.h"
 #include "media/audio/audio_parameters.h"
 #include "net/base/host_port_pair.h"
+#include "net/base/ip_address.h"
 #include "third_party/WebKit/public/platform/WebMediaStream.h"
 #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h"
 #include "third_party/WebKit/public/platform/WebURL.h"
@@ -733,8 +734,8 @@
         v8::String::NewFromUtf8(isolate, kInvalidDestination)));
     return false;
   }
-  net::IPAddressNumber ip;
-  if (!net::ParseIPLiteralToNumber(destination->address, &ip)) {
+  net::IPAddress ip;
+  if (!ip.AssignFromIPLiteral(destination->address)) {
     isolate->ThrowException(v8::Exception::TypeError(
         v8::String::NewFromUtf8(isolate, kInvalidDestination)));
     return false;
diff --git a/chrome/test/base/run_all_unittests.cc b/chrome/test/base/run_all_unittests.cc
index 60f2d3a8..fd8928d 100644
--- a/chrome/test/base/run_all_unittests.cc
+++ b/chrome/test/base/run_all_unittests.cc
@@ -5,14 +5,19 @@
 #include "base/bind.h"
 #include "base/command_line.h"
 #include "base/test/launcher/unit_test_launcher.h"
+#include "base/test/test_io_thread.h"
 #include "chrome/test/base/chrome_unit_test_suite.h"
 #include "content/public/test/unittest_test_suite.h"
 #include "mojo/edk/embedder/embedder.h"
+#include "mojo/edk/test/scoped_ipc_support.h"
 
 int main(int argc, char **argv) {
   content::UnitTestTestSuite test_suite(new ChromeUnitTestSuite(argc, argv));
 
   mojo::edk::Init();
+  base::TestIOThread test_io_thread(base::TestIOThread::kAutoStart);
+  mojo::edk::test::ScopedIPCSupport ipc_support(test_io_thread.task_runner());
+
   return base::LaunchUnitTests(
       argc, argv, base::Bind(&content::UnitTestTestSuite::Run,
                              base::Unretained(&test_suite)));
diff --git a/chromecast/browser/cast_permission_manager.cc b/chromecast/browser/cast_permission_manager.cc
index eafb652c..47f953cd 100644
--- a/chromecast/browser/cast_permission_manager.cc
+++ b/chromecast/browser/cast_permission_manager.cc
@@ -22,9 +22,9 @@
     content::PermissionType permission,
     content::RenderFrameHost* render_frame_host,
     const GURL& origin,
-    const base::Callback<void(content::mojom::PermissionStatus)>& callback) {
+    const base::Callback<void(blink::mojom::PermissionStatus)>& callback) {
   LOG(INFO) << __FUNCTION__ << ": " << static_cast<int>(permission);
-  callback.Run(content::mojom::PermissionStatus::GRANTED);
+  callback.Run(blink::mojom::PermissionStatus::GRANTED);
   return kNoPendingOperation;
 }
 
@@ -33,9 +33,9 @@
     content::RenderFrameHost* render_frame_host,
     const GURL& requesting_origin,
     const base::Callback<
-        void(const std::vector<content::mojom::PermissionStatus>&)>& callback) {
-  callback.Run(std::vector<content::mojom::PermissionStatus>(
-      permissions.size(), content::mojom::PermissionStatus::GRANTED));
+        void(const std::vector<blink::mojom::PermissionStatus>&)>& callback) {
+  callback.Run(std::vector<blink::mojom::PermissionStatus>(
+      permissions.size(), blink::mojom::PermissionStatus::GRANTED));
   return kNoPendingOperation;
 }
 
@@ -48,12 +48,12 @@
     const GURL& embedding_origin) {
 }
 
-content::mojom::PermissionStatus CastPermissionManager::GetPermissionStatus(
+blink::mojom::PermissionStatus CastPermissionManager::GetPermissionStatus(
     content::PermissionType permission,
     const GURL& requesting_origin,
     const GURL& embedding_origin) {
   LOG(INFO) << __FUNCTION__ << ": " << static_cast<int>(permission);
-  return content::mojom::PermissionStatus::GRANTED;
+  return blink::mojom::PermissionStatus::GRANTED;
 }
 
 void CastPermissionManager::RegisterPermissionUsage(
@@ -66,7 +66,7 @@
     content::PermissionType permission,
     const GURL& requesting_origin,
     const GURL& embedding_origin,
-    const base::Callback<void(content::mojom::PermissionStatus)>& callback) {
+    const base::Callback<void(blink::mojom::PermissionStatus)>& callback) {
   return kNoPendingOperation;
 }
 
diff --git a/chromecast/browser/cast_permission_manager.h b/chromecast/browser/cast_permission_manager.h
index 37e16b3..d96ec8e 100644
--- a/chromecast/browser/cast_permission_manager.h
+++ b/chromecast/browser/cast_permission_manager.h
@@ -22,20 +22,20 @@
       content::PermissionType permission,
       content::RenderFrameHost* render_frame_host,
       const GURL& requesting_origin,
-      const base::Callback<void(content::mojom::PermissionStatus)>& callback)
+      const base::Callback<void(blink::mojom::PermissionStatus)>& callback)
       override;
   int RequestPermissions(
       const std::vector<content::PermissionType>& permission,
       content::RenderFrameHost* render_frame_host,
       const GURL& requesting_origin,
       const base::Callback<
-          void(const std::vector<content::mojom::PermissionStatus>&)>& callback)
+          void(const std::vector<blink::mojom::PermissionStatus>&)>& callback)
       override;
   void CancelPermissionRequest(int request_id) override;
   void ResetPermission(content::PermissionType permission,
                        const GURL& requesting_origin,
                        const GURL& embedding_origin) override;
-  content::mojom::PermissionStatus GetPermissionStatus(
+  blink::mojom::PermissionStatus GetPermissionStatus(
       content::PermissionType permission,
       const GURL& requesting_origin,
       const GURL& embedding_origin) override;
@@ -46,7 +46,7 @@
       content::PermissionType permission,
       const GURL& requesting_origin,
       const GURL& embedding_origin,
-      const base::Callback<void(content::mojom::PermissionStatus)>& callback)
+      const base::Callback<void(blink::mojom::PermissionStatus)>& callback)
       override;
   void UnsubscribePermissionStatusChange(int subscription_id) override;
 
diff --git a/chromeos/network/host_resolver_impl_chromeos.cc b/chromeos/network/host_resolver_impl_chromeos.cc
index 6f06aa90..6b9086e 100644
--- a/chromeos/network/host_resolver_impl_chromeos.cc
+++ b/chromeos/network/host_resolver_impl_chromeos.cc
@@ -16,6 +16,7 @@
 #include "chromeos/network/network_state_handler.h"
 #include "chromeos/network/network_state_handler_observer.h"
 #include "net/base/address_list.h"
+#include "net/base/ip_address.h"
 #include "net/base/net_errors.h"
 #include "third_party/cros_system_api/dbus/service_constants.h"
 
@@ -170,13 +171,13 @@
 
   if (info.address_family() != net::ADDRESS_FAMILY_IPV4 &&
       !ipv6_address_.empty()) {
-    net::IPAddressNumber ipv6;
-    if (net::ParseIPLiteralToNumber(ipv6_address_, &ipv6))
+    net::IPAddress ipv6;
+    if (ipv6.AssignFromIPLiteral(ipv6_address_))
       addresses->push_back(net::IPEndPoint(ipv6, 0));
   }
 
-  net::IPAddressNumber ipv4;
-  if (net::ParseIPLiteralToNumber(ipv4_address_, &ipv4))
+  net::IPAddress ipv4;
+  if (ipv4.AssignFromIPLiteral(ipv4_address_))
     addresses->push_back(net::IPEndPoint(ipv4, 0));
 
   DVLOG(2) << "ResolveLocalIPAddress("
diff --git a/components/printing/renderer/print_web_view_helper.cc b/components/printing/renderer/print_web_view_helper.cc
index 823c957..9ee4cd9 100644
--- a/components/printing/renderer/print_web_view_helper.cc
+++ b/components/printing/renderer/print_web_view_helper.cc
@@ -78,6 +78,9 @@
 
 const double kMinDpi = 1.0;
 
+// Also set in third_party/WebKit/Source/core/page/PrintContext.cpp
+const float kPrintingMinimumShrinkFactor = 1.333f;
+
 #if defined(ENABLE_PRINT_PREVIEW)
 bool g_is_preview_enabled = true;
 
@@ -677,15 +680,19 @@
 
 void PrepareFrameAndViewForPrint::ResizeForPrinting() {
   // Layout page according to printer page size. Since WebKit shrinks the
-  // size of the page automatically (from 125% to 200%) we trick it to
-  // think the page is 125% larger so the size of the page is correct for
+  // size of the page automatically (from 133.3% to 200%) we trick it to
+  // think the page is 133.3% larger so the size of the page is correct for
   // minimum (default) scaling.
+  // The scaling factor 1.25 was originally chosen as a magic number that
+  // was 'about right'. However per https://crbug.com/273306 1.333 seems to be
+  // the number that produces output with the correct physical size for elements
+  // that are specified in cm, mm, pt etc.
   // This is important for sites that try to fill the page.
-  // The 1.25 value is |printingMinimumShrinkFactor|.
   gfx::Size print_layout_size(web_print_params_.printContentArea.width,
                               web_print_params_.printContentArea.height);
   print_layout_size.set_height(
-      static_cast<int>(static_cast<double>(print_layout_size.height()) * 1.25));
+      static_cast<int>(static_cast<double>(print_layout_size.height()) *
+                       kPrintingMinimumShrinkFactor));
 
   if (!frame())
     return;
@@ -1780,12 +1787,12 @@
 
 #if defined(ENABLE_PRINT_PREVIEW)
   if (params.params.display_header_footer) {
-    // TODO(thestig): Figure out why Linux needs this. The value may be
-    // |printingMinimumShrinkFactor|.
+    // TODO(thestig): Figure out why Linux needs this. It is almost certainly
+    // |printingMinimumShrinkFactor| from Blink.
 #if defined(OS_WIN)
     const float fudge_factor = 1;
 #else
-    const float fudge_factor = 1.25;
+    const float fudge_factor = kPrintingMinimumShrinkFactor;
 #endif
     // |page_number| is 0-based, so 1 is added.
     PrintHeaderAndFooter(canvas, params.page_number + 1,
diff --git a/components/scheduler/base/task_queue_manager.cc b/components/scheduler/base/task_queue_manager.cc
index 188413c..fcbabe4 100644
--- a/components/scheduler/base/task_queue_manager.cc
+++ b/components/scheduler/base/task_queue_manager.cc
@@ -9,6 +9,7 @@
 
 #include "base/bind.h"
 #include "base/metrics/histogram_macros.h"
+#include "base/trace_event/trace_event.h"
 #include "components/scheduler/base/real_time_domain.h"
 #include "components/scheduler/base/task_queue_impl.h"
 #include "components/scheduler/base/task_queue_manager_delegate.h"
diff --git a/content/browser/DEPS b/content/browser/DEPS
index e681ca7..42e02ee 100644
--- a/content/browser/DEPS
+++ b/content/browser/DEPS
@@ -65,9 +65,12 @@
   "+third_party/WebKit/public/platform/WebReferrerPolicy.h",
   "+third_party/WebKit/public/platform/WebScreenInfo.h",
   "+third_party/WebKit/public/platform/WebString.h",
+  "+third_party/WebKit/public/platform/modules/geolocation/geolocation.mojom.h",
   "+third_party/WebKit/public/platform/modules/indexeddb/WebIDBDatabaseException.h",
   "+third_party/WebKit/public/platform/modules/indexeddb/WebIDBTypes.h",
   "+third_party/WebKit/public/platform/modules/notifications/WebNotificationPermission.h",
+  "+third_party/WebKit/public/platform/modules/permissions/permission.mojom.h",
+  "+third_party/WebKit/public/platform/modules/permissions/permission_status.mojom.h",
   "+third_party/WebKit/public/platform/modules/push_messaging/WebPushPermissionStatus.h",
   "+third_party/WebKit/public/platform/modules/screen_orientation/WebScreenOrientationLockType.h",
   "+third_party/WebKit/public/platform/modules/screen_orientation/WebScreenOrientationType.h",
diff --git a/content/browser/accessibility/android_hit_testing_browsertest.cc b/content/browser/accessibility/android_hit_testing_browsertest.cc
deleted file mode 100644
index 12817d1..0000000
--- a/content/browser/accessibility/android_hit_testing_browsertest.cc
+++ /dev/null
@@ -1,79 +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.
-
-#include <set>
-#include <string>
-#include <vector>
-
-#include "base/command_line.h"
-#include "base/files/file_util.h"
-#include "base/logging.h"
-#include "base/strings/string16.h"
-#include "base/strings/string_split.h"
-#include "base/strings/string_util.h"
-#include "base/strings/utf_string_conversions.h"
-#include "content/browser/accessibility/accessibility_tree_formatter.h"
-#include "content/browser/accessibility/browser_accessibility.h"
-#include "content/browser/accessibility/browser_accessibility_manager.h"
-#include "content/browser/web_contents/web_contents_impl.h"
-#include "content/public/browser/web_contents.h"
-#include "content/public/common/content_paths.h"
-#include "content/public/common/content_switches.h"
-#include "content/public/common/url_constants.h"
-#include "content/public/test/content_browser_test.h"
-#include "content/public/test/content_browser_test_utils.h"
-#include "content/shell/browser/shell.h"
-#include "content/test/accessibility_browser_test_utils.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace content {
-
-class AndroidHitTestingBrowserTest : public ContentBrowserTest {
- public:
-  AndroidHitTestingBrowserTest() {}
-  ~AndroidHitTestingBrowserTest() override {}
-};
-
-IN_PROC_BROWSER_TEST_F(AndroidHitTestingBrowserTest,
-                       HitTestOutsideDocumentBoundsReturnsRoot) {
-  NavigateToURL(shell(), GURL(url::kAboutBlankURL));
-
-  // Load the page.
-  AccessibilityNotificationWaiter waiter(
-      shell(), AccessibilityModeComplete,
-      ui::AX_EVENT_LOAD_COMPLETE);
-  const char url_str[] =
-      "data:text/html,"
-      "<!doctype html>"
-      "<html><head><title>Accessibility Test</title></head>"
-      "<body>"
-      "<a href='#'>"
-      "This is some text in a link"
-      "</a>"
-      "</body></html>";
-  GURL url(url_str);
-  NavigateToURL(shell(), url);
-  waiter.WaitForNotification();
-
-  // Get the BrowserAccessibilityManager.
-  WebContentsImpl* web_contents =
-      static_cast<WebContentsImpl*>(shell()->web_contents());
-  BrowserAccessibilityManager* manager =
-      web_contents->GetRootBrowserAccessibilityManager();
-
-  // Send a hit test request, and wait for the hover event in response.
-  AccessibilityNotificationWaiter hover_waiter(
-      shell(), AccessibilityModeComplete,
-      ui::AX_EVENT_HOVER);
-  manager->delegate()->AccessibilityHitTest(gfx::Point(-1, -1));
-  hover_waiter.WaitForNotification();
-
-  // Assert that the hover event was fired on the root of the tree.
-  int hover_target_id = hover_waiter.event_target_id();
-  BrowserAccessibility* hovered_node = manager->GetFromID(hover_target_id);
-  ASSERT_TRUE(hovered_node != NULL);
-  ASSERT_EQ(ui::AX_ROLE_ROOT_WEB_AREA, hovered_node->GetRole());
-}
-
-}  // namespace content
diff --git a/content/browser/accessibility/browser_accessibility_manager.cc b/content/browser/accessibility/browser_accessibility_manager.cc
index db169da..f7714fa 100644
--- a/content/browser/accessibility/browser_accessibility_manager.cc
+++ b/content/browser/accessibility/browser_accessibility_manager.cc
@@ -411,6 +411,22 @@
     ActivateFindInPageResult(request_id);
 }
 
+void BrowserAccessibilityManager::OnChildFrameHitTestResult(
+    const gfx::Point& point,
+    int hit_obj_id) {
+  BrowserAccessibility* obj = GetFromID(hit_obj_id);
+  if (!obj || !obj->HasIntAttribute(ui::AX_ATTR_CHILD_TREE_ID))
+    return;
+
+  BrowserAccessibilityManager* child_manager =
+      BrowserAccessibilityManager::FromID(
+          obj->GetIntAttribute(ui::AX_ATTR_CHILD_TREE_ID));
+  if (!child_manager || !child_manager->delegate())
+    return;
+
+  return child_manager->delegate()->AccessibilityHitTest(point);
+}
+
 void BrowserAccessibilityManager::ActivateFindInPageResult(
     int request_id) {
   find_in_page_info_.active_request_id = request_id;
diff --git a/content/browser/accessibility/browser_accessibility_manager.h b/content/browser/accessibility/browser_accessibility_manager.h
index 4888cc6..d3d4f03 100644
--- a/content/browser/accessibility/browser_accessibility_manager.h
+++ b/content/browser/accessibility/browser_accessibility_manager.h
@@ -250,6 +250,11 @@
       int request_id, int match_index, int start_id, int start_offset,
       int end_id, int end_offset);
 
+  // Called in response to a hit test, when the object hit has a child frame
+  // (like an iframe element or browser plugin), and we need to do another
+  // hit test recursively.
+  void OnChildFrameHitTestResult(const gfx::Point& point, int hit_obj_id);
+
   // This is called when the user has committed to a find in page query,
   // e.g. by pressing enter or tapping on the next / previous result buttons.
   // If a match has already been received for this request id,
diff --git a/content/browser/accessibility/hit_testing_browsertest.cc b/content/browser/accessibility/hit_testing_browsertest.cc
new file mode 100644
index 0000000..7610f73
--- /dev/null
+++ b/content/browser/accessibility/hit_testing_browsertest.cc
@@ -0,0 +1,171 @@
+// 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.
+
+#include <set>
+#include <string>
+#include <vector>
+
+#include "base/command_line.h"
+#include "base/files/file_util.h"
+#include "base/logging.h"
+#include "base/strings/string16.h"
+#include "base/strings/string_split.h"
+#include "base/strings/string_util.h"
+#include "base/strings/utf_string_conversions.h"
+#include "content/browser/accessibility/accessibility_tree_formatter.h"
+#include "content/browser/accessibility/browser_accessibility.h"
+#include "content/browser/accessibility/browser_accessibility_manager.h"
+#include "content/browser/web_contents/web_contents_impl.h"
+#include "content/public/browser/web_contents.h"
+#include "content/public/common/content_paths.h"
+#include "content/public/common/content_switches.h"
+#include "content/public/common/url_constants.h"
+#include "content/public/test/content_browser_test.h"
+#include "content/public/test/content_browser_test_utils.h"
+#include "content/shell/browser/shell.h"
+#include "content/test/accessibility_browser_test_utils.h"
+#include "net/dns/mock_host_resolver.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace content {
+
+namespace {
+
+bool AXTreeContainsNodeWithName(BrowserAccessibility* node,
+                                const std::string& name) {
+  if (node->GetStringAttribute(ui::AX_ATTR_NAME) == name)
+    return true;
+
+  for (unsigned i = 0; i < node->PlatformChildCount(); i++) {
+    if (AXTreeContainsNodeWithName(node->PlatformGetChild(i), name))
+      return true;
+  }
+
+  return false;
+}
+
+}  // namespace
+
+class AccessibilityHitTestingBrowserTest : public ContentBrowserTest {
+ public:
+  AccessibilityHitTestingBrowserTest() {}
+  ~AccessibilityHitTestingBrowserTest() override {}
+
+ protected:
+  BrowserAccessibility* HitTestAndWaitForResult(const gfx::Point& point) {
+    WebContentsImpl* web_contents =
+        static_cast<WebContentsImpl*>(shell()->web_contents());
+    FrameTree* frame_tree = web_contents->GetFrameTree();
+    BrowserAccessibilityManager* manager =
+        web_contents->GetRootBrowserAccessibilityManager();
+
+    AccessibilityNotificationWaiter hover_waiter(
+        shell(), AccessibilityModeComplete, ui::AX_EVENT_HOVER);
+    for (FrameTreeNode* node : frame_tree->Nodes())
+      hover_waiter.ListenToAdditionalFrame(node->current_frame_host());
+    manager->delegate()->AccessibilityHitTest(point);
+    hover_waiter.WaitForNotification();
+
+    RenderFrameHostImpl* target_frame = hover_waiter.event_render_frame_host();
+    BrowserAccessibilityManager* target_manager =
+        target_frame->browser_accessibility_manager();
+    int hover_target_id = hover_waiter.event_target_id();
+    BrowserAccessibility* hovered_node =
+        target_manager->GetFromID(hover_target_id);
+    return hovered_node;
+  }
+};
+
+IN_PROC_BROWSER_TEST_F(AccessibilityHitTestingBrowserTest,
+                       HitTestOutsideDocumentBoundsReturnsRoot) {
+  NavigateToURL(shell(), GURL(url::kAboutBlankURL));
+
+  // Load the page.
+  AccessibilityNotificationWaiter waiter(shell(), AccessibilityModeComplete,
+                                         ui::AX_EVENT_LOAD_COMPLETE);
+  const char url_str[] =
+      "data:text/html,"
+      "<!doctype html>"
+      "<html><head><title>Accessibility Test</title></head>"
+      "<body>"
+      "<a href='#'>"
+      "This is some text in a link"
+      "</a>"
+      "</body></html>";
+  GURL url(url_str);
+  NavigateToURL(shell(), url);
+  waiter.WaitForNotification();
+
+  BrowserAccessibility* hovered_node =
+      HitTestAndWaitForResult(gfx::Point(-1, -1));
+  ASSERT_TRUE(hovered_node != NULL);
+  ASSERT_EQ(ui::AX_ROLE_ROOT_WEB_AREA, hovered_node->GetRole());
+}
+
+IN_PROC_BROWSER_TEST_F(AccessibilityHitTestingBrowserTest,
+                       HitTestingInIframes) {
+  host_resolver()->AddRule("*", "127.0.0.1");
+  ASSERT_TRUE(embedded_test_server()->Start());
+
+  NavigateToURL(shell(), GURL(url::kAboutBlankURL));
+
+  AccessibilityNotificationWaiter waiter(shell(), AccessibilityModeComplete,
+                                         ui::AX_EVENT_LOAD_COMPLETE);
+  GURL url(embedded_test_server()->GetURL(
+      "/accessibility/html/iframe-coordinates.html"));
+  NavigateToURL(shell(), url);
+  waiter.WaitForNotification();
+
+  WebContentsImpl* web_contents =
+      static_cast<WebContentsImpl*>(shell()->web_contents());
+  FrameTree* frame_tree = web_contents->GetFrameTree();
+  BrowserAccessibilityManager* manager =
+      web_contents->GetRootBrowserAccessibilityManager();
+  BrowserAccessibility* root = manager->GetRoot();
+  while (!AXTreeContainsNodeWithName(root, "Ordinary Button") ||
+         !AXTreeContainsNodeWithName(root, "Scrolled Button")) {
+    AccessibilityNotificationWaiter waiter(shell(), AccessibilityModeComplete,
+                                           ui::AX_EVENT_NONE);
+    for (FrameTreeNode* node : frame_tree->Nodes())
+      waiter.ListenToAdditionalFrame(node->current_frame_host());
+    waiter.WaitForNotification();
+  }
+
+  // Send a series of hit test requests, and for each one
+  // wait for the hover event in response, verifying we hit the
+  // correct object.
+
+  // (50, 50) -> "Button"
+  BrowserAccessibility* hovered_node;
+  hovered_node = HitTestAndWaitForResult(gfx::Point(50, 50));
+  ASSERT_TRUE(hovered_node != NULL);
+  ASSERT_EQ(ui::AX_ROLE_BUTTON, hovered_node->GetRole());
+  ASSERT_EQ("Button", hovered_node->GetStringAttribute(ui::AX_ATTR_NAME));
+
+  // (50, 305) -> div in first iframe
+  hovered_node = HitTestAndWaitForResult(gfx::Point(50, 305));
+  ASSERT_TRUE(hovered_node != NULL);
+  ASSERT_EQ(ui::AX_ROLE_DIV, hovered_node->GetRole());
+
+  // (50, 350) -> "Ordinary Button"
+  hovered_node = HitTestAndWaitForResult(gfx::Point(50, 350));
+  ASSERT_TRUE(hovered_node != NULL);
+  ASSERT_EQ(ui::AX_ROLE_BUTTON, hovered_node->GetRole());
+  ASSERT_EQ("Ordinary Button",
+            hovered_node->GetStringAttribute(ui::AX_ATTR_NAME));
+
+  // (50, 455) -> "Scrolled Button"
+  hovered_node = HitTestAndWaitForResult(gfx::Point(50, 455));
+  ASSERT_TRUE(hovered_node != NULL);
+  ASSERT_EQ(ui::AX_ROLE_BUTTON, hovered_node->GetRole());
+  ASSERT_EQ("Scrolled Button",
+            hovered_node->GetStringAttribute(ui::AX_ATTR_NAME));
+
+  // (50, 505) -> div in second iframe
+  hovered_node = HitTestAndWaitForResult(gfx::Point(50, 505));
+  ASSERT_TRUE(hovered_node != NULL);
+  ASSERT_EQ(ui::AX_ROLE_DIV, hovered_node->GetRole());
+}
+
+}  // namespace content
diff --git a/content/browser/background_sync/background_sync_manager.cc b/content/browser/background_sync/background_sync_manager.cc
index 9b94973e..343dd05a 100644
--- a/content/browser/background_sync/background_sync_manager.cc
+++ b/content/browser/background_sync/background_sync_manager.cc
@@ -79,7 +79,7 @@
 
 // Returns PermissionStatus::DENIED if the permission manager cannot be
 // accessed for any reason.
-mojom::PermissionStatus GetBackgroundSyncPermissionOnUIThread(
+blink::mojom::PermissionStatus GetBackgroundSyncPermissionOnUIThread(
     const scoped_refptr<ServiceWorkerContextWrapper>& service_worker_context,
     const GURL& origin) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
@@ -87,12 +87,12 @@
   BrowserContext* browser_context =
       GetBrowserContextOnUIThread(service_worker_context);
   if (!browser_context)
-    return mojom::PermissionStatus::DENIED;
+    return blink::mojom::PermissionStatus::DENIED;
 
   PermissionManager* permission_manager =
       browser_context->GetPermissionManager();
   if (!permission_manager)
-    return mojom::PermissionStatus::DENIED;
+    return blink::mojom::PermissionStatus::DENIED;
 
   // The requesting origin always matches the embedding origin.
   return permission_manager->GetPermissionStatus(
@@ -464,15 +464,15 @@
     int64_t sw_registration_id,
     const BackgroundSyncRegistrationOptions& options,
     const StatusAndRegistrationCallback& callback,
-    mojom::PermissionStatus permission_status) {
+    blink::mojom::PermissionStatus permission_status) {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
 
-  if (permission_status == mojom::PermissionStatus::DENIED) {
+  if (permission_status == blink::mojom::PermissionStatus::DENIED) {
     RecordFailureAndPostError(BACKGROUND_SYNC_STATUS_PERMISSION_DENIED,
                               callback);
     return;
   }
-  DCHECK(permission_status == mojom::PermissionStatus::GRANTED);
+  DCHECK(permission_status == blink::mojom::PermissionStatus::GRANTED);
 
   ServiceWorkerRegistration* sw_registration =
       service_worker_context_->GetLiveRegistration(sw_registration_id);
diff --git a/content/browser/background_sync/background_sync_manager.h b/content/browser/background_sync/background_sync_manager.h
index 34faf8b..e80ee0a 100644
--- a/content/browser/background_sync/background_sync_manager.h
+++ b/content/browser/background_sync/background_sync_manager.h
@@ -31,13 +31,18 @@
 #include "content/common/service_worker/service_worker_status_code.h"
 #include "content/public/browser/background_sync_parameters.h"
 #include "content/public/browser/browser_thread.h"
-#include "content/public/common/permission_status.mojom.h"
+#include "third_party/WebKit/public/platform/modules/permissions/permission_status.mojom.h"
 #include "url/gurl.h"
 
+namespace blink {
+namespace mojom {
+enum class PermissionStatus;
+}
+}
+
 namespace content {
 
 class BackgroundSyncNetworkObserver;
-enum class PermissionStatus;
 class ServiceWorkerContextWrapper;
 
 // BackgroundSyncManager manages and stores the set of background sync
@@ -204,7 +209,7 @@
       int64_t sw_registration_id,
       const BackgroundSyncRegistrationOptions& options,
       const StatusAndRegistrationCallback& callback,
-      mojom::PermissionStatus permission_status);
+      blink::mojom::PermissionStatus permission_status);
   void RegisterDidStore(int64_t sw_registration_id,
                         const BackgroundSyncRegistration& new_registration,
                         const StatusAndRegistrationCallback& callback,
diff --git a/content/browser/background_sync/background_sync_manager_unittest.cc b/content/browser/background_sync/background_sync_manager_unittest.cc
index 90172175..02961f44 100644
--- a/content/browser/background_sync/background_sync_manager_unittest.cc
+++ b/content/browser/background_sync/background_sync_manager_unittest.cc
@@ -28,7 +28,6 @@
 #include "content/browser/storage_partition_impl.h"
 #include "content/public/browser/background_sync_parameters.h"
 #include "content/public/browser/permission_type.h"
-#include "content/public/common/permission_status.mojom.h"
 #include "content/public/test/background_sync_test_util.h"
 #include "content/public/test/test_browser_context.h"
 #include "content/public/test/test_browser_thread_bundle.h"
@@ -38,6 +37,7 @@
 #include "net/base/network_change_notifier.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/WebKit/public/platform/modules/permissions/permission_status.mojom.h"
 
 namespace content {
 
@@ -127,7 +127,7 @@
         new testing::NiceMock<MockPermissionManager>());
     ON_CALL(*mock_permission_manager,
             GetPermissionStatus(PermissionType::BACKGROUND_SYNC, _, _))
-        .WillByDefault(Return(mojom::PermissionStatus::GRANTED));
+        .WillByDefault(Return(blink::mojom::PermissionStatus::GRANTED));
     helper_->browser_context()->SetPermissionManager(
         std::move(mock_permission_manager));
 
@@ -469,7 +469,7 @@
   EXPECT_CALL(*mock_permission_manager,
               GetPermissionStatus(PermissionType::BACKGROUND_SYNC,
                                   expected_origin, expected_origin))
-      .WillOnce(testing::Return(mojom::PermissionStatus::DENIED));
+      .WillOnce(testing::Return(blink::mojom::PermissionStatus::DENIED));
   EXPECT_FALSE(Register(sync_options_1_));
 }
 
@@ -480,7 +480,7 @@
   EXPECT_CALL(*mock_permission_manager,
               GetPermissionStatus(PermissionType::BACKGROUND_SYNC,
                                   expected_origin, expected_origin))
-      .WillOnce(testing::Return(mojom::PermissionStatus::GRANTED));
+      .WillOnce(testing::Return(blink::mojom::PermissionStatus::GRANTED));
   EXPECT_TRUE(Register(sync_options_1_));
 }
 
diff --git a/content/browser/background_sync/background_sync_service_impl_unittest.cc b/content/browser/background_sync/background_sync_service_impl_unittest.cc
index 5b9c329..5927f05 100644
--- a/content/browser/background_sync/background_sync_service_impl_unittest.cc
+++ b/content/browser/background_sync/background_sync_service_impl_unittest.cc
@@ -122,7 +122,8 @@
         new testing::NiceMock<MockPermissionManager>());
     ON_CALL(*mock_permission_manager,
             GetPermissionStatus(PermissionType::BACKGROUND_SYNC, _, _))
-        .WillByDefault(testing::Return(mojom::PermissionStatus::GRANTED));
+        .WillByDefault(
+            testing::Return(blink::mojom::PermissionStatus::GRANTED));
     embedded_worker_helper_->browser_context()->SetPermissionManager(
         std::move(mock_permission_manager));
   }
diff --git a/content/browser/browser_main_runner.cc b/content/browser/browser_main_runner.cc
index ef2fcb0..de130940 100644
--- a/content/browser/browser_main_runner.cc
+++ b/content/browser/browser_main_runner.cc
@@ -15,6 +15,7 @@
 #include "base/profiler/scoped_profile.h"
 #include "base/profiler/scoped_tracker.h"
 #include "base/time/time.h"
+#include "base/trace_event/heap_profiler_allocation_context_tracker.h"
 #include "base/trace_event/trace_event.h"
 #include "base/tracked_objects.h"
 #include "build/build_config.h"
@@ -44,6 +45,7 @@
 namespace {
 
 bool g_exited_main_message_loop = false;
+const char kMainThreadName[] = "CrBrowserMain";
 
 }  // namespace
 
@@ -63,7 +65,9 @@
 
     // TODO(vadimt, yiyaoliu): Remove all tracked_objects references below once
     // crbug.com/453640 is fixed.
-    tracked_objects::ThreadData::InitializeThreadContext("CrBrowserMain");
+    tracked_objects::ThreadData::InitializeThreadContext(kMainThreadName);
+    base::trace_event::AllocationContextTracker::SetCurrentThreadName(
+        kMainThreadName);
     TRACK_SCOPED_REGION(
         "Startup", "BrowserMainRunnerImpl::Initialize");
     TRACE_EVENT0("startup", "BrowserMainRunnerImpl::Initialize");
diff --git a/content/browser/frame_host/render_frame_host_impl.cc b/content/browser/frame_host/render_frame_host_impl.cc
index ef5757eb..f949256 100644
--- a/content/browser/frame_host/render_frame_host_impl.cc
+++ b/content/browser/frame_host/render_frame_host_impl.cc
@@ -549,6 +549,8 @@
                         OnAccessibilityLocationChanges)
     IPC_MESSAGE_HANDLER(AccessibilityHostMsg_FindInPageResult,
                         OnAccessibilityFindInPageResult)
+    IPC_MESSAGE_HANDLER(AccessibilityHostMsg_ChildFrameHitTestResult,
+                        OnAccessibilityChildFrameHitTestResult)
     IPC_MESSAGE_HANDLER(AccessibilityHostMsg_SnapshotResponse,
                         OnAccessibilitySnapshotResponse)
     IPC_MESSAGE_HANDLER(FrameHostMsg_ToggleFullscreen, OnToggleFullscreen)
@@ -1705,7 +1707,7 @@
           CHECK(ax_tree_for_testing_->Unserialize(detail.update))
               << ax_tree_for_testing_->error();
         }
-        accessibility_testing_callback_.Run(detail.event_type, detail.id);
+        accessibility_testing_callback_.Run(this, detail.event_type, detail.id);
       }
     }
   }
@@ -1747,6 +1749,15 @@
   }
 }
 
+void RenderFrameHostImpl::OnAccessibilityChildFrameHitTestResult(
+    const gfx::Point& point,
+    int hit_obj_id) {
+  if (browser_accessibility_manager_) {
+    browser_accessibility_manager_->OnChildFrameHitTestResult(point,
+                                                              hit_obj_id);
+  }
+}
+
 void RenderFrameHostImpl::OnAccessibilitySnapshotResponse(
     int callback_id,
     const AXContentTreeUpdate& snapshot) {
@@ -1892,7 +1903,7 @@
   if (!permission_service_context_)
     permission_service_context_.reset(new PermissionServiceContext(this));
 
-  GetServiceRegistry()->AddService<mojom::PermissionService>(
+  GetServiceRegistry()->AddService(
       base::Bind(&PermissionServiceContext::CreateService,
                  base::Unretained(permission_service_context_.get())));
 
@@ -2421,7 +2432,8 @@
 }
 
 void RenderFrameHostImpl::SetAccessibilityCallbackForTesting(
-    const base::Callback<void(ui::AXEvent, int)>& callback) {
+    const base::Callback<void(RenderFrameHostImpl*, ui::AXEvent, int)>&
+        callback) {
   accessibility_testing_callback_ = callback;
 }
 
diff --git a/content/browser/frame_host/render_frame_host_impl.h b/content/browser/frame_host/render_frame_host_impl.h
index b9432288..1b9f2768 100644
--- a/content/browser/frame_host/render_frame_host_impl.h
+++ b/content/browser/frame_host/render_frame_host_impl.h
@@ -458,7 +458,8 @@
   // renderer process, and the accessibility tree it sent can be
   // retrieved using GetAXTreeForTesting().
   void SetAccessibilityCallbackForTesting(
-      const base::Callback<void(ui::AXEvent, int)>& callback);
+      const base::Callback<void(RenderFrameHostImpl*, ui::AXEvent, int)>&
+          callback);
 
   // Called when the metadata about the accessibility tree for this frame
   // changes due to a browser-side change, as opposed to due to an IPC from
@@ -661,6 +662,8 @@
       const std::vector<AccessibilityHostMsg_LocationChangeParams>& params);
   void OnAccessibilityFindInPageResult(
       const AccessibilityHostMsg_FindInPageResultParams& params);
+  void OnAccessibilityChildFrameHitTestResult(const gfx::Point& point,
+                                              int hit_obj_id);
   void OnAccessibilitySnapshotResponse(
       int callback_id,
       const AXContentTreeUpdate& snapshot);
@@ -921,7 +924,8 @@
   std::map<int, AXTreeSnapshotCallback> ax_tree_snapshot_callbacks_;
 
   // Callback when an event is received, for testing.
-  base::Callback<void(ui::AXEvent, int)> accessibility_testing_callback_;
+  base::Callback<void(RenderFrameHostImpl*, ui::AXEvent, int)>
+      accessibility_testing_callback_;
   // The most recently received accessibility tree - for testing only.
   scoped_ptr<ui::AXTree> ax_tree_for_testing_;
   // Flag to not create a BrowserAccessibilityManager, for testing. If one
diff --git a/content/browser/geolocation/geolocation_service_context.cc b/content/browser/geolocation/geolocation_service_context.cc
index 88fd9ec..aeb6e621 100644
--- a/content/browser/geolocation/geolocation_service_context.cc
+++ b/content/browser/geolocation/geolocation_service_context.cc
@@ -16,7 +16,7 @@
 
 void GeolocationServiceContext::CreateService(
     const base::Closure& update_callback,
-    mojo::InterfaceRequest<mojom::GeolocationService> request) {
+    mojo::InterfaceRequest<blink::mojom::GeolocationService> request) {
   GeolocationServiceImpl* service =
       new GeolocationServiceImpl(std::move(request), this, update_callback);
   services_.push_back(service);
diff --git a/content/browser/geolocation/geolocation_service_context.h b/content/browser/geolocation/geolocation_service_context.h
index d49b4bd..2e494a1 100644
--- a/content/browser/geolocation/geolocation_service_context.h
+++ b/content/browser/geolocation/geolocation_service_context.h
@@ -8,6 +8,7 @@
 #include "base/macros.h"
 #include "base/memory/scoped_vector.h"
 #include "content/browser/geolocation/geolocation_service_impl.h"
+#include "third_party/WebKit/public/platform/modules/geolocation/geolocation.mojom.h"
 
 namespace content {
 
@@ -22,8 +23,9 @@
   // Creates a GeolocationServiceImpl that is weakly bound to |request|.
   // |update_callback| will be called when services send
   // location updates to their clients.
-  void CreateService(const base::Closure& update_callback,
-                     mojo::InterfaceRequest<mojom::GeolocationService> request);
+  void CreateService(
+      const base::Closure& update_callback,
+      mojo::InterfaceRequest<blink::mojom::GeolocationService> request);
 
   // Called when a service has a connection error. After this call, it is no
   // longer safe to access |service|.
diff --git a/content/browser/geolocation/geolocation_service_impl.cc b/content/browser/geolocation/geolocation_service_impl.cc
index 19f303c..5424c14 100644
--- a/content/browser/geolocation/geolocation_service_impl.cc
+++ b/content/browser/geolocation/geolocation_service_impl.cc
@@ -9,7 +9,6 @@
 #include "base/bind.h"
 #include "base/metrics/histogram.h"
 #include "content/browser/geolocation/geolocation_service_context.h"
-#include "content/public/common/mojo_geoposition.mojom.h"
 
 namespace content {
 
@@ -61,7 +60,7 @@
 }  // namespace
 
 GeolocationServiceImpl::GeolocationServiceImpl(
-    mojo::InterfaceRequest<mojom::GeolocationService> request,
+    mojo::InterfaceRequest<GeolocationService> request,
     GeolocationServiceContext* context,
     const base::Closure& update_callback)
     : binding_(this, std::move(request)),
@@ -79,7 +78,7 @@
   // Make sure to respond to any pending callback even without a valid position.
   if (!position_callback_.is_null()) {
     if (!current_position_.valid) {
-      current_position_.error_code = mojom::MojoGeoposition::ErrorCode(
+      current_position_.error_code = blink::mojom::Geoposition::ErrorCode(
           GEOPOSITION_ERROR_CODE_POSITION_UNAVAILABLE);
       current_position_.error_message = mojo::String("");
     }
@@ -178,7 +177,7 @@
   current_position_.speed = position.speed;
   current_position_.timestamp = position.timestamp.ToDoubleT();
   current_position_.error_code =
-      mojom::MojoGeoposition::ErrorCode(position.error_code);
+      blink::mojom::Geoposition::ErrorCode(position.error_code);
   current_position_.error_message = position.error_message;
 
   has_position_to_report_ = true;
diff --git a/content/browser/geolocation/geolocation_service_impl.h b/content/browser/geolocation/geolocation_service_impl.h
index 3eb704f..e0565ee 100644
--- a/content/browser/geolocation/geolocation_service_impl.h
+++ b/content/browser/geolocation/geolocation_service_impl.h
@@ -5,9 +5,8 @@
 #include "base/macros.h"
 #include "base/memory/scoped_ptr.h"
 #include "content/browser/geolocation/geolocation_provider_impl.h"
-#include "content/common/geolocation_service.mojom.h"
-#include "content/public/common/mojo_geoposition.mojom.h"
 #include "mojo/public/cpp/bindings/binding.h"
+#include "third_party/WebKit/public/platform/modules/geolocation/geolocation.mojom.h"
 
 #ifndef CONTENT_BROWSER_GEOLOCATION_GEOLOCATION_SERVICE_IMPL_H_
 #define CONTENT_BROWSER_GEOLOCATION_GEOLOCATION_SERVICE_IMPL_H_
@@ -18,13 +17,13 @@
 class GeolocationServiceContext;
 
 // Implements the GeolocationService Mojo interface.
-class GeolocationServiceImpl : public mojom::GeolocationService {
+class GeolocationServiceImpl : public blink::mojom::GeolocationService {
  public:
   // |context| must outlive this object. |update_callback| will be called when
   // location updates are sent, allowing the client to know when the service
   // is being used.
   GeolocationServiceImpl(
-      mojo::InterfaceRequest<mojom::GeolocationService> request,
+      mojo::InterfaceRequest<blink::mojom::GeolocationService> request,
       GeolocationServiceContext* context,
       const base::Closure& update_callback);
   ~GeolocationServiceImpl() override;
@@ -41,9 +40,9 @@
   void ClearOverride();
 
  private:
-  typedef mojo::Callback<void(mojom::MojoGeopositionPtr)> PositionCallback;
+  typedef mojo::Callback<void(blink::mojom::GeopositionPtr)> PositionCallback;
 
-  // GeolocationService:
+  // blink::mojom::GeolocationService:
   void SetHighAccuracy(bool high_accuracy) override;
   void QueryNextPosition(const PositionCallback& callback) override;
 
@@ -53,7 +52,7 @@
   void ReportCurrentPosition();
 
   // The binding between this object and the other end of the pipe.
-  mojo::Binding<mojom::GeolocationService> binding_;
+  mojo::Binding<blink::mojom::GeolocationService> binding_;
 
   // Owns this object.
   GeolocationServiceContext* context_;
@@ -70,7 +69,7 @@
   // subsequently been called.
   Geoposition position_override_;
 
-  mojom::MojoGeoposition current_position_;
+  blink::mojom::Geoposition current_position_;
 
   // Whether this instance is currently observing location updates with high
   // accuracy.
diff --git a/content/browser/media/cdm/browser_cdm_manager.cc b/content/browser/media/cdm/browser_cdm_manager.cc
index 19839673..11f361d 100644
--- a/content/browser/media/cdm/browser_cdm_manager.cc
+++ b/content/browser/media/cdm/browser_cdm_manager.cc
@@ -671,12 +671,12 @@
     return;
   }
 
-  mojom::PermissionStatus permission_status =
+  blink::mojom::PermissionStatus permission_status =
       permission_manager->GetPermissionStatus(
           PermissionType::PROTECTED_MEDIA_IDENTIFIER, security_origin,
           web_contents->GetLastCommittedURL().GetOrigin());
 
-  bool allowed = (permission_status == mojom::PermissionStatus::GRANTED);
+  bool allowed = (permission_status == blink::mojom::PermissionStatus::GRANTED);
   if (!task_runner_->RunsTasksOnCurrentThread()) {
     task_runner_->PostTask(FROM_HERE,
                            base::Bind(permission_status_cb, allowed));
diff --git a/content/browser/media/cdm/browser_cdm_manager.h b/content/browser/media/cdm/browser_cdm_manager.h
index e3a986a6..02dad96 100644
--- a/content/browser/media/cdm/browser_cdm_manager.h
+++ b/content/browser/media/cdm/browser_cdm_manager.h
@@ -19,11 +19,11 @@
 #include "content/common/media/cdm_messages.h"
 #include "content/common/media/cdm_messages_enums.h"
 #include "content/public/browser/browser_message_filter.h"
-#include "content/public/common/permission_status.mojom.h"
 #include "ipc/ipc_message.h"
 #include "media/base/cdm_promise.h"
 #include "media/base/eme_constants.h"
 #include "media/base/media_keys.h"
+#include "third_party/WebKit/public/platform/modules/permissions/permission_status.mojom.h"
 #include "url/gurl.h"
 
 struct CdmHostMsg_CreateSessionAndGenerateRequest_Params;
diff --git a/content/browser/media/encrypted_media_browsertest.cc b/content/browser/media/encrypted_media_browsertest.cc
index 697f33d..67ba9bbd 100644
--- a/content/browser/media/encrypted_media_browsertest.cc
+++ b/content/browser/media/encrypted_media_browsertest.cc
@@ -12,6 +12,7 @@
 #include "content/shell/browser/shell.h"
 #if defined(OS_ANDROID)
 #include "base/android/build_info.h"
+#include "media/base/media.h"
 #endif
 
 // Available key systems.
@@ -136,11 +137,8 @@
 using ::testing::Combine;
 using ::testing::Values;
 
-#if !defined(OS_ANDROID)
-// Encrypted media playback with SRC is not supported on Android.
 INSTANTIATE_TEST_CASE_P(SRC_ClearKey, EncryptedMediaTest,
                         Combine(Values(kClearKeyKeySystem), Values(SRC)));
-#endif  // !defined(OS_ANDROID)
 
 INSTANTIATE_TEST_CASE_P(MSE_ClearKey, EncryptedMediaTest,
                         Combine(Values(kClearKeyKeySystem), Values(MSE)));
@@ -166,25 +164,25 @@
 }
 
 IN_PROC_BROWSER_TEST_P(EncryptedMediaTest, Playback_AudioOnly_WebM_Opus) {
-  // Opus is not supported on Android. http://crbug.com/318436
 #if defined(OS_ANDROID)
-  return;
+  if (!media::PlatformHasOpusSupport())
+    return;
 #endif
   TestSimplePlayback("bear-320x240-opus-a_enc-a.webm", kWebMAudioOnly);
 }
 
 IN_PROC_BROWSER_TEST_P(EncryptedMediaTest, Playback_VideoAudio_WebM_Opus) {
-  // Opus is not supported on Android. http://crbug.com/318436
 #if defined(OS_ANDROID)
-  return;
+  if (!media::PlatformHasOpusSupport())
+    return;
 #endif
   TestSimplePlayback("bear-320x240-opus-av_enc-av.webm", kWebMAudioVideo);
 }
 
 IN_PROC_BROWSER_TEST_P(EncryptedMediaTest, Playback_VideoClearAudio_WebM_Opus) {
-  // Opus is not supported on Android. http://crbug.com/318436
 #if defined(OS_ANDROID)
-  return;
+  if (!media::PlatformHasOpusSupport())
+    return;
 #endif
   TestSimplePlayback("bear-320x240-opus-av_enc-v.webm", kWebMAudioVideo);
 }
diff --git a/content/browser/mojo/mojo_shell_context.cc b/content/browser/mojo/mojo_shell_context.cc
index 6308b682..5ca1470 100644
--- a/content/browser/mojo/mojo_shell_context.cc
+++ b/content/browser/mojo/mojo_shell_context.cc
@@ -57,7 +57,7 @@
   process_host->SetName(process_name);
   if (!use_sandbox)
     process_host->DisableSandbox();
-  process_host->StartMojoMode();
+  process_host->Start();
 
   ServiceRegistry* services = process_host->GetServiceRegistry();
   services->ConnectToRemoteService(std::move(request));
diff --git a/content/browser/permissions/permission_service_context.cc b/content/browser/permissions/permission_service_context.cc
index eedefc02b..a83267a0 100644
--- a/content/browser/permissions/permission_service_context.cc
+++ b/content/browser/permissions/permission_service_context.cc
@@ -32,7 +32,7 @@
 }
 
 void PermissionServiceContext::CreateService(
-    mojo::InterfaceRequest<mojom::PermissionService> request) {
+    mojo::InterfaceRequest<blink::mojom::PermissionService> request) {
   services_.push_back(new PermissionServiceImpl(this, std::move(request)));
 }
 
diff --git a/content/browser/permissions/permission_service_context.h b/content/browser/permissions/permission_service_context.h
index 4bc1fa6..3db134e 100644
--- a/content/browser/permissions/permission_service_context.h
+++ b/content/browser/permissions/permission_service_context.h
@@ -10,20 +10,22 @@
 #include "content/public/browser/web_contents_observer.h"
 #include "mojo/public/cpp/bindings/interface_request.h"
 
-namespace content {
-
+namespace blink {
 namespace mojom {
 class PermissionService;
 }
+}
+
+namespace content {
 
 class PermissionServiceImpl;
 class RenderFrameHost;
 class RenderProcessHost;
 
 // Provides information to a PermissionService. It is used by the
-// mojom::PermissionService to handle request permission UI.
+// PermissionServiceImpl to handle request permission UI.
 // There is one PermissionServiceContext per RenderFrameHost/RenderProcessHost
-// which owns it. It then owns all mojom::PermissionService associated to their
+// which owns it. It then owns all PermissionServiceImpl associated to their
 // owner.
 class PermissionServiceContext : public WebContentsObserver {
  public:
@@ -31,9 +33,10 @@
   explicit PermissionServiceContext(RenderProcessHost* render_process_host);
   ~PermissionServiceContext() override;
 
-  void CreateService(mojo::InterfaceRequest<mojom::PermissionService> request);
+  void CreateService(
+      mojo::InterfaceRequest<blink::mojom::PermissionService> request);
 
-  // Called by a mojom::PermissionService identified as |service| when it has a
+  // Called by a PermissionServiceImpl identified as |service| when it has a
   // connection error in order to get unregistered and killed.
   void ServiceHadConnectionError(PermissionServiceImpl* service);
 
diff --git a/content/browser/permissions/permission_service_impl.cc b/content/browser/permissions/permission_service_impl.cc
index 082ea12f..c7f92a8d 100644
--- a/content/browser/permissions/permission_service_impl.cc
+++ b/content/browser/permissions/permission_service_impl.cc
@@ -12,31 +12,34 @@
 #include "content/public/browser/permission_manager.h"
 #include "content/public/browser/permission_type.h"
 
+using blink::mojom::PermissionName;
+using blink::mojom::PermissionStatus;
+
 namespace content {
 
 namespace {
 
-PermissionType PermissionNameToPermissionType(mojom::PermissionName name) {
+PermissionType PermissionNameToPermissionType(PermissionName name) {
   switch(name) {
-    case mojom::PermissionName::GEOLOCATION:
+    case PermissionName::GEOLOCATION:
       return PermissionType::GEOLOCATION;
-    case mojom::PermissionName::NOTIFICATIONS:
+    case PermissionName::NOTIFICATIONS:
       return PermissionType::NOTIFICATIONS;
-    case mojom::PermissionName::PUSH_NOTIFICATIONS:
+    case PermissionName::PUSH_NOTIFICATIONS:
       return PermissionType::PUSH_MESSAGING;
-    case mojom::PermissionName::MIDI:
+    case PermissionName::MIDI:
       return PermissionType::MIDI;
-    case mojom::PermissionName::MIDI_SYSEX:
+    case PermissionName::MIDI_SYSEX:
       return PermissionType::MIDI_SYSEX;
-    case mojom::PermissionName::PROTECTED_MEDIA_IDENTIFIER:
+    case PermissionName::PROTECTED_MEDIA_IDENTIFIER:
       return PermissionType::PROTECTED_MEDIA_IDENTIFIER;
-    case mojom::PermissionName::DURABLE_STORAGE:
+    case PermissionName::DURABLE_STORAGE:
       return PermissionType::DURABLE_STORAGE;
-    case mojom::PermissionName::AUDIO_CAPTURE:
+    case PermissionName::AUDIO_CAPTURE:
       return PermissionType::AUDIO_CAPTURE;
-    case mojom::PermissionName::VIDEO_CAPTURE:
+    case PermissionName::VIDEO_CAPTURE:
       return PermissionType::VIDEO_CAPTURE;
-    case mojom::PermissionName::BACKGROUND_SYNC:
+    case PermissionName::BACKGROUND_SYNC:
       return PermissionType::BACKGROUND_SYNC;
   }
 
@@ -47,8 +50,8 @@
 // This function allows the usage of the the multiple request map
 // with single requests.
 void PermissionRequestResponseCallbackWrapper(
-    const mojo::Callback<void(mojom::PermissionStatus)>& callback,
-    const mojo::Array<mojom::PermissionStatus>& vector) {
+    const mojo::Callback<void(PermissionStatus)>& callback,
+    const mojo::Array<PermissionStatus>& vector) {
   DCHECK_EQ(vector.size(), 1ul);
   callback.Run(vector[0]);
 }
@@ -66,10 +69,10 @@
   if (callback.is_null())
     return;
 
-  mojo::Array<mojom::PermissionStatus> result =
-      mojo::Array<mojom::PermissionStatus>::New(request_count);
+  mojo::Array<PermissionStatus> result =
+      mojo::Array<PermissionStatus>::New(request_count);
   for (int i = 0; i < request_count; ++i)
-    result[i] = mojom::PermissionStatus::DENIED;
+    result[i] = PermissionStatus::DENIED;
   callback.Run(std::move(result));
 }
 
@@ -85,12 +88,12 @@
 
 PermissionServiceImpl::PendingSubscription::~PendingSubscription() {
   if (!callback.is_null())
-    callback.Run(mojom::PermissionStatus::ASK);
+    callback.Run(PermissionStatus::ASK);
 }
 
 PermissionServiceImpl::PermissionServiceImpl(
     PermissionServiceContext* context,
-    mojo::InterfaceRequest<mojom::PermissionService> request)
+    mojo::InterfaceRequest<blink::mojom::PermissionService> request)
     : context_(context),
       binding_(this, std::move(request)),
       weak_factory_(this) {
@@ -109,7 +112,7 @@
 }
 
 void PermissionServiceImpl::RequestPermission(
-    mojom::PermissionName permission,
+    PermissionName permission,
     const mojo::String& origin,
     const PermissionStatusCallback& callback) {
   // This condition is valid if the call is coming from a ChildThread instead of
@@ -148,17 +151,17 @@
 
 void PermissionServiceImpl::OnRequestPermissionResponse(
     int pending_request_id,
-    mojom::PermissionStatus status) {
+    PermissionStatus status) {
   OnRequestPermissionsResponse(pending_request_id,
-                               std::vector<mojom::PermissionStatus>(1, status));
+                               std::vector<PermissionStatus>(1, status));
 }
 
 void PermissionServiceImpl::RequestPermissions(
-    mojo::Array<mojom::PermissionName> permissions,
+    mojo::Array<PermissionName> permissions,
     const mojo::String& origin,
     const PermissionsStatusCallback& callback) {
   if (permissions.is_null()) {
-    callback.Run(mojo::Array<mojom::PermissionStatus>());
+    callback.Run(mojo::Array<PermissionStatus>());
     return;
   }
 
@@ -173,7 +176,7 @@
   DCHECK(browser_context);
   if (!context_->render_frame_host() ||
       !browser_context->GetPermissionManager()) {
-    mojo::Array<mojom::PermissionStatus> result(permissions.size());
+    mojo::Array<PermissionStatus> result(permissions.size());
     for (size_t i = 0; i < permissions.size(); ++i) {
       result[i] =
           GetPermissionStatusFromName(permissions[i], GURL(origin.get()));
@@ -207,12 +210,12 @@
 
 void PermissionServiceImpl::OnRequestPermissionsResponse(
     int pending_request_id,
-    const std::vector<mojom::PermissionStatus>& result) {
+    const std::vector<PermissionStatus>& result) {
   PendingRequest* request = pending_requests_.Lookup(pending_request_id);
   PermissionsStatusCallback callback(request->callback);
   request->callback.reset();
   pending_requests_.Remove(pending_request_id);
-  callback.Run(mojo::Array<mojom::PermissionStatus>::From(result));
+  callback.Run(mojo::Array<PermissionStatus>::From(result));
 }
 
 void PermissionServiceImpl::CancelPendingOperations() {
@@ -244,24 +247,24 @@
 }
 
 void PermissionServiceImpl::HasPermission(
-    mojom::PermissionName permission,
+    PermissionName permission,
     const mojo::String& origin,
     const PermissionStatusCallback& callback) {
   callback.Run(GetPermissionStatusFromName(permission, GURL(origin.get())));
 }
 
 void PermissionServiceImpl::RevokePermission(
-    mojom::PermissionName permission,
+    PermissionName permission,
     const mojo::String& origin,
     const PermissionStatusCallback& callback) {
   GURL origin_url(origin.get());
   PermissionType permission_type = PermissionNameToPermissionType(permission);
-  mojom::PermissionStatus status =
+  PermissionStatus status =
       GetPermissionStatusFromType(permission_type, origin_url);
 
   // Resetting the permission should only be possible if the permission is
   // already granted.
-  if (status != mojom::PermissionStatus::GRANTED) {
+  if (status != PermissionStatus::GRANTED) {
     callback.Run(status);
     return;
   }
@@ -272,12 +275,12 @@
 }
 
 void PermissionServiceImpl::GetNextPermissionChange(
-    mojom::PermissionName permission,
+    PermissionName permission,
     const mojo::String& mojo_origin,
-    mojom::PermissionStatus last_known_status,
+    PermissionStatus last_known_status,
     const PermissionStatusCallback& callback) {
   GURL origin(mojo_origin.get());
-  mojom::PermissionStatus current_status =
+  PermissionStatus current_status =
       GetPermissionStatusFromName(permission, origin);
   if (current_status != last_known_status) {
     callback.Run(current_status);
@@ -312,20 +315,20 @@
                      pending_subscription_id));
 }
 
-mojom::PermissionStatus PermissionServiceImpl::GetPermissionStatusFromName(
-    mojom::PermissionName permission,
+PermissionStatus PermissionServiceImpl::GetPermissionStatusFromName(
+    PermissionName permission,
     const GURL& origin) {
   return GetPermissionStatusFromType(PermissionNameToPermissionType(permission),
                                      origin);
 }
 
-mojom::PermissionStatus PermissionServiceImpl::GetPermissionStatusFromType(
+PermissionStatus PermissionServiceImpl::GetPermissionStatusFromType(
     PermissionType type,
     const GURL& origin) {
   BrowserContext* browser_context = context_->GetBrowserContext();
   DCHECK(browser_context);
   if (!browser_context->GetPermissionManager())
-    return mojom::PermissionStatus::DENIED;
+    return PermissionStatus::DENIED;
 
   // If the embedding_origin is empty we'll use |origin| instead.
   GURL embedding_origin = context_->GetEmbeddingOrigin();
@@ -348,7 +351,7 @@
 
 void PermissionServiceImpl::OnPermissionStatusChanged(
     int pending_subscription_id,
-    mojom::PermissionStatus status) {
+    PermissionStatus status) {
   PendingSubscription* subscription =
       pending_subscriptions_.Lookup(pending_subscription_id);
 
diff --git a/content/browser/permissions/permission_service_impl.h b/content/browser/permissions/permission_service_impl.h
index 778cf18..dfda775 100644
--- a/content/browser/permissions/permission_service_impl.h
+++ b/content/browser/permissions/permission_service_impl.h
@@ -9,21 +9,21 @@
 #include "base/macros.h"
 #include "base/memory/weak_ptr.h"
 #include "content/browser/permissions/permission_service_context.h"
-#include "content/common/permission_service.mojom.h"
 #include "mojo/public/cpp/bindings/binding.h"
+#include "third_party/WebKit/public/platform/modules/permissions/permission.mojom.h"
 
 namespace content {
 
 enum class PermissionType;
 
-// Implements the mojom::PermissionService Mojo interface.
+// Implements the PermissionService Mojo interface.
 // This service can be created from a RenderFrameHost or a RenderProcessHost.
 // It is owned by a PermissionServiceContext.
 // It receives at PermissionServiceContext instance when created which allows it
 // to have some information about the current context. That enables the service
 // to know whether it can show UI and have knowledge of the associated
 // WebContents for example.
-class PermissionServiceImpl : public mojom::PermissionService {
+class PermissionServiceImpl : public blink::mojom::PermissionService {
  public:
   ~PermissionServiceImpl() override;
 
@@ -37,13 +37,13 @@
 
   PermissionServiceImpl(
       PermissionServiceContext* context,
-      mojo::InterfaceRequest<mojom::PermissionService> request);
+      mojo::InterfaceRequest<blink::mojom::PermissionService> request);
 
  private:
   using PermissionStatusCallback =
-      mojo::Callback<void(mojom::PermissionStatus)>;
+      mojo::Callback<void(blink::mojom::PermissionStatus)>;
   using PermissionsStatusCallback =
-      mojo::Callback<void(mojo::Array<mojom::PermissionStatus>)>;
+      mojo::Callback<void(mojo::Array<blink::mojom::PermissionStatus>)>;
 
   struct PendingRequest {
     PendingRequest(const PermissionsStatusCallback& callback,
@@ -70,48 +70,49 @@
   };
   using SubscriptionsMap = IDMap<PendingSubscription, IDMapOwnPointer>;
 
-  // PermissionService.
-  void HasPermission(mojom::PermissionName permission,
+  // blink::mojom::PermissionService.
+  void HasPermission(blink::mojom::PermissionName permission,
                      const mojo::String& origin,
                      const PermissionStatusCallback& callback) override;
-  void RequestPermission(mojom::PermissionName permission,
+  void RequestPermission(blink::mojom::PermissionName permission,
                          const mojo::String& origin,
                          const PermissionStatusCallback& callback) override;
-  void RequestPermissions(mojo::Array<mojom::PermissionName> permissions,
+  void RequestPermissions(mojo::Array<blink::mojom::PermissionName> permissions,
                           const mojo::String& origin,
                           const PermissionsStatusCallback& callback) override;
-  void RevokePermission(mojom::PermissionName permission,
+  void RevokePermission(blink::mojom::PermissionName permission,
                         const mojo::String& origin,
                         const PermissionStatusCallback& callback) override;
   void GetNextPermissionChange(
-      mojom::PermissionName permission,
+      blink::mojom::PermissionName permission,
       const mojo::String& origin,
-      mojom::PermissionStatus last_known_status,
+      blink::mojom::PermissionStatus last_known_status,
       const PermissionStatusCallback& callback) override;
 
   void OnConnectionError();
 
   void OnRequestPermissionResponse(int pending_request_id,
-                                   mojom::PermissionStatus status);
+                                   blink::mojom::PermissionStatus status);
   void OnRequestPermissionsResponse(
       int pending_request_id,
-      const std::vector<mojom::PermissionStatus>& result);
+      const std::vector<blink::mojom::PermissionStatus>& result);
 
-  mojom::PermissionStatus GetPermissionStatusFromName(
-      mojom::PermissionName permission,
+  blink::mojom::PermissionStatus GetPermissionStatusFromName(
+      blink::mojom::PermissionName permission,
       const GURL& origin);
-  mojom::PermissionStatus GetPermissionStatusFromType(PermissionType type,
-                                                      const GURL& origin);
+  blink::mojom::PermissionStatus GetPermissionStatusFromType(
+      PermissionType type,
+      const GURL& origin);
   void ResetPermissionStatus(PermissionType type, const GURL& origin);
 
   void OnPermissionStatusChanged(int pending_subscription_id,
-                                 mojom::PermissionStatus status);
+                                 blink::mojom::PermissionStatus status);
 
   RequestsMap pending_requests_;
   SubscriptionsMap pending_subscriptions_;
   // context_ owns |this|.
   PermissionServiceContext* context_;
-  mojo::Binding<mojom::PermissionService> binding_;
+  mojo::Binding<blink::mojom::PermissionService> binding_;
   base::WeakPtrFactory<PermissionServiceImpl> weak_factory_;
 
   DISALLOW_COPY_AND_ASSIGN(PermissionServiceImpl);
diff --git a/content/browser/push_messaging/push_messaging_message_filter.cc b/content/browser/push_messaging/push_messaging_message_filter.cc
index 9390a06..26184cf0 100644
--- a/content/browser/push_messaging/push_messaging_message_filter.cc
+++ b/content/browser/push_messaging/push_messaging_message_filter.cc
@@ -150,7 +150,7 @@
   // Private Register methods on UI thread -------------------------------------
 
   void DidRequestPermissionInIncognito(const RegisterData& data,
-                                       mojom::PermissionStatus status);
+                                       blink::mojom::PermissionStatus status);
 
   void DidRegister(const RegisterData& data,
                    const std::string& push_registration_id,
@@ -467,10 +467,10 @@
 
 void PushMessagingMessageFilter::Core::DidRequestPermissionInIncognito(
     const RegisterData& data,
-    mojom::PermissionStatus status) {
+    blink::mojom::PermissionStatus status) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
   // Notification permission should always be denied in incognito.
-  DCHECK_EQ(mojom::PermissionStatus::DENIED, status);
+  DCHECK_EQ(blink::mojom::PermissionStatus::DENIED, status);
   BrowserThread::PostTask(
       BrowserThread::IO, FROM_HERE,
       base::Bind(&PushMessagingMessageFilter::SendSubscriptionError, io_parent_,
diff --git a/content/browser/utility_process_host_impl.cc b/content/browser/utility_process_host_impl.cc
index 99cc64f..7e7f3aa0 100644
--- a/content/browser/utility_process_host_impl.cc
+++ b/content/browser/utility_process_host_impl.cc
@@ -157,6 +157,7 @@
 #endif
       started_(false),
       name_(base::ASCIIToUTF16("utility process")),
+      mojo_application_host_(new MojoApplicationHost),
       weak_ptr_factory_(this) {
 }
 
@@ -217,21 +218,13 @@
 
 #endif  // OS_POSIX
 
-bool UtilityProcessHostImpl::StartMojoMode() {
-  CHECK(!mojo_application_host_);
-  mojo_application_host_.reset(new MojoApplicationHost);
-
-  bool mojo_result = mojo_application_host_->Init();
-  if (!mojo_result)
-    return false;
-
+bool UtilityProcessHostImpl::Start() {
   return StartProcess();
 }
 
 ServiceRegistry* UtilityProcessHostImpl::GetServiceRegistry() {
-  if (mojo_application_host_)
-    return mojo_application_host_->service_registry();
-  return nullptr;
+  DCHECK(mojo_application_host_);
+  return mojo_application_host_->service_registry();
 }
 
 void UtilityProcessHostImpl::SetName(const base::string16& name) {
@@ -254,6 +247,10 @@
   if (is_batch_mode_)
     return true;
 
+  bool mojo_result = mojo_application_host_->Init();
+  if (!mojo_result)
+    return false;
+
   // Name must be set or metrics_service will crash in any test which
   // launches a UtilityProcessHost.
   process_.reset(new BrowserChildProcessHostImpl(PROCESS_TYPE_UTILITY, this));
@@ -397,15 +394,14 @@
 }
 
 void UtilityProcessHostImpl::OnProcessLaunched() {
-  if (mojo_application_host_) {
-    base::ProcessHandle handle;
-    if (RenderProcessHost::run_renderer_in_process())
-      handle = base::GetCurrentProcessHandle();
-    else
-      handle = process_->GetData().handle;
+  DCHECK(mojo_application_host_);
+  base::ProcessHandle handle;
+  if (RenderProcessHost::run_renderer_in_process())
+    handle = base::GetCurrentProcessHandle();
+  else
+    handle = process_->GetData().handle;
 
-    mojo_application_host_->Activate(this, handle);
-  }
+  mojo_application_host_->Activate(this, handle);
 }
 
 }  // namespace content
diff --git a/content/browser/utility_process_host_impl.h b/content/browser/utility_process_host_impl.h
index 46dc6bf..2597495 100644
--- a/content/browser/utility_process_host_impl.h
+++ b/content/browser/utility_process_host_impl.h
@@ -57,7 +57,7 @@
 #if defined(OS_POSIX)
   void SetEnv(const base::EnvironmentMap& env) override;
 #endif
-  bool StartMojoMode() override;
+  bool Start() override;
   ServiceRegistry* GetServiceRegistry() override;
   void SetName(const base::string16& name) override;
 
diff --git a/content/child/npapi/plugin_instance.cc b/content/child/npapi/plugin_instance.cc
index da53c91..8121930c 100644
--- a/content/child/npapi/plugin_instance.cc
+++ b/content/child/npapi/plugin_instance.cc
@@ -89,19 +89,6 @@
   return err == NPERR_NO_ERROR;
 }
 
-bool PluginInstance::GetFormValue(base::string16* value) {
-  // Plugins will allocate memory for the return value by using NPN_MemAlloc().
-  char *plugin_value = NULL;
-  NPError error = NPP_GetValue(NPPVformValue, &plugin_value);
-  if (error != NPERR_NO_ERROR || !plugin_value) {
-    return false;
-  }
-  // Assumes the result is UTF8 text, as Firefox does.
-  *value = base::UTF8ToUTF16(plugin_value);
-  host_->host_functions()->memfree(plugin_value);
-  return true;
-}
-
 unsigned PluginInstance::GetBackingTextureId() {
   // By default the plugin instance is not backed by an OpenGL texture.
   return 0;
diff --git a/content/child/npapi/plugin_instance.h b/content/child/npapi/plugin_instance.h
index 905a162..08ab1805 100644
--- a/content/child/npapi/plugin_instance.h
+++ b/content/child/npapi/plugin_instance.h
@@ -115,9 +115,6 @@
   // seekable.
   WebPluginResourceClient* GetRangeRequest(int id);
 
-  // Returns the form value of this instance.
-  bool GetFormValue(base::string16* value);
-
   // If true, send the Mozilla user agent instead of Chrome's to the plugin.
   bool use_mozilla_user_agent() { return use_mozilla_user_agent_; }
   void set_use_mozilla_user_agent() { use_mozilla_user_agent_ = true; }
diff --git a/content/child/npapi/webplugin_delegate.h b/content/child/npapi/webplugin_delegate.h
index 8326a3a..d272af9 100644
--- a/content/child/npapi/webplugin_delegate.h
+++ b/content/child/npapi/webplugin_delegate.h
@@ -77,10 +77,6 @@
   virtual bool HandleInputEvent(const blink::WebInputEvent& event,
                                 WebCursor::CursorInfo* cursor) = 0;
 
-  // Gets the form value associated with the plugin instance.
-  // Returns false if the value is not available.
-  virtual bool GetFormValue(base::string16* value) = 0;
-
   // Returns the process id of the process that is running the plugin.
   virtual int GetProcessId() = 0;
 };
diff --git a/content/child/npapi/webplugin_delegate_impl.cc b/content/child/npapi/webplugin_delegate_impl.cc
index 6f8f807..4aa3912 100644
--- a/content/child/npapi/webplugin_delegate_impl.cc
+++ b/content/child/npapi/webplugin_delegate_impl.cc
@@ -161,10 +161,6 @@
 #endif
 }
 
-bool WebPluginDelegateImpl::GetFormValue(base::string16* value) {
-  return instance_->GetFormValue(value);
-}
-
 int WebPluginDelegateImpl::GetProcessId() {
   // We are in process, so the plugin pid is this current process pid.
   return base::GetCurrentProcId();
diff --git a/content/child/npapi/webplugin_delegate_impl.h b/content/child/npapi/webplugin_delegate_impl.h
index 3c5cf697..d38dce16 100644
--- a/content/child/npapi/webplugin_delegate_impl.h
+++ b/content/child/npapi/webplugin_delegate_impl.h
@@ -88,7 +88,6 @@
   void SetFocus(bool focused) override;
   bool HandleInputEvent(const blink::WebInputEvent& event,
                         WebCursor::CursorInfo* cursor_info) override;
-  bool GetFormValue(base::string16* value) override;
   int GetProcessId() override;
   // End of WebPluginDelegate implementation.
 
diff --git a/content/child/permissions/permission_dispatcher.cc b/content/child/permissions/permission_dispatcher.cc
index aca219d9..ffc0d82c 100644
--- a/content/child/permissions/permission_dispatcher.cc
+++ b/content/child/permissions/permission_dispatcher.cc
@@ -14,57 +14,58 @@
 #include "third_party/WebKit/public/platform/modules/permissions/WebPermissionObserver.h"
 
 using blink::WebPermissionObserver;
+using blink::mojom::PermissionName;
+using blink::mojom::PermissionStatus;
 
 namespace content {
 
 namespace {
 
-mojom::PermissionName GetPermissionName(blink::WebPermissionType type) {
+PermissionName GetPermissionName(blink::WebPermissionType type) {
   switch (type) {
     case blink::WebPermissionTypeGeolocation:
-      return mojom::PermissionName::GEOLOCATION;
+      return PermissionName::GEOLOCATION;
     case blink::WebPermissionTypeNotifications:
-      return mojom::PermissionName::NOTIFICATIONS;
+      return PermissionName::NOTIFICATIONS;
     case blink::WebPermissionTypePushNotifications:
-      return mojom::PermissionName::PUSH_NOTIFICATIONS;
+      return PermissionName::PUSH_NOTIFICATIONS;
     case blink::WebPermissionTypeMidiSysEx:
-      return mojom::PermissionName::MIDI_SYSEX;
+      return PermissionName::MIDI_SYSEX;
     case blink::WebPermissionTypeDurableStorage:
-      return mojom::PermissionName::DURABLE_STORAGE;
+      return PermissionName::DURABLE_STORAGE;
     case blink::WebPermissionTypeMidi:
-      return mojom::PermissionName::MIDI;
+      return PermissionName::MIDI;
     case blink::WebPermissionTypeBackgroundSync:
-      return mojom::PermissionName::BACKGROUND_SYNC;
+      return PermissionName::BACKGROUND_SYNC;
     default:
       // The default statement is only there to prevent compilation failures if
       // WebPermissionType enum gets extended.
       NOTREACHED();
-      return mojom::PermissionName::GEOLOCATION;
+      return PermissionName::GEOLOCATION;
   }
 }
 
-mojom::PermissionStatus GetPermissionStatus(blink::WebPermissionStatus status) {
+PermissionStatus GetPermissionStatus(blink::WebPermissionStatus status) {
   switch (status) {
     case blink::WebPermissionStatusGranted:
-      return mojom::PermissionStatus::GRANTED;
+      return PermissionStatus::GRANTED;
     case blink::WebPermissionStatusDenied:
-      return mojom::PermissionStatus::DENIED;
+      return PermissionStatus::DENIED;
     case blink::WebPermissionStatusPrompt:
-      return mojom::PermissionStatus::ASK;
+      return PermissionStatus::ASK;
   }
 
   NOTREACHED();
-  return mojom::PermissionStatus::DENIED;
+  return PermissionStatus::DENIED;
 }
 
-blink::WebPermissionStatus GetWebPermissionStatus(
-    mojom::PermissionStatus status) {
+blink::WebPermissionStatus GetWebPermissionStatus(PermissionStatus status) {
   switch (status) {
-    case mojom::PermissionStatus::GRANTED:
+    case PermissionStatus::GRANTED:
       return blink::WebPermissionStatusGranted;
-    case mojom::PermissionStatus::DENIED:
+    case PermissionStatus::DENIED:
       return blink::WebPermissionStatusDenied;
-    case mojom::PermissionStatus::ASK:
+    case PermissionStatus::ASK:
       return blink::WebPermissionStatusPrompt;
   }
 
@@ -141,7 +142,7 @@
                           // should be a no-op. After the first notification,
                           // GetNextPermissionChange will be called with the
                           // latest known value.
-                          mojom::PermissionStatus::ASK);
+                          PermissionStatus::ASK);
 }
 
 void PermissionDispatcher::stopListening(WebPermissionObserver* observer) {
@@ -191,7 +192,7 @@
       // value. Worst case, the observer will get notified about a non-change
       // which should be a no-op. After the first notification,
       // GetNextPermissionChange will be called with the latest known value.
-      mojom::PermissionStatus::ASK,
+      PermissionStatus::ASK,
       base::Bind(&PermissionDispatcher::OnPermissionChangedForWorker,
                  base::Unretained(this), worker_thread_id, callback));
 }
@@ -225,12 +226,13 @@
   callback->onSuccess(blink::adoptWebPtr(statuses.release()));
 }
 
-mojom::PermissionServicePtr& PermissionDispatcher::GetPermissionServicePtr() {
+blink::mojom::PermissionService*
+PermissionDispatcher::GetPermissionServicePtr() {
   if (!permission_service_.get()) {
     service_registry_->ConnectToRemoteService(
         mojo::GetProxy(&permission_service_));
   }
-  return permission_service_;
+  return permission_service_.get();
 }
 
 void PermissionDispatcher::QueryPermissionInternal(
@@ -290,7 +292,7 @@
   permissions_callbacks_.add(callback_key,
       scoped_ptr<blink::WebPermissionsCallback>(callback));
 
-  mojo::Array<mojom::PermissionName> names(types.size());
+  mojo::Array<PermissionName> names(types.size());
   for (size_t i = 0; i < types.size(); ++i)
     names[i] = GetPermissionName(types[i]);
 
@@ -322,10 +324,9 @@
                  callback_key));
 }
 
-void PermissionDispatcher::OnPermissionResponse(
-    int worker_thread_id,
-    uintptr_t callback_key,
-    mojom::PermissionStatus result) {
+void PermissionDispatcher::OnPermissionResponse(int worker_thread_id,
+                                                uintptr_t callback_key,
+                                                PermissionStatus result) {
   scoped_ptr<blink::WebPermissionCallback> callback =
       permission_callbacks_.take_and_erase(callback_key);
   blink::WebPermissionStatus status = GetWebPermissionStatus(result);
@@ -346,7 +347,7 @@
 void PermissionDispatcher::OnRequestPermissionsResponse(
     int worker_thread_id,
     uintptr_t callback_key,
-    const mojo::Array<mojom::PermissionStatus>& result) {
+    const mojo::Array<PermissionStatus>& result) {
   scoped_ptr<blink::WebPermissionsCallback> callback =
       permissions_callbacks_.take_and_erase(callback_key);
   scoped_ptr<blink::WebVector<blink::WebPermissionStatus>> statuses(
@@ -371,7 +372,7 @@
 void PermissionDispatcher::OnPermissionChanged(blink::WebPermissionType type,
                                                const std::string& origin,
                                                WebPermissionObserver* observer,
-                                               mojom::PermissionStatus status) {
+                                               PermissionStatus status) {
   if (!IsObserverRegistered(observer))
     return;
 
@@ -383,7 +384,7 @@
 void PermissionDispatcher::OnPermissionChangedForWorker(
     int worker_thread_id,
     const base::Callback<void(blink::WebPermissionStatus)>& callback,
-    mojom::PermissionStatus status) {
+    PermissionStatus status) {
   DCHECK(worker_thread_id != kNoWorkerThread);
 
   WorkerThread::PostTask(worker_thread_id,
@@ -394,7 +395,7 @@
     blink::WebPermissionType type,
     const std::string& origin,
     WebPermissionObserver* observer,
-    mojom::PermissionStatus current_status) {
+    PermissionStatus current_status) {
   GetPermissionServicePtr()->GetNextPermissionChange(
       GetPermissionName(type),
       origin,
diff --git a/content/child/permissions/permission_dispatcher.h b/content/child/permissions/permission_dispatcher.h
index b7e491cc..2402689 100644
--- a/content/child/permissions/permission_dispatcher.h
+++ b/content/child/permissions/permission_dispatcher.h
@@ -12,8 +12,8 @@
 #include "base/macros.h"
 #include "base/memory/scoped_ptr.h"
 #include "content/child/permissions/permission_observers_registry.h"
-#include "content/common/permission_service.mojom.h"
 #include "third_party/WebKit/public/platform/modules/permissions/WebPermissionClient.h"
+#include "third_party/WebKit/public/platform/modules/permissions/permission.mojom.h"
 
 namespace content {
 
@@ -101,7 +101,7 @@
       scoped_ptr<blink::WebVector<blink::WebPermissionStatus>> statuses);
 
   // Helper method that returns an initialized PermissionServicePtr.
-  mojom::PermissionServicePtr& GetPermissionServicePtr();
+  blink::mojom::PermissionService* GetPermissionServicePtr();
 
   void QueryPermissionInternal(blink::WebPermissionType type,
                                const std::string& origin,
@@ -124,24 +124,24 @@
   // This is the callback function used for query, request and revoke.
   void OnPermissionResponse(int worker_thread_id,
                             uintptr_t callback_key,
-                            mojom::PermissionStatus status);
+                            blink::mojom::PermissionStatus status);
   void OnRequestPermissionsResponse(
       int worker_thread_id,
       uintptr_t callback_key,
-      const mojo::Array<mojom::PermissionStatus>& status);
+      const mojo::Array<blink::mojom::PermissionStatus>& status);
   void OnPermissionChanged(blink::WebPermissionType type,
                            const std::string& origin,
                            blink::WebPermissionObserver* observer,
-                           mojom::PermissionStatus status);
+                           blink::mojom::PermissionStatus status);
   void OnPermissionChangedForWorker(
       int worker_thread_id,
       const base::Callback<void(blink::WebPermissionStatus)>& callback,
-      mojom::PermissionStatus status);
+      blink::mojom::PermissionStatus status);
 
   void GetNextPermissionChange(blink::WebPermissionType type,
                                const std::string& origin,
                                blink::WebPermissionObserver* observer,
-                               mojom::PermissionStatus current_status);
+                               blink::mojom::PermissionStatus current_status);
 
   // Pending callbacks for query(), revoke() and request() single permission.
   PermissionCallbackMap permission_callbacks_;
@@ -150,7 +150,7 @@
   PermissionsCallbackMap permissions_callbacks_;
 
   ServiceRegistry* service_registry_;
-  mojom::PermissionServicePtr permission_service_;
+  blink::mojom::PermissionServicePtr permission_service_;
 
   DISALLOW_COPY_AND_ASSIGN(PermissionDispatcher);
 };
diff --git a/content/child/plugin_messages.h b/content/child/plugin_messages.h
index c88fb07..c759722 100644
--- a/content/child/plugin_messages.h
+++ b/content/child/plugin_messages.h
@@ -78,11 +78,6 @@
 // plugin knows it can send more invalidates.
 IPC_MESSAGE_ROUTED0(PluginMsg_DidPaint)
 
-// Gets the form value of the plugin instance synchronously.
-IPC_SYNC_MESSAGE_ROUTED0_2(PluginMsg_GetFormValue,
-                           base::string16 /* value */,
-                           bool /* success */)
-
 // Updates the plugin location.
 IPC_MESSAGE_ROUTED1(PluginMsg_UpdateGeometry,
                     PluginMsg_UpdateGeometry_Param)
diff --git a/content/child/web_url_request_util.cc b/content/child/web_url_request_util.cc
index fde5e79..a940ac5f 100644
--- a/content/child/web_url_request_util.cc
+++ b/content/child/web_url_request_util.cc
@@ -198,11 +198,10 @@
   int load_flags = net::LOAD_NORMAL;
   GURL url = request.url();
   switch (request.getCachePolicy()) {
-    case WebURLRequest::ReloadIgnoringCacheData:
-      // Required by LayoutTests/http/tests/misc/refresh-headers.php
+    case WebURLRequest::ValidatingCacheData:
       load_flags |= net::LOAD_VALIDATE_CACHE;
       break;
-    case WebURLRequest::ReloadBypassingCache:
+    case WebURLRequest::BypassingCache:
       load_flags |= net::LOAD_BYPASS_CACHE;
       break;
     case WebURLRequest::ReturnCacheDataElseLoad:
diff --git a/content/common/BUILD.gn b/content/common/BUILD.gn
index dde51f5..26eca00 100644
--- a/content/common/BUILD.gn
+++ b/content/common/BUILD.gn
@@ -536,10 +536,8 @@
   sources = [
     "application_setup.mojom",
     "background_sync_service.mojom",
-    "geolocation_service.mojom",
     "image_downloader/image_downloader.mojom",
     "leveldb_wrapper.mojom",
-    "permission_service.mojom",
     "presentation/presentation_service.mojom",
     "process_control.mojom",
     "render_frame_setup.mojom",
diff --git a/content/common/accessibility_messages.h b/content/common/accessibility_messages.h
index 2be32b2..d7d826a 100644
--- a/content/common/accessibility_messages.h
+++ b/content/common/accessibility_messages.h
@@ -159,8 +159,13 @@
                     int /* object id */,
                     base::string16 /* Value */)
 
-// Determine the accessibility object under a given point and reply with
-// a AccessibilityHostMsg_HitTestResult with the same id.
+// Determine the accessibility object under a given point.
+//
+// If the target is an object with a child frame (like if the hit test
+// result is an iframe element), it responds with
+// AccessibilityHostMsg_ChildFrameHitTestResult so that the
+// hit test can be performed recursively on the child frame. Otherwise
+// it fires an accessibility event of type ui::AX_EVENT_HOVER on the target.
 IPC_MESSAGE_ROUTED1(AccessibilityMsg_HitTest,
                     gfx::Point /* location to test */)
 
@@ -213,11 +218,16 @@
     AccessibilityHostMsg_LocationChanges,
     std::vector<AccessibilityHostMsg_LocationChangeParams>)
 
-// Sent to update the browser of the location of accessibility objects.
+// Sent to update the browser of Find In Page results.
 IPC_MESSAGE_ROUTED1(
     AccessibilityHostMsg_FindInPageResult,
     AccessibilityHostMsg_FindInPageResultParams)
 
+// Sent in response to AccessibilityMsg_HitTest.
+IPC_MESSAGE_ROUTED2(AccessibilityHostMsg_ChildFrameHitTestResult,
+                    gfx::Point /* location tested */,
+                    int /* node id of result */);
+
 // Sent in response to AccessibilityMsg_SnapshotTree. The callback id that was
 // passed to the request will be returned in |callback_id|, along with
 // a standalone snapshot of the accessibility tree.
diff --git a/content/common/geolocation_service.mojom b/content/common/geolocation_service.mojom
deleted file mode 100644
index 349791e..0000000
--- a/content/common/geolocation_service.mojom
+++ /dev/null
@@ -1,20 +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.
-
-module content.mojom;
-
-import "content/public/common/mojo_geoposition.mojom";
-
-// The Geolocation service provides updates on the device's location.  By
-// default, it provides updates with low accuracy, but |SetHighAccuracy()| may
-// be called to change this.
-interface GeolocationService {
-  SetHighAccuracy(bool high_accuracy);
-
-  // Position is reported once it changes or immediately (to report the initial
-  // position) if this is the first call to QueryNextPosition on this instance.
-  // Position updates may be throttled by the service. Overlapping calls to
-  // this method are prohibited and will be treated as a connection error.
-  QueryNextPosition() => (MojoGeoposition geoposition);
-};
diff --git a/content/content_common_mojo_bindings.gyp b/content/content_common_mojo_bindings.gyp
index 5cc2835..f0ac87a 100644
--- a/content/content_common_mojo_bindings.gyp
+++ b/content/content_common_mojo_bindings.gyp
@@ -17,10 +17,8 @@
           # NOTE: Sources duplicated in //content/common/BUILD.gn:mojo_bindings.
           'common/application_setup.mojom',
           'common/background_sync_service.mojom',
-          'common/geolocation_service.mojom',
           'common/image_downloader/image_downloader.mojom',
           'common/leveldb_wrapper.mojom',
-          'common/permission_service.mojom',
           'common/presentation/presentation_service.mojom',
           'common/process_control.mojom',
           'common/render_frame_setup.mojom',
@@ -33,8 +31,6 @@
           # NOTE: Sources duplicated in
           # //content/public/common/BUILD.gn:mojo_bindings.
           'public/common/background_sync.mojom',
-          'public/common/mojo_geoposition.mojom',
-          'public/common/permission_status.mojom',
           'public/common/service_worker_event_status.mojom',
         ],
       },
diff --git a/content/content_tests.gypi b/content/content_tests.gypi
index 18dc720..7415c43 100644
--- a/content/content_tests.gypi
+++ b/content/content_tests.gypi
@@ -191,6 +191,7 @@
       'browser/accessibility/accessibility_event_recorder_win.cc',
       'browser/accessibility/accessibility_ipc_error_browsertest.cc',
       'browser/accessibility/accessibility_mode_browsertest.cc',
+      'browser/accessibility/hit_testing_browsertest.cc',
       'browser/accessibility/cross_platform_accessibility_browsertest.cc',
       'browser/accessibility/dump_accessibility_browsertest_base.cc',
       'browser/accessibility/dump_accessibility_browsertest_base.h',
@@ -297,7 +298,6 @@
     ],
     'content_browsertests_android_sources': [
       'browser/accessibility/android_granularity_movement_browsertest.cc',
-      'browser/accessibility/android_hit_testing_browsertest.cc',
       'shell/android/browsertests_apk/content_browser_tests_jni_onload.cc',
     ],
     'content_browsertests_webrtc_sources': [
diff --git a/content/plugin/webplugin_delegate_stub.cc b/content/plugin/webplugin_delegate_stub.cc
index 6d67b68..e6927bbd 100644
--- a/content/plugin/webplugin_delegate_stub.cc
+++ b/content/plugin/webplugin_delegate_stub.cc
@@ -83,7 +83,6 @@
     IPC_MESSAGE_HANDLER(PluginMsg_HandleInputEvent, OnHandleInputEvent)
     IPC_MESSAGE_HANDLER(PluginMsg_Paint, OnPaint)
     IPC_MESSAGE_HANDLER(PluginMsg_DidPaint, OnDidPaint)
-    IPC_MESSAGE_HANDLER(PluginMsg_GetFormValue, OnGetFormValue)
     IPC_MESSAGE_HANDLER(PluginMsg_UpdateGeometry, OnUpdateGeometry)
     IPC_MESSAGE_HANDLER(PluginMsg_UpdateGeometrySync, OnUpdateGeometry)
     IPC_MESSAGE_HANDLER(PluginMsg_SetContentAreaFocus, OnSetContentAreaFocus)
@@ -179,14 +178,6 @@
       param.windowless_buffer_index);
 }
 
-void WebPluginDelegateStub::OnGetFormValue(base::string16* value,
-                                           bool* success) {
-  *success = false;
-  if (!delegate_)
-    return;
-  *success = delegate_->GetFormValue(value);
-}
-
 void WebPluginDelegateStub::OnSetContentAreaFocus(bool has_focus) {
   if (delegate_)
     delegate_->SetContentAreaHasFocus(has_focus);
diff --git a/content/plugin/webplugin_delegate_stub.h b/content/plugin/webplugin_delegate_stub.h
index 296b1bd..69b62fa 100644
--- a/content/plugin/webplugin_delegate_stub.h
+++ b/content/plugin/webplugin_delegate_stub.h
@@ -66,7 +66,6 @@
   void OnPaint(const gfx::Rect& damaged_rect);
   void OnDidPaint();
   void OnUpdateGeometry(const PluginMsg_UpdateGeometry_Param& param);
-  void OnGetFormValue(base::string16* value, bool* success);
 
   void OnSetContentAreaFocus(bool has_focus);
 #if defined(OS_MACOSX)
diff --git a/content/public/browser/permission_manager.h b/content/public/browser/permission_manager.h
index 9aa5e30..c783c33 100644
--- a/content/public/browser/permission_manager.h
+++ b/content/public/browser/permission_manager.h
@@ -6,7 +6,7 @@
 #define CONTENT_PUBLIC_BROWSER_PERMISSION_MANAGER_H_
 
 #include "content/common/content_export.h"
-#include "content/public/common/permission_status.mojom.h"
+#include "third_party/WebKit/public/platform/modules/permissions/permission_status.mojom.h"
 
 class GURL;
 
@@ -37,7 +37,7 @@
       PermissionType permission,
       RenderFrameHost* render_frame_host,
       const GURL& requesting_origin,
-      const base::Callback<void(mojom::PermissionStatus)>& callback) = 0;
+      const base::Callback<void(blink::mojom::PermissionStatus)>& callback) = 0;
 
   // Requests multiple permissions on behalf of a frame identified by
   // render_frame_host.
@@ -53,8 +53,8 @@
       const std::vector<PermissionType>& permission,
       RenderFrameHost* render_frame_host,
       const GURL& requesting_origin,
-      const base::Callback<void(const std::vector<mojom::PermissionStatus>&)>&
-          callback) = 0;
+      const base::Callback<void(
+          const std::vector<blink::mojom::PermissionStatus>&)>& callback) = 0;
 
   // Cancels a previous permission request specified by |request_id|. Cancelling
   // an already cancelled request or providing the |request_id|
@@ -64,7 +64,7 @@
   // Returns the permission status of a given requesting_origin/embedding_origin
   // tuple. This is not taking a RenderFrameHost because the call might happen
   // outside of a frame context.
-  virtual mojom::PermissionStatus GetPermissionStatus(
+  virtual blink::mojom::PermissionStatus GetPermissionStatus(
       PermissionType permission,
       const GURL& requesting_origin,
       const GURL& embedding_origin) = 0;
@@ -89,7 +89,7 @@
       PermissionType permission,
       const GURL& requesting_origin,
       const GURL& embedding_origin,
-      const base::Callback<void(mojom::PermissionStatus)>& callback) = 0;
+      const base::Callback<void(blink::mojom::PermissionStatus)>& callback) = 0;
 
   // Unregisters from permission status change notifications.
   // The |subscription_id| must match the value returned by the
diff --git a/content/public/browser/utility_process_host.h b/content/public/browser/utility_process_host.h
index 1a903136..98cca9b3 100644
--- a/content/public/browser/utility_process_host.h
+++ b/content/public/browser/utility_process_host.h
@@ -29,7 +29,7 @@
 // If you need multiple batches of work to be done in the process, use
 // StartBatchMode(), then multiple calls to StartFooBar(p), then finish with
 // EndBatchMode().
-// If you need to call Mojo services, use StartMojoMode() to start the child
+// If you need to call Mojo services, use Start() to start the child
 // process and GetServiceRegistry() to get the service registry to connect to
 // the child's Mojo services.
 //
@@ -76,11 +76,10 @@
   virtual void SetEnv(const base::EnvironmentMap& env) = 0;
 #endif
 
-  // Starts the utility process in Mojo mode.
-  virtual bool StartMojoMode() = 0;
+  // Starts the utility process.
+  virtual bool Start() = 0;
 
-  // Returns the ServiceRegistry for this process. Will return nullptr if
-  // the process was not started with StartMojoMode().
+  // Returns the ServiceRegistry for this process. Will never return nullptr.
   virtual ServiceRegistry* GetServiceRegistry() = 0;
 
   // Set the name of the process to appear in the task manager.
diff --git a/content/public/common/BUILD.gn b/content/public/common/BUILD.gn
index a155d71..40c08f1 100644
--- a/content/public/common/BUILD.gn
+++ b/content/public/common/BUILD.gn
@@ -138,8 +138,6 @@
 mojom("mojo_bindings") {
   sources = [
     "background_sync.mojom",
-    "mojo_geoposition.mojom",
-    "permission_status.mojom",
     "service_worker_event_status.mojom",
   ]
 }
diff --git a/content/renderer/accessibility/renderer_accessibility.cc b/content/renderer/accessibility/renderer_accessibility.cc
index 34f1c457..fb8bf2d 100644
--- a/content/renderer/accessibility/renderer_accessibility.cc
+++ b/content/renderer/accessibility/renderer_accessibility.cc
@@ -384,8 +384,24 @@
     return;
 
   WebAXObject obj = root_obj.hitTest(point);
-  if (!obj.isDetached())
-    HandleAXEvent(obj, ui::AX_EVENT_HOVER);
+  if (obj.isDetached())
+    return;
+
+  // If the object that was hit has a child frame, we have to send a
+  // message back to the browser to do the hit test in the child frame,
+  // recursively.
+  AXContentNodeData data;
+  tree_source_.SerializeNode(obj, &data);
+  if (data.HasContentIntAttribute(AX_CONTENT_ATTR_CHILD_ROUTING_ID) ||
+      data.HasContentIntAttribute(
+          AX_CONTENT_ATTR_CHILD_BROWSER_PLUGIN_INSTANCE_ID)) {
+    Send(new AccessibilityHostMsg_ChildFrameHitTestResult(routing_id(), point,
+                                                          obj.axID()));
+    return;
+  }
+
+  // Otherwise, send a HOVER event on the node that was hit.
+  HandleAXEvent(obj, ui::AX_EVENT_HOVER);
 }
 
 void RendererAccessibility::OnSetAccessibilityFocus(int acc_obj_id) {
diff --git a/content/renderer/geolocation_dispatcher.cc b/content/renderer/geolocation_dispatcher.cc
index 59f0d44a..083927f 100644
--- a/content/renderer/geolocation_dispatcher.cc
+++ b/content/renderer/geolocation_dispatcher.cc
@@ -80,7 +80,7 @@
   int permission_request_id = pending_permissions_->add(permissionRequest);
 
   permission_service_->RequestPermission(
-      mojom::PermissionName::GEOLOCATION,
+      blink::mojom::PermissionName::GEOLOCATION,
       permissionRequest.getSecurityOrigin().toString().utf8(),
       base::Bind(&GeolocationDispatcher::OnPermissionSet,
                  base::Unretained(this), permission_request_id));
@@ -93,13 +93,15 @@
 }
 
 // Permission for using geolocation has been set.
-void GeolocationDispatcher::OnPermissionSet(int permission_request_id,
-                                            mojom::PermissionStatus status) {
+void GeolocationDispatcher::OnPermissionSet(
+    int permission_request_id,
+    blink::mojom::PermissionStatus status) {
   WebGeolocationPermissionRequest permissionRequest;
   if (!pending_permissions_->remove(permission_request_id, permissionRequest))
     return;
 
-  permissionRequest.setIsAllowed(status == mojom::PermissionStatus::GRANTED);
+  permissionRequest.setIsAllowed(status ==
+                                 blink::mojom::PermissionStatus::GRANTED);
 }
 
 void GeolocationDispatcher::QueryNextPosition() {
@@ -110,7 +112,7 @@
 }
 
 void GeolocationDispatcher::OnPositionUpdate(
-    mojom::MojoGeopositionPtr geoposition) {
+    blink::mojom::GeopositionPtr geoposition) {
   QueryNextPosition();
 
   if (geoposition->valid) {
@@ -131,10 +133,10 @@
   } else {
     WebGeolocationError::Error code;
     switch (geoposition->error_code) {
-      case mojom::MojoGeoposition::ErrorCode::PERMISSION_DENIED:
+      case blink::mojom::Geoposition::ErrorCode::PERMISSION_DENIED:
         code = WebGeolocationError::ErrorPermissionDenied;
         break;
-      case mojom::MojoGeoposition::ErrorCode::POSITION_UNAVAILABLE:
+      case blink::mojom::Geoposition::ErrorCode::POSITION_UNAVAILABLE:
         code = WebGeolocationError::ErrorPositionUnavailable;
         break;
       default:
diff --git a/content/renderer/geolocation_dispatcher.h b/content/renderer/geolocation_dispatcher.h
index e9cce388..71766be 100644
--- a/content/renderer/geolocation_dispatcher.h
+++ b/content/renderer/geolocation_dispatcher.h
@@ -6,9 +6,9 @@
 #define CONTENT_RENDERER_GEOLOCATION_DISPATCHER_H_
 
 #include "base/memory/scoped_ptr.h"
-#include "content/common/geolocation_service.mojom.h"
-#include "content/common/permission_service.mojom.h"
 #include "content/public/renderer/render_frame_observer.h"
+#include "third_party/WebKit/public/platform/modules/geolocation/geolocation.mojom.h"
+#include "third_party/WebKit/public/platform/modules/permissions/permission.mojom.h"
 #include "third_party/WebKit/public/web/WebGeolocationClient.h"
 #include "third_party/WebKit/public/web/WebGeolocationController.h"
 
@@ -45,19 +45,19 @@
       const blink::WebGeolocationPermissionRequest& permissionRequest) override;
 
   void QueryNextPosition();
-  void OnPositionUpdate(mojom::MojoGeopositionPtr geoposition);
+  void OnPositionUpdate(blink::mojom::GeopositionPtr geoposition);
 
   // Permission for using geolocation has been set.
   void OnPermissionSet(int permission_request_id,
-                       mojom::PermissionStatus status);
+                       blink::mojom::PermissionStatus status);
 
   scoped_ptr<blink::WebGeolocationController> controller_;
 
   scoped_ptr<blink::WebGeolocationPermissionRequestManager>
       pending_permissions_;
-  mojom::GeolocationServicePtr geolocation_service_;
+  blink::mojom::GeolocationServicePtr geolocation_service_;
   bool enable_high_accuracy_;
-  mojom::PermissionServicePtr permission_service_;
+  blink::mojom::PermissionServicePtr permission_service_;
 };
 
 }  // namespace content
diff --git a/content/renderer/image_downloader/image_downloader_impl.cc b/content/renderer/image_downloader/image_downloader_impl.cc
index 5fca5b9..70b8893f 100644
--- a/content/renderer/image_downloader/image_downloader_impl.cc
+++ b/content/renderer/image_downloader/image_downloader_impl.cc
@@ -176,7 +176,7 @@
   image_fetchers_.push_back(new MultiResolutionImageResourceFetcher(
       image_url, frame, 0, is_favicon ? WebURLRequest::RequestContextFavicon
                                       : WebURLRequest::RequestContextImage,
-      bypass_cache ? WebURLRequest::ReloadBypassingCache
+      bypass_cache ? WebURLRequest::BypassingCache
                    : WebURLRequest::UseProtocolCachePolicy,
       base::Bind(&ImageDownloaderImpl::DidFetchImage, base::Unretained(this),
                  max_image_size, callback)));
diff --git a/content/renderer/media/android/webmediaplayer_android.cc b/content/renderer/media/android/webmediaplayer_android.cc
index 9051f7ef..ef9ddf104 100644
--- a/content/renderer/media/android/webmediaplayer_android.cc
+++ b/content/renderer/media/android/webmediaplayer_android.cc
@@ -314,8 +314,7 @@
                                    CORSMode cors_mode) {
   DCHECK(main_thread_checker_.CalledOnValidThread());
 
-  media::ReportMetrics(load_type, GURL(url),
-                       frame_->document().getSecurityOrigin());
+  media::ReportMetrics(load_type, GURL(url), frame_->getSecurityOrigin());
 
   switch (load_type) {
     case LoadTypeURL:
@@ -1662,8 +1661,8 @@
   bool is_hls = IsHLSStream();
   UMA_HISTOGRAM_BOOLEAN("Media.Android.IsHttpLiveStreamingMedia", is_hls);
   if (is_hls) {
-    media::RecordOriginOfHLSPlayback(blink::WebStringToGURL(
-        frame_->document().getSecurityOrigin().toString()));
+    media::RecordOriginOfHLSPlayback(
+        blink::WebStringToGURL(frame_->getSecurityOrigin().toString()));
   }
 
   // Assuming that |is_hls| is the ground truth, test predictions.
diff --git a/content/renderer/media/media_permission_dispatcher.cc b/content/renderer/media/media_permission_dispatcher.cc
index 1ce9838..d8e55195 100644
--- a/content/renderer/media/media_permission_dispatcher.cc
+++ b/content/renderer/media/media_permission_dispatcher.cc
@@ -15,17 +15,17 @@
 
 using Type = media::MediaPermission::Type;
 
-content::mojom::PermissionName MediaPermissionTypeToPermissionName(Type type) {
+blink::mojom::PermissionName MediaPermissionTypeToPermissionName(Type type) {
   switch (type) {
     case Type::PROTECTED_MEDIA_IDENTIFIER:
-      return content::mojom::PermissionName::PROTECTED_MEDIA_IDENTIFIER;
+      return blink::mojom::PermissionName::PROTECTED_MEDIA_IDENTIFIER;
     case Type::AUDIO_CAPTURE:
-      return content::mojom::PermissionName::AUDIO_CAPTURE;
+      return blink::mojom::PermissionName::AUDIO_CAPTURE;
     case Type::VIDEO_CAPTURE:
-      return content::mojom::PermissionName::VIDEO_CAPTURE;
+      return blink::mojom::PermissionName::VIDEO_CAPTURE;
   }
   NOTREACHED();
-  return content::mojom::PermissionName::PROTECTED_MEDIA_IDENTIFIER;
+  return blink::mojom::PermissionName::PROTECTED_MEDIA_IDENTIFIER;
 }
 
 }  // namespace
@@ -115,7 +115,7 @@
 
 void MediaPermissionDispatcher::OnPermissionStatus(
     uint32_t request_id,
-    mojom::PermissionStatus status) {
+    blink::mojom::PermissionStatus status) {
   DVLOG(2) << __FUNCTION__ << ": (" << request_id << ", " << status << ")";
   DCHECK(task_runner_->RunsTasksOnCurrentThread());
 
@@ -125,7 +125,7 @@
   PermissionStatusCB permission_status_cb = iter->second;
   requests_.erase(iter);
 
-  permission_status_cb.Run(status == mojom::PermissionStatus::GRANTED);
+  permission_status_cb.Run(status == blink::mojom::PermissionStatus::GRANTED);
 }
 
 }  // namespace content
diff --git a/content/renderer/media/media_permission_dispatcher.h b/content/renderer/media/media_permission_dispatcher.h
index d438757..2a94defe 100644
--- a/content/renderer/media/media_permission_dispatcher.h
+++ b/content/renderer/media/media_permission_dispatcher.h
@@ -14,8 +14,8 @@
 #include "base/memory/ref_counted.h"
 #include "base/memory/weak_ptr.h"
 #include "content/common/content_export.h"
-#include "content/common/permission_service.mojom.h"
 #include "media/base/media_permission.h"
+#include "third_party/WebKit/public/platform/modules/permissions/permission.mojom.h"
 
 namespace base {
 class SingleThreadTaskRunner;
@@ -26,8 +26,8 @@
 // MediaPermission implementation using content PermissionService.
 class CONTENT_EXPORT MediaPermissionDispatcher : public media::MediaPermission {
  public:
-  using ConnectToServiceCB =
-      base::Callback<void(mojo::InterfaceRequest<mojom::PermissionService>)>;
+  using ConnectToServiceCB = base::Callback<void(
+      mojo::InterfaceRequest<blink::mojom::PermissionService>)>;
 
   explicit MediaPermissionDispatcher(
       const ConnectToServiceCB& connect_to_service_cb);
@@ -49,17 +49,18 @@
   typedef std::map<uint32_t, PermissionStatusCB> RequestMap;
 
   // Register PermissionStatusCBs. Returns |request_id| that can be used to make
-  // mojom::PermissionService calls.
+  // PermissionService calls.
   uint32_t RegisterCallback(const PermissionStatusCB& permission_status_cb);
 
   // Callback for |permission_service_| calls.
-  void OnPermissionStatus(uint32_t request_id, mojom::PermissionStatus status);
+  void OnPermissionStatus(uint32_t request_id,
+                          blink::mojom::PermissionStatus status);
 
   ConnectToServiceCB connect_to_service_cb_;
   scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
   uint32_t next_request_id_;
   RequestMap requests_;
-  mojom::PermissionServicePtr permission_service_;
+  blink::mojom::PermissionServicePtr permission_service_;
 
   // Used to safely post MediaPermission calls for execution on |task_runner_|.
   base::WeakPtr<MediaPermissionDispatcher> weak_ptr_;
diff --git a/content/renderer/media/midi_dispatcher.cc b/content/renderer/media/midi_dispatcher.cc
index b249908..65f42a95 100644
--- a/content/renderer/media/midi_dispatcher.cc
+++ b/content/renderer/media/midi_dispatcher.cc
@@ -34,10 +34,10 @@
   int permission_request_id =
       requests_.Add(new WebMIDIPermissionRequest(request));
 
-  mojom::PermissionName permission_name =
+  blink::mojom::PermissionName permission_name =
       (options.sysex == WebMIDIOptions::SysexPermission::WithSysex)
-          ? mojom::PermissionName::MIDI_SYSEX
-          : mojom::PermissionName::MIDI;
+          ? blink::mojom::PermissionName::MIDI_SYSEX
+          : blink::mojom::PermissionName::MIDI;
 
   permission_service_->RequestPermission(
       permission_name, request.getSecurityOrigin().toString().utf8(),
@@ -57,12 +57,12 @@
 }
 
 void MidiDispatcher::OnPermissionSet(int request_id,
-                                     mojom::PermissionStatus status) {
+                                     blink::mojom::PermissionStatus status) {
   // |request| can be NULL when the request is canceled.
   WebMIDIPermissionRequest* request = requests_.Lookup(request_id);
   if (!request)
     return;
-  request->setIsAllowed(status == mojom::PermissionStatus::GRANTED);
+  request->setIsAllowed(status == blink::mojom::PermissionStatus::GRANTED);
   requests_.Remove(request_id);
 }
 
diff --git a/content/renderer/media/midi_dispatcher.h b/content/renderer/media/midi_dispatcher.h
index f840610..802328a 100644
--- a/content/renderer/media/midi_dispatcher.h
+++ b/content/renderer/media/midi_dispatcher.h
@@ -7,8 +7,8 @@
 
 #include "base/id_map.h"
 #include "base/macros.h"
-#include "content/common/permission_service.mojom.h"
 #include "content/public/renderer/render_frame_observer.h"
+#include "third_party/WebKit/public/platform/modules/permissions/permission.mojom.h"
 #include "third_party/WebKit/public/web/modules/webmidi/WebMIDIClient.h"
 
 namespace blink {
@@ -35,7 +35,7 @@
       const blink::WebMIDIPermissionRequest& request) override;
 
   // Permission for using MIDI system has been set.
-  void OnPermissionSet(int request_id, mojom::PermissionStatus status);
+  void OnPermissionSet(int request_id, blink::mojom::PermissionStatus status);
 
   // Each WebMIDIPermissionRequest object is valid until
   // cancelSysexPermissionRequest() is called with the object, or used to call
@@ -43,7 +43,7 @@
   typedef IDMap<blink::WebMIDIPermissionRequest, IDMapOwnPointer> Requests;
   Requests requests_;
 
-  mojom::PermissionServicePtr permission_service_;
+  blink::mojom::PermissionServicePtr permission_service_;
 
   DISALLOW_COPY_AND_ASSIGN(MidiDispatcher);
 };
diff --git a/content/renderer/media/webmediaplayer_ms.cc b/content/renderer/media/webmediaplayer_ms.cc
index 35b6e9b..dca8fce9 100644
--- a/content/renderer/media/webmediaplayer_ms.cc
+++ b/content/renderer/media/webmediaplayer_ms.cc
@@ -24,6 +24,7 @@
 #include "content/renderer/render_thread_impl.h"
 #include "media/base/media_log.h"
 #include "media/base/video_frame.h"
+#include "media/blink/webmediaplayer_util.h"
 #include "third_party/WebKit/public/platform/WebMediaPlayerClient.h"
 #include "third_party/WebKit/public/platform/WebRect.h"
 #include "third_party/WebKit/public/platform/WebSize.h"
@@ -127,6 +128,9 @@
   RenderFrame* const frame = RenderFrame::FromWebFrame(frame_);
 
   if (frame) {
+    // Report UMA and RAPPOR metrics.
+    media::ReportMetrics(load_type, GURL(url), frame_->getSecurityOrigin());
+
     audio_renderer_ = renderer_factory_->GetAudioRenderer(
         url, frame->GetRoutingID(), initial_audio_output_device_id_,
         initial_security_origin_);
diff --git a/content/renderer/notification_permission_dispatcher.cc b/content/renderer/notification_permission_dispatcher.cc
index 1d37d08..f4ce9d4 100644
--- a/content/renderer/notification_permission_dispatcher.cc
+++ b/content/renderer/notification_permission_dispatcher.cc
@@ -36,7 +36,7 @@
   // base::Unretained is safe here because the Mojo channel, with associated
   // callbacks, will be deleted before the "this" instance is deleted.
   permission_service_->RequestPermission(
-      mojom::PermissionName::NOTIFICATIONS, origin.toString().utf8(),
+      blink::mojom::PermissionName::NOTIFICATIONS, origin.toString().utf8(),
       base::Bind(&NotificationPermissionDispatcher::OnPermissionRequestComplete,
                  base::Unretained(this),
                  base::Passed(std::move(owned_callback))));
@@ -44,19 +44,19 @@
 
 void NotificationPermissionDispatcher::OnPermissionRequestComplete(
     scoped_ptr<WebNotificationPermissionCallback> callback,
-    mojom::PermissionStatus status) {
+    blink::mojom::PermissionStatus status) {
   DCHECK(callback);
 
   blink::WebNotificationPermission permission =
       blink::WebNotificationPermissionDefault;
   switch (status) {
-    case mojom::PermissionStatus::GRANTED:
+    case blink::mojom::PermissionStatus::GRANTED:
       permission = blink::WebNotificationPermissionAllowed;
       break;
-    case mojom::PermissionStatus::DENIED:
+    case blink::mojom::PermissionStatus::DENIED:
       permission = blink::WebNotificationPermissionDenied;
       break;
-    case mojom::PermissionStatus::ASK:
+    case blink::mojom::PermissionStatus::ASK:
       permission = blink::WebNotificationPermissionDefault;
       break;
   }
diff --git a/content/renderer/notification_permission_dispatcher.h b/content/renderer/notification_permission_dispatcher.h
index c431004..68002d73 100644
--- a/content/renderer/notification_permission_dispatcher.h
+++ b/content/renderer/notification_permission_dispatcher.h
@@ -7,8 +7,8 @@
 
 #include "base/macros.h"
 #include "base/memory/scoped_ptr.h"
-#include "content/common/permission_service.mojom.h"
 #include "content/public/renderer/render_frame_observer.h"
+#include "third_party/WebKit/public/platform/modules/permissions/permission.mojom.h"
 
 namespace blink {
 class WebNotificationPermissionCallback;
@@ -34,9 +34,9 @@
  private:
   void OnPermissionRequestComplete(
       scoped_ptr<blink::WebNotificationPermissionCallback> callback,
-      mojom::PermissionStatus status);
+      blink::mojom::PermissionStatus status);
 
-  mojom::PermissionServicePtr permission_service_;
+  blink::mojom::PermissionServicePtr permission_service_;
 
   DISALLOW_COPY_AND_ASSIGN(NotificationPermissionDispatcher);
 };
diff --git a/content/renderer/npapi/webplugin_delegate_proxy.cc b/content/renderer/npapi/webplugin_delegate_proxy.cc
index 2bce239..05a021f 100644
--- a/content/renderer/npapi/webplugin_delegate_proxy.cc
+++ b/content/renderer/npapi/webplugin_delegate_proxy.cc
@@ -523,12 +523,6 @@
   }
 }
 
-bool WebPluginDelegateProxy::GetFormValue(base::string16* value) {
-  bool success = false;
-  Send(new PluginMsg_GetFormValue(instance_id_, value, &success));
-  return success;
-}
-
 void WebPluginDelegateProxy::SetFocus(bool focused) {
   Send(new PluginMsg_SetFocus(instance_id_, focused));
 }
diff --git a/content/renderer/npapi/webplugin_delegate_proxy.h b/content/renderer/npapi/webplugin_delegate_proxy.h
index a2dfc01..d23b517 100644
--- a/content/renderer/npapi/webplugin_delegate_proxy.h
+++ b/content/renderer/npapi/webplugin_delegate_proxy.h
@@ -68,7 +68,6 @@
   void UpdateGeometry(const gfx::Rect& window_rect,
                       const gfx::Rect& clip_rect) override;
   void Paint(SkCanvas* canvas, const gfx::Rect& rect) override;
-  bool GetFormValue(base::string16* value) override;
   void SetFocus(bool focused) override;
   bool HandleInputEvent(const blink::WebInputEvent& event,
                         WebCursor::CursorInfo* cursor) override;
diff --git a/content/renderer/npapi/webplugin_impl.cc b/content/renderer/npapi/webplugin_impl.cc
index 09db6bf..4b8c6b7 100644
--- a/content/renderer/npapi/webplugin_impl.cc
+++ b/content/renderer/npapi/webplugin_impl.cc
@@ -143,16 +143,6 @@
   base::MessageLoop::current()->DeleteSoon(FROM_HERE, this);
 }
 
-bool WebPluginImpl::getFormValue(blink::WebString& value) {
-  if (!delegate_)
-    return false;
-  base::string16 form_value;
-  if (!delegate_->GetFormValue(&form_value))
-    return false;
-  value = form_value;
-  return true;
-}
-
 void WebPluginImpl::updateAllLifecyclePhases() {
   if (!container_)
     return;
diff --git a/content/renderer/npapi/webplugin_impl.h b/content/renderer/npapi/webplugin_impl.h
index f642192f..15d2ca47 100644
--- a/content/renderer/npapi/webplugin_impl.h
+++ b/content/renderer/npapi/webplugin_impl.h
@@ -72,7 +72,6 @@
   // blink::WebPlugin methods:
   bool initialize(blink::WebPluginContainer* container) override;
   void destroy() override;
-  bool getFormValue(blink::WebString& value) override;
   void updateAllLifecyclePhases() override;
   void paint(blink::WebCanvas* canvas,
              const blink::WebRect& paint_rect) override;
diff --git a/content/renderer/pepper/pepper_webplugin_impl.cc b/content/renderer/pepper/pepper_webplugin_impl.cc
index 1c30f0d0..af5a4d2 100644
--- a/content/renderer/pepper/pepper_webplugin_impl.cc
+++ b/content/renderer/pepper/pepper_webplugin_impl.cc
@@ -190,8 +190,6 @@
   return result;
 }
 
-bool PepperWebPluginImpl::getFormValue(WebString& value) { return false; }
-
 void PepperWebPluginImpl::paint(WebCanvas* canvas, const WebRect& rect) {
   if (!instance_->FlashIsFullscreenOrPending())
     instance_->Paint(canvas, plugin_rect_, rect);
diff --git a/content/renderer/pepper/pepper_webplugin_impl.h b/content/renderer/pepper/pepper_webplugin_impl.h
index 406bf4d9..db4c5ae 100644
--- a/content/renderer/pepper/pepper_webplugin_impl.h
+++ b/content/renderer/pepper/pepper_webplugin_impl.h
@@ -45,7 +45,6 @@
   bool initialize(blink::WebPluginContainer* container) override;
   void destroy() override;
   v8::Local<v8::Object> v8ScriptableObject(v8::Isolate* isolate) override;
-  bool getFormValue(blink::WebString& value) override;
   void updateAllLifecyclePhases() override {}
   void paint(blink::WebCanvas* canvas, const blink::WebRect& rect) override;
   void updateGeometry(const blink::WebRect& window_rect,
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
index d491d600..f05bf0e 100644
--- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc
@@ -2936,8 +2936,8 @@
       case WebURLRequest::UseProtocolCachePolicy:  // normal load.
         document_state->set_load_type(DocumentState::LINK_LOAD_NORMAL);
         break;
-      case WebURLRequest::ReloadIgnoringCacheData:  // reload.
-      case WebURLRequest::ReloadBypassingCache:     // end-to-end reload.
+      case WebURLRequest::ValidatingCacheData:  // reload.
+      case WebURLRequest::BypassingCache:       // end-to-end reload.
         document_state->set_load_type(DocumentState::LINK_LOAD_RELOAD);
         break;
       case WebURLRequest::ReturnCacheDataElseLoad:  // allow stale data.
@@ -5254,7 +5254,7 @@
     // We cannot reload if we do not have any history state.  This happens, for
     // example, when recovering from a crash.
     is_reload = false;
-    cache_policy = WebURLRequest::ReloadIgnoringCacheData;
+    cache_policy = WebURLRequest::ValidatingCacheData;
   }
 
   // If the navigation is for "view source", the WebLocalFrame needs to be put
@@ -5307,7 +5307,7 @@
   if (is_reload) {
     bool ignore_cache = (common_params.navigation_type ==
                          FrameMsg_Navigate_Type::RELOAD_IGNORING_CACHE);
-    load_type = ignore_cache ? blink::WebFrameLoadType::ReloadFromOrigin
+    load_type = ignore_cache ? blink::WebFrameLoadType::ReloadBypassingCache
                              : blink::WebFrameLoadType::Reload;
 
     if (!browser_side_navigation) {
@@ -5682,7 +5682,7 @@
   if (net::DataURL::Parse(data_url, &mime_type, &charset, &data)) {
     const GURL base_url = params.base_url_for_data_url.is_empty() ?
         params.url : params.base_url_for_data_url;
-    bool replace = load_type == blink::WebFrameLoadType::ReloadFromOrigin ||
+    bool replace = load_type == blink::WebFrameLoadType::ReloadBypassingCache ||
                    load_type == blink::WebFrameLoadType::Reload;
 
     frame->loadData(
@@ -5905,9 +5905,9 @@
 
 media::MediaPermission* RenderFrameImpl::GetMediaPermission() {
   if (!media_permission_dispatcher_) {
-    media_permission_dispatcher_.reset(new MediaPermissionDispatcher(
-        base::Bind(&RenderFrameImpl::GetInterface<mojom::PermissionService>,
-                   base::Unretained(this))));
+    media_permission_dispatcher_.reset(new MediaPermissionDispatcher(base::Bind(
+        &RenderFrameImpl::GetInterface<blink::mojom::PermissionService>,
+        base::Unretained(this))));
   }
   return media_permission_dispatcher_.get();
 }
diff --git a/content/shell/browser/layout_test/layout_test_message_filter.cc b/content/shell/browser/layout_test/layout_test_message_filter.cc
index 27c821d..165c39d 100644
--- a/content/shell/browser/layout_test/layout_test_message_filter.cc
+++ b/content/shell/browser/layout_test/layout_test_message_filter.cc
@@ -137,10 +137,11 @@
       ->DeleteAllAsync(net::CookieStore::DeleteCallback());
 }
 
-void LayoutTestMessageFilter::OnSetPermission(const std::string& name,
-                                              mojom::PermissionStatus status,
-                                              const GURL& origin,
-                                              const GURL& embedding_origin) {
+void LayoutTestMessageFilter::OnSetPermission(
+    const std::string& name,
+    blink::mojom::PermissionStatus status,
+    const GURL& origin,
+    const GURL& embedding_origin) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
 
   content::PermissionType type;
diff --git a/content/shell/browser/layout_test/layout_test_message_filter.h b/content/shell/browser/layout_test/layout_test_message_filter.h
index 21d6ca3..1b77a9f 100644
--- a/content/shell/browser/layout_test/layout_test_message_filter.h
+++ b/content/shell/browser/layout_test/layout_test_message_filter.h
@@ -11,7 +11,7 @@
 #include "base/files/file_path.h"
 #include "base/macros.h"
 #include "content/public/browser/browser_message_filter.h"
-#include "content/public/common/permission_status.mojom.h"
+#include "third_party/WebKit/public/platform/modules/permissions/permission_status.mojom.h"
 
 class GURL;
 
@@ -62,7 +62,7 @@
   void OnAcceptAllCookies(bool accept);
   void OnDeleteAllCookies();
   void OnSetPermission(const std::string& name,
-                       mojom::PermissionStatus status,
+                       blink::mojom::PermissionStatus status,
                        const GURL& origin,
                        const GURL& embedding_origin);
   void OnResetPermissions();
diff --git a/content/shell/browser/layout_test/layout_test_notification_manager.cc b/content/shell/browser/layout_test/layout_test_notification_manager.cc
index 09a3473..1ddb3a4 100644
--- a/content/shell/browser/layout_test/layout_test_notification_manager.cc
+++ b/content/shell/browser/layout_test/layout_test_notification_manager.cc
@@ -24,13 +24,13 @@
 void OnEventDispatchComplete(PersistentNotificationStatus status) {}
 
 blink::WebNotificationPermission ToWebNotificationPermission(
-    mojom::PermissionStatus status) {
+    blink::mojom::PermissionStatus status) {
   switch (status) {
-    case mojom::PermissionStatus::GRANTED:
+    case blink::mojom::PermissionStatus::GRANTED:
       return blink::WebNotificationPermissionAllowed;
-    case mojom::PermissionStatus::DENIED:
+    case blink::mojom::PermissionStatus::DENIED:
       return blink::WebNotificationPermissionDenied;
-    case mojom::PermissionStatus::ASK:
+    case blink::mojom::PermissionStatus::ASK:
       return blink::WebNotificationPermissionDefault;
   }
 
diff --git a/content/shell/browser/layout_test/layout_test_permission_manager.cc b/content/shell/browser/layout_test/layout_test_permission_manager.cc
index 7b31f37b..beafee5 100644
--- a/content/shell/browser/layout_test/layout_test_permission_manager.cc
+++ b/content/shell/browser/layout_test/layout_test_permission_manager.cc
@@ -18,8 +18,8 @@
 
 struct LayoutTestPermissionManager::Subscription {
   PermissionDescription permission;
-  base::Callback<void(content::mojom::PermissionStatus)> callback;
-  mojom::PermissionStatus current_value;
+  base::Callback<void(blink::mojom::PermissionStatus)> callback;
+  blink::mojom::PermissionStatus current_value;
 };
 
 LayoutTestPermissionManager::PermissionDescription::PermissionDescription(
@@ -65,7 +65,7 @@
     PermissionType permission,
     RenderFrameHost* render_frame_host,
     const GURL& requesting_origin,
-    const base::Callback<void(mojom::PermissionStatus)>& callback) {
+    const base::Callback<void(blink::mojom::PermissionStatus)>& callback) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
 
   callback.Run(GetPermissionStatus(
@@ -79,11 +79,11 @@
     const std::vector<PermissionType>& permissions,
     content::RenderFrameHost* render_frame_host,
     const GURL& requesting_origin,
-    const base::Callback<void(const std::vector<mojom::PermissionStatus>&)>&
-        callback) {
+    const base::Callback<
+        void(const std::vector<blink::mojom::PermissionStatus>&)>& callback) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
 
-  std::vector<mojom::PermissionStatus> result(permissions.size());
+  std::vector<blink::mojom::PermissionStatus> result(permissions.size());
   const GURL& embedding_origin =
       WebContents::FromRenderFrameHost(render_frame_host)
           ->GetLastCommittedURL().GetOrigin();
@@ -115,7 +115,7 @@
   permissions_.erase(it);
 }
 
-mojom::PermissionStatus LayoutTestPermissionManager::GetPermissionStatus(
+blink::mojom::PermissionStatus LayoutTestPermissionManager::GetPermissionStatus(
     PermissionType permission,
     const GURL& requesting_origin,
     const GURL& embedding_origin) {
@@ -127,7 +127,7 @@
   auto it = permissions_.find(
       PermissionDescription(permission, requesting_origin, embedding_origin));
   if (it == permissions_.end())
-    return mojom::PermissionStatus::DENIED;
+    return blink::mojom::PermissionStatus::DENIED;
   return it->second;
 }
 
@@ -142,7 +142,7 @@
     PermissionType permission,
     const GURL& requesting_origin,
     const GURL& embedding_origin,
-    const base::Callback<void(mojom::PermissionStatus)>& callback) {
+    const base::Callback<void(blink::mojom::PermissionStatus)>& callback) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
 
   Subscription* subscription = new Subscription();
@@ -165,10 +165,11 @@
   subscriptions_.Remove(subscription_id);
 }
 
-void LayoutTestPermissionManager::SetPermission(PermissionType permission,
-                                                mojom::PermissionStatus status,
-                                                const GURL& origin,
-                                                const GURL& embedding_origin) {
+void LayoutTestPermissionManager::SetPermission(
+    PermissionType permission,
+    blink::mojom::PermissionStatus status,
+    const GURL& origin,
+    const GURL& embedding_origin) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
 
   PermissionDescription description(permission, origin, embedding_origin);
@@ -178,8 +179,8 @@
   auto it = permissions_.find(description);
   if (it == permissions_.end()) {
     permissions_.insert(
-        std::pair<PermissionDescription, mojom::PermissionStatus>(description,
-                                                                  status));
+        std::pair<PermissionDescription, blink::mojom::PermissionStatus>(
+            description, status));
   } else {
     it->second = status;
   }
@@ -196,7 +197,7 @@
 
 void LayoutTestPermissionManager::OnPermissionChanged(
     const PermissionDescription& permission,
-    mojom::PermissionStatus status) {
+    blink::mojom::PermissionStatus status) {
   std::list<base::Closure> callbacks;
 
   for (SubscriptionsMap::iterator iter(&subscriptions_);
diff --git a/content/shell/browser/layout_test/layout_test_permission_manager.h b/content/shell/browser/layout_test/layout_test_permission_manager.h
index 4d9ef41..07fae069 100644
--- a/content/shell/browser/layout_test/layout_test_permission_manager.h
+++ b/content/shell/browser/layout_test/layout_test_permission_manager.h
@@ -27,18 +27,20 @@
       PermissionType permission,
       RenderFrameHost* render_frame_host,
       const GURL& requesting_origin,
-      const base::Callback<void(mojom::PermissionStatus)>& callback) override;
+      const base::Callback<void(blink::mojom::PermissionStatus)>& callback)
+      override;
   int RequestPermissions(
       const std::vector<PermissionType>& permission,
       RenderFrameHost* render_frame_host,
       const GURL& requesting_origin,
-      const base::Callback<void(const std::vector<mojom::PermissionStatus>&)>&
-          callback) override;
+      const base::Callback<
+          void(const std::vector<blink::mojom::PermissionStatus>&)>& callback)
+      override;
   void CancelPermissionRequest(int request_id) override;
   void ResetPermission(PermissionType permission,
                        const GURL& requesting_origin,
                        const GURL& embedding_origin) override;
-  mojom::PermissionStatus GetPermissionStatus(
+  blink::mojom::PermissionStatus GetPermissionStatus(
       PermissionType permission,
       const GURL& requesting_origin,
       const GURL& embedding_origin) override;
@@ -49,11 +51,12 @@
       PermissionType permission,
       const GURL& requesting_origin,
       const GURL& embedding_origin,
-      const base::Callback<void(mojom::PermissionStatus)>& callback) override;
+      const base::Callback<void(blink::mojom::PermissionStatus)>& callback)
+      override;
   void UnsubscribePermissionStatusChange(int subscription_id) override;
 
   void SetPermission(PermissionType permission,
-                     mojom::PermissionStatus status,
+                     blink::mojom::PermissionStatus status,
                      const GURL& origin,
                      const GURL& embedding_origin);
   void ResetPermissions();
@@ -81,11 +84,11 @@
   struct Subscription;
   using SubscriptionsMap = IDMap<Subscription, IDMapOwnPointer>;
   using PermissionsMap = base::hash_map<PermissionDescription,
-                                        mojom::PermissionStatus,
+                                        blink::mojom::PermissionStatus,
                                         PermissionDescription::Hash>;
 
   void OnPermissionChanged(const PermissionDescription& permission,
-                           mojom::PermissionStatus status);
+                           blink::mojom::PermissionStatus status);
 
   // Mutex for permissions access. Unfortunately, the permissions can be
   // accessed from the IO thread because of Notifications' synchronous IPC.
diff --git a/content/shell/browser/layout_test/layout_test_push_messaging_service.cc b/content/shell/browser/layout_test/layout_test_push_messaging_service.cc
index 15f63ff..c191ffd59 100644
--- a/content/shell/browser/layout_test/layout_test_push_messaging_service.cc
+++ b/content/shell/browser/layout_test/layout_test_push_messaging_service.cc
@@ -39,13 +39,13 @@
               "The fake authentication key must be at least 12 bytes in size.");
 
 blink::WebPushPermissionStatus ToWebPushPermissionStatus(
-    mojom::PermissionStatus status) {
+    blink::mojom::PermissionStatus status) {
   switch (status) {
-    case mojom::PermissionStatus::GRANTED:
+    case blink::mojom::PermissionStatus::GRANTED:
       return blink::WebPushPermissionStatusGranted;
-    case mojom::PermissionStatus::DENIED:
+    case blink::mojom::PermissionStatus::DENIED:
       return blink::WebPushPermissionStatusDenied;
-    case mojom::PermissionStatus::ASK:
+    case blink::mojom::PermissionStatus::ASK:
       return blink::WebPushPermissionStatusPrompt;
   }
 
diff --git a/content/shell/browser/shell_permission_manager.cc b/content/shell/browser/shell_permission_manager.cc
index cd052f5..e5d70a6d 100644
--- a/content/shell/browser/shell_permission_manager.cc
+++ b/content/shell/browser/shell_permission_manager.cc
@@ -23,10 +23,10 @@
     PermissionType permission,
     RenderFrameHost* render_frame_host,
     const GURL& requesting_origin,
-    const base::Callback<void(mojom::PermissionStatus)>& callback) {
+    const base::Callback<void(blink::mojom::PermissionStatus)>& callback) {
   callback.Run(permission == PermissionType::GEOLOCATION
-                   ? mojom::PermissionStatus::GRANTED
-                   : mojom::PermissionStatus::DENIED);
+                   ? blink::mojom::PermissionStatus::GRANTED
+                   : blink::mojom::PermissionStatus::DENIED);
   return kNoPendingOperation;
 }
 
@@ -34,13 +34,13 @@
     const std::vector<PermissionType>& permissions,
     content::RenderFrameHost* render_frame_host,
     const GURL& requesting_origin,
-    const base::Callback<void(const std::vector<mojom::PermissionStatus>&)>&
-        callback) {
-  std::vector<mojom::PermissionStatus> result(permissions.size());
+    const base::Callback<
+        void(const std::vector<blink::mojom::PermissionStatus>&)>& callback) {
+  std::vector<blink::mojom::PermissionStatus> result(permissions.size());
   for (const auto& permission : permissions) {
     result.push_back(permission == PermissionType::GEOLOCATION
-                         ? mojom::PermissionStatus::GRANTED
-                         : mojom::PermissionStatus::DENIED);
+                         ? blink::mojom::PermissionStatus::GRANTED
+                         : blink::mojom::PermissionStatus::DENIED);
   }
   callback.Run(result);
   return kNoPendingOperation;
@@ -55,7 +55,7 @@
     const GURL& embedding_origin) {
 }
 
-mojom::PermissionStatus ShellPermissionManager::GetPermissionStatus(
+blink::mojom::PermissionStatus ShellPermissionManager::GetPermissionStatus(
     PermissionType permission,
     const GURL& requesting_origin,
     const GURL& embedding_origin) {
@@ -63,16 +63,16 @@
   // TODO(nsatragno): add a command line flag so that it's only granted for
   // tests.
   if (permission == PermissionType::BACKGROUND_SYNC)
-    return mojom::PermissionStatus::GRANTED;
+    return blink::mojom::PermissionStatus::GRANTED;
 
   base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
   if ((permission == PermissionType::AUDIO_CAPTURE ||
        permission == PermissionType::VIDEO_CAPTURE) &&
       command_line->HasSwitch(switches::kUseFakeDeviceForMediaStream) &&
       command_line->HasSwitch(switches::kUseFakeUIForMediaStream)) {
-    return mojom::PermissionStatus::GRANTED;
+    return blink::mojom::PermissionStatus::GRANTED;
   }
-  return mojom::PermissionStatus::DENIED;
+  return blink::mojom::PermissionStatus::DENIED;
 }
 
 void ShellPermissionManager::RegisterPermissionUsage(
@@ -85,7 +85,7 @@
     PermissionType permission,
     const GURL& requesting_origin,
     const GURL& embedding_origin,
-    const base::Callback<void(mojom::PermissionStatus)>& callback) {
+    const base::Callback<void(blink::mojom::PermissionStatus)>& callback) {
   return kNoPendingOperation;
 }
 
diff --git a/content/shell/browser/shell_permission_manager.h b/content/shell/browser/shell_permission_manager.h
index 79333afe..0d5a3e7f 100644
--- a/content/shell/browser/shell_permission_manager.h
+++ b/content/shell/browser/shell_permission_manager.h
@@ -21,18 +21,20 @@
       PermissionType permission,
       RenderFrameHost* render_frame_host,
       const GURL& requesting_origin,
-      const base::Callback<void(mojom::PermissionStatus)>& callback) override;
+      const base::Callback<void(blink::mojom::PermissionStatus)>& callback)
+      override;
   int RequestPermissions(
       const std::vector<PermissionType>& permission,
       RenderFrameHost* render_frame_host,
       const GURL& requesting_origin,
-      const base::Callback<void(const std::vector<mojom::PermissionStatus>&)>&
-          callback) override;
+      const base::Callback<
+          void(const std::vector<blink::mojom::PermissionStatus>&)>& callback)
+      override;
   void CancelPermissionRequest(int request_id) override;
   void ResetPermission(PermissionType permission,
                        const GURL& requesting_origin,
                        const GURL& embedding_origin) override;
-  mojom::PermissionStatus GetPermissionStatus(
+  blink::mojom::PermissionStatus GetPermissionStatus(
       PermissionType permission,
       const GURL& requesting_origin,
       const GURL& embedding_origin) override;
@@ -43,7 +45,8 @@
       PermissionType permission,
       const GURL& requesting_origin,
       const GURL& embedding_origin,
-      const base::Callback<void(mojom::PermissionStatus)>& callback) override;
+      const base::Callback<void(blink::mojom::PermissionStatus)>& callback)
+      override;
   void UnsubscribePermissionStatusChange(int subscription_id) override;
 
  private:
diff --git a/content/shell/common/layout_test/layout_test_messages.h b/content/shell/common/layout_test/layout_test_messages.h
index cb18817..1f420f1 100644
--- a/content/shell/common/layout_test/layout_test_messages.h
+++ b/content/shell/common/layout_test/layout_test_messages.h
@@ -6,17 +6,17 @@
 #include <string>
 #include <vector>
 
-#include "content/public/common/permission_status.mojom.h"
 #include "ipc/ipc_message_macros.h"
 #include "ipc/ipc_platform_file.h"
+#include "third_party/WebKit/public/platform/modules/permissions/permission_status.mojom.h"
 #include "url/gurl.h"
 #include "url/ipc/url_param_traits.h"
 
 #define IPC_MESSAGE_START LayoutTestMsgStart
 
-IPC_ENUM_TRAITS_MIN_MAX_VALUE(content::mojom::PermissionStatus,
-                              content::mojom::PermissionStatus::GRANTED,
-                              content::mojom::PermissionStatus::ASK)
+IPC_ENUM_TRAITS_MIN_MAX_VALUE(blink::mojom::PermissionStatus,
+                              blink::mojom::PermissionStatus::GRANTED,
+                              blink::mojom::PermissionStatus::ASK)
 
 IPC_SYNC_MESSAGE_ROUTED1_1(LayoutTestHostMsg_ReadFileToString,
                            base::FilePath /* local path */,
@@ -38,7 +38,7 @@
 IPC_MESSAGE_ROUTED0(LayoutTestHostMsg_DeleteAllCookies)
 IPC_MESSAGE_ROUTED4(LayoutTestHostMsg_SetPermission,
                     std::string /* name */,
-                    content::mojom::PermissionStatus /* status */,
+                    blink::mojom::PermissionStatus /* status */,
                     GURL /* origin */,
                     GURL /* embedding_origin */)
 IPC_MESSAGE_ROUTED0(LayoutTestHostMsg_ResetPermissions)
diff --git a/content/shell/renderer/layout_test/blink_test_runner.cc b/content/shell/renderer/layout_test/blink_test_runner.cc
index 7d85853b..067b017 100644
--- a/content/shell/renderer/layout_test/blink_test_runner.cc
+++ b/content/shell/renderer/layout_test/blink_test_runner.cc
@@ -674,16 +674,16 @@
                                     const std::string& value,
                                     const GURL& origin,
                                     const GURL& embedding_origin) {
-  content::mojom::PermissionStatus status;
+  blink::mojom::PermissionStatus status;
   if (value == "granted")
-    status = mojom::PermissionStatus::GRANTED;
+    status = blink::mojom::PermissionStatus::GRANTED;
   else if (value == "prompt")
-    status = mojom::PermissionStatus::ASK;
+    status = blink::mojom::PermissionStatus::ASK;
   else if (value == "denied")
-    status = mojom::PermissionStatus::DENIED;
+    status = blink::mojom::PermissionStatus::DENIED;
   else {
     NOTREACHED();
-    status = mojom::PermissionStatus::DENIED;
+    status = blink::mojom::PermissionStatus::DENIED;
   }
 
   Send(new LayoutTestHostMsg_SetPermission(
diff --git a/content/test/accessibility_browser_test_utils.cc b/content/test/accessibility_browser_test_utils.cc
index d44439b..4dc4c22 100644
--- a/content/test/accessibility_browser_test_utils.cc
+++ b/content/test/accessibility_browser_test_utils.cc
@@ -24,6 +24,7 @@
     : event_to_wait_for_(ui::AX_EVENT_NONE),
       loop_runner_(new MessageLoopRunner()),
       event_target_id_(0),
+      event_render_frame_host_(nullptr),
       weak_factory_(this) {
   WebContents* web_contents = shell->web_contents();
   frame_host_ = static_cast<RenderFrameHostImpl*>(
@@ -91,10 +92,13 @@
 }
 
 void AccessibilityNotificationWaiter::OnAccessibilityEvent(
-    ui::AXEvent event_type, int event_target_id) {
-   if (!IsAboutBlank() && (event_to_wait_for_ == ui::AX_EVENT_NONE ||
+    RenderFrameHostImpl* rfhi,
+    ui::AXEvent event_type,
+    int event_target_id) {
+  if (!IsAboutBlank() && (event_to_wait_for_ == ui::AX_EVENT_NONE ||
                           event_to_wait_for_ == event_type)) {
     event_target_id_ = event_target_id;
+    event_render_frame_host_ = rfhi;
     loop_runner_->Quit();
   }
 }
diff --git a/content/test/accessibility_browser_test_utils.h b/content/test/accessibility_browser_test_utils.h
index 34ffb15..1735958 100644
--- a/content/test/accessibility_browser_test_utils.h
+++ b/content/test/accessibility_browser_test_utils.h
@@ -47,11 +47,19 @@
 
   // After WaitForNotification returns, use this to retrieve the id of the
   // node that was the target of the event.
-  int event_target_id() { return event_target_id_; }
+  int event_target_id() const { return event_target_id_; }
+
+  // After WaitForNotification returns, use this to retrieve the
+  // RenderFrameHostImpl that was the target of the event.
+  RenderFrameHostImpl* event_render_frame_host() const {
+    return event_render_frame_host_;
+  }
 
  private:
   // Callback from RenderViewHostImpl.
-  void OnAccessibilityEvent(ui::AXEvent event, int event_target_id);
+  void OnAccessibilityEvent(content::RenderFrameHostImpl* rfhi,
+                            ui::AXEvent event,
+                            int event_target_id);
 
   // Helper function to determine if the accessibility tree in
   // GetAXTree() is about the page with the url "about:blank".
@@ -61,6 +69,7 @@
   ui::AXEvent event_to_wait_for_;
   scoped_refptr<MessageLoopRunner> loop_runner_;
   int event_target_id_;
+  RenderFrameHostImpl* event_render_frame_host_;
 
   base::WeakPtrFactory<AccessibilityNotificationWaiter> weak_factory_;
 
diff --git a/content/test/mock_permission_manager.cc b/content/test/mock_permission_manager.cc
index 7024cf4..09fb9358 100644
--- a/content/test/mock_permission_manager.cc
+++ b/content/test/mock_permission_manager.cc
@@ -4,7 +4,7 @@
 
 #include "content/test/mock_permission_manager.h"
 
-#include "content/public/common/permission_status.mojom.h"
+#include "third_party/WebKit/public/platform/modules/permissions/permission_status.mojom.h"
 
 namespace content {
 
@@ -16,7 +16,7 @@
     PermissionType permission,
     RenderFrameHost* render_frame_host,
     const GURL& requesting_origin,
-    const base::Callback<void(mojom::PermissionStatus)>& callback) {
+    const base::Callback<void(blink::mojom::PermissionStatus)>& callback) {
   return kNoPendingOperation;
 }
 
@@ -24,8 +24,8 @@
     const std::vector<PermissionType>& permission,
     RenderFrameHost* render_frame_host,
     const GURL& requesting_origin,
-    const base::Callback<void(const std::vector<mojom::PermissionStatus>&)>&
-        callback) {
+    const base::Callback<
+        void(const std::vector<blink::mojom::PermissionStatus>&)>& callback) {
   return kNoPendingOperation;
 }
 
@@ -33,7 +33,7 @@
     PermissionType permission,
     const GURL& requesting_origin,
     const GURL& embedding_origin,
-    const base::Callback<void(mojom::PermissionStatus)>& callback) {
+    const base::Callback<void(blink::mojom::PermissionStatus)>& callback) {
   // Return a fake subscription_id.
   return 0;
 }
diff --git a/content/test/mock_permission_manager.h b/content/test/mock_permission_manager.h
index c6f1904..d9151b9 100644
--- a/content/test/mock_permission_manager.h
+++ b/content/test/mock_permission_manager.h
@@ -24,20 +24,22 @@
 
   // PermissionManager:
   MOCK_METHOD3(GetPermissionStatus,
-               mojom::PermissionStatus(PermissionType permission,
-                                       const GURL& requesting_origin,
-                                       const GURL& embedding_origin));
+               blink::mojom::PermissionStatus(PermissionType permission,
+                                              const GURL& requesting_origin,
+                                              const GURL& embedding_origin));
   int RequestPermission(
       PermissionType permission,
       RenderFrameHost* render_frame_host,
       const GURL& requesting_origin,
-      const base::Callback<void(mojom::PermissionStatus)>& callback) override;
+      const base::Callback<void(blink::mojom::PermissionStatus)>& callback)
+      override;
   int RequestPermissions(
       const std::vector<PermissionType>& permission,
       RenderFrameHost* render_frame_host,
       const GURL& requesting_origin,
-      const base::Callback<void(const std::vector<mojom::PermissionStatus>&)>&
-          callback) override;
+      const base::Callback<
+          void(const std::vector<blink::mojom::PermissionStatus>&)>& callback)
+      override;
   void CancelPermissionRequest(int request_id) override {}
   void ResetPermission(PermissionType permission,
                        const GURL& requesting_origin,
@@ -49,7 +51,8 @@
       PermissionType permission,
       const GURL& requesting_origin,
       const GURL& embedding_origin,
-      const base::Callback<void(mojom::PermissionStatus)>& callback) override;
+      const base::Callback<void(blink::mojom::PermissionStatus)>& callback)
+      override;
   void UnsubscribePermissionStatusChange(int subscription_id) override {}
 
  private:
diff --git a/extensions/browser/api/cast_channel/cast_channel_api.cc b/extensions/browser/api/cast_channel/cast_channel_api.cc
index fbbddf9..809fdaf 100644
--- a/extensions/browser/api/cast_channel/cast_channel_api.cc
+++ b/extensions/browser/api/cast_channel/cast_channel_api.cc
@@ -247,8 +247,8 @@
 
 net::IPEndPoint* CastChannelOpenFunction::ParseConnectInfo(
     const ConnectInfo& connect_info) {
-  net::IPAddressNumber ip_address;
-  CHECK(net::ParseIPLiteralToNumber(connect_info.ip_address, &ip_address));
+  net::IPAddress ip_address;
+  CHECK(ip_address.AssignFromIPLiteral(connect_info.ip_address));
   return new net::IPEndPoint(ip_address,
                              static_cast<uint16_t>(connect_info.port));
 }
diff --git a/extensions/browser/api/display_source/wifi_display/wifi_display_session_service_impl.cc b/extensions/browser/api/display_source/wifi_display/wifi_display_session_service_impl.cc
index 0cad640..8143512f 100644
--- a/extensions/browser/api/display_source/wifi_display/wifi_display_session_service_impl.cc
+++ b/extensions/browser/api/display_source/wifi_display/wifi_display_session_service_impl.cc
@@ -67,10 +67,11 @@
   }
 
   const DisplaySourceSinkInfoList& sinks = delegate_->last_found_sinks();
-  auto found = std::find_if(
-      sinks.begin(), sinks.end(),
-      [sink_id](DisplaySourceSinkInfoPtr ptr) { return ptr->id == sink_id; });
-  if (found == sinks.end() || (*found)->state != SINK_STATE_DISCONNECTED) {
+  auto found = std::find_if(sinks.begin(), sinks.end(),
+                            [sink_id](const DisplaySourceSinkInfo& sink) {
+                              return sink.id == sink_id;
+                            });
+  if (found == sinks.end() || found->state != SINK_STATE_DISCONNECTED) {
     client_->OnConnectRequestHandled(false, kErrorSinkNotAvailable);
     return;
   }
@@ -84,7 +85,7 @@
                              weak_factory_.GetWeakPtr(), sink_id);
   delegate_->Connect(sink_id, auth_info, on_error);
   sink_id_ = sink_id;
-  sink_state_ = (*found)->state;
+  sink_state_ = found->state;
   DCHECK(sink_state_ == SINK_STATE_CONNECTING);
   client_->OnConnectRequestHandled(true, "");
 }
@@ -97,12 +98,13 @@
   }
 
   const DisplaySourceSinkInfoList& sinks = delegate_->last_found_sinks();
-  auto found = std::find_if(
-      sinks.begin(), sinks.end(),
-      [this](DisplaySourceSinkInfoPtr ptr) { return ptr->id == sink_id_; });
+  auto found = std::find_if(sinks.begin(), sinks.end(),
+                            [this](const DisplaySourceSinkInfo& sink) {
+                              return sink.id == sink_id_;
+                            });
   DCHECK(found != sinks.end());
-  DCHECK((*found)->state == SINK_STATE_CONNECTED ||
-         (*found)->state == SINK_STATE_CONNECTING);
+  DCHECK(found->state == SINK_STATE_CONNECTED ||
+         found->state == SINK_STATE_CONNECTING);
 
   auto on_error = base::Bind(&WiFiDisplaySessionServiceImpl::OnDisconnectFailed,
                              weak_factory_.GetWeakPtr(), sink_id_);
@@ -116,7 +118,7 @@
   }
   auto connection = delegate_->connection();
   DCHECK(connection);
-  DCHECK_EQ(sink_id_, connection->GetConnectedSink()->id);
+  DCHECK_EQ(sink_id_, connection->GetConnectedSink().id);
   connection->SendMessage(message);
 }
 
@@ -134,16 +136,17 @@
   // The initialized sink id means that the client should have
   // been initialized as well.
   DCHECK(client_);
-  auto found = std::find_if(
-      sinks.begin(), sinks.end(),
-      [this](DisplaySourceSinkInfoPtr ptr) { return ptr->id == sink_id_; });
+  auto found = std::find_if(sinks.begin(), sinks.end(),
+                            [this](const DisplaySourceSinkInfo& sink) {
+                              return sink.id == sink_id_;
+                            });
   if (found == sinks.end()) {
     client_->OnError(ERROR_TYPE_CONNECTION_ERROR, "The sink has disappeared");
     client_->OnTerminated();
     sink_id_ = DisplaySourceConnectionDelegate::kInvalidSinkId;
   }
 
-  SinkState actual_state = (*found)->state;
+  SinkState actual_state = found->state;
 
   if (actual_state == sink_state_)
     return;
diff --git a/extensions/test/DEPS b/extensions/test/DEPS
index 27ef4ea..b522b95d 100644
--- a/extensions/test/DEPS
+++ b/extensions/test/DEPS
@@ -1,5 +1,6 @@
 include_rules = [
   "+content/public",
   "+mojo/edk/embedder",
+  "+mojo/edk/test",
   "+ui/gl",
 ]
diff --git a/extensions/test/extensions_unittests_main.cc b/extensions/test/extensions_unittests_main.cc
index f0ea868..daa7385c 100644
--- a/extensions/test/extensions_unittests_main.cc
+++ b/extensions/test/extensions_unittests_main.cc
@@ -7,6 +7,7 @@
 #include "base/macros.h"
 #include "base/path_service.h"
 #include "base/test/launcher/unit_test_launcher.h"
+#include "base/test/test_io_thread.h"
 #include "content/public/common/content_client.h"
 #include "content/public/test/content_test_suite_base.h"
 #include "content/public/test/unittest_test_suite.h"
@@ -14,6 +15,7 @@
 #include "extensions/common/extension_paths.h"
 #include "extensions/test/test_extensions_client.h"
 #include "mojo/edk/embedder/embedder.h"
+#include "mojo/edk/test/scoped_ipc_support.h"
 #include "ui/base/resource/resource_bundle.h"
 #include "ui/gl/test/gl_surface_test_support.h"
 #include "url/url_util.h"
@@ -112,6 +114,9 @@
   content::UnitTestTestSuite test_suite(new ExtensionsTestSuite(argc, argv));
 
   mojo::edk::Init();
+  base::TestIOThread test_io_thread(base::TestIOThread::kAutoStart);
+  mojo::edk::test::ScopedIPCSupport ipc_support(test_io_thread.task_runner());
+
   return base::LaunchUnitTests(argc,
                                argv,
                                base::Bind(&content::UnitTestTestSuite::Run,
diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_impl.cc
index 1223cd8..3c7ee12e 100644
--- a/media/blink/webmediaplayer_impl.cc
+++ b/media/blink/webmediaplayer_impl.cc
@@ -56,7 +56,6 @@
 #include "third_party/WebKit/public/platform/WebSize.h"
 #include "third_party/WebKit/public/platform/WebString.h"
 #include "third_party/WebKit/public/platform/WebURL.h"
-#include "third_party/WebKit/public/web/WebDocument.h"
 #include "third_party/WebKit/public/web/WebFrame.h"
 #include "third_party/WebKit/public/web/WebLocalFrame.h"
 #include "third_party/WebKit/public/web/WebView.h"
@@ -296,7 +295,7 @@
   DCHECK(main_task_runner_->BelongsToCurrentThread());
 
   GURL gurl(url);
-  ReportMetrics(load_type, gurl, frame_->document().getSecurityOrigin());
+  ReportMetrics(load_type, gurl, frame_->getSecurityOrigin());
 
   // Set subresource URL for crash reporting.
   base::debug::SetCrashKeyValue("subresource_url", gurl.spec());
diff --git a/media/blink/webmediaplayer_util.cc b/media/blink/webmediaplayer_util.cc
index 3fe36a83..e88d1ae5 100644
--- a/media/blink/webmediaplayer_util.cc
+++ b/media/blink/webmediaplayer_util.cc
@@ -107,8 +107,6 @@
 
 }  // namespace
 
-// TODO(xhwang): Call this from WebMediaPlayerMS to report metrics for
-// MediaStream as well.
 void ReportMetrics(blink::WebMediaPlayer::LoadType load_type,
                    const GURL& url,
                    const blink::WebSecurityOrigin& security_origin) {
diff --git a/ppapi/tests/blink_deprecated_test_plugin.cc b/ppapi/tests/blink_deprecated_test_plugin.cc
index dccb6d9..7dcfd62c 100644
--- a/ppapi/tests/blink_deprecated_test_plugin.cc
+++ b/ppapi/tests/blink_deprecated_test_plugin.cc
@@ -338,6 +338,9 @@
     if (HasAttribute("testwindowopen"))
       return TestWindowOpen();
 
+    if (HasAttribute("initscript"))
+      ExecuteScript(attributes_["initscript"]);
+
     uint32_t event_classes = 0;
     if (HasAttribute("keydownscript"))
         event_classes |= PP_INPUTEVENT_CLASS_KEYBOARD;
diff --git a/remoting/host/security_key/remote_security_key_message_reader_unittest.cc b/remoting/host/security_key/remote_security_key_message_reader_unittest.cc
index 51e0752..0fa82c0e 100644
--- a/remoting/host/security_key/remote_security_key_message_reader_unittest.cc
+++ b/remoting/host/security_key/remote_security_key_message_reader_unittest.cc
@@ -33,9 +33,6 @@
   // be verified by tests.
   void OnMessage(scoped_ptr<SecurityKeyMessage> message);
 
-  // Used as a callback to signal completion.
-  void OperationComplete();
-
  protected:
   // testing::Test interface.
   void SetUp() override;
@@ -58,13 +55,12 @@
 
  private:
   base::MessageLoopForIO message_loop_;
-  scoped_ptr<base::RunLoop> run_loop_;
+  base::RunLoop run_loop_;
 
   DISALLOW_COPY_AND_ASSIGN(RemoteSecurityKeyMessageReaderTest);
 };
 
-RemoteSecurityKeyMessageReaderTest::RemoteSecurityKeyMessageReaderTest()
-    : run_loop_(new base::RunLoop()) {}
+RemoteSecurityKeyMessageReaderTest::RemoteSecurityKeyMessageReaderTest() {}
 
 RemoteSecurityKeyMessageReaderTest::~RemoteSecurityKeyMessageReaderTest() {}
 
@@ -74,26 +70,20 @@
 
   // base::Unretained is safe since no further tasks can run after
   // RunLoop::Run() returns.
-  reader_->Start(
-      base::Bind(&RemoteSecurityKeyMessageReaderTest::OnMessage,
-                 base::Unretained(this)),
-      base::Bind(&RemoteSecurityKeyMessageReaderTest::OperationComplete,
-                 base::Unretained(this)));
+  reader_->Start(base::Bind(&RemoteSecurityKeyMessageReaderTest::OnMessage,
+                            base::Unretained(this)),
+                 run_loop_.QuitClosure());
 }
 
 void RemoteSecurityKeyMessageReaderTest::Run() {
-  run_loop_->Run();
-  run_loop_.reset(new base::RunLoop());
+  // Close the write-end, so the reader doesn't block waiting for more data.
+  write_file_.Close();
+  run_loop_.Run();
 }
 
 void RemoteSecurityKeyMessageReaderTest::OnMessage(
     scoped_ptr<SecurityKeyMessage> message) {
   messages_received_.push_back(std::move(message));
-  OperationComplete();
-}
-
-void RemoteSecurityKeyMessageReaderTest::OperationComplete() {
-  run_loop_->Quit();
 }
 
 void RemoteSecurityKeyMessageReaderTest::WriteMessage(
@@ -153,7 +143,6 @@
 }
 
 TEST_F(RemoteSecurityKeyMessageReaderTest, EmptyFile) {
-  write_file_.Close();
   Run();
   ASSERT_EQ(0u, messages_received_.size());
 }
@@ -169,7 +158,6 @@
 TEST_F(RemoteSecurityKeyMessageReaderTest, ShortHeader) {
   // Write only 3 bytes - the message length header is supposed to be 4 bytes.
   WriteData("xxx", SecurityKeyMessage::kHeaderSizeBytes - 1);
-  write_file_.Close();
   Run();
   ASSERT_EQ(0u, messages_received_.size());
 }
@@ -184,7 +172,6 @@
 TEST_F(RemoteSecurityKeyMessageReaderTest, MissingControlCode) {
   uint32_t length = 1;
   WriteData(reinterpret_cast<char*>(&length), sizeof(length));
-  write_file_.Close();
   Run();
   ASSERT_EQ(0u, messages_received_.size());
 }
@@ -195,7 +182,6 @@
 
   char test_control_code = static_cast<char>(kTestMessageType);
   WriteData(&test_control_code, sizeof(test_control_code));
-  write_file_.Close();
   Run();
   ASSERT_EQ(0u, messages_received_.size());
 }
@@ -208,9 +194,9 @@
 
   for (auto& payload : payloads) {
     WriteMessage(kTestMessageType, payload);
-    Run();
   }
 
+  Run();
   ASSERT_EQ(payloads.size(), messages_received_.size());
 
   for (size_t i = 0; i < payloads.size(); i++) {
diff --git a/sandbox/win/BUILD.gn b/sandbox/win/BUILD.gn
index 21828ad..e1c296f 100644
--- a/sandbox/win/BUILD.gn
+++ b/sandbox/win/BUILD.gn
@@ -205,6 +205,7 @@
     "src/process_mitigations_test.cc",
     "src/process_policy_test.cc",
     "src/registry_policy_test.cc",
+    "src/restricted_token_test.cc",
     "src/sync_policy_test.cc",
     "src/sync_policy_test.h",
     "src/unload_dll_test.cc",
diff --git a/sandbox/win/sandbox_win.gypi b/sandbox/win/sandbox_win.gypi
index d90130af..62edaae 100644
--- a/sandbox/win/sandbox_win.gypi
+++ b/sandbox/win/sandbox_win.gypi
@@ -224,6 +224,7 @@
         'src/process_mitigations_test.cc',
         'src/process_policy_test.cc',
         'src/registry_policy_test.cc',
+        'src/restricted_token_test.cc',
         'src/sync_policy_test.cc',
         'src/sync_policy_test.h',
         'src/unload_dll_test.cc',
diff --git a/sandbox/win/src/acl.cc b/sandbox/win/src/acl.cc
index 324f86d4..f5de098 100644
--- a/sandbox/win/src/acl.cc
+++ b/sandbox/win/src/acl.cc
@@ -57,7 +57,10 @@
   return true;
 }
 
-bool AddSidToDefaultDacl(HANDLE token, const Sid& sid, ACCESS_MASK access) {
+bool AddSidToDefaultDacl(HANDLE token,
+                         const Sid& sid,
+                         ACCESS_MODE access_mode,
+                         ACCESS_MASK access) {
   if (token == NULL)
     return false;
 
@@ -66,7 +69,7 @@
     return false;
 
   ACL* new_dacl = NULL;
-  if (!AddSidToDacl(sid, default_dacl->DefaultDacl, GRANT_ACCESS, access,
+  if (!AddSidToDacl(sid, default_dacl->DefaultDacl, access_mode, access,
                     &new_dacl))
     return false;
 
@@ -79,6 +82,23 @@
   return (TRUE == ret);
 }
 
+bool RevokeLogonSidFromDefaultDacl(HANDLE token) {
+  DWORD size = sizeof(TOKEN_GROUPS) + SECURITY_MAX_SID_SIZE;
+  TOKEN_GROUPS* logon_sid = reinterpret_cast<TOKEN_GROUPS*>(malloc(size));
+
+  scoped_ptr<TOKEN_GROUPS, base::FreeDeleter> logon_sid_ptr(logon_sid);
+
+  if (!::GetTokenInformation(token, TokenLogonSid, logon_sid, size, &size))
+    return false;
+  if (logon_sid->GroupCount < 1) {
+    ::SetLastError(ERROR_INVALID_TOKEN);
+    return false;
+  }
+  return AddSidToDefaultDacl(token,
+                             reinterpret_cast<SID*>(logon_sid->Groups[0].Sid),
+                             REVOKE_ACCESS, 0);
+}
+
 bool AddUserSidToDefaultDacl(HANDLE token, ACCESS_MASK access) {
   DWORD size = sizeof(TOKEN_USER) + SECURITY_MAX_SID_SIZE;
   TOKEN_USER* token_user = reinterpret_cast<TOKEN_USER*>(malloc(size));
@@ -90,7 +110,7 @@
 
   return AddSidToDefaultDacl(token,
                              reinterpret_cast<SID*>(token_user->User.Sid),
-                             access);
+                             GRANT_ACCESS, access);
 }
 
 bool AddKnownSidToObject(HANDLE object, SE_OBJECT_TYPE object_type,
diff --git a/sandbox/win/src/acl.h b/sandbox/win/src/acl.h
index 46d227d..0749367 100644
--- a/sandbox/win/src/acl.h
+++ b/sandbox/win/src/acl.h
@@ -25,9 +25,15 @@
 bool AddSidToDacl(const Sid& sid, ACL* old_dacl, ACCESS_MODE access_mode,
                   ACCESS_MASK access, ACL** new_dacl);
 
-// Adds and ACE represented by |sid| and |access| to the default dacl present
-// in the token.
-bool AddSidToDefaultDacl(HANDLE token, const Sid& sid, ACCESS_MASK access);
+// Adds an ACE represented by |sid| and |access| with |access_mode| to the
+// default dacl present in the token.
+bool AddSidToDefaultDacl(HANDLE token,
+                         const Sid& sid,
+                         ACCESS_MODE access_mode,
+                         ACCESS_MASK access);
+
+// Revokes access to the logon SID for the default dacl present in the token.
+bool RevokeLogonSidFromDefaultDacl(HANDLE token);
 
 // Adds an ACE represented by the user sid and |access| to the default dacl
 // present in the token.
diff --git a/sandbox/win/src/restricted_token.cc b/sandbox/win/src/restricted_token.cc
index 300feaed..ea84d86 100644
--- a/sandbox/win/src/restricted_token.cc
+++ b/sandbox/win/src/restricted_token.cc
@@ -45,8 +45,8 @@
 
 RestrictedToken::RestrictedToken()
     : integrity_level_(INTEGRITY_LEVEL_LAST),
-      init_(false) {
-}
+      init_(false),
+      lockdown_default_dacl_(false) {}
 
 RestrictedToken::~RestrictedToken() {
 }
@@ -158,10 +158,19 @@
 
   base::win::ScopedHandle new_token(new_token_handle);
 
-  // Modify the default dacl on the token to contain Restricted and the user.
-  if (!AddSidToDefaultDacl(new_token.Get(), WinRestrictedCodeSid, GENERIC_ALL))
-    return ::GetLastError();
+  if (lockdown_default_dacl_) {
+    // Don't add Restricted sid and also remove logon sid access.
+    if (!RevokeLogonSidFromDefaultDacl(new_token.Get()))
+      return ::GetLastError();
+  } else {
+    // Modify the default dacl on the token to contain Restricted.
+    if (!AddSidToDefaultDacl(new_token.Get(), WinRestrictedCodeSid,
+                             GRANT_ACCESS, GENERIC_ALL)) {
+      return ::GetLastError();
+    }
+  }
 
+  // Add user to default dacl.
   if (!AddUserSidToDefaultDacl(new_token.Get(), GENERIC_ALL))
     return ::GetLastError();
 
@@ -422,4 +431,8 @@
   return ERROR_SUCCESS;
 }
 
+void RestrictedToken::SetLockdownDefaultDacl() {
+  lockdown_default_dacl_ = true;
+}
+
 }  // namespace sandbox
diff --git a/sandbox/win/src/restricted_token.h b/sandbox/win/src/restricted_token.h
index d302f86d..584cd3a 100644
--- a/sandbox/win/src/restricted_token.h
+++ b/sandbox/win/src/restricted_token.h
@@ -168,6 +168,10 @@
   // level cannot be higher than your current integrity level.
   DWORD SetIntegrityLevel(IntegrityLevel integrity_level);
 
+  // Set a flag which indicates the created token should have a locked down
+  // default DACL when created.
+  void SetLockdownDefaultDacl();
+
  private:
   // The list of restricting sids in the restricted token.
   std::vector<Sid> sids_to_restrict_;
@@ -181,6 +185,8 @@
   IntegrityLevel integrity_level_;
   // Tells if the object is initialized or not (if Init() has been called)
   bool init_;
+  // Lockdown the default DACL when creating new tokens.
+  bool lockdown_default_dacl_;
 
   DISALLOW_COPY_AND_ASSIGN(RestrictedToken);
 };
diff --git a/sandbox/win/src/restricted_token_test.cc b/sandbox/win/src/restricted_token_test.cc
new file mode 100644
index 0000000..d67648d
--- /dev/null
+++ b/sandbox/win/src/restricted_token_test.cc
@@ -0,0 +1,80 @@
+// Copyright 2016 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.
+
+// Integration tests for restricted tokens.
+
+#include <stddef.h>
+#include <string>
+
+#include "base/strings/stringprintf.h"
+#include "base/win/scoped_handle.h"
+#include "sandbox/win/src/sandbox.h"
+#include "sandbox/win/src/sandbox_factory.h"
+#include "sandbox/win/src/target_services.h"
+#include "sandbox/win/tests/common/controller.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace sandbox {
+
+namespace {
+
+int RunOpenProcessTest(bool unsandboxed,
+                       bool lockdown_dacl,
+                       DWORD access_mask) {
+  TestRunner runner(JOB_NONE, USER_RESTRICTED_SAME_ACCESS, USER_LOCKDOWN);
+  runner.GetPolicy()->SetDelayedIntegrityLevel(INTEGRITY_LEVEL_UNTRUSTED);
+  runner.GetPolicy()->SetIntegrityLevel(INTEGRITY_LEVEL_LOW);
+  if (lockdown_dacl)
+    runner.GetPolicy()->SetLockdownDefaultDacl();
+  runner.SetAsynchronous(true);
+  // This spins up a renderer level process, we don't care about the result.
+  runner.RunTest(L"IntegrationTestsTest_args 1");
+
+  TestRunner runner2(JOB_NONE, USER_RESTRICTED_SAME_ACCESS, USER_LIMITED);
+  runner2.GetPolicy()->SetDelayedIntegrityLevel(INTEGRITY_LEVEL_LOW);
+  runner2.GetPolicy()->SetIntegrityLevel(INTEGRITY_LEVEL_LOW);
+  runner2.SetUnsandboxed(unsandboxed);
+  return runner2.RunTest(
+      base::StringPrintf(L"RestrictedTokenTest_openprocess %d 0x%08X",
+                         runner.process_id(), access_mask)
+          .c_str());
+}
+
+}  // namespace
+
+// Opens a process based on a PID and access mask passed on the command line.
+// Returns SBOX_TEST_SUCCEEDED if process opened successfully.
+SBOX_TESTS_COMMAND int RestrictedTokenTest_openprocess(int argc,
+                                                       wchar_t** argv) {
+  if (argc < 2)
+    return SBOX_TEST_NOT_FOUND;
+  DWORD pid = _wtoi(argv[0]);
+  if (pid == 0)
+    return SBOX_TEST_NOT_FOUND;
+  DWORD desired_access = wcstoul(argv[1], nullptr, 0);
+  base::win::ScopedHandle process_handle(
+      ::OpenProcess(desired_access, FALSE, pid));
+  if (process_handle.IsValid())
+    return SBOX_TEST_SUCCEEDED;
+
+  return SBOX_TEST_DENIED;
+}
+
+TEST(RestrictedTokenTest, OpenLowPrivilegedProcess) {
+  // Test limited privilege to renderer open.
+  ASSERT_EQ(SBOX_TEST_SUCCEEDED,
+            RunOpenProcessTest(false, false, GENERIC_READ | GENERIC_WRITE));
+  // Test limited privilege to renderer open with lockdowned DACL.
+  ASSERT_EQ(SBOX_TEST_DENIED,
+            RunOpenProcessTest(false, true, GENERIC_READ | GENERIC_WRITE));
+  // Ensure we also can't get any access to the process.
+  ASSERT_EQ(SBOX_TEST_DENIED, RunOpenProcessTest(false, true, MAXIMUM_ALLOWED));
+  // Also check for explicit owner allowed WRITE_DAC right.
+  ASSERT_EQ(SBOX_TEST_DENIED, RunOpenProcessTest(false, true, WRITE_DAC));
+  // Ensure unsandboxed process can still open the renderer for all access.
+  ASSERT_EQ(SBOX_TEST_SUCCEEDED,
+            RunOpenProcessTest(true, true, PROCESS_ALL_ACCESS));
+}
+
+}  // namespace sandbox
diff --git a/sandbox/win/src/restricted_token_unittest.cc b/sandbox/win/src/restricted_token_unittest.cc
index b11948e..b0647dc 100644
--- a/sandbox/win/src/restricted_token_unittest.cc
+++ b/sandbox/win/src/restricted_token_unittest.cc
@@ -16,6 +16,52 @@
 
 namespace sandbox {
 
+namespace {
+
+void TestDefaultDalc(bool restricted_required) {
+  RestrictedToken token;
+  ASSERT_EQ(static_cast<DWORD>(ERROR_SUCCESS), token.Init(NULL));
+  if (!restricted_required)
+    token.SetLockdownDefaultDacl();
+
+  ASSERT_EQ(static_cast<DWORD>(ERROR_SUCCESS),
+            token.AddRestrictingSid(ATL::Sids::World().GetPSID()));
+
+  base::win::ScopedHandle handle;
+  ASSERT_EQ(static_cast<DWORD>(ERROR_SUCCESS),
+            token.GetRestrictedToken(&handle));
+
+  ATL::CAccessToken restricted_token;
+  restricted_token.Attach(handle.Take());
+
+  ATL::CDacl dacl;
+  ASSERT_TRUE(restricted_token.GetDefaultDacl(&dacl));
+
+  ATL::CSid logon_sid;
+  ASSERT_TRUE(restricted_token.GetLogonSid(&logon_sid));
+
+  bool restricted_found = false;
+  bool logon_sid_found = false;
+
+  unsigned int ace_count = dacl.GetAceCount();
+  for (unsigned int i = 0; i < ace_count; ++i) {
+    ATL::CSid sid;
+    ACCESS_MASK mask = 0;
+    dacl.GetAclEntry(i, &sid, &mask);
+    if (sid == ATL::Sids::RestrictedCode() && mask == GENERIC_ALL) {
+      restricted_found = true;
+    } else if (sid == logon_sid) {
+      logon_sid_found = true;
+    }
+  }
+
+  ASSERT_EQ(restricted_required, restricted_found);
+  if (!restricted_required)
+    ASSERT_FALSE(logon_sid_found);
+}
+
+}  // namespace
+
 // Tests the initializatioin with an invalid token handle.
 TEST(RestrictedTokenTest, InvalidHandle) {
   RestrictedToken token;
@@ -141,36 +187,13 @@
 
 // Verifies that the token created has "Restricted" in its default dacl.
 TEST(RestrictedTokenTest, DefaultDacl) {
-  RestrictedToken token;
-  ASSERT_EQ(static_cast<DWORD>(ERROR_SUCCESS), token.Init(NULL));
+  TestDefaultDalc(true);
+}
 
-  ASSERT_EQ(static_cast<DWORD>(ERROR_SUCCESS),
-            token.AddRestrictingSid(ATL::Sids::World().GetPSID()));
-
-  base::win::ScopedHandle handle;
-  ASSERT_EQ(static_cast<DWORD>(ERROR_SUCCESS),
-            token.GetRestrictedToken(&handle));
-
-  ATL::CAccessToken restricted_token;
-  restricted_token.Attach(handle.Take());
-
-  ATL::CDacl dacl;
-  ASSERT_TRUE(restricted_token.GetDefaultDacl(&dacl));
-
-  bool restricted_found = false;
-
-  unsigned int ace_count = dacl.GetAceCount();
-  for (unsigned int i = 0; i < ace_count ; ++i) {
-    ATL::CSid sid;
-    ACCESS_MASK mask = 0;
-    dacl.GetAclEntry(i, &sid, &mask);
-    if (sid == ATL::Sids::RestrictedCode() && mask == GENERIC_ALL) {
-      restricted_found = true;
-      break;
-    }
-  }
-
-  ASSERT_TRUE(restricted_found);
+// Verifies that the token created does not have "Restricted" in its default
+// dacl.
+TEST(RestrictedTokenTest, DefaultDaclLockdown) {
+  TestDefaultDalc(false);
 }
 
 // Tests the method "AddSidForDenyOnly".
diff --git a/sandbox/win/src/restricted_token_utils.cc b/sandbox/win/src/restricted_token_utils.cc
index 9a062233..9f1ebd8 100644
--- a/sandbox/win/src/restricted_token_utils.cc
+++ b/sandbox/win/src/restricted_token_utils.cc
@@ -21,9 +21,12 @@
 DWORD CreateRestrictedToken(TokenLevel security_level,
                             IntegrityLevel integrity_level,
                             TokenType token_type,
+                            bool lockdown_default_dacl,
                             base::win::ScopedHandle* token) {
   RestrictedToken restricted_token;
   restricted_token.Init(NULL);  // Initialized with the current process token
+  if (lockdown_default_dacl)
+    restricted_token.SetLockdownDefaultDacl();
 
   std::vector<base::string16> privilege_exceptions;
   std::vector<Sid> sid_exceptions;
diff --git a/sandbox/win/src/restricted_token_utils.h b/sandbox/win/src/restricted_token_utils.h
index b4e4fde..1e31290 100644
--- a/sandbox/win/src/restricted_token_utils.h
+++ b/sandbox/win/src/restricted_token_utils.h
@@ -30,12 +30,16 @@
 // |integrity level| on Vista only.
 // |token| is the output value containing the handle of the newly created
 // restricted token.
+// |lockdown_default_dacl| indicates the token's default DACL should be locked
+// down to restrict what other process can open kernel resources created while
+// running under the token.
 // If the function succeeds, the return value is ERROR_SUCCESS. If the
 // function fails, the return value is the win32 error code corresponding to
 // the error.
 DWORD CreateRestrictedToken(TokenLevel security_level,
                             IntegrityLevel integrity_level,
                             TokenType token_type,
+                            bool lockdown_default_dacl,
                             base::win::ScopedHandle* token);
 
 // Sets the integrity label on a object handle.
diff --git a/sandbox/win/src/sandbox_policy.h b/sandbox/win/src/sandbox_policy.h
index df76c36..edac55ec 100644
--- a/sandbox/win/src/sandbox_policy.h
+++ b/sandbox/win/src/sandbox_policy.h
@@ -254,6 +254,11 @@
   // Adds a handle that will be shared with the target process. Does not take
   // ownership of the handle.
   virtual void AddHandleToShare(HANDLE handle) = 0;
+
+  // Locks down the default DACL of the created lockdown and initial tokens
+  // to restrict what other processes are allowed to access a process' kernel
+  // resources.
+  virtual void SetLockdownDefaultDacl() = 0;
 };
 
 }  // namespace sandbox
diff --git a/sandbox/win/src/sandbox_policy_base.cc b/sandbox/win/src/sandbox_policy_base.cc
index 35440e5..a3af98d 100644
--- a/sandbox/win/src/sandbox_policy_base.cc
+++ b/sandbox/win/src/sandbox_policy_base.cc
@@ -136,7 +136,8 @@
       is_csrss_connected_(true),
       policy_maker_(NULL),
       policy_(NULL),
-      lowbox_sid_(NULL) {
+      lowbox_sid_(NULL),
+      lockdown_default_dacl_(false) {
   ::InitializeCriticalSection(&lock_);
   dispatcher_.reset(new TopLevelDispatcher(this));
 }
@@ -434,6 +435,10 @@
   handles_to_share_.push_back(handle);
 }
 
+void PolicyBase::SetLockdownDefaultDacl() {
+  lockdown_default_dacl_ = true;
+}
+
 const base::HandlesToInheritVector& PolicyBase::GetHandlesBeingShared() {
   return handles_to_share_;
 }
@@ -464,8 +469,9 @@
 
   // Create the 'naked' token. This will be the permanent token associated
   // with the process and therefore with any thread that is not impersonating.
-  DWORD result = CreateRestrictedToken(lockdown_level_,  integrity_level_,
-                                       PRIMARY, lockdown);
+  DWORD result =
+      CreateRestrictedToken(lockdown_level_, integrity_level_, PRIMARY,
+                            lockdown_default_dacl_, lockdown);
   if (ERROR_SUCCESS != result)
     return SBOX_ERROR_GENERIC;
 
@@ -532,8 +538,9 @@
   // Create the 'better' token. We use this token as the one that the main
   // thread uses when booting up the process. It should contain most of
   // what we need (before reaching main( ))
-  result = CreateRestrictedToken(initial_level_, integrity_level_,
-                                 IMPERSONATION, initial);
+  result =
+      CreateRestrictedToken(initial_level_, integrity_level_, IMPERSONATION,
+                            lockdown_default_dacl_, initial);
   if (ERROR_SUCCESS != result)
     return SBOX_ERROR_GENERIC;
 
diff --git a/sandbox/win/src/sandbox_policy_base.h b/sandbox/win/src/sandbox_policy_base.h
index 49fe97f..31f0d9c 100644
--- a/sandbox/win/src/sandbox_policy_base.h
+++ b/sandbox/win/src/sandbox_policy_base.h
@@ -71,6 +71,7 @@
   ResultCode AddKernelObjectToClose(const base::char16* handle_type,
                                     const base::char16* handle_name) override;
   void AddHandleToShare(HANDLE handle) override;
+  void SetLockdownDefaultDacl() override;
 
   // Creates a Job object with the level specified in a previous call to
   // SetJobLevel().
@@ -158,6 +159,7 @@
   PSID lowbox_sid_;
   base::win::ScopedHandle lowbox_directory_;
   scoped_ptr<Dispatcher> dispatcher_;
+  bool lockdown_default_dacl_;
 
   static HDESK alternate_desktop_handle_;
   static HWINSTA alternate_winstation_handle_;
diff --git a/storage/browser/blob/blob_async_builder_host.cc b/storage/browser/blob/blob_async_builder_host.cc
index ec9abd2..3091604 100644
--- a/storage/browser/blob/blob_async_builder_host.cc
+++ b/storage/browser/blob/blob_async_builder_host.cc
@@ -7,9 +7,11 @@
 #include <stddef.h>
 #include <stdint.h>
 
+#include <memory>
 #include <utility>
 
 #include "base/bind.h"
+#include "base/memory/ptr_util.h"
 #include "base/memory/shared_memory.h"
 #include "storage/browser/blob/blob_data_handle.h"
 #include "storage/browser/blob/blob_storage_context.h"
@@ -48,7 +50,7 @@
 BlobAsyncBuilderHost::BlobBuildingState::BlobBuildingState(
     const std::string& uuid,
     std::set<std::string> referenced_blob_uuids,
-    std::vector<scoped_ptr<BlobDataHandle>>* referenced_blob_handles)
+    std::vector<std::unique_ptr<BlobDataHandle>>* referenced_blob_handles)
     : data_builder(uuid),
       referenced_blob_uuids(referenced_blob_uuids),
       referenced_blob_handles(std::move(*referenced_blob_handles)) {}
@@ -70,9 +72,9 @@
   if (referenced_blob_uuids.find(uuid) != referenced_blob_uuids.end())
     return BlobTransportResult::BAD_IPC;
   context->CreatePendingBlob(uuid, content_type, content_disposition);
-  std::vector<scoped_ptr<BlobDataHandle>> handles;
+  std::vector<std::unique_ptr<BlobDataHandle>> handles;
   for (const std::string& referenced_uuid : referenced_blob_uuids) {
-    scoped_ptr<BlobDataHandle> handle =
+    std::unique_ptr<BlobDataHandle> handle =
         context->GetBlobDataFromUUID(referenced_uuid);
     if (!handle || handle->IsBroken()) {
       // We cancel the blob right away, and don't bother storing our state.
@@ -82,7 +84,7 @@
     }
     handles.emplace_back(std::move(handle));
   }
-  async_blob_map_[uuid] = make_scoped_ptr(
+  async_blob_map_[uuid] = base::WrapUnique(
       new BlobBuildingState(uuid, referenced_blob_uuids, &handles));
   return BlobTransportResult::DONE;
 }
@@ -284,7 +286,7 @@
 void BlobAsyncBuilderHost::CancelAll(BlobStorageContext* context) {
   DCHECK(context);
   // Some of our pending blobs may still be referenced elsewhere.
-  std::vector<scoped_ptr<BlobDataHandle>> referenced_pending_blobs;
+  std::vector<std::unique_ptr<BlobDataHandle>> referenced_pending_blobs;
   for (const auto& uuid_state_pair : async_blob_map_) {
     if (context->IsBeingBuilt(uuid_state_pair.first)) {
       referenced_pending_blobs.emplace_back(
@@ -295,7 +297,8 @@
   // our class (see ReferencedBlobFinished) if any blobs were waiting for others
   // to construct.
   async_blob_map_.clear();
-  for (const scoped_ptr<BlobDataHandle>& handle : referenced_pending_blobs) {
+  for (const std::unique_ptr<BlobDataHandle>& handle :
+       referenced_pending_blobs) {
     context->CancelPendingBlob(
         handle->uuid(), IPCBlobCreationCancelCode::SOURCE_DIED_IN_TRANSIT);
   }
@@ -321,9 +324,9 @@
     return BlobTransportResult::PENDING_RESPONSES;
   }
 
-  scoped_ptr<std::vector<BlobItemBytesRequest>> byte_requests(
+  std::unique_ptr<std::vector<BlobItemBytesRequest>> byte_requests(
       new std::vector<BlobItemBytesRequest>());
-  scoped_ptr<std::vector<base::SharedMemoryHandle>> shared_memory(
+  std::unique_ptr<std::vector<base::SharedMemoryHandle>> shared_memory(
       new std::vector<base::SharedMemoryHandle>());
 
   for (; state->next_request < num_requests; ++state->next_request) {
@@ -377,7 +380,7 @@
 
   state->request_memory_callback.Run(
       std::move(byte_requests), std::move(shared_memory),
-      make_scoped_ptr(new std::vector<base::File>()));
+      base::WrapUnique(new std::vector<base::File>()));
   return BlobTransportResult::PENDING_RESPONSES;
 }
 
diff --git a/storage/browser/blob/blob_async_builder_host.h b/storage/browser/blob/blob_async_builder_host.h
index 3b9b095..0b7fff5 100644
--- a/storage/browser/blob/blob_async_builder_host.h
+++ b/storage/browser/blob/blob_async_builder_host.h
@@ -9,6 +9,7 @@
 #include <stdint.h>
 
 #include <map>
+#include <memory>
 #include <set>
 #include <string>
 #include <vector>
@@ -17,7 +18,6 @@
 #include "base/files/file.h"
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/shared_memory_handle.h"
 #include "base/memory/weak_ptr.h"
 #include "storage/browser/blob/blob_async_transport_request_builder.h"
@@ -49,9 +49,9 @@
 class STORAGE_EXPORT BlobAsyncBuilderHost {
  public:
   using RequestMemoryCallback = base::Callback<void(
-      scoped_ptr<std::vector<storage::BlobItemBytesRequest>>,
-      scoped_ptr<std::vector<base::SharedMemoryHandle>>,
-      scoped_ptr<std::vector<base::File>>)>;
+      std::unique_ptr<std::vector<storage::BlobItemBytesRequest>>,
+      std::unique_ptr<std::vector<base::SharedMemoryHandle>>,
+      std::unique_ptr<std::vector<base::File>>)>;
   BlobAsyncBuilderHost();
   ~BlobAsyncBuilderHost();
 
@@ -134,7 +134,7 @@
     BlobBuildingState(
         const std::string& uuid,
         std::set<std::string> referenced_blob_uuids,
-        std::vector<scoped_ptr<BlobDataHandle>>* referenced_blob_handles);
+        std::vector<std::unique_ptr<BlobDataHandle>>* referenced_blob_handles);
     ~BlobBuildingState();
 
     BlobAsyncTransportRequestBuilder request_builder;
@@ -142,7 +142,7 @@
     std::vector<bool> request_received;
     size_t next_request = 0;
     size_t num_fulfilled_requests = 0;
-    scoped_ptr<base::SharedMemory> shared_memory_block;
+    std::unique_ptr<base::SharedMemory> shared_memory_block;
     // This is the number of requests that have been sent to populate the above
     // shared data. We won't ask for more data in shared memory until all
     // requests have been responded to.
@@ -157,7 +157,7 @@
     // We use these to make sure they stay alive while we create the new blob,
     // and to wait until any blobs that are not done building are fully
     // constructed.
-    std::vector<scoped_ptr<BlobDataHandle>> referenced_blob_handles;
+    std::vector<std::unique_ptr<BlobDataHandle>> referenced_blob_handles;
 
     // These are the number of blobs we're waiting for before we can start
     // building.
@@ -166,7 +166,8 @@
     BlobAsyncBuilderHost::RequestMemoryCallback request_memory_callback;
   };
 
-  typedef std::map<std::string, scoped_ptr<BlobBuildingState>> AsyncBlobMap;
+  typedef std::map<std::string, std::unique_ptr<BlobBuildingState>>
+      AsyncBlobMap;
 
   // This is the 'main loop' of our memory requests to the renderer.
   BlobTransportResult ContinueBlobMemoryRequests(const std::string& uuid,
diff --git a/storage/browser/blob/blob_async_transport_request_builder.h b/storage/browser/blob/blob_async_transport_request_builder.h
index 295f926..10dde5f 100644
--- a/storage/browser/blob/blob_async_transport_request_builder.h
+++ b/storage/browser/blob/blob_async_transport_request_builder.h
@@ -9,10 +9,10 @@
 #include <stdint.h>
 
 #include <map>
+#include <memory>
 #include <vector>
 
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "storage/browser/blob/blob_data_builder.h"
 #include "storage/browser/storage_browser_export.h"
 #include "storage/common/blob_storage/blob_item_bytes_request.h"
diff --git a/storage/browser/blob/blob_data_builder.cc b/storage/browser/blob/blob_data_builder.cc
index b699910..6b62106 100644
--- a/storage/browser/blob/blob_data_builder.cc
+++ b/storage/browser/blob/blob_data_builder.cc
@@ -6,6 +6,8 @@
 
 #include <stddef.h>
 #include <stdint.h>
+
+#include <memory>
 #include <utility>
 
 #include "base/numerics/safe_conversions.h"
@@ -56,14 +58,14 @@
 void BlobDataBuilder::AppendData(const char* data, size_t length) {
   if (!length)
     return;
-  scoped_ptr<DataElement> element(new DataElement());
+  std::unique_ptr<DataElement> element(new DataElement());
   element->SetToBytes(data, length);
   items_.push_back(new BlobDataItem(std::move(element)));
 }
 
 size_t BlobDataBuilder::AppendFutureData(size_t length) {
   CHECK_NE(length, 0u);
-  scoped_ptr<DataElement> element(new DataElement());
+  std::unique_ptr<DataElement> element(new DataElement());
   element->SetToBytesDescription(length);
   items_.push_back(new BlobDataItem(std::move(element)));
   return items_.size() - 1;
@@ -104,7 +106,7 @@
 
 size_t BlobDataBuilder::AppendFutureFile(uint64_t offset, uint64_t length) {
   CHECK_NE(length, 0ull);
-  scoped_ptr<DataElement> element(new DataElement());
+  std::unique_ptr<DataElement> element(new DataElement());
   element->SetToFilePathRange(base::FilePath::FromUTF8Unsafe(std::string(
                                   kAppendFutureFileTemporaryFileName)),
                               offset, length, base::Time());
@@ -129,7 +131,7 @@
   }
   uint64_t length = old_element->length();
   uint64_t offset = old_element->offset();
-  scoped_ptr<DataElement> element(new DataElement());
+  std::unique_ptr<DataElement> element(new DataElement());
   element->SetToFilePathRange(file_reference->path(), offset, length,
                               expected_modification_time);
   items_[index] = new BlobDataItem(std::move(element), file_reference);
@@ -140,7 +142,7 @@
                                  uint64_t offset,
                                  uint64_t length,
                                  const base::Time& expected_modification_time) {
-  scoped_ptr<DataElement> element(new DataElement());
+  std::unique_ptr<DataElement> element(new DataElement());
   element->SetToFilePathRange(file_path, offset, length,
                               expected_modification_time);
   items_.push_back(new BlobDataItem(std::move(element),
@@ -151,13 +153,13 @@
                                  uint64_t offset,
                                  uint64_t length) {
   DCHECK_GT(length, 0ul);
-  scoped_ptr<DataElement> element(new DataElement());
+  std::unique_ptr<DataElement> element(new DataElement());
   element->SetToBlobRange(uuid, offset, length);
   items_.push_back(new BlobDataItem(std::move(element)));
 }
 
 void BlobDataBuilder::AppendBlob(const std::string& uuid) {
-  scoped_ptr<DataElement> element(new DataElement());
+  std::unique_ptr<DataElement> element(new DataElement());
   element->SetToBlob(uuid);
   items_.push_back(new BlobDataItem(std::move(element)));
 }
@@ -168,7 +170,7 @@
     uint64_t length,
     const base::Time& expected_modification_time) {
   DCHECK_GT(length, 0ul);
-  scoped_ptr<DataElement> element(new DataElement());
+  std::unique_ptr<DataElement> element(new DataElement());
   element->SetToFileSystemUrlRange(url, offset, length,
                                    expected_modification_time);
   items_.push_back(new BlobDataItem(std::move(element)));
@@ -178,7 +180,7 @@
     const scoped_refptr<DataHandle>& data_handle,
     disk_cache::Entry* disk_cache_entry,
     int disk_cache_stream_index) {
-  scoped_ptr<DataElement> element(new DataElement());
+  std::unique_ptr<DataElement> element(new DataElement());
   element->SetToDiskCacheEntryRange(
       0U, disk_cache_entry->GetDataSize(disk_cache_stream_index));
   items_.push_back(new BlobDataItem(std::move(element), data_handle,
diff --git a/storage/browser/blob/blob_data_handle.cc b/storage/browser/blob/blob_data_handle.cc
index 4778f39..66dd77d 100644
--- a/storage/browser/blob/blob_data_handle.cc
+++ b/storage/browser/blob/blob_data_handle.cc
@@ -6,11 +6,14 @@
 
 #include <stdint.h>
 
+#include <memory>
+
 #include "base/bind.h"
 #include "base/callback.h"
 #include "base/location.h"
 #include "base/logging.h"
 #include "base/macros.h"
+#include "base/memory/ptr_util.h"
 #include "base/sequenced_task_runner.h"
 #include "base/task_runner.h"
 #include "base/time/time.h"
@@ -34,16 +37,16 @@
       : file_system_context_(file_system_context) {}
   ~FileStreamReaderProviderImpl() override {}
 
-  scoped_ptr<FileStreamReader> CreateForLocalFile(
+  std::unique_ptr<FileStreamReader> CreateForLocalFile(
       base::TaskRunner* task_runner,
       const base::FilePath& file_path,
       int64_t initial_offset,
       const base::Time& expected_modification_time) override {
-    return make_scoped_ptr(FileStreamReader::CreateForLocalFile(
+    return base::WrapUnique(FileStreamReader::CreateForLocalFile(
         task_runner, file_path, initial_offset, expected_modification_time));
   }
 
-  scoped_ptr<FileStreamReader> CreateFileStreamReader(
+  std::unique_ptr<FileStreamReader> CreateFileStreamReader(
       const GURL& filesystem_url,
       int64_t offset,
       int64_t max_bytes_to_read,
@@ -81,16 +84,16 @@
   context_->RunOnConstructionComplete(uuid_, done);
 }
 
-scoped_ptr<BlobReader> BlobDataHandle::CreateReader(
+std::unique_ptr<BlobReader> BlobDataHandle::CreateReader(
     FileSystemContext* file_system_context,
     base::SequencedTaskRunner* file_task_runner) const {
-  return scoped_ptr<BlobReader>(new BlobReader(
-      this, scoped_ptr<BlobReader::FileStreamReaderProvider>(
+  return std::unique_ptr<BlobReader>(new BlobReader(
+      this, std::unique_ptr<BlobReader::FileStreamReaderProvider>(
                 new FileStreamReaderProviderImpl(file_system_context)),
       file_task_runner));
 }
 
-scoped_ptr<BlobDataSnapshot>
+std::unique_ptr<BlobDataSnapshot>
 BlobDataHandle::BlobDataHandleShared::CreateSnapshot() const {
   if (!context_.get())
     return nullptr;
@@ -150,7 +153,7 @@
   shared_->RunOnConstructionComplete(done);
 }
 
-scoped_ptr<BlobDataSnapshot> BlobDataHandle::CreateSnapshot() const {
+std::unique_ptr<BlobDataSnapshot> BlobDataHandle::CreateSnapshot() const {
   DCHECK(io_task_runner_->RunsTasksOnCurrentThread());
   return shared_->CreateSnapshot();
 }
diff --git a/storage/browser/blob/blob_data_handle.h b/storage/browser/blob/blob_data_handle.h
index b60cf823d2..86e9b00 100644
--- a/storage/browser/blob/blob_data_handle.h
+++ b/storage/browser/blob/blob_data_handle.h
@@ -5,12 +5,12 @@
 #ifndef STORAGE_BROWSER_BLOB_BLOB_DATA_HANDLE_H_
 #define STORAGE_BROWSER_BLOB_BLOB_DATA_HANDLE_H_
 
+#include <memory>
 #include <string>
 
 #include "base/callback_forward.h"
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "base/supports_user_data.h"
 #include "storage/browser/storage_browser_export.h"
@@ -61,7 +61,7 @@
   // A BlobReader is used to read the data from the blob.  This object is
   // intended to be transient and should not be stored for any extended period
   // of time.
-  scoped_ptr<BlobReader> CreateReader(
+  std::unique_ptr<BlobReader> CreateReader(
       FileSystemContext* file_system_context,
       base::SequencedTaskRunner* file_task_runner) const;
 
@@ -77,7 +77,7 @@
   // Please do not call this, and use CreateReader instead. It appropriately
   // waits until the blob is built before having a size (see CalculateSize).
   // TODO(dmurph): Make this protected, where only the BlobReader can call it.
-  scoped_ptr<BlobDataSnapshot> CreateSnapshot() const;
+  std::unique_ptr<BlobDataSnapshot> CreateSnapshot() const;
 
  private:
   // Internal class whose destructor is guarenteed to be called on the IO
@@ -92,7 +92,7 @@
 
     void RunOnConstructionComplete(const base::Callback<void(bool)>& done);
 
-    scoped_ptr<BlobDataSnapshot> CreateSnapshot() const;
+    std::unique_ptr<BlobDataSnapshot> CreateSnapshot() const;
 
    private:
     friend class base::DeleteHelper<BlobDataHandleShared>;
diff --git a/storage/browser/blob/blob_data_item.cc b/storage/browser/blob/blob_data_item.cc
index 70495ed..0e44427 100644
--- a/storage/browser/blob/blob_data_item.cc
+++ b/storage/browser/blob/blob_data_item.cc
@@ -4,6 +4,7 @@
 
 #include "storage/browser/blob/blob_data_item.h"
 
+#include <memory>
 #include <utility>
 
 namespace storage {
@@ -11,19 +12,19 @@
 BlobDataItem::DataHandle::~DataHandle() {
 }
 
-BlobDataItem::BlobDataItem(scoped_ptr<DataElement> item)
+BlobDataItem::BlobDataItem(std::unique_ptr<DataElement> item)
     : item_(std::move(item)),
       disk_cache_entry_(nullptr),
       disk_cache_stream_index_(-1) {}
 
-BlobDataItem::BlobDataItem(scoped_ptr<DataElement> item,
+BlobDataItem::BlobDataItem(std::unique_ptr<DataElement> item,
                            const scoped_refptr<DataHandle>& data_handle)
     : item_(std::move(item)),
       data_handle_(data_handle),
       disk_cache_entry_(nullptr),
       disk_cache_stream_index_(-1) {}
 
-BlobDataItem::BlobDataItem(scoped_ptr<DataElement> item,
+BlobDataItem::BlobDataItem(std::unique_ptr<DataElement> item,
                            const scoped_refptr<DataHandle>& data_handle,
                            disk_cache::Entry* entry,
                            int disk_cache_stream_index)
diff --git a/storage/browser/blob/blob_data_item.h b/storage/browser/blob/blob_data_item.h
index c0495c3..6212b7c5 100644
--- a/storage/browser/blob/blob_data_item.h
+++ b/storage/browser/blob/blob_data_item.h
@@ -7,6 +7,7 @@
 
 #include <stdint.h>
 
+#include <memory>
 #include <ostream>
 #include <string>
 
@@ -65,16 +66,16 @@
   friend class base::RefCounted<BlobDataItem>;
   friend STORAGE_EXPORT void PrintTo(const BlobDataItem& x, ::std::ostream* os);
 
-  explicit BlobDataItem(scoped_ptr<DataElement> item);
-  BlobDataItem(scoped_ptr<DataElement> item,
+  explicit BlobDataItem(std::unique_ptr<DataElement> item);
+  BlobDataItem(std::unique_ptr<DataElement> item,
                const scoped_refptr<DataHandle>& data_handle);
-  BlobDataItem(scoped_ptr<DataElement> item,
+  BlobDataItem(std::unique_ptr<DataElement> item,
                const scoped_refptr<DataHandle>& data_handle,
                disk_cache::Entry* entry,
                int disk_cache_stream_index_);
   virtual ~BlobDataItem();
 
-  scoped_ptr<DataElement> item_;
+  std::unique_ptr<DataElement> item_;
   scoped_refptr<DataHandle> data_handle_;
 
   // This naked pointer is safe because the scope is protected by the DataHandle
diff --git a/storage/browser/blob/blob_reader.cc b/storage/browser/blob/blob_reader.cc
index 0ac6622..9ac92c0 100644
--- a/storage/browser/blob/blob_reader.cc
+++ b/storage/browser/blob/blob_reader.cc
@@ -6,8 +6,10 @@
 
 #include <stddef.h>
 #include <stdint.h>
+
 #include <algorithm>
 #include <limits>
+#include <memory>
 #include <utility>
 
 #include "base/bind.h"
@@ -43,7 +45,7 @@
 
 BlobReader::BlobReader(
     const BlobDataHandle* blob_handle,
-    scoped_ptr<FileStreamReaderProvider> file_stream_provider,
+    std::unique_ptr<FileStreamReaderProvider> file_stream_provider,
     base::SequencedTaskRunner* file_task_runner)
     : file_stream_provider_(std::move(file_stream_provider)),
       file_task_runner_(file_task_runner),
@@ -472,7 +474,8 @@
 }
 
 void BlobReader::DeleteCurrentFileReader() {
-  SetFileReaderAtIndex(current_item_index_, scoped_ptr<FileStreamReader>());
+  SetFileReaderAtIndex(current_item_index_,
+                       std::unique_ptr<FileStreamReader>());
 }
 
 BlobReader::Status BlobReader::ReadDiskCacheEntryItem(const BlobDataItem& item,
@@ -547,7 +550,7 @@
     DCHECK(it->second);
     return it->second;
   }
-  scoped_ptr<FileStreamReader> reader = CreateFileStreamReader(item, 0);
+  std::unique_ptr<FileStreamReader> reader = CreateFileStreamReader(item, 0);
   FileStreamReader* ret_value = reader.get();
   if (!ret_value)
     return nullptr;
@@ -555,7 +558,7 @@
   return ret_value;
 }
 
-scoped_ptr<FileStreamReader> BlobReader::CreateFileStreamReader(
+std::unique_ptr<FileStreamReader> BlobReader::CreateFileStreamReader(
     const BlobDataItem& item,
     uint64_t additional_offset) {
   DCHECK(IsFileType(item.type()));
@@ -584,8 +587,9 @@
   return nullptr;
 }
 
-void BlobReader::SetFileReaderAtIndex(size_t index,
-                                      scoped_ptr<FileStreamReader> reader) {
+void BlobReader::SetFileReaderAtIndex(
+    size_t index,
+    std::unique_ptr<FileStreamReader> reader) {
   auto found = index_to_reader_.find(current_item_index_);
   if (found != index_to_reader_.end()) {
     if (found->second) {
diff --git a/storage/browser/blob/blob_reader.h b/storage/browser/blob/blob_reader.h
index 4ddd738..f2f81d8 100644
--- a/storage/browser/blob/blob_reader.h
+++ b/storage/browser/blob/blob_reader.h
@@ -7,12 +7,13 @@
 
 #include <stddef.h>
 #include <stdint.h>
+
 #include <map>
+#include <memory>
 #include <vector>
 
 #include "base/gtest_prod_util.h"
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "net/base/completion_callback.h"
 #include "storage/browser/storage_browser_export.h"
@@ -50,13 +51,13 @@
    public:
     virtual ~FileStreamReaderProvider();
 
-    virtual scoped_ptr<FileStreamReader> CreateForLocalFile(
+    virtual std::unique_ptr<FileStreamReader> CreateForLocalFile(
         base::TaskRunner* task_runner,
         const base::FilePath& file_path,
         int64_t initial_offset,
         const base::Time& expected_modification_time) = 0;
 
-    virtual scoped_ptr<FileStreamReader> CreateFileStreamReader(
+    virtual std::unique_ptr<FileStreamReader> CreateFileStreamReader(
         const GURL& filesystem_url,
         int64_t offset,
         int64_t max_bytes_to_read,
@@ -121,7 +122,7 @@
   FRIEND_TEST_ALL_PREFIXES(BlobReaderTest, ReadFromIncompleteBlob);
 
   BlobReader(const BlobDataHandle* blob_handle,
-             scoped_ptr<FileStreamReaderProvider> file_stream_provider,
+             std::unique_ptr<FileStreamReaderProvider> file_stream_provider,
              base::SequencedTaskRunner* file_task_runner);
 
   bool total_size_calculated() const { return total_size_calculated_; }
@@ -163,15 +164,16 @@
   // If the item at |index| is not of file this returns NULL.
   FileStreamReader* GetOrCreateFileReaderAtIndex(size_t index);
   // If the reader is null, then this basically performs a delete operation.
-  void SetFileReaderAtIndex(size_t index, scoped_ptr<FileStreamReader> reader);
+  void SetFileReaderAtIndex(size_t index,
+                            std::unique_ptr<FileStreamReader> reader);
   // Creates a FileStreamReader for the item with additional_offset.
-  scoped_ptr<FileStreamReader> CreateFileStreamReader(
+  std::unique_ptr<FileStreamReader> CreateFileStreamReader(
       const BlobDataItem& item,
       uint64_t additional_offset);
 
-  scoped_ptr<BlobDataHandle> blob_handle_;
-  scoped_ptr<BlobDataSnapshot> blob_data_;
-  scoped_ptr<FileStreamReaderProvider> file_stream_provider_;
+  std::unique_ptr<BlobDataHandle> blob_handle_;
+  std::unique_ptr<BlobDataSnapshot> blob_data_;
+  std::unique_ptr<FileStreamReaderProvider> file_stream_provider_;
   scoped_refptr<base::SequencedTaskRunner> file_task_runner_;
 
   int net_error_;
diff --git a/storage/browser/blob/blob_storage_context.cc b/storage/browser/blob/blob_storage_context.cc
index d3c8f02e..0e852a6 100644
--- a/storage/browser/blob/blob_storage_context.cc
+++ b/storage/browser/blob/blob_storage_context.cc
@@ -6,15 +6,17 @@
 
 #include <stddef.h>
 #include <stdint.h>
+
 #include <algorithm>
 #include <limits>
+#include <memory>
 #include <utility>
 
 #include "base/bind.h"
 #include "base/callback.h"
 #include "base/location.h"
 #include "base/logging.h"
-#include "base/memory/scoped_ptr.h"
+#include "base/memory/ptr_util.h"
 #include "base/message_loop/message_loop.h"
 #include "base/metrics/histogram.h"
 #include "base/thread_task_runner_handle.h"
@@ -35,42 +37,42 @@
 BlobStorageContext::~BlobStorageContext() {
 }
 
-scoped_ptr<BlobDataHandle> BlobStorageContext::GetBlobDataFromUUID(
+std::unique_ptr<BlobDataHandle> BlobStorageContext::GetBlobDataFromUUID(
     const std::string& uuid) {
   BlobRegistryEntry* entry = registry_.GetEntry(uuid);
   if (!entry) {
     return nullptr;
   }
-  return make_scoped_ptr(
+  return base::WrapUnique(
       new BlobDataHandle(uuid, entry->content_type, entry->content_disposition,
                          this, base::ThreadTaskRunnerHandle::Get().get()));
 }
 
-scoped_ptr<BlobDataHandle> BlobStorageContext::GetBlobDataFromPublicURL(
+std::unique_ptr<BlobDataHandle> BlobStorageContext::GetBlobDataFromPublicURL(
     const GURL& url) {
   std::string uuid;
   BlobRegistryEntry* entry = registry_.GetEntryFromURL(url, &uuid);
   if (!entry) {
     return nullptr;
   }
-  return make_scoped_ptr(
+  return base::WrapUnique(
       new BlobDataHandle(uuid, entry->content_type, entry->content_disposition,
                          this, base::ThreadTaskRunnerHandle::Get().get()));
 }
 
-scoped_ptr<BlobDataHandle> BlobStorageContext::AddFinishedBlob(
+std::unique_ptr<BlobDataHandle> BlobStorageContext::AddFinishedBlob(
     const BlobDataBuilder& external_builder) {
   TRACE_EVENT0("Blob", "Context::AddFinishedBlob");
   CreatePendingBlob(external_builder.uuid(), external_builder.content_type_,
                     external_builder.content_disposition_);
   CompletePendingBlob(external_builder);
-  scoped_ptr<BlobDataHandle> handle =
+  std::unique_ptr<BlobDataHandle> handle =
       GetBlobDataFromUUID(external_builder.uuid_);
   DecrementBlobRefCount(external_builder.uuid_);
   return handle;
 }
 
-scoped_ptr<BlobDataHandle> BlobStorageContext::AddFinishedBlob(
+std::unique_ptr<BlobDataHandle> BlobStorageContext::AddFinishedBlob(
     const BlobDataBuilder* builder) {
   DCHECK(builder);
   return AddFinishedBlob(*builder);
@@ -196,16 +198,16 @@
   }
 }
 
-scoped_ptr<BlobDataSnapshot> BlobStorageContext::CreateSnapshot(
+std::unique_ptr<BlobDataSnapshot> BlobStorageContext::CreateSnapshot(
     const std::string& uuid) {
-  scoped_ptr<BlobDataSnapshot> result;
+  std::unique_ptr<BlobDataSnapshot> result;
   BlobRegistryEntry* entry = registry_.GetEntry(uuid);
   if (entry->state != BlobState::COMPLETE) {
     return result;
   }
 
   const InternalBlobData& data = *entry->data;
-  scoped_ptr<BlobDataSnapshot> snapshot(new BlobDataSnapshot(
+  std::unique_ptr<BlobDataSnapshot> snapshot(new BlobDataSnapshot(
       uuid, entry->content_type, entry->content_disposition));
   snapshot->items_.reserve(data.items().size());
   for (const auto& shareable_item : data.items()) {
@@ -317,7 +319,7 @@
       UMA_HISTOGRAM_COUNTS("Storage.BlobItemSize.Blob",
                            (length - offset) / 1024);
       // We grab the handle to ensure it stays around while we copy it.
-      scoped_ptr<BlobDataHandle> src =
+      std::unique_ptr<BlobDataHandle> src =
           GetBlobDataFromUUID(data_element.blob_uuid());
       if (!src || src->IsBroken() || src->IsBeingBuilt()) {
         error = true;
@@ -398,7 +400,7 @@
           return false;
         }
         DCHECK(!item.offset());
-        scoped_ptr<DataElement> element(new DataElement());
+        std::unique_ptr<DataElement> element(new DataElement());
         element->SetToBytes(item.bytes() + offset,
                             static_cast<int64_t>(new_length));
         memory_usage_ += new_length;
@@ -410,7 +412,7 @@
             << "We cannot use a section of a file with an unknown length";
         UMA_HISTOGRAM_COUNTS("Storage.BlobItemSize.BlobSlice.File",
                              new_length / 1024);
-        scoped_ptr<DataElement> element(new DataElement());
+        std::unique_ptr<DataElement> element(new DataElement());
         element->SetToFilePathRange(item.path(), item.offset() + offset,
                                     new_length,
                                     item.expected_modification_time());
@@ -421,7 +423,7 @@
       case DataElement::TYPE_FILE_FILESYSTEM: {
         UMA_HISTOGRAM_COUNTS("Storage.BlobItemSize.BlobSlice.FileSystem",
                              new_length / 1024);
-        scoped_ptr<DataElement> element(new DataElement());
+        std::unique_ptr<DataElement> element(new DataElement());
         element->SetToFileSystemUrlRange(item.filesystem_url(),
                                          item.offset() + offset, new_length,
                                          item.expected_modification_time());
@@ -429,7 +431,7 @@
             target_blob_uuid, new BlobDataItem(std::move(element))));
       } break;
       case DataElement::TYPE_DISK_CACHE_ENTRY: {
-        scoped_ptr<DataElement> element(new DataElement());
+        std::unique_ptr<DataElement> element(new DataElement());
         element->SetToDiskCacheEntryRange(item.offset() + offset,
                                           new_length);
         target_blob_builder->AppendSharedBlobItem(new ShareableBlobDataItem(
diff --git a/storage/browser/blob/blob_storage_context.h b/storage/browser/blob/blob_storage_context.h
index d72a7cba..86cdab8 100644
--- a/storage/browser/blob/blob_storage_context.h
+++ b/storage/browser/blob/blob_storage_context.h
@@ -9,6 +9,7 @@
 #include <stdint.h>
 
 #include <map>
+#include <memory>
 #include <string>
 #include <vector>
 
@@ -53,8 +54,8 @@
   BlobStorageContext();
   ~BlobStorageContext();
 
-  scoped_ptr<BlobDataHandle> GetBlobDataFromUUID(const std::string& uuid);
-  scoped_ptr<BlobDataHandle> GetBlobDataFromPublicURL(const GURL& url);
+  std::unique_ptr<BlobDataHandle> GetBlobDataFromUUID(const std::string& uuid);
+  std::unique_ptr<BlobDataHandle> GetBlobDataFromPublicURL(const GURL& url);
 
   // Useful for coining blobs from within the browser process. If the
   // blob cannot be added due to memory consumption, returns NULL.
@@ -63,10 +64,12 @@
   // To cleanly use a builder multiple times, please call Clone() on the
   // builder, or even better for memory savings, clear the builder and append
   // the previously constructed blob.
-  scoped_ptr<BlobDataHandle> AddFinishedBlob(const BlobDataBuilder& builder);
+  std::unique_ptr<BlobDataHandle> AddFinishedBlob(
+      const BlobDataBuilder& builder);
 
   // Deprecated, use const ref version above.
-  scoped_ptr<BlobDataHandle> AddFinishedBlob(const BlobDataBuilder* builder);
+  std::unique_ptr<BlobDataHandle> AddFinishedBlob(
+      const BlobDataBuilder* builder);
 
   // Useful for coining blob urls from within the browser process.
   bool RegisterPublicBlobURL(const GURL& url, const std::string& uuid);
@@ -118,7 +121,7 @@
   // This will return an empty snapshot until the blob is complete.
   // TODO(dmurph): After we make the snapshot method in BlobHandle private, then
   // make this DCHECK on the blob not being complete.
-  scoped_ptr<BlobDataSnapshot> CreateSnapshot(const std::string& uuid);
+  std::unique_ptr<BlobDataSnapshot> CreateSnapshot(const std::string& uuid);
   bool IsBroken(const std::string& uuid) const;
   bool IsBeingBuilt(const std::string& uuid) const;
   // Runs |done| when construction completes, with true if it was successful.
diff --git a/storage/browser/blob/blob_storage_registry.cc b/storage/browser/blob/blob_storage_registry.cc
index 56c0482..a0f03b2 100644
--- a/storage/browser/blob/blob_storage_registry.cc
+++ b/storage/browser/blob/blob_storage_registry.cc
@@ -6,6 +6,8 @@
 
 #include <stddef.h>
 
+#include <memory>
+
 #include "base/bind.h"
 #include "base/callback.h"
 #include "base/location.h"
@@ -62,7 +64,7 @@
     const std::string& content_type,
     const std::string& content_disposition) {
   DCHECK(!ContainsKey(blob_map_, uuid));
-  scoped_ptr<Entry> entry(new Entry(1, BlobState::PENDING));
+  std::unique_ptr<Entry> entry(new Entry(1, BlobState::PENDING));
   entry->content_type = content_type;
   entry->content_disposition = content_disposition;
   Entry* entry_ptr = entry.get();
diff --git a/storage/browser/blob/blob_storage_registry.h b/storage/browser/blob/blob_storage_registry.h
index 8805671..3b2db9b 100644
--- a/storage/browser/blob/blob_storage_registry.h
+++ b/storage/browser/blob/blob_storage_registry.h
@@ -8,13 +8,13 @@
 #include <stddef.h>
 
 #include <map>
+#include <memory>
 #include <string>
 #include <vector>
 
 #include "base/callback_forward.h"
 #include "base/containers/scoped_ptr_hash_map.h"
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "storage/browser/blob/internal_blob_data.h"
 #include "storage/browser/storage_browser_export.h"
 #include "storage/common/blob_storage/blob_storage_constants.h"
@@ -53,8 +53,8 @@
         IPCBlobCreationCancelCode::UNKNOWN;
 
     // data and data_builder are mutually exclusive.
-    scoped_ptr<InternalBlobData> data;
-    scoped_ptr<InternalBlobData::Builder> data_builder;
+    std::unique_ptr<InternalBlobData> data;
+    std::unique_ptr<InternalBlobData::Builder> data_builder;
 
     std::string content_type;
     std::string content_disposition;
@@ -109,7 +109,7 @@
 
  private:
   friend class ViewBlobInternalsJob;
-  using BlobMap = base::ScopedPtrHashMap<std::string, scoped_ptr<Entry>>;
+  using BlobMap = base::ScopedPtrHashMap<std::string, std::unique_ptr<Entry>>;
   using URLMap = std::map<GURL, std::string>;
 
   BlobMap blob_map_;
diff --git a/storage/browser/blob/blob_url_request_job.h b/storage/browser/blob/blob_url_request_job.h
index 70f0356..24621f5 100644
--- a/storage/browser/blob/blob_url_request_job.h
+++ b/storage/browser/blob/blob_url_request_job.h
@@ -8,10 +8,10 @@
 #include <stddef.h>
 
 #include <map>
+#include <memory>
 #include <vector>
 
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "net/http/http_byte_range.h"
 #include "net/http/http_status_code.h"
@@ -73,9 +73,9 @@
   bool byte_range_set_;
   net::HttpByteRange byte_range_;
 
-  scoped_ptr<BlobDataHandle> blob_handle_;
-  scoped_ptr<BlobReader> blob_reader_;
-  scoped_ptr<net::HttpResponseInfo> response_info_;
+  std::unique_ptr<BlobDataHandle> blob_handle_;
+  std::unique_ptr<BlobReader> blob_reader_;
+  std::unique_ptr<net::HttpResponseInfo> response_info_;
 
   base::WeakPtrFactory<BlobURLRequestJob> weak_factory_;
 
diff --git a/storage/browser/blob/blob_url_request_job_factory.cc b/storage/browser/blob/blob_url_request_job_factory.cc
index ed9c137..1017386e 100644
--- a/storage/browser/blob/blob_url_request_job_factory.cc
+++ b/storage/browser/blob/blob_url_request_job_factory.cc
@@ -4,6 +4,7 @@
 
 #include "storage/browser/blob/blob_url_request_job_factory.h"
 
+#include <memory>
 #include <utility>
 
 #include "base/strings/string_util.h"
@@ -23,12 +24,12 @@
 }  // namespace
 
 // static
-scoped_ptr<net::URLRequest> BlobProtocolHandler::CreateBlobRequest(
-    scoped_ptr<BlobDataHandle> blob_data_handle,
+std::unique_ptr<net::URLRequest> BlobProtocolHandler::CreateBlobRequest(
+    std::unique_ptr<BlobDataHandle> blob_data_handle,
     const net::URLRequestContext* request_context,
     net::URLRequest::Delegate* request_delegate) {
   const GURL kBlobUrl("blob://see_user_data/");
-  scoped_ptr<net::URLRequest> request = request_context->CreateRequest(
+  std::unique_ptr<net::URLRequest> request = request_context->CreateRequest(
       kBlobUrl, net::DEFAULT_PRIORITY, request_delegate);
   SetRequestedBlobDataHandle(request.get(), std::move(blob_data_handle));
   return request;
@@ -37,7 +38,7 @@
 // static
 void BlobProtocolHandler::SetRequestedBlobDataHandle(
     net::URLRequest* request,
-    scoped_ptr<BlobDataHandle> blob_data_handle) {
+    std::unique_ptr<BlobDataHandle> blob_data_handle) {
   request->SetUserData(&kUserDataKey, blob_data_handle.release());
 }
 
@@ -83,7 +84,7 @@
                         base::CompareCase::SENSITIVE))
     return NULL;
   std::string uuid = request->url().spec().substr(kPrefix.length());
-  scoped_ptr<BlobDataHandle> handle = context_->GetBlobDataFromUUID(uuid);
+  std::unique_ptr<BlobDataHandle> handle = context_->GetBlobDataFromUUID(uuid);
   BlobDataHandle* handle_ptr = handle.get();
   if (handle) {
     SetRequestedBlobDataHandle(request, std::move(handle));
diff --git a/storage/browser/blob/blob_url_request_job_factory.h b/storage/browser/blob/blob_url_request_job_factory.h
index 326da9b6..f8642ce7 100644
--- a/storage/browser/blob/blob_url_request_job_factory.h
+++ b/storage/browser/blob/blob_url_request_job_factory.h
@@ -5,10 +5,11 @@
 #ifndef STORAGE_BROWSER_BLOB_BLOB_URL_REQUEST_JOB_FACTORY_H_
 #define STORAGE_BROWSER_BLOB_BLOB_URL_REQUEST_JOB_FACTORY_H_
 
+#include <memory>
+
 #include "base/compiler_specific.h"
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
 #include "net/url_request/url_request.h"
 #include "net/url_request/url_request_job_factory.h"
 #include "storage/browser/storage_browser_export.h"
@@ -34,8 +35,8 @@
     : public net::URLRequestJobFactory::ProtocolHandler {
  public:
   // A helper to manufacture an URLRequest to retrieve the given blob.
-  static scoped_ptr<net::URLRequest> CreateBlobRequest(
-      scoped_ptr<BlobDataHandle> blob_data_handle,
+  static std::unique_ptr<net::URLRequest> CreateBlobRequest(
+      std::unique_ptr<BlobDataHandle> blob_data_handle,
       const net::URLRequestContext* request_context,
       net::URLRequest::Delegate* request_delegate);
 
@@ -43,7 +44,7 @@
   // to SetRequestedBlobDataHandle instead.
   static void SetRequestedBlobDataHandle(
       net::URLRequest* request,
-      scoped_ptr<BlobDataHandle> blob_data_handle);
+      std::unique_ptr<BlobDataHandle> blob_data_handle);
 
   // This gets the handle on the request if it exists.
   static BlobDataHandle* GetRequestBlobDataHandle(net::URLRequest* request);
diff --git a/storage/browser/blob/internal_blob_data.cc b/storage/browser/blob/internal_blob_data.cc
index b01a452a..115c6a6 100644
--- a/storage/browser/blob/internal_blob_data.cc
+++ b/storage/browser/blob/internal_blob_data.cc
@@ -5,6 +5,8 @@
 #include "storage/browser/blob/internal_blob_data.h"
 
 #include <stddef.h>
+
+#include <memory>
 #include <utility>
 
 #include "base/containers/hash_tables.h"
@@ -37,7 +39,7 @@
   return data_->GetUnsharedMemoryUsage();
 }
 
-scoped_ptr<InternalBlobData> InternalBlobData::Builder::Build() {
+std::unique_ptr<InternalBlobData> InternalBlobData::Builder::Build() {
   DCHECK(data_);
   return std::move(data_);
 }
diff --git a/storage/browser/blob/internal_blob_data.h b/storage/browser/blob/internal_blob_data.h
index f000385..65db2f3 100644
--- a/storage/browser/blob/internal_blob_data.h
+++ b/storage/browser/blob/internal_blob_data.h
@@ -7,6 +7,7 @@
 
 #include <stddef.h>
 
+#include <memory>
 #include <string>
 #include <vector>
 
@@ -67,10 +68,10 @@
     void RemoveBlobFromShareableItems(const std::string& blob_uuid);
 
     // The builder is invalid after calling this method.
-    scoped_ptr<::storage::InternalBlobData> Build();
+    std::unique_ptr<::storage::InternalBlobData> Build();
 
    private:
-    scoped_ptr<::storage::InternalBlobData> data_;
+    std::unique_ptr<::storage::InternalBlobData> data_;
 
     DISALLOW_COPY_AND_ASSIGN(Builder);
   };
diff --git a/storage/browser/blob/upload_blob_element_reader.cc b/storage/browser/blob/upload_blob_element_reader.cc
index 3c86051..95e0628 100644
--- a/storage/browser/blob/upload_blob_element_reader.cc
+++ b/storage/browser/blob/upload_blob_element_reader.cc
@@ -5,6 +5,8 @@
 #include "storage/browser/blob/upload_blob_element_reader.h"
 
 #include <stdint.h>
+
+#include <memory>
 #include <utility>
 
 #include "base/single_thread_task_runner.h"
@@ -16,7 +18,7 @@
 namespace storage {
 
 UploadBlobElementReader::UploadBlobElementReader(
-    scoped_ptr<BlobDataHandle> handle,
+    std::unique_ptr<BlobDataHandle> handle,
     FileSystemContext* file_system_context,
     base::SingleThreadTaskRunner* file_task_runner)
     : handle_(std::move(handle)),
diff --git a/storage/browser/blob/upload_blob_element_reader.h b/storage/browser/blob/upload_blob_element_reader.h
index f8192d0..b4802e1 100644
--- a/storage/browser/blob/upload_blob_element_reader.h
+++ b/storage/browser/blob/upload_blob_element_reader.h
@@ -7,9 +7,10 @@
 
 #include <stdint.h>
 
+#include <memory>
+
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
 #include "net/base/completion_callback.h"
 #include "net/base/upload_element_reader.h"
 #include "storage/browser/storage_browser_export.h"
@@ -33,7 +34,7 @@
 class STORAGE_EXPORT UploadBlobElementReader
     : NON_EXPORTED_BASE(public net::UploadElementReader) {
  public:
-  UploadBlobElementReader(scoped_ptr<BlobDataHandle> handle,
+  UploadBlobElementReader(std::unique_ptr<BlobDataHandle> handle,
                           FileSystemContext* file_system_context,
                           base::SingleThreadTaskRunner* file_task_runner);
   ~UploadBlobElementReader() override;
@@ -53,10 +54,10 @@
   const std::string& uuid() const;
 
  private:
-  scoped_ptr<BlobDataHandle> handle_;
+  std::unique_ptr<BlobDataHandle> handle_;
   scoped_refptr<FileSystemContext> file_system_context_;
   scoped_refptr<base::SingleThreadTaskRunner> file_runner_;
-  scoped_ptr<BlobReader> reader_;
+  std::unique_ptr<BlobReader> reader_;
 
   DISALLOW_COPY_AND_ASSIGN(UploadBlobElementReader);
 };
diff --git a/storage/browser/database/database_quota_client.cc b/storage/browser/database/database_quota_client.cc
index 3a80aa4..d8ae59023 100644
--- a/storage/browser/database/database_quota_client.cc
+++ b/storage/browser/database/database_quota_client.cc
@@ -6,12 +6,12 @@
 
 #include <stdint.h>
 
+#include <memory>
 #include <vector>
 
 #include "base/bind.h"
 #include "base/bind_helpers.h"
 #include "base/location.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/task_runner_util.h"
 #include "base/thread_task_runner_handle.h"
 #include "net/base/net_errors.h"
diff --git a/storage/browser/database/database_tracker.h b/storage/browser/database/database_tracker.h
index 4b7158e..823e1da 100644
--- a/storage/browser/database/database_tracker.h
+++ b/storage/browser/database/database_tracker.h
@@ -8,6 +8,7 @@
 #include <stdint.h>
 
 #include <map>
+#include <memory>
 #include <set>
 #include <utility>
 
@@ -15,7 +16,6 @@
 #include "base/files/file_path.h"
 #include "base/gtest_prod_util.h"
 #include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/observer_list.h"
 #include "base/strings/string16.h"
 #include "base/strings/string_util.h"
@@ -282,9 +282,9 @@
   bool shutting_down_;
   const base::FilePath profile_path_;
   const base::FilePath db_dir_;
-  scoped_ptr<sql::Connection> db_;
-  scoped_ptr<DatabasesTable> databases_table_;
-  scoped_ptr<sql::MetaTable> meta_table_;
+  std::unique_ptr<sql::Connection> db_;
+  std::unique_ptr<DatabasesTable> databases_table_;
+  std::unique_ptr<sql::MetaTable> meta_table_;
   base::ObserverList<Observer, true> observers_;
   std::map<std::string, CachedOriginInfo> origins_info_map_;
   DatabaseConnections database_connections_;
diff --git a/storage/browser/fileapi/async_file_util.h b/storage/browser/fileapi/async_file_util.h
index a36114c..b689e29 100644
--- a/storage/browser/fileapi/async_file_util.h
+++ b/storage/browser/fileapi/async_file_util.h
@@ -7,13 +7,13 @@
 
 #include <stdint.h>
 
+#include <memory>
 #include <vector>
 
 #include "base/callback_forward.h"
 #include "base/files/file.h"
 #include "base/files/file_util_proxy.h"
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "storage/browser/fileapi/file_system_operation.h"
 #include "storage/browser/storage_browser_export.h"
 #include "storage/common/fileapi/directory_entry.h"
@@ -101,11 +101,10 @@
   // FileSystemOperationImpl::OpenFile calls this.
   // This is used only by Pepper/NaCl File API.
   //
-  virtual void CreateOrOpen(
-      scoped_ptr<FileSystemOperationContext> context,
-      const FileSystemURL& url,
-      int file_flags,
-      const CreateOrOpenCallback& callback) = 0;
+  virtual void CreateOrOpen(std::unique_ptr<FileSystemOperationContext> context,
+                            const FileSystemURL& url,
+                            int file_flags,
+                            const CreateOrOpenCallback& callback) = 0;
 
   // Ensures that the given |url| exist.  This creates a empty new file
   // at |url| if the |url| does not exist.
@@ -120,7 +119,7 @@
   //   and there was an error while creating a new file.
   //
   virtual void EnsureFileExists(
-      scoped_ptr<FileSystemOperationContext> context,
+      std::unique_ptr<FileSystemOperationContext> context,
       const FileSystemURL& url,
       const EnsureFileExistsCallback& callback) = 0;
 
@@ -138,7 +137,7 @@
   // - Other error code if it failed to create a directory.
   //
   virtual void CreateDirectory(
-      scoped_ptr<FileSystemOperationContext> context,
+      std::unique_ptr<FileSystemOperationContext> context,
       const FileSystemURL& url,
       bool exclusive,
       bool recursive,
@@ -152,7 +151,7 @@
   // - File::FILE_ERROR_NOT_FOUND if the file doesn't exist.
   // - Other error code if there was an error while retrieving the file info.
   //
-  virtual void GetFileInfo(scoped_ptr<FileSystemOperationContext> context,
+  virtual void GetFileInfo(std::unique_ptr<FileSystemOperationContext> context,
                            const FileSystemURL& url,
                            int fields,
                            const GetFileInfoCallback& callback) = 0;
@@ -176,7 +175,7 @@
   //   is a file (not a directory).
   //
   virtual void ReadDirectory(
-      scoped_ptr<FileSystemOperationContext> context,
+      std::unique_ptr<FileSystemOperationContext> context,
       const FileSystemURL& url,
       const ReadDirectoryCallback& callback) = 0;
 
@@ -187,12 +186,11 @@
   // FileSystemOperationImpl::TouchFile calls this.
   // This is used only by Pepper/NaCl File API.
   //
-  virtual void Touch(
-      scoped_ptr<FileSystemOperationContext> context,
-      const FileSystemURL& url,
-      const base::Time& last_access_time,
-      const base::Time& last_modified_time,
-      const StatusCallback& callback) = 0;
+  virtual void Touch(std::unique_ptr<FileSystemOperationContext> context,
+                     const FileSystemURL& url,
+                     const base::Time& last_access_time,
+                     const base::Time& last_modified_time,
+                     const StatusCallback& callback) = 0;
 
   // Truncates a file at |path| to |length|. If |length| is larger than
   // the original file size, the file will be extended, and the extended
@@ -203,7 +201,7 @@
   // This reports following error code via |callback|:
   // - File::FILE_ERROR_NOT_FOUND if the file doesn't exist.
   //
-  virtual void Truncate(scoped_ptr<FileSystemOperationContext> context,
+  virtual void Truncate(std::unique_ptr<FileSystemOperationContext> context,
                         const FileSystemURL& url,
                         int64_t length,
                         const StatusCallback& callback) = 0;
@@ -230,7 +228,7 @@
   //   its parent path is a file.
   //
   virtual void CopyFileLocal(
-      scoped_ptr<FileSystemOperationContext> context,
+      std::unique_ptr<FileSystemOperationContext> context,
       const FileSystemURL& src_url,
       const FileSystemURL& dest_url,
       CopyOrMoveOption option,
@@ -253,7 +251,7 @@
   //   its parent path is a file.
   //
   virtual void MoveFileLocal(
-      scoped_ptr<FileSystemOperationContext> context,
+      std::unique_ptr<FileSystemOperationContext> context,
       const FileSystemURL& src_url,
       const FileSystemURL& dest_url,
       CopyOrMoveOption option,
@@ -273,10 +271,10 @@
   //   its parent path is a file.
   //
   virtual void CopyInForeignFile(
-        scoped_ptr<FileSystemOperationContext> context,
-        const base::FilePath& src_file_path,
-        const FileSystemURL& dest_url,
-        const StatusCallback& callback) = 0;
+      std::unique_ptr<FileSystemOperationContext> context,
+      const base::FilePath& src_file_path,
+      const FileSystemURL& dest_url,
+      const StatusCallback& callback) = 0;
 
   // Deletes a single file.
   //
@@ -286,10 +284,9 @@
   // - File::FILE_ERROR_NOT_FOUND if |url| does not exist.
   // - File::FILE_ERROR_NOT_A_FILE if |url| is not a file.
   //
-  virtual void DeleteFile(
-      scoped_ptr<FileSystemOperationContext> context,
-      const FileSystemURL& url,
-      const StatusCallback& callback) = 0;
+  virtual void DeleteFile(std::unique_ptr<FileSystemOperationContext> context,
+                          const FileSystemURL& url,
+                          const StatusCallback& callback) = 0;
 
   // Removes a single empty directory.
   //
@@ -301,7 +298,7 @@
   // - File::FILE_ERROR_NOT_EMPTY if |url| is not empty.
   //
   virtual void DeleteDirectory(
-      scoped_ptr<FileSystemOperationContext> context,
+      std::unique_ptr<FileSystemOperationContext> context,
       const FileSystemURL& url,
       const StatusCallback& callback) = 0;
 
@@ -319,7 +316,7 @@
   // - File::FILE_ERROR_NOT_FOUND if |url| does not exist.
   // - File::FILE_ERROR_INVALID_OPERATION if this operation is not supported.
   virtual void DeleteRecursively(
-      scoped_ptr<FileSystemOperationContext> context,
+      std::unique_ptr<FileSystemOperationContext> context,
       const FileSystemURL& url,
       const StatusCallback& callback) = 0;
 
@@ -355,7 +352,7 @@
   // dependent) in error cases, and the caller should always
   // check the return code.
   virtual void CreateSnapshotFile(
-      scoped_ptr<FileSystemOperationContext> context,
+      std::unique_ptr<FileSystemOperationContext> context,
       const FileSystemURL& url,
       const CreateSnapshotFileCallback& callback) = 0;
 
diff --git a/storage/browser/fileapi/async_file_util_adapter.cc b/storage/browser/fileapi/async_file_util_adapter.cc
index cf79022..8797ab7 100644
--- a/storage/browser/fileapi/async_file_util_adapter.cc
+++ b/storage/browser/fileapi/async_file_util_adapter.cc
@@ -6,6 +6,8 @@
 
 #include <stddef.h>
 #include <stdint.h>
+
+#include <memory>
 #include <utility>
 #include <vector>
 
@@ -112,7 +114,7 @@
   // assuming that they are reading much more entries than this constant.)
   const size_t kResultChunkSize = 100;
 
-  scoped_ptr<FileSystemFileUtil::AbstractFileEnumerator> file_enum(
+  std::unique_ptr<FileSystemFileUtil::AbstractFileEnumerator> file_enum(
       file_util->CreateFileEnumerator(context, url));
 
   base::FilePath current;
@@ -153,7 +155,7 @@
 }
 
 void AsyncFileUtilAdapter::CreateOrOpen(
-    scoped_ptr<FileSystemOperationContext> context,
+    std::unique_ptr<FileSystemOperationContext> context,
     const FileSystemURL& url,
     int file_flags,
     const CreateOrOpenCallback& callback) {
@@ -167,7 +169,7 @@
 }
 
 void AsyncFileUtilAdapter::EnsureFileExists(
-    scoped_ptr<FileSystemOperationContext> context,
+    std::unique_ptr<FileSystemOperationContext> context,
     const FileSystemURL& url,
     const EnsureFileExistsCallback& callback) {
   EnsureFileExistsHelper* helper = new EnsureFileExistsHelper;
@@ -181,7 +183,7 @@
 }
 
 void AsyncFileUtilAdapter::CreateDirectory(
-    scoped_ptr<FileSystemOperationContext> context,
+    std::unique_ptr<FileSystemOperationContext> context,
     const FileSystemURL& url,
     bool exclusive,
     bool recursive,
@@ -197,7 +199,7 @@
 }
 
 void AsyncFileUtilAdapter::GetFileInfo(
-    scoped_ptr<FileSystemOperationContext> context,
+    std::unique_ptr<FileSystemOperationContext> context,
     const FileSystemURL& url,
     int /* fields */,
     const GetFileInfoCallback& callback) {
@@ -212,7 +214,7 @@
 }
 
 void AsyncFileUtilAdapter::ReadDirectory(
-    scoped_ptr<FileSystemOperationContext> context,
+    std::unique_ptr<FileSystemOperationContext> context,
     const FileSystemURL& url,
     const ReadDirectoryCallback& callback) {
   FileSystemOperationContext* context_ptr = context.release();
@@ -225,7 +227,7 @@
 }
 
 void AsyncFileUtilAdapter::Touch(
-    scoped_ptr<FileSystemOperationContext> context,
+    std::unique_ptr<FileSystemOperationContext> context,
     const FileSystemURL& url,
     const base::Time& last_access_time,
     const base::Time& last_modified_time,
@@ -241,7 +243,7 @@
 }
 
 void AsyncFileUtilAdapter::Truncate(
-    scoped_ptr<FileSystemOperationContext> context,
+    std::unique_ptr<FileSystemOperationContext> context,
     const FileSystemURL& url,
     int64_t length,
     const StatusCallback& callback) {
@@ -255,7 +257,7 @@
 }
 
 void AsyncFileUtilAdapter::CopyFileLocal(
-    scoped_ptr<FileSystemOperationContext> context,
+    std::unique_ptr<FileSystemOperationContext> context,
     const FileSystemURL& src_url,
     const FileSystemURL& dest_url,
     CopyOrMoveOption option,
@@ -273,7 +275,7 @@
 }
 
 void AsyncFileUtilAdapter::MoveFileLocal(
-    scoped_ptr<FileSystemOperationContext> context,
+    std::unique_ptr<FileSystemOperationContext> context,
     const FileSystemURL& src_url,
     const FileSystemURL& dest_url,
     CopyOrMoveOption option,
@@ -289,10 +291,10 @@
 }
 
 void AsyncFileUtilAdapter::CopyInForeignFile(
-      scoped_ptr<FileSystemOperationContext> context,
-      const base::FilePath& src_file_path,
-      const FileSystemURL& dest_url,
-      const StatusCallback& callback) {
+    std::unique_ptr<FileSystemOperationContext> context,
+    const base::FilePath& src_file_path,
+    const FileSystemURL& dest_url,
+    const StatusCallback& callback) {
   FileSystemOperationContext* context_ptr = context.release();
   const bool success = base::PostTaskAndReplyWithResult(
       context_ptr->task_runner(), FROM_HERE,
@@ -304,7 +306,7 @@
 }
 
 void AsyncFileUtilAdapter::DeleteFile(
-    scoped_ptr<FileSystemOperationContext> context,
+    std::unique_ptr<FileSystemOperationContext> context,
     const FileSystemURL& url,
     const StatusCallback& callback) {
   FileSystemOperationContext* context_ptr = context.release();
@@ -318,7 +320,7 @@
 }
 
 void AsyncFileUtilAdapter::DeleteDirectory(
-    scoped_ptr<FileSystemOperationContext> context,
+    std::unique_ptr<FileSystemOperationContext> context,
     const FileSystemURL& url,
     const StatusCallback& callback) {
   FileSystemOperationContext* context_ptr = context.release();
@@ -332,14 +334,14 @@
 }
 
 void AsyncFileUtilAdapter::DeleteRecursively(
-    scoped_ptr<FileSystemOperationContext> context,
+    std::unique_ptr<FileSystemOperationContext> context,
     const FileSystemURL& url,
     const StatusCallback& callback) {
   callback.Run(base::File::FILE_ERROR_INVALID_OPERATION);
 }
 
 void AsyncFileUtilAdapter::CreateSnapshotFile(
-    scoped_ptr<FileSystemOperationContext> context,
+    std::unique_ptr<FileSystemOperationContext> context,
     const FileSystemURL& url,
     const CreateSnapshotFileCallback& callback) {
   FileSystemOperationContext* context_ptr = context.release();
diff --git a/storage/browser/fileapi/async_file_util_adapter.h b/storage/browser/fileapi/async_file_util_adapter.h
index 5cbf829..4777d92 100644
--- a/storage/browser/fileapi/async_file_util_adapter.h
+++ b/storage/browser/fileapi/async_file_util_adapter.h
@@ -7,8 +7,10 @@
 
 #include <stdint.h>
 
+#include <memory>
+
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
+#include "base/memory/ptr_util.h"
 #include "storage/browser/fileapi/async_file_util.h"
 
 namespace storage {
@@ -29,8 +31,8 @@
     : public NON_EXPORTED_BASE(AsyncFileUtil) {
  public:
   // Creates a new AsyncFileUtil for |sync_file_util|. This takes the
-  // ownership of |sync_file_util|. (This doesn't take scoped_ptr<> just
-  // to save extra make_scoped_ptr; in all use cases a new fresh FileUtil is
+  // ownership of |sync_file_util|. (This doesn't take std::unique_ptr<> just
+  // to save extra base::WrapUnique; in all use cases a new fresh FileUtil is
   // created only for this adapter.)
   explicit AsyncFileUtilAdapter(FileSystemFileUtil* sync_file_util);
 
@@ -41,64 +43,64 @@
   }
 
   // AsyncFileUtil overrides.
-  void CreateOrOpen(scoped_ptr<FileSystemOperationContext> context,
+  void CreateOrOpen(std::unique_ptr<FileSystemOperationContext> context,
                     const FileSystemURL& url,
                     int file_flags,
                     const CreateOrOpenCallback& callback) override;
-  void EnsureFileExists(scoped_ptr<FileSystemOperationContext> context,
+  void EnsureFileExists(std::unique_ptr<FileSystemOperationContext> context,
                         const FileSystemURL& url,
                         const EnsureFileExistsCallback& callback) override;
-  void CreateDirectory(scoped_ptr<FileSystemOperationContext> context,
+  void CreateDirectory(std::unique_ptr<FileSystemOperationContext> context,
                        const FileSystemURL& url,
                        bool exclusive,
                        bool recursive,
                        const StatusCallback& callback) override;
-  void GetFileInfo(scoped_ptr<FileSystemOperationContext> context,
+  void GetFileInfo(std::unique_ptr<FileSystemOperationContext> context,
                    const FileSystemURL& url,
                    int /* fields */,
                    const GetFileInfoCallback& callback) override;
-  void ReadDirectory(scoped_ptr<FileSystemOperationContext> context,
+  void ReadDirectory(std::unique_ptr<FileSystemOperationContext> context,
                      const FileSystemURL& url,
                      const ReadDirectoryCallback& callback) override;
-  void Touch(scoped_ptr<FileSystemOperationContext> context,
+  void Touch(std::unique_ptr<FileSystemOperationContext> context,
              const FileSystemURL& url,
              const base::Time& last_access_time,
              const base::Time& last_modified_time,
              const StatusCallback& callback) override;
-  void Truncate(scoped_ptr<FileSystemOperationContext> context,
+  void Truncate(std::unique_ptr<FileSystemOperationContext> context,
                 const FileSystemURL& url,
                 int64_t length,
                 const StatusCallback& callback) override;
-  void CopyFileLocal(scoped_ptr<FileSystemOperationContext> context,
+  void CopyFileLocal(std::unique_ptr<FileSystemOperationContext> context,
                      const FileSystemURL& src_url,
                      const FileSystemURL& dest_url,
                      CopyOrMoveOption option,
                      const CopyFileProgressCallback& progress_callback,
                      const StatusCallback& callback) override;
-  void MoveFileLocal(scoped_ptr<FileSystemOperationContext> context,
+  void MoveFileLocal(std::unique_ptr<FileSystemOperationContext> context,
                      const FileSystemURL& src_url,
                      const FileSystemURL& dest_url,
                      CopyOrMoveOption option,
                      const StatusCallback& callback) override;
-  void CopyInForeignFile(scoped_ptr<FileSystemOperationContext> context,
+  void CopyInForeignFile(std::unique_ptr<FileSystemOperationContext> context,
                          const base::FilePath& src_file_path,
                          const FileSystemURL& dest_url,
                          const StatusCallback& callback) override;
-  void DeleteFile(scoped_ptr<FileSystemOperationContext> context,
+  void DeleteFile(std::unique_ptr<FileSystemOperationContext> context,
                   const FileSystemURL& url,
                   const StatusCallback& callback) override;
-  void DeleteDirectory(scoped_ptr<FileSystemOperationContext> context,
+  void DeleteDirectory(std::unique_ptr<FileSystemOperationContext> context,
                        const FileSystemURL& url,
                        const StatusCallback& callback) override;
-  void DeleteRecursively(scoped_ptr<FileSystemOperationContext> context,
+  void DeleteRecursively(std::unique_ptr<FileSystemOperationContext> context,
                          const FileSystemURL& url,
                          const StatusCallback& callback) override;
-  void CreateSnapshotFile(scoped_ptr<FileSystemOperationContext> context,
+  void CreateSnapshotFile(std::unique_ptr<FileSystemOperationContext> context,
                           const FileSystemURL& url,
                           const CreateSnapshotFileCallback& callback) override;
 
  private:
-  scoped_ptr<FileSystemFileUtil> sync_file_util_;
+  std::unique_ptr<FileSystemFileUtil> sync_file_util_;
 
   DISALLOW_COPY_AND_ASSIGN(AsyncFileUtilAdapter);
 };
diff --git a/storage/browser/fileapi/copy_or_move_operation_delegate.cc b/storage/browser/fileapi/copy_or_move_operation_delegate.cc
index a31ff74..ca5b409 100644
--- a/storage/browser/fileapi/copy_or_move_operation_delegate.cc
+++ b/storage/browser/fileapi/copy_or_move_operation_delegate.cc
@@ -5,6 +5,8 @@
 #include "storage/browser/fileapi/copy_or_move_operation_delegate.h"
 
 #include <stdint.h>
+
+#include <memory>
 #include <tuple>
 #include <utility>
 
@@ -347,7 +349,7 @@
 
   CopyOrMoveOperationDelegate::CopyOrMoveOption option_;
   CopyOrMoveFileValidatorFactory* validator_factory_;
-  scoped_ptr<CopyOrMoveFileValidator> validator_;
+  std::unique_ptr<CopyOrMoveFileValidator> validator_;
   FileSystemOperation::CopyFileProgressCallback file_progress_callback_;
   bool cancel_requested_;
   base::WeakPtrFactory<SnapshotCopyOrMoveImpl> weak_factory_;
@@ -374,8 +376,8 @@
       const FileSystemURL& src_url,
       const FileSystemURL& dest_url,
       CopyOrMoveOperationDelegate::CopyOrMoveOption option,
-      scoped_ptr<storage::FileStreamReader> reader,
-      scoped_ptr<FileStreamWriter> writer,
+      std::unique_ptr<storage::FileStreamReader> reader,
+      std::unique_ptr<FileStreamWriter> writer,
       const FileSystemOperation::CopyFileProgressCallback&
           file_progress_callback)
       : operation_runner_(operation_runner),
@@ -578,10 +580,10 @@
   FileSystemURL src_url_;
   FileSystemURL dest_url_;
   CopyOrMoveOperationDelegate::CopyOrMoveOption option_;
-  scoped_ptr<storage::FileStreamReader> reader_;
-  scoped_ptr<FileStreamWriter> writer_;
+  std::unique_ptr<storage::FileStreamReader> reader_;
+  std::unique_ptr<FileStreamWriter> writer_;
   FileSystemOperation::CopyFileProgressCallback file_progress_callback_;
-  scoped_ptr<CopyOrMoveOperationDelegate::StreamCopyHelper> copy_helper_;
+  std::unique_ptr<CopyOrMoveOperationDelegate::StreamCopyHelper> copy_helper_;
   bool cancel_requested_;
   base::WeakPtrFactory<StreamCopyOrMoveImpl> weak_factory_;
   DISALLOW_COPY_AND_ASSIGN(StreamCopyOrMoveImpl);
@@ -590,8 +592,8 @@
 }  // namespace
 
 CopyOrMoveOperationDelegate::StreamCopyHelper::StreamCopyHelper(
-    scoped_ptr<storage::FileStreamReader> reader,
-    scoped_ptr<FileStreamWriter> writer,
+    std::unique_ptr<storage::FileStreamReader> reader,
+    std::unique_ptr<FileStreamWriter> writer,
     storage::FlushPolicy flush_policy,
     int buffer_size,
     const FileSystemOperation::CopyFileProgressCallback& file_progress_callback,
@@ -819,10 +821,10 @@
     }
 
     if (!validator_factory) {
-      scoped_ptr<storage::FileStreamReader> reader =
+      std::unique_ptr<storage::FileStreamReader> reader =
           file_system_context()->CreateFileStreamReader(
               src_url, 0 /* offset */, storage::kMaximumLength, base::Time());
-      scoped_ptr<FileStreamWriter> writer =
+      std::unique_ptr<FileStreamWriter> writer =
           file_system_context()->CreateFileStreamWriter(dest_url, 0);
       if (reader && writer) {
         impl = new StreamCopyOrMoveImpl(
diff --git a/storage/browser/fileapi/copy_or_move_operation_delegate.h b/storage/browser/fileapi/copy_or_move_operation_delegate.h
index c3ff20a..a853b78 100644
--- a/storage/browser/fileapi/copy_or_move_operation_delegate.h
+++ b/storage/browser/fileapi/copy_or_move_operation_delegate.h
@@ -7,12 +7,12 @@
 
 #include <stdint.h>
 
+#include <memory>
 #include <set>
 #include <stack>
 
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/time/time.h"
 #include "storage/browser/fileapi/recursive_operation_delegate.h"
 
@@ -51,8 +51,8 @@
   class STORAGE_EXPORT StreamCopyHelper {
    public:
     StreamCopyHelper(
-        scoped_ptr<storage::FileStreamReader> reader,
-        scoped_ptr<FileStreamWriter> writer,
+        std::unique_ptr<storage::FileStreamReader> reader,
+        std::unique_ptr<FileStreamWriter> writer,
         FlushPolicy flush_policy,
         int buffer_size,
         const FileSystemOperation::CopyFileProgressCallback&
@@ -81,8 +81,8 @@
     void Flush(const StatusCallback& callback, bool is_eof);
     void DidFlush(const StatusCallback& callback, bool is_eof, int result);
 
-    scoped_ptr<storage::FileStreamReader> reader_;
-    scoped_ptr<FileStreamWriter> writer_;
+    std::unique_ptr<storage::FileStreamReader> reader_;
+    std::unique_ptr<FileStreamWriter> writer_;
     const FlushPolicy flush_policy_;
     FileSystemOperation::CopyFileProgressCallback file_progress_callback_;
     scoped_refptr<net::IOBufferWithSize> io_buffer_;
diff --git a/storage/browser/fileapi/dragged_file_util.cc b/storage/browser/fileapi/dragged_file_util.cc
index dc6db41..1eaac6a 100644
--- a/storage/browser/fileapi/dragged_file_util.cc
+++ b/storage/browser/fileapi/dragged_file_util.cc
@@ -6,6 +6,7 @@
 
 #include <stdint.h>
 
+#include <memory>
 #include <string>
 #include <vector>
 
@@ -87,10 +88,9 @@
   return error;
 }
 
-scoped_ptr<FileSystemFileUtil::AbstractFileEnumerator>
-    DraggedFileUtil::CreateFileEnumerator(
-        FileSystemOperationContext* context,
-        const FileSystemURL& root) {
+std::unique_ptr<FileSystemFileUtil::AbstractFileEnumerator>
+DraggedFileUtil::CreateFileEnumerator(FileSystemOperationContext* context,
+                                      const FileSystemURL& root) {
   DCHECK(root.is_valid());
   if (!root.path().empty())
     return LocalFileUtil::CreateFileEnumerator(context, root);
@@ -99,7 +99,8 @@
   std::vector<FileInfo> toplevels;
   IsolatedContext::GetInstance()->GetDraggedFileInfo(
       root.filesystem_id(), &toplevels);
-  return scoped_ptr<AbstractFileEnumerator>(new SetFileEnumerator(toplevels));
+  return std::unique_ptr<AbstractFileEnumerator>(
+      new SetFileEnumerator(toplevels));
 }
 
 }  // namespace storage
diff --git a/storage/browser/fileapi/dragged_file_util.h b/storage/browser/fileapi/dragged_file_util.h
index adf47d3..c170910c 100644
--- a/storage/browser/fileapi/dragged_file_util.h
+++ b/storage/browser/fileapi/dragged_file_util.h
@@ -5,8 +5,9 @@
 #ifndef STORAGE_BROWSER_FILEAPI_DRAGGED_FILE_UTIL_H_
 #define STORAGE_BROWSER_FILEAPI_DRAGGED_FILE_UTIL_H_
 
+#include <memory>
+
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "storage/browser/fileapi/local_file_util.h"
 #include "storage/browser/storage_browser_export.h"
 
@@ -27,7 +28,7 @@
                                 const FileSystemURL& url,
                                 base::File::Info* file_info,
                                 base::FilePath* platform_path) override;
-  scoped_ptr<AbstractFileEnumerator> CreateFileEnumerator(
+  std::unique_ptr<AbstractFileEnumerator> CreateFileEnumerator(
       FileSystemOperationContext* context,
       const FileSystemURL& root_url) override;
 
diff --git a/storage/browser/fileapi/file_system_backend.h b/storage/browser/fileapi/file_system_backend.h
index 0c06b1c..c17c889 100644
--- a/storage/browser/fileapi/file_system_backend.h
+++ b/storage/browser/fileapi/file_system_backend.h
@@ -8,13 +8,13 @@
 #include <stdint.h>
 
 #include <limits>
+#include <memory>
 #include <string>
 #include <vector>
 
 #include "base/callback_forward.h"
 #include "base/files/file.h"
 #include "base/files/file_path.h"
-#include "base/memory/scoped_ptr.h"
 #include "storage/browser/fileapi/file_permission_policy.h"
 #include "storage/browser/fileapi/open_file_system_mode.h"
 #include "storage/browser/fileapi/task_runner_bound_observer_list.h"
@@ -119,7 +119,7 @@
   // This method itself does *not* check if the given path exists and is a
   // regular file. At most |max_bytes_to_read| can be fetched from the file
   // stream reader.
-  virtual scoped_ptr<storage::FileStreamReader> CreateFileStreamReader(
+  virtual std::unique_ptr<storage::FileStreamReader> CreateFileStreamReader(
       const FileSystemURL& url,
       int64_t offset,
       int64_t max_bytes_to_read,
@@ -130,7 +130,7 @@
   // offset |offset|.
   // This method itself does *not* check if the given path exists and is a
   // regular file.
-  virtual scoped_ptr<FileStreamWriter> CreateFileStreamWriter(
+  virtual std::unique_ptr<FileStreamWriter> CreateFileStreamWriter(
       const FileSystemURL& url,
       int64_t offset,
       FileSystemContext* context) const = 0;
diff --git a/storage/browser/fileapi/file_system_context.cc b/storage/browser/fileapi/file_system_context.cc
index 166413c..94f5ab2 100644
--- a/storage/browser/fileapi/file_system_context.cc
+++ b/storage/browser/fileapi/file_system_context.cc
@@ -6,10 +6,13 @@
 
 #include <stddef.h>
 #include <stdint.h>
+
+#include <memory>
 #include <utility>
 
 #include "base/bind.h"
 #include "base/macros.h"
+#include "base/memory/ptr_util.h"
 #include "base/single_thread_task_runner.h"
 #include "base/stl_util.h"
 #include "base/task_runner_util.h"
@@ -437,34 +440,35 @@
       callback);
 }
 
-scoped_ptr<storage::FileStreamReader> FileSystemContext::CreateFileStreamReader(
+std::unique_ptr<storage::FileStreamReader>
+FileSystemContext::CreateFileStreamReader(
     const FileSystemURL& url,
     int64_t offset,
     int64_t max_bytes_to_read,
     const base::Time& expected_modification_time) {
   if (!url.is_valid())
-    return scoped_ptr<storage::FileStreamReader>();
+    return std::unique_ptr<storage::FileStreamReader>();
   FileSystemBackend* backend = GetFileSystemBackend(url.type());
   if (!backend)
-    return scoped_ptr<storage::FileStreamReader>();
+    return std::unique_ptr<storage::FileStreamReader>();
   return backend->CreateFileStreamReader(
       url, offset, max_bytes_to_read, expected_modification_time, this);
 }
 
-scoped_ptr<FileStreamWriter> FileSystemContext::CreateFileStreamWriter(
+std::unique_ptr<FileStreamWriter> FileSystemContext::CreateFileStreamWriter(
     const FileSystemURL& url,
     int64_t offset) {
   if (!url.is_valid())
-    return scoped_ptr<FileStreamWriter>();
+    return std::unique_ptr<FileStreamWriter>();
   FileSystemBackend* backend = GetFileSystemBackend(url.type());
   if (!backend)
-    return scoped_ptr<FileStreamWriter>();
+    return std::unique_ptr<FileStreamWriter>();
   return backend->CreateFileStreamWriter(url, offset, this);
 }
 
-scoped_ptr<FileSystemOperationRunner>
+std::unique_ptr<FileSystemOperationRunner>
 FileSystemContext::CreateFileSystemOperationRunner() {
-  return make_scoped_ptr(new FileSystemOperationRunner(this));
+  return base::WrapUnique(new FileSystemOperationRunner(this));
 }
 
 FileSystemURL FileSystemContext::CrackURL(const GURL& url) const {
diff --git a/storage/browser/fileapi/file_system_context.h b/storage/browser/fileapi/file_system_context.h
index c504a0f..d5d4e86 100644
--- a/storage/browser/fileapi/file_system_context.h
+++ b/storage/browser/fileapi/file_system_context.h
@@ -8,6 +8,7 @@
 #include <stdint.h>
 
 #include <map>
+#include <memory>
 #include <string>
 #include <vector>
 
@@ -15,7 +16,6 @@
 #include "base/files/file.h"
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/scoped_vector.h"
 #include "base/sequenced_task_runner_helpers.h"
 #include "storage/browser/fileapi/file_system_url.h"
@@ -256,7 +256,7 @@
   // The resolved FileSystemBackend could perform further specialization
   // depending on the filesystem type pointed by the |url|.
   // At most |max_bytes_to_read| can be fetched from the file stream reader.
-  scoped_ptr<storage::FileStreamReader> CreateFileStreamReader(
+  std::unique_ptr<storage::FileStreamReader> CreateFileStreamReader(
       const FileSystemURL& url,
       int64_t offset,
       int64_t max_bytes_to_read,
@@ -264,11 +264,12 @@
 
   // Creates new FileStreamWriter instance to write into a file pointed by
   // |url| from |offset|.
-  scoped_ptr<FileStreamWriter> CreateFileStreamWriter(const FileSystemURL& url,
-                                                      int64_t offset);
+  std::unique_ptr<FileStreamWriter> CreateFileStreamWriter(
+      const FileSystemURL& url,
+      int64_t offset);
 
   // Creates a new FileSystemOperationRunner.
-  scoped_ptr<FileSystemOperationRunner> CreateFileSystemOperationRunner();
+  std::unique_ptr<FileSystemOperationRunner> CreateFileSystemOperationRunner();
 
   base::SequencedTaskRunner* default_file_task_runner() {
     return default_file_task_runner_.get();
@@ -379,14 +380,14 @@
 
   scoped_refptr<storage::QuotaManagerProxy> quota_manager_proxy_;
 
-  scoped_ptr<SandboxFileSystemBackendDelegate> sandbox_delegate_;
+  std::unique_ptr<SandboxFileSystemBackendDelegate> sandbox_delegate_;
 
   // Regular file system backends.
-  scoped_ptr<SandboxFileSystemBackend> sandbox_backend_;
-  scoped_ptr<IsolatedFileSystemBackend> isolated_backend_;
+  std::unique_ptr<SandboxFileSystemBackend> sandbox_backend_;
+  std::unique_ptr<IsolatedFileSystemBackend> isolated_backend_;
 
   // Additional file system backends.
-  scoped_ptr<PluginPrivateFileSystemBackend> plugin_private_backend_;
+  std::unique_ptr<PluginPrivateFileSystemBackend> plugin_private_backend_;
   ScopedVector<FileSystemBackend> additional_backends_;
 
   std::vector<URLRequestAutoMountHandler> auto_mount_handlers_;
@@ -412,7 +413,7 @@
 
   bool is_incognito_;
 
-  scoped_ptr<FileSystemOperationRunner> operation_runner_;
+  std::unique_ptr<FileSystemOperationRunner> operation_runner_;
 
   DISALLOW_IMPLICIT_CONSTRUCTORS(FileSystemContext);
 };
diff --git a/storage/browser/fileapi/file_system_file_stream_reader.h b/storage/browser/fileapi/file_system_file_stream_reader.h
index 91c3c88..a65a736 100644
--- a/storage/browser/fileapi/file_system_file_stream_reader.h
+++ b/storage/browser/fileapi/file_system_file_stream_reader.h
@@ -7,6 +7,8 @@
 
 #include <stdint.h>
 
+#include <memory>
+
 #include "base/bind.h"
 #include "base/files/file.h"
 #include "base/macros.h"
@@ -69,7 +71,7 @@
   FileSystemURL url_;
   const int64_t initial_offset_;
   const base::Time expected_modification_time_;
-  scoped_ptr<storage::FileStreamReader> local_file_reader_;
+  std::unique_ptr<storage::FileStreamReader> local_file_reader_;
   scoped_refptr<storage::ShareableFileReference> snapshot_ref_;
   bool has_pending_create_snapshot_;
   base::WeakPtrFactory<FileSystemFileStreamReader> weak_factory_;
diff --git a/storage/browser/fileapi/file_system_file_util.h b/storage/browser/fileapi/file_system_file_util.h
index 53362776..b2fd8744 100644
--- a/storage/browser/fileapi/file_system_file_util.h
+++ b/storage/browser/fileapi/file_system_file_util.h
@@ -7,10 +7,11 @@
 
 #include <stdint.h>
 
+#include <memory>
+
 #include "base/files/file.h"
 #include "base/files/file_path.h"
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "storage/browser/blob/scoped_file.h"
 #include "storage/browser/fileapi/file_system_operation.h"
 #include "storage/browser/storage_browser_export.h"
@@ -98,7 +99,7 @@
   //
   // The supplied context must remain valid at least lifetime of the enumerator
   // instance.
-  virtual scoped_ptr<AbstractFileEnumerator> CreateFileEnumerator(
+  virtual std::unique_ptr<AbstractFileEnumerator> CreateFileEnumerator(
       FileSystemOperationContext* context,
       const FileSystemURL& root_url) = 0;
 
diff --git a/storage/browser/fileapi/file_system_operation.h b/storage/browser/fileapi/file_system_operation.h
index 2ef9c998..8f11c1e 100644
--- a/storage/browser/fileapi/file_system_operation.h
+++ b/storage/browser/fileapi/file_system_operation.h
@@ -7,6 +7,7 @@
 
 #include <stdint.h>
 
+#include <memory>
 #include <vector>
 
 #include "base/callback.h"
@@ -63,7 +64,7 @@
   STORAGE_EXPORT static FileSystemOperation* Create(
       const FileSystemURL& url,
       FileSystemContext* file_system_context,
-      scoped_ptr<FileSystemOperationContext> operation_context);
+      std::unique_ptr<FileSystemOperationContext> operation_context);
 
   virtual ~FileSystemOperation() {}
 
@@ -324,11 +325,10 @@
                       const StatusCallback& callback) = 0;
 
   // Writes the data read from |blob_request| using |writer_delegate|.
-  virtual void Write(
-    const FileSystemURL& url,
-    scoped_ptr<FileWriterDelegate> writer_delegate,
-    scoped_ptr<net::URLRequest> blob_request,
-    const WriteCallback& callback) = 0;
+  virtual void Write(const FileSystemURL& url,
+                     std::unique_ptr<FileWriterDelegate> writer_delegate,
+                     std::unique_ptr<net::URLRequest> blob_request,
+                     const WriteCallback& callback) = 0;
 
   // Truncates a file at |path| to |length|. If |length| is larger than
   // the original file size, the file will be extended, and the extended
diff --git a/storage/browser/fileapi/file_system_operation_impl.cc b/storage/browser/fileapi/file_system_operation_impl.cc
index 74ba055..196f693 100644
--- a/storage/browser/fileapi/file_system_operation_impl.cc
+++ b/storage/browser/fileapi/file_system_operation_impl.cc
@@ -5,7 +5,9 @@
 #include "storage/browser/fileapi/file_system_operation_impl.h"
 
 #include <stdint.h>
+
 #include <limits>
+#include <memory>
 #include <tuple>
 #include <utility>
 
@@ -58,7 +60,7 @@
 FileSystemOperation* FileSystemOperation::Create(
     const FileSystemURL& url,
     FileSystemContext* file_system_context,
-    scoped_ptr<FileSystemOperationContext> operation_context) {
+    std::unique_ptr<FileSystemOperationContext> operation_context) {
   return new FileSystemOperationImpl(url, file_system_context,
                                      std::move(operation_context));
 }
@@ -191,8 +193,8 @@
 
 void FileSystemOperationImpl::Write(
     const FileSystemURL& url,
-    scoped_ptr<FileWriterDelegate> writer_delegate,
-    scoped_ptr<net::URLRequest> blob_request,
+    std::unique_ptr<FileWriterDelegate> writer_delegate,
+    std::unique_ptr<net::URLRequest> blob_request,
     const WriteCallback& callback) {
   DCHECK(SetPendingOperationType(kOperationWrite));
   file_writer_delegate_ = std::move(writer_delegate);
@@ -375,7 +377,7 @@
 FileSystemOperationImpl::FileSystemOperationImpl(
     const FileSystemURL& url,
     FileSystemContext* file_system_context,
-    scoped_ptr<FileSystemOperationContext> operation_context)
+    std::unique_ptr<FileSystemOperationContext> operation_context)
     : file_system_context_(file_system_context),
       operation_context_(std::move(operation_context)),
       async_file_util_(NULL),
diff --git a/storage/browser/fileapi/file_system_operation_impl.h b/storage/browser/fileapi/file_system_operation_impl.h
index de660f4..77e9248 100644
--- a/storage/browser/fileapi/file_system_operation_impl.h
+++ b/storage/browser/fileapi/file_system_operation_impl.h
@@ -7,11 +7,11 @@
 
 #include <stdint.h>
 
+#include <memory>
 #include <vector>
 
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "storage/browser/blob/scoped_file.h"
 #include "storage/browser/fileapi/file_system_operation.h"
@@ -64,8 +64,8 @@
               bool recursive,
               const StatusCallback& callback) override;
   void Write(const FileSystemURL& url,
-             scoped_ptr<FileWriterDelegate> writer_delegate,
-             scoped_ptr<net::URLRequest> blob_request,
+             std::unique_ptr<FileWriterDelegate> writer_delegate,
+             std::unique_ptr<net::URLRequest> blob_request,
              const WriteCallback& callback) override;
   void Truncate(const FileSystemURL& url,
                 int64_t length,
@@ -109,7 +109,7 @@
   FileSystemOperationImpl(
       const FileSystemURL& url,
       FileSystemContext* file_system_context,
-      scoped_ptr<FileSystemOperationContext> operation_context);
+      std::unique_ptr<FileSystemOperationContext> operation_context);
 
   // Queries the quota and usage and then runs the given |task|.
   // If an error occurs during the quota query it runs |error_callback| instead.
@@ -188,11 +188,11 @@
 
   scoped_refptr<FileSystemContext> file_system_context_;
 
-  scoped_ptr<FileSystemOperationContext> operation_context_;
+  std::unique_ptr<FileSystemOperationContext> operation_context_;
   AsyncFileUtil* async_file_util_;  // Not owned.
 
-  scoped_ptr<FileWriterDelegate> file_writer_delegate_;
-  scoped_ptr<RecursiveOperationDelegate> recursive_operation_delegate_;
+  std::unique_ptr<FileWriterDelegate> file_writer_delegate_;
+  std::unique_ptr<RecursiveOperationDelegate> recursive_operation_delegate_;
 
   StatusCallback cancel_callback_;
 
diff --git a/storage/browser/fileapi/file_system_operation_runner.cc b/storage/browser/fileapi/file_system_operation_runner.cc
index 2052b38..665d7f0 100644
--- a/storage/browser/fileapi/file_system_operation_runner.cc
+++ b/storage/browser/fileapi/file_system_operation_runner.cc
@@ -5,6 +5,8 @@
 #include "storage/browser/fileapi/file_system_operation_runner.h"
 
 #include <stdint.h>
+
+#include <memory>
 #include <tuple>
 #include <utility>
 
@@ -244,7 +246,7 @@
 OperationID FileSystemOperationRunner::Write(
     const net::URLRequestContext* url_request_context,
     const FileSystemURL& url,
-    scoped_ptr<storage::BlobDataHandle> blob,
+    std::unique_ptr<storage::BlobDataHandle> blob,
     int64_t offset,
     const WriteCallback& callback) {
   base::File::Error error = base::File::FILE_OK;
@@ -258,7 +260,7 @@
     return handle.id;
   }
 
-  scoped_ptr<FileStreamWriter> writer(
+  std::unique_ptr<FileStreamWriter> writer(
       file_system_context_->CreateFileStreamWriter(url, offset));
   if (!writer) {
     // Write is not supported.
@@ -266,10 +268,10 @@
     return handle.id;
   }
 
-  scoped_ptr<FileWriterDelegate> writer_delegate(new FileWriterDelegate(
+  std::unique_ptr<FileWriterDelegate> writer_delegate(new FileWriterDelegate(
       std::move(writer), url.mount_option().flush_policy()));
 
-  scoped_ptr<net::URLRequest> blob_request(
+  std::unique_ptr<net::URLRequest> blob_request(
       storage::BlobProtocolHandler::CreateBlobRequest(
           std::move(blob), url_request_context, writer_delegate.get()));
 
@@ -503,7 +505,7 @@
     const FileSystemURL& url,
     base::FilePath* platform_path) {
   base::File::Error error = base::File::FILE_OK;
-  scoped_ptr<FileSystemOperation> operation(
+  std::unique_ptr<FileSystemOperation> operation(
       file_system_context_->CreateFileSystemOperation(url, &error));
   if (!operation.get())
     return error;
diff --git a/storage/browser/fileapi/file_system_operation_runner.h b/storage/browser/fileapi/file_system_operation_runner.h
index 7115bc8..621a7d9 100644
--- a/storage/browser/fileapi/file_system_operation_runner.h
+++ b/storage/browser/fileapi/file_system_operation_runner.h
@@ -8,12 +8,12 @@
 #include <stdint.h>
 
 #include <map>
+#include <memory>
 #include <set>
 #include <vector>
 
 #include "base/id_map.h"
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "storage/browser/blob/blob_data_handle.h"
 #include "storage/browser/fileapi/file_system_operation.h"
@@ -117,7 +117,7 @@
   // |url_request_context| is used to read contents in |blob|.
   OperationID Write(const net::URLRequestContext* url_request_context,
                     const FileSystemURL& url,
-                    scoped_ptr<storage::BlobDataHandle> blob,
+                    std::unique_ptr<storage::BlobDataHandle> blob,
                     int64_t offset,
                     const WriteCallback& callback);
 
diff --git a/storage/browser/fileapi/file_system_quota_client.cc b/storage/browser/fileapi/file_system_quota_client.cc
index 58a219dd..26fde45 100644
--- a/storage/browser/fileapi/file_system_quota_client.cc
+++ b/storage/browser/fileapi/file_system_quota_client.cc
@@ -5,12 +5,12 @@
 #include "storage/browser/fileapi/file_system_quota_client.h"
 
 #include <algorithm>
+#include <memory>
 
 #include "base/bind.h"
 #include "base/files/file_util.h"
 #include "base/location.h"
 #include "base/logging.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/sequenced_task_runner.h"
 #include "base/single_thread_task_runner.h"
 #include "base/task_runner_util.h"
diff --git a/storage/browser/fileapi/file_system_url_request_job.h b/storage/browser/fileapi/file_system_url_request_job.h
index c06a34b0..183ef434 100644
--- a/storage/browser/fileapi/file_system_url_request_job.h
+++ b/storage/browser/fileapi/file_system_url_request_job.h
@@ -7,12 +7,12 @@
 
 #include <stdint.h>
 
+#include <memory>
 #include <string>
 
 #include "base/files/file.h"
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "net/base/net_errors.h"
 #include "net/http/http_byte_range.h"
@@ -67,10 +67,10 @@
 
   const std::string storage_domain_;
   FileSystemContext* file_system_context_;
-  scoped_ptr<storage::FileStreamReader> reader_;
+  std::unique_ptr<storage::FileStreamReader> reader_;
   FileSystemURL url_;
   bool is_directory_;
-  scoped_ptr<net::HttpResponseInfo> response_info_;
+  std::unique_ptr<net::HttpResponseInfo> response_info_;
   int64_t remaining_bytes_;
   net::Error range_parse_result_;
   net::HttpByteRange byte_range_;
diff --git a/storage/browser/fileapi/file_system_usage_cache.h b/storage/browser/fileapi/file_system_usage_cache.h
index c4d5474e1..2ce570c 100644
--- a/storage/browser/fileapi/file_system_usage_cache.h
+++ b/storage/browser/fileapi/file_system_usage_cache.h
@@ -8,11 +8,11 @@
 #include <stdint.h>
 
 #include <map>
+#include <memory>
 
 #include "base/files/file.h"
 #include "base/files/file_path.h"
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "base/sequenced_task_runner.h"
 #include "storage/browser/storage_browser_export.h"
@@ -92,7 +92,7 @@
 
   bool CalledOnValidThread();
 
-  scoped_ptr<TimedTaskHelper> timer_;
+  std::unique_ptr<TimedTaskHelper> timer_;
   CacheFiles cache_files_;
 
   scoped_refptr<base::SequencedTaskRunner> task_runner_;
diff --git a/storage/browser/fileapi/file_writer_delegate.cc b/storage/browser/fileapi/file_writer_delegate.cc
index 2b1354e..2050ca0b 100644
--- a/storage/browser/fileapi/file_writer_delegate.cc
+++ b/storage/browser/fileapi/file_writer_delegate.cc
@@ -5,6 +5,8 @@
 #include "storage/browser/fileapi/file_writer_delegate.h"
 
 #include <stdint.h>
+
+#include <memory>
 #include <utility>
 
 #include "base/bind.h"
@@ -24,7 +26,7 @@
 static const int kReadBufSize = 32768;
 
 FileWriterDelegate::FileWriterDelegate(
-    scoped_ptr<FileStreamWriter> file_stream_writer,
+    std::unique_ptr<FileStreamWriter> file_stream_writer,
     FlushPolicy flush_policy)
     : file_stream_writer_(std::move(file_stream_writer)),
       writing_started_(false),
@@ -38,7 +40,7 @@
 FileWriterDelegate::~FileWriterDelegate() {
 }
 
-void FileWriterDelegate::Start(scoped_ptr<net::URLRequest> request,
+void FileWriterDelegate::Start(std::unique_ptr<net::URLRequest> request,
                                const DelegateWriteCallback& write_callback) {
   write_callback_ = write_callback;
   request_ = std::move(request);
diff --git a/storage/browser/fileapi/file_writer_delegate.h b/storage/browser/fileapi/file_writer_delegate.h
index 2e58e25..2323ea5c 100644
--- a/storage/browser/fileapi/file_writer_delegate.h
+++ b/storage/browser/fileapi/file_writer_delegate.h
@@ -7,10 +7,11 @@
 
 #include <stdint.h>
 
+#include <memory>
+
 #include "base/files/file.h"
 #include "base/files/file_path.h"
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "base/time/time.h"
 #include "net/base/file_stream.h"
@@ -37,11 +38,11 @@
                               WriteProgressStatus write_status)>
       DelegateWriteCallback;
 
-  FileWriterDelegate(scoped_ptr<FileStreamWriter> file_writer,
+  FileWriterDelegate(std::unique_ptr<FileStreamWriter> file_writer,
                      FlushPolicy flush_policy);
   ~FileWriterDelegate() override;
 
-  void Start(scoped_ptr<net::URLRequest> request,
+  void Start(std::unique_ptr<net::URLRequest> request,
              const DelegateWriteCallback& write_callback);
 
   // Cancels the current write operation.  This will synchronously or
@@ -64,10 +65,9 @@
   void OnReadCompleted(net::URLRequest* request, int bytes_read) override;
 
  private:
-  void OnGetFileInfoAndStartRequest(
-      scoped_ptr<net::URLRequest> request,
-      base::File::Error error,
-      const base::File::Info& file_info);
+  void OnGetFileInfoAndStartRequest(std::unique_ptr<net::URLRequest> request,
+                                    base::File::Error error,
+                                    const base::File::Info& file_info);
   void Read();
   void OnDataReceived(int bytes_read);
   void Write();
@@ -86,7 +86,7 @@
   WriteProgressStatus GetCompletionStatusOnError() const;
 
   DelegateWriteCallback write_callback_;
-  scoped_ptr<FileStreamWriter> file_stream_writer_;
+  std::unique_ptr<FileStreamWriter> file_stream_writer_;
   base::Time last_progress_event_time_;
   bool writing_started_;
   FlushPolicy flush_policy_;
@@ -95,7 +95,7 @@
   int bytes_read_;
   scoped_refptr<net::IOBufferWithSize> io_buffer_;
   scoped_refptr<net::DrainableIOBuffer> cursor_;
-  scoped_ptr<net::URLRequest> request_;
+  std::unique_ptr<net::URLRequest> request_;
 
   base::WeakPtrFactory<FileWriterDelegate> weak_factory_;
 
diff --git a/storage/browser/fileapi/isolated_file_system_backend.cc b/storage/browser/fileapi/isolated_file_system_backend.cc
index bd8d9bf..5295a50 100644
--- a/storage/browser/fileapi/isolated_file_system_backend.cc
+++ b/storage/browser/fileapi/isolated_file_system_backend.cc
@@ -6,12 +6,14 @@
 
 #include <stdint.h>
 
+#include <memory>
 #include <string>
 
 #include "base/bind.h"
 #include "base/files/file_path.h"
 #include "base/files/file_util_proxy.h"
 #include "base/logging.h"
+#include "base/memory/ptr_util.h"
 #include "base/sequenced_task_runner.h"
 #include "base/thread_task_runner_handle.h"
 #include "storage/browser/fileapi/async_file_util_adapter.h"
@@ -108,7 +110,7 @@
     FileSystemContext* context,
     base::File::Error* error_code) const {
   return FileSystemOperation::Create(
-      url, context, make_scoped_ptr(new FileSystemOperationContext(context)));
+      url, context, base::WrapUnique(new FileSystemOperationContext(context)));
 }
 
 bool IsolatedFileSystemBackend::SupportsStreaming(
@@ -123,31 +125,27 @@
   return false;
 }
 
-scoped_ptr<storage::FileStreamReader>
+std::unique_ptr<storage::FileStreamReader>
 IsolatedFileSystemBackend::CreateFileStreamReader(
     const FileSystemURL& url,
     int64_t offset,
     int64_t max_bytes_to_read,
     const base::Time& expected_modification_time,
     FileSystemContext* context) const {
-  return scoped_ptr<storage::FileStreamReader>(
+  return std::unique_ptr<storage::FileStreamReader>(
       storage::FileStreamReader::CreateForLocalFile(
-          context->default_file_task_runner(),
-          url.path(),
-          offset,
+          context->default_file_task_runner(), url.path(), offset,
           expected_modification_time));
 }
 
-scoped_ptr<FileStreamWriter> IsolatedFileSystemBackend::CreateFileStreamWriter(
+std::unique_ptr<FileStreamWriter>
+IsolatedFileSystemBackend::CreateFileStreamWriter(
     const FileSystemURL& url,
     int64_t offset,
     FileSystemContext* context) const {
-  return scoped_ptr<FileStreamWriter>(
-      FileStreamWriter::CreateForLocalFile(
-          context->default_file_task_runner(),
-          url.path(),
-          offset,
-          FileStreamWriter::OPEN_EXISTING_FILE));
+  return std::unique_ptr<FileStreamWriter>(FileStreamWriter::CreateForLocalFile(
+      context->default_file_task_runner(), url.path(), offset,
+      FileStreamWriter::OPEN_EXISTING_FILE));
 }
 
 FileSystemQuotaUtil* IsolatedFileSystemBackend::GetQuotaUtil() {
diff --git a/storage/browser/fileapi/isolated_file_system_backend.h b/storage/browser/fileapi/isolated_file_system_backend.h
index 2e00818c..62321fa 100644
--- a/storage/browser/fileapi/isolated_file_system_backend.h
+++ b/storage/browser/fileapi/isolated_file_system_backend.h
@@ -7,7 +7,8 @@
 
 #include <stdint.h>
 
-#include "base/memory/scoped_ptr.h"
+#include <memory>
+
 #include "storage/browser/fileapi/file_system_backend.h"
 #include "storage/browser/fileapi/task_runner_bound_observer_list.h"
 
@@ -39,13 +40,13 @@
   bool SupportsStreaming(const FileSystemURL& url) const override;
   bool HasInplaceCopyImplementation(
       storage::FileSystemType type) const override;
-  scoped_ptr<storage::FileStreamReader> CreateFileStreamReader(
+  std::unique_ptr<storage::FileStreamReader> CreateFileStreamReader(
       const FileSystemURL& url,
       int64_t offset,
       int64_t max_bytes_to_read,
       const base::Time& expected_modification_time,
       FileSystemContext* context) const override;
-  scoped_ptr<FileStreamWriter> CreateFileStreamWriter(
+  std::unique_ptr<FileStreamWriter> CreateFileStreamWriter(
       const FileSystemURL& url,
       int64_t offset,
       FileSystemContext* context) const override;
@@ -66,9 +67,9 @@
   // As above but for platform webapps.
   const bool use_for_type_platform_app_;
 
-  scoped_ptr<AsyncFileUtilAdapter> isolated_file_util_;
-  scoped_ptr<AsyncFileUtilAdapter> dragged_file_util_;
-  scoped_ptr<AsyncFileUtilAdapter> transient_file_util_;
+  std::unique_ptr<AsyncFileUtilAdapter> isolated_file_util_;
+  std::unique_ptr<AsyncFileUtilAdapter> dragged_file_util_;
+  std::unique_ptr<AsyncFileUtilAdapter> transient_file_util_;
 };
 
 }  // namespace storage
diff --git a/storage/browser/fileapi/local_file_stream_reader.h b/storage/browser/fileapi/local_file_stream_reader.h
index 0f511bd..9e9cd81 100644
--- a/storage/browser/fileapi/local_file_stream_reader.h
+++ b/storage/browser/fileapi/local_file_stream_reader.h
@@ -7,6 +7,8 @@
 
 #include <stdint.h>
 
+#include <memory>
+
 #include "base/compiler_specific.h"
 #include "base/files/file.h"
 #include "base/files/file_path.h"
@@ -69,7 +71,7 @@
                                   const base::File::Info& file_info);
 
   scoped_refptr<base::TaskRunner> task_runner_;
-  scoped_ptr<net::FileStream> stream_impl_;
+  std::unique_ptr<net::FileStream> stream_impl_;
   const base::FilePath file_path_;
   const int64_t initial_offset_;
   const base::Time expected_modification_time_;
diff --git a/storage/browser/fileapi/local_file_stream_writer.h b/storage/browser/fileapi/local_file_stream_writer.h
index 43375e6..dce2f80 100644
--- a/storage/browser/fileapi/local_file_stream_writer.h
+++ b/storage/browser/fileapi/local_file_stream_writer.h
@@ -7,13 +7,13 @@
 
 #include <stdint.h>
 
+#include <memory>
 #include <utility>
 
 #include "base/callback.h"
 #include "base/compiler_specific.h"
 #include "base/files/file_path.h"
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "base/task_runner.h"
 #include "storage/browser/fileapi/file_stream_writer.h"
@@ -91,7 +91,7 @@
 
   // Current states of the operation.
   bool has_pending_operation_;
-  scoped_ptr<net::FileStream> stream_impl_;
+  std::unique_ptr<net::FileStream> stream_impl_;
   net::CompletionCallback cancel_callback_;
 
   base::WeakPtrFactory<LocalFileStreamWriter> weak_factory_;
diff --git a/storage/browser/fileapi/local_file_util.cc b/storage/browser/fileapi/local_file_util.cc
index b63b44f..0226899 100644
--- a/storage/browser/fileapi/local_file_util.cc
+++ b/storage/browser/fileapi/local_file_util.cc
@@ -6,9 +6,12 @@
 
 #include <stdint.h>
 
+#include <memory>
+
 #include "base/files/file_enumerator.h"
 #include "base/files/file_util.h"
 #include "base/files/file_util_proxy.h"
+#include "base/memory/ptr_util.h"
 #include "storage/browser/fileapi/async_file_util_adapter.h"
 #include "storage/browser/fileapi/file_system_context.h"
 #include "storage/browser/fileapi/file_system_operation_context.h"
@@ -134,18 +137,16 @@
   return error;
 }
 
-scoped_ptr<FileSystemFileUtil::AbstractFileEnumerator> LocalFileUtil::
-    CreateFileEnumerator(
-        FileSystemOperationContext* context,
-        const FileSystemURL& root_url) {
+std::unique_ptr<FileSystemFileUtil::AbstractFileEnumerator>
+LocalFileUtil::CreateFileEnumerator(FileSystemOperationContext* context,
+                                    const FileSystemURL& root_url) {
   base::FilePath file_path;
   if (GetLocalFilePath(context, root_url, &file_path) !=
       base::File::FILE_OK) {
-    return make_scoped_ptr(new EmptyFileEnumerator);
+    return base::WrapUnique(new EmptyFileEnumerator);
   }
-  return make_scoped_ptr(new LocalFileEnumerator(
-      file_path,
-      root_url.path(),
+  return base::WrapUnique(new LocalFileEnumerator(
+      file_path, root_url.path(),
       base::FileEnumerator::FILES | base::FileEnumerator::DIRECTORIES));
 }
 
diff --git a/storage/browser/fileapi/local_file_util.h b/storage/browser/fileapi/local_file_util.h
index c1ae05f..f2ede6c 100644
--- a/storage/browser/fileapi/local_file_util.h
+++ b/storage/browser/fileapi/local_file_util.h
@@ -7,10 +7,11 @@
 
 #include <stdint.h>
 
+#include <memory>
+
 #include "base/compiler_specific.h"
 #include "base/files/file_path.h"
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "storage/browser/fileapi/file_system_file_util.h"
 #include "storage/browser/storage_browser_export.h"
 
@@ -46,7 +47,7 @@
                                 const FileSystemURL& url,
                                 base::File::Info* file_info,
                                 base::FilePath* platform_file) override;
-  scoped_ptr<AbstractFileEnumerator> CreateFileEnumerator(
+  std::unique_ptr<AbstractFileEnumerator> CreateFileEnumerator(
       FileSystemOperationContext* context,
       const FileSystemURL& root_url) override;
   base::File::Error GetLocalFilePath(FileSystemOperationContext* context,
diff --git a/storage/browser/fileapi/native_file_util.cc b/storage/browser/fileapi/native_file_util.cc
index 852a02ea..aa2b6077 100644
--- a/storage/browser/fileapi/native_file_util.cc
+++ b/storage/browser/fileapi/native_file_util.cc
@@ -6,8 +6,11 @@
 
 #include <stdint.h>
 
+#include <memory>
+
 #include "base/files/file_enumerator.h"
 #include "base/files/file_util.h"
+#include "base/memory/ptr_util.h"
 #include "storage/browser/fileapi/file_system_operation_context.h"
 #include "storage/browser/fileapi/file_system_url.h"
 #include "storage/common/fileapi/file_system_mount_option.h"
@@ -205,12 +208,11 @@
   return base::File::FILE_OK;
 }
 
-scoped_ptr<FileSystemFileUtil::AbstractFileEnumerator>
-    NativeFileUtil::CreateFileEnumerator(const base::FilePath& root_path,
-                                         bool recursive) {
-  return make_scoped_ptr(new NativeFileEnumerator(
-      root_path,
-      recursive,
+std::unique_ptr<FileSystemFileUtil::AbstractFileEnumerator>
+NativeFileUtil::CreateFileEnumerator(const base::FilePath& root_path,
+                                     bool recursive) {
+  return base::WrapUnique(new NativeFileEnumerator(
+      root_path, recursive,
       base::FileEnumerator::FILES | base::FileEnumerator::DIRECTORIES));
 }
 
diff --git a/storage/browser/fileapi/native_file_util.h b/storage/browser/fileapi/native_file_util.h
index c1fea3f..046c4b7 100644
--- a/storage/browser/fileapi/native_file_util.h
+++ b/storage/browser/fileapi/native_file_util.h
@@ -7,11 +7,12 @@
 
 #include <stdint.h>
 
+#include <memory>
+
 #include "base/files/file.h"
 #include "base/files/file_path.h"
 #include "base/files/file_util_proxy.h"
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "storage/browser/fileapi/file_system_file_util.h"
 #include "storage/browser/storage_browser_export.h"
 
@@ -50,9 +51,8 @@
                                            bool recursive);
   static base::File::Error GetFileInfo(const base::FilePath& path,
                                        base::File::Info* file_info);
-  static scoped_ptr<FileSystemFileUtil::AbstractFileEnumerator>
-      CreateFileEnumerator(const base::FilePath& root_path,
-                           bool recursive);
+  static std::unique_ptr<FileSystemFileUtil::AbstractFileEnumerator>
+  CreateFileEnumerator(const base::FilePath& root_path, bool recursive);
   static base::File::Error Touch(const base::FilePath& path,
                                  const base::Time& last_access_time,
                                  const base::Time& last_modified_time);
diff --git a/storage/browser/fileapi/obfuscated_file_util.cc b/storage/browser/fileapi/obfuscated_file_util.cc
index 018249d..009ba440 100644
--- a/storage/browser/fileapi/obfuscated_file_util.cc
+++ b/storage/browser/fileapi/obfuscated_file_util.cc
@@ -7,6 +7,7 @@
 #include <stddef.h>
 #include <stdint.h>
 
+#include <memory>
 #include <queue>
 #include <tuple>
 
@@ -408,10 +409,9 @@
                              file_info, platform_file_path);
 }
 
-scoped_ptr<FileSystemFileUtil::AbstractFileEnumerator>
-    ObfuscatedFileUtil::CreateFileEnumerator(
-    FileSystemOperationContext* context,
-    const FileSystemURL& root_url) {
+std::unique_ptr<FileSystemFileUtil::AbstractFileEnumerator>
+ObfuscatedFileUtil::CreateFileEnumerator(FileSystemOperationContext* context,
+                                         const FileSystemURL& root_url) {
   return CreateFileEnumerator(context, root_url, false /* recursive */);
 }
 
@@ -796,16 +796,15 @@
   return storage::ScopedFile();
 }
 
-scoped_ptr<FileSystemFileUtil::AbstractFileEnumerator>
-    ObfuscatedFileUtil::CreateFileEnumerator(
-    FileSystemOperationContext* context,
-    const FileSystemURL& root_url,
-    bool recursive) {
+std::unique_ptr<FileSystemFileUtil::AbstractFileEnumerator>
+ObfuscatedFileUtil::CreateFileEnumerator(FileSystemOperationContext* context,
+                                         const FileSystemURL& root_url,
+                                         bool recursive) {
   SandboxDirectoryDatabase* db = GetDirectoryDatabase(root_url, false);
   if (!db) {
-    return scoped_ptr<AbstractFileEnumerator>(new EmptyFileEnumerator());
+    return std::unique_ptr<AbstractFileEnumerator>(new EmptyFileEnumerator());
   }
-  return scoped_ptr<AbstractFileEnumerator>(
+  return std::unique_ptr<AbstractFileEnumerator>(
       new ObfuscatedFileEnumerator(db, context, this, root_url, recursive));
 }
 
@@ -910,7 +909,7 @@
                           base::CompareCase::SENSITIVE))
       break;
     DCHECK(type_string.empty() || iter->first == key_prefix);
-    scoped_ptr<SandboxDirectoryDatabase> database(iter->second);
+    std::unique_ptr<SandboxDirectoryDatabase> database(iter->second);
     directories_.erase(iter++);
   }
 }
@@ -935,7 +934,7 @@
                           base::CompareCase::SENSITIVE))
       break;
     DCHECK(type_string.empty() || iter->first == key_prefix);
-    scoped_ptr<SandboxDirectoryDatabase> database(iter->second);
+    std::unique_ptr<SandboxDirectoryDatabase> database(iter->second);
     directories_.erase(iter++);
 
     // Continue to destroy databases even if it failed because it doesn't affect
@@ -970,7 +969,7 @@
         origin, type_string, false, &error);
     if (error != base::File::FILE_OK)
       continue;
-    scoped_ptr<SandboxDirectoryDatabase> db(
+    std::unique_ptr<SandboxDirectoryDatabase> db(
         new SandboxDirectoryDatabase(path, env_override_));
     if (db->Init(SandboxDirectoryDatabase::FAIL_ON_CORRUPTION)) {
       directories_[GetDirectoryDatabaseKey(origin, type_string)] = db.release();
diff --git a/storage/browser/fileapi/obfuscated_file_util.h b/storage/browser/fileapi/obfuscated_file_util.h
index e530ddb8..1ecfc4c 100644
--- a/storage/browser/fileapi/obfuscated_file_util.h
+++ b/storage/browser/fileapi/obfuscated_file_util.h
@@ -8,6 +8,7 @@
 #include <stdint.h>
 
 #include <map>
+#include <memory>
 #include <set>
 #include <string>
 #include <vector>
@@ -17,7 +18,6 @@
 #include "base/files/file_path.h"
 #include "base/files/file_util_proxy.h"
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "storage/browser/blob/shareable_file_reference.h"
 #include "storage/browser/fileapi/file_system_file_util.h"
 #include "storage/browser/fileapi/file_system_url.h"
@@ -126,7 +126,7 @@
                                 const FileSystemURL& url,
                                 base::File::Info* file_info,
                                 base::FilePath* platform_file) override;
-  scoped_ptr<AbstractFileEnumerator> CreateFileEnumerator(
+  std::unique_ptr<AbstractFileEnumerator> CreateFileEnumerator(
       FileSystemOperationContext* context,
       const FileSystemURL& root_url) override;
   base::File::Error GetLocalFilePath(FileSystemOperationContext* context,
@@ -159,7 +159,7 @@
       base::FilePath* platform_path) override;
 
   // Same as the other CreateFileEnumerator, but with recursive support.
-  scoped_ptr<AbstractFileEnumerator> CreateFileEnumerator(
+  std::unique_ptr<AbstractFileEnumerator> CreateFileEnumerator(
       FileSystemOperationContext* context,
       const FileSystemURL& root_url,
       bool recursive);
@@ -329,7 +329,7 @@
 
   typedef std::map<std::string, SandboxDirectoryDatabase*> DirectoryMap;
   DirectoryMap directories_;
-  scoped_ptr<SandboxOriginDatabaseInterface> origin_database_;
+  std::unique_ptr<SandboxOriginDatabaseInterface> origin_database_;
   scoped_refptr<storage::SpecialStoragePolicy> special_storage_policy_;
   base::FilePath file_system_directory_;
   leveldb::Env* env_override_;
@@ -338,7 +338,7 @@
   int64_t db_flush_delay_seconds_;
 
   scoped_refptr<base::SequencedTaskRunner> file_task_runner_;
-  scoped_ptr<TimedTaskHelper> timer_;
+  std::unique_ptr<TimedTaskHelper> timer_;
 
   GetTypeStringForURLCallback get_type_string_for_url_;
   std::set<std::string> known_type_strings_;
diff --git a/storage/browser/fileapi/plugin_private_file_system_backend.cc b/storage/browser/fileapi/plugin_private_file_system_backend.cc
index caac3858..6fd65cf3 100644
--- a/storage/browser/fileapi/plugin_private_file_system_backend.cc
+++ b/storage/browser/fileapi/plugin_private_file_system_backend.cc
@@ -5,7 +5,9 @@
 #include "storage/browser/fileapi/plugin_private_file_system_backend.h"
 
 #include <stdint.h>
+
 #include <map>
+#include <memory>
 #include <utility>
 
 #include "base/stl_util.h"
@@ -180,7 +182,7 @@
     const FileSystemURL& url,
     FileSystemContext* context,
     base::File::Error* error_code) const {
-  scoped_ptr<FileSystemOperationContext> operation_context(
+  std::unique_ptr<FileSystemOperationContext> operation_context(
       new FileSystemOperationContext(context));
   return FileSystemOperation::Create(url, context,
                                      std::move(operation_context));
@@ -196,22 +198,22 @@
   return false;
 }
 
-scoped_ptr<storage::FileStreamReader>
+std::unique_ptr<storage::FileStreamReader>
 PluginPrivateFileSystemBackend::CreateFileStreamReader(
     const FileSystemURL& url,
     int64_t offset,
     int64_t max_bytes_to_read,
     const base::Time& expected_modification_time,
     FileSystemContext* context) const {
-  return scoped_ptr<storage::FileStreamReader>();
+  return std::unique_ptr<storage::FileStreamReader>();
 }
 
-scoped_ptr<FileStreamWriter>
+std::unique_ptr<FileStreamWriter>
 PluginPrivateFileSystemBackend::CreateFileStreamWriter(
     const FileSystemURL& url,
     int64_t offset,
     FileSystemContext* context) const {
-  return scoped_ptr<FileStreamWriter>();
+  return std::unique_ptr<FileStreamWriter>();
 }
 
 FileSystemQuotaUtil* PluginPrivateFileSystemBackend::GetQuotaUtil() {
@@ -238,7 +240,7 @@
     std::set<GURL>* origins) {
   if (!CanHandleType(type))
     return;
-  scoped_ptr<ObfuscatedFileUtil::AbstractOriginEnumerator> enumerator(
+  std::unique_ptr<ObfuscatedFileUtil::AbstractOriginEnumerator> enumerator(
       obfuscated_file_util()->CreateOriginEnumerator());
   GURL origin;
   while (!(origin = enumerator->Next()).is_empty())
@@ -251,7 +253,7 @@
     std::set<GURL>* origins) {
   if (!CanHandleType(type))
     return;
-  scoped_ptr<ObfuscatedFileUtil::AbstractOriginEnumerator> enumerator(
+  std::unique_ptr<ObfuscatedFileUtil::AbstractOriginEnumerator> enumerator(
       obfuscated_file_util()->CreateOriginEnumerator());
   GURL origin;
   while (!(origin = enumerator->Next()).is_empty()) {
diff --git a/storage/browser/fileapi/plugin_private_file_system_backend.h b/storage/browser/fileapi/plugin_private_file_system_backend.h
index d2b17fd..95ffb64 100644
--- a/storage/browser/fileapi/plugin_private_file_system_backend.h
+++ b/storage/browser/fileapi/plugin_private_file_system_backend.h
@@ -7,6 +7,7 @@
 
 #include <stdint.h>
 
+#include <memory>
 #include <set>
 #include <string>
 
@@ -81,13 +82,13 @@
   bool SupportsStreaming(const FileSystemURL& url) const override;
   bool HasInplaceCopyImplementation(
       storage::FileSystemType type) const override;
-  scoped_ptr<storage::FileStreamReader> CreateFileStreamReader(
+  std::unique_ptr<storage::FileStreamReader> CreateFileStreamReader(
       const FileSystemURL& url,
       int64_t offset,
       int64_t max_bytes_to_read,
       const base::Time& expected_modification_time,
       FileSystemContext* context) const override;
-  scoped_ptr<FileStreamWriter> CreateFileStreamWriter(
+  std::unique_ptr<FileStreamWriter> CreateFileStreamWriter(
       const FileSystemURL& url,
       int64_t offset,
       FileSystemContext* context) const override;
@@ -126,7 +127,7 @@
   scoped_refptr<base::SequencedTaskRunner> file_task_runner_;
   const FileSystemOptions file_system_options_;
   const base::FilePath base_path_;
-  scoped_ptr<AsyncFileUtil> file_util_;
+  std::unique_ptr<AsyncFileUtil> file_util_;
   FileSystemIDToPluginMap* plugin_map_;  // Owned by file_util_.
   base::WeakPtrFactory<PluginPrivateFileSystemBackend> weak_factory_;
 
diff --git a/storage/browser/fileapi/quota/quota_reservation.cc b/storage/browser/fileapi/quota/quota_reservation.cc
index f15e35e8..e1a8ea0d7 100644
--- a/storage/browser/fileapi/quota/quota_reservation.cc
+++ b/storage/browser/fileapi/quota/quota_reservation.cc
@@ -6,6 +6,8 @@
 
 #include <stdint.h>
 
+#include <memory>
+
 #include "base/bind.h"
 #include "storage/browser/fileapi/quota/open_file_handle.h"
 #include "storage/browser/fileapi/quota/quota_reservation_buffer.h"
@@ -32,7 +34,7 @@
     remaining_quota_ = 0;
 }
 
-scoped_ptr<OpenFileHandle> QuotaReservation::GetOpenFileHandle(
+std::unique_ptr<OpenFileHandle> QuotaReservation::GetOpenFileHandle(
     const base::FilePath& platform_path) {
   DCHECK(sequence_checker_.CalledOnValidSequencedThread());
   DCHECK(!client_crashed_);
diff --git a/storage/browser/fileapi/quota/quota_reservation.h b/storage/browser/fileapi/quota/quota_reservation.h
index 0915114..61b0dd1 100644
--- a/storage/browser/fileapi/quota/quota_reservation.h
+++ b/storage/browser/fileapi/quota/quota_reservation.h
@@ -7,6 +7,8 @@
 
 #include <stdint.h>
 
+#include <memory>
+
 #include "base/files/file.h"
 #include "base/files/file_path.h"
 #include "base/macros.h"
@@ -38,7 +40,7 @@
 
   // Associates |platform_path| to the QuotaReservation instance.
   // Returns an OpenFileHandle instance that represents a quota managed file.
-  scoped_ptr<OpenFileHandle> GetOpenFileHandle(
+  std::unique_ptr<OpenFileHandle> GetOpenFileHandle(
       const base::FilePath& platform_path);
 
   // Should be called when the associated client is crashed.
diff --git a/storage/browser/fileapi/quota/quota_reservation_buffer.cc b/storage/browser/fileapi/quota/quota_reservation_buffer.cc
index 38b5a2a..6d6930a 100644
--- a/storage/browser/fileapi/quota/quota_reservation_buffer.cc
+++ b/storage/browser/fileapi/quota/quota_reservation_buffer.cc
@@ -6,7 +6,10 @@
 
 #include <stdint.h>
 
+#include <memory>
+
 #include "base/bind.h"
+#include "base/memory/ptr_util.h"
 #include "storage/browser/fileapi/quota/open_file_handle.h"
 #include "storage/browser/fileapi/quota/open_file_handle_context.h"
 #include "storage/browser/fileapi/quota/quota_reservation.h"
@@ -31,14 +34,14 @@
   return make_scoped_refptr(new QuotaReservation(this));
 }
 
-scoped_ptr<OpenFileHandle> QuotaReservationBuffer::GetOpenFileHandle(
+std::unique_ptr<OpenFileHandle> QuotaReservationBuffer::GetOpenFileHandle(
     QuotaReservation* reservation,
     const base::FilePath& platform_path) {
   DCHECK(sequence_checker_.CalledOnValidSequencedThread());
   OpenFileHandleContext** open_file = &open_files_[platform_path];
   if (!*open_file)
     *open_file = new OpenFileHandleContext(platform_path, this);
-  return make_scoped_ptr(new OpenFileHandle(reservation, *open_file));
+  return base::WrapUnique(new OpenFileHandle(reservation, *open_file));
 }
 
 void QuotaReservationBuffer::CommitFileGrowth(
diff --git a/storage/browser/fileapi/quota/quota_reservation_buffer.h b/storage/browser/fileapi/quota/quota_reservation_buffer.h
index 08031caf..b96388e 100644
--- a/storage/browser/fileapi/quota/quota_reservation_buffer.h
+++ b/storage/browser/fileapi/quota/quota_reservation_buffer.h
@@ -8,6 +8,7 @@
 #include <stdint.h>
 
 #include <map>
+#include <memory>
 
 #include "base/files/file.h"
 #include "base/files/file_path.h"
@@ -40,7 +41,7 @@
       FileSystemType type);
 
   scoped_refptr<QuotaReservation> CreateReservation();
-  scoped_ptr<OpenFileHandle> GetOpenFileHandle(
+  std::unique_ptr<OpenFileHandle> GetOpenFileHandle(
       QuotaReservation* reservation,
       const base::FilePath& platform_path);
   void CommitFileGrowth(int64_t quota_consumption, int64_t usage_delta);
diff --git a/storage/browser/fileapi/quota/quota_reservation_manager.cc b/storage/browser/fileapi/quota/quota_reservation_manager.cc
index c61b3b95..e182e7ec 100644
--- a/storage/browser/fileapi/quota/quota_reservation_manager.cc
+++ b/storage/browser/fileapi/quota/quota_reservation_manager.cc
@@ -5,6 +5,8 @@
 #include "storage/browser/fileapi/quota/quota_reservation_manager.h"
 
 #include <stdint.h>
+
+#include <memory>
 #include <utility>
 
 #include "storage/browser/fileapi/quota/quota_reservation.h"
@@ -13,7 +15,7 @@
 namespace storage {
 
 QuotaReservationManager::QuotaReservationManager(
-    scoped_ptr<QuotaBackend> backend)
+    std::unique_ptr<QuotaBackend> backend)
     : backend_(std::move(backend)), weak_ptr_factory_(this) {
   sequence_checker_.DetachFromSequence();
 }
diff --git a/storage/browser/fileapi/quota/quota_reservation_manager.h b/storage/browser/fileapi/quota/quota_reservation_manager.h
index 3a32ec77..fcd774e 100644
--- a/storage/browser/fileapi/quota/quota_reservation_manager.h
+++ b/storage/browser/fileapi/quota/quota_reservation_manager.h
@@ -8,6 +8,7 @@
 #include <stdint.h>
 
 #include <map>
+#include <memory>
 #include <utility>
 
 #include "base/callback_forward.h"
@@ -74,7 +75,7 @@
     DISALLOW_COPY_AND_ASSIGN(QuotaBackend);
   };
 
-  explicit QuotaReservationManager(scoped_ptr<QuotaBackend> backend);
+  explicit QuotaReservationManager(std::unique_ptr<QuotaBackend> backend);
   ~QuotaReservationManager();
 
   // The entry point of the quota reservation.  Creates new reservation object
@@ -110,7 +111,7 @@
       FileSystemType type);
   void ReleaseReservationBuffer(QuotaReservationBuffer* reservation_pool);
 
-  scoped_ptr<QuotaBackend> backend_;
+  std::unique_ptr<QuotaBackend> backend_;
 
   // Not owned.  The destructor of ReservationBuffer should erase itself from
   // |reservation_buffers_| by calling ReleaseReservationBuffer.
diff --git a/storage/browser/fileapi/sandbox_directory_database.cc b/storage/browser/fileapi/sandbox_directory_database.cc
index 20245d4..a4e845a 100644
--- a/storage/browser/fileapi/sandbox_directory_database.cc
+++ b/storage/browser/fileapi/sandbox_directory_database.cc
@@ -7,7 +7,9 @@
 #include <math.h>
 #include <stddef.h>
 #include <stdint.h>
+
 #include <algorithm>
+#include <memory>
 #include <set>
 #include <stack>
 
@@ -193,7 +195,8 @@
 }
 
 bool DatabaseCheckHelper::IsDatabaseEmpty() {
-  scoped_ptr<leveldb::Iterator> itr(db_->NewIterator(leveldb::ReadOptions()));
+  std::unique_ptr<leveldb::Iterator> itr(
+      db_->NewIterator(leveldb::ReadOptions()));
   itr->SeekToFirst();
   return !itr->Valid();
 }
@@ -204,7 +207,8 @@
   int64_t max_file_id = -1;
   std::set<FileId> file_ids;
 
-  scoped_ptr<leveldb::Iterator> itr(db_->NewIterator(leveldb::ReadOptions()));
+  std::unique_ptr<leveldb::Iterator> itr(
+      db_->NewIterator(leveldb::ReadOptions()));
   for (itr->SeekToFirst(); itr->Valid(); itr->Next()) {
     std::string key = itr->key().ToString();
     if (base::StartsWith(key, kChildLookupPrefix,
@@ -480,7 +484,8 @@
   DCHECK(children);
   std::string child_key_prefix = GetChildListingKeyPrefix(parent_id);
 
-  scoped_ptr<leveldb::Iterator> iter(db_->NewIterator(leveldb::ReadOptions()));
+  std::unique_ptr<leveldb::Iterator> iter(
+      db_->NewIterator(leveldb::ReadOptions()));
   iter->Seek(child_key_prefix);
   children->clear();
   while (iter->Valid() && base::StartsWith(iter->key().ToString(),
@@ -846,7 +851,7 @@
   // Verify that this is a totally new database, and initialize it.
   {
     // Scope the iterator to ensure deleted before database is closed.
-    scoped_ptr<leveldb::Iterator> iter(
+    std::unique_ptr<leveldb::Iterator> iter(
         db_->NewIterator(leveldb::ReadOptions()));
     iter->SeekToFirst();
     if (iter->Valid()) {  // DB was not empty--we shouldn't have been called.
diff --git a/storage/browser/fileapi/sandbox_directory_database.h b/storage/browser/fileapi/sandbox_directory_database.h
index 4899f93..6df9f17c 100644
--- a/storage/browser/fileapi/sandbox_directory_database.h
+++ b/storage/browser/fileapi/sandbox_directory_database.h
@@ -7,13 +7,13 @@
 
 #include <stdint.h>
 
+#include <memory>
 #include <string>
 #include <vector>
 
 #include "base/files/file.h"
 #include "base/files/file_path.h"
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/time/time.h"
 #include "storage/browser/storage_browser_export.h"
 
@@ -130,7 +130,7 @@
 
   const base::FilePath filesystem_data_directory_;
   leveldb::Env* env_override_;
-  scoped_ptr<leveldb::DB> db_;
+  std::unique_ptr<leveldb::DB> db_;
   base::Time last_reported_time_;
   DISALLOW_COPY_AND_ASSIGN(SandboxDirectoryDatabase);
 };
diff --git a/storage/browser/fileapi/sandbox_file_stream_writer.h b/storage/browser/fileapi/sandbox_file_stream_writer.h
index 91f8b0a0..f0dd1087 100644
--- a/storage/browser/fileapi/sandbox_file_stream_writer.h
+++ b/storage/browser/fileapi/sandbox_file_stream_writer.h
@@ -7,10 +7,11 @@
 
 #include <stdint.h>
 
+#include <memory>
+
 #include "base/files/file.h"
 #include "base/files/file_path.h"
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "storage/browser/blob/shareable_file_reference.h"
 #include "storage/browser/fileapi/file_stream_writer.h"
 #include "storage/browser/fileapi/file_system_url.h"
@@ -75,7 +76,7 @@
   scoped_refptr<FileSystemContext> file_system_context_;
   FileSystemURL url_;
   int64_t initial_offset_;
-  scoped_ptr<FileStreamWriter> local_file_writer_;
+  std::unique_ptr<FileStreamWriter> local_file_writer_;
   net::CompletionCallback cancel_callback_;
 
   UpdateObserverList observers_;
diff --git a/storage/browser/fileapi/sandbox_file_system_backend.cc b/storage/browser/fileapi/sandbox_file_system_backend.cc
index 2b64193..a9c2e05 100644
--- a/storage/browser/fileapi/sandbox_file_system_backend.cc
+++ b/storage/browser/fileapi/sandbox_file_system_backend.cc
@@ -5,6 +5,8 @@
 #include "storage/browser/fileapi/sandbox_file_system_backend.h"
 
 #include <stdint.h>
+
+#include <memory>
 #include <utility>
 
 #include "base/bind.h"
@@ -109,7 +111,7 @@
   DCHECK(error_code);
 
   DCHECK(delegate_);
-  scoped_ptr<FileSystemOperationContext> operation_context =
+  std::unique_ptr<FileSystemOperationContext> operation_context =
       delegate_->CreateFileSystemOperationContext(url, context, error_code);
   if (!operation_context)
     return NULL;
@@ -134,7 +136,7 @@
   return false;
 }
 
-scoped_ptr<storage::FileStreamReader>
+std::unique_ptr<storage::FileStreamReader>
 SandboxFileSystemBackend::CreateFileStreamReader(
     const FileSystemURL& url,
     int64_t offset,
@@ -147,7 +149,7 @@
       url, offset, expected_modification_time, context);
 }
 
-scoped_ptr<storage::FileStreamWriter>
+std::unique_ptr<storage::FileStreamWriter>
 SandboxFileSystemBackend::CreateFileStreamWriter(
     const FileSystemURL& url,
     int64_t offset,
diff --git a/storage/browser/fileapi/sandbox_file_system_backend.h b/storage/browser/fileapi/sandbox_file_system_backend.h
index 6ed885e..f103518 100644
--- a/storage/browser/fileapi/sandbox_file_system_backend.h
+++ b/storage/browser/fileapi/sandbox_file_system_backend.h
@@ -7,6 +7,7 @@
 
 #include <stdint.h>
 
+#include <memory>
 #include <set>
 #include <string>
 
@@ -14,7 +15,6 @@
 #include "base/files/file_path.h"
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
 #include "storage/browser/fileapi/file_system_backend.h"
 #include "storage/browser/fileapi/file_system_quota_util.h"
 #include "storage/browser/fileapi/sandbox_file_system_backend_delegate.h"
@@ -52,13 +52,13 @@
   bool SupportsStreaming(const FileSystemURL& url) const override;
   bool HasInplaceCopyImplementation(
       storage::FileSystemType type) const override;
-  scoped_ptr<storage::FileStreamReader> CreateFileStreamReader(
+  std::unique_ptr<storage::FileStreamReader> CreateFileStreamReader(
       const FileSystemURL& url,
       int64_t offset,
       int64_t max_bytes_to_read,
       const base::Time& expected_modification_time,
       FileSystemContext* context) const override;
-  scoped_ptr<FileStreamWriter> CreateFileStreamWriter(
+  std::unique_ptr<FileStreamWriter> CreateFileStreamWriter(
       const FileSystemURL& url,
       int64_t offset,
       FileSystemContext* context) const override;
diff --git a/storage/browser/fileapi/sandbox_file_system_backend_delegate.cc b/storage/browser/fileapi/sandbox_file_system_backend_delegate.cc
index 8849d7ee..f4714c7 100644
--- a/storage/browser/fileapi/sandbox_file_system_backend_delegate.cc
+++ b/storage/browser/fileapi/sandbox_file_system_backend_delegate.cc
@@ -7,6 +7,7 @@
 #include <stddef.h>
 #include <stdint.h>
 
+#include <memory>
 #include <vector>
 
 #include "base/command_line.h"
@@ -106,7 +107,7 @@
   }
 
  private:
-  scoped_ptr<ObfuscatedFileUtil::AbstractOriginEnumerator> enum_;
+  std::unique_ptr<ObfuscatedFileUtil::AbstractOriginEnumerator> enum_;
 };
 
 void OpenFileSystemOnFileTaskRunner(
@@ -192,7 +193,7 @@
                                                obfuscated_file_util(),
                                                usage_cache())),
       quota_reservation_manager_(new QuotaReservationManager(
-          scoped_ptr<QuotaReservationManager::QuotaBackend>(
+          std::unique_ptr<QuotaReservationManager::QuotaBackend>(
               new QuotaBackendImpl(file_task_runner_.get(),
                                    obfuscated_file_util(),
                                    usage_cache(),
@@ -274,21 +275,21 @@
   is_filesystem_opened_ = true;
 }
 
-scoped_ptr<FileSystemOperationContext>
+std::unique_ptr<FileSystemOperationContext>
 SandboxFileSystemBackendDelegate::CreateFileSystemOperationContext(
     const FileSystemURL& url,
     FileSystemContext* context,
     base::File::Error* error_code) const {
   if (!IsAccessValid(url)) {
     *error_code = base::File::FILE_ERROR_SECURITY;
-    return scoped_ptr<FileSystemOperationContext>();
+    return std::unique_ptr<FileSystemOperationContext>();
   }
 
   const UpdateObserverList* update_observers = GetUpdateObservers(url.type());
   const ChangeObserverList* change_observers = GetChangeObservers(url.type());
   DCHECK(update_observers);
 
-  scoped_ptr<FileSystemOperationContext> operation_context(
+  std::unique_ptr<FileSystemOperationContext> operation_context(
       new FileSystemOperationContext(context));
   operation_context->set_update_observers(*update_observers);
   operation_context->set_change_observers(
@@ -297,30 +298,30 @@
   return operation_context;
 }
 
-scoped_ptr<storage::FileStreamReader>
+std::unique_ptr<storage::FileStreamReader>
 SandboxFileSystemBackendDelegate::CreateFileStreamReader(
     const FileSystemURL& url,
     int64_t offset,
     const base::Time& expected_modification_time,
     FileSystemContext* context) const {
   if (!IsAccessValid(url))
-    return scoped_ptr<storage::FileStreamReader>();
-  return scoped_ptr<storage::FileStreamReader>(
+    return std::unique_ptr<storage::FileStreamReader>();
+  return std::unique_ptr<storage::FileStreamReader>(
       storage::FileStreamReader::CreateForFileSystemFile(
           context, url, offset, expected_modification_time));
 }
 
-scoped_ptr<FileStreamWriter>
+std::unique_ptr<FileStreamWriter>
 SandboxFileSystemBackendDelegate::CreateFileStreamWriter(
     const FileSystemURL& url,
     int64_t offset,
     FileSystemContext* context,
     FileSystemType type) const {
   if (!IsAccessValid(url))
-    return scoped_ptr<FileStreamWriter>();
+    return std::unique_ptr<FileStreamWriter>();
   const UpdateObserverList* observers = GetUpdateObservers(type);
   DCHECK(observers);
-  return scoped_ptr<FileStreamWriter>(
+  return std::unique_ptr<FileStreamWriter>(
       new SandboxFileStreamWriter(context, url, offset, *observers));
 }
 
@@ -352,7 +353,7 @@
     FileSystemType type, std::set<GURL>* origins) {
   DCHECK(file_task_runner_->RunsTasksOnCurrentThread());
   DCHECK(origins);
-  scoped_ptr<OriginEnumerator> enumerator(CreateOriginEnumerator());
+  std::unique_ptr<OriginEnumerator> enumerator(CreateOriginEnumerator());
   GURL origin;
   while (!(origin = enumerator->Next()).is_empty()) {
     if (enumerator->HasFileSystemType(type))
@@ -375,7 +376,7 @@
     std::set<GURL>* origins) {
   DCHECK(file_task_runner_->RunsTasksOnCurrentThread());
   DCHECK(origins);
-  scoped_ptr<OriginEnumerator> enumerator(CreateOriginEnumerator());
+  std::unique_ptr<OriginEnumerator> enumerator(CreateOriginEnumerator());
   GURL origin;
   while (!(origin = enumerator->Next()).is_empty()) {
     if (host == net::GetHostOrSpecFromURL(origin) &&
@@ -600,9 +601,9 @@
   FileSystemOperationContext operation_context(context);
   FileSystemURL url = context->CreateCrackedFileSystemURL(
       origin, type, base::FilePath());
-  scoped_ptr<FileSystemFileUtil::AbstractFileEnumerator> enumerator(
-      obfuscated_file_util()->CreateFileEnumerator(
-          &operation_context, url, true));
+  std::unique_ptr<FileSystemFileUtil::AbstractFileEnumerator> enumerator(
+      obfuscated_file_util()->CreateFileEnumerator(&operation_context, url,
+                                                   true));
 
   base::FilePath file_path_each;
   int64_t usage = 0;
diff --git a/storage/browser/fileapi/sandbox_file_system_backend_delegate.h b/storage/browser/fileapi/sandbox_file_system_backend_delegate.h
index b5c731e..1a1696f4 100644
--- a/storage/browser/fileapi/sandbox_file_system_backend_delegate.h
+++ b/storage/browser/fileapi/sandbox_file_system_backend_delegate.h
@@ -8,6 +8,7 @@
 #include <stdint.h>
 
 #include <map>
+#include <memory>
 #include <set>
 #include <string>
 #include <utility>
@@ -15,7 +16,6 @@
 #include "base/files/file_path.h"
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "base/threading/thread_checker.h"
 #include "base/time/time.h"
@@ -113,16 +113,16 @@
       OpenFileSystemMode mode,
       const OpenFileSystemCallback& callback,
       const GURL& root_url);
-  scoped_ptr<FileSystemOperationContext> CreateFileSystemOperationContext(
+  std::unique_ptr<FileSystemOperationContext> CreateFileSystemOperationContext(
       const FileSystemURL& url,
       FileSystemContext* context,
       base::File::Error* error_code) const;
-  scoped_ptr<storage::FileStreamReader> CreateFileStreamReader(
+  std::unique_ptr<storage::FileStreamReader> CreateFileStreamReader(
       const FileSystemURL& url,
       int64_t offset,
       const base::Time& expected_modification_time,
       FileSystemContext* context) const;
-  scoped_ptr<FileStreamWriter> CreateFileStreamWriter(
+  std::unique_ptr<FileStreamWriter> CreateFileStreamWriter(
       const FileSystemURL& url,
       int64_t offset,
       FileSystemContext* context,
@@ -234,10 +234,10 @@
 
   scoped_refptr<base::SequencedTaskRunner> file_task_runner_;
 
-  scoped_ptr<AsyncFileUtil> sandbox_file_util_;
-  scoped_ptr<FileSystemUsageCache> file_system_usage_cache_;
-  scoped_ptr<SandboxQuotaObserver> quota_observer_;
-  scoped_ptr<QuotaReservationManager> quota_reservation_manager_;
+  std::unique_ptr<AsyncFileUtil> sandbox_file_util_;
+  std::unique_ptr<FileSystemUsageCache> file_system_usage_cache_;
+  std::unique_ptr<SandboxQuotaObserver> quota_observer_;
+  std::unique_ptr<QuotaReservationManager> quota_reservation_manager_;
 
   scoped_refptr<storage::SpecialStoragePolicy> special_storage_policy_;
 
diff --git a/storage/browser/fileapi/sandbox_origin_database.cc b/storage/browser/fileapi/sandbox_origin_database.cc
index 9bdadc40..992c5cf 100644
--- a/storage/browser/fileapi/sandbox_origin_database.cc
+++ b/storage/browser/fileapi/sandbox_origin_database.cc
@@ -6,6 +6,7 @@
 
 #include <stdint.h>
 
+#include <memory>
 #include <set>
 #include <utility>
 
@@ -289,7 +290,8 @@
     origins->clear();
     return false;
   }
-  scoped_ptr<leveldb::Iterator> iter(db_->NewIterator(leveldb::ReadOptions()));
+  std::unique_ptr<leveldb::Iterator> iter(
+      db_->NewIterator(leveldb::ReadOptions()));
   std::string origin_key_prefix = OriginToOriginKey(std::string());
   iter->Seek(origin_key_prefix);
   origins->clear();
@@ -333,7 +335,7 @@
   // Verify that this is a totally new database, and initialize it.
   {
     // Scope the iterator to ensure it is deleted before database is closed.
-    scoped_ptr<leveldb::Iterator> iter(
+    std::unique_ptr<leveldb::Iterator> iter(
         db_->NewIterator(leveldb::ReadOptions()));
     iter->SeekToFirst();
     if (iter->Valid()) {  // DB was not empty, but had no last path number!
diff --git a/storage/browser/fileapi/sandbox_origin_database.h b/storage/browser/fileapi/sandbox_origin_database.h
index c1bd7a3..84fda561a 100644
--- a/storage/browser/fileapi/sandbox_origin_database.h
+++ b/storage/browser/fileapi/sandbox_origin_database.h
@@ -5,11 +5,11 @@
 #ifndef STORAGE_BROWSER_FILEAPI_SANDBOX_ORIGIN_DATABASE_H_
 #define STORAGE_BROWSER_FILEAPI_SANDBOX_ORIGIN_DATABASE_H_
 
+#include <memory>
 #include <string>
 #include <vector>
 
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/time/time.h"
 #include "storage/browser/fileapi/sandbox_origin_database_interface.h"
 
@@ -70,7 +70,7 @@
 
   base::FilePath file_system_directory_;
   leveldb::Env* env_override_;
-  scoped_ptr<leveldb::DB> db_;
+  std::unique_ptr<leveldb::DB> db_;
   base::Time last_reported_time_;
   DISALLOW_COPY_AND_ASSIGN(SandboxOriginDatabase);
 };
diff --git a/storage/browser/fileapi/sandbox_prioritized_origin_database.h b/storage/browser/fileapi/sandbox_prioritized_origin_database.h
index 78435656..053d61e9 100644
--- a/storage/browser/fileapi/sandbox_prioritized_origin_database.h
+++ b/storage/browser/fileapi/sandbox_prioritized_origin_database.h
@@ -5,12 +5,12 @@
 #ifndef STORAGE_BROWSER_FILEAPI_SANDBOX_PRIORITIZED_ORIGIN_DATABASE_H_
 #define STORAGE_BROWSER_FILEAPI_SANDBOX_PRIORITIZED_ORIGIN_DATABASE_H_
 
+#include <memory>
 #include <string>
 #include <vector>
 
 #include "base/files/file_path.h"
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "storage/browser/fileapi/sandbox_origin_database_interface.h"
 
 namespace leveldb {
@@ -66,8 +66,8 @@
   const base::FilePath file_system_directory_;
   leveldb::Env* env_override_;
   const base::FilePath primary_origin_file_;
-  scoped_ptr<SandboxOriginDatabase> origin_database_;
-  scoped_ptr<SandboxIsolatedOriginDatabase> primary_origin_database_;
+  std::unique_ptr<SandboxOriginDatabase> origin_database_;
+  std::unique_ptr<SandboxIsolatedOriginDatabase> primary_origin_database_;
 
   DISALLOW_COPY_AND_ASSIGN(SandboxPrioritizedOriginDatabase);
 };
diff --git a/storage/browser/fileapi/sandbox_quota_observer.h b/storage/browser/fileapi/sandbox_quota_observer.h
index 769c062..729bf0a 100644
--- a/storage/browser/fileapi/sandbox_quota_observer.h
+++ b/storage/browser/fileapi/sandbox_quota_observer.h
@@ -8,12 +8,12 @@
 #include <stdint.h>
 
 #include <map>
+#include <memory>
 
 #include "base/compiler_specific.h"
 #include "base/files/file_path.h"
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "storage/browser/fileapi/file_observers.h"
 #include "storage/browser/fileapi/file_system_url.h"
@@ -74,7 +74,7 @@
   FileSystemUsageCache* file_system_usage_cache_;
 
   PendingUpdateNotificationMap pending_update_notification_;
-  scoped_ptr<TimedTaskHelper> delayed_cache_update_helper_;
+  std::unique_ptr<TimedTaskHelper> delayed_cache_update_helper_;
 
   DISALLOW_COPY_AND_ASSIGN(SandboxQuotaObserver);
 };
diff --git a/storage/browser/fileapi/timed_task_helper.cc b/storage/browser/fileapi/timed_task_helper.cc
index 69635d00..17adbd7 100644
--- a/storage/browser/fileapi/timed_task_helper.cc
+++ b/storage/browser/fileapi/timed_task_helper.cc
@@ -4,10 +4,12 @@
 
 #include "storage/browser/fileapi/timed_task_helper.h"
 
+#include <memory>
 #include <utility>
 
 #include "base/bind.h"
 #include "base/logging.h"
+#include "base/memory/ptr_util.h"
 #include "base/sequenced_task_runner.h"
 
 namespace storage {
@@ -58,18 +60,18 @@
 
   // Initialize the tracker for the first time.
   tracker_ = new Tracker(this);
-  PostDelayedTask(make_scoped_ptr(tracker_), delay_);
+  PostDelayedTask(base::WrapUnique(tracker_), delay_);
 }
 
 // static
-void TimedTaskHelper::Fired(scoped_ptr<Tracker> tracker) {
+void TimedTaskHelper::Fired(std::unique_ptr<Tracker> tracker) {
   if (!tracker->timer)
     return;
   TimedTaskHelper* timer = tracker->timer;
   timer->OnFired(std::move(tracker));
 }
 
-void TimedTaskHelper::OnFired(scoped_ptr<Tracker> tracker) {
+void TimedTaskHelper::OnFired(std::unique_ptr<Tracker> tracker) {
   DCHECK(task_runner_->RunsTasksOnCurrentThread());
   base::TimeTicks now = base::TimeTicks::Now();
   if (desired_run_time_ > now) {
@@ -82,7 +84,7 @@
   task.Run();
 }
 
-void TimedTaskHelper::PostDelayedTask(scoped_ptr<Tracker> tracker,
+void TimedTaskHelper::PostDelayedTask(std::unique_ptr<Tracker> tracker,
                                       base::TimeDelta delay) {
   task_runner_->PostDelayedTask(
       posted_from_,
diff --git a/storage/browser/fileapi/timed_task_helper.h b/storage/browser/fileapi/timed_task_helper.h
index fb0d5f2..09a6137f 100644
--- a/storage/browser/fileapi/timed_task_helper.h
+++ b/storage/browser/fileapi/timed_task_helper.h
@@ -5,11 +5,12 @@
 #ifndef STORAGE_BROWSER_FILEAPI_TIMED_TASK_HELPER_H_
 #define STORAGE_BROWSER_FILEAPI_TIMED_TASK_HELPER_H_
 
+#include <memory>
+
 #include "base/callback.h"
 #include "base/location.h"
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/time/time.h"
 #include "storage/browser/storage_browser_export.h"
 
@@ -36,10 +37,10 @@
 
  private:
   struct Tracker;
-  static void Fired(scoped_ptr<Tracker> tracker);
+  static void Fired(std::unique_ptr<Tracker> tracker);
 
-  void OnFired(scoped_ptr<Tracker> tracker);
-  void PostDelayedTask(scoped_ptr<Tracker> tracker, base::TimeDelta delay);
+  void OnFired(std::unique_ptr<Tracker> tracker);
+  void PostDelayedTask(std::unique_ptr<Tracker> tracker, base::TimeDelta delay);
 
   scoped_refptr<base::SequencedTaskRunner> task_runner_;
   tracked_objects::Location posted_from_;
diff --git a/storage/browser/fileapi/transient_file_util.h b/storage/browser/fileapi/transient_file_util.h
index d3e3da7b..68440e0 100644
--- a/storage/browser/fileapi/transient_file_util.h
+++ b/storage/browser/fileapi/transient_file_util.h
@@ -5,8 +5,9 @@
 #ifndef STORAGE_BROWSER_FILEAPI_TRANSIENT_FILE_UTIL_H_
 #define STORAGE_BROWSER_FILEAPI_TRANSIENT_FILE_UTIL_H_
 
+#include <memory>
+
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "storage/browser/fileapi/local_file_util.h"
 #include "storage/browser/storage_browser_export.h"
 
diff --git a/storage/browser/quota/client_usage_tracker.h b/storage/browser/quota/client_usage_tracker.h
index 359b6807..5b5a84b 100644
--- a/storage/browser/quota/client_usage_tracker.h
+++ b/storage/browser/quota/client_usage_tracker.h
@@ -8,13 +8,13 @@
 #include <stdint.h>
 
 #include <map>
+#include <memory>
 #include <set>
 #include <string>
 #include <vector>
 
 #include "base/callback.h"
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/threading/non_thread_safe.h"
 #include "storage/browser/quota/quota_callbacks.h"
 #include "storage/browser/quota/quota_client.h"
diff --git a/storage/browser/quota/quota_database.h b/storage/browser/quota/quota_database.h
index bcda36922..4eae12d9 100644
--- a/storage/browser/quota/quota_database.h
+++ b/storage/browser/quota/quota_database.h
@@ -8,13 +8,13 @@
 #include <stddef.h>
 #include <stdint.h>
 
+#include <memory>
 #include <set>
 #include <string>
 
 #include "base/callback.h"
 #include "base/files/file_path.h"
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/time/time.h"
 #include "base/timer/timer.h"
 #include "storage/browser/storage_browser_export.h"
@@ -188,8 +188,8 @@
 
   base::FilePath db_file_path_;
 
-  scoped_ptr<sql::Connection> db_;
-  scoped_ptr<sql::MetaTable> meta_table_;
+  std::unique_ptr<sql::Connection> db_;
+  std::unique_ptr<sql::MetaTable> meta_table_;
   bool is_recreating_;
   bool is_disabled_;
 
diff --git a/storage/browser/quota/quota_manager.cc b/storage/browser/quota/quota_manager.cc
index a464f67..26e469a9 100644
--- a/storage/browser/quota/quota_manager.cc
+++ b/storage/browser/quota/quota_manager.cc
@@ -6,9 +6,11 @@
 
 #include <stddef.h>
 #include <stdint.h>
+
 #include <algorithm>
 #include <functional>
 #include <limits>
+#include <memory>
 #include <utility>
 
 #include "base/bind.h"
@@ -1001,7 +1003,7 @@
 }
 
 void QuotaManager::SetTemporaryStorageEvictionPolicy(
-    scoped_ptr<QuotaEvictionPolicy> policy) {
+    std::unique_ptr<QuotaEvictionPolicy> policy) {
   temporary_storage_eviction_policy_ = std::move(policy);
 }
 
diff --git a/storage/browser/quota/quota_manager.h b/storage/browser/quota/quota_manager.h
index d3f3a3f..cd691db 100644
--- a/storage/browser/quota/quota_manager.h
+++ b/storage/browser/quota/quota_manager.h
@@ -10,6 +10,7 @@
 #include <deque>
 #include <list>
 #include <map>
+#include <memory>
 #include <set>
 #include <string>
 #include <utility>
@@ -19,7 +20,6 @@
 #include "base/files/file_path.h"
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "base/sequenced_task_runner_helpers.h"
 #include "storage/browser/quota/quota_callbacks.h"
@@ -204,7 +204,7 @@
 
   // Set the eviction policy to use when choosing an origin to evict.
   void SetTemporaryStorageEvictionPolicy(
-      scoped_ptr<QuotaEvictionPolicy> policy);
+      std::unique_ptr<QuotaEvictionPolicy> policy);
 
   // DeleteOriginData and DeleteHostData (surprisingly enough) delete data of a
   // particular StorageType associated with either a specific origin or set of
@@ -465,22 +465,22 @@
   bool eviction_disabled_;
   scoped_refptr<base::SingleThreadTaskRunner> io_thread_;
   scoped_refptr<base::SequencedTaskRunner> db_thread_;
-  mutable scoped_ptr<QuotaDatabase> database_;
+  mutable std::unique_ptr<QuotaDatabase> database_;
 
   GetOriginCallback lru_origin_callback_;
   std::set<GURL> access_notified_origins_;
 
   QuotaClientList clients_;
 
-  scoped_ptr<UsageTracker> temporary_usage_tracker_;
-  scoped_ptr<UsageTracker> persistent_usage_tracker_;
-  scoped_ptr<UsageTracker> syncable_usage_tracker_;
+  std::unique_ptr<UsageTracker> temporary_usage_tracker_;
+  std::unique_ptr<UsageTracker> persistent_usage_tracker_;
+  std::unique_ptr<UsageTracker> syncable_usage_tracker_;
   // TODO(michaeln): Need a way to clear the cache, drop and
   // reinstantiate the trackers when they're not handling requests.
 
-  scoped_ptr<QuotaTemporaryStorageEvictor> temporary_storage_evictor_;
+  std::unique_ptr<QuotaTemporaryStorageEvictor> temporary_storage_evictor_;
   EvictionContext eviction_context_;
-  scoped_ptr<QuotaEvictionPolicy> temporary_storage_eviction_policy_;
+  std::unique_ptr<QuotaEvictionPolicy> temporary_storage_eviction_policy_;
   bool is_getting_eviction_origin_;
 
   ClosureQueue db_initialization_callbacks_;
@@ -505,7 +505,7 @@
   // values. The default value points to QuotaManager::GetVolumeInfo.
   GetVolumeInfoFn get_volume_info_fn_;
 
-  scoped_ptr<StorageMonitor> storage_monitor_;
+  std::unique_ptr<StorageMonitor> storage_monitor_;
 
   base::WeakPtrFactory<QuotaManager> weak_factory_;
 
diff --git a/storage/browser/quota/quota_manager_proxy.h b/storage/browser/quota/quota_manager_proxy.h
index 787a10b..19a1f89d 100644
--- a/storage/browser/quota/quota_manager_proxy.h
+++ b/storage/browser/quota/quota_manager_proxy.h
@@ -7,11 +7,12 @@
 
 #include <stdint.h>
 
+#include <memory>
+
 #include "base/callback.h"
 #include "base/files/file_path.h"
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "base/sequenced_task_runner_helpers.h"
 #include "storage/browser/quota/quota_callbacks.h"
diff --git a/storage/browser/quota/usage_tracker.h b/storage/browser/quota/usage_tracker.h
index e62b292..994fc58 100644
--- a/storage/browser/quota/usage_tracker.h
+++ b/storage/browser/quota/usage_tracker.h
@@ -8,12 +8,12 @@
 #include <stdint.h>
 
 #include <map>
+#include <memory>
 #include <set>
 #include <string>
 
 #include "base/callback.h"
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/threading/non_thread_safe.h"
 #include "storage/browser/quota/quota_callbacks.h"
 #include "storage/browser/quota/quota_client.h"
diff --git a/third_party/WebKit/LayoutTests/TestExpectations b/third_party/WebKit/LayoutTests/TestExpectations
index 374331dd..8d4d2fd 100644
--- a/third_party/WebKit/LayoutTests/TestExpectations
+++ b/third_party/WebKit/LayoutTests/TestExpectations
@@ -265,6 +265,26 @@
 crbug.com/542541 [ Debug ] virtual/trustedeventsdefaultaction/fast/events/click-count.html [ Pass Failure ]
 crbug.com/542541 [ Debug ] virtual/pointerevent/fast/events/click-count.html [ Pass Failure ]
 
+crbug.com/273306 [ Mac Win7 ] compositing/squashing/squashing-print.html [ NeedsRebaseline ]
+crbug.com/273306 [ Mac Win7 ] printing/ellipsis-printing-style.html [ NeedsRebaseline ]
+crbug.com/273306 [ Mac Win ] printing/forced-break-tree-dump-only.html [ NeedsRebaseline ]
+crbug.com/273306 [ Mac Win7 ] printing/iframe-print.html [ NeedsRebaseline ]
+crbug.com/273306 [ Mac Win ] printing/page-count-relayout-shrink.html [ NeedsRebaseline ]
+crbug.com/273306 [ Mac Win ] printing/page-count-with-one-word.html [ NeedsRebaseline ]
+crbug.com/273306 [ Mac Win7 ] printing/simultaneous-position-float-change.html [ NeedsRebaseline ]
+crbug.com/273306 [ Mac Win ] printing/quirks-percentage-height-body.html [ NeedsRebaseline ]
+crbug.com/273306 [ Mac Win ] printing/quirks-percentage-height.html [ NeedsRebaseline ]
+crbug.com/273306 [ Mac Win ] printing/standards-percentage-heights.html [ NeedsRebaseline ]
+crbug.com/273306 [ Mac Win ] printing/subframes-percentage-height.html [ NeedsRebaseline ]
+crbug.com/273306 [ Mac Win7 ] virtual/threaded/printing/ellipsis-printing-style.html [ NeedsRebaseline ]
+crbug.com/273306 [ Mac Win7 ] virtual/threaded/printing/iframe-print.html [ NeedsRebaseline ]
+crbug.com/273306 [ Mac Win ] virtual/threaded/printing/quirks-percentage-height-body.html [ NeedsRebaseline ]
+crbug.com/273306 [ Mac Win ] virtual/threaded/printing/quirks-percentage-height.html [ NeedsRebaseline ]
+crbug.com/273306 [ Mac Win ] virtual/threaded/printing/standards-percentage-heights.html [ NeedsRebaseline ]
+crbug.com/273306 [ Mac Win ] virtual/threaded/printing/subframes-percentage-height.html [ NeedsRebaseline ]
+crbug.com/273306 [ Mac Win ] virtual/threaded/printing/forced-break-tree-dump-only.html [ NeedsRebaseline ]
+crbug.com/273306 [ Mac Win ] virtual/threaded/printing/page-count-relayout-shrink.html [ NeedsRebaseline ]
+
 # TODO(oshima): Mac Android are currently not supported.
 crbug.com/567837 [ Mac Android ] virtual/scalefactor200withzoom/fast/hidpi/static [ Skip ]
 
@@ -1163,17 +1183,9 @@
 crbug.com/521730 [ Win10 ] fast/text/whitespace/nbsp-mode-and-linewraps.html [ Failure ]
 crbug.com/521730 [ Win10 ] svg/css/text-gradient-shadow.svg [ Failure ]
 crbug.com/521730 [ Win10 ] compositing/squashing/squashing-print.html [ Failure ]
-crbug.com/521730 [ Win10 ] printing/quirks-percentage-height-body.html [ Failure ]
-crbug.com/521730 [ Win10 ] printing/quirks-percentage-height.html [ Failure ]
 crbug.com/521730 [ Win10 ] printing/simultaneous-position-float-change.html [ Failure ]
-crbug.com/521730 [ Win10 ] printing/standards-percentage-heights.html [ Failure ]
-crbug.com/521730 [ Win10 ] printing/subframes-percentage-height.html [ Failure ]
 crbug.com/521730 [ Win10 ] printing/webgl-repeated-printing-preservedrawingbuffer.html [ Failure ]
-crbug.com/521730 [ Win10 ] virtual/threaded/printing/quirks-percentage-height-body.html [ Failure ]
-crbug.com/521730 [ Win10 ] virtual/threaded/printing/quirks-percentage-height.html [ Failure ]
 crbug.com/521730 [ Win10 ] virtual/threaded/printing/simultaneous-position-float-change.html [ Failure ]
-crbug.com/521730 [ Win10 ] virtual/threaded/printing/standards-percentage-heights.html [ Failure ]
-crbug.com/521730 [ Win10 ] virtual/threaded/printing/subframes-percentage-height.html [ Failure ]
 crbug.com/521730 [ Win10 ] virtual/threaded/printing/webgl-repeated-printing-preservedrawingbuffer.html [ Failure ]
 crbug.com/521730 [ Win10 ] fast/text/emphasis-combined-text.html [ Failure ]
 crbug.com/521730 [ Win10 ] fast/text/font-weight-variant.html [ Failure ]
@@ -1366,18 +1378,6 @@
 
 crbug.com/594595 [ Linux ] http/tests/security/mixedContent/websocket/insecure-websocket-in-secure-page-worker-allowed.html [ Timeout Pass ]
 
-crbug.com/273306 [ Mac Win7 ] compositing/squashing/squashing-print.html [ NeedsManualRebaseline ]
-crbug.com/273306 [ Mac Win7 ] printing/ellipsis-printing-style.html [ NeedsManualRebaseline ]
-crbug.com/273306 [ Mac Win ] printing/forced-break-tree-dump-only.html [ NeedsManualRebaseline ]
-crbug.com/273306 [ Mac Win7 ] printing/iframe-print.html [ NeedsManualRebaseline ]
-crbug.com/273306 [ Mac Win ] printing/page-count-relayout-shrink.html [ NeedsManualRebaseline ]
-crbug.com/273306 [ Mac Win ] printing/page-count-with-one-word.html [ NeedsManualRebaseline ]
-crbug.com/273306 [ Mac Win7 ] printing/simultaneous-position-float-change.html [ NeedsManualRebaseline ]
-crbug.com/273306 [ Mac Win7 ] virtual/threaded/printing/ellipsis-printing-style.html [ NeedsManualRebaseline ]
-crbug.com/273306 [ Mac Win7 ] virtual/threaded/printing/iframe-print.html [ NeedsManualRebaseline ]
-crbug.com/273306 virtual/threaded/printing/forced-break-tree-dump-only.html [ NeedsManualRebaseline ]
-crbug.com/273306 virtual/threaded/printing/page-count-relayout-shrink.html [ NeedsManualRebaseline ]
-
 crbug.com/453002 [ Win ] fast/text/international/text-combine-image-test.html [ Failure Pass ]
 crbug.com/453002 [ Win ] fast/text/international/vertical-text-glyph-test.html [ Failure Pass ]
 crbug.com/453002 [ Win ] fast/text/justify-ideograph-vertical.html [ Failure Pass ]
diff --git a/third_party/WebKit/LayoutTests/compositing/squashing/squashing-print-expected.png b/third_party/WebKit/LayoutTests/compositing/squashing/squashing-print-expected.png
index 626ae3d..23ca9dfb 100644
--- a/third_party/WebKit/LayoutTests/compositing/squashing/squashing-print-expected.png
+++ b/third_party/WebKit/LayoutTests/compositing/squashing/squashing-print-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/compositing/squashing/squashing-print-expected.txt b/third_party/WebKit/LayoutTests/compositing/squashing/squashing-print-expected.txt
index 6e245ca..21724937 100644
--- a/third_party/WebKit/LayoutTests/compositing/squashing/squashing-print-expected.txt
+++ b/third_party/WebKit/LayoutTests/compositing/squashing/squashing-print-expected.txt
@@ -1,8 +1,8 @@
-layer at (0,0) size 1000x750
-  LayoutView at (0,0) size 1000x750
-layer at (0,0) size 1000x118
-  LayoutBlockFlow {HTML} at (0,0) size 1000x118
-    LayoutBlockFlow {BODY} at (8,8) size 984x102
+layer at (0,0) size 1066x799
+  LayoutView at (0,0) size 1066x799
+layer at (0,0) size 1066x118
+  LayoutBlockFlow {HTML} at (0,0) size 1066x118
+    LayoutBlockFlow {BODY} at (8,8) size 1050x102
 layer at (8,8) size 102x102
   LayoutBlockFlow {DIV} at (0,0) size 102x102 [border: (1px solid #000000)]
 layer at (50,50) size 102x102
diff --git a/third_party/WebKit/LayoutTests/editing/execCommand/insert_paragraph/insert_paragraph_pre_crash.html b/third_party/WebKit/LayoutTests/editing/execCommand/insert_paragraph/insert_paragraph_pre_crash.html
new file mode 100644
index 0000000..c3517c4
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/editing/execCommand/insert_paragraph/insert_paragraph_pre_crash.html
@@ -0,0 +1,15 @@
+<!doctype html>
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<div contenteditable id="sample"><span style="white-space:pre"> </span><span id="test">z</span></div>
+<div id="log"></div>
+<script>
+test(function() {
+    var selection = window.getSelection();
+    selection.collapse(document.getElementById('test'), 0);
+    document.execCommand('InsertParagraph');
+    // Make sure we don't replace a whitespace in "whitespace:pre" to "&nbsp;"
+    // and having DIV around "test".
+    assert_equals(document.getElementById('sample').innerHTML, '<span style="white-space:pre"> </span><div><span id="test">z</span></div>');
+}, 'InsertParagraph should not crash with whitespace:pre');
+</script>
diff --git a/third_party/WebKit/LayoutTests/editing/selection/selection-plugin-clear-crash.html b/third_party/WebKit/LayoutTests/editing/selection/selection-plugin-clear-crash.html
index fc66b5e..623e49d8 100644
--- a/third_party/WebKit/LayoutTests/editing/selection/selection-plugin-clear-crash.html
+++ b/third_party/WebKit/LayoutTests/editing/selection/selection-plugin-clear-crash.html
@@ -8,10 +8,7 @@
 {
     var obj = document.getElementById("test");
     var s = window.getSelection();
-    // The cleardocumentduringnew attribute intends to clear document.body when the
-    // embed element is loaded and it is used for only tests. See:
-    //    https://code.google.com/p/chromium/codesearch#chromium/src/content/shell/tools/plugin/main.cpp&q=cleardocumentduringnew&type=cs&sq=package:chromium&l=247 
-    // It causes a timing issue that |obj| exists on Linux but not on Windows.
+    // The initscript attribute is run (synchronously) when the plugin is created.
     if (obj)
         s.collapse(obj, 0);
     else
@@ -22,7 +19,7 @@
 <body onload="runTest()">
 <div>
 <object id="test"></object>
-<embed type="application/x-webkit-test-netscape" cleardocumentduringnew></embed>
+<embed type="application/x-blink-deprecated-test-plugin" initscript="document.body.innerHTML = '';"></embed>
 </div>
 </body>
 </html>
diff --git a/third_party/WebKit/LayoutTests/fast/css-grid-layout/absolute-positioning-grid-container-containing-block.html b/third_party/WebKit/LayoutTests/fast/css-grid-layout/absolute-positioning-grid-container-containing-block.html
index 07ff815..4c2cd2c 100644
--- a/third_party/WebKit/LayoutTests/fast/css-grid-layout/absolute-positioning-grid-container-containing-block.html
+++ b/third_party/WebKit/LayoutTests/fast/css-grid-layout/absolute-positioning-grid-container-containing-block.html
@@ -296,5 +296,55 @@
     </div>
 </div>
 
+<div class="grid directionRTL">
+    <div class="sizedToGridArea absolute autoRowAutoColumn offsetLeft25 offsetTop75"
+        data-offset-x="25" data-offset-y="75" data-expected-width="530" data-expected-height="530">
+    </div>
+    <div class="sizedToGridArea absolute firstRowFirstColumn offsetRightMinus40 offsetBottomMinus80"
+        data-offset-x="40" data-offset-y="95" data-expected-width="515" data-expected-height="515">
+    </div>
+    <div class="sizedToGridArea absolute secondRowFirstColumn offsetRight50 offsetBottom100"
+        data-offset-x="-50" data-offset-y="-35" data-expected-width="515" data-expected-height="465">
+    </div>
+    <div class="sizedToGridArea absolute firstRowSecondColumn offsetLeftMinus20 offsetTopMinus60"
+        data-offset-x="-20" data-offset-y="-45" data-expected-width="465" data-expected-height="515">
+    </div>
+    <div class="sizedToGridArea absolute secondRowSecondColumn offsetRight50 offsetTop75"
+        data-offset-x="-50" data-offset-y="140" data-expected-width="465" data-expected-height="465">
+    </div>
+    <div class="sizedToGridArea absolute thirdRowThirdColumnSpanning2Rows offsetLeft25 offsetBottom100"
+        data-offset-x="25" data-offset-y="65" data-expected-width="365" data-expected-height="350">
+    </div>
+    <div class="sizedToGridArea absolute thirdRowThirdColumnSpanning2Rows2Columns offsetLeftMinus20 offsetRight50 offsetTopMinus60 offsetBottom100"
+        data-offset-x="-35" data-offset-y="105" data-expected-width="350" data-expected-height="350">
+    </div>
+</div>
+
+<div class="grid directionRTL">
+    <div>
+        <div class="sizedToGridArea absolute autoRowAutoColumn offsetLeft25 offsetTop75"
+            data-offset-x="25" data-offset-y="75" data-expected-width="530" data-expected-height="530">
+        </div>
+        <div class="sizedToGridArea absolute firstRowFirstColumn offsetRightMinus40 offsetBottomMinus80"
+            data-offset-x="40" data-offset-y="95" data-expected-width="515" data-expected-height="515">
+        </div>
+        <div class="sizedToGridArea absolute secondRowFirstColumn offsetRight50 offsetBottom100"
+            data-offset-x="-50" data-offset-y="-35" data-expected-width="515" data-expected-height="465">
+        </div>
+        <div class="sizedToGridArea absolute firstRowSecondColumn offsetLeftMinus20 offsetTopMinus60"
+            data-offset-x="-20" data-offset-y="-45" data-expected-width="465" data-expected-height="515">
+        </div>
+        <div class="sizedToGridArea absolute secondRowSecondColumn offsetRight50 offsetTop75"
+            data-offset-x="-50" data-offset-y="140" data-expected-width="465" data-expected-height="465">
+        </div>
+        <div class="sizedToGridArea absolute thirdRowThirdColumnSpanning2Rows offsetLeft25 offsetBottom100"
+            data-offset-x="25" data-offset-y="65" data-expected-width="365" data-expected-height="350">
+        </div>
+        <div class="sizedToGridArea absolute thirdRowThirdColumnSpanning2Rows2Columns offsetLeftMinus20 offsetRight50 offsetTopMinus60 offsetBottom100"
+            data-offset-x="-35" data-offset-y="105" data-expected-width="350" data-expected-height="350">
+        </div>
+    </div>
+</div>
+
 </body>
 </html>
diff --git a/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-positioned-items-background-rtl.html b/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-positioned-items-background-rtl.html
new file mode 100644
index 0000000..1c256e8a
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-positioned-items-background-rtl.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html>
+<html>
+<link href="resources/grid.css" rel="stylesheet">
+<style>
+
+.grid {
+    grid-template-columns: 100px 200px;
+    grid-template-rows: 50px 150px;
+    width: 500px;
+    height: 300px;
+    border: 5px solid black;
+    margin: 30px;
+    padding: 15px;
+    /* Ensures that the grid container is the containing block of the absolutely positioned grid children. */
+    position: relative;
+    background-color: transparent;
+}
+
+.container {
+    position: relative;
+    float: left;
+}
+
+.absolute {
+    position: absolute;
+}
+
+.grid > div {
+    background-color: green;
+}
+
+.lengthSize {
+    width: 50px;
+    height: 20px;
+}
+
+.percentageSize {
+    width: 50%;
+    height: 20%;
+}
+
+.offsetsSize {
+    left: 25px;
+    right: 30px;
+    top: 35px;
+    bottom: 40px;
+}
+
+.red {
+    background-color: red;
+}
+</style>
+<body>
+
+<p>This test checks that the background of positioned items is painted in the right position using RTL direction.</p>
+
+<p>The test passes if you see 4 green boxes and no red.</p>
+
+<div class="container">
+    <div class="absolute red" style="left: 455px; top: 50px; width: 100px; height: 50px"></div>
+    <div class="absolute red" style="left: 390px; top: 50px; width: 50px; height: 20px"></div>
+    <div class="absolute red" style="left: 500px; top: 115px; width: 50px; height: 30px"></div>
+    <div class="absolute red" style="left: 275px; top: 135px; width: 145px; height: 75px"></div>
+    <div class="grid directionRTL">
+        <div class="absolute onlyFirstRowOnlyFirstColumn sizedToGridArea"
+            style="left: 5px;">
+        </div>
+        <div class="absolute onlyFirstRowOnlySecondColumn lengthSize"
+            style="right: 10px;">
+        </div>
+        <div class="absolute onlySecondRowOnlyFirstColumn percentageSize"
+            style="top: 15px;">
+        </div>
+        <div class="absolute onlySecondRowOnlySecondColumn offsetsSize"></div>
+    </div>
+</div>
+
+</body>
diff --git a/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-positioned-items-padding.html b/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-positioned-items-padding.html
index c2601d3..e6428bef 100644
--- a/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-positioned-items-padding.html
+++ b/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-positioned-items-padding.html
@@ -116,4 +116,88 @@
     </div>
 </div>
 
+<div class="grid directionRTL">
+    <div class="absolute" style="grid-column: auto / 1; grid-row: auto / 1;"
+        data-offset-x="515" data-offset-y="0" data-expected-width="15" data-expected-height="15">
+    </div>
+    <div class="absolute" style="grid-column: 1 / 2; grid-row: auto / 1;"
+        data-offset-x="415" data-offset-y="0" data-expected-width="100" data-expected-height="15">
+    </div>
+    <div class="absolute" style="grid-column: auto / 1; grid-row: 1 / 2;"
+        data-offset-x="515" data-offset-y="15" data-expected-width="15" data-expected-height="50">
+    </div>
+    <div class="absolute" style="grid-column: 3 / auto; grid-row: 3 / auto;"
+        data-offset-x="0" data-offset-y="215" data-expected-width="215" data-expected-height="115">
+    </div>
+    <div class="absolute" style="grid-column: 2 / 3; grid-row: 3 / auto;"
+        data-offset-x="215" data-offset-y="215" data-expected-width="200" data-expected-height="115">
+    </div>
+    <div class="absolute" style="grid-column: 3 / auto; grid-row: 2 / 3;"
+        data-offset-x="0" data-offset-y="65" data-expected-width="215" data-expected-height="150">
+    </div>
+</div>
+
+<div class="grid directionRTL">
+    <div class="absolute" style="grid-column: -5 / 1; grid-row: -5 / 1;"
+        data-offset-x="515" data-offset-y="0" data-expected-width="15" data-expected-height="15">
+    </div>
+    <div class="absolute" style="grid-column: 1 / 2; grid-row: -5 / 1;"
+        data-offset-x="415" data-offset-y="0" data-expected-width="100" data-expected-height="15">
+    </div>
+    <div class="absolute" style="grid-column: -5 / 1; grid-row: 1 / 2;"
+        data-offset-x="515" data-offset-y="15" data-expected-width="15" data-expected-height="50">
+    </div>
+    <div class="absolute" style="grid-column: 3 / 5; grid-row: 3 / 5;"
+        data-offset-x="0" data-offset-y="215" data-expected-width="215" data-expected-height="115">
+    </div>
+    <div class="absolute" style="grid-column: 2 / 3; grid-row: 3 / 5;"
+        data-offset-x="215" data-offset-y="215" data-expected-width="200" data-expected-height="115">
+    </div>
+    <div class="absolute" style="grid-column: 3 / 5; grid-row: 2 / 3;"
+        data-offset-x="0" data-offset-y="65" data-expected-width="215" data-expected-height="150">
+    </div>
+</div>
+
+<div class="grid directionRTL">
+    <div class="absolute" style="grid-column: span 2 / 1; grid-row: span 2 / 1;"
+        data-offset-x="515" data-offset-y="0" data-expected-width="15" data-expected-height="15">
+    </div>
+    <div class="absolute" style="grid-column: 1 / 2; grid-row: span 2 / 1;"
+        data-offset-x="415" data-offset-y="0" data-expected-width="100" data-expected-height="15">
+    </div>
+    <div class="absolute" style="grid-column: span 2 / 1; grid-row: 1 / 2;"
+        data-offset-x="515" data-offset-y="15" data-expected-width="15" data-expected-height="50">
+    </div>
+    <div class="absolute" style="grid-column: 3 / span 2; grid-row: 3 / span 2;"
+        data-offset-x="0" data-offset-y="215" data-expected-width="215" data-expected-height="115">
+    </div>
+    <div class="absolute" style="grid-column: 2 / 3; grid-row: 3 / span 2;"
+        data-offset-x="215" data-offset-y="215" data-expected-width="200" data-expected-height="115">
+    </div>
+    <div class="absolute" style="grid-column: 3 / span 2; grid-row: 2 / 3;"
+        data-offset-x="0" data-offset-y="65" data-expected-width="215" data-expected-height="150">
+    </div>
+</div>
+
+<div class="grid directionRTL">
+    <div class="absolute" style="grid-column: foo / 1; grid-row: foo / 1;"
+        data-offset-x="515" data-offset-y="0" data-expected-width="15" data-expected-height="15">
+    </div>
+    <div class="absolute" style="grid-column: 1 / 2; grid-row: foo / 1;"
+        data-offset-x="415" data-offset-y="0" data-expected-width="100" data-expected-height="15">
+    </div>
+    <div class="absolute" style="grid-column: foo / 1; grid-row: 1 / 2;"
+        data-offset-x="515" data-offset-y="15" data-expected-width="15" data-expected-height="50">
+    </div>
+    <div class="absolute" style="grid-column: 3 / foo; grid-row: 3 / foo;"
+        data-offset-x="0" data-offset-y="215" data-expected-width="215" data-expected-height="115">
+    </div>
+    <div class="absolute" style="grid-column: 2 / 3; grid-row: 3 / foo;"
+        data-offset-x="215" data-offset-y="215" data-expected-width="200" data-expected-height="115">
+    </div>
+    <div class="absolute" style="grid-column: 3 / foo; grid-row: 2 / 3;"
+        data-offset-x="0" data-offset-y="65" data-expected-width="215" data-expected-height="150">
+    </div>
+</div>
+
 </body>
diff --git a/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-positioned-items-within-grid-implicit-track.html b/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-positioned-items-within-grid-implicit-track.html
index b6e3f139..a61064a 100644
--- a/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-positioned-items-within-grid-implicit-track.html
+++ b/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-positioned-items-within-grid-implicit-track.html
@@ -112,4 +112,76 @@
     </div>
 </div>
 
+<div class="grid directionRTL">
+    <div class="sixRowsAndSixColumns"
+        data-offset-x="-85" data-offset-y="15" data-expected-width="900" data-expected-height="600">
+    </div>
+    <div class="absolute" style="grid-column: auto / 1; grid-row: auto / 1;"
+        data-offset-x="615" data-offset-y="0" data-expected-width="215" data-expected-height="115">
+    </div>
+</div>
+
+<div class="grid directionRTL">
+    <div class="sixRowsAndSixColumns"
+        data-offset-x="-85" data-offset-y="15" data-expected-width="900" data-expected-height="600">
+    </div>
+    <div class="absolute" style="grid-column: auto / 2; grid-row: auto / 2;"
+        data-offset-x="415" data-offset-y="0" data-expected-width="415" data-expected-height="265">
+    </div>
+</div>
+
+<div class="grid directionRTL">
+    <div class="sixRowsAndSixColumns"
+        data-offset-x="-85" data-offset-y="15" data-expected-width="900" data-expected-height="600">
+    </div>
+    <div class="absolute" style="grid-column: 3 / auto; grid-row: 3 / auto;"
+        data-offset-x="0" data-offset-y="515" data-expected-width="115" data-expected-height="115">
+    </div>
+</div>
+
+<div class="grid directionRTL">
+    <div class="sixRowsAndSixColumns"
+        data-offset-x="-85" data-offset-y="15" data-expected-width="900" data-expected-height="600">
+    </div>
+    <div class="absolute" style="grid-column: 2 / auto; grid-row: 2 / auto;"
+        data-offset-x="0" data-offset-y="265" data-expected-width="415" data-expected-height="365">
+    </div>
+</div>
+
+<div class="grid directionRTL">
+    <div class="sixRowsAndSixColumns"
+        data-offset-x="-85" data-offset-y="15" data-expected-width="900" data-expected-height="600">
+    </div>
+    <div class="absolute" style="grid-column: -4 / 1; grid-row: -4 / 1;"
+        data-offset-x="615" data-offset-y="0" data-expected-width="215" data-expected-height="115">
+    </div>
+</div>
+
+<div class="grid directionRTL">
+    <div class="sixRowsAndSixColumns"
+        data-offset-x="-85" data-offset-y="15" data-expected-width="900" data-expected-height="600">
+    </div>
+    <div class="absolute" style="grid-column: -4 / 2; grid-row: -4 / 2;"
+        data-offset-x="415" data-offset-y="0" data-expected-width="415" data-expected-height="265">
+    </div>
+</div>
+
+<div class="grid directionRTL">
+    <div class="sixRowsAndSixColumns"
+        data-offset-x="-85" data-offset-y="15" data-expected-width="900" data-expected-height="600">
+    </div>
+    <div class="absolute" style="grid-column: 3 / 4; grid-row: 3 / 4;"
+        data-offset-x="0" data-offset-y="515" data-expected-width="115" data-expected-height="115">
+    </div>
+</div>
+
+<div class="grid directionRTL">
+    <div class="sixRowsAndSixColumns"
+        data-offset-x="-85" data-offset-y="15" data-expected-width="900" data-expected-height="600">
+    </div>
+    <div class="absolute" style="grid-column: 2 / 4; grid-row: 2 / 4;"
+        data-offset-x="0" data-offset-y="265" data-expected-width="415" data-expected-height="365">
+    </div>
+</div>
+
 </body>
diff --git a/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-sizing-positioned-items.html b/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-sizing-positioned-items.html
index b50cef4c..3da137b9 100644
--- a/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-sizing-positioned-items.html
+++ b/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-sizing-positioned-items.html
@@ -176,4 +176,21 @@
     </div>
 </div>
 
+<div class="unconstrainedContainer">
+    <div class="grid directionRTL">
+        <div class="absolute autoRowAutoColumn offsets"
+            data-offset-x="5" data-offset-y="15" data-expected-width="1015" data-expected-height="995">
+        </div>
+        <div class="absolute secondRowSecondColumn offsets"
+            data-offset-x="5" data-offset-y="80" data-expected-width="900" data-expected-height="930">
+        </div>
+        <div class="absolute onlyFirstRowOnlyFirstColumn offsets"
+            data-offset-x="920" data-offset-y="30" data-expected-width="85" data-expected-height="15">
+        </div>
+        <div class="absolute endSecondRowEndSecondColumn offsets"
+            data-offset-x="720" data-offset-y="15" data-expected-width="300" data-expected-height="180">
+        </div>
+    </div>
+</div>
+
 </body>
diff --git a/third_party/WebKit/LayoutTests/fast/encoding/invalid-multi-byte-over-consumption.html b/third_party/WebKit/LayoutTests/fast/encoding/invalid-multi-byte-over-consumption.html
index 812eea2a..0ed17fc 100644
--- a/third_party/WebKit/LayoutTests/fast/encoding/invalid-multi-byte-over-consumption.html
+++ b/third_party/WebKit/LayoutTests/fast/encoding/invalid-multi-byte-over-consumption.html
@@ -29,6 +29,6 @@
 <body onload="runTest();">
 <p>Test if an invalid multi-byte sequence is onverconsumed leading to an
 XSS vector</p>
-<input id="input1" src="" type="xss�">ABCD" onchange="test='Failed'" using malformed byte sequence 0x83 0x22<br>
+<input id="input1" src="" type="xssƒ">ABCD" onchange="test='Failed'" using malformed byte sequence 0x83 0x22<br>
 <div id="result"></div>
 </body>
diff --git a/third_party/WebKit/LayoutTests/http/tests/credentialmanager/passwordcredential-basics.html b/third_party/WebKit/LayoutTests/http/tests/credentialmanager/passwordcredential-basics.html
index eced29d..be246a1e 100644
--- a/third_party/WebKit/LayoutTests/http/tests/credentialmanager/passwordcredential-basics.html
+++ b/third_party/WebKit/LayoutTests/http/tests/credentialmanager/passwordcredential-basics.html
@@ -108,4 +108,78 @@
     assert_throws(new TypeError(),
                   () => { new PasswordCredential({ 'id': undefined, 'password': undefined }); });
 }, 'PasswordCredential objects require IDs and Passwords');
+
+function verify_form_credential(f, credential) {
+    assert_equals(credential.id, 'musterman');
+    assert_equals(credential.name, 'friendly name');
+    assert_equals(credential.iconURL, 'https://example.com/photo');
+    assert_equals(credential.idName, 'theId');
+    assert_equals(credential.passwordName, 'thePassword');
+    assert_equals(credential.type, 'password');
+
+    assert_equals(credential.additionalData.get('theId'), 'musterman'); 
+    assert_equals(credential.additionalData.get('thePassword'), 'sekrit'); 
+    assert_equals(credential.additionalData.get('theIcon'), 'https://example.com/photo'); 
+    assert_equals(credential.additionalData.get('theName'), 'friendly name'); 
+    assert_equals(credential.additionalData.get('theExtraField'), 'extra'); 
+
+    var password = f.querySelector('[name=thePassword]');
+    password.value = "";
+    assert_throws(new TypeError(), _ => new PasswordCredential(f));
+    f.removeChild(password);
+    assert_throws(new TypeError(), _ => new PasswordCredential(f));
+
+    // Reset the password, do the same test for the ID.
+    f.appendChild(password);
+    password.value = "sekrit";
+    credential = new PasswordCredential(f);
+    assert_true(credential instanceof PasswordCredential);
+
+    var id = f.querySelector('[name=theId]');
+    id.value = "";
+    assert_throws(new TypeError(), _ => new PasswordCredential(f));
+    f.removeChild(id);
+    assert_throws(new TypeError(), _ => new PasswordCredential(f));
+}
+
+test(_ => {
+    var f = document.createElement('form');
+    f.enctype = 'mUlTiPaRt/fOrm-dAtA';
+    f.innerHTML = "<input type='text' name='theId' value='musterman' autocomplete='username'>"
+        + "<input type='text' name='thePassword' value='sekrit' autocomplete='current-password'>"
+        + "<input type='text' name='theIcon' value='https://example.com/photo' autocomplete='photo'>"
+        + "<input type='text' name='theExtraField' value='extra'>"
+        + "<input type='text' name='theName' value='friendly name' autocomplete='name'>";
+
+    var credential = new PasswordCredential(f);
+    assert_true(credential.additionalData instanceof FormData);
+    verify_form_credential(f, credential);
+}, 'PasswordCredential creation from `HTMLFormElement` with a multipart enctype');
+
+test(_ => {
+    var f = document.createElement('form');
+    f.enctype = 'aPplIcaTion/X-wWw-form-urLencoded';
+    f.innerHTML = "<input type='text' name='theId' value='musterman' autocomplete='username'>"
+        + "<input type='text' name='thePassword' value='sekrit' autocomplete='current-password'>"
+        + "<input type='text' name='theIcon' value='https://example.com/photo' autocomplete='photo'>"
+        + "<input type='text' name='theExtraField' value='extra'>"
+        + "<input type='text' name='theName' value='friendly name' autocomplete='name'>";
+
+    var credential = new PasswordCredential(f);
+    assert_true(credential.additionalData instanceof URLSearchParams);
+    verify_form_credential(f, credential);
+}, 'PasswordCredential creation from `HTMLFormElement` with a urlencoded enctype');
+
+test(_ => {
+    var f = document.createElement('form');
+    f.innerHTML = "<input type='text' name='theId' value='musterman' autocomplete='username'>"
+        + "<input type='text' name='thePassword' value='sekrit' autocomplete='current-password'>"
+        + "<input type='text' name='theIcon' value='https://example.com/photo' autocomplete='photo'>"
+        + "<input type='text' name='theExtraField' value='extra'>"
+        + "<input type='text' name='theName' value='friendly name' autocomplete='name'>";
+
+    var credential = new PasswordCredential(f);
+    assert_true(credential.additionalData instanceof URLSearchParams);
+    verify_form_credential(f, credential);
+}, 'PasswordCredential creation from `HTMLFormElement` with no enctype');
 </script>
diff --git a/third_party/WebKit/LayoutTests/platform/linux/printing/ellipsis-printing-style-expected.png b/third_party/WebKit/LayoutTests/platform/linux/printing/ellipsis-printing-style-expected.png
index 40f649c3e..518174d 100644
--- a/third_party/WebKit/LayoutTests/platform/linux/printing/ellipsis-printing-style-expected.png
+++ b/third_party/WebKit/LayoutTests/platform/linux/printing/ellipsis-printing-style-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/printing/forced-break-tree-dump-only-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/printing/forced-break-tree-dump-only-expected.txt
index 5ef721bb..d27d34be 100644
--- a/third_party/WebKit/LayoutTests/platform/linux/printing/forced-break-tree-dump-only-expected.txt
+++ b/third_party/WebKit/LayoutTests/platform/linux/printing/forced-break-tree-dump-only-expected.txt
@@ -1,18 +1,18 @@
-layer at (0,0) size 1000x750 scrollHeight 778
-  LayoutView at (0,0) size 1000x750
-layer at (0,0) size 1000x778 backgroundClip at (0,0) size 1000x750 clip at (0,0) size 1000x750
-  LayoutBlockFlow {HTML} at (0,0) size 1000x778
-    LayoutBlockFlow {BODY} at (8,16) size 984x754
-      LayoutBlockFlow {P} at (0,0) size 984x40
-        LayoutText {#text} at (0,0) size 959x39
+layer at (0,0) size 1066x799 scrollHeight 827
+  LayoutView at (0,0) size 1066x799
+layer at (0,0) size 1066x827 backgroundClip at (0,0) size 1066x799 clip at (0,0) size 1066x799
+  LayoutBlockFlow {HTML} at (0,0) size 1066x827
+    LayoutBlockFlow {BODY} at (8,16) size 1050x803
+      LayoutBlockFlow {P} at (0,0) size 1050x40
+        LayoutText {#text} at (0,0) size 1041x39
           text run at (0,0) width 526: "This is a test that only dumps the layout tree, and doesn't actually display the page. This "
-          text run at (526,0) width 433: "tests some peculiarities in the test framework for printing. To run this test"
-          text run at (0,20) width 93: "manually, run it "
-          text run at (92,20) width 212: "with content_shell --run-layout-test"
-      LayoutBlockFlow {DIV} at (0,56) size 984x20
+          text run at (526,0) width 515: "tests some peculiarities in the test framework for printing. To run this test manually, run"
+          text run at (0,20) width 11: "it "
+          text run at (11,20) width 211: "with content_shell --run-layout-test"
+      LayoutBlockFlow {DIV} at (0,56) size 1050x20
         LayoutText {#text} at (0,0) size 155x19
           text run at (0,0) width 155: "This should be on page 1."
-      LayoutBlockFlow {DIV} at (0,734) size 984x20
+      LayoutBlockFlow {DIV} at (0,783) size 1050x20
         LayoutText {#text} at (0,0) size 155x19
           text run at (0,0) width 155: "This should be on page 2."
 
diff --git a/third_party/WebKit/LayoutTests/platform/linux/printing/iframe-print-expected.png b/third_party/WebKit/LayoutTests/platform/linux/printing/iframe-print-expected.png
index a80552a5..bd9d971 100644
--- a/third_party/WebKit/LayoutTests/platform/linux/printing/iframe-print-expected.png
+++ b/third_party/WebKit/LayoutTests/platform/linux/printing/iframe-print-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/printing/iframe-print-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/printing/iframe-print-expected.txt
index 19682bc..e05e7533 100644
--- a/third_party/WebKit/LayoutTests/platform/linux/printing/iframe-print-expected.txt
+++ b/third_party/WebKit/LayoutTests/platform/linux/printing/iframe-print-expected.txt
@@ -1,8 +1,8 @@
-layer at (0,0) size 1000x750
-  LayoutView at (0,0) size 1000x750
-layer at (0,0) size 1000x750
-  LayoutBlockFlow {HTML} at (0,0) size 1000x750
-    LayoutBlockFlow {BODY} at (8,8) size 984x734
+layer at (0,0) size 1066x799
+  LayoutView at (0,0) size 1066x799
+layer at (0,0) size 1066x799
+  LayoutBlockFlow {HTML} at (0,0) size 1066x799
+    LayoutBlockFlow {BODY} at (8,8) size 1050x783
       LayoutText {#text} at (304,289) size 4x19
         text run at (304,289) width 4: " "
       LayoutText {#text} at (0,0) size 0x0
diff --git a/third_party/WebKit/LayoutTests/platform/linux/printing/page-count-relayout-shrink-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/printing/page-count-relayout-shrink-expected.txt
index bc158e0..9401f34f 100644
--- a/third_party/WebKit/LayoutTests/platform/linux/printing/page-count-relayout-shrink-expected.txt
+++ b/third_party/WebKit/LayoutTests/platform/linux/printing/page-count-relayout-shrink-expected.txt
@@ -1 +1 @@
-Document has 36 pages.
+Document has 34 pages.
diff --git a/third_party/WebKit/LayoutTests/platform/linux/printing/quirks-percentage-height-body-expected.png b/third_party/WebKit/LayoutTests/platform/linux/printing/quirks-percentage-height-body-expected.png
new file mode 100644
index 0000000..d65714b
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/printing/quirks-percentage-height-body-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/printing/quirks-percentage-height-body-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/printing/quirks-percentage-height-body-expected.txt
new file mode 100644
index 0000000..711d7d66
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/printing/quirks-percentage-height-body-expected.txt
@@ -0,0 +1,5 @@
+layer at (0,0) size 1066x799
+  LayoutView at (0,0) size 1066x799
+layer at (0,0) size 1066x799
+  LayoutBlockFlow {HTML} at (0,0) size 1066x799
+    LayoutBlockFlow {BODY} at (0,0) size 543x409.50 [border: (5px solid #FA8072)]
diff --git a/third_party/WebKit/LayoutTests/platform/linux/printing/quirks-percentage-height-expected.png b/third_party/WebKit/LayoutTests/platform/linux/printing/quirks-percentage-height-expected.png
new file mode 100644
index 0000000..d65714b
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/printing/quirks-percentage-height-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/printing/quirks-percentage-height-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/printing/quirks-percentage-height-expected.txt
new file mode 100644
index 0000000..da54eb0c
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/printing/quirks-percentage-height-expected.txt
@@ -0,0 +1,6 @@
+layer at (0,0) size 1066x799
+  LayoutView at (0,0) size 1066x799
+layer at (0,0) size 1066x799
+  LayoutBlockFlow {HTML} at (0,0) size 1066x799
+    LayoutBlockFlow {BODY} at (0,0) size 1066x799
+      LayoutBlockFlow {DIV} at (0,0) size 543x409.50 [border: (5px solid #FA8072)]
diff --git a/third_party/WebKit/LayoutTests/platform/linux/printing/standards-percentage-heights-expected.png b/third_party/WebKit/LayoutTests/platform/linux/printing/standards-percentage-heights-expected.png
new file mode 100644
index 0000000..c174808
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/printing/standards-percentage-heights-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/printing/standards-percentage-heights-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/printing/standards-percentage-heights-expected.txt
new file mode 100644
index 0000000..2d1d4646
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/printing/standards-percentage-heights-expected.txt
@@ -0,0 +1,5 @@
+layer at (0,0) size 1066x799
+  LayoutView at (0,0) size 1066x799
+layer at (0,0) size 510x510
+  LayoutBlockFlow {HTML} at (0,0) size 510x510 [border: (5px solid #FFC0CB)]
+    LayoutBlockFlow {BODY} at (5,5) size 260x260 [border: (5px solid #FA8072)]
diff --git a/third_party/WebKit/LayoutTests/platform/linux/printing/subframes-percentage-height-expected.png b/third_party/WebKit/LayoutTests/platform/linux/printing/subframes-percentage-height-expected.png
new file mode 100644
index 0000000..0eb38f7a
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/printing/subframes-percentage-height-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/printing/subframes-percentage-height-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/printing/subframes-percentage-height-expected.txt
new file mode 100644
index 0000000..92de9dd5
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/printing/subframes-percentage-height-expected.txt
@@ -0,0 +1,14 @@
+layer at (0,0) size 1066x799
+  LayoutView at (0,0) size 1066x799
+layer at (0,0) size 1066x400
+  LayoutBlockFlow {HTML} at (0,0) size 1066x400
+    LayoutBlockFlow {BODY} at (0,0) size 1066x400
+      LayoutText {#text} at (0,0) size 0x0
+layer at (0,0) size 300x150
+  LayoutIFrame {IFRAME} at (0,0) size 300x150
+    layer at (0,0) size 300x150
+      LayoutView at (0,0) size 300x150
+    layer at (0,0) size 300x150
+      LayoutBlockFlow {HTML} at (0,0) size 300x150
+        LayoutBlockFlow {BODY} at (0,0) size 300x150
+          LayoutBlockFlow {DIV} at (0,0) size 300x150 [border: (10px solid #0000FF)]
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/threaded/printing/ellipsis-printing-style-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/threaded/printing/ellipsis-printing-style-expected.png
index 40f649c3e..518174d 100644
--- a/third_party/WebKit/LayoutTests/platform/linux/virtual/threaded/printing/ellipsis-printing-style-expected.png
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/threaded/printing/ellipsis-printing-style-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/threaded/printing/iframe-print-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/threaded/printing/iframe-print-expected.png
index a80552a5..bd9d971 100644
--- a/third_party/WebKit/LayoutTests/platform/linux/virtual/threaded/printing/iframe-print-expected.png
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/threaded/printing/iframe-print-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/threaded/printing/ellipsis-printing-style-expected.txt b/third_party/WebKit/LayoutTests/platform/win/virtual/threaded/printing/ellipsis-printing-style-expected.txt
index c2d0011..d03ede3 100644
--- a/third_party/WebKit/LayoutTests/platform/win/virtual/threaded/printing/ellipsis-printing-style-expected.txt
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/threaded/printing/ellipsis-printing-style-expected.txt
@@ -1,8 +1,8 @@
-layer at (0,0) size 1000x750
-  LayoutView at (0,0) size 1000x750
-layer at (0,0) size 1000x40
-  LayoutBlockFlow {HTML} at (0,0) size 1000x40
-    LayoutBlockFlow {BODY} at (8,8) size 984x24
+layer at (0,0) size 1066x799
+  LayoutView at (0,0) size 1066x799
+layer at (0,0) size 1066x40
+  LayoutBlockFlow {HTML} at (0,0) size 1066x40
+    LayoutBlockFlow {BODY} at (8,8) size 1050x24
 layer at (8,8) size 168x24 scrollWidth 1216
   LayoutBlockFlow {DIV} at (0,0) size 168x24 [color=#FFFFFF] [bgcolor=#000000]
     LayoutText {#text} at (0,0) size 1216x16
diff --git a/third_party/WebKit/LayoutTests/plugins/createScriptableObject-before-start-expected.txt b/third_party/WebKit/LayoutTests/plugins/createScriptableObject-before-start-expected.txt
index 83a7a2f..938442e6 100644
--- a/third_party/WebKit/LayoutTests/plugins/createScriptableObject-before-start-expected.txt
+++ b/third_party/WebKit/LayoutTests/plugins/createScriptableObject-before-start-expected.txt
@@ -1,3 +1,4 @@
+CONSOLE MESSAGE: Blink Test Plugin: initializing
 Test for http://bugs.webkit.org/show_bug.cgi?id=12050 REGRESSION: Assertion failure in -[WebBaseNetscapePluginView willCallPlugInFunction] (plugin).
 
 No ASSERT means test PASS.
diff --git a/third_party/WebKit/LayoutTests/plugins/createScriptableObject-before-start.html b/third_party/WebKit/LayoutTests/plugins/createScriptableObject-before-start.html
index 05a129c0..b300d0f 100644
--- a/third_party/WebKit/LayoutTests/plugins/createScriptableObject-before-start.html
+++ b/third_party/WebKit/LayoutTests/plugins/createScriptableObject-before-start.html
@@ -15,7 +15,7 @@
         No ASSERT means test PASS.
     </p>
     <iframe style="display: none;" src='data:text/html,
-        <object id="target" type="application/x-webkit-test-netscape"></object>
+        <object id="target" type="application/x-blink-test-plugin"></object>
         <script type="text/javascript">
             var obj = document.getElementById("target");
             obj.offsetLeft;
diff --git a/third_party/WebKit/LayoutTests/plugins/invalid-mime-with-valid-extension-shows-missing-plugin.html b/third_party/WebKit/LayoutTests/plugins/invalid-mime-with-valid-extension-shows-missing-plugin.html
index 1be9eaa..da04412c 100644
--- a/third_party/WebKit/LayoutTests/plugins/invalid-mime-with-valid-extension-shows-missing-plugin.html
+++ b/third_party/WebKit/LayoutTests/plugins/invalid-mime-with-valid-extension-shows-missing-plugin.html
@@ -14,9 +14,9 @@
     }
 </script>
 <div id="console">PASS</div>
-<embed name="plugin" src="resources/test.testnetscape" type="application/x-non-existent">
+<embed name="plugin" src="resources/test.blinktestplugin" type="application/x-non-existent">
 <script>
-    if (plugin.testCallback)
-        plugin.testCallback("logFailure");
+    if (plugin.postMessage)
+        logFailure();
     finishTest();
 </script>
diff --git a/third_party/WebKit/LayoutTests/printing/ellipsis-printing-style-expected.txt b/third_party/WebKit/LayoutTests/printing/ellipsis-printing-style-expected.txt
index c2d0011..d03ede3 100644
--- a/third_party/WebKit/LayoutTests/printing/ellipsis-printing-style-expected.txt
+++ b/third_party/WebKit/LayoutTests/printing/ellipsis-printing-style-expected.txt
@@ -1,8 +1,8 @@
-layer at (0,0) size 1000x750
-  LayoutView at (0,0) size 1000x750
-layer at (0,0) size 1000x40
-  LayoutBlockFlow {HTML} at (0,0) size 1000x40
-    LayoutBlockFlow {BODY} at (8,8) size 984x24
+layer at (0,0) size 1066x799
+  LayoutView at (0,0) size 1066x799
+layer at (0,0) size 1066x40
+  LayoutBlockFlow {HTML} at (0,0) size 1066x40
+    LayoutBlockFlow {BODY} at (8,8) size 1050x24
 layer at (8,8) size 168x24 scrollWidth 1216
   LayoutBlockFlow {DIV} at (0,0) size 168x24 [color=#FFFFFF] [bgcolor=#000000]
     LayoutText {#text} at (0,0) size 1216x16
diff --git a/third_party/WebKit/LayoutTests/printing/quirks-percentage-height-body-expected.html b/third_party/WebKit/LayoutTests/printing/quirks-percentage-height-body-expected.html
deleted file mode 100644
index 9f5e3914..0000000
--- a/third_party/WebKit/LayoutTests/printing/quirks-percentage-height-body-expected.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<!-- We page zoom scale down the page by 1.25 when printing. -->
-<body style="margin: 0; height: 50%; width: 50%; border: 5px solid salmon; zoom: 80%;"></body>
diff --git a/third_party/WebKit/LayoutTests/printing/quirks-percentage-height-expected.html b/third_party/WebKit/LayoutTests/printing/quirks-percentage-height-expected.html
deleted file mode 100644
index 3bc88ca..0000000
--- a/third_party/WebKit/LayoutTests/printing/quirks-percentage-height-expected.html
+++ /dev/null
@@ -1,4 +0,0 @@
-<!-- We page zoom scale down the page by 1.25 when printing. -->
-<body style="margin: 0; zoom: 80%;">
-    <div style="height: 50%; width: 50%; border: 5px solid salmon;"></div>
-</body>
diff --git a/third_party/WebKit/LayoutTests/printing/resources/paged-media-test-utils.js b/third_party/WebKit/LayoutTests/printing/resources/paged-media-test-utils.js
index a2d5deb1..73745af7 100644
--- a/third_party/WebKit/LayoutTests/printing/resources/paged-media-test-utils.js
+++ b/third_party/WebKit/LayoutTests/printing/resources/paged-media-test-utils.js
@@ -62,7 +62,7 @@
 
 function ratioToPageHeightToPixels(heightInRatioToPageHeight)
 {
-  var pageHeightInPixels = 600 * 1.25;
+  var pageHeightInPixels = 600 * 1.333;
   return Math.floor(pageHeightInPixels * heightInRatioToPageHeight);
 }
 
diff --git a/third_party/WebKit/LayoutTests/printing/simultaneous-position-float-change-expected.txt b/third_party/WebKit/LayoutTests/printing/simultaneous-position-float-change-expected.txt
index bb6f7b7..f5645ec 100644
--- a/third_party/WebKit/LayoutTests/printing/simultaneous-position-float-change-expected.txt
+++ b/third_party/WebKit/LayoutTests/printing/simultaneous-position-float-change-expected.txt
@@ -1,7 +1,7 @@
-layer at (0,0) size 1000x750
-  LayoutView at (0,0) size 1000x750
-layer at (0,0) size 1000x750
-  LayoutBlockFlow {HTML} at (0,0) size 1000x750
-    LayoutBlockFlow {BODY} at (8,8) size 984x734
+layer at (0,0) size 1066x799
+  LayoutView at (0,0) size 1066x799
+layer at (0,0) size 1066x799
+  LayoutBlockFlow {HTML} at (0,0) size 1066x799
+    LayoutBlockFlow {BODY} at (8,8) size 1050x783
 layer at (8,8) size 0x0
   LayoutBlockFlow (positioned) {DIV} at (8,8) size 0x0
diff --git a/third_party/WebKit/LayoutTests/printing/standards-percentage-heights-expected.html b/third_party/WebKit/LayoutTests/printing/standards-percentage-heights-expected.html
deleted file mode 100644
index fc947420..0000000
--- a/third_party/WebKit/LayoutTests/printing/standards-percentage-heights-expected.html
+++ /dev/null
@@ -1,4 +0,0 @@
-<!DOCTYPE html>
-<!-- We page zoom scale down the page by 1.25 when printing. -->
-<html style="overflow: hidden; height: 500px; width: 500px; border: 5px solid pink; zoom: 80%;">
-<body style="margin: 0; height: 50%; width: 50%; border: 5px solid salmon;"></body>
diff --git a/third_party/WebKit/LayoutTests/printing/subframes-percentage-height-expected.html b/third_party/WebKit/LayoutTests/printing/subframes-percentage-height-expected.html
deleted file mode 100644
index 3505a252..0000000
--- a/third_party/WebKit/LayoutTests/printing/subframes-percentage-height-expected.html
+++ /dev/null
@@ -1,5 +0,0 @@
-<!doctype html>
-<title>Test iframe with 100% height content in printing</title>
-<!-- We page zoom scale down the page by 1.25 when printing. -->
-<body style="margin:0; zoom: 80%; height:400px">
-  <iframe frameborder="0" style="box-sizing: border-box; height: 150px; width: 300px; border: 10px solid blue;"></iframe>
diff --git a/third_party/WebKit/LayoutTests/shadow-dom/shadowroot-mode.html b/third_party/WebKit/LayoutTests/shadow-dom/shadowroot-mode.html
new file mode 100644
index 0000000..1ab36b76
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/shadow-dom/shadowroot-mode.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<script src="../resources/testharness.js"></script>
+<script src="../resources/testharnessreport.js"></script>
+<div id="log"></div>
+<div id="host1"></div>
+<div id="host2"></div>
+<div id="host3"></div>
+<input id="input">
+<script>
+
+test(function() {
+  host1.attachShadow({mode : 'open'});
+  var closedShadowRoot = host2.attachShadow({mode : 'closed'});
+  host3.createShadowRoot();
+  assert_equals(host1.shadowRoot.mode, 'open');
+  assert_equals(closedShadowRoot.mode, 'closed');
+  assert_equals(host3.shadowRoot.mode, 'open');
+  // Note: mode for V0 shadow and UA shadow is not specified anywhere,
+  // Blink returns reasonable default values for these.
+  assert_equals(internals.shadowRoot(input).mode, 'closed');
+}, 'ShadowRoot.mode should return open or closed, and only open if v0.');
+</script>
diff --git a/third_party/WebKit/LayoutTests/shadow-dom/slot-with-tabindex.html b/third_party/WebKit/LayoutTests/shadow-dom/slot-with-tabindex.html
new file mode 100644
index 0000000..483a54c
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/shadow-dom/slot-with-tabindex.html
@@ -0,0 +1,64 @@
+<!DOCTYPE html>
+<script src='../resources/testharness.js'></script>
+<script src='../resources/testharnessreport.js'></script>
+<script src='../fast/dom/shadow/resources/shadow-dom.js'></script>
+<script src='resources/shadow-dom.js'></script>
+<div id="log"></div>
+<p>
+  document tree: [i0 -> [x-foo]]<br>
+  x-foo's shadow tree: [j1 -> [s1] -> [s2] -> j2 ->[x-bar]]<br>
+  x-bar's shadow tree: [[s3] -> k1]<br>
+  slot #s1: [i1 -> i2]<br>
+  slot #s2: [i3]<br>
+  slot #s3: [l1 -> l2]<br><br>
+  <b>v1 ideal nav forward:  [i0 -> j1 -> i1 -> i2 -> i3 -> j2 -> x-bar -> l1 -> l2 -> k1]</b><br>
+</p>
+
+<input id="i0" tabindex=0 value="i0">
+<div id="x-foo">
+  <input id="i2" slot="s1" tabindex=2 value="i2">
+  <input id="i1" slot="s1" tabindex=1 value="i1">
+  <input id="i3" slot="s2" tabindex=3 value="i3">
+  <template data-mode="open">
+    <div id="x-bar" tabindex=5>
+      <input id="l2" slot="s3" tabindex=2 value="l2">
+      <input id="l1" slot="s3" tabindex=1 value="l1">
+      <template data-mode="open">
+        <slot id="s3" name="s3" tabindex=1></slot>
+        <input id="k1" tabindex=2 value="k1">
+      </template>
+    </div>
+    <input id="j1" tabindex=1 value="j1">
+    <slot id="s2" name="s2" tabindex=3></slot>
+    <slot id="s1" name="s1" tabindex=2></slot>
+    <input id="j2" tabindex=4 value="j2">
+  </template>
+</div>
+
+<script>
+
+test(function() {
+  var xfoo = document.getElementById('x-foo');
+  convertTemplatesToShadowRootsWithin(xfoo);
+
+  var elements = [
+    'i0',
+    'x-foo/j1',
+    'i1',
+    'i2',
+    'i3',
+    'x-foo/j2',
+    'x-foo/x-bar',
+    'x-foo/l1',
+    'x-foo/l2',
+    'x-foo/x-bar/k1',
+  ];
+
+  for (var i = 0; i + 1 < elements.length; ++i)
+      assert_true(shouldNavigateFocus(elements[i], elements[i + 1], 'forward'), elements[i] + ' to ' + elements[i + 1]);
+  elements.reverse();
+  for (var i = 0; i + 1 < elements.length; ++i)
+      assert_true(shouldNavigateFocus(elements[i], elements[i + 1], 'backward'), elements[i] + ' to ' + elements[i + 1]);
+}, 'Slots tabindex should be considred in focus navigation.');
+
+</script>
diff --git a/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt b/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt
index b4183f6..ae49885 100644
--- a/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt
+++ b/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt
@@ -5728,6 +5728,7 @@
     getter delegatesFocus
     getter host
     getter innerHTML
+    getter mode
     getter olderShadowRoot
     getter styleSheets
     method cloneNode
diff --git a/third_party/WebKit/Source/core/animation/Animation.cpp b/third_party/WebKit/Source/core/animation/Animation.cpp
index 0890c76a..b69ad58 100644
--- a/third_party/WebKit/Source/core/animation/Animation.cpp
+++ b/third_party/WebKit/Source/core/animation/Animation.cpp
@@ -657,7 +657,7 @@
     m_pendingFinishedEvent = nullptr;
 }
 
-DispatchEventResult Animation::dispatchEventInternal(PassRefPtrWillBeRawPtr<Event> event)
+DispatchEventResult Animation::dispatchEventInternal(RawPtr<Event> event)
 {
     if (m_pendingFinishedEvent == event)
         m_pendingFinishedEvent = nullptr;
@@ -1053,7 +1053,7 @@
         InspectorInstrumentation::animationPlayStateChanged(m_animation->timeline()->document(), m_animation, oldPlayState, newPlayState);
 }
 
-bool Animation::addEventListenerInternal(const AtomicString& eventType, PassRefPtrWillBeRawPtr<EventListener> listener, const EventListenerOptions& options)
+bool Animation::addEventListenerInternal(const AtomicString& eventType, RawPtr<EventListener> listener, const EventListenerOptions& options)
 {
     if (eventType == EventTypeNames::finish)
         UseCounter::count(getExecutionContext(), UseCounter::AnimationFinishEvent);
diff --git a/third_party/WebKit/Source/core/animation/Animation.h b/third_party/WebKit/Source/core/animation/Animation.h
index 05222b2..1929595 100644
--- a/third_party/WebKit/Source/core/animation/Animation.h
+++ b/third_party/WebKit/Source/core/animation/Animation.h
@@ -61,7 +61,7 @@
     , public CompositorAnimationPlayerClient {
     DEFINE_WRAPPERTYPEINFO();
     REFCOUNTED_GARBAGE_COLLECTED_EVENT_TARGET(Animation);
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(Animation);
+    USING_GARBAGE_COLLECTED_MIXIN(Animation);
 public:
     enum AnimationPlayState {
         Unset,
@@ -181,8 +181,8 @@
     DECLARE_VIRTUAL_TRACE();
 
 protected:
-    DispatchEventResult dispatchEventInternal(PassRefPtrWillBeRawPtr<Event>) override;
-    bool addEventListenerInternal(const AtomicString& eventType, PassRefPtrWillBeRawPtr<EventListener>, const EventListenerOptions&) override;
+    DispatchEventResult dispatchEventInternal(RawPtr<Event>) override;
+    bool addEventListenerInternal(const AtomicString& eventType, RawPtr<EventListener>, const EventListenerOptions&) override;
 
 private:
     Animation(ExecutionContext*, AnimationTimeline&, AnimationEffect*);
@@ -243,9 +243,9 @@
     // Holds a 'finished' event queued for asynchronous dispatch via the
     // ScriptedAnimationController. This object remains active until the
     // event is actually dispatched.
-    RefPtrWillBeMember<Event> m_pendingFinishedEvent;
+    Member<Event> m_pendingFinishedEvent;
 
-    RefPtrWillBeMember<Event> m_pendingCancelledEvent;
+    Member<Event> m_pendingCancelledEvent;
 
     enum CompositorAction {
         None,
diff --git a/third_party/WebKit/Source/core/animation/AnimationInputHelpers.cpp b/third_party/WebKit/Source/core/animation/AnimationInputHelpers.cpp
index 3d8f054..e29e38c 100644
--- a/third_party/WebKit/Source/core/animation/AnimationInputHelpers.cpp
+++ b/third_party/WebKit/Source/core/animation/AnimationInputHelpers.cpp
@@ -206,7 +206,7 @@
     if (string.isEmpty())
         return nullptr;
 
-    RefPtrWillBeRawPtr<CSSValue> value = CSSParser::parseSingleValue(CSSPropertyTransitionTimingFunction, string);
+    RawPtr<CSSValue> value = CSSParser::parseSingleValue(CSSPropertyTransitionTimingFunction, string);
     if (!value || !value->isValueList()) {
         ASSERT(!value || value->isCSSWideKeyword());
         return nullptr;
diff --git a/third_party/WebKit/Source/core/animation/AnimationInputHelpersTest.cpp b/third_party/WebKit/Source/core/animation/AnimationInputHelpersTest.cpp
index b7acdbd..29a99ab 100644
--- a/third_party/WebKit/Source/core/animation/AnimationInputHelpersTest.cpp
+++ b/third_party/WebKit/Source/core/animation/AnimationInputHelpersTest.cpp
@@ -34,7 +34,7 @@
     }
 
     OwnPtr<DummyPageHolder> pageHolder;
-    RefPtrWillBePersistent<Document> document;
+    Persistent<Document> document;
 };
 
 TEST_F(AnimationAnimationInputHelpersTest, ParseKeyframePropertyAttributes)
diff --git a/third_party/WebKit/Source/core/animation/AnimationStackTest.cpp b/third_party/WebKit/Source/core/animation/AnimationStackTest.cpp
index 195e051e19..9279246 100644
--- a/third_party/WebKit/Source/core/animation/AnimationStackTest.cpp
+++ b/third_party/WebKit/Source/core/animation/AnimationStackTest.cpp
@@ -79,9 +79,9 @@
     }
 
     OwnPtr<DummyPageHolder> pageHolder;
-    RefPtrWillBePersistent<Document> document;
+    Persistent<Document> document;
     Persistent<AnimationTimeline> timeline;
-    RefPtrWillBePersistent<Element> element;
+    Persistent<Element> element;
 };
 
 TEST_F(AnimationAnimationStackTest, ElementAnimationsSorted)
diff --git a/third_party/WebKit/Source/core/animation/AnimationTest.cpp b/third_party/WebKit/Source/core/animation/AnimationTest.cpp
index 1fb0761..5a8e97f 100644
--- a/third_party/WebKit/Source/core/animation/AnimationTest.cpp
+++ b/third_party/WebKit/Source/core/animation/AnimationTest.cpp
@@ -84,7 +84,7 @@
         return animation->update(TimingUpdateForAnimationFrame);
     }
 
-    RefPtrWillBePersistent<Document> document;
+    Persistent<Document> document;
     Persistent<AnimationTimeline> timeline;
     Persistent<Animation> animation;
     TrackExceptionState exceptionState;
@@ -727,7 +727,7 @@
 
 TEST_F(AnimationAnimationTest, AttachedAnimations)
 {
-    RefPtrWillBePersistent<Element> element = document->createElement("foo", ASSERT_NO_EXCEPTION);
+    Persistent<Element> element = document->createElement("foo", ASSERT_NO_EXCEPTION);
 
     Timing timing;
     KeyframeEffect* keyframeEffect = KeyframeEffect::create(element.get(), nullptr, timing);
diff --git a/third_party/WebKit/Source/core/animation/AnimationTimeline.h b/third_party/WebKit/Source/core/animation/AnimationTimeline.h
index 8926e51..324023a0 100644
--- a/third_party/WebKit/Source/core/animation/AnimationTimeline.h
+++ b/third_party/WebKit/Source/core/animation/AnimationTimeline.h
@@ -109,7 +109,7 @@
     AnimationTimeline(Document*, PlatformTiming*);
 
 private:
-    RawPtrWillBeMember<Document> m_document;
+    Member<Document> m_document;
     double m_zeroTime;
     bool m_zeroTimeInitialized;
     unsigned m_outdatedAnimationCount;
diff --git a/third_party/WebKit/Source/core/animation/AnimationTimelineTest.cpp b/third_party/WebKit/Source/core/animation/AnimationTimelineTest.cpp
index 820a7f5a..975bbaa7 100644
--- a/third_party/WebKit/Source/core/animation/AnimationTimelineTest.cpp
+++ b/third_party/WebKit/Source/core/animation/AnimationTimelineTest.cpp
@@ -89,8 +89,8 @@
     }
 
     OwnPtr<DummyPageHolder> pageHolder;
-    RefPtrWillBePersistent<Document> document;
-    RefPtrWillBePersistent<Element> element;
+    Persistent<Document> document;
+    Persistent<Element> element;
     Persistent<AnimationTimeline> timeline;
     Timing timing;
     Persistent<MockPlatformTiming> platformTiming;
diff --git a/third_party/WebKit/Source/core/animation/CSSImageInterpolationType.cpp b/third_party/WebKit/Source/core/animation/CSSImageInterpolationType.cpp
index f13f3d5c..cb67991 100644
--- a/third_party/WebKit/Source/core/animation/CSSImageInterpolationType.cpp
+++ b/third_party/WebKit/Source/core/animation/CSSImageInterpolationType.cpp
@@ -16,7 +16,7 @@
 public:
     ~CSSImageNonInterpolableValue() final { }
 
-    static PassRefPtr<CSSImageNonInterpolableValue> create(PassRefPtrWillBeRawPtr<CSSValue> start, PassRefPtrWillBeRawPtr<CSSValue> end)
+    static PassRefPtr<CSSImageNonInterpolableValue> create(RawPtr<CSSValue> start, RawPtr<CSSValue> end)
     {
         return adoptRef(new CSSImageNonInterpolableValue(start, end));
     }
@@ -29,7 +29,7 @@
 
     static PassRefPtr<CSSImageNonInterpolableValue> merge(PassRefPtr<NonInterpolableValue> start, PassRefPtr<NonInterpolableValue> end);
 
-    PassRefPtrWillBeRawPtr<CSSValue> crossfade(double progress) const
+    RawPtr<CSSValue> crossfade(double progress) const
     {
         if (m_isSingle || progress <= 0)
             return m_start;
@@ -41,7 +41,7 @@
     DECLARE_NON_INTERPOLABLE_VALUE_TYPE();
 
 private:
-    CSSImageNonInterpolableValue(PassRefPtrWillBeRawPtr<CSSValue> start, PassRefPtrWillBeRawPtr<CSSValue> end)
+    CSSImageNonInterpolableValue(RawPtr<CSSValue> start, RawPtr<CSSValue> end)
         : m_start(start)
         , m_end(end)
         , m_isSingle(m_start == m_end)
@@ -50,8 +50,8 @@
         ASSERT(m_end);
     }
 
-    RefPtrWillBePersistent<CSSValue> m_start;
-    RefPtrWillBePersistent<CSSValue> m_end;
+    Persistent<CSSValue> m_start;
+    Persistent<CSSValue> m_end;
     const bool m_isSingle;
 };
 
@@ -93,14 +93,14 @@
         CSSImageNonInterpolableValue::merge(start.nonInterpolableValue, end.nonInterpolableValue));
 }
 
-PassRefPtrWillBeRawPtr<CSSValue> CSSImageInterpolationType::createCSSValue(const InterpolableValue& interpolableValue, const NonInterpolableValue* nonInterpolableValue)
+RawPtr<CSSValue> CSSImageInterpolationType::createCSSValue(const InterpolableValue& interpolableValue, const NonInterpolableValue* nonInterpolableValue)
 {
     return toCSSImageNonInterpolableValue(nonInterpolableValue)->crossfade(toInterpolableNumber(interpolableValue).value());
 }
 
-PassRefPtrWillBeRawPtr<StyleImage> CSSImageInterpolationType::resolveStyleImage(CSSPropertyID property, const InterpolableValue& interpolableValue, const NonInterpolableValue* nonInterpolableValue, StyleResolverState& state)
+RawPtr<StyleImage> CSSImageInterpolationType::resolveStyleImage(CSSPropertyID property, const InterpolableValue& interpolableValue, const NonInterpolableValue* nonInterpolableValue, StyleResolverState& state)
 {
-    RefPtrWillBeRawPtr<CSSValue> image = createCSSValue(interpolableValue, nonInterpolableValue);
+    RawPtr<CSSValue> image = createCSSValue(interpolableValue, nonInterpolableValue);
     return state.styleImage(property, *image);
 }
 
@@ -151,13 +151,13 @@
 public:
     ~ParentImageChecker() final {}
 
-    static PassOwnPtr<ParentImageChecker> create(CSSPropertyID property, PassRefPtrWillBeRawPtr<StyleImage> inheritedImage)
+    static PassOwnPtr<ParentImageChecker> create(CSSPropertyID property, RawPtr<StyleImage> inheritedImage)
     {
         return adoptPtr(new ParentImageChecker(property, inheritedImage));
     }
 
 private:
-    ParentImageChecker(CSSPropertyID property, PassRefPtrWillBeRawPtr<StyleImage> inheritedImage)
+    ParentImageChecker(CSSPropertyID property, RawPtr<StyleImage> inheritedImage)
         : m_property(property)
         , m_inheritedImage(inheritedImage)
     { }
@@ -173,7 +173,7 @@
     }
 
     CSSPropertyID m_property;
-    RefPtrWillBePersistent<StyleImage> m_inheritedImage;
+    Persistent<StyleImage> m_inheritedImage;
 };
 
 InterpolationValue CSSImageInterpolationType::maybeConvertInherit(const StyleResolverState& state, ConversionCheckers& conversionCheckers) const
diff --git a/third_party/WebKit/Source/core/animation/CSSImageInterpolationType.h b/third_party/WebKit/Source/core/animation/CSSImageInterpolationType.h
index 3ce1b28..17153c8 100644
--- a/third_party/WebKit/Source/core/animation/CSSImageInterpolationType.h
+++ b/third_party/WebKit/Source/core/animation/CSSImageInterpolationType.h
@@ -25,8 +25,8 @@
     static InterpolationValue maybeConvertStyleImage(const StyleImage&, bool acceptGradients);
     static InterpolationValue maybeConvertStyleImage(const StyleImage* image, bool acceptGradients) { return image ? maybeConvertStyleImage(*image, acceptGradients) : nullptr; }
     static PairwiseInterpolationValue staticMergeSingleConversions(InterpolationValue&& start, InterpolationValue&& end);
-    static PassRefPtrWillBeRawPtr<CSSValue> createCSSValue(const InterpolableValue&, const NonInterpolableValue*);
-    static PassRefPtrWillBeRawPtr<StyleImage> resolveStyleImage(CSSPropertyID, const InterpolableValue&, const NonInterpolableValue*, StyleResolverState&);
+    static RawPtr<CSSValue> createCSSValue(const InterpolableValue&, const NonInterpolableValue*);
+    static RawPtr<StyleImage> resolveStyleImage(CSSPropertyID, const InterpolableValue&, const NonInterpolableValue*, StyleResolverState&);
     static bool equalNonInterpolableValues(const NonInterpolableValue*, const NonInterpolableValue*);
 
 private:
diff --git a/third_party/WebKit/Source/core/animation/CSSImageListInterpolationType.cpp b/third_party/WebKit/Source/core/animation/CSSImageListInterpolationType.cpp
index 6a19d97..aab8c8a2 100644
--- a/third_party/WebKit/Source/core/animation/CSSImageListInterpolationType.cpp
+++ b/third_party/WebKit/Source/core/animation/CSSImageListInterpolationType.cpp
@@ -100,7 +100,7 @@
     if (value.isPrimitiveValue() && toCSSPrimitiveValue(value).getValueID() == CSSValueNone)
         return nullptr;
 
-    RefPtrWillBeRawPtr<CSSValueList> tempList = nullptr;
+    RawPtr<CSSValueList> tempList = nullptr;
     if (!value.isBaseValueList()) {
         tempList = CSSValueList::createCommaSeparated();
         tempList->append(const_cast<CSSValue*>(&value)); // Take ref.
diff --git a/third_party/WebKit/Source/core/animation/CSSInterpolationType.cpp b/third_party/WebKit/Source/core/animation/CSSInterpolationType.cpp
index 6d69c52..94c67a5e 100644
--- a/third_party/WebKit/Source/core/animation/CSSInterpolationType.cpp
+++ b/third_party/WebKit/Source/core/animation/CSSInterpolationType.cpp
@@ -15,13 +15,13 @@
 
 class ResolvedVariableChecker : public InterpolationType::ConversionChecker {
 public:
-    static PassOwnPtr<ResolvedVariableChecker> create(CSSPropertyID property, PassRefPtrWillBeRawPtr<CSSVariableReferenceValue> variableReference, PassRefPtrWillBeRawPtr<CSSValue> resolvedValue)
+    static PassOwnPtr<ResolvedVariableChecker> create(CSSPropertyID property, RawPtr<CSSVariableReferenceValue> variableReference, RawPtr<CSSValue> resolvedValue)
     {
         return adoptPtr(new ResolvedVariableChecker(property, variableReference, resolvedValue));
     }
 
 private:
-    ResolvedVariableChecker(CSSPropertyID property, PassRefPtrWillBeRawPtr<CSSVariableReferenceValue> variableReference, PassRefPtrWillBeRawPtr<CSSValue> resolvedValue)
+    ResolvedVariableChecker(CSSPropertyID property, RawPtr<CSSVariableReferenceValue> variableReference, RawPtr<CSSValue> resolvedValue)
         : m_property(property)
         , m_variableReference(variableReference)
         , m_resolvedValue(resolvedValue)
@@ -30,18 +30,18 @@
     bool isValid(const InterpolationEnvironment& environment, const InterpolationValue& underlying) const final
     {
         // TODO(alancutter): Just check the variables referenced instead of doing a full CSSValue resolve.
-        RefPtrWillBeRawPtr<CSSValue> resolvedValue = CSSVariableResolver::resolveVariableReferences(environment.state().style()->variables(), m_property, *m_variableReference);
+        RawPtr<CSSValue> resolvedValue = CSSVariableResolver::resolveVariableReferences(environment.state().style()->variables(), m_property, *m_variableReference);
         return m_resolvedValue->equals(*resolvedValue);
     }
 
     CSSPropertyID m_property;
-    RefPtrWillBePersistent<CSSVariableReferenceValue> m_variableReference;
-    RefPtrWillBePersistent<CSSValue> m_resolvedValue;
+    Persistent<CSSVariableReferenceValue> m_variableReference;
+    Persistent<CSSValue> m_resolvedValue;
 };
 
 InterpolationValue CSSInterpolationType::maybeConvertSingle(const PropertySpecificKeyframe& keyframe, const InterpolationEnvironment& environment, const InterpolationValue& underlying, ConversionCheckers& conversionCheckers) const
 {
-    RefPtrWillBeRawPtr<CSSValue> resolvedCSSValueOwner;
+    RawPtr<CSSValue> resolvedCSSValueOwner;
     const CSSValue* value = toCSSPropertySpecificKeyframe(keyframe).value();
 
     if (!value)
diff --git a/third_party/WebKit/Source/core/animation/CSSLengthInterpolationType.cpp b/third_party/WebKit/Source/core/animation/CSSLengthInterpolationType.cpp
index 22e947e..cb11e0f 100644
--- a/third_party/WebKit/Source/core/animation/CSSLengthInterpolationType.cpp
+++ b/third_party/WebKit/Source/core/animation/CSSLengthInterpolationType.cpp
@@ -286,13 +286,13 @@
     return static_cast<CSSPrimitiveValue::UnitType>(CSSPrimitiveValue::lengthUnitTypeToUnitType(static_cast<CSSPrimitiveValue::LengthUnitType>(lengthUnitType)));
 }
 
-static PassRefPtrWillBeRawPtr<CSSCalcExpressionNode> createCalcExpression(const InterpolableList& values, bool hasPercentage)
+static RawPtr<CSSCalcExpressionNode> createCalcExpression(const InterpolableList& values, bool hasPercentage)
 {
-    RefPtrWillBeRawPtr<CSSCalcExpressionNode> result = nullptr;
+    RawPtr<CSSCalcExpressionNode> result = nullptr;
     for (size_t i = 0; i < CSSPrimitiveValue::LengthUnitTypeCount; i++) {
         double value = toInterpolableNumber(values.get(i))->value();
         if (value || (i == CSSPrimitiveValue::UnitTypePercentage && hasPercentage)) {
-            RefPtrWillBeRawPtr<CSSCalcExpressionNode> node = CSSCalcValue::createExpressionNode(CSSPrimitiveValue::create(value, toUnitType(i)));
+            RawPtr<CSSCalcExpressionNode> node = CSSCalcValue::createExpressionNode(CSSPrimitiveValue::create(value, toUnitType(i)));
             result = result ? CSSCalcValue::createExpressionNode(result.release(), node.release(), CalcAdd) : node.release();
         }
     }
@@ -300,9 +300,9 @@
     return result.release();
 }
 
-static PassRefPtrWillBeRawPtr<CSSValue> createCSSValue(const InterpolableList& values, bool hasPercentage, ValueRange range)
+static RawPtr<CSSValue> createCSSValue(const InterpolableList& values, bool hasPercentage, ValueRange range)
 {
-    RefPtrWillBeRawPtr<CSSPrimitiveValue> result;
+    RawPtr<CSSPrimitiveValue> result;
     size_t firstUnitIndex = CSSPrimitiveValue::LengthUnitTypeCount;
     size_t unitTypeCount = 0;
     for (size_t i = 0; i < CSSPrimitiveValue::LengthUnitTypeCount; i++) {
diff --git a/third_party/WebKit/Source/core/animation/CSSSizeListInterpolationType.h b/third_party/WebKit/Source/core/animation/CSSSizeListInterpolationType.h
index 06d2493..9e3f169 100644
--- a/third_party/WebKit/Source/core/animation/CSSSizeListInterpolationType.h
+++ b/third_party/WebKit/Source/core/animation/CSSSizeListInterpolationType.h
@@ -22,7 +22,7 @@
 private:
     InterpolationValue maybeConvertValue(const CSSValue& value, const StyleResolverState&, ConversionCheckers&) const final
     {
-        RefPtrWillBeRawPtr<CSSValueList> tempList = nullptr;
+        RawPtr<CSSValueList> tempList = nullptr;
         if (!value.isBaseValueList()) {
             tempList = CSSValueList::createCommaSeparated();
             tempList->append(const_cast<CSSValue*>(&value)); // Take ref.
diff --git a/third_party/WebKit/Source/core/animation/CSSValueInterpolationType.cpp b/third_party/WebKit/Source/core/animation/CSSValueInterpolationType.cpp
index 33377126..e3076e8 100644
--- a/third_party/WebKit/Source/core/animation/CSSValueInterpolationType.cpp
+++ b/third_party/WebKit/Source/core/animation/CSSValueInterpolationType.cpp
@@ -14,7 +14,7 @@
 public:
     ~CSSValueNonInterpolableValue() final { }
 
-    static PassRefPtr<CSSValueNonInterpolableValue> create(PassRefPtrWillBeRawPtr<CSSValue> cssValue)
+    static PassRefPtr<CSSValueNonInterpolableValue> create(RawPtr<CSSValue> cssValue)
     {
         return adoptRef(new CSSValueNonInterpolableValue(cssValue));
     }
@@ -24,13 +24,13 @@
     DECLARE_NON_INTERPOLABLE_VALUE_TYPE();
 
 private:
-    CSSValueNonInterpolableValue(PassRefPtrWillBeRawPtr<CSSValue> cssValue)
+    CSSValueNonInterpolableValue(RawPtr<CSSValue> cssValue)
         : m_cssValue(cssValue)
     {
         ASSERT(m_cssValue);
     }
 
-    RefPtrWillBePersistent<CSSValue> m_cssValue;
+    Persistent<CSSValue> m_cssValue;
 };
 
 DEFINE_NON_INTERPOLABLE_VALUE_TYPE(CSSValueNonInterpolableValue);
diff --git a/third_party/WebKit/Source/core/animation/CompositorAnimationsTest.cpp b/third_party/WebKit/Source/core/animation/CompositorAnimationsTest.cpp
index de66475..70689b5 100644
--- a/third_party/WebKit/Source/core/animation/CompositorAnimationsTest.cpp
+++ b/third_party/WebKit/Source/core/animation/CompositorAnimationsTest.cpp
@@ -79,8 +79,8 @@
     OwnPtr<AnimatableValueKeyframeVector> m_keyframeVector5;
     Persistent<AnimatableValueKeyframeEffectModel> m_keyframeAnimationEffect5;
 
-    RefPtrWillBePersistent<Document> m_document;
-    RefPtrWillBePersistent<Element> m_element;
+    Persistent<Document> m_document;
+    Persistent<Element> m_element;
     Persistent<AnimationTimeline> m_timeline;
     OwnPtr<DummyPageHolder> m_pageHolder;
     CompositorFactoryMock* m_mockCompositorFactory;
@@ -1182,7 +1182,7 @@
 
 TEST_F(AnimationCompositorAnimationsTest, CancelIncompatibleCompositorAnimations)
 {
-    RefPtrWillBePersistent<Element> element = m_document->createElement("shared", ASSERT_NO_EXCEPTION);
+    Persistent<Element> element = m_document->createElement("shared", ASSERT_NO_EXCEPTION);
 
     LayoutObjectProxy* layoutObject = LayoutObjectProxy::create(element.get());
     element->setLayoutObject(layoutObject);
diff --git a/third_party/WebKit/Source/core/animation/ConstantStyleInterpolation.h b/third_party/WebKit/Source/core/animation/ConstantStyleInterpolation.h
deleted file mode 100644
index 56dbfda9..0000000
--- a/third_party/WebKit/Source/core/animation/ConstantStyleInterpolation.h
+++ /dev/null
@@ -1,36 +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 ConstantStyleInterpolation_h
-#define ConstantStyleInterpolation_h
-
-#include "core/animation/StyleInterpolation.h"
-#include "core/css/resolver/StyleBuilder.h"
-
-namespace blink {
-
-class ConstantStyleInterpolation : public StyleInterpolation {
-public:
-    static PassRefPtr<ConstantStyleInterpolation> create(CSSValue* value, CSSPropertyID id)
-    {
-        return adoptRef(new ConstantStyleInterpolation(value, id));
-    }
-
-    void apply(StyleResolverState& state) const override
-    {
-        StyleBuilder::applyProperty(m_id, state, m_value.get());
-    }
-
-private:
-    ConstantStyleInterpolation(CSSValue* value, CSSPropertyID id)
-        : StyleInterpolation(InterpolableList::create(0), InterpolableList::create(0), id)
-        , m_value(value)
-    { }
-
-    RefPtrWillBePersistent<CSSValue> m_value;
-};
-
-} // namespace blink
-
-#endif
diff --git a/third_party/WebKit/Source/core/animation/DeferredLegacyStyleInterpolation.h b/third_party/WebKit/Source/core/animation/DeferredLegacyStyleInterpolation.h
index e957ef2..2e1659c 100644
--- a/third_party/WebKit/Source/core/animation/DeferredLegacyStyleInterpolation.h
+++ b/third_party/WebKit/Source/core/animation/DeferredLegacyStyleInterpolation.h
@@ -26,7 +26,7 @@
 
 class CORE_EXPORT DeferredLegacyStyleInterpolation : public StyleInterpolation {
 public:
-    static PassRefPtr<DeferredLegacyStyleInterpolation> create(PassRefPtrWillBeRawPtr<CSSValue> start, PassRefPtrWillBeRawPtr<CSSValue> end, CSSPropertyID id)
+    static PassRefPtr<DeferredLegacyStyleInterpolation> create(RawPtr<CSSValue> start, RawPtr<CSSValue> end, CSSPropertyID id)
     {
         return adoptRef(new DeferredLegacyStyleInterpolation(start, end, id));
     }
@@ -47,7 +47,7 @@
     static bool interpolationRequiresStyleResolve(const CSSQuadValue&);
 
 private:
-    DeferredLegacyStyleInterpolation(PassRefPtrWillBeRawPtr<CSSValue> start, PassRefPtrWillBeRawPtr<CSSValue> end, CSSPropertyID id)
+    DeferredLegacyStyleInterpolation(RawPtr<CSSValue> start, RawPtr<CSSValue> end, CSSPropertyID id)
         : StyleInterpolation(InterpolableNumber::create(0), InterpolableNumber::create(1), id)
         , m_startCSSValue(start)
         , m_endCSSValue(end)
@@ -55,8 +55,8 @@
     {
     }
 
-    RefPtrWillBePersistent<CSSValue> m_startCSSValue;
-    RefPtrWillBePersistent<CSSValue> m_endCSSValue;
+    Persistent<CSSValue> m_startCSSValue;
+    Persistent<CSSValue> m_endCSSValue;
     mutable RefPtr<LegacyStyleInterpolation> m_innerInterpolation;
     mutable bool m_outdated;
 };
diff --git a/third_party/WebKit/Source/core/animation/DeferredLegacyStyleInterpolationTest.cpp b/third_party/WebKit/Source/core/animation/DeferredLegacyStyleInterpolationTest.cpp
index 7c0dbe8..5cbd062d 100644
--- a/third_party/WebKit/Source/core/animation/DeferredLegacyStyleInterpolationTest.cpp
+++ b/third_party/WebKit/Source/core/animation/DeferredLegacyStyleInterpolationTest.cpp
@@ -20,7 +20,7 @@
         CSSParserMode parserMode = HTMLStandardMode;
         if (propertyID == CSSPropertyFloodColor)
             parserMode = SVGAttributeMode;
-        RefPtrWillBeRawPtr<CSSValue> value = CSSParser::parseSingleValue(propertyID, string, CSSParserContext(parserMode, 0));
+        RawPtr<CSSValue> value = CSSParser::parseSingleValue(propertyID, string, CSSParserContext(parserMode, 0));
         ASSERT(value);
         return DeferredLegacyStyleInterpolation::interpolationRequiresStyleResolve(*value);
     }
diff --git a/third_party/WebKit/Source/core/animation/DoubleStyleInterpolation.cpp b/third_party/WebKit/Source/core/animation/DoubleStyleInterpolation.cpp
deleted file mode 100644
index d9360517..0000000
--- a/third_party/WebKit/Source/core/animation/DoubleStyleInterpolation.cpp
+++ /dev/null
@@ -1,155 +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.
-
-#include "core/animation/DoubleStyleInterpolation.h"
-
-#include "core/css/CSSValueList.h"
-#include "core/css/resolver/StyleBuilder.h"
-#include "core/style/ComputedStyleConstants.h"
-
-namespace blink {
-
-bool DoubleStyleInterpolation::canCreateFrom(const CSSValue& value)
-{
-    return value.isPrimitiveValue() && (toCSSPrimitiveValue(value).isNumber() || toCSSPrimitiveValue(value).isAngle());
-}
-
-PassOwnPtr<InterpolableValue> DoubleStyleInterpolation::doubleToInterpolableValue(const CSSValue& value)
-{
-    ASSERT(canCreateFrom(value));
-    const CSSPrimitiveValue& primitive = toCSSPrimitiveValue(value);
-    if (primitive.isNumber())
-        return InterpolableNumber::create(primitive.getDoubleValue());
-    if (primitive.isAngle())
-        return InterpolableNumber::create(primitive.computeDegrees());
-    ASSERT_NOT_REACHED();
-    return nullptr;
-}
-
-static double clampToRange(double value, InterpolationRange clamp)
-{
-    switch (clamp) {
-    case RangeAll:
-        // Do nothing
-        return value;
-    case RangeZeroToOne:
-        return clampTo<float>(value, 0, 1);
-    case RangeOpacityFIXME:
-        return clampTo<float>(value, 0, nextafterf(1, 0));
-    case RangeFloor:
-        return floor(value);
-    case RangeRound:
-        return round(value);
-    case RangeRoundGreaterThanOrEqualToOne:
-        return clampTo<float>(round(value), 1);
-    case RangeGreaterThanOrEqualToOne:
-        return clampTo<float>(value, 1);
-    case RangeNonNegative:
-        return clampTo<float>(value, 0);
-    default:
-        ASSERT_NOT_REACHED();
-        return value;
-    }
-}
-
-PassRefPtrWillBeRawPtr<CSSValue> DoubleStyleInterpolation::interpolableValueToDouble(const InterpolableValue* value, bool isNumber, InterpolationRange clamp)
-{
-    ASSERT(value->isNumber());
-    double doubleValue = clampToRange(toInterpolableNumber(value)->value(), clamp);
-
-    if (isNumber)
-        return CSSPrimitiveValue::create(doubleValue, CSSPrimitiveValue::UnitType::Number);
-    return CSSPrimitiveValue::create(doubleValue, CSSPrimitiveValue::UnitType::Degrees);
-}
-
-void DoubleStyleInterpolation::apply(StyleResolverState& state) const
-{
-    if (m_id != CSSPropertyMotionRotation) {
-        StyleBuilder::applyProperty(m_id, state, interpolableValueToDouble(m_cachedValue.get(), m_isNumber, m_clamp).get());
-        return;
-    }
-
-    StyleBuilder::applyProperty(m_id, state, interpolableValueToMotionRotation(m_cachedValue.get(), m_flag).get());
-}
-
-PassOwnPtr<InterpolableValue> DoubleStyleInterpolation::toInterpolableValue(const CSSValue& value, CSSPropertyID property)
-{
-    ASSERT(canCreateFrom(value));
-    return doubleToInterpolableValue(value);
-}
-
-PassRefPtrWillBeRawPtr<CSSValue> DoubleStyleInterpolation::fromInterpolableValue(const InterpolableValue& value, InterpolationRange range)
-{
-    return interpolableValueToDouble(&value, true, range);
-}
-
-namespace {
-
-bool extractMotionRotation(const CSSValue& value, float* rotation, MotionRotationType* rotationType)
-{
-    *rotation = 0;
-    *rotationType = MotionRotationFixed;
-
-    if (!value.isValueList())
-        return false;
-    const CSSValueList& list = toCSSValueList(value);
-
-    int len = list.length();
-    for (int i = 0; i < len; i++) {
-        const CSSValue* item = list.item(i);
-        if (!item->isPrimitiveValue())
-            return false;
-        const CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(item);
-        if (primitiveValue->getValueID() == CSSValueAuto) {
-            *rotationType = MotionRotationAuto;
-        } else if (primitiveValue->getValueID() == CSSValueReverse) {
-            *rotationType = MotionRotationAuto;
-            *rotation += 180;
-        } else if (primitiveValue->isAngle()) {
-            *rotation += primitiveValue->computeDegrees();
-        } else {
-            return false;
-        }
-    }
-    return true;
-}
-
-} // namespace
-
-PassRefPtrWillBeRawPtr<CSSValue> DoubleStyleInterpolation::interpolableValueToMotionRotation(InterpolableValue* value, bool flag)
-{
-    RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated();
-    if (flag)
-        list->append(CSSPrimitiveValue::createIdentifier(CSSValueAuto));
-    ASSERT(value->isNumber());
-    list->append(CSSPrimitiveValue::create(toInterpolableNumber(value)->value(), CSSPrimitiveValue::UnitType::Degrees));
-    return list.release();
-}
-
-PassOwnPtr<InterpolableValue> DoubleStyleInterpolation::motionRotationToInterpolableValue(const CSSValue& value)
-{
-    float rotation;
-    MotionRotationType rotationType;
-    extractMotionRotation(value, &rotation, &rotationType);
-
-    return InterpolableNumber::create(rotation);
-}
-
-PassRefPtr<DoubleStyleInterpolation> DoubleStyleInterpolation::maybeCreateFromMotionRotation(const CSSValue& start, const CSSValue& end, CSSPropertyID id)
-{
-    float startRotation, endRotation;
-    MotionRotationType startRotationType, endRotationType;
-
-    if (!extractMotionRotation(start, &startRotation, &startRotationType)
-        || !extractMotionRotation(end, &endRotation, &endRotationType)
-        || startRotationType != endRotationType)
-        return nullptr;
-
-    return adoptRef(new DoubleStyleInterpolation(
-        motionRotationToInterpolableValue(start),
-        motionRotationToInterpolableValue(end),
-        id, true, InterpolationRange::RangeAll, startRotationType == MotionRotationAuto));
-}
-
-} // namespace blink
diff --git a/third_party/WebKit/Source/core/animation/DoubleStyleInterpolation.h b/third_party/WebKit/Source/core/animation/DoubleStyleInterpolation.h
deleted file mode 100644
index ecfc2a68..0000000
--- a/third_party/WebKit/Source/core/animation/DoubleStyleInterpolation.h
+++ /dev/null
@@ -1,53 +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.
-
-#ifndef DoubleStyleInterpolation_h
-#define DoubleStyleInterpolation_h
-
-#include "core/CoreExport.h"
-#include "core/animation/StyleInterpolation.h"
-#include "core/css/CSSPrimitiveValue.h"
-
-namespace blink {
-
-class CORE_EXPORT DoubleStyleInterpolation : public StyleInterpolation {
-public:
-    typedef void NonInterpolableType;
-
-    static PassRefPtr<DoubleStyleInterpolation> create(const CSSValue& start, const CSSValue& end, CSSPropertyID id, bool isNumber, InterpolationRange clamp)
-    {
-        return adoptRef(new DoubleStyleInterpolation(doubleToInterpolableValue(start), doubleToInterpolableValue(end), id, isNumber, clamp, false));
-    }
-
-    static PassRefPtr<DoubleStyleInterpolation> maybeCreateFromMotionRotation(const CSSValue& start, const CSSValue& end, CSSPropertyID);
-
-    static bool canCreateFrom(const CSSValue&);
-
-    void apply(StyleResolverState&) const override;
-
-    static PassOwnPtr<InterpolableValue> toInterpolableValue(const CSSValue&, CSSPropertyID = CSSPropertyInvalid);
-    static PassRefPtrWillBeRawPtr<CSSValue> fromInterpolableValue(const InterpolableValue&, InterpolationRange);
-
-private:
-    DoubleStyleInterpolation(PassOwnPtr<InterpolableValue> start, PassOwnPtr<InterpolableValue> end, CSSPropertyID id, bool isNumber, InterpolationRange clamp, bool flag)
-        : StyleInterpolation(std::move(start), std::move(end), id)
-        , m_isNumber(isNumber)
-        , m_clamp(clamp)
-        , m_flag(flag)
-    { }
-
-    static PassOwnPtr<InterpolableValue> doubleToInterpolableValue(const CSSValue&);
-    static PassOwnPtr<InterpolableValue> motionRotationToInterpolableValue(const CSSValue&);
-
-    static PassRefPtrWillBeRawPtr<CSSValue> interpolableValueToDouble(const InterpolableValue*, bool, InterpolationRange);
-    static PassRefPtrWillBeRawPtr<CSSValue> interpolableValueToMotionRotation(InterpolableValue*, bool);
-
-    bool m_isNumber;
-    InterpolationRange m_clamp;
-    bool m_flag;
-
-    friend class AnimationDoubleStyleInterpolationTest;
-};
-} // namespace blink
-#endif
diff --git a/third_party/WebKit/Source/core/animation/DoubleStyleInterpolationTest.cpp b/third_party/WebKit/Source/core/animation/DoubleStyleInterpolationTest.cpp
deleted file mode 100644
index 3166c10..0000000
--- a/third_party/WebKit/Source/core/animation/DoubleStyleInterpolationTest.cpp
+++ /dev/null
@@ -1,145 +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.
-
-#include "core/animation/DoubleStyleInterpolation.h"
-
-#include "core/css/CSSPrimitiveValue.h"
-#include "core/css/CSSValueList.h"
-#include "core/css/StylePropertySet.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#include "wtf/MathExtras.h"
-
-namespace blink {
-
-class AnimationDoubleStyleInterpolationTest : public ::testing::Test {
-protected:
-    static PassOwnPtr<InterpolableValue> doubleToInterpolableValue(const CSSValue& value)
-    {
-        return DoubleStyleInterpolation::doubleToInterpolableValue(value);
-    }
-
-    static PassOwnPtr<InterpolableValue> motionRotationToInterpolableValue(const CSSValue& value)
-    {
-        return DoubleStyleInterpolation::motionRotationToInterpolableValue(value);
-    }
-
-    static PassRefPtrWillBeRawPtr<CSSValue> interpolableValueToDouble(InterpolableValue* value, bool isNumber, InterpolationRange clamp)
-    {
-        return DoubleStyleInterpolation::interpolableValueToDouble(value, isNumber, clamp);
-    }
-
-    static PassRefPtrWillBeRawPtr<CSSValue> interpolableValueToMotionRotation(InterpolableValue* value, bool flag)
-    {
-        return DoubleStyleInterpolation::interpolableValueToMotionRotation(value, flag);
-    }
-
-    static PassRefPtrWillBeRawPtr<CSSValue> roundTrip(PassRefPtrWillBeRawPtr<CSSValue> value)
-    {
-        return interpolableValueToDouble(doubleToInterpolableValue(*value).get(), toCSSPrimitiveValue(value.get())->isNumber(), RangeAll);
-    }
-
-    static PassRefPtrWillBeRawPtr<CSSValue> roundTripMotionRotation(PassRefPtrWillBeRawPtr<CSSValue> value, bool flag)
-    {
-        return interpolableValueToMotionRotation(motionRotationToInterpolableValue(*value).get(), flag);
-    }
-
-    static void testPrimitiveValue(RefPtrWillBeRawPtr<CSSValue> value, double doubleValue, CSSPrimitiveValue::UnitType unitType)
-    {
-        EXPECT_TRUE(value->isPrimitiveValue());
-        EXPECT_EQ(doubleValue, toCSSPrimitiveValue(value.get())->getDoubleValue());
-        EXPECT_EQ(unitType, toCSSPrimitiveValue(value.get())->typeWithCalcResolved());
-    }
-
-    static void testValueListMotionRotation(RefPtrWillBeRawPtr<CSSValue> value, double doubleValue, bool flag)
-    {
-        EXPECT_TRUE(value->isValueList());
-        const CSSValueList& list = toCSSValueList(*value);
-        const CSSValue* item;
-        if (flag) {
-            EXPECT_EQ(2U, list.length());
-            item = list.item(0);
-            EXPECT_TRUE(item->isPrimitiveValue());
-            EXPECT_EQ(CSSValueAuto, toCSSPrimitiveValue(item)->getValueID());
-            item = list.item(1);
-        } else {
-            EXPECT_EQ(1U, list.length());
-            item = list.item(0);
-        }
-        EXPECT_TRUE(item->isPrimitiveValue());
-        EXPECT_EQ(doubleValue, toCSSPrimitiveValue(item)->getDoubleValue());
-        EXPECT_EQ(CSSPrimitiveValue::UnitType::Degrees, toCSSPrimitiveValue(item)->typeWithCalcResolved());
-    }
-
-    static InterpolableValue* getCachedValue(Interpolation& interpolation)
-    {
-        return interpolation.getCachedValueForTesting();
-    }
-};
-
-TEST_F(AnimationDoubleStyleInterpolationTest, ZeroValue)
-{
-    RefPtrWillBeRawPtr<CSSValue> value = roundTrip(CSSPrimitiveValue::create(0, CSSPrimitiveValue::UnitType::Number));
-    testPrimitiveValue(value, 0, CSSPrimitiveValue::UnitType::Number);
-}
-
-TEST_F(AnimationDoubleStyleInterpolationTest, AngleValue)
-{
-    RefPtrWillBeRawPtr<CSSValue> value = roundTrip(CSSPrimitiveValue::create(10, CSSPrimitiveValue::UnitType::Degrees));
-    testPrimitiveValue(value, 10, CSSPrimitiveValue::UnitType::Degrees);
-
-    value = roundTrip(CSSPrimitiveValue::create(10, CSSPrimitiveValue::UnitType::Radians));
-    testPrimitiveValue(value, rad2deg(10.0), CSSPrimitiveValue::UnitType::Degrees);
-
-    value = roundTrip(CSSPrimitiveValue::create(10, CSSPrimitiveValue::UnitType::Gradians));
-    testPrimitiveValue(value, grad2deg(10.0), CSSPrimitiveValue::UnitType::Degrees);
-}
-
-TEST_F(AnimationDoubleStyleInterpolationTest, Clamping)
-{
-    RefPtr<Interpolation> interpolableDouble = DoubleStyleInterpolation::create(
-        *CSSPrimitiveValue::create(0, CSSPrimitiveValue::UnitType::Number),
-        *CSSPrimitiveValue::create(0.6, CSSPrimitiveValue::UnitType::Number),
-        CSSPropertyLineHeight,
-        true,
-        RangeAll);
-    interpolableDouble->interpolate(0, 0.4);
-    // progVal = start*(1-prog) + end*prog
-    EXPECT_EQ(0.24, toInterpolableNumber(getCachedValue(*interpolableDouble))->value());
-}
-
-TEST_F(AnimationDoubleStyleInterpolationTest, ZeroValueFixedMotionRotation)
-{
-    RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated();
-    list->append(CSSPrimitiveValue::create(0, CSSPrimitiveValue::UnitType::Degrees));
-    RefPtrWillBeRawPtr<CSSValue> value = roundTripMotionRotation(list.release(), false);
-    testValueListMotionRotation(value, 0, false);
-}
-
-TEST_F(AnimationDoubleStyleInterpolationTest, ZeroValueAutoMotionRotation)
-{
-    RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated();
-    list->append(CSSPrimitiveValue::createIdentifier(CSSValueAuto));
-    list->append(CSSPrimitiveValue::create(0, CSSPrimitiveValue::UnitType::Degrees));
-    RefPtrWillBeRawPtr<CSSValue> value = roundTripMotionRotation(list.release(), true);
-    testValueListMotionRotation(value, 0, true);
-}
-
-TEST_F(AnimationDoubleStyleInterpolationTest, ValueFixedMotionRotation)
-{
-    RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated();
-    list->append(CSSPrimitiveValue::create(90, CSSPrimitiveValue::UnitType::Degrees));
-    RefPtrWillBeRawPtr<CSSValue> value = roundTripMotionRotation(list.release(), false);
-    testValueListMotionRotation(value, 90, false);
-}
-
-TEST_F(AnimationDoubleStyleInterpolationTest, ValueAutoMotionRotation)
-{
-    RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated();
-    list->append(CSSPrimitiveValue::createIdentifier(CSSValueAuto));
-    list->append(CSSPrimitiveValue::create(90, CSSPrimitiveValue::UnitType::Degrees));
-    RefPtrWillBeRawPtr<CSSValue> value = roundTripMotionRotation(list.release(), true);
-    testValueListMotionRotation(value, 90, true);
-}
-
-} // namespace blink
diff --git a/third_party/WebKit/Source/core/animation/EffectInputTest.cpp b/third_party/WebKit/Source/core/animation/EffectInputTest.cpp
index d0762c0..47e313f2 100644
--- a/third_party/WebKit/Source/core/animation/EffectInputTest.cpp
+++ b/third_party/WebKit/Source/core/animation/EffectInputTest.cpp
@@ -29,7 +29,7 @@
     }
 
     OwnPtr<DummyPageHolder> pageHolder;
-    RefPtrWillBePersistent<Element> element;
+    Persistent<Element> element;
     TrackExceptionState exceptionState;
     v8::Isolate* m_isolate;
 
diff --git a/third_party/WebKit/Source/core/animation/ImageListPropertyFunctions.h b/third_party/WebKit/Source/core/animation/ImageListPropertyFunctions.h
index 7da221c..1105e07 100644
--- a/third_party/WebKit/Source/core/animation/ImageListPropertyFunctions.h
+++ b/third_party/WebKit/Source/core/animation/ImageListPropertyFunctions.h
@@ -11,7 +11,7 @@
 
 namespace blink {
 
-using StyleImageList = WillBePersistentHeapVector<RefPtrWillBeMember<StyleImage>, 1>;
+using StyleImageList = PersistentHeapVector<Member<StyleImage>, 1>;
 
 class ImageListPropertyFunctions {
 public:
diff --git a/third_party/WebKit/Source/core/animation/ImagePropertyFunctions.h b/third_party/WebKit/Source/core/animation/ImagePropertyFunctions.h
index b1c1166..0b8e1df 100644
--- a/third_party/WebKit/Source/core/animation/ImagePropertyFunctions.h
+++ b/third_party/WebKit/Source/core/animation/ImagePropertyFunctions.h
@@ -29,7 +29,7 @@
         }
     }
 
-    static void setStyleImage(CSSPropertyID property, ComputedStyle& style, PassRefPtrWillBeRawPtr<StyleImage> image)
+    static void setStyleImage(CSSPropertyID property, ComputedStyle& style, RawPtr<StyleImage> image)
     {
         switch (property) {
         case CSSPropertyBorderImageSource:
diff --git a/third_party/WebKit/Source/core/animation/InterpolationEnvironment.h b/third_party/WebKit/Source/core/animation/InterpolationEnvironment.h
index 490619b..b89c91a2 100644
--- a/third_party/WebKit/Source/core/animation/InterpolationEnvironment.h
+++ b/third_party/WebKit/Source/core/animation/InterpolationEnvironment.h
@@ -39,8 +39,8 @@
 
 private:
     StyleResolverState* m_state;
-    RawPtrWillBeMember<SVGElement> m_svgElement;
-    RawPtrWillBeMember<const SVGPropertyBase> m_svgBaseValue;
+    Member<SVGElement> m_svgElement;
+    Member<const SVGPropertyBase> m_svgBaseValue;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/animation/KeyframeEffect.h b/third_party/WebKit/Source/core/animation/KeyframeEffect.h
index 632e141..f0ee149 100644
--- a/third_party/WebKit/Source/core/animation/KeyframeEffect.h
+++ b/third_party/WebKit/Source/core/animation/KeyframeEffect.h
@@ -110,7 +110,7 @@
 private:
     KeyframeEffect(Element*, EffectModel*, const Timing&, Priority, EventDelegate*);
 
-    RawPtrWillBeMember<Element> m_target;
+    Member<Element> m_target;
     Member<EffectModel> m_model;
     Member<SampledEffect> m_sampledEffect;
 
diff --git a/third_party/WebKit/Source/core/animation/KeyframeEffectTest.cpp b/third_party/WebKit/Source/core/animation/KeyframeEffectTest.cpp
index c0d7a9ca..5704309 100644
--- a/third_party/WebKit/Source/core/animation/KeyframeEffectTest.cpp
+++ b/third_party/WebKit/Source/core/animation/KeyframeEffectTest.cpp
@@ -37,7 +37,7 @@
     Document& document() const { return pageHolder->document(); }
 
     OwnPtr<DummyPageHolder> pageHolder;
-    RefPtrWillBePersistent<Element> element;
+    Persistent<Element> element;
     TrackExceptionState exceptionState;
 };
 
diff --git a/third_party/WebKit/Source/core/animation/LengthStyleInterpolation.cpp b/third_party/WebKit/Source/core/animation/LengthStyleInterpolation.cpp
deleted file mode 100644
index ccdcc8d..0000000
--- a/third_party/WebKit/Source/core/animation/LengthStyleInterpolation.cpp
+++ /dev/null
@@ -1,182 +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.
-
-#include "core/animation/LengthStyleInterpolation.h"
-
-#include "core/animation/LengthPropertyFunctions.h"
-#include "core/animation/css/CSSAnimatableValueFactory.h"
-#include "core/css/CSSCalculationValue.h"
-#include "core/css/resolver/StyleBuilder.h"
-#include "core/css/resolver/StyleResolverState.h"
-#include "platform/CalculationValue.h"
-
-namespace blink {
-
-bool LengthStyleInterpolation::canCreateFrom(const CSSValue& value, CSSPropertyID property)
-{
-    if (!value.isPrimitiveValue())
-        return false;
-
-    const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value);
-    return primitiveValue.isLength() || primitiveValue.isPercentage() || primitiveValue.isCalculatedPercentageWithLength();
-}
-
-PassOwnPtr<InterpolableValue> LengthStyleInterpolation::toInterpolableValue(const CSSValue& value, CSSPropertyID id)
-{
-    ASSERT(canCreateFrom(value, id));
-    OwnPtr<InterpolableList> listOfValuesAndTypes = InterpolableList::create(2);
-    OwnPtr<InterpolableList> listOfValues = InterpolableList::create(CSSPrimitiveValue::LengthUnitTypeCount);
-    OwnPtr<InterpolableList> listOfTypes = InterpolableList::create(CSSPrimitiveValue::LengthUnitTypeCount);
-
-    const CSSPrimitiveValue& primitive = toCSSPrimitiveValue(value);
-
-    CSSLengthArray arrayOfValues;
-    CSSPrimitiveValue::CSSLengthTypeArray arrayOfTypes;
-    for (size_t i = 0; i < CSSPrimitiveValue::LengthUnitTypeCount; i++)
-        arrayOfValues.append(0);
-    arrayOfTypes.ensureSize(CSSPrimitiveValue::LengthUnitTypeCount);
-    primitive.accumulateLengthArray(arrayOfValues, arrayOfTypes);
-
-    for (size_t i = 0; i < CSSPrimitiveValue::LengthUnitTypeCount; i++) {
-        listOfValues->set(i, InterpolableNumber::create(arrayOfValues.at(i)));
-        listOfTypes->set(i, InterpolableNumber::create(arrayOfTypes.get(i)));
-    }
-
-    listOfValuesAndTypes->set(0, listOfValues.release());
-    listOfValuesAndTypes->set(1, listOfTypes.release());
-
-    return listOfValuesAndTypes.release();
-}
-
-namespace {
-
-bool isPixelsOrPercentOnly(const InterpolableValue& value)
-{
-    const InterpolableList& types = *toInterpolableList(toInterpolableList(value).get(1));
-    bool result = false;
-    for (size_t i = 0; i < CSSPrimitiveValue::LengthUnitTypeCount; i++) {
-        bool typeIsPresent = toInterpolableNumber(types.get(i))->value();
-        if (i == CSSPrimitiveValue::UnitTypePixels)
-            result |= typeIsPresent;
-        else if (i == CSSPrimitiveValue::UnitTypePercentage)
-            result |= typeIsPresent;
-        else if (typeIsPresent)
-            return false;
-    }
-    return result;
-}
-
-static CSSPrimitiveValue::UnitType toUnitType(int lengthUnitType)
-{
-    return static_cast<CSSPrimitiveValue::UnitType>(CSSPrimitiveValue::lengthUnitTypeToUnitType(static_cast<CSSPrimitiveValue::LengthUnitType>(lengthUnitType)));
-}
-
-static PassRefPtrWillBeRawPtr<CSSCalcExpressionNode> constructCalcExpression(const InterpolableList* list)
-{
-    const InterpolableList* listOfValues = toInterpolableList(list->get(0));
-    const InterpolableList* listOfTypes = toInterpolableList(list->get(1));
-    RefPtrWillBeRawPtr<CSSCalcExpressionNode> expression = nullptr;
-    for (size_t position = 0; position < CSSPrimitiveValue::LengthUnitTypeCount; position++) {
-        const InterpolableNumber *subValueType = toInterpolableNumber(listOfTypes->get(position));
-        if (!subValueType->value())
-            continue;
-        double value = toInterpolableNumber(listOfValues->get(position))->value();
-        RefPtrWillBeRawPtr<CSSCalcExpressionNode> currentTerm = CSSCalcValue::createExpressionNode(CSSPrimitiveValue::create(value, toUnitType(position)));
-        if (expression)
-            expression = CSSCalcValue::createExpressionNode(expression.release(), currentTerm.release(), CalcAdd);
-        else
-            expression = currentTerm.release();
-    }
-    return expression.release();
-}
-
-static double clampToRange(double x, ValueRange range)
-{
-    return (range == ValueRangeNonNegative && x < 0) ? 0 : x;
-}
-
-static Length lengthFromInterpolableValue(const InterpolableValue& value, InterpolationRange interpolationRange, float zoom)
-{
-    const InterpolableList& values = *toInterpolableList(toInterpolableList(value).get(0));
-    const InterpolableList& types = *toInterpolableList(toInterpolableList(value).get(1));
-    bool hasPixels = toInterpolableNumber(types.get(CSSPrimitiveValue::UnitTypePixels))->value();
-    bool hasPercent = toInterpolableNumber(types.get(CSSPrimitiveValue::UnitTypePercentage))->value();
-
-    ValueRange range = (interpolationRange == RangeNonNegative) ? ValueRangeNonNegative : ValueRangeAll;
-    PixelsAndPercent pixelsAndPercent(0, 0);
-    if (hasPixels)
-        pixelsAndPercent.pixels = toInterpolableNumber(values.get(CSSPrimitiveValue::UnitTypePixels))->value() * zoom;
-    if (hasPercent)
-        pixelsAndPercent.percent = toInterpolableNumber(values.get(CSSPrimitiveValue::UnitTypePercentage))->value();
-
-    if (hasPixels && hasPercent)
-        return Length(CalculationValue::create(pixelsAndPercent, range));
-    if (hasPixels)
-        return Length(CSSPrimitiveValue::clampToCSSLengthRange(clampToRange(pixelsAndPercent.pixels, range)), Fixed);
-    if (hasPercent)
-        return Length(clampToRange(pixelsAndPercent.percent, range), Percent);
-    ASSERT_NOT_REACHED();
-    return Length(0, Fixed);
-}
-
-} // namespace
-
-PassRefPtrWillBeRawPtr<CSSPrimitiveValue> LengthStyleInterpolation::fromInterpolableValue(const InterpolableValue& value, InterpolationRange range)
-{
-    const InterpolableList* listOfValuesAndTypes = toInterpolableList(&value);
-    const InterpolableList* listOfValues = toInterpolableList(listOfValuesAndTypes->get(0));
-    const InterpolableList* listOfTypes = toInterpolableList(listOfValuesAndTypes->get(1));
-    unsigned unitTypeCount = 0;
-    for (size_t i = 0; i < CSSPrimitiveValue::LengthUnitTypeCount; i++) {
-        const InterpolableNumber* subType = toInterpolableNumber(listOfTypes->get(i));
-        if (subType->value()) {
-            unitTypeCount++;
-        }
-    }
-
-    switch (unitTypeCount) {
-    case 0:
-        // TODO: this case should never be reached. This issue should be fixed once we have multiple interpolators.
-        return CSSPrimitiveValue::create(0, CSSPrimitiveValue::UnitType::Pixels);
-    case 1:
-        for (size_t i = 0; i < CSSPrimitiveValue::LengthUnitTypeCount; i++) {
-            const InterpolableNumber *subValueType = toInterpolableNumber(listOfTypes->get(i));
-            if (subValueType->value()) {
-                double value = toInterpolableNumber(listOfValues->get(i))->value();
-                if (range == RangeNonNegative && value < 0)
-                    value = 0;
-                return CSSPrimitiveValue::create(value, toUnitType(i));
-            }
-        }
-        ASSERT_NOT_REACHED();
-    default:
-        ValueRange valueRange = (range == RangeNonNegative) ? ValueRangeNonNegative : ValueRangeAll;
-        return CSSPrimitiveValue::create(CSSCalcValue::create(constructCalcExpression(listOfValuesAndTypes), valueRange));
-    }
-}
-
-void LengthStyleInterpolation::applyInterpolableValue(CSSPropertyID property, const InterpolableValue& value, InterpolationRange range, StyleResolverState& state)
-{
-    if (isPixelsOrPercentOnly(value)) {
-        Length length = lengthFromInterpolableValue(value, range, state.style()->effectiveZoom());
-        if (LengthPropertyFunctions::setLength(property, *state.style(), length)) {
-#if ENABLE(ASSERT)
-            // Assert that setting the length on ComputedStyle directly is identical to the AnimatableValue code path.
-            RefPtr<AnimatableValue> before = CSSAnimatableValueFactory::create(property, *state.style());
-            StyleBuilder::applyProperty(property, state, fromInterpolableValue(value, range).get());
-            RefPtr<AnimatableValue> after = CSSAnimatableValueFactory::create(property, *state.style());
-            ASSERT(before->equals(*after));
-#endif
-            return;
-        }
-    }
-    StyleBuilder::applyProperty(property, state, fromInterpolableValue(value, range).get());
-}
-
-void LengthStyleInterpolation::apply(StyleResolverState& state) const
-{
-    applyInterpolableValue(m_id, *m_cachedValue, m_range, state);
-}
-
-} // namespace blink
diff --git a/third_party/WebKit/Source/core/animation/LengthStyleInterpolation.h b/third_party/WebKit/Source/core/animation/LengthStyleInterpolation.h
deleted file mode 100644
index 3a7e9bb..0000000
--- a/third_party/WebKit/Source/core/animation/LengthStyleInterpolation.h
+++ /dev/null
@@ -1,46 +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.
-
-#ifndef LengthStyleInterpolation_h
-#define LengthStyleInterpolation_h
-
-#include "core/CoreExport.h"
-#include "core/animation/StyleInterpolation.h"
-#include "core/css/CSSPrimitiveValue.h"
-
-namespace blink {
-
-class ComputedStyle;
-class Length;
-
-class CORE_EXPORT LengthStyleInterpolation : public StyleInterpolation {
-public:
-    typedef void NonInterpolableType;
-
-    static PassRefPtr<LengthStyleInterpolation> create(const CSSValue& start, const CSSValue& end, CSSPropertyID id, InterpolationRange range)
-    {
-        return adoptRef(new LengthStyleInterpolation(toInterpolableValue(start, id), toInterpolableValue(end, id), id, range));
-    }
-
-    static bool canCreateFrom(const CSSValue&, CSSPropertyID = CSSPropertyInvalid);
-
-    void apply(StyleResolverState&) const override;
-
-    static PassOwnPtr<InterpolableValue> toInterpolableValue(const CSSValue&, CSSPropertyID = CSSPropertyInvalid);
-    static PassRefPtrWillBeRawPtr<CSSPrimitiveValue> fromInterpolableValue(const InterpolableValue&, InterpolationRange);
-    static void applyInterpolableValue(CSSPropertyID, const InterpolableValue&, InterpolationRange, StyleResolverState&);
-
-private:
-    LengthStyleInterpolation(PassOwnPtr<InterpolableValue> start, PassOwnPtr<InterpolableValue> end, CSSPropertyID id, InterpolationRange range)
-        : StyleInterpolation(std::move(start), std::move(end), id)
-        , m_range(range)
-    {
-    }
-
-    InterpolationRange m_range;
-};
-
-} // namespace blink
-
-#endif
diff --git a/third_party/WebKit/Source/core/animation/LengthStyleInterpolationTest.cpp b/third_party/WebKit/Source/core/animation/LengthStyleInterpolationTest.cpp
deleted file mode 100644
index 295540d..0000000
--- a/third_party/WebKit/Source/core/animation/LengthStyleInterpolationTest.cpp
+++ /dev/null
@@ -1,170 +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.
-
-#include "core/animation/LengthStyleInterpolation.h"
-
-#include "core/css/CSSPrimitiveValue.h"
-#include "core/css/StylePropertySet.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace blink {
-
-class AnimationLengthStyleInterpolationTest : public ::testing::Test {
-protected:
-    static PassOwnPtr<InterpolableValue> lengthToInterpolableValue(const CSSValue& value)
-    {
-        return LengthStyleInterpolation::toInterpolableValue(value);
-    }
-
-    static PassRefPtrWillBeRawPtr<CSSValue> interpolableValueToLength(InterpolableValue* value, InterpolationRange range)
-    {
-        return LengthStyleInterpolation::fromInterpolableValue(*value, range);
-    }
-
-    static PassRefPtrWillBeRawPtr<CSSValue> roundTrip(PassRefPtrWillBeRawPtr<CSSValue> value)
-    {
-        return interpolableValueToLength(lengthToInterpolableValue(*value).get(), RangeAll);
-    }
-
-    static PassOwnPtr<InterpolableList> createInterpolableLength(double a, double b, double c, double d, double e, double f, double g, double h, double i, double j)
-    {
-        OwnPtr<InterpolableList> list = InterpolableList::create(10);
-        list->set(0, InterpolableNumber::create(a));
-        list->set(1, InterpolableNumber::create(b));
-        list->set(2, InterpolableNumber::create(c));
-        list->set(3, InterpolableNumber::create(d));
-        list->set(4, InterpolableNumber::create(e));
-        list->set(5, InterpolableNumber::create(f));
-        list->set(6, InterpolableNumber::create(g));
-        list->set(7, InterpolableNumber::create(h));
-        list->set(8, InterpolableNumber::create(i));
-        list->set(9, InterpolableNumber::create(j));
-
-        return list.release();
-    }
-
-    void initLengthArray(CSSLengthArray& lengthArray)
-    {
-        lengthArray.resize(CSSPrimitiveValue::LengthUnitTypeCount);
-        for (size_t i = 0; i < CSSPrimitiveValue::LengthUnitTypeCount; ++i)
-            lengthArray.at(i) = 0;
-    }
-
-    CSSLengthArray& setLengthArray(CSSLengthArray& lengthArray, String text)
-    {
-        CSSPrimitiveValue::CSSLengthTypeArray lengthTypeArray;
-        initLengthArray(lengthArray);
-        RefPtrWillBeRawPtr<MutableStylePropertySet> propertySet = MutableStylePropertySet::create(HTMLQuirksMode);
-        propertySet->setProperty(CSSPropertyLeft, text);
-        toCSSPrimitiveValue(propertySet->getPropertyCSSValue(CSSPropertyLeft).get())->accumulateLengthArray(lengthArray);
-        return lengthArray;
-    }
-};
-
-#define TEST_PRIMITIVE_VALUE(ACTUAL_VALUE, EXPECTED_DOUBLE_VALUE, EXPECTED_UNIT_TYPE)                \
-    EXPECT_TRUE((ACTUAL_VALUE)->isPrimitiveValue());                                                 \
-    EXPECT_EQ((EXPECTED_DOUBLE_VALUE), toCSSPrimitiveValue((ACTUAL_VALUE).get())->getDoubleValue()); \
-    EXPECT_EQ((EXPECTED_UNIT_TYPE), toCSSPrimitiveValue((ACTUAL_VALUE).get())->typeWithCalcResolved());
-
-#define EXPECT_CSS_LENGTH_ARRAY_ELEMENTS_EQUAL(EXPECTED, ACTUAL)          \
-    for (size_t i = 0; i < CSSPrimitiveValue::LengthUnitTypeCount; ++i) { \
-        EXPECT_EQ((EXPECTED).at(i), (ACTUAL).at(i));                      \
-    }
-
-TEST_F(AnimationLengthStyleInterpolationTest, ZeroLength)
-{
-    RefPtrWillBeRawPtr<CSSValue> value1 = roundTrip(CSSPrimitiveValue::create(0, CSSPrimitiveValue::UnitType::Pixels));
-    TEST_PRIMITIVE_VALUE(value1, 0, CSSPrimitiveValue::UnitType::Pixels);
-
-    RefPtrWillBeRawPtr<CSSValue> value2 = roundTrip(CSSPrimitiveValue::create(0, CSSPrimitiveValue::UnitType::Percentage));
-    TEST_PRIMITIVE_VALUE(value2, 0, CSSPrimitiveValue::UnitType::Percentage);
-
-    RefPtrWillBeRawPtr<CSSValue> value3 = roundTrip(CSSPrimitiveValue::create(0, CSSPrimitiveValue::UnitType::Ems));
-    TEST_PRIMITIVE_VALUE(value3, 0, CSSPrimitiveValue::UnitType::Ems);
-}
-
-TEST_F(AnimationLengthStyleInterpolationTest, SingleUnit)
-{
-    RefPtrWillBeRawPtr<CSSValue> value = roundTrip(CSSPrimitiveValue::create(10, CSSPrimitiveValue::UnitType::Pixels));
-    TEST_PRIMITIVE_VALUE(value, 10, CSSPrimitiveValue::UnitType::Pixels);
-
-    value = roundTrip(CSSPrimitiveValue::create(30, CSSPrimitiveValue::UnitType::Percentage));
-    TEST_PRIMITIVE_VALUE(value, 30, CSSPrimitiveValue::UnitType::Percentage);
-
-    value = roundTrip(CSSPrimitiveValue::create(10, CSSPrimitiveValue::UnitType::Ems));
-    TEST_PRIMITIVE_VALUE(value, 10, CSSPrimitiveValue::UnitType::Ems);
-}
-
-TEST_F(AnimationLengthStyleInterpolationTest, SingleClampedUnit)
-{
-    RefPtrWillBeRawPtr<CSSValue> value1 = CSSPrimitiveValue::create(-10, CSSPrimitiveValue::UnitType::Pixels);
-    value1 = interpolableValueToLength(lengthToInterpolableValue(*value1).get(), RangeNonNegative);
-    TEST_PRIMITIVE_VALUE(value1, 0, CSSPrimitiveValue::UnitType::Pixels);
-
-    RefPtrWillBeRawPtr<CSSValue> value2 = CSSPrimitiveValue::create(-10, CSSPrimitiveValue::UnitType::Ems);
-    value2 = interpolableValueToLength(lengthToInterpolableValue(*value2).get(), RangeNonNegative);
-    TEST_PRIMITIVE_VALUE(value2, 0, CSSPrimitiveValue::UnitType::Ems);
-}
-
-TEST_F(AnimationLengthStyleInterpolationTest, MultipleUnits)
-{
-    CSSLengthArray expectation, actual;
-    initLengthArray(expectation);
-    OwnPtr<InterpolableList> result = InterpolableList::create(2);
-    result->set(0, createInterpolableLength(0, 10, 0, 10, 0, 10, 0, 10, 0, 10));
-    result->set(1, createInterpolableLength(0, 1, 0, 1, 0, 1, 0, 1, 0, 1));
-    toCSSPrimitiveValue(interpolableValueToLength(result.get(), RangeAll).get())->accumulateLengthArray(expectation);
-    setLengthArray(actual, "calc(10% + 10ex + 10ch + 10vh + 10vmax)");
-    EXPECT_CSS_LENGTH_ARRAY_ELEMENTS_EQUAL(expectation, actual);
-}
-
-TEST_F(AnimationLengthStyleInterpolationTest, MultipleUnitsWithSingleValues)
-{
-    CSSLengthArray expectation, actual;
-    initLengthArray(expectation);
-    OwnPtr<InterpolableList> result = InterpolableList::create(2);
-    result->set(0, createInterpolableLength(0, 10, 0, 10, 0, 10, 0, 10, 0, 10));
-    result->set(1, createInterpolableLength(0, 1, 0, 1, 0, 1, 0, 1, 0, 1));
-    toCSSPrimitiveValue(interpolableValueToLength(result.get(), RangeAll).get())->accumulateLengthArray(expectation);
-    setLengthArray(actual, "calc(10% + 10ex + 10ch + 10vh + 10vmax)");
-    EXPECT_CSS_LENGTH_ARRAY_ELEMENTS_EQUAL(expectation, actual);
-}
-
-TEST_F(AnimationLengthStyleInterpolationTest, MultipleUnitsWithMultipleValues)
-{
-    CSSLengthArray expectation, actual;
-    initLengthArray(expectation);
-    OwnPtr<InterpolableList> result = InterpolableList::create(2);
-    result->set(0, createInterpolableLength(0, 20, 0, 30, 0, 8, 0, 10, 0, 7));
-    result->set(1, createInterpolableLength(0, 1, 0, 1, 0, 1, 0, 1, 0, 1));
-    toCSSPrimitiveValue(interpolableValueToLength(result.get(), RangeAll).get())->accumulateLengthArray(expectation);
-    setLengthArray(actual, "calc(20% + 30ex + 8ch + 10vh + 7vmax)");
-    EXPECT_CSS_LENGTH_ARRAY_ELEMENTS_EQUAL(expectation, actual);
-}
-
-TEST_F(AnimationLengthStyleInterpolationTest, MultipleUnitsWithZeroValue)
-{
-    CSSLengthArray expectation, actual;
-    initLengthArray(expectation);
-    OwnPtr<InterpolableList> result = InterpolableList::create(2);
-    result->set(0, createInterpolableLength(0, 10, 0, 10, 0, 10, 0, 10, 0, 10));
-    result->set(1, createInterpolableLength(1, 1, 0, 1, 0, 1, 0, 1, 0, 1));
-    toCSSPrimitiveValue(interpolableValueToLength(result.get(), RangeAll).get())->accumulateLengthArray(expectation);
-    setLengthArray(actual, "calc(0px + 10% + 10ex + 10ch + 10vh + 10vmax)");
-    EXPECT_CSS_LENGTH_ARRAY_ELEMENTS_EQUAL(expectation, actual);
-}
-
-TEST_F(AnimationLengthStyleInterpolationTest, MultipleUnitsWithZeroValues)
-{
-    CSSLengthArray expectation, actual;
-    initLengthArray(expectation);
-    OwnPtr<InterpolableList> result = InterpolableList::create(2);
-    result->set(0, createInterpolableLength(0, 10, 0, 10, 0, 10, 0, 10, 0, 10));
-    result->set(1, createInterpolableLength(1, 1, 1, 1, 0, 1, 0, 1, 1, 1));
-    toCSSPrimitiveValue(interpolableValueToLength(result.get(), RangeAll).get())->accumulateLengthArray(expectation);
-    setLengthArray(actual, "calc(0px + 10% + 0em + 10ex + 10ch + 10vh + 0vmin + 10vmax)");
-    EXPECT_CSS_LENGTH_ARRAY_ELEMENTS_EQUAL(expectation, actual);
-}
-
-} // namespace blink
diff --git a/third_party/WebKit/Source/core/animation/ListStyleInterpolation.h b/third_party/WebKit/Source/core/animation/ListStyleInterpolation.h
deleted file mode 100644
index 1ea18a9..0000000
--- a/third_party/WebKit/Source/core/animation/ListStyleInterpolation.h
+++ /dev/null
@@ -1,157 +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 ListStyleInterpolation_h
-#define ListStyleInterpolation_h
-
-#include "core/animation/StyleInterpolation.h"
-#include "core/css/CSSPrimitiveValue.h"
-#include "core/css/CSSValueList.h"
-#include "core/css/resolver/StyleBuilder.h"
-
-namespace blink {
-
-template<typename InterpolationType, typename NonInterpolableData>
-class ListStyleInterpolationImpl : public StyleInterpolation {
-public:
-    static PassRefPtr<ListStyleInterpolationImpl<InterpolationType, NonInterpolableData>> maybeCreateFromList(const CSSValue& start, const CSSValue& end, CSSPropertyID id, InterpolationRange range = RangeAll)
-    {
-        if (start.isValueList() && end.isValueList() && toCSSValueList(start).length() == toCSSValueList(end).length()) {
-            const CSSValueList& startList = toCSSValueList(start);
-            const CSSValueList& endList = toCSSValueList(end);
-
-            for (size_t i = 0; i < toCSSValueList(start).length(); i++) {
-                if (!InterpolationType::canCreateFrom(*startList.item(i), *endList.item(i))) {
-                    return nullptr;
-                }
-            }
-
-            Vector<typename InterpolationType::NonInterpolableType> startNonInterpolableData;
-
-            OwnPtr<InterpolableValue> startValue = listToInterpolableValue(start, &startNonInterpolableData);
-            OwnPtr<InterpolableValue> endValue = listToInterpolableValue(end);
-
-            return adoptRef(new ListStyleInterpolationImpl<InterpolationType, NonInterpolableData>(startValue.release(), endValue.release(), id, startNonInterpolableData, range));
-        }
-        return nullptr;
-    }
-
-    void apply(StyleResolverState& state) const override
-    {
-        StyleBuilder::applyProperty(m_id, state, interpolableValueToList(m_cachedValue.get(), m_nonInterpolableData, m_range).get());
-    }
-
-private:
-    ListStyleInterpolationImpl(PassOwnPtr<InterpolableValue> start, PassOwnPtr<InterpolableValue> end, CSSPropertyID id,
-        Vector<typename InterpolationType::NonInterpolableType> nonInterpolableData, InterpolationRange range = RangeAll)
-        : StyleInterpolation(std::move(start), std::move(end), id)
-        , m_range(range)
-    {
-        m_nonInterpolableData.swap(nonInterpolableData);
-    }
-
-    InterpolationRange m_range;
-
-    Vector<typename InterpolationType::NonInterpolableType> m_nonInterpolableData;
-
-    static PassOwnPtr<InterpolableValue> listToInterpolableValue(const CSSValue& value, Vector<typename InterpolationType::NonInterpolableType>* nonInterpolableData = nullptr)
-    {
-        const CSSValueList& listValue = toCSSValueList(value);
-        if (nonInterpolableData)
-            nonInterpolableData->reserveCapacity(listValue.length());
-        OwnPtr<InterpolableList> result = InterpolableList::create(listValue.length());
-        typename InterpolationType::NonInterpolableType elementData = typename InterpolationType::NonInterpolableType();
-        for (size_t i = 0; i < listValue.length(); i++) {
-            result->set(i, InterpolationType::toInterpolableValue(*listValue.item(i), elementData));
-            if (nonInterpolableData)
-                nonInterpolableData->append(elementData);
-        }
-        return result.release();
-    }
-
-    static PassRefPtrWillBeRawPtr<CSSValue> interpolableValueToList(InterpolableValue* value, const Vector<typename InterpolationType::NonInterpolableType>& nonInterpolableData, InterpolationRange range = RangeAll)
-    {
-        InterpolableList* listValue = toInterpolableList(value);
-        RefPtrWillBeRawPtr<CSSValueList> result = CSSValueList::createCommaSeparated();
-
-        ASSERT(nonInterpolableData.size() == listValue->length());
-
-        for (size_t i = 0; i < listValue->length(); i++)
-            result->append(InterpolationType::fromInterpolableValue(*(listValue->get(i)), nonInterpolableData[i], range));
-        return result.release();
-    }
-
-    friend class ListStyleInterpolationTest;
-};
-
-template<typename InterpolationType>
-class ListStyleInterpolationImpl<InterpolationType, void> : public StyleInterpolation {
-public:
-    static PassRefPtr<ListStyleInterpolationImpl<InterpolationType, void>> maybeCreateFromList(const CSSValue& start, const CSSValue& end, CSSPropertyID id, InterpolationRange range = RangeAll)
-    {
-        if (!start.isValueList() || !end.isValueList())
-            return nullptr;
-        const CSSValueList& startList = toCSSValueList(start);
-        const CSSValueList& endList = toCSSValueList(end);
-        if (startList.length() != endList.length())
-            return nullptr;
-        for (const auto& value : startList) {
-            if (!InterpolationType::canCreateFrom(*value))
-                return nullptr;
-        }
-        for (const auto& value : endList) {
-            if (!InterpolationType::canCreateFrom(*value))
-                return nullptr;
-        }
-        return adoptRef(new ListStyleInterpolationImpl<InterpolationType, void>(listToInterpolableValue(start), listToInterpolableValue(end), id, range));
-    }
-
-private:
-    ListStyleInterpolationImpl(PassOwnPtr<InterpolableValue> start, PassOwnPtr<InterpolableValue> end, CSSPropertyID id, InterpolationRange range = RangeAll)
-        : StyleInterpolation(std::move(start), std::move(end), id), m_range(range)
-    {
-    }
-
-    InterpolationRange m_range;
-
-    static PassOwnPtr<InterpolableValue> listToInterpolableValue(const CSSValue& value)
-    {
-        const CSSValueList& listValue = toCSSValueList(value);
-        OwnPtr<InterpolableList> result = InterpolableList::create(listValue.length());
-        for (size_t i = 0; i < listValue.length(); i++)
-            result->set(i, InterpolationType::toInterpolableValue(*listValue.item(i)));
-        return result.release();
-    }
-
-    static PassRefPtrWillBeRawPtr<CSSValue> interpolableValueToList(InterpolableValue* value, InterpolationRange range = RangeAll)
-    {
-        InterpolableList* listValue = toInterpolableList(value);
-        RefPtrWillBeRawPtr<CSSValueList> result = CSSValueList::createCommaSeparated();
-
-        for (size_t i = 0; i < listValue->length(); i++)
-            result->append(InterpolationType::fromInterpolableValue(*(listValue->get(i)), range));
-        return result.release();
-    }
-
-    void apply(StyleResolverState& state) const override
-    {
-        StyleBuilder::applyProperty(m_id, state, interpolableValueToList(m_cachedValue.get(), m_range).get());
-    }
-
-    friend class ListStyleInterpolationTest;
-
-};
-
-template<typename InterpolationType>
-class ListStyleInterpolation {
-public:
-    static PassRefPtr<ListStyleInterpolationImpl<InterpolationType, typename InterpolationType::NonInterpolableType>>  maybeCreateFromList(const CSSValue& start, const CSSValue& end, CSSPropertyID id, InterpolationRange range = RangeAll)
-    {
-        return ListStyleInterpolationImpl<InterpolationType, typename InterpolationType::NonInterpolableType>::maybeCreateFromList(start, end, id, range);
-    }
-};
-
-} // namespace blink
-
-#endif // ListStyleInterpolation_h
diff --git a/third_party/WebKit/Source/core/animation/ListStyleInterpolationTest.cpp b/third_party/WebKit/Source/core/animation/ListStyleInterpolationTest.cpp
deleted file mode 100644
index 8170203..0000000
--- a/third_party/WebKit/Source/core/animation/ListStyleInterpolationTest.cpp
+++ /dev/null
@@ -1,48 +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.
-
-#include "core/animation/ListStyleInterpolation.h"
-
-#include "core/animation/LengthStyleInterpolation.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace blink {
-
-class ListStyleInterpolationTest : public ::testing::Test {
-
-protected:
-    static PassRefPtrWillBeRawPtr<CSSValue> lengthRoundTrip(PassRefPtrWillBeRawPtr<CSSValue> value, InterpolationRange range)
-    {
-        return ListStyleInterpolationImpl<LengthStyleInterpolation, void>::interpolableValueToList(
-            ListStyleInterpolationImpl<LengthStyleInterpolation, void>::listToInterpolableValue(*value).get(), range);
-    }
-
-    static void compareLengthLists(PassRefPtrWillBeRawPtr<CSSValueList> expectedList, PassRefPtrWillBeRawPtr<CSSValue> actualList)
-    {
-        ASSERT(actualList->isValueList());
-
-        for (size_t i = 0; i < 10; i++) {
-            CSSValue* currentExpectedValue = expectedList->item(i);
-            CSSValue* currentActualValue = toCSSValueList(*actualList).item(i);
-            ASSERT(currentExpectedValue->isPrimitiveValue());
-            ASSERT(currentActualValue->isPrimitiveValue());
-
-            EXPECT_EQ(toCSSPrimitiveValue(currentExpectedValue)->getDoubleValue(), toCSSPrimitiveValue(currentActualValue)->getDoubleValue());
-            EXPECT_EQ(toCSSPrimitiveValue(currentExpectedValue)->getDoubleValue(), toCSSPrimitiveValue(currentActualValue)->getDoubleValue());
-        }
-    }
-};
-
-TEST_F(ListStyleInterpolationTest, LengthListMultipleValuesTest)
-{
-    RefPtrWillBeRawPtr<CSSValueList> expectedList = CSSValueList::createCommaSeparated();
-    for (size_t i = 0; i < 10; i++) {
-        RefPtrWillBeRawPtr<CSSPrimitiveValue> lengthValue = CSSPrimitiveValue::create(static_cast<double>(i), CSSPrimitiveValue::UnitType::Pixels);
-        expectedList->append(lengthValue);
-    }
-
-    compareLengthLists(expectedList, lengthRoundTrip(expectedList, RangeNonNegative));
-}
-
-} // namespace blink
diff --git a/third_party/WebKit/Source/core/animation/SVGAngleInterpolationType.cpp b/third_party/WebKit/Source/core/animation/SVGAngleInterpolationType.cpp
index b70e44f..5d7f689 100644
--- a/third_party/WebKit/Source/core/animation/SVGAngleInterpolationType.cpp
+++ b/third_party/WebKit/Source/core/animation/SVGAngleInterpolationType.cpp
@@ -22,10 +22,10 @@
     return InterpolationValue(InterpolableNumber::create(toSVGAngle(svgValue).value()));
 }
 
-PassRefPtrWillBeRawPtr<SVGPropertyBase> SVGAngleInterpolationType::appliedSVGValue(const InterpolableValue& interpolableValue, const NonInterpolableValue*) const
+RawPtr<SVGPropertyBase> SVGAngleInterpolationType::appliedSVGValue(const InterpolableValue& interpolableValue, const NonInterpolableValue*) const
 {
     double doubleValue = toInterpolableNumber(interpolableValue).value();
-    RefPtrWillBeRawPtr<SVGAngle> result = SVGAngle::create();
+    RawPtr<SVGAngle> result = SVGAngle::create();
     result->newValueSpecifiedUnits(SVGAngle::SVG_ANGLETYPE_DEG, doubleValue);
     return result.release();
 }
diff --git a/third_party/WebKit/Source/core/animation/SVGAngleInterpolationType.h b/third_party/WebKit/Source/core/animation/SVGAngleInterpolationType.h
index 8f7ff2e6..578652e3 100644
--- a/third_party/WebKit/Source/core/animation/SVGAngleInterpolationType.h
+++ b/third_party/WebKit/Source/core/animation/SVGAngleInterpolationType.h
@@ -18,7 +18,7 @@
 private:
     InterpolationValue maybeConvertNeutral(const InterpolationValue& underlying, ConversionCheckers&) const final;
     InterpolationValue maybeConvertSVGValue(const SVGPropertyBase& svgValue) const final;
-    PassRefPtrWillBeRawPtr<SVGPropertyBase> appliedSVGValue(const InterpolableValue&, const NonInterpolableValue*) const final;
+    RawPtr<SVGPropertyBase> appliedSVGValue(const InterpolableValue&, const NonInterpolableValue*) const final;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/animation/SVGIntegerInterpolationType.cpp b/third_party/WebKit/Source/core/animation/SVGIntegerInterpolationType.cpp
index bfe71c55d..b05b4876 100644
--- a/third_party/WebKit/Source/core/animation/SVGIntegerInterpolationType.cpp
+++ b/third_party/WebKit/Source/core/animation/SVGIntegerInterpolationType.cpp
@@ -21,7 +21,7 @@
     return InterpolationValue(InterpolableNumber::create(toSVGInteger(svgValue).value()));
 }
 
-PassRefPtrWillBeRawPtr<SVGPropertyBase> SVGIntegerInterpolationType::appliedSVGValue(const InterpolableValue& interpolableValue, const NonInterpolableValue*) const
+RawPtr<SVGPropertyBase> SVGIntegerInterpolationType::appliedSVGValue(const InterpolableValue& interpolableValue, const NonInterpolableValue*) const
 {
     double value = toInterpolableNumber(interpolableValue).value();
     return SVGInteger::create(round(value));
diff --git a/third_party/WebKit/Source/core/animation/SVGIntegerInterpolationType.h b/third_party/WebKit/Source/core/animation/SVGIntegerInterpolationType.h
index 0d539d5..8d25e417 100644
--- a/third_party/WebKit/Source/core/animation/SVGIntegerInterpolationType.h
+++ b/third_party/WebKit/Source/core/animation/SVGIntegerInterpolationType.h
@@ -18,7 +18,7 @@
 private:
     InterpolationValue maybeConvertNeutral(const InterpolationValue& underlying, ConversionCheckers&) const final;
     InterpolationValue maybeConvertSVGValue(const SVGPropertyBase& svgValue) const final;
-    PassRefPtrWillBeRawPtr<SVGPropertyBase> appliedSVGValue(const InterpolableValue&, const NonInterpolableValue*) const final;
+    RawPtr<SVGPropertyBase> appliedSVGValue(const InterpolableValue&, const NonInterpolableValue*) const final;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/animation/SVGIntegerOptionalIntegerInterpolationType.cpp b/third_party/WebKit/Source/core/animation/SVGIntegerOptionalIntegerInterpolationType.cpp
index e775b5c..dd5d87c0 100644
--- a/third_party/WebKit/Source/core/animation/SVGIntegerOptionalIntegerInterpolationType.cpp
+++ b/third_party/WebKit/Source/core/animation/SVGIntegerOptionalIntegerInterpolationType.cpp
@@ -29,12 +29,12 @@
     return InterpolationValue(result.release());
 }
 
-static PassRefPtrWillBeRawPtr<SVGInteger> toPositiveInteger(const InterpolableValue* number)
+static RawPtr<SVGInteger> toPositiveInteger(const InterpolableValue* number)
 {
     return SVGInteger::create(clampTo<int>(roundf(toInterpolableNumber(number)->value()), 1));
 }
 
-PassRefPtrWillBeRawPtr<SVGPropertyBase> SVGIntegerOptionalIntegerInterpolationType::appliedSVGValue(const InterpolableValue& interpolableValue, const NonInterpolableValue*) const
+RawPtr<SVGPropertyBase> SVGIntegerOptionalIntegerInterpolationType::appliedSVGValue(const InterpolableValue& interpolableValue, const NonInterpolableValue*) const
 {
     const InterpolableList& list = toInterpolableList(interpolableValue);
     return SVGIntegerOptionalInteger::create(
diff --git a/third_party/WebKit/Source/core/animation/SVGIntegerOptionalIntegerInterpolationType.h b/third_party/WebKit/Source/core/animation/SVGIntegerOptionalIntegerInterpolationType.h
index 42e529214..a9bf9987 100644
--- a/third_party/WebKit/Source/core/animation/SVGIntegerOptionalIntegerInterpolationType.h
+++ b/third_party/WebKit/Source/core/animation/SVGIntegerOptionalIntegerInterpolationType.h
@@ -19,7 +19,7 @@
 private:
     InterpolationValue maybeConvertNeutral(const InterpolationValue& underlying, ConversionCheckers&) const final;
     InterpolationValue maybeConvertSVGValue(const SVGPropertyBase& svgValue) const final;
-    PassRefPtrWillBeRawPtr<SVGPropertyBase> appliedSVGValue(const InterpolableValue&, const NonInterpolableValue*) const final;
+    RawPtr<SVGPropertyBase> appliedSVGValue(const InterpolableValue&, const NonInterpolableValue*) const final;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/animation/SVGInterpolationType.cpp b/third_party/WebKit/Source/core/animation/SVGInterpolationType.cpp
index 31c4334..f015ae5 100644
--- a/third_party/WebKit/Source/core/animation/SVGInterpolationType.cpp
+++ b/third_party/WebKit/Source/core/animation/SVGInterpolationType.cpp
@@ -23,7 +23,7 @@
     if (keyframe.isNeutral())
         return maybeConvertNeutral(underlying, conversionCheckers);
 
-    RefPtrWillBeRawPtr<SVGPropertyBase> svgValue = environment.svgBaseValue().cloneForAnimation(toSVGPropertySpecificKeyframe(keyframe).value());
+    RawPtr<SVGPropertyBase> svgValue = environment.svgBaseValue().cloneForAnimation(toSVGPropertySpecificKeyframe(keyframe).value());
     return maybeConvertSVGValue(*svgValue);
 }
 
diff --git a/third_party/WebKit/Source/core/animation/SVGInterpolationType.h b/third_party/WebKit/Source/core/animation/SVGInterpolationType.h
index 4dea2dc..912ee32 100644
--- a/third_party/WebKit/Source/core/animation/SVGInterpolationType.h
+++ b/third_party/WebKit/Source/core/animation/SVGInterpolationType.h
@@ -21,7 +21,7 @@
 
     virtual InterpolationValue maybeConvertNeutral(const InterpolationValue& underlying, ConversionCheckers&) const;
     virtual InterpolationValue maybeConvertSVGValue(const SVGPropertyBase&) const = 0;
-    virtual PassRefPtrWillBeRawPtr<SVGPropertyBase> appliedSVGValue(const InterpolableValue&, const NonInterpolableValue*) const = 0;
+    virtual RawPtr<SVGPropertyBase> appliedSVGValue(const InterpolableValue&, const NonInterpolableValue*) const = 0;
 
     InterpolationValue maybeConvertSingle(const PropertySpecificKeyframe&, const InterpolationEnvironment&, const InterpolationValue& underlying, ConversionCheckers&) const override;
     InterpolationValue maybeConvertUnderlyingValue(const InterpolationEnvironment&) const override;
diff --git a/third_party/WebKit/Source/core/animation/SVGLengthInterpolationType.cpp b/third_party/WebKit/Source/core/animation/SVGLengthInterpolationType.cpp
index 6037a71..9666d57 100644
--- a/third_party/WebKit/Source/core/animation/SVGLengthInterpolationType.cpp
+++ b/third_party/WebKit/Source/core/animation/SVGLengthInterpolationType.cpp
@@ -99,7 +99,7 @@
     return InterpolationValue(listOfValues.release());
 }
 
-PassRefPtrWillBeRawPtr<SVGLength> SVGLengthInterpolationType::resolveInterpolableSVGLength(const InterpolableValue& interpolableValue, const SVGLengthContext& lengthContext, SVGLengthMode unitMode, bool negativeValuesForbidden)
+RawPtr<SVGLength> SVGLengthInterpolationType::resolveInterpolableSVGLength(const InterpolableValue& interpolableValue, const SVGLengthContext& lengthContext, SVGLengthMode unitMode, bool negativeValuesForbidden)
 {
     const InterpolableList& listOfValues = toInterpolableList(interpolableValue);
 
@@ -134,7 +134,7 @@
     if (negativeValuesForbidden && value < 0)
         value = 0;
 
-    RefPtrWillBeRawPtr<SVGLength> result = SVGLength::create(unitMode); // defaults to the length 0
+    RawPtr<SVGLength> result = SVGLength::create(unitMode); // defaults to the length 0
     result->newValueSpecifiedUnits(unitType, value);
     return result.release();
 }
@@ -152,7 +152,7 @@
     return convertSVGLength(toSVGLength(svgValue));
 }
 
-PassRefPtrWillBeRawPtr<SVGPropertyBase> SVGLengthInterpolationType::appliedSVGValue(const InterpolableValue& interpolableValue, const NonInterpolableValue*) const
+RawPtr<SVGPropertyBase> SVGLengthInterpolationType::appliedSVGValue(const InterpolableValue& interpolableValue, const NonInterpolableValue*) const
 {
     ASSERT_NOT_REACHED();
     // This function is no longer called, because apply has been overridden.
diff --git a/third_party/WebKit/Source/core/animation/SVGLengthInterpolationType.h b/third_party/WebKit/Source/core/animation/SVGLengthInterpolationType.h
index b63bf19..b3d0ddb7 100644
--- a/third_party/WebKit/Source/core/animation/SVGLengthInterpolationType.h
+++ b/third_party/WebKit/Source/core/animation/SVGLengthInterpolationType.h
@@ -23,12 +23,12 @@
 
     static PassOwnPtr<InterpolableValue> neutralInterpolableValue();
     static InterpolationValue convertSVGLength(const SVGLength&);
-    static PassRefPtrWillBeRawPtr<SVGLength> resolveInterpolableSVGLength(const InterpolableValue&, const SVGLengthContext&, SVGLengthMode, bool negativeValuesForbidden);
+    static RawPtr<SVGLength> resolveInterpolableSVGLength(const InterpolableValue&, const SVGLengthContext&, SVGLengthMode, bool negativeValuesForbidden);
 
 private:
     InterpolationValue maybeConvertNeutral(const InterpolationValue& underlying, ConversionCheckers&) const final;
     InterpolationValue maybeConvertSVGValue(const SVGPropertyBase& svgValue) const final;
-    PassRefPtrWillBeRawPtr<SVGPropertyBase> appliedSVGValue(const InterpolableValue&, const NonInterpolableValue*) const final;
+    RawPtr<SVGPropertyBase> appliedSVGValue(const InterpolableValue&, const NonInterpolableValue*) const final;
     void apply(const InterpolableValue&, const NonInterpolableValue*, InterpolationEnvironment&) const final;
 
     const SVGLengthMode m_unitMode;
diff --git a/third_party/WebKit/Source/core/animation/SVGLengthListInterpolationType.cpp b/third_party/WebKit/Source/core/animation/SVGLengthListInterpolationType.cpp
index b67fdbe..0524f74 100644
--- a/third_party/WebKit/Source/core/animation/SVGLengthListInterpolationType.cpp
+++ b/third_party/WebKit/Source/core/animation/SVGLengthListInterpolationType.cpp
@@ -59,7 +59,7 @@
         underlyingValueOwner.set(*this, value);
 }
 
-PassRefPtrWillBeRawPtr<SVGPropertyBase> SVGLengthListInterpolationType::appliedSVGValue(const InterpolableValue& interpolableValue, const NonInterpolableValue*) const
+RawPtr<SVGPropertyBase> SVGLengthListInterpolationType::appliedSVGValue(const InterpolableValue& interpolableValue, const NonInterpolableValue*) const
 {
     ASSERT_NOT_REACHED();
     // This function is no longer called, because apply has been overridden.
@@ -71,7 +71,7 @@
     SVGElement& element = environment.svgElement();
     SVGLengthContext lengthContext(&element);
 
-    RefPtrWillBeRawPtr<SVGLengthList> result = SVGLengthList::create(m_unitMode);
+    RawPtr<SVGLengthList> result = SVGLengthList::create(m_unitMode);
     const InterpolableList& list = toInterpolableList(interpolableValue);
     for (size_t i = 0; i < list.length(); i++) {
         result->append(SVGLengthInterpolationType::resolveInterpolableSVGLength(*list.get(i), lengthContext, m_unitMode, m_negativeValuesForbidden));
diff --git a/third_party/WebKit/Source/core/animation/SVGLengthListInterpolationType.h b/third_party/WebKit/Source/core/animation/SVGLengthListInterpolationType.h
index fc5dbb5..d9656a9 100644
--- a/third_party/WebKit/Source/core/animation/SVGLengthListInterpolationType.h
+++ b/third_party/WebKit/Source/core/animation/SVGLengthListInterpolationType.h
@@ -26,7 +26,7 @@
     InterpolationValue maybeConvertSVGValue(const SVGPropertyBase& svgValue) const final;
     PairwiseInterpolationValue mergeSingleConversions(InterpolationValue&& start, InterpolationValue&& end) const final;
     void composite(UnderlyingValueOwner&, double underlyingFraction, const InterpolationValue&, double interpolationFraction) const final;
-    PassRefPtrWillBeRawPtr<SVGPropertyBase> appliedSVGValue(const InterpolableValue&, const NonInterpolableValue*) const final;
+    RawPtr<SVGPropertyBase> appliedSVGValue(const InterpolableValue&, const NonInterpolableValue*) const final;
     void apply(const InterpolableValue&, const NonInterpolableValue*, InterpolationEnvironment&) const final;
 
     const SVGLengthMode m_unitMode;
diff --git a/third_party/WebKit/Source/core/animation/SVGNumberInterpolationType.cpp b/third_party/WebKit/Source/core/animation/SVGNumberInterpolationType.cpp
index a7f2b27..a5284dbd 100644
--- a/third_party/WebKit/Source/core/animation/SVGNumberInterpolationType.cpp
+++ b/third_party/WebKit/Source/core/animation/SVGNumberInterpolationType.cpp
@@ -23,7 +23,7 @@
     return InterpolationValue(InterpolableNumber::create(toSVGNumber(svgValue).value()));
 }
 
-PassRefPtrWillBeRawPtr<SVGPropertyBase> SVGNumberInterpolationType::appliedSVGValue(const InterpolableValue& interpolableValue, const NonInterpolableValue*) const
+RawPtr<SVGPropertyBase> SVGNumberInterpolationType::appliedSVGValue(const InterpolableValue& interpolableValue, const NonInterpolableValue*) const
 {
     double value = toInterpolableNumber(interpolableValue).value();
     return SVGNumber::create(m_isNonNegative && value < 0 ? 0 : value);
diff --git a/third_party/WebKit/Source/core/animation/SVGNumberInterpolationType.h b/third_party/WebKit/Source/core/animation/SVGNumberInterpolationType.h
index c7346b7..b8cb6869 100644
--- a/third_party/WebKit/Source/core/animation/SVGNumberInterpolationType.h
+++ b/third_party/WebKit/Source/core/animation/SVGNumberInterpolationType.h
@@ -20,7 +20,7 @@
 private:
     InterpolationValue maybeConvertNeutral(const InterpolationValue& underlying, ConversionCheckers&) const final;
     InterpolationValue maybeConvertSVGValue(const SVGPropertyBase& svgValue) const final;
-    PassRefPtrWillBeRawPtr<SVGPropertyBase> appliedSVGValue(const InterpolableValue&, const NonInterpolableValue*) const final;
+    RawPtr<SVGPropertyBase> appliedSVGValue(const InterpolableValue&, const NonInterpolableValue*) const final;
 
     bool m_isNonNegative;
 };
diff --git a/third_party/WebKit/Source/core/animation/SVGNumberListInterpolationType.cpp b/third_party/WebKit/Source/core/animation/SVGNumberListInterpolationType.cpp
index 454b44d..5eb7d93 100644
--- a/third_party/WebKit/Source/core/animation/SVGNumberListInterpolationType.cpp
+++ b/third_party/WebKit/Source/core/animation/SVGNumberListInterpolationType.cpp
@@ -78,9 +78,9 @@
         underlyingList.getMutable(i)->scale(underlyingFraction);
 }
 
-PassRefPtrWillBeRawPtr<SVGPropertyBase> SVGNumberListInterpolationType::appliedSVGValue(const InterpolableValue& interpolableValue, const NonInterpolableValue*) const
+RawPtr<SVGPropertyBase> SVGNumberListInterpolationType::appliedSVGValue(const InterpolableValue& interpolableValue, const NonInterpolableValue*) const
 {
-    RefPtrWillBeRawPtr<SVGNumberList> result = SVGNumberList::create();
+    RawPtr<SVGNumberList> result = SVGNumberList::create();
     const InterpolableList& list = toInterpolableList(interpolableValue);
     for (size_t i = 0; i < list.length(); i++)
         result->append(SVGNumber::create(toInterpolableNumber(list.get(i))->value()));
diff --git a/third_party/WebKit/Source/core/animation/SVGNumberListInterpolationType.h b/third_party/WebKit/Source/core/animation/SVGNumberListInterpolationType.h
index 1ceab575..802f173e 100644
--- a/third_party/WebKit/Source/core/animation/SVGNumberListInterpolationType.h
+++ b/third_party/WebKit/Source/core/animation/SVGNumberListInterpolationType.h
@@ -25,7 +25,7 @@
     InterpolationValue maybeConvertSVGValue(const SVGPropertyBase& svgValue) const final;
     PairwiseInterpolationValue mergeSingleConversions(InterpolationValue&& start, InterpolationValue&& end) const final;
     void composite(UnderlyingValueOwner&, double underlyingFraction, const InterpolationValue&, double interpolationFraction) const final;
-    PassRefPtrWillBeRawPtr<SVGPropertyBase> appliedSVGValue(const InterpolableValue&, const NonInterpolableValue*) const final;
+    RawPtr<SVGPropertyBase> appliedSVGValue(const InterpolableValue&, const NonInterpolableValue*) const final;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/animation/SVGNumberOptionalNumberInterpolationType.cpp b/third_party/WebKit/Source/core/animation/SVGNumberOptionalNumberInterpolationType.cpp
index 36ba815..30219b3 100644
--- a/third_party/WebKit/Source/core/animation/SVGNumberOptionalNumberInterpolationType.cpp
+++ b/third_party/WebKit/Source/core/animation/SVGNumberOptionalNumberInterpolationType.cpp
@@ -29,7 +29,7 @@
     return InterpolationValue(result.release());
 }
 
-PassRefPtrWillBeRawPtr<SVGPropertyBase> SVGNumberOptionalNumberInterpolationType::appliedSVGValue(const InterpolableValue& interpolableValue, const NonInterpolableValue*) const
+RawPtr<SVGPropertyBase> SVGNumberOptionalNumberInterpolationType::appliedSVGValue(const InterpolableValue& interpolableValue, const NonInterpolableValue*) const
 {
     const InterpolableList& list = toInterpolableList(interpolableValue);
     return SVGNumberOptionalNumber::create(
diff --git a/third_party/WebKit/Source/core/animation/SVGNumberOptionalNumberInterpolationType.h b/third_party/WebKit/Source/core/animation/SVGNumberOptionalNumberInterpolationType.h
index 99b7090..9d6c6b6 100644
--- a/third_party/WebKit/Source/core/animation/SVGNumberOptionalNumberInterpolationType.h
+++ b/third_party/WebKit/Source/core/animation/SVGNumberOptionalNumberInterpolationType.h
@@ -19,7 +19,7 @@
 private:
     InterpolationValue maybeConvertNeutral(const InterpolationValue& underlying, ConversionCheckers&) const final;
     InterpolationValue maybeConvertSVGValue(const SVGPropertyBase& svgValue) const final;
-    PassRefPtrWillBeRawPtr<SVGPropertyBase> appliedSVGValue(const InterpolableValue&, const NonInterpolableValue*) const final;
+    RawPtr<SVGPropertyBase> appliedSVGValue(const InterpolableValue&, const NonInterpolableValue*) const final;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/animation/SVGPathInterpolationType.cpp b/third_party/WebKit/Source/core/animation/SVGPathInterpolationType.cpp
index dc40db9..95e72b9 100644
--- a/third_party/WebKit/Source/core/animation/SVGPathInterpolationType.cpp
+++ b/third_party/WebKit/Source/core/animation/SVGPathInterpolationType.cpp
@@ -33,7 +33,7 @@
     PathInterpolationFunctions::composite(underlyingValueOwner, underlyingFraction, *this, value);
 }
 
-PassRefPtrWillBeRawPtr<SVGPropertyBase> SVGPathInterpolationType::appliedSVGValue(const InterpolableValue& interpolableValue, const NonInterpolableValue* nonInterpolableValue) const
+RawPtr<SVGPropertyBase> SVGPathInterpolationType::appliedSVGValue(const InterpolableValue& interpolableValue, const NonInterpolableValue* nonInterpolableValue) const
 {
     return SVGPath::create(CSSPathValue::create(PathInterpolationFunctions::appliedValue(interpolableValue, nonInterpolableValue)));
 }
diff --git a/third_party/WebKit/Source/core/animation/SVGPathInterpolationType.h b/third_party/WebKit/Source/core/animation/SVGPathInterpolationType.h
index 772205c1..157d0a8 100644
--- a/third_party/WebKit/Source/core/animation/SVGPathInterpolationType.h
+++ b/third_party/WebKit/Source/core/animation/SVGPathInterpolationType.h
@@ -20,7 +20,7 @@
     InterpolationValue maybeConvertNeutral(const InterpolationValue& underlying, ConversionCheckers&) const final;
     PairwiseInterpolationValue mergeSingleConversions(InterpolationValue&& start, InterpolationValue&& end) const final;
     void composite(UnderlyingValueOwner&, double underlyingFraction, const InterpolationValue&, double interpolationFraction) const final;
-    PassRefPtrWillBeRawPtr<SVGPropertyBase> appliedSVGValue(const InterpolableValue&, const NonInterpolableValue*) const final;
+    RawPtr<SVGPropertyBase> appliedSVGValue(const InterpolableValue&, const NonInterpolableValue*) const final;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/animation/SVGPointListInterpolationType.cpp b/third_party/WebKit/Source/core/animation/SVGPointListInterpolationType.cpp
index 93b0fe2..2aa7990 100644
--- a/third_party/WebKit/Source/core/animation/SVGPointListInterpolationType.cpp
+++ b/third_party/WebKit/Source/core/animation/SVGPointListInterpolationType.cpp
@@ -61,9 +61,9 @@
         underlyingValueOwner.set(*this, value);
 }
 
-PassRefPtrWillBeRawPtr<SVGPropertyBase> SVGPointListInterpolationType::appliedSVGValue(const InterpolableValue& interpolableValue, const NonInterpolableValue*) const
+RawPtr<SVGPropertyBase> SVGPointListInterpolationType::appliedSVGValue(const InterpolableValue& interpolableValue, const NonInterpolableValue*) const
 {
-    RefPtrWillBeRawPtr<SVGPointList> result = SVGPointList::create();
+    RawPtr<SVGPointList> result = SVGPointList::create();
 
     const InterpolableList& list = toInterpolableList(interpolableValue);
     ASSERT(list.length() % 2 == 0);
diff --git a/third_party/WebKit/Source/core/animation/SVGPointListInterpolationType.h b/third_party/WebKit/Source/core/animation/SVGPointListInterpolationType.h
index b2a9602c..c372e4b6 100644
--- a/third_party/WebKit/Source/core/animation/SVGPointListInterpolationType.h
+++ b/third_party/WebKit/Source/core/animation/SVGPointListInterpolationType.h
@@ -20,7 +20,7 @@
     InterpolationValue maybeConvertSVGValue(const SVGPropertyBase& svgValue) const final;
     PairwiseInterpolationValue mergeSingleConversions(InterpolationValue&& start, InterpolationValue&& end) const final;
     void composite(UnderlyingValueOwner&, double underlyingFraction, const InterpolationValue&, double interpolationFraction) const final;
-    PassRefPtrWillBeRawPtr<SVGPropertyBase> appliedSVGValue(const InterpolableValue&, const NonInterpolableValue*) const final;
+    RawPtr<SVGPropertyBase> appliedSVGValue(const InterpolableValue&, const NonInterpolableValue*) const final;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/animation/SVGRectInterpolationType.cpp b/third_party/WebKit/Source/core/animation/SVGRectInterpolationType.cpp
index e68d789e..2ca8b884 100644
--- a/third_party/WebKit/Source/core/animation/SVGRectInterpolationType.cpp
+++ b/third_party/WebKit/Source/core/animation/SVGRectInterpolationType.cpp
@@ -40,10 +40,10 @@
     return InterpolationValue(result.release());
 }
 
-PassRefPtrWillBeRawPtr<SVGPropertyBase> SVGRectInterpolationType::appliedSVGValue(const InterpolableValue& interpolableValue, const NonInterpolableValue*) const
+RawPtr<SVGPropertyBase> SVGRectInterpolationType::appliedSVGValue(const InterpolableValue& interpolableValue, const NonInterpolableValue*) const
 {
     const InterpolableList& list = toInterpolableList(interpolableValue);
-    RefPtrWillBeRawPtr<SVGRect> result = SVGRect::create();
+    RawPtr<SVGRect> result = SVGRect::create();
     result->setX(toInterpolableNumber(list.get(RectX))->value());
     result->setY(toInterpolableNumber(list.get(RectY))->value());
     result->setWidth(toInterpolableNumber(list.get(RectWidth))->value());
diff --git a/third_party/WebKit/Source/core/animation/SVGRectInterpolationType.h b/third_party/WebKit/Source/core/animation/SVGRectInterpolationType.h
index dee18fa..6ca1fe0 100644
--- a/third_party/WebKit/Source/core/animation/SVGRectInterpolationType.h
+++ b/third_party/WebKit/Source/core/animation/SVGRectInterpolationType.h
@@ -18,7 +18,7 @@
 private:
     InterpolationValue maybeConvertNeutral(const InterpolationValue& underlying, ConversionCheckers&) const final;
     InterpolationValue maybeConvertSVGValue(const SVGPropertyBase& svgValue) const final;
-    PassRefPtrWillBeRawPtr<SVGPropertyBase> appliedSVGValue(const InterpolableValue&, const NonInterpolableValue*) const final;
+    RawPtr<SVGPropertyBase> appliedSVGValue(const InterpolableValue&, const NonInterpolableValue*) const final;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/animation/SVGTransformListInterpolationType.cpp b/third_party/WebKit/Source/core/animation/SVGTransformListInterpolationType.cpp
index 28d27fb..be8aea6 100644
--- a/third_party/WebKit/Source/core/animation/SVGTransformListInterpolationType.cpp
+++ b/third_party/WebKit/Source/core/animation/SVGTransformListInterpolationType.cpp
@@ -49,11 +49,11 @@
     return result.release();
 }
 
-PassRefPtrWillBeRawPtr<SVGTransform> translateFromInterpolableValue(const InterpolableValue& value)
+RawPtr<SVGTransform> translateFromInterpolableValue(const InterpolableValue& value)
 {
     const InterpolableList& list = toInterpolableList(value);
 
-    RefPtrWillBeRawPtr<SVGTransform> transform = SVGTransform::create(SVG_TRANSFORM_TRANSLATE);
+    RawPtr<SVGTransform> transform = SVGTransform::create(SVG_TRANSFORM_TRANSLATE);
     transform->setTranslate(
         toInterpolableNumber(list.get(0))->value(),
         toInterpolableNumber(list.get(1))->value());
@@ -69,11 +69,11 @@
     return result.release();
 }
 
-PassRefPtrWillBeRawPtr<SVGTransform> scaleFromInterpolableValue(const InterpolableValue& value)
+RawPtr<SVGTransform> scaleFromInterpolableValue(const InterpolableValue& value)
 {
     const InterpolableList& list = toInterpolableList(value);
 
-    RefPtrWillBeRawPtr<SVGTransform> transform = SVGTransform::create(SVG_TRANSFORM_SCALE);
+    RawPtr<SVGTransform> transform = SVGTransform::create(SVG_TRANSFORM_SCALE);
     transform->setScale(
         toInterpolableNumber(list.get(0))->value(),
         toInterpolableNumber(list.get(1))->value());
@@ -90,11 +90,11 @@
     return result.release();
 }
 
-PassRefPtrWillBeRawPtr<SVGTransform> rotateFromInterpolableValue(const InterpolableValue& value)
+RawPtr<SVGTransform> rotateFromInterpolableValue(const InterpolableValue& value)
 {
     const InterpolableList& list = toInterpolableList(value);
 
-    RefPtrWillBeRawPtr<SVGTransform> transform = SVGTransform::create(SVG_TRANSFORM_ROTATE);
+    RawPtr<SVGTransform> transform = SVGTransform::create(SVG_TRANSFORM_ROTATE);
     transform->setRotate(
         toInterpolableNumber(list.get(0))->value(),
         toInterpolableNumber(list.get(1))->value(),
@@ -107,9 +107,9 @@
     return InterpolableNumber::create(transform->angle());
 }
 
-PassRefPtrWillBeRawPtr<SVGTransform> skewXFromInterpolableValue(const InterpolableValue& value)
+RawPtr<SVGTransform> skewXFromInterpolableValue(const InterpolableValue& value)
 {
-    RefPtrWillBeRawPtr<SVGTransform> transform = SVGTransform::create(SVG_TRANSFORM_SKEWX);
+    RawPtr<SVGTransform> transform = SVGTransform::create(SVG_TRANSFORM_SKEWX);
     transform->setSkewX(toInterpolableNumber(value).value());
     return transform.release();
 }
@@ -119,9 +119,9 @@
     return InterpolableNumber::create(transform->angle());
 }
 
-PassRefPtrWillBeRawPtr<SVGTransform> skewYFromInterpolableValue(const InterpolableValue& value)
+RawPtr<SVGTransform> skewYFromInterpolableValue(const InterpolableValue& value)
 {
-    RefPtrWillBeRawPtr<SVGTransform> transform = SVGTransform::create(SVG_TRANSFORM_SKEWY);
+    RawPtr<SVGTransform> transform = SVGTransform::create(SVG_TRANSFORM_SKEWY);
     transform->setSkewY(toInterpolableNumber(value).value());
     return transform.release();
 }
@@ -147,7 +147,7 @@
     return nullptr;
 }
 
-PassRefPtrWillBeRawPtr<SVGTransform> fromInterpolableValue(const InterpolableValue& value, SVGTransformType transformType)
+RawPtr<SVGTransform> fromInterpolableValue(const InterpolableValue& value, SVGTransformType transformType)
 {
     switch (transformType) {
     case SVG_TRANSFORM_TRANSLATE:
@@ -246,7 +246,7 @@
     }
 
     if (!keyframe.isNeutral()) {
-        RefPtrWillBeRawPtr<SVGPropertyBase> svgValue = environment.svgBaseValue().cloneForAnimation(toSVGPropertySpecificKeyframe(keyframe).value());
+        RawPtr<SVGPropertyBase> svgValue = environment.svgBaseValue().cloneForAnimation(toSVGPropertySpecificKeyframe(keyframe).value());
         InterpolationValue value = maybeConvertSVGValue(*svgValue);
         if (!value)
             return nullptr;
@@ -267,9 +267,9 @@
     return InterpolationValue(interpolableList.release(), SVGTransformNonInterpolableValue::create(types));
 }
 
-PassRefPtrWillBeRawPtr<SVGPropertyBase> SVGTransformListInterpolationType::appliedSVGValue(const InterpolableValue& interpolableValue, const NonInterpolableValue* nonInterpolableValue) const
+RawPtr<SVGPropertyBase> SVGTransformListInterpolationType::appliedSVGValue(const InterpolableValue& interpolableValue, const NonInterpolableValue* nonInterpolableValue) const
 {
-    RefPtrWillBeRawPtr<SVGTransformList> result = SVGTransformList::create();
+    RawPtr<SVGTransformList> result = SVGTransformList::create();
     const InterpolableList& list = toInterpolableList(interpolableValue);
     const Vector<SVGTransformType>& transformTypes = toSVGTransformNonInterpolableValue(nonInterpolableValue)->transformTypes();
     for (size_t i = 0; i < list.length(); ++i)
diff --git a/third_party/WebKit/Source/core/animation/SVGTransformListInterpolationType.h b/third_party/WebKit/Source/core/animation/SVGTransformListInterpolationType.h
index 50c83585..b71fc02 100644
--- a/third_party/WebKit/Source/core/animation/SVGTransformListInterpolationType.h
+++ b/third_party/WebKit/Source/core/animation/SVGTransformListInterpolationType.h
@@ -19,7 +19,7 @@
 private:
     InterpolationValue maybeConvertSVGValue(const SVGPropertyBase& svgValue) const final;
     InterpolationValue maybeConvertSingle(const PropertySpecificKeyframe&, const InterpolationEnvironment&, const InterpolationValue& underlying, ConversionCheckers&) const final;
-    PassRefPtrWillBeRawPtr<SVGPropertyBase> appliedSVGValue(const InterpolableValue&, const NonInterpolableValue*) const final;
+    RawPtr<SVGPropertyBase> appliedSVGValue(const InterpolableValue&, const NonInterpolableValue*) const final;
 
     PairwiseInterpolationValue mergeSingleConversions(InterpolationValue&& start, InterpolationValue&& end) const final;
     void composite(UnderlyingValueOwner&, double underlyingFraction, const InterpolationValue&, double interpolationFraction) const final;
diff --git a/third_party/WebKit/Source/core/animation/SVGValueInterpolationType.cpp b/third_party/WebKit/Source/core/animation/SVGValueInterpolationType.cpp
index 530f7cea..48cb024 100644
--- a/third_party/WebKit/Source/core/animation/SVGValueInterpolationType.cpp
+++ b/third_party/WebKit/Source/core/animation/SVGValueInterpolationType.cpp
@@ -14,21 +14,21 @@
 public:
     virtual ~SVGValueNonInterpolableValue() {}
 
-    static PassRefPtr<SVGValueNonInterpolableValue> create(PassRefPtrWillBeRawPtr<SVGPropertyBase> svgValue)
+    static PassRefPtr<SVGValueNonInterpolableValue> create(RawPtr<SVGPropertyBase> svgValue)
     {
         return adoptRef(new SVGValueNonInterpolableValue(svgValue));
     }
 
-    PassRefPtrWillBeRawPtr<SVGPropertyBase> svgValue() const { return m_svgValue; }
+    RawPtr<SVGPropertyBase> svgValue() const { return m_svgValue; }
 
     DECLARE_NON_INTERPOLABLE_VALUE_TYPE();
 
 private:
-    SVGValueNonInterpolableValue(PassRefPtrWillBeRawPtr<SVGPropertyBase> svgValue)
+    SVGValueNonInterpolableValue(RawPtr<SVGPropertyBase> svgValue)
         : m_svgValue(svgValue)
     {}
 
-    RefPtrWillBePersistent<SVGPropertyBase> m_svgValue;
+    Persistent<SVGPropertyBase> m_svgValue;
 };
 
 DEFINE_NON_INTERPOLABLE_VALUE_TYPE(SVGValueNonInterpolableValue);
@@ -36,11 +36,11 @@
 
 InterpolationValue SVGValueInterpolationType::maybeConvertSVGValue(const SVGPropertyBase& value) const
 {
-    RefPtrWillBeRawPtr<SVGPropertyBase> referencedValue = const_cast<SVGPropertyBase*>(&value); // Take ref.
+    RawPtr<SVGPropertyBase> referencedValue = const_cast<SVGPropertyBase*>(&value); // Take ref.
     return InterpolationValue(InterpolableList::create(0), SVGValueNonInterpolableValue::create(referencedValue.release()));
 }
 
-PassRefPtrWillBeRawPtr<SVGPropertyBase> SVGValueInterpolationType::appliedSVGValue(const InterpolableValue&, const NonInterpolableValue* nonInterpolableValue) const
+RawPtr<SVGPropertyBase> SVGValueInterpolationType::appliedSVGValue(const InterpolableValue&, const NonInterpolableValue* nonInterpolableValue) const
 {
     return toSVGValueNonInterpolableValue(*nonInterpolableValue).svgValue();
 }
diff --git a/third_party/WebKit/Source/core/animation/SVGValueInterpolationType.h b/third_party/WebKit/Source/core/animation/SVGValueInterpolationType.h
index 898d598..b3e60fcaf 100644
--- a/third_party/WebKit/Source/core/animation/SVGValueInterpolationType.h
+++ b/third_party/WebKit/Source/core/animation/SVGValueInterpolationType.h
@@ -40,7 +40,7 @@
         underlyingValueOwner.set(*this, value);
     }
 
-    PassRefPtrWillBeRawPtr<SVGPropertyBase> appliedSVGValue(const InterpolableValue&, const NonInterpolableValue*) const final;
+    RawPtr<SVGPropertyBase> appliedSVGValue(const InterpolableValue&, const NonInterpolableValue*) const final;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/animation/StringKeyframe.cpp b/third_party/WebKit/Source/core/animation/StringKeyframe.cpp
index 485b2bd..1b125b1b 100644
--- a/third_party/WebKit/Source/core/animation/StringKeyframe.cpp
+++ b/third_party/WebKit/Source/core/animation/StringKeyframe.cpp
@@ -5,7 +5,6 @@
 #include "core/animation/StringKeyframe.h"
 
 #include "core/StylePropertyShorthand.h"
-#include "core/animation/ConstantStyleInterpolation.h"
 #include "core/animation/DeferredLegacyStyleInterpolation.h"
 #include "core/animation/InvalidatableInterpolation.h"
 #include "core/animation/LegacyStyleInterpolation.h"
@@ -34,7 +33,7 @@
         m_cssPropertyMap->setProperty(property, value, false, styleSheetContents);
 }
 
-void StringKeyframe::setCSSPropertyValue(CSSPropertyID property, PassRefPtrWillBeRawPtr<CSSValue> value)
+void StringKeyframe::setCSSPropertyValue(CSSPropertyID property, RawPtr<CSSValue> value)
 {
     ASSERT(property != CSSPropertyInvalid);
     ASSERT(CSSAnimations::isAnimatableProperty(property));
diff --git a/third_party/WebKit/Source/core/animation/StringKeyframe.h b/third_party/WebKit/Source/core/animation/StringKeyframe.h
index c7568dd..7e388f5 100644
--- a/third_party/WebKit/Source/core/animation/StringKeyframe.h
+++ b/third_party/WebKit/Source/core/animation/StringKeyframe.h
@@ -23,7 +23,7 @@
     }
 
     void setCSSPropertyValue(CSSPropertyID, const String& value, Element*, StyleSheetContents*);
-    void setCSSPropertyValue(CSSPropertyID, PassRefPtrWillBeRawPtr<CSSValue>);
+    void setCSSPropertyValue(CSSPropertyID, RawPtr<CSSValue>);
     void setPresentationAttributeValue(CSSPropertyID, const String& value, Element*, StyleSheetContents*);
     void setSVGAttributeValue(const QualifiedName&, const String& value);
 
@@ -79,7 +79,7 @@
 
         void populateAnimatableValueCaches(CSSPropertyID, Keyframe::PropertySpecificKeyframe&, Element*, CSSValue& fromCSSValue, CSSValue& toCSSValue) const;
 
-        RefPtrWillBePersistent<CSSValue> m_value;
+        Persistent<CSSValue> m_value;
         mutable RefPtr<AnimatableValue> m_animatableValueCache;
     };
 
@@ -124,8 +124,8 @@
 
     bool isStringKeyframe() const override { return true; }
 
-    RefPtrWillBePersistent<MutableStylePropertySet> m_cssPropertyMap;
-    RefPtrWillBePersistent<MutableStylePropertySet> m_presentationAttributeMap;
+    Persistent<MutableStylePropertySet> m_cssPropertyMap;
+    Persistent<MutableStylePropertySet> m_presentationAttributeMap;
     HashMap<const QualifiedName*, String> m_svgAttributeMap;
 };
 
diff --git a/third_party/WebKit/Source/core/animation/animatable/AnimatableFilterOperations.cpp b/third_party/WebKit/Source/core/animation/animatable/AnimatableFilterOperations.cpp
index 93441b32..35ac477 100644
--- a/third_party/WebKit/Source/core/animation/animatable/AnimatableFilterOperations.cpp
+++ b/third_party/WebKit/Source/core/animation/animatable/AnimatableFilterOperations.cpp
@@ -58,7 +58,7 @@
         FilterOperation* from = (i < fromSize) ? m_operations.operations()[i].get() : 0;
         FilterOperation* to = (i < toSize) ? target->m_operations.operations()[i].get() : 0;
 #endif
-        RefPtrWillBeRawPtr<FilterOperation> blendedOp = FilterOperation::blend(from, to, fraction);
+        RawPtr<FilterOperation> blendedOp = FilterOperation::blend(from, to, fraction);
         if (blendedOp)
             result.operations().append(blendedOp);
         else
diff --git a/third_party/WebKit/Source/core/animation/animatable/AnimatableImage.h b/third_party/WebKit/Source/core/animation/animatable/AnimatableImage.h
index 999c22fa..bb11be3a 100644
--- a/third_party/WebKit/Source/core/animation/animatable/AnimatableImage.h
+++ b/third_party/WebKit/Source/core/animation/animatable/AnimatableImage.h
@@ -40,7 +40,7 @@
 class AnimatableImage final : public AnimatableValue {
 public:
     ~AnimatableImage() override { }
-    static PassRefPtr<AnimatableImage> create(PassRefPtrWillBeRawPtr<CSSValue> value)
+    static PassRefPtr<AnimatableImage> create(RawPtr<CSSValue> value)
     {
         return adoptRef(new AnimatableImage(value));
     }
@@ -51,7 +51,7 @@
     bool usesDefaultInterpolationWith(const AnimatableValue*) const override;
 
 private:
-    AnimatableImage(PassRefPtrWillBeRawPtr<CSSValue> value)
+    AnimatableImage(RawPtr<CSSValue> value)
         : m_value(value)
     {
         ASSERT(m_value.get());
@@ -59,7 +59,7 @@
     AnimatableType type() const override { return TypeImage; }
     bool equalTo(const AnimatableValue*) const override;
 
-    const RefPtrWillBePersistent<CSSValue> m_value;
+    const Persistent<CSSValue> m_value;
 };
 
 DEFINE_ANIMATABLE_VALUE_TYPE_CASTS(AnimatableImage, isImage());
diff --git a/third_party/WebKit/Source/core/animation/animatable/AnimatableShapeValue.h b/third_party/WebKit/Source/core/animation/animatable/AnimatableShapeValue.h
index a0af4dd..54449c3 100644
--- a/third_party/WebKit/Source/core/animation/animatable/AnimatableShapeValue.h
+++ b/third_party/WebKit/Source/core/animation/animatable/AnimatableShapeValue.h
@@ -59,7 +59,7 @@
     AnimatableType type() const override { return TypeShapeValue; }
     bool equalTo(const AnimatableValue*) const override;
 
-    RefPtrWillBePersistent<ShapeValue> m_shape;
+    Persistent<ShapeValue> m_shape;
 };
 
 DEFINE_ANIMATABLE_VALUE_TYPE_CASTS(AnimatableShapeValue, isShapeValue());
diff --git a/third_party/WebKit/Source/core/animation/animatable/AnimatableUnknown.h b/third_party/WebKit/Source/core/animation/animatable/AnimatableUnknown.h
index b08353c9..2fe8014 100644
--- a/third_party/WebKit/Source/core/animation/animatable/AnimatableUnknown.h
+++ b/third_party/WebKit/Source/core/animation/animatable/AnimatableUnknown.h
@@ -41,7 +41,7 @@
 public:
     ~AnimatableUnknown() override { }
 
-    static PassRefPtr<AnimatableUnknown> create(PassRefPtrWillBeRawPtr<CSSValue> value)
+    static PassRefPtr<AnimatableUnknown> create(RawPtr<CSSValue> value)
     {
         return adoptRef(new AnimatableUnknown(value));
     }
@@ -50,7 +50,7 @@
         return adoptRef(new AnimatableUnknown(cssValuePool().createIdentifierValue(value)));
     }
 
-    PassRefPtrWillBeRawPtr<CSSValue> toCSSValue() const { return m_value; }
+    RawPtr<CSSValue> toCSSValue() const { return m_value; }
     CSSValueID toCSSValueID() const { return toCSSPrimitiveValue(m_value.get())->getValueID(); }
 
 protected:
@@ -62,7 +62,7 @@
     bool usesDefaultInterpolationWith(const AnimatableValue*) const override { return true; }
 
 private:
-    explicit AnimatableUnknown(PassRefPtrWillBeRawPtr<CSSValue> value)
+    explicit AnimatableUnknown(RawPtr<CSSValue> value)
         : m_value(value)
     {
         ASSERT(m_value);
@@ -70,7 +70,7 @@
     AnimatableType type() const override { return TypeUnknown; }
     bool equalTo(const AnimatableValue*) const override;
 
-    const RefPtrWillBePersistent<CSSValue> m_value;
+    const Persistent<CSSValue> m_value;
 };
 
 DEFINE_ANIMATABLE_VALUE_TYPE_CASTS(AnimatableUnknown, isUnknown());
diff --git a/third_party/WebKit/Source/core/animation/animatable/AnimatableUnknownTest.cpp b/third_party/WebKit/Source/core/animation/animatable/AnimatableUnknownTest.cpp
index 99c6f66..51c0223 100644
--- a/third_party/WebKit/Source/core/animation/animatable/AnimatableUnknownTest.cpp
+++ b/third_party/WebKit/Source/core/animation/animatable/AnimatableUnknownTest.cpp
@@ -47,9 +47,9 @@
         otherAnimatableUnknown = AnimatableUnknown::create(otherCSSValue);
     }
 
-    RefPtrWillBePersistent<CSSValue> cssValue;
+    Persistent<CSSValue> cssValue;
     RefPtr<AnimatableValue> animatableUnknown;
-    RefPtrWillBePersistent<CSSValue> otherCSSValue;
+    Persistent<CSSValue> otherCSSValue;
     RefPtr<AnimatableValue> otherAnimatableUnknown;
 };
 
diff --git a/third_party/WebKit/Source/core/animation/css/CSSAnimatableValueFactory.cpp b/third_party/WebKit/Source/core/animation/css/CSSAnimatableValueFactory.cpp
index da5ac9d..cb5e584e 100644
--- a/third_party/WebKit/Source/core/animation/css/CSSAnimatableValueFactory.cpp
+++ b/third_party/WebKit/Source/core/animation/css/CSSAnimatableValueFactory.cpp
@@ -177,7 +177,7 @@
 inline static PassRefPtr<AnimatableValue> createFromStyleImage(StyleImage* image)
 {
     if (image) {
-        if (RefPtrWillBeRawPtr<CSSValue> cssValue = image->cssValue())
+        if (RawPtr<CSSValue> cssValue = image->cssValue())
             return AnimatableImage::create(cssValue.release());
     }
     return AnimatableUnknown::create(CSSValueNone);
diff --git a/third_party/WebKit/Source/core/animation/css/CSSAnimationUpdate.h b/third_party/WebKit/Source/core/animation/css/CSSAnimationUpdate.h
index c7aef14..d12b5fc 100644
--- a/third_party/WebKit/Source/core/animation/css/CSSAnimationUpdate.h
+++ b/third_party/WebKit/Source/core/animation/css/CSSAnimationUpdate.h
@@ -31,7 +31,7 @@
     class NewAnimation {
         DISALLOW_NEW_EXCEPT_PLACEMENT_NEW();
     public:
-        NewAnimation(AtomicString name, size_t nameIndex, const InertEffect& effect, Timing timing, PassRefPtrWillBeRawPtr<StyleRuleKeyframes> styleRule)
+        NewAnimation(AtomicString name, size_t nameIndex, const InertEffect& effect, Timing timing, RawPtr<StyleRuleKeyframes> styleRule)
             : name(name)
             , nameIndex(nameIndex)
             , effect(effect)
@@ -51,14 +51,14 @@
         size_t nameIndex;
         Member<const InertEffect> effect;
         Timing timing;
-        RefPtrWillBeMember<StyleRuleKeyframes> styleRule;
+        Member<StyleRuleKeyframes> styleRule;
         unsigned styleRuleVersion;
     };
 
     class UpdatedAnimation {
         DISALLOW_NEW_EXCEPT_PLACEMENT_NEW();
     public:
-        UpdatedAnimation(size_t index, Animation* animation, const InertEffect& effect, Timing specifiedTiming, PassRefPtrWillBeRawPtr<StyleRuleKeyframes> styleRule)
+        UpdatedAnimation(size_t index, Animation* animation, const InertEffect& effect, Timing specifiedTiming, RawPtr<StyleRuleKeyframes> styleRule)
             : index(index)
             , animation(animation)
             , effect(&effect)
@@ -79,7 +79,7 @@
         Member<Animation> animation;
         Member<const InertEffect> effect;
         Timing specifiedTiming;
-        RefPtrWillBeMember<StyleRuleKeyframes> styleRule;
+        Member<StyleRuleKeyframes> styleRule;
         unsigned styleRuleVersion;
     };
 
@@ -120,7 +120,7 @@
         m_updatedCompositorKeyframes.clear();
     }
 
-    void startAnimation(const AtomicString& animationName, size_t nameIndex, const InertEffect& effect, const Timing& timing, PassRefPtrWillBeRawPtr<StyleRuleKeyframes> styleRule)
+    void startAnimation(const AtomicString& animationName, size_t nameIndex, const InertEffect& effect, const Timing& timing, RawPtr<StyleRuleKeyframes> styleRule)
     {
         m_newAnimations.append(NewAnimation(animationName, nameIndex, effect, timing, styleRule));
     }
@@ -136,7 +136,7 @@
         m_animationIndicesWithPauseToggled.append(index);
     }
     void updateAnimation(size_t index, Animation* animation, const InertEffect& effect, const Timing& specifiedTiming,
-        PassRefPtrWillBeRawPtr<StyleRuleKeyframes> styleRule)
+        RawPtr<StyleRuleKeyframes> styleRule)
     {
         m_animationsWithUpdates.append(UpdatedAnimation(index, animation, effect, specifiedTiming, styleRule));
         m_suppressedAnimations.add(animation);
diff --git a/third_party/WebKit/Source/core/animation/css/CSSAnimations.cpp b/third_party/WebKit/Source/core/animation/css/CSSAnimations.cpp
index a8d1607..8f7a90e 100644
--- a/third_party/WebKit/Source/core/animation/css/CSSAnimations.cpp
+++ b/third_party/WebKit/Source/core/animation/css/CSSAnimations.cpp
@@ -74,7 +74,7 @@
     ASSERT(keyframesRule);
 
     StringKeyframeVector keyframes;
-    const WillBeHeapVector<RefPtrWillBeMember<StyleRuleKeyframe>>& styleKeyframes = keyframesRule->keyframes();
+    const HeapVector<Member<StyleRuleKeyframe>>& styleKeyframes = keyframesRule->keyframes();
 
     // Construct and populate the style for each keyframe
     PropertySet specifiedPropertiesForUseCounter;
@@ -303,7 +303,7 @@
             RefPtr<TimingFunction> keyframeTimingFunction = timing.timingFunction;
             timing.timingFunction = Timing::defaults().timingFunction;
 
-            RefPtrWillBeRawPtr<StyleRuleKeyframes> keyframesRule = resolver->findKeyframesRule(elementForScoping, name);
+            RawPtr<StyleRuleKeyframes> keyframesRule = resolver->findKeyframesRule(elementForScoping, name);
             if (!keyframesRule)
                 continue; // Cancel the animation if there's no style rule for it.
 
@@ -744,7 +744,7 @@
 void CSSAnimations::AnimationEventDelegate::maybeDispatch(Document::ListenerType listenerType, const AtomicString& eventName, double elapsedTime)
 {
     if (m_animationTarget->document().hasListenerType(listenerType)) {
-        RefPtrWillBeRawPtr<AnimationEvent> event = AnimationEvent::create(eventName, m_name, elapsedTime);
+        RawPtr<AnimationEvent> event = AnimationEvent::create(eventName, m_name, elapsedTime);
         event->setTarget(eventTarget());
         document().enqueueAnimationFrameEvent(event);
     }
@@ -805,7 +805,7 @@
         double elapsedTime = timing.iterationDuration;
         const AtomicString& eventType = EventTypeNames::transitionend;
         String pseudoElement = PseudoElement::pseudoElementNameForEvents(getPseudoId());
-        RefPtrWillBeRawPtr<TransitionEvent> event = TransitionEvent::create(eventType, propertyName, elapsedTime, pseudoElement);
+        RawPtr<TransitionEvent> event = TransitionEvent::create(eventType, propertyName, elapsedTime, pseudoElement);
         event->setTarget(eventTarget());
         document().enqueueAnimationFrameEvent(event);
     }
diff --git a/third_party/WebKit/Source/core/animation/css/CSSAnimations.h b/third_party/WebKit/Source/core/animation/css/CSSAnimations.h
index 45830cf7..58a8c92f 100644
--- a/third_party/WebKit/Source/core/animation/css/CSSAnimations.h
+++ b/third_party/WebKit/Source/core/animation/css/CSSAnimations.h
@@ -109,7 +109,7 @@
         AtomicString name;
         size_t nameIndex;
         Timing specifiedTiming;
-        RefPtrWillBeMember<StyleRuleKeyframes> styleRule;
+        Member<StyleRuleKeyframes> styleRule;
         unsigned styleRuleVersion;
     };
 
@@ -164,7 +164,7 @@
         Document& document() const { return m_animationTarget->document(); }
 
         void maybeDispatch(Document::ListenerType, const AtomicString& eventName, double elapsedTime);
-        RawPtrWillBeMember<Element> m_animationTarget;
+        Member<Element> m_animationTarget;
         const AtomicString m_name;
         AnimationEffect::Phase m_previousPhase;
         double m_previousIteration;
@@ -188,7 +188,7 @@
         PseudoId getPseudoId() const { return m_transitionTarget->getPseudoId(); }
         Document& document() const { return m_transitionTarget->document(); }
 
-        RawPtrWillBeMember<Element> m_transitionTarget;
+        Member<Element> m_transitionTarget;
         const CSSPropertyID m_property;
         AnimationEffect::Phase m_previousPhase;
     };
diff --git a/third_party/WebKit/Source/core/clipboard/DataTransfer.h b/third_party/WebKit/Source/core/clipboard/DataTransfer.h
index c36b790..f9742bf 100644
--- a/third_party/WebKit/Source/core/clipboard/DataTransfer.h
+++ b/third_party/WebKit/Source/core/clipboard/DataTransfer.h
@@ -130,8 +130,8 @@
     Member<DataObject> m_dataObject;
 
     IntPoint m_dragLoc;
-    RefPtrWillBeMember<ImageResource> m_dragImage;
-    RefPtrWillBeMember<Node> m_dragImageElement;
+    Member<ImageResource> m_dragImage;
+    Member<Node> m_dragImageElement;
 };
 
 DragOperation convertDropZoneOperationToDragOperation(const String& dragOperation);
diff --git a/third_party/WebKit/Source/core/core.gypi b/third_party/WebKit/Source/core/core.gypi
index ddb116e..189bebd 100644
--- a/third_party/WebKit/Source/core/core.gypi
+++ b/third_party/WebKit/Source/core/core.gypi
@@ -927,14 +927,11 @@
             'animation/CompositorPendingAnimations.h',
             'animation/ColorPropertyFunctions.cpp',
             'animation/ColorPropertyFunctions.h',
-            'animation/ConstantStyleInterpolation.h',
             'animation/DeferredLegacyStyleInterpolation.cpp',
             'animation/DeferredLegacyStyleInterpolation.h',
             'animation/DocumentAnimation.h',
             'animation/DocumentAnimations.cpp',
             'animation/DocumentAnimations.h',
-            'animation/DoubleStyleInterpolation.h',
-            'animation/DoubleStyleInterpolation.cpp',
             'animation/EffectInput.cpp',
             'animation/EffectInput.h',
             'animation/ElementAnimation.h',
@@ -962,8 +959,6 @@
             'animation/LengthListPropertyFunctions.h',
             'animation/LengthPropertyFunctions.cpp',
             'animation/LengthPropertyFunctions.h',
-            'animation/LengthStyleInterpolation.cpp',
-            'animation/LengthStyleInterpolation.h',
             'animation/ListInterpolationFunctions.cpp',
             'animation/ListInterpolationFunctions.h',
             'animation/NonInterpolableValue.h',
@@ -1012,7 +1007,6 @@
             'animation/SVGValueInterpolationType.h',
             'animation/SampledEffect.cpp',
             'animation/SampledEffect.h',
-            'animation/ListStyleInterpolation.h',
             'animation/ShadowInterpolationFunctions.cpp',
             'animation/ShadowInterpolationFunctions.h',
             'animation/StringKeyframe.cpp',
@@ -3878,13 +3872,10 @@
             'animation/CompositorAnimationsTest.cpp',
             'animation/CompositorAnimationsTestHelper.h',
             'animation/DeferredLegacyStyleInterpolationTest.cpp',
-            'animation/DoubleStyleInterpolationTest.cpp',
             'animation/EffectInputTest.cpp',
             'animation/InterpolableValueTest.cpp',
             'animation/InterpolationEffectTest.cpp',
             'animation/KeyframeEffectModelTest.cpp',
-            'animation/LengthStyleInterpolationTest.cpp',
-            'animation/ListStyleInterpolationTest.cpp',
             'animation/PropertyHandleTest.cpp',
             'animation/TimingCalculationsTest.cpp',
             'animation/TimingInputTest.cpp',
@@ -4007,6 +3998,7 @@
             'html/HTMLOutputElementTest.cpp',
             'html/HTMLSelectElementTest.cpp',
             'html/HTMLTableRowElementTest.cpp',
+            'html/HTMLTextAreaElementTest.cpp',
             'html/HTMLTextFormControlElementTest.cpp',
             'html/HTMLVideoElementTest.cpp',
             'html/LinkRelAttributeTest.cpp',
diff --git a/third_party/WebKit/Source/core/css/resolver/FilterOperationResolver.cpp b/third_party/WebKit/Source/core/css/resolver/FilterOperationResolver.cpp
index dcd1e5a..a5b1918 100644
--- a/third_party/WebKit/Source/core/css/resolver/FilterOperationResolver.cpp
+++ b/third_party/WebKit/Source/core/css/resolver/FilterOperationResolver.cpp
@@ -78,6 +78,7 @@
     UseCounter::Feature feature = UseCounter::NumberOfFeatures;
     switch (operationType) {
     case FilterOperation::NONE:
+    case FilterOperation::BOX_REFLECT:
         ASSERT_NOT_REACHED();
         return;
     case FilterOperation::REFERENCE:
diff --git a/third_party/WebKit/Source/core/css/resolver/StyleAdjuster.cpp b/third_party/WebKit/Source/core/css/resolver/StyleAdjuster.cpp
index b62cac2..3a4e97e 100644
--- a/third_party/WebKit/Source/core/css/resolver/StyleAdjuster.cpp
+++ b/third_party/WebKit/Source/core/css/resolver/StyleAdjuster.cpp
@@ -196,7 +196,7 @@
         || style.hasMask()
         || style.clipPath()
         || style.boxReflect()
-        || style.hasFilter()
+        || style.hasFilterInducingProperty()
         || style.hasBlendMode()
         || style.hasIsolation()
         || style.position() == FixedPosition
@@ -228,7 +228,7 @@
     // FIXME: when dropping the -webkit prefix on transform-style, we should also have opacity < 1 cause flattening.
     if (style.preserves3D() && (style.overflowX() != OverflowVisible
         || style.overflowY() != OverflowVisible
-        || style.hasFilter()))
+        || style.hasFilterInducingProperty()))
         style.setTransformStyle3D(TransformStyle3DFlat);
 
     adjustStyleForEditing(style);
diff --git a/third_party/WebKit/Source/core/dom/AXObjectCache.h b/third_party/WebKit/Source/core/dom/AXObjectCache.h
index d3291d17..39762051 100644
--- a/third_party/WebKit/Source/core/dom/AXObjectCache.h
+++ b/third_party/WebKit/Source/core/dom/AXObjectCache.h
@@ -161,7 +161,7 @@
 private:
     explicit ScopedAXObjectCache(Document&);
 
-    RefPtrWillBePersistent<Document> m_document;
+    Persistent<Document> m_document;
     Persistent<AXObjectCache> m_cache;
 };
 
diff --git a/third_party/WebKit/Source/core/dom/ActiveDOMObjectTest.cpp b/third_party/WebKit/Source/core/dom/ActiveDOMObjectTest.cpp
index f9589d4..214dc88 100644
--- a/third_party/WebKit/Source/core/dom/ActiveDOMObjectTest.cpp
+++ b/third_party/WebKit/Source/core/dom/ActiveDOMObjectTest.cpp
@@ -36,7 +36,7 @@
 namespace blink {
 
 class MockActiveDOMObject final : public GarbageCollectedFinalized<MockActiveDOMObject>, public ActiveDOMObject {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(MockActiveDOMObject);
+    USING_GARBAGE_COLLECTED_MIXIN(MockActiveDOMObject);
 public:
     explicit MockActiveDOMObject(ExecutionContext* context) : ActiveDOMObject(context) { }
 
diff --git a/third_party/WebKit/Source/core/dom/Attr.cpp b/third_party/WebKit/Source/core/dom/Attr.cpp
index d874e83d2d..2b21fa9 100644
--- a/third_party/WebKit/Source/core/dom/Attr.cpp
+++ b/third_party/WebKit/Source/core/dom/Attr.cpp
@@ -52,14 +52,14 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<Attr> Attr::create(Element& element, const QualifiedName& name)
+RawPtr<Attr> Attr::create(Element& element, const QualifiedName& name)
 {
-    return adoptRefWillBeNoop(new Attr(element, name));
+    return new Attr(element, name);
 }
 
-PassRefPtrWillBeRawPtr<Attr> Attr::create(Document& document, const QualifiedName& name, const AtomicString& value)
+RawPtr<Attr> Attr::create(Document& document, const QualifiedName& name, const AtomicString& value)
 {
-    return adoptRefWillBeNoop(new Attr(document, name, value));
+    return new Attr(document, name, value);
 }
 
 Attr::~Attr()
@@ -115,10 +115,10 @@
     setValue(AtomicString(v));
 }
 
-PassRefPtrWillBeRawPtr<Node> Attr::cloneNode(bool /*deep*/)
+RawPtr<Node> Attr::cloneNode(bool /*deep*/)
 {
     UseCounter::count(document(), UseCounter::AttrCloneNode);
-    return adoptRefWillBeNoop(new Attr(document(), m_name, value()));
+    return new Attr(document(), m_name, value());
 }
 
 void Attr::detachFromElementWithValue(const AtomicString& value)
diff --git a/third_party/WebKit/Source/core/dom/Attr.h b/third_party/WebKit/Source/core/dom/Attr.h
index 52c92c8..c1ce850 100644
--- a/third_party/WebKit/Source/core/dom/Attr.h
+++ b/third_party/WebKit/Source/core/dom/Attr.h
@@ -34,8 +34,8 @@
 class CORE_EXPORT Attr final : public Node {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<Attr> create(Element&, const QualifiedName&);
-    static PassRefPtrWillBeRawPtr<Attr> create(Document&, const QualifiedName&, const AtomicString& value);
+    static RawPtr<Attr> create(Element&, const QualifiedName&);
+    static RawPtr<Attr> create(Document&, const QualifiedName&, const AtomicString& value);
     ~Attr() override;
 
     String name() const { return m_name.toString(); }
@@ -70,13 +70,13 @@
 
     String nodeValue() const override { return value(); }
     void setNodeValue(const String&) override;
-    PassRefPtrWillBeRawPtr<Node> cloneNode(bool deep) override;
+    RawPtr<Node> cloneNode(bool deep) override;
 
     bool isAttributeNode() const override { return true; }
 
     // Attr wraps either an element/name, or a name/value pair (when it's a standalone Node.)
     // Note that m_name is always set, but m_element/m_standaloneValue may be null.
-    RawPtrWillBeMember<Element> m_element;
+    Member<Element> m_element;
     QualifiedName m_name;
     // Holds the value if it is a standalone Node, or the local name of the
     // attribute it is attached to on an Element. The latter may (letter case)
diff --git a/third_party/WebKit/Source/core/dom/AttrTest.cpp b/third_party/WebKit/Source/core/dom/AttrTest.cpp
index 101ce88..eeb5a82 100644
--- a/third_party/WebKit/Source/core/dom/AttrTest.cpp
+++ b/third_party/WebKit/Source/core/dom/AttrTest.cpp
@@ -14,11 +14,11 @@
 protected:
     void SetUp() override;
 
-    PassRefPtrWillBeRawPtr<Attr> createAttribute();
+    RawPtr<Attr> createAttribute();
     const AtomicString& value() const { return m_value; }
 
 private:
-    RefPtrWillBePersistent<Document> m_document;
+    Persistent<Document> m_document;
     AtomicString m_value;
 };
 
@@ -28,14 +28,14 @@
     m_value = "value";
 }
 
-PassRefPtrWillBeRawPtr<Attr> AttrTest::createAttribute()
+RawPtr<Attr> AttrTest::createAttribute()
 {
     return m_document->createAttribute("name", ASSERT_NO_EXCEPTION);
 }
 
 TEST_F(AttrTest, InitialValueState)
 {
-    RefPtrWillBeRawPtr<Attr> attr = createAttribute();
+    RawPtr<Attr> attr = createAttribute();
     EXPECT_EQ(emptyAtom, attr->value());
     EXPECT_EQ(emptyString(), attr->toNode()->nodeValue());
     EXPECT_EQ(String(), attr->textContent());
@@ -43,7 +43,7 @@
 
 TEST_F(AttrTest, SetValue)
 {
-    RefPtrWillBeRawPtr<Attr> attr = createAttribute();
+    RawPtr<Attr> attr = createAttribute();
     attr->setValue(value());
     EXPECT_EQ(value(), attr->value());
     EXPECT_EQ(value(), attr->toNode()->nodeValue());
@@ -53,7 +53,7 @@
 
 TEST_F(AttrTest, SetNodeValue)
 {
-    RefPtrWillBeRawPtr<Attr> attr = createAttribute();
+    RawPtr<Attr> attr = createAttribute();
     attr->toNode()->setNodeValue(value());
     EXPECT_EQ(value(), attr->value());
     EXPECT_EQ(value(), attr->toNode()->nodeValue());
@@ -63,7 +63,7 @@
 
 TEST_F(AttrTest, SetTextContent)
 {
-    RefPtrWillBeRawPtr<Attr> attr = createAttribute();
+    RawPtr<Attr> attr = createAttribute();
     // Node::setTextContent() does nothing for Attr.
     attr->setTextContent(value());
     EXPECT_EQ(emptyAtom, attr->value());
@@ -73,7 +73,7 @@
 
 TEST_F(AttrTest, LengthOfContents)
 {
-    RefPtrWillBeRawPtr<Attr> attr = createAttribute();
+    RawPtr<Attr> attr = createAttribute();
     EXPECT_EQ(0u, attr->lengthOfContents());
     attr->setValue(value());
     EXPECT_EQ(0u, attr->lengthOfContents());
diff --git a/third_party/WebKit/Source/core/dom/CDATASection.cpp b/third_party/WebKit/Source/core/dom/CDATASection.cpp
index ae7b886..422c57b 100644
--- a/third_party/WebKit/Source/core/dom/CDATASection.cpp
+++ b/third_party/WebKit/Source/core/dom/CDATASection.cpp
@@ -30,9 +30,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<CDATASection> CDATASection::create(Document& document, const String& data)
+RawPtr<CDATASection> CDATASection::create(Document& document, const String& data)
 {
-    return adoptRefWillBeNoop(new CDATASection(document, data));
+    return new CDATASection(document, data);
 }
 
 String CDATASection::nodeName() const
@@ -45,7 +45,7 @@
     return CDATA_SECTION_NODE;
 }
 
-PassRefPtrWillBeRawPtr<Text> CDATASection::cloneWithData(const String& data)
+RawPtr<Text> CDATASection::cloneWithData(const String& data)
 {
     return create(document(), data);
 }
diff --git a/third_party/WebKit/Source/core/dom/CDATASection.h b/third_party/WebKit/Source/core/dom/CDATASection.h
index 1f2879b..60080776 100644
--- a/third_party/WebKit/Source/core/dom/CDATASection.h
+++ b/third_party/WebKit/Source/core/dom/CDATASection.h
@@ -30,14 +30,14 @@
 class CDATASection final : public Text {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<CDATASection> create(Document&, const String&);
+    static RawPtr<CDATASection> create(Document&, const String&);
 
 private:
     CDATASection(Document&, const String&);
 
     String nodeName() const override;
     NodeType getNodeType() const override;
-    PassRefPtrWillBeRawPtr<Text> cloneWithData(const String&) override;
+    RawPtr<Text> cloneWithData(const String&) override;
 };
 
 DEFINE_NODE_TYPE_CASTS(CDATASection, getNodeType() == Node::CDATA_SECTION_NODE);
diff --git a/third_party/WebKit/Source/core/dom/CSSSelectorWatch.cpp b/third_party/WebKit/Source/core/dom/CSSSelectorWatch.cpp
index d1d1ede..955bca94 100644
--- a/third_party/WebKit/Source/core/dom/CSSSelectorWatch.cpp
+++ b/third_party/WebKit/Source/core/dom/CSSSelectorWatch.cpp
@@ -56,14 +56,14 @@
     CSSSelectorWatch* watch = fromIfExists(document);
     if (!watch) {
         watch = new CSSSelectorWatch(document);
-        WillBeHeapSupplement<Document>::provideTo(document, kSupplementName, adoptPtrWillBeNoop(watch));
+        HeapSupplement<Document>::provideTo(document, kSupplementName, adoptPtrWillBeNoop(watch));
     }
     return *watch;
 }
 
 CSSSelectorWatch* CSSSelectorWatch::fromIfExists(Document& document)
 {
-    return static_cast<CSSSelectorWatch*>(WillBeHeapSupplement<Document>::from(document, kSupplementName));
+    return static_cast<CSSSelectorWatch*>(HeapSupplement<Document>::from(document, kSupplementName));
 }
 
 void CSSSelectorWatch::callbackSelectorChangeTimerFired(Timer<CSSSelectorWatch>*)
@@ -146,7 +146,7 @@
 {
     m_watchedCallbackSelectors.clear();
 
-    const RefPtrWillBeRawPtr<StylePropertySet> callbackPropertySet = ImmutableStylePropertySet::create(nullptr, 0, UASheetMode);
+    const RawPtr<StylePropertySet> callbackPropertySet = ImmutableStylePropertySet::create(nullptr, 0, UASheetMode);
 
     for (unsigned i = 0; i < selectors.size(); ++i) {
         CSSSelectorList selectorList = CSSParser::parseSelector(CSSParserContext(UASheetMode, 0), nullptr, selectors[i]);
@@ -166,7 +166,7 @@
 {
     visitor->trace(m_watchedCallbackSelectors);
     visitor->trace(m_document);
-    WillBeHeapSupplement<Document>::trace(visitor);
+    HeapSupplement<Document>::trace(visitor);
 }
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/dom/CSSSelectorWatch.h b/third_party/WebKit/Source/core/dom/CSSSelectorWatch.h
index 57d21cc..a5553b4 100644
--- a/third_party/WebKit/Source/core/dom/CSSSelectorWatch.h
+++ b/third_party/WebKit/Source/core/dom/CSSSelectorWatch.h
@@ -43,9 +43,8 @@
 
 namespace blink {
 
-class CORE_EXPORT CSSSelectorWatch final : public NoBaseWillBeGarbageCollectedFinalized<CSSSelectorWatch>, public WillBeHeapSupplement<Document> {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(CSSSelectorWatch);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(CSSSelectorWatch);
+class CORE_EXPORT CSSSelectorWatch final : public GarbageCollectedFinalized<CSSSelectorWatch>, public HeapSupplement<Document> {
+    USING_GARBAGE_COLLECTED_MIXIN(CSSSelectorWatch);
 public:
     virtual ~CSSSelectorWatch() { }
 
@@ -53,7 +52,7 @@
     static CSSSelectorWatch* fromIfExists(Document&);
 
     void watchCSSSelectors(const Vector<String>& selectors);
-    const WillBeHeapVector<RefPtrWillBeMember<StyleRule>>& watchedCallbackSelectors() const { return m_watchedCallbackSelectors; }
+    const HeapVector<Member<StyleRule>>& watchedCallbackSelectors() const { return m_watchedCallbackSelectors; }
 
     void updateSelectorMatches(const Vector<String>& removedSelectors, const Vector<String>& addedSelectors);
 
@@ -64,9 +63,9 @@
     void callbackSelectorChangeTimerFired(Timer<CSSSelectorWatch>*);
     Document& document() const { return *m_document; }
 
-    RawPtrWillBeMember<Document> m_document;
+    Member<Document> m_document;
 
-    WillBeHeapVector<RefPtrWillBeMember<StyleRule>> m_watchedCallbackSelectors;
+    HeapVector<Member<StyleRule>> m_watchedCallbackSelectors;
 
     // Maps a CSS selector string with a -webkit-callback property to the number
     // of matching ComputedStyle objects in this document.
diff --git a/third_party/WebKit/Source/core/dom/CharacterData.cpp b/third_party/WebKit/Source/core/dom/CharacterData.cpp
index b54428d..ab4651c 100644
--- a/third_party/WebKit/Source/core/dom/CharacterData.cpp
+++ b/third_party/WebKit/Source/core/dom/CharacterData.cpp
@@ -46,7 +46,7 @@
     if (m_data == nonNullData)
         return;
 
-    RefPtrWillBeRawPtr<CharacterData> protect(this);
+    RawPtr<CharacterData> protect(this);
 
     unsigned oldLength = length();
 
@@ -182,7 +182,7 @@
 
 void CharacterData::didModifyData(const String& oldData, UpdateSource source)
 {
-    if (OwnPtrWillBeRawPtr<MutationObserverInterestGroup> mutationRecipients = MutationObserverInterestGroup::createForCharacterDataMutation(*this))
+    if (RawPtr<MutationObserverInterestGroup> mutationRecipients = MutationObserverInterestGroup::createForCharacterDataMutation(*this))
         mutationRecipients->enqueueMutationRecord(MutationRecord::createCharacterData(this, oldData));
 
     if (parentNode()) {
diff --git a/third_party/WebKit/Source/core/dom/ChildFrameDisconnector.h b/third_party/WebKit/Source/core/dom/ChildFrameDisconnector.h
index b57ad10d..7cd2423a 100644
--- a/third_party/WebKit/Source/core/dom/ChildFrameDisconnector.h
+++ b/third_party/WebKit/Source/core/dom/ChildFrameDisconnector.h
@@ -34,8 +34,8 @@
     void disconnectCollectedFrameOwners();
     Node& root() const { return *m_root; }
 
-    WillBeHeapVector<RefPtrWillBeMember<HTMLFrameOwnerElement>, 10> m_frameOwners;
-    RawPtrWillBeMember<Node> m_root;
+    HeapVector<Member<HTMLFrameOwnerElement>, 10> m_frameOwners;
+    Member<Node> m_root;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/dom/ChildListMutationScope.cpp b/third_party/WebKit/Source/core/dom/ChildListMutationScope.cpp
index 94d5715..3b510226 100644
--- a/third_party/WebKit/Source/core/dom/ChildListMutationScope.cpp
+++ b/third_party/WebKit/Source/core/dom/ChildListMutationScope.cpp
@@ -42,15 +42,15 @@
 // accumulator for a given node even if there are multiple ChildListMutationScopes
 // on the stack. The map is always empty when there are no ChildListMutationScopes
 // on the stack.
-typedef WillBeHeapHashMap<RawPtrWillBeMember<Node>, RawPtrWillBeMember<ChildListMutationAccumulator>> AccumulatorMap;
+typedef HeapHashMap<Member<Node>, Member<ChildListMutationAccumulator>> AccumulatorMap;
 
 static AccumulatorMap& accumulatorMap()
 {
-    DEFINE_STATIC_LOCAL(OwnPtrWillBePersistent<AccumulatorMap>, map, (adoptPtrWillBeNoop(new AccumulatorMap())));
+    DEFINE_STATIC_LOCAL(Persistent<AccumulatorMap>, map, (new AccumulatorMap()));
     return *map;
 }
 
-ChildListMutationAccumulator::ChildListMutationAccumulator(PassRefPtrWillBeRawPtr<Node> target, PassOwnPtrWillBeRawPtr<MutationObserverInterestGroup> observers)
+ChildListMutationAccumulator::ChildListMutationAccumulator(RawPtr<Node> target, RawPtr<MutationObserverInterestGroup> observers)
     : m_target(target)
     , m_lastAdded(nullptr)
     , m_observers(observers)
@@ -68,16 +68,14 @@
     }
 }
 
-DEFINE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(ChildListMutationAccumulator);
-
-PassRefPtrWillBeRawPtr<ChildListMutationAccumulator> ChildListMutationAccumulator::getOrCreate(Node& target)
+RawPtr<ChildListMutationAccumulator> ChildListMutationAccumulator::getOrCreate(Node& target)
 {
     AccumulatorMap::AddResult result = accumulatorMap().add(&target, nullptr);
-    RefPtrWillBeRawPtr<ChildListMutationAccumulator> accumulator;
+    RawPtr<ChildListMutationAccumulator> accumulator;
     if (!result.isNewEntry) {
         accumulator = result.storedValue->value;
     } else {
-        accumulator = adoptRefWillBeNoop(new ChildListMutationAccumulator(PassRefPtrWillBeRawPtr<Node>(target), MutationObserverInterestGroup::createForChildListMutation(target)));
+        accumulator = new ChildListMutationAccumulator(RawPtr<Node>(target), MutationObserverInterestGroup::createForChildListMutation(target));
         result.storedValue->value = accumulator.get();
     }
     return accumulator.release();
@@ -88,11 +86,11 @@
     return isEmpty() || (m_lastAdded == child->previousSibling() && m_nextSibling == child->nextSibling());
 }
 
-void ChildListMutationAccumulator::childAdded(PassRefPtrWillBeRawPtr<Node> prpChild)
+void ChildListMutationAccumulator::childAdded(RawPtr<Node> prpChild)
 {
     ASSERT(hasObservers());
 
-    RefPtrWillBeRawPtr<Node> child = prpChild;
+    RawPtr<Node> child = prpChild;
 
     if (!isAddedNodeInOrder(child.get()))
         enqueueMutationRecord();
@@ -111,11 +109,11 @@
     return isEmpty() || m_nextSibling == child;
 }
 
-void ChildListMutationAccumulator::willRemoveChild(PassRefPtrWillBeRawPtr<Node> prpChild)
+void ChildListMutationAccumulator::willRemoveChild(RawPtr<Node> prpChild)
 {
     ASSERT(hasObservers());
 
-    RefPtrWillBeRawPtr<Node> child = prpChild;
+    RawPtr<Node> child = prpChild;
 
     if (!m_addedNodes.isEmpty() || !isRemovedNodeInOrder(child.get()))
         enqueueMutationRecord();
@@ -136,9 +134,9 @@
     ASSERT(hasObservers());
     ASSERT(!isEmpty());
 
-    RefPtrWillBeRawPtr<StaticNodeList> addedNodes = StaticNodeList::adopt(m_addedNodes);
-    RefPtrWillBeRawPtr<StaticNodeList> removedNodes = StaticNodeList::adopt(m_removedNodes);
-    RefPtrWillBeRawPtr<MutationRecord> record = MutationRecord::createChildList(m_target, addedNodes.release(), removedNodes.release(), m_previousSibling.release(), m_nextSibling.release());
+    RawPtr<StaticNodeList> addedNodes = StaticNodeList::adopt(m_addedNodes);
+    RawPtr<StaticNodeList> removedNodes = StaticNodeList::adopt(m_removedNodes);
+    RawPtr<MutationRecord> record = MutationRecord::createChildList(m_target, addedNodes.release(), removedNodes.release(), m_previousSibling.release(), m_nextSibling.release());
     m_observers->enqueueMutationRecord(record.release());
     m_lastAdded = nullptr;
     ASSERT(isEmpty());
diff --git a/third_party/WebKit/Source/core/dom/ChildListMutationScope.h b/third_party/WebKit/Source/core/dom/ChildListMutationScope.h
index c7cb3f1..654938f 100644
--- a/third_party/WebKit/Source/core/dom/ChildListMutationScope.h
+++ b/third_party/WebKit/Source/core/dom/ChildListMutationScope.h
@@ -49,13 +49,12 @@
 // active ChildListMutationScopes for that Node. Once the last ChildListMutationScope
 // is destructed the accumulator enqueues a mutation record for the recorded
 // mutations and the accumulator can be garbage collected.
-class ChildListMutationAccumulator final : public RefCountedWillBeGarbageCollected<ChildListMutationAccumulator> {
-    DECLARE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(ChildListMutationAccumulator);
+class ChildListMutationAccumulator final : public GarbageCollected<ChildListMutationAccumulator> {
 public:
-    static PassRefPtrWillBeRawPtr<ChildListMutationAccumulator> getOrCreate(Node&);
+    static RawPtr<ChildListMutationAccumulator> getOrCreate(Node&);
 
-    void childAdded(PassRefPtrWillBeRawPtr<Node>);
-    void willRemoveChild(PassRefPtrWillBeRawPtr<Node>);
+    void childAdded(RawPtr<Node>);
+    void willRemoveChild(RawPtr<Node>);
 
     bool hasObservers() const { return m_observers; }
 
@@ -67,22 +66,22 @@
     DECLARE_TRACE();
 
 private:
-    ChildListMutationAccumulator(PassRefPtrWillBeRawPtr<Node>, PassOwnPtrWillBeRawPtr<MutationObserverInterestGroup>);
+    ChildListMutationAccumulator(RawPtr<Node>, RawPtr<MutationObserverInterestGroup>);
 
     void enqueueMutationRecord();
     bool isEmpty();
     bool isAddedNodeInOrder(Node*);
     bool isRemovedNodeInOrder(Node*);
 
-    RefPtrWillBeMember<Node> m_target;
+    Member<Node> m_target;
 
-    WillBeHeapVector<RefPtrWillBeMember<Node>> m_removedNodes;
-    WillBeHeapVector<RefPtrWillBeMember<Node>> m_addedNodes;
-    RefPtrWillBeMember<Node> m_previousSibling;
-    RefPtrWillBeMember<Node> m_nextSibling;
-    RawPtrWillBeMember<Node> m_lastAdded;
+    HeapVector<Member<Node>> m_removedNodes;
+    HeapVector<Member<Node>> m_addedNodes;
+    Member<Node> m_previousSibling;
+    Member<Node> m_nextSibling;
+    Member<Node> m_lastAdded;
 
-    OwnPtrWillBeMember<MutationObserverInterestGroup> m_observers;
+    Member<MutationObserverInterestGroup> m_observers;
 
     unsigned m_mutationScopes;
 };
@@ -122,7 +121,7 @@
     }
 
 private:
-    RefPtrWillBeMember<ChildListMutationAccumulator> m_accumulator;
+    Member<ChildListMutationAccumulator> m_accumulator;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/dom/ChildNodeList.h b/third_party/WebKit/Source/core/dom/ChildNodeList.h
index ddeda6b0..8423bd25 100644
--- a/third_party/WebKit/Source/core/dom/ChildNodeList.h
+++ b/third_party/WebKit/Source/core/dom/ChildNodeList.h
@@ -34,9 +34,9 @@
 
 class ChildNodeList final : public NodeList {
 public:
-    static PassRefPtrWillBeRawPtr<ChildNodeList> create(ContainerNode& rootNode)
+    static RawPtr<ChildNodeList> create(ContainerNode& rootNode)
     {
-        return adoptRefWillBeNoop(new ChildNodeList(rootNode));
+        return new ChildNodeList(rootNode);
     }
 
     ~ChildNodeList() override;
@@ -66,7 +66,7 @@
     bool isChildNodeList() const override { return true; }
     Node* virtualOwnerNode() const override;
 
-    RefPtrWillBeMember<ContainerNode> m_parent;
+    Member<ContainerNode> m_parent;
     mutable CollectionIndexCache<ChildNodeList, Node> m_collectionIndexCache;
 };
 
diff --git a/third_party/WebKit/Source/core/dom/ClassCollection.h b/third_party/WebKit/Source/core/dom/ClassCollection.h
index 4487fbe..2f9a968c 100644
--- a/third_party/WebKit/Source/core/dom/ClassCollection.h
+++ b/third_party/WebKit/Source/core/dom/ClassCollection.h
@@ -40,10 +40,10 @@
 public:
     // classNames argument is an AtomicString because it is common for Elements to share the same class names.
     // It is also used to construct a SpaceSplitString (m_classNames) and its constructor requires an AtomicString.
-    static PassRefPtrWillBeRawPtr<ClassCollection> create(ContainerNode& rootNode, CollectionType type, const AtomicString& classNames)
+    static RawPtr<ClassCollection> create(ContainerNode& rootNode, CollectionType type, const AtomicString& classNames)
     {
         ASSERT_UNUSED(type, type == ClassCollectionType);
-        return adoptRefWillBeNoop(new ClassCollection(rootNode, classNames));
+        return new ClassCollection(rootNode, classNames);
     }
 
     ~ClassCollection() override;
diff --git a/third_party/WebKit/Source/core/dom/Comment.cpp b/third_party/WebKit/Source/core/dom/Comment.cpp
index a223466..49852ec 100644
--- a/third_party/WebKit/Source/core/dom/Comment.cpp
+++ b/third_party/WebKit/Source/core/dom/Comment.cpp
@@ -30,9 +30,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<Comment> Comment::create(Document& document, const String& text)
+RawPtr<Comment> Comment::create(Document& document, const String& text)
 {
-    return adoptRefWillBeNoop(new Comment(document, text));
+    return new Comment(document, text);
 }
 
 String Comment::nodeName() const
@@ -45,7 +45,7 @@
     return COMMENT_NODE;
 }
 
-PassRefPtrWillBeRawPtr<Node> Comment::cloneNode(bool /*deep*/)
+RawPtr<Node> Comment::cloneNode(bool /*deep*/)
 {
     return create(document(), data());
 }
diff --git a/third_party/WebKit/Source/core/dom/Comment.h b/third_party/WebKit/Source/core/dom/Comment.h
index 8a1e9ead..3095854 100644
--- a/third_party/WebKit/Source/core/dom/Comment.h
+++ b/third_party/WebKit/Source/core/dom/Comment.h
@@ -30,14 +30,14 @@
 class Comment final : public CharacterData {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<Comment> create(Document&, const String&);
+    static RawPtr<Comment> create(Document&, const String&);
 
 private:
     Comment(Document&, const String&);
 
     String nodeName() const override;
     NodeType getNodeType() const override;
-    PassRefPtrWillBeRawPtr<Node> cloneNode(bool deep) override;
+    RawPtr<Node> cloneNode(bool deep) override;
 };
 
 DEFINE_NODE_TYPE_CASTS(Comment, getNodeType() == Node::COMMENT_NODE);
diff --git a/third_party/WebKit/Source/core/dom/ContainerNode.cpp b/third_party/WebKit/Source/core/dom/ContainerNode.cpp
index e63072ba..5d5b12b 100644
--- a/third_party/WebKit/Source/core/dom/ContainerNode.cpp
+++ b/third_party/WebKit/Source/core/dom/ContainerNode.cpp
@@ -86,7 +86,7 @@
 
 void ContainerNode::parserTakeAllChildrenFrom(ContainerNode& oldParent)
 {
-    while (RefPtrWillBeRawPtr<Node> child = oldParent.firstChild()) {
+    while (RawPtr<Node> child = oldParent.firstChild()) {
         // Explicitly remove since appending can fail, but this loop shouldn't be infinite.
         oldParent.parserRemoveChild(*child);
         parserAppendChild(child.get());
@@ -164,7 +164,7 @@
     return true;
 }
 
-PassRefPtrWillBeRawPtr<Node> ContainerNode::insertBefore(PassRefPtrWillBeRawPtr<Node> newChild, Node* refChild, ExceptionState& exceptionState)
+RawPtr<Node> ContainerNode::insertBefore(RawPtr<Node> newChild, Node* refChild, ExceptionState& exceptionState)
 {
 #if !ENABLE(OILPAN)
     // Check that this node is not "floating".
@@ -172,7 +172,7 @@
     ASSERT(refCount() || parentOrShadowHostNode());
 #endif
 
-    RefPtrWillBeRawPtr<Node> protect(this);
+    RawPtr<Node> protect(this);
 
     // insertBefore(node, 0) is equivalent to appendChild(node)
     if (!refChild) {
@@ -197,7 +197,7 @@
     if (refChild->previousSibling() == newChild || refChild == newChild)
         return newChild;
 
-    RefPtrWillBeRawPtr<Node> next = refChild;
+    RawPtr<Node> next = refChild;
 
     NodeVector targets;
     collectChildrenAndRemoveFromOldParent(*newChild, targets, exceptionState);
@@ -294,7 +294,7 @@
     return toDocument(*this).canAcceptChild(newChild, nullptr, IGNORE_EXCEPTION);
 }
 
-void ContainerNode::parserInsertBefore(PassRefPtrWillBeRawPtr<Node> newChild, Node& nextChild)
+void ContainerNode::parserInsertBefore(RawPtr<Node> newChild, Node& nextChild)
 {
     ASSERT(newChild);
     ASSERT(nextChild.parentNode() == this);
@@ -307,12 +307,12 @@
     if (!checkParserAcceptChild(*newChild))
         return;
 
-    RefPtrWillBeRawPtr<Node> protect(this);
+    RawPtr<Node> protect(this);
 
     // FIXME: parserRemoveChild can run script which could then insert the
     // newChild back into the page. Loop until the child is actually removed.
     // See: fast/parser/execute-script-during-adoption-agency-removal.html
-    while (RefPtrWillBeRawPtr<ContainerNode> parent = newChild->parentNode())
+    while (RawPtr<ContainerNode> parent = newChild->parentNode())
         parent->parserRemoveChild(*newChild);
 
     if (nextChild.parentNode() != this)
@@ -334,7 +334,7 @@
     notifyNodeInserted(*newChild, ChildrenChangeSourceParser);
 }
 
-PassRefPtrWillBeRawPtr<Node> ContainerNode::replaceChild(PassRefPtrWillBeRawPtr<Node> newChild, PassRefPtrWillBeRawPtr<Node> oldChild, ExceptionState& exceptionState)
+RawPtr<Node> ContainerNode::replaceChild(RawPtr<Node> newChild, RawPtr<Node> oldChild, ExceptionState& exceptionState)
 {
 #if !ENABLE(OILPAN)
     // Check that this node is not "floating".
@@ -342,7 +342,7 @@
     ASSERT(refCount() || parentOrShadowHostNode());
 #endif
 
-    RefPtrWillBeRawPtr<Node> protect(this);
+    RawPtr<Node> protect(this);
 
     if (oldChild == newChild) // Nothing to do.
         return oldChild;
@@ -352,7 +352,7 @@
         return nullptr;
     }
 
-    RefPtrWillBeRawPtr<Node> child = oldChild;
+    RawPtr<Node> child = oldChild;
 
     // Make sure replacing the old child with the new is OK.
     if (!checkAcceptChild(newChild.get(), child.get(), exceptionState)) {
@@ -369,7 +369,7 @@
 
     ChildListMutationScope mutation(*this);
 
-    RefPtrWillBeRawPtr<Node> next = child->nextSibling();
+    RawPtr<Node> next = child->nextSibling();
 
     // Remove the node we're replacing.
     removeChild(child, exceptionState);
@@ -529,7 +529,7 @@
 
             tail = n;
         } else {
-            RefPtrWillBeRawPtr<Node> protect(n); // removedFromDocument may remove all references to this node.
+            RawPtr<Node> protect(n); // removedFromDocument may remove all references to this node.
             container.document().adoptIfNeeded(*n);
             if (n->inDocument())
                 container.notifyNodeRemoved(*n);
@@ -547,7 +547,7 @@
     Node::trace(visitor);
 }
 
-PassRefPtrWillBeRawPtr<Node> ContainerNode::removeChild(PassRefPtrWillBeRawPtr<Node> oldChild, ExceptionState& exceptionState)
+RawPtr<Node> ContainerNode::removeChild(RawPtr<Node> oldChild, ExceptionState& exceptionState)
 {
 #if !ENABLE(OILPAN)
     // Check that this node is not "floating".
@@ -555,7 +555,7 @@
     ASSERT(refCount() || parentOrShadowHostNode());
 #endif
 
-    RefPtrWillBeRawPtr<Node> protect(this);
+    RawPtr<Node> protect(this);
 
     // NotFoundError: Raised if oldChild is not a child of this node.
     // FIXME: We should never really get PseudoElements in here, but editing will sometimes
@@ -566,7 +566,7 @@
         return nullptr;
     }
 
-    RefPtrWillBeRawPtr<Node> child = oldChild;
+    RawPtr<Node> child = oldChild;
 
     document().removeFocusedElementOfSubtree(child.get());
 
@@ -660,7 +660,7 @@
         return;
 
     // The container node can be removed from event handlers.
-    RefPtrWillBeRawPtr<ContainerNode> protect(this);
+    RawPtr<ContainerNode> protect(this);
 
     // Do any prep work needed before actually starting to detach
     // and remove... e.g. stop loading frames, fire unload events.
@@ -699,7 +699,7 @@
 #if !ENABLE(OILPAN)
             removedChildren.reserveInitialCapacity(countChildren());
 #endif
-            while (RefPtrWillBeRawPtr<Node> child = m_firstChild) {
+            while (RawPtr<Node> child = m_firstChild) {
                 removeBetween(0, child->nextSibling(), *child);
 #if !ENABLE(OILPAN)
                 removedChildren.append(child.get());
@@ -716,9 +716,9 @@
         dispatchSubtreeModifiedEvent();
 }
 
-PassRefPtrWillBeRawPtr<Node> ContainerNode::appendChild(PassRefPtrWillBeRawPtr<Node> newChild, ExceptionState& exceptionState)
+RawPtr<Node> ContainerNode::appendChild(RawPtr<Node> newChild, ExceptionState& exceptionState)
 {
-    RefPtrWillBeRawPtr<ContainerNode> protect(this);
+    RawPtr<ContainerNode> protect(this);
 
 #if !ENABLE(OILPAN)
     // Check that this node is not "floating".
@@ -781,7 +781,7 @@
     return newChild;
 }
 
-void ContainerNode::parserAppendChild(PassRefPtrWillBeRawPtr<Node> newChild)
+void ContainerNode::parserAppendChild(RawPtr<Node> newChild)
 {
     ASSERT(newChild);
     ASSERT(!newChild->isDocumentFragment());
@@ -790,12 +790,12 @@
     if (!checkParserAcceptChild(*newChild))
         return;
 
-    RefPtrWillBeRawPtr<Node> protect(this);
+    RawPtr<Node> protect(this);
 
     // FIXME: parserRemoveChild can run script which could then insert the
     // newChild back into the page. Loop until the child is actually removed.
     // See: fast/parser/execute-script-during-adoption-agency-removal.html
-    while (RefPtrWillBeRawPtr<ContainerNode> parent = newChild->parentNode())
+    while (RawPtr<ContainerNode> parent = newChild->parentNode())
         parent->parserRemoveChild(*newChild);
 
     if (document() != newChild->document())
@@ -821,8 +821,8 @@
 
     InspectorInstrumentation::didInsertDOMNode(&root);
 
-    RefPtrWillBeRawPtr<Node> protect(this);
-    RefPtrWillBeRawPtr<Node> protectNode(root);
+    RawPtr<Node> protect(this);
+    RawPtr<Node> protectNode(root);
 
     NodeVector postInsertionNotificationTargets;
     notifyNodeInsertedInternal(root, postInsertionNotificationTargets);
@@ -1190,7 +1190,7 @@
     LayoutTheme::theme().controlStateChanged(*layoutObject(), HoverControlState);
 }
 
-PassRefPtrWillBeRawPtr<HTMLCollection> ContainerNode::children()
+RawPtr<HTMLCollection> ContainerNode::children()
 {
     return ensureCachedCollection<HTMLCollection>(NodeChildren);
 }
@@ -1204,7 +1204,7 @@
     return count;
 }
 
-PassRefPtrWillBeRawPtr<Element> ContainerNode::querySelector(const AtomicString& selectors, ExceptionState& exceptionState)
+RawPtr<Element> ContainerNode::querySelector(const AtomicString& selectors, ExceptionState& exceptionState)
 {
     if (selectors.isEmpty()) {
         exceptionState.throwDOMException(SyntaxError, "The provided selector is empty.");
@@ -1219,7 +1219,7 @@
     return selectorQuery->queryFirst(*this);
 }
 
-PassRefPtrWillBeRawPtr<StaticElementList> ContainerNode::querySelectorAll(const AtomicString& selectors, ExceptionState& exceptionState)
+RawPtr<StaticElementList> ContainerNode::querySelectorAll(const AtomicString& selectors, ExceptionState& exceptionState)
 {
     if (selectors.isEmpty()) {
         exceptionState.throwDOMException(SyntaxError, "The provided selector is empty.");
@@ -1241,8 +1241,8 @@
 
     ASSERT(!EventDispatchForbiddenScope::isEventDispatchForbidden());
 
-    RefPtrWillBeRawPtr<Node> c(child);
-    RefPtrWillBeRawPtr<Document> document(child.document());
+    RawPtr<Node> c(child);
+    RawPtr<Document> document(child.document());
 
     if (c->parentNode() && document->hasListenerType(Document::DOMNODEINSERTED_LISTENER))
         c->dispatchScopedEvent(MutationEvent::create(EventTypeNames::DOMNodeInserted, true, c->parentNode()));
@@ -1265,8 +1265,8 @@
 
     InspectorInstrumentation::willRemoveDOMNode(&child);
 
-    RefPtrWillBeRawPtr<Node> c(child);
-    RefPtrWillBeRawPtr<Document> document(child.document());
+    RawPtr<Node> c(child);
+    RawPtr<Document> document(child.document());
 
     // Dispatch pre-removal mutation events.
     if (c->parentNode() && document->hasListenerType(Document::DOMNODEREMOVED_LISTENER)) {
@@ -1435,14 +1435,14 @@
     }
 }
 
-PassRefPtrWillBeRawPtr<TagCollection> ContainerNode::getElementsByTagName(const AtomicString& localName)
+RawPtr<TagCollection> ContainerNode::getElementsByTagName(const AtomicString& localName)
 {
     if (document().isHTMLDocument())
         return ensureCachedCollection<HTMLTagCollection>(HTMLTagCollectionType, localName);
     return ensureCachedCollection<TagCollection>(TagCollectionType, localName);
 }
 
-PassRefPtrWillBeRawPtr<TagCollection> ContainerNode::getElementsByTagNameNS(const AtomicString& namespaceURI, const AtomicString& localName)
+RawPtr<TagCollection> ContainerNode::getElementsByTagNameNS(const AtomicString& namespaceURI, const AtomicString& localName)
 {
     if (namespaceURI == starAtom)
         return getElementsByTagName(localName);
@@ -1452,19 +1452,19 @@
 
 // Takes an AtomicString in argument because it is common for elements to share the same name attribute.
 // Therefore, the NameNodeList factory function expects an AtomicString type.
-PassRefPtrWillBeRawPtr<NameNodeList> ContainerNode::getElementsByName(const AtomicString& elementName)
+RawPtr<NameNodeList> ContainerNode::getElementsByName(const AtomicString& elementName)
 {
     return ensureCachedCollection<NameNodeList>(NameNodeListType, elementName);
 }
 
 // Takes an AtomicString in argument because it is common for elements to share the same set of class names.
 // Therefore, the ClassNodeList factory function expects an AtomicString type.
-PassRefPtrWillBeRawPtr<ClassCollection> ContainerNode::getElementsByClassName(const AtomicString& classNames)
+RawPtr<ClassCollection> ContainerNode::getElementsByClassName(const AtomicString& classNames)
 {
     return ensureCachedCollection<ClassCollection>(ClassCollectionType, classNames);
 }
 
-PassRefPtrWillBeRawPtr<RadioNodeList> ContainerNode::radioNodeList(const AtomicString& name, bool onlyMatchImgElements)
+RawPtr<RadioNodeList> ContainerNode::radioNodeList(const AtomicString& name, bool onlyMatchImgElements)
 {
     ASSERT(isHTMLFormElement(this) || isHTMLFieldSetElement(this));
     CollectionType type = onlyMatchImgElements ? RadioImgNodeListType : RadioNodeListType;
diff --git a/third_party/WebKit/Source/core/dom/ContainerNode.h b/third_party/WebKit/Source/core/dom/ContainerNode.h
index e25dbd81..e4e7c4b 100644
--- a/third_party/WebKit/Source/core/dom/ContainerNode.h
+++ b/third_party/WebKit/Source/core/dom/ContainerNode.h
@@ -66,7 +66,7 @@
 // for a Node Vector that is used to store child Nodes of a given Node.
 // FIXME: Optimize the value.
 const int initialNodeVectorSize = 11;
-using NodeVector = WillBeHeapVector<RefPtrWillBeMember<Node>, initialNodeVectorSize>;
+using NodeVector = HeapVector<Member<Node>, initialNodeVectorSize>;
 
 class CORE_EXPORT ContainerNode : public Node {
 public:
@@ -80,30 +80,30 @@
     bool hasOneTextChild() const { return hasOneChild() && m_firstChild->isTextNode(); }
     bool hasChildCount(unsigned) const;
 
-    PassRefPtrWillBeRawPtr<HTMLCollection> children();
+    RawPtr<HTMLCollection> children();
 
     unsigned countChildren() const;
 
-    PassRefPtrWillBeRawPtr<Element> querySelector(const AtomicString& selectors, ExceptionState&);
-    PassRefPtrWillBeRawPtr<StaticElementList> querySelectorAll(const AtomicString& selectors, ExceptionState&);
+    RawPtr<Element> querySelector(const AtomicString& selectors, ExceptionState&);
+    RawPtr<StaticElementList> querySelectorAll(const AtomicString& selectors, ExceptionState&);
 
-    PassRefPtrWillBeRawPtr<Node> insertBefore(PassRefPtrWillBeRawPtr<Node> newChild, Node* refChild, ExceptionState& = ASSERT_NO_EXCEPTION);
-    PassRefPtrWillBeRawPtr<Node> replaceChild(PassRefPtrWillBeRawPtr<Node> newChild, PassRefPtrWillBeRawPtr<Node> oldChild, ExceptionState& = ASSERT_NO_EXCEPTION);
-    PassRefPtrWillBeRawPtr<Node> removeChild(PassRefPtrWillBeRawPtr<Node> child, ExceptionState& = ASSERT_NO_EXCEPTION);
-    PassRefPtrWillBeRawPtr<Node> appendChild(PassRefPtrWillBeRawPtr<Node> newChild, ExceptionState& = ASSERT_NO_EXCEPTION);
+    RawPtr<Node> insertBefore(RawPtr<Node> newChild, Node* refChild, ExceptionState& = ASSERT_NO_EXCEPTION);
+    RawPtr<Node> replaceChild(RawPtr<Node> newChild, RawPtr<Node> oldChild, ExceptionState& = ASSERT_NO_EXCEPTION);
+    RawPtr<Node> removeChild(RawPtr<Node> child, ExceptionState& = ASSERT_NO_EXCEPTION);
+    RawPtr<Node> appendChild(RawPtr<Node> newChild, ExceptionState& = ASSERT_NO_EXCEPTION);
 
     Element* getElementById(const AtomicString& id) const;
-    PassRefPtrWillBeRawPtr<TagCollection> getElementsByTagName(const AtomicString&);
-    PassRefPtrWillBeRawPtr<TagCollection> getElementsByTagNameNS(const AtomicString& namespaceURI, const AtomicString& localName);
-    PassRefPtrWillBeRawPtr<NameNodeList> getElementsByName(const AtomicString& elementName);
-    PassRefPtrWillBeRawPtr<ClassCollection> getElementsByClassName(const AtomicString& classNames);
-    PassRefPtrWillBeRawPtr<RadioNodeList> radioNodeList(const AtomicString&, bool onlyMatchImgElements = false);
+    RawPtr<TagCollection> getElementsByTagName(const AtomicString&);
+    RawPtr<TagCollection> getElementsByTagNameNS(const AtomicString& namespaceURI, const AtomicString& localName);
+    RawPtr<NameNodeList> getElementsByName(const AtomicString& elementName);
+    RawPtr<ClassCollection> getElementsByClassName(const AtomicString& classNames);
+    RawPtr<RadioNodeList> radioNodeList(const AtomicString&, bool onlyMatchImgElements = false);
 
     // These methods are only used during parsing.
     // They don't send DOM mutation events or accept DocumentFragments.
-    void parserAppendChild(PassRefPtrWillBeRawPtr<Node>);
+    void parserAppendChild(RawPtr<Node>);
     void parserRemoveChild(Node&);
-    void parserInsertBefore(PassRefPtrWillBeRawPtr<Node> newChild, Node& refChild);
+    void parserInsertBefore(RawPtr<Node> newChild, Node& refChild);
     void parserTakeAllChildrenFrom(ContainerNode&);
 
     void removeChildren(SubtreeModificationAction = DispatchSubtreeModifiedEvent);
@@ -199,8 +199,8 @@
         bool isChildElementChange() const { return type == ElementInserted || type == ElementRemoved; }
 
         ChildrenChangeType type;
-        RawPtrWillBeMember<Node> siblingBeforeChange;
-        RawPtrWillBeMember<Node> siblingAfterChange;
+        Member<Node> siblingBeforeChange;
+        Member<Node> siblingAfterChange;
         ChildrenChangeSource byParser;
     };
 
@@ -223,9 +223,9 @@
     void setLastChild(Node* child) { m_lastChild = child; }
 
     // Utility functions for NodeListsNodeData API.
-    template <typename Collection> PassRefPtrWillBeRawPtr<Collection> ensureCachedCollection(CollectionType);
-    template <typename Collection> PassRefPtrWillBeRawPtr<Collection> ensureCachedCollection(CollectionType, const AtomicString& name);
-    template <typename Collection> PassRefPtrWillBeRawPtr<Collection> ensureCachedCollection(CollectionType, const AtomicString& namespaceURI, const AtomicString& localName);
+    template <typename Collection> RawPtr<Collection> ensureCachedCollection(CollectionType);
+    template <typename Collection> RawPtr<Collection> ensureCachedCollection(CollectionType, const AtomicString& name);
+    template <typename Collection> RawPtr<Collection> ensureCachedCollection(CollectionType, const AtomicString& namespaceURI, const AtomicString& localName);
     template <typename Collection> Collection* cachedCollection(CollectionType);
 
 private:
@@ -261,8 +261,8 @@
     bool getUpperLeftCorner(FloatPoint&) const;
     bool getLowerRightCorner(FloatPoint&) const;
 
-    RawPtrWillBeMember<Node> m_firstChild;
-    RawPtrWillBeMember<Node> m_lastChild;
+    Member<Node> m_firstChild;
+    Member<Node> m_lastChild;
 };
 
 #if ENABLE(ASSERT)
diff --git a/third_party/WebKit/Source/core/dom/ContextFeatures.h b/third_party/WebKit/Source/core/dom/ContextFeatures.h
index 8d0ea1e..fe53aa61 100644
--- a/third_party/WebKit/Source/core/dom/ContextFeatures.h
+++ b/third_party/WebKit/Source/core/dom/ContextFeatures.h
@@ -55,7 +55,7 @@
 
     static const char* supplementName();
     static ContextFeatures* defaultSwitch();
-    static PassRefPtrWillBeRawPtr<ContextFeatures> create(PassOwnPtr<ContextFeaturesClient>);
+    static RawPtr<ContextFeatures> create(PassOwnPtr<ContextFeaturesClient>);
 
     static bool pagePopupEnabled(Document*);
     static bool mutationEventsEnabled(Document*);
@@ -88,9 +88,9 @@
 CORE_EXPORT void provideContextFeaturesTo(Page&, PassOwnPtr<ContextFeaturesClient>);
 void provideContextFeaturesToDocumentFrom(Document&, Page&);
 
-inline PassRefPtrWillBeRawPtr<ContextFeatures> ContextFeatures::create(PassOwnPtr<ContextFeaturesClient> client)
+inline RawPtr<ContextFeatures> ContextFeatures::create(PassOwnPtr<ContextFeaturesClient> client)
 {
-    return adoptRefWillBeNoop(new ContextFeatures(std::move(client)));
+    return new ContextFeatures(std::move(client));
 }
 
 inline bool ContextFeatures::isEnabled(Document* document, FeatureType type, bool defaultValue) const
diff --git a/third_party/WebKit/Source/core/dom/ContextLifecycleNotifier.cpp b/third_party/WebKit/Source/core/dom/ContextLifecycleNotifier.cpp
index f4f0b9b..a59a8b41 100644
--- a/third_party/WebKit/Source/core/dom/ContextLifecycleNotifier.cpp
+++ b/third_party/WebKit/Source/core/dom/ContextLifecycleNotifier.cpp
@@ -35,7 +35,7 @@
 void ContextLifecycleNotifier::notifyResumingActiveDOMObjects()
 {
     TemporaryChange<IterationType> scope(m_iterating, IteratingOverAll);
-    Vector<RawPtrWillBeUntracedMember<ContextLifecycleObserver>> snapshotOfObservers;
+    Vector<UntracedMember<ContextLifecycleObserver>> snapshotOfObservers;
     copyToVector(m_observers, snapshotOfObservers);
     for (ContextLifecycleObserver* observer : snapshotOfObservers) {
         // FIXME: Oilpan: At the moment, it's possible that a ActiveDOMObject
@@ -58,7 +58,7 @@
 void ContextLifecycleNotifier::notifySuspendingActiveDOMObjects()
 {
     TemporaryChange<IterationType> scope(m_iterating, IteratingOverAll);
-    Vector<RawPtrWillBeUntracedMember<ContextLifecycleObserver>> snapshotOfObservers;
+    Vector<UntracedMember<ContextLifecycleObserver>> snapshotOfObservers;
     copyToVector(m_observers, snapshotOfObservers);
     for (ContextLifecycleObserver* observer : snapshotOfObservers) {
         // It's possible that the ActiveDOMObject is already destructed.
@@ -77,7 +77,7 @@
 void ContextLifecycleNotifier::notifyStoppingActiveDOMObjects()
 {
     TemporaryChange<IterationType> scope(m_iterating, IteratingOverAll);
-    Vector<RawPtrWillBeUntracedMember<ContextLifecycleObserver>> snapshotOfObservers;
+    Vector<UntracedMember<ContextLifecycleObserver>> snapshotOfObservers;
     copyToVector(m_observers, snapshotOfObservers);
     for (ContextLifecycleObserver* observer : snapshotOfObservers) {
         // It's possible that the ActiveDOMObject is already destructed.
diff --git a/third_party/WebKit/Source/core/dom/DOMImplementation.cpp b/third_party/WebKit/Source/core/dom/DOMImplementation.cpp
index e9f7596..4275e9dc 100644
--- a/third_party/WebKit/Source/core/dom/DOMImplementation.cpp
+++ b/third_party/WebKit/Source/core/dom/DOMImplementation.cpp
@@ -65,7 +65,7 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<DocumentType> DOMImplementation::createDocumentType(const AtomicString& qualifiedName,
+RawPtr<DocumentType> DOMImplementation::createDocumentType(const AtomicString& qualifiedName,
     const String& publicId, const String& systemId, ExceptionState& exceptionState)
 {
     AtomicString prefix, localName;
@@ -75,10 +75,10 @@
     return DocumentType::create(m_document, qualifiedName, publicId, systemId);
 }
 
-PassRefPtrWillBeRawPtr<XMLDocument> DOMImplementation::createDocument(const AtomicString& namespaceURI,
+RawPtr<XMLDocument> DOMImplementation::createDocument(const AtomicString& namespaceURI,
     const AtomicString& qualifiedName, DocumentType* doctype, ExceptionState& exceptionState)
 {
-    RefPtrWillBeRawPtr<XMLDocument> doc = nullptr;
+    RawPtr<XMLDocument> doc = nullptr;
     DocumentInit init = DocumentInit::fromContext(document().contextDocument());
     if (namespaceURI == SVGNames::svgNamespaceURI) {
         doc = XMLDocument::createSVG(init);
@@ -91,7 +91,7 @@
     doc->setSecurityOrigin(document().getSecurityOrigin()->isolatedCopy());
     doc->setContextFeatures(document().contextFeatures());
 
-    RefPtrWillBeRawPtr<Node> documentElement = nullptr;
+    RawPtr<Node> documentElement = nullptr;
     if (!qualifiedName.isEmpty()) {
         documentElement = doc->createElementNS(namespaceURI, qualifiedName, exceptionState);
         if (exceptionState.hadException())
@@ -196,17 +196,17 @@
     return MIMETypeRegistry::isSupportedJavaScriptMIMEType(mimeType) || isJSONMIMEType(mimeType) || isTextPlainType(mimeType);
 }
 
-PassRefPtrWillBeRawPtr<HTMLDocument> DOMImplementation::createHTMLDocument(const String& title)
+RawPtr<HTMLDocument> DOMImplementation::createHTMLDocument(const String& title)
 {
     DocumentInit init = DocumentInit::fromContext(document().contextDocument())
         .withRegistrationContext(document().registrationContext());
-    RefPtrWillBeRawPtr<HTMLDocument> d = HTMLDocument::create(init);
+    RawPtr<HTMLDocument> d = HTMLDocument::create(init);
     d->open();
     d->write("<!doctype html><html><head></head><body></body></html>");
     if (!title.isNull()) {
         HTMLHeadElement* headElement = d->head();
         ASSERT(headElement);
-        RefPtrWillBeRawPtr<HTMLTitleElement> titleElement = HTMLTitleElement::create(*d);
+        RawPtr<HTMLTitleElement> titleElement = HTMLTitleElement::create(*d);
         headElement->appendChild(titleElement);
         titleElement->appendChild(d->createTextNode(title), ASSERT_NO_EXCEPTION);
     }
@@ -215,7 +215,7 @@
     return d.release();
 }
 
-PassRefPtrWillBeRawPtr<Document> DOMImplementation::createDocument(const String& type, const DocumentInit& init, bool inViewSourceMode)
+RawPtr<Document> DOMImplementation::createDocument(const String& type, const DocumentInit& init, bool inViewSourceMode)
 {
     if (inViewSourceMode)
         return HTMLViewSourceDocument::create(init, type);
diff --git a/third_party/WebKit/Source/core/dom/DOMImplementation.h b/third_party/WebKit/Source/core/dom/DOMImplementation.h
index 1152a18..be6c45c 100644
--- a/third_party/WebKit/Source/core/dom/DOMImplementation.h
+++ b/third_party/WebKit/Source/core/dom/DOMImplementation.h
@@ -39,13 +39,12 @@
 class KURL;
 class XMLDocument;
 
-class CORE_EXPORT DOMImplementation final : public NoBaseWillBeGarbageCollected<DOMImplementation>, public ScriptWrappable {
+class CORE_EXPORT DOMImplementation final : public GarbageCollected<DOMImplementation>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
-    USING_FAST_MALLOC_WILL_BE_REMOVED(DOMImplementation);
 public:
-    static PassOwnPtrWillBeRawPtr<DOMImplementation> create(Document& document)
+    static RawPtr<DOMImplementation> create(Document& document)
     {
-        return adoptPtrWillBeNoop(new DOMImplementation(document));
+        return new DOMImplementation(document);
     }
 
 #if !ENABLE(OILPAN)
@@ -56,14 +55,14 @@
 
     // DOM methods & attributes for DOMImplementation
     bool hasFeature() { return true; }
-    PassRefPtrWillBeRawPtr<DocumentType> createDocumentType(const AtomicString& qualifiedName, const String& publicId, const String& systemId, ExceptionState&);
-    PassRefPtrWillBeRawPtr<XMLDocument> createDocument(const AtomicString& namespaceURI, const AtomicString& qualifiedName, DocumentType*, ExceptionState&);
+    RawPtr<DocumentType> createDocumentType(const AtomicString& qualifiedName, const String& publicId, const String& systemId, ExceptionState&);
+    RawPtr<XMLDocument> createDocument(const AtomicString& namespaceURI, const AtomicString& qualifiedName, DocumentType*, ExceptionState&);
 
     // From the HTMLDOMImplementation interface
-    PassRefPtrWillBeRawPtr<HTMLDocument> createHTMLDocument(const String& title);
+    RawPtr<HTMLDocument> createHTMLDocument(const String& title);
 
     // Other methods (not part of DOM)
-    static PassRefPtrWillBeRawPtr<Document> createDocument(const String& mimeType, const DocumentInit&, bool inViewSourceMode);
+    static RawPtr<Document> createDocument(const String& mimeType, const DocumentInit&, bool inViewSourceMode);
 
     static bool isXMLMIMEType(const String&);
     static bool isTextMIMEType(const String&);
@@ -74,7 +73,7 @@
 private:
     explicit DOMImplementation(Document&);
 
-    RawPtrWillBeMember<Document> m_document;
+    Member<Document> m_document;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/dom/DOMStringList.h b/third_party/WebKit/Source/core/dom/DOMStringList.h
index 5692428c..a48abec 100644
--- a/third_party/WebKit/Source/core/dom/DOMStringList.h
+++ b/third_party/WebKit/Source/core/dom/DOMStringList.h
@@ -40,7 +40,7 @@
 
 // FIXME: Some consumers of this class may benefit from lazily fetching items rather
 //        than creating the list statically as is currently the only option.
-class CORE_EXPORT DOMStringList final : public RefCountedWillBeGarbageCollectedFinalized<DOMStringList>, public ScriptWrappable {
+class CORE_EXPORT DOMStringList final : public GarbageCollectedFinalized<DOMStringList>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
     // We would like to remove DOMStringList from the platform if possible.
@@ -49,9 +49,9 @@
     // what path it should take. http://crbug.com/460726
     enum Source { IndexedDB, Location };
 
-    static PassRefPtrWillBeRawPtr<DOMStringList> create(Source source)
+    static RawPtr<DOMStringList> create(Source source)
     {
-        return adoptRefWillBeNoop(new DOMStringList(source));
+        return new DOMStringList(source);
     }
 
     bool isEmpty() const { return m_strings.isEmpty(); }
diff --git a/third_party/WebKit/Source/core/dom/DOMStringMap.cpp b/third_party/WebKit/Source/core/dom/DOMStringMap.cpp
index 48ed337a..e51ecbc 100644
--- a/third_party/WebKit/Source/core/dom/DOMStringMap.cpp
+++ b/third_party/WebKit/Source/core/dom/DOMStringMap.cpp
@@ -27,8 +27,6 @@
 
 namespace blink {
 
-DEFINE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(DOMStringMap);
-
 bool DOMStringMap::namedPropertyQuery(const AtomicString& name, ExceptionState&)
 {
     return contains(name);
diff --git a/third_party/WebKit/Source/core/dom/DOMStringMap.h b/third_party/WebKit/Source/core/dom/DOMStringMap.h
index 873caeb..81e1731 100644
--- a/third_party/WebKit/Source/core/dom/DOMStringMap.h
+++ b/third_party/WebKit/Source/core/dom/DOMStringMap.h
@@ -38,10 +38,8 @@
 
 class Element;
 
-class DOMStringMap : public NoBaseWillBeGarbageCollected<DOMStringMap>, public ScriptWrappable {
-    DECLARE_EMPTY_VIRTUAL_DESTRUCTOR_WILL_BE_REMOVED(DOMStringMap);
+class DOMStringMap : public GarbageCollected<DOMStringMap>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
-    USING_FAST_MALLOC_WILL_BE_REMOVED(DOMStringMap);
     WTF_MAKE_NONCOPYABLE(DOMStringMap);
 public:
 #if !ENABLE(OILPAN)
diff --git a/third_party/WebKit/Source/core/dom/DOMTokenList.cpp b/third_party/WebKit/Source/core/dom/DOMTokenList.cpp
index 6c14115..6f16abf 100644
--- a/third_party/WebKit/Source/core/dom/DOMTokenList.cpp
+++ b/third_party/WebKit/Source/core/dom/DOMTokenList.cpp
@@ -55,7 +55,7 @@
     }
 
 private:
-    const RefPtrWillBeMember<DOMTokenList> m_domTokenList;
+    const Member<DOMTokenList> m_domTokenList;
 };
 
 } // namespace
diff --git a/third_party/WebKit/Source/core/dom/DOMTokenList.h b/third_party/WebKit/Source/core/dom/DOMTokenList.h
index e93e20c4..6e7b5fc3 100644
--- a/third_party/WebKit/Source/core/dom/DOMTokenList.h
+++ b/third_party/WebKit/Source/core/dom/DOMTokenList.h
@@ -37,7 +37,7 @@
 class Element;
 class ExceptionState;
 
-class CORE_EXPORT DOMTokenListObserver : public WillBeGarbageCollectedMixin {
+class CORE_EXPORT DOMTokenListObserver : public GarbageCollectedMixin {
 public:
     // Called when the value property is set, even if the tokens in
     // the set have not changed.
@@ -46,15 +46,14 @@
     DEFINE_INLINE_VIRTUAL_TRACE() { }
 };
 
-class CORE_EXPORT DOMTokenList : public RefCountedWillBeGarbageCollectedFinalized<DOMTokenList>,
+class CORE_EXPORT DOMTokenList : public GarbageCollectedFinalized<DOMTokenList>,
     public ScriptWrappable, public ValueIterable<String> {
     DEFINE_WRAPPERTYPEINFO();
-    USING_FAST_MALLOC_WILL_BE_REMOVED(DOMTokenList);
     WTF_MAKE_NONCOPYABLE(DOMTokenList);
 public:
-    static PassRefPtrWillBeRawPtr<DOMTokenList> create(DOMTokenListObserver* observer = nullptr)
+    static RawPtr<DOMTokenList> create(DOMTokenListObserver* observer = nullptr)
     {
-        return adoptRefWillBeNoop(new DOMTokenList(observer));
+        return new DOMTokenList(observer);
     }
 
     virtual ~DOMTokenList() { }
@@ -112,7 +111,7 @@
     IterationSource* startIteration(ScriptState*, ExceptionState&) override;
     SpaceSplitString m_tokens;
     AtomicString m_value;
-    RawPtrWillBeWeakMember<DOMTokenListObserver> m_observer;
+    WeakMember<DOMTokenListObserver> m_observer;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/dom/DatasetDOMStringMap.h b/third_party/WebKit/Source/core/dom/DatasetDOMStringMap.h
index 035b313..7c238fd 100644
--- a/third_party/WebKit/Source/core/dom/DatasetDOMStringMap.h
+++ b/third_party/WebKit/Source/core/dom/DatasetDOMStringMap.h
@@ -36,9 +36,9 @@
 
 class DatasetDOMStringMap final : public DOMStringMap {
 public:
-    static PassOwnPtrWillBeRawPtr<DatasetDOMStringMap> create(Element* element)
+    static RawPtr<DatasetDOMStringMap> create(Element* element)
     {
-        return adoptPtrWillBeNoop(new DatasetDOMStringMap(element));
+        return new DatasetDOMStringMap(element);
     }
 
 #if !ENABLE(OILPAN)
@@ -62,7 +62,7 @@
     {
     }
 
-    RawPtrWillBeMember<Element> m_element;
+    Member<Element> m_element;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/dom/Document.cpp b/third_party/WebKit/Source/core/dom/Document.cpp
index 54662b8a..a29d9edc 100644
--- a/third_party/WebKit/Source/core/dom/Document.cpp
+++ b/third_party/WebKit/Source/core/dom/Document.cpp
@@ -362,7 +362,7 @@
 
 Document::WeakDocumentSet& Document::liveDocumentSet()
 {
-    DEFINE_STATIC_LOCAL(OwnPtrWillBePersistent<WeakDocumentSet>, set, (adoptPtrWillBeNoop(new WeakDocumentSet())));
+    DEFINE_STATIC_LOCAL(Persistent<WeakDocumentSet>, set, (new WeakDocumentSet()));
     return *set;
 }
 
@@ -380,7 +380,7 @@
     void performTask(ExecutionContext* context) override
     {
         Document* document = toDocument(context);
-        if (RefPtrWillBeRawPtr<Element> element = document->autofocusElement()) {
+        if (RawPtr<Element> element = document->autofocusElement()) {
             document->setAutofocusElement(0);
             element->focus();
         }
@@ -660,7 +660,7 @@
     return inQuirksMode() ? "BackCompat" : "CSS1Compat";
 }
 
-void Document::setDoctype(PassRefPtrWillBeRawPtr<DocumentType> docType)
+void Document::setDoctype(RawPtr<DocumentType> docType)
 {
     // This should never be called more than once.
     ASSERT(!m_docType || !docType);
@@ -705,7 +705,7 @@
     return isHTMLDocument() ? name.lower() : name;
 }
 
-PassRefPtrWillBeRawPtr<Element> Document::createElement(const AtomicString& name, ExceptionState& exceptionState)
+RawPtr<Element> Document::createElement(const AtomicString& name, ExceptionState& exceptionState)
 {
     if (!isValidName(name)) {
         exceptionState.throwDOMException(InvalidCharacterError, "The tag name provided ('" + name + "') is not a valid name.");
@@ -718,14 +718,14 @@
     return Element::create(QualifiedName(nullAtom, name, nullAtom), this);
 }
 
-PassRefPtrWillBeRawPtr<Element> Document::createElement(const AtomicString& localName, const AtomicString& typeExtension, ExceptionState& exceptionState)
+RawPtr<Element> Document::createElement(const AtomicString& localName, const AtomicString& typeExtension, ExceptionState& exceptionState)
 {
     if (!isValidName(localName)) {
         exceptionState.throwDOMException(InvalidCharacterError, "The tag name provided ('" + localName + "') is not a valid name.");
         return nullptr;
     }
 
-    RefPtrWillBeRawPtr<Element> element;
+    RawPtr<Element> element;
 
     if (CustomElement::isValidName(localName) && registrationContext()) {
         element = registrationContext()->createCustomTagElement(*this, QualifiedName(nullAtom, convertLocalName(localName), xhtmlNamespaceURI));
@@ -756,7 +756,7 @@
     return qName;
 }
 
-PassRefPtrWillBeRawPtr<Element> Document::createElementNS(const AtomicString& namespaceURI, const AtomicString& qualifiedName, ExceptionState& exceptionState)
+RawPtr<Element> Document::createElementNS(const AtomicString& namespaceURI, const AtomicString& qualifiedName, ExceptionState& exceptionState)
 {
     QualifiedName qName(createQualifiedName(namespaceURI, qualifiedName, exceptionState));
     if (qName == QualifiedName::null())
@@ -765,13 +765,13 @@
     return createElement(qName, false);
 }
 
-PassRefPtrWillBeRawPtr<Element> Document::createElementNS(const AtomicString& namespaceURI, const AtomicString& qualifiedName, const AtomicString& typeExtension, ExceptionState& exceptionState)
+RawPtr<Element> Document::createElementNS(const AtomicString& namespaceURI, const AtomicString& qualifiedName, const AtomicString& typeExtension, ExceptionState& exceptionState)
 {
     QualifiedName qName(createQualifiedName(namespaceURI, qualifiedName, exceptionState));
     if (qName == QualifiedName::null())
         return nullptr;
 
-    RefPtrWillBeRawPtr<Element> element;
+    RawPtr<Element> element;
     if (CustomElement::isValidName(qName.localName()) && registrationContext())
         element = registrationContext()->createCustomTagElement(*this, qName);
     else
@@ -843,22 +843,22 @@
     return window->frame();
 }
 
-PassRefPtrWillBeRawPtr<DocumentFragment> Document::createDocumentFragment()
+RawPtr<DocumentFragment> Document::createDocumentFragment()
 {
     return DocumentFragment::create(*this);
 }
 
-PassRefPtrWillBeRawPtr<Text> Document::createTextNode(const String& data)
+RawPtr<Text> Document::createTextNode(const String& data)
 {
     return Text::create(*this, data);
 }
 
-PassRefPtrWillBeRawPtr<Comment> Document::createComment(const String& data)
+RawPtr<Comment> Document::createComment(const String& data)
 {
     return Comment::create(*this, data);
 }
 
-PassRefPtrWillBeRawPtr<CDATASection> Document::createCDATASection(const String& data, ExceptionState& exceptionState)
+RawPtr<CDATASection> Document::createCDATASection(const String& data, ExceptionState& exceptionState)
 {
     if (isHTMLDocument()) {
         exceptionState.throwDOMException(NotSupportedError, "This operation is not supported for HTML documents.");
@@ -871,7 +871,7 @@
     return CDATASection::create(*this, data);
 }
 
-PassRefPtrWillBeRawPtr<ProcessingInstruction> Document::createProcessingInstruction(const String& target, const String& data, ExceptionState& exceptionState)
+RawPtr<ProcessingInstruction> Document::createProcessingInstruction(const String& target, const String& data, ExceptionState& exceptionState)
 {
     if (!isValidName(target)) {
         exceptionState.throwDOMException(InvalidCharacterError, "The target provided ('" + target + "') is not a valid name.");
@@ -884,15 +884,15 @@
     return ProcessingInstruction::create(*this, target, data);
 }
 
-PassRefPtrWillBeRawPtr<Text> Document::createEditingTextNode(const String& text)
+RawPtr<Text> Document::createEditingTextNode(const String& text)
 {
     return Text::createEditingText(*this, text);
 }
 
-bool Document::importContainerNodeChildren(ContainerNode* oldContainerNode, PassRefPtrWillBeRawPtr<ContainerNode> newContainerNode, ExceptionState& exceptionState)
+bool Document::importContainerNodeChildren(ContainerNode* oldContainerNode, RawPtr<ContainerNode> newContainerNode, ExceptionState& exceptionState)
 {
     for (Node& oldChild : NodeTraversal::childrenOf(*oldContainerNode)) {
-        RefPtrWillBeRawPtr<Node> newChild = importNode(&oldChild, true, exceptionState);
+        RawPtr<Node> newChild = importNode(&oldChild, true, exceptionState);
         if (exceptionState.hadException())
             return false;
         newContainerNode->appendChild(newChild.release(), exceptionState);
@@ -903,7 +903,7 @@
     return true;
 }
 
-PassRefPtrWillBeRawPtr<Node> Document::importNode(Node* importedNode, bool deep, ExceptionState& exceptionState)
+RawPtr<Node> Document::importNode(Node* importedNode, bool deep, ExceptionState& exceptionState)
 {
     switch (importedNode->getNodeType()) {
     case TEXT_NODE:
@@ -926,7 +926,7 @@
             exceptionState.throwDOMException(NamespaceError, "The imported node has an invalid namespace.");
             return nullptr;
         }
-        RefPtrWillBeRawPtr<Element> newElement = createElement(oldElement->tagQName(), false);
+        RawPtr<Element> newElement = createElement(oldElement->tagQName(), false);
 
         newElement->cloneDataFromElement(*oldElement);
 
@@ -952,7 +952,7 @@
             return nullptr;
         }
         DocumentFragment* oldFragment = toDocumentFragment(importedNode);
-        RefPtrWillBeRawPtr<DocumentFragment> newFragment = createDocumentFragment();
+        RawPtr<DocumentFragment> newFragment = createDocumentFragment();
         if (deep && !importContainerNodeChildren(oldFragment, newFragment, exceptionState))
             return nullptr;
 
@@ -967,7 +967,7 @@
     return nullptr;
 }
 
-PassRefPtrWillBeRawPtr<Node> Document::adoptNode(PassRefPtrWillBeRawPtr<Node> source, ExceptionState& exceptionState)
+RawPtr<Node> Document::adoptNode(RawPtr<Node> source, ExceptionState& exceptionState)
 {
     EventQueueScope scope;
 
@@ -977,7 +977,7 @@
         return nullptr;
     case ATTRIBUTE_NODE: {
         Attr* attr = toAttr(source.get());
-        if (RefPtrWillBeRawPtr<Element> ownerElement = attr->ownerElement())
+        if (RawPtr<Element> ownerElement = attr->ownerElement())
             ownerElement->removeAttributeNode(attr, exceptionState);
         break;
     }
@@ -1031,9 +1031,9 @@
 }
 
 // FIXME: This should really be in a possible ElementFactory class
-PassRefPtrWillBeRawPtr<Element> Document::createElement(const QualifiedName& qName, bool createdByParser)
+RawPtr<Element> Document::createElement(const QualifiedName& qName, bool createdByParser)
 {
-    RefPtrWillBeRawPtr<Element> e = nullptr;
+    RawPtr<Element> e = nullptr;
 
     // FIXME: Use registered namespaces and look up in a hash to find the right factory.
     if (qName.namespaceURI() == xhtmlNamespaceURI)
@@ -1190,14 +1190,14 @@
     return TreeScope::elementFromPoint(x, y);
 }
 
-WillBeHeapVector<RawPtrWillBeMember<Element>> Document::elementsFromPoint(int x, int y) const
+HeapVector<Member<Element>> Document::elementsFromPoint(int x, int y) const
 {
     if (!layoutView())
-        return WillBeHeapVector<RawPtrWillBeMember<Element>>();
+        return HeapVector<Member<Element>>();
     return TreeScope::elementsFromPoint(x, y);
 }
 
-PassRefPtrWillBeRawPtr<Range> Document::caretRangeFromPoint(int x, int y)
+RawPtr<Range> Document::caretRangeFromPoint(int x, int y)
 {
     if (!layoutView())
         return nullptr;
@@ -1484,18 +1484,18 @@
     return m_frame ? m_frame->settings() : 0;
 }
 
-PassRefPtrWillBeRawPtr<Range> Document::createRange()
+RawPtr<Range> Document::createRange()
 {
     return Range::create(*this);
 }
 
-PassRefPtrWillBeRawPtr<NodeIterator> Document::createNodeIterator(Node* root, unsigned whatToShow, PassRefPtrWillBeRawPtr<NodeFilter> filter)
+RawPtr<NodeIterator> Document::createNodeIterator(Node* root, unsigned whatToShow, RawPtr<NodeFilter> filter)
 {
     ASSERT(root);
     return NodeIterator::create(root, whatToShow, filter);
 }
 
-PassRefPtrWillBeRawPtr<TreeWalker> Document::createTreeWalker(Node* root, unsigned whatToShow, PassRefPtrWillBeRawPtr<NodeFilter> filter)
+RawPtr<TreeWalker> Document::createTreeWalker(Node* root, unsigned whatToShow, RawPtr<NodeFilter> filter)
 {
     ASSERT(root);
     return TreeWalker::create(root, whatToShow, filter);
@@ -1586,7 +1586,7 @@
 void Document::setupFontBuilder(ComputedStyle& documentStyle)
 {
     FontBuilder fontBuilder(*this);
-    RefPtrWillBeRawPtr<CSSFontSelector> selector = styleEngine().fontSelector();
+    RawPtr<CSSFontSelector> selector = styleEngine().fontSelector();
     fontBuilder.createFontForDocument(selector, documentStyle);
 }
 
@@ -1785,7 +1785,7 @@
     // for an example stack see crbug.com/536194, it seems like we should just use
     // a PluginScriptForbiddenScope to block all script from running inside here
     // to avoid the crash.
-    RefPtrWillBeRawPtr<LocalFrame> protect(m_frame.get());
+    RawPtr<LocalFrame> protect(m_frame.get());
 
     TRACE_EVENT_BEGIN1("blink,devtools.timeline", "UpdateLayoutTree", "beginData", InspectorRecalculateStylesEvent::data(frame()));
     TRACE_EVENT_SCOPED_SAMPLING_STATE("blink", "UpdateLayoutTree");
@@ -1955,7 +1955,7 @@
 
     ScriptForbiddenScope forbidScript;
 
-    RefPtrWillBeRawPtr<FrameView> frameView = view();
+    RawPtr<FrameView> frameView = view();
     if (frameView && frameView->isInPerformLayout()) {
         // View layout should not be re-entrant.
         ASSERT_NOT_REACHED();
@@ -2170,7 +2170,7 @@
     if (m_useElementsNeedingUpdate.isEmpty())
         return;
 
-    WillBeHeapVector<RawPtrWillBeMember<SVGUseElement>> elements;
+    HeapVector<Member<SVGUseElement>> elements;
     copyToVector(m_useElementsNeedingUpdate, elements);
     m_useElementsNeedingUpdate.clear();
 
@@ -2271,7 +2271,7 @@
     m_autofocusElement = nullptr;
 
     if (m_focusedElement.get()) {
-        RefPtrWillBeRawPtr<Element> oldFocusedElement = m_focusedElement;
+        RawPtr<Element> oldFocusedElement = m_focusedElement;
         m_focusedElement = nullptr;
         if (frameHost())
             frameHost()->chromeClient().focusedNodeChanged(oldFocusedElement.get(), nullptr);
@@ -2411,7 +2411,7 @@
     return m_canvasFontCache.get();
 }
 
-PassRefPtrWillBeRawPtr<DocumentParser> Document::createParser()
+RawPtr<DocumentParser> Document::createParser()
 {
     if (isHTMLDocument()) {
         bool reportErrors = InspectorInstrumentation::collectingHTMLParseErrors(this);
@@ -2504,7 +2504,7 @@
     setReadyState(Complete);
 }
 
-PassRefPtrWillBeRawPtr<DocumentParser> Document::implicitOpen(ParserSynchronizationPolicy parserSyncPolicy)
+RawPtr<DocumentParser> Document::implicitOpen(ParserSynchronizationPolicy parserSyncPolicy)
 {
     detachParser();
 
@@ -2550,9 +2550,9 @@
     return 0;
 }
 
-void Document::setBody(PassRefPtrWillBeRawPtr<HTMLElement> prpNewBody, ExceptionState& exceptionState)
+void Document::setBody(RawPtr<HTMLElement> prpNewBody, ExceptionState& exceptionState)
 {
-    RefPtrWillBeRawPtr<HTMLElement> newBody = prpNewBody;
+    RawPtr<HTMLElement> newBody = prpNewBody;
 
     if (!newBody) {
         exceptionState.throwDOMException(HierarchyRequestError, ExceptionMessages::argumentNullOrIncorrectType(1, "HTMLElement"));
@@ -2632,7 +2632,7 @@
     if (!scriptableDocumentParser() || !scriptableDocumentParser()->wasCreatedByScript() || !scriptableDocumentParser()->isParsing())
         return;
 
-    if (RefPtrWillBeRawPtr<DocumentParser> parser = m_parser)
+    if (RawPtr<DocumentParser> parser = m_parser)
         parser->finish();
 
     if (!m_frame) {
@@ -2659,7 +2659,7 @@
     // The call to dispatchWindowLoadEvent (from documentWasClosed()) can detach
     // the LocalDOMWindow and cause it (and its attached Document) to be
     // destroyed.
-    RefPtrWillBeRawPtr<LocalDOMWindow> protectedWindow(this->domWindow());
+    RawPtr<LocalDOMWindow> protectedWindow(this->domWindow());
 
     m_loadEventProgress = LoadEventInProgress;
 
@@ -2747,9 +2747,9 @@
     if (processingBeforeUnload())
         return false;
 
-    RefPtrWillBeRawPtr<Document> protect(this);
+    RawPtr<Document> protect(this);
 
-    RefPtrWillBeRawPtr<BeforeUnloadEvent> beforeUnloadEvent = BeforeUnloadEvent::create();
+    RawPtr<BeforeUnloadEvent> beforeUnloadEvent = BeforeUnloadEvent::create();
     m_loadEventProgress = BeforeUnloadEventInProgress;
     m_domWindow->dispatchEvent(beforeUnloadEvent.get(), this);
     m_loadEventProgress = BeforeUnloadEventCompleted;
@@ -2774,7 +2774,7 @@
 void Document::dispatchUnloadEvents()
 {
     PluginScriptForbiddenScope forbidPluginDestructorScripting;
-    RefPtrWillBeRawPtr<Document> protect(this);
+    RawPtr<Document> protect(this);
     if (m_parser)
         m_parser->stopParsing();
 
@@ -2806,9 +2806,9 @@
             // The DocumentLoader (and thus its DocumentLoadTiming) might get destroyed
             // while dispatching the event, so protect it to prevent writing the end
             // time into freed memory.
-            RefPtrWillBeRawPtr<DocumentLoader> documentLoader = m_frame->loader().provisionalDocumentLoader();
+            RawPtr<DocumentLoader> documentLoader = m_frame->loader().provisionalDocumentLoader();
             m_loadEventProgress = UnloadEventInProgress;
-            RefPtrWillBeRawPtr<Event> unloadEvent(Event::create(EventTypeNames::unload));
+            RawPtr<Event> unloadEvent(Event::create(EventTypeNames::unload));
             if (documentLoader && !documentLoader->timing().unloadEventStart() && !documentLoader->timing().unloadEventEnd()) {
                 DocumentLoadTiming& timing = documentLoader->timing();
                 ASSERT(timing.navigationStart());
@@ -2979,7 +2979,7 @@
 
 void Document::logExceptionToConsole(const String& errorMessage, int scriptId, const String& sourceURL, int lineNumber, int columnNumber, PassRefPtr<ScriptCallStack> callStack)
 {
-    RefPtrWillBeRawPtr<ConsoleMessage> consoleMessage = ConsoleMessage::create(JSMessageSource, ErrorMessageLevel, errorMessage, sourceURL, lineNumber, columnNumber);
+    RawPtr<ConsoleMessage> consoleMessage = ConsoleMessage::create(JSMessageSource, ErrorMessageLevel, errorMessage, sourceURL, lineNumber, columnNumber);
     consoleMessage->setScriptId(scriptId);
     consoleMessage->setCallStack(callStack);
     addConsoleMessage(consoleMessage.release());
@@ -3372,16 +3372,16 @@
     return true;
 }
 
-PassRefPtrWillBeRawPtr<Node> Document::cloneNode(bool deep)
+RawPtr<Node> Document::cloneNode(bool deep)
 {
-    RefPtrWillBeRawPtr<Document> clone = cloneDocumentWithoutChildren();
+    RawPtr<Document> clone = cloneDocumentWithoutChildren();
     clone->cloneDataFromDocument(*this);
     if (deep)
         cloneChildNodes(clone.get());
     return clone.release();
 }
 
-PassRefPtrWillBeRawPtr<Document> Document::cloneDocumentWithoutChildren()
+RawPtr<Document> Document::cloneDocumentWithoutChildren()
 {
     DocumentInit init(url());
     if (isXMLDocument()) {
@@ -3511,12 +3511,12 @@
     }
 }
 
-void Document::setHoverNode(PassRefPtrWillBeRawPtr<Node> newHoverNode)
+void Document::setHoverNode(RawPtr<Node> newHoverNode)
 {
     m_hoverNode = newHoverNode;
 }
 
-void Document::setActiveHoverElement(PassRefPtrWillBeRawPtr<Element> newActiveElement)
+void Document::setActiveHoverElement(RawPtr<Element> newActiveElement)
 {
     if (!newActiveElement) {
         m_activeHoverElement.clear();
@@ -3588,13 +3588,13 @@
     setAnnotatedRegionsDirty(false);
 }
 
-bool Document::setFocusedElement(PassRefPtrWillBeRawPtr<Element> prpNewFocusedElement, const FocusParams& params)
+bool Document::setFocusedElement(RawPtr<Element> prpNewFocusedElement, const FocusParams& params)
 {
     ASSERT(!m_lifecycle.inDetach());
 
     m_clearFocusedElementTimer.stop();
 
-    RefPtrWillBeRawPtr<Element> newFocusedElement = prpNewFocusedElement;
+    RawPtr<Element> newFocusedElement = prpNewFocusedElement;
 
     // Make sure newFocusedNode is actually in this document
     if (newFocusedElement && (newFocusedElement->document() != this))
@@ -3607,7 +3607,7 @@
         return true;
 
     bool focusChangeBlocked = false;
-    RefPtrWillBeRawPtr<Element> oldFocusedElement = m_focusedElement;
+    RawPtr<Element> oldFocusedElement = m_focusedElement;
     m_focusedElement = nullptr;
 
     // Remove focus from the existing focus node (if any)
@@ -3859,7 +3859,7 @@
 
 void Document::moveNodeIteratorsToNewDocument(Node& node, Document& newDocument)
 {
-    WillBeHeapHashSet<RawPtrWillBeWeakMember<NodeIterator>> nodeIteratorsList = m_nodeIterators;
+    HeapHashSet<WeakMember<NodeIterator>> nodeIteratorsList = m_nodeIterators;
     for (NodeIterator* ni : nodeIteratorsList) {
         if (ni->root() == node) {
             detachNodeIterator(ni);
@@ -3962,7 +3962,7 @@
     // FIXME: This should update markers for spelling and grammar checking.
 }
 
-void Document::setWindowAttributeEventListener(const AtomicString& eventType, PassRefPtrWillBeRawPtr<EventListener> listener)
+void Document::setWindowAttributeEventListener(const AtomicString& eventType, RawPtr<EventListener> listener)
 {
     LocalDOMWindow* domWindow = this->domWindow();
     if (!domWindow)
@@ -3985,12 +3985,12 @@
     return m_domWindow->getEventQueue();
 }
 
-void Document::enqueueAnimationFrameEvent(PassRefPtrWillBeRawPtr<Event> event)
+void Document::enqueueAnimationFrameEvent(RawPtr<Event> event)
 {
     ensureScriptedAnimationController().enqueueEvent(event);
 }
 
-void Document::enqueueUniqueAnimationFrameEvent(PassRefPtrWillBeRawPtr<Event> event)
+void Document::enqueueUniqueAnimationFrameEvent(RawPtr<Event> event)
 {
     ensureScriptedAnimationController().enqueuePerFrameEvent(event);
 }
@@ -3998,19 +3998,19 @@
 void Document::enqueueScrollEventForNode(Node* target)
 {
     // Per the W3C CSSOM View Module only scroll events fired at the document should bubble.
-    RefPtrWillBeRawPtr<Event> scrollEvent = target->isDocumentNode() ? Event::createBubble(EventTypeNames::scroll) : Event::create(EventTypeNames::scroll);
+    RawPtr<Event> scrollEvent = target->isDocumentNode() ? Event::createBubble(EventTypeNames::scroll) : Event::create(EventTypeNames::scroll);
     scrollEvent->setTarget(target);
     ensureScriptedAnimationController().enqueuePerFrameEvent(scrollEvent.release());
 }
 
 void Document::enqueueResizeEvent()
 {
-    RefPtrWillBeRawPtr<Event> event = Event::create(EventTypeNames::resize);
+    RawPtr<Event> event = Event::create(EventTypeNames::resize);
     event->setTarget(domWindow());
     ensureScriptedAnimationController().enqueuePerFrameEvent(event.release());
 }
 
-void Document::enqueueMediaQueryChangeListeners(WillBeHeapVector<RefPtrWillBeMember<MediaQueryListListener>>& listeners)
+void Document::enqueueMediaQueryChangeListeners(HeapVector<Member<MediaQueryListListener>>& listeners)
 {
     ensureScriptedAnimationController().enqueueMediaQueryChangeListeners(listeners);
 }
@@ -4042,9 +4042,9 @@
     eventFactories().add(eventFactory);
 }
 
-PassRefPtrWillBeRawPtr<Event> Document::createEvent(ExecutionContext* executionContext, const String& eventType, ExceptionState& exceptionState)
+RawPtr<Event> Document::createEvent(ExecutionContext* executionContext, const String& eventType, ExceptionState& exceptionState)
 {
-    RefPtrWillBeRawPtr<Event> event = nullptr;
+    RawPtr<Event> event = nullptr;
     for (const auto& factory : eventFactories()) {
         event = factory->create(executionContext, eventType);
         if (event)
@@ -4633,7 +4633,7 @@
     return KURL();
 }
 
-void Document::pushCurrentScript(PassRefPtrWillBeRawPtr<HTMLScriptElement> newCurrentScript)
+void Document::pushCurrentScript(RawPtr<HTMLScriptElement> newCurrentScript)
 {
     ASSERT(newCurrentScript);
     m_currentScriptStack.append(newCurrentScript);
@@ -4692,7 +4692,7 @@
     return *doc;
 }
 
-WeakPtrWillBeRawPtr<Document> Document::contextDocument()
+RawPtr<Document> Document::contextDocument()
 {
     if (m_contextDocument)
         return m_contextDocument;
@@ -4702,14 +4702,14 @@
     return nullptr;
 }
 
-PassRefPtrWillBeRawPtr<Attr> Document::createAttribute(const AtomicString& name, ExceptionState& exceptionState)
+RawPtr<Attr> Document::createAttribute(const AtomicString& name, ExceptionState& exceptionState)
 {
     if (isHTMLDocument() && name != name.lower())
         UseCounter::count(*this, UseCounter::HTMLDocumentCreateAttributeNameNotLowercase);
     return createAttributeNS(nullAtom, name, exceptionState, true);
 }
 
-PassRefPtrWillBeRawPtr<Attr> Document::createAttributeNS(const AtomicString& namespaceURI, const AtomicString& qualifiedName, ExceptionState& exceptionState, bool shouldIgnoreNamespaceChecks)
+RawPtr<Attr> Document::createAttributeNS(const AtomicString& namespaceURI, const AtomicString& qualifiedName, ExceptionState& exceptionState, bool shouldIgnoreNamespaceChecks)
 {
     AtomicString prefix, localName;
     if (!parseQualifiedName(qualifiedName, prefix, localName, exceptionState))
@@ -4733,7 +4733,7 @@
 SVGDocumentExtensions& Document::accessSVGExtensions()
 {
     if (!m_svgExtensions)
-        m_svgExtensions = adoptPtrWillBeNoop(new SVGDocumentExtensions(this));
+        m_svgExtensions = new SVGDocumentExtensions(this);
     return *m_svgExtensions;
 }
 
@@ -4742,58 +4742,58 @@
     return isSVGSVGElement(documentElement());
 }
 
-PassRefPtrWillBeRawPtr<HTMLCollection> Document::images()
+RawPtr<HTMLCollection> Document::images()
 {
     return ensureCachedCollection<HTMLCollection>(DocImages);
 }
 
-PassRefPtrWillBeRawPtr<HTMLCollection> Document::applets()
+RawPtr<HTMLCollection> Document::applets()
 {
     return ensureCachedCollection<HTMLCollection>(DocApplets);
 }
 
-PassRefPtrWillBeRawPtr<HTMLCollection> Document::embeds()
+RawPtr<HTMLCollection> Document::embeds()
 {
     return ensureCachedCollection<HTMLCollection>(DocEmbeds);
 }
 
-PassRefPtrWillBeRawPtr<HTMLCollection> Document::scripts()
+RawPtr<HTMLCollection> Document::scripts()
 {
     return ensureCachedCollection<HTMLCollection>(DocScripts);
 }
 
-PassRefPtrWillBeRawPtr<HTMLCollection> Document::links()
+RawPtr<HTMLCollection> Document::links()
 {
     return ensureCachedCollection<HTMLCollection>(DocLinks);
 }
 
-PassRefPtrWillBeRawPtr<HTMLCollection> Document::forms()
+RawPtr<HTMLCollection> Document::forms()
 {
     return ensureCachedCollection<HTMLCollection>(DocForms);
 }
 
-PassRefPtrWillBeRawPtr<HTMLCollection> Document::anchors()
+RawPtr<HTMLCollection> Document::anchors()
 {
     return ensureCachedCollection<HTMLCollection>(DocAnchors);
 }
 
-PassRefPtrWillBeRawPtr<HTMLAllCollection> Document::allForBinding()
+RawPtr<HTMLAllCollection> Document::allForBinding()
 {
     UseCounter::count(*this, UseCounter::DocumentAll);
     return all();
 }
 
-PassRefPtrWillBeRawPtr<HTMLAllCollection> Document::all()
+RawPtr<HTMLAllCollection> Document::all()
 {
     return ensureCachedCollection<HTMLAllCollection>(DocAll);
 }
 
-PassRefPtrWillBeRawPtr<HTMLCollection> Document::windowNamedItems(const AtomicString& name)
+RawPtr<HTMLCollection> Document::windowNamedItems(const AtomicString& name)
 {
     return ensureCachedCollection<WindowNameCollection>(WindowNamedItems, name);
 }
 
-PassRefPtrWillBeRawPtr<DocumentNameCollection> Document::documentNamedItems(const AtomicString& name)
+RawPtr<DocumentNameCollection> Document::documentNamedItems(const AtomicString& name)
 {
     return ensureCachedCollection<DocumentNameCollection>(DocumentNamedItems, name);
 }
@@ -4816,14 +4816,14 @@
     // The microtask checkpoint or the loader's finishedParsing() method may invoke script that causes this object to
     // be dereferenced (when this document is in an iframe and the onload causes the iframe's src to change).
     // Keep it alive until we are done.
-    RefPtrWillBeRawPtr<Document> protect(this);
+    RawPtr<Document> protect(this);
 
     // Ensure Custom Element callbacks are drained before DOMContentLoaded.
     // FIXME: Remove this ad-hoc checkpoint when DOMContentLoaded is dispatched in a
     // queued task, which will do a checkpoint anyway. https://crbug.com/425790
     Microtask::performCheckpoint(V8PerIsolateData::mainThreadIsolate());
 
-    if (RefPtrWillBeRawPtr<LocalFrame> frame = this->frame()) {
+    if (RawPtr<LocalFrame> frame = this->frame()) {
         // Don't update the layout tree if we haven't requested the main resource yet to avoid
         // adding extra latency. Note that the first layout tree update can be expensive since it
         // triggers the parsing of the default stylesheets which are compiled-in.
@@ -5045,7 +5045,7 @@
         enforceSuborigin(*getSecurityOrigin()->suborigin());
 }
 
-void Document::initContentSecurityPolicy(PassRefPtrWillBeRawPtr<ContentSecurityPolicy> csp)
+void Document::initContentSecurityPolicy(RawPtr<ContentSecurityPolicy> csp)
 {
     setContentSecurityPolicy(csp ? csp : ContentSecurityPolicy::create());
     if (m_frame && m_frame->tree().parent() && m_frame->tree().parent()->isLocalFrame()) {
@@ -5193,7 +5193,7 @@
     m_haveExplicitlyDisabledDNSPrefetch = true;
 }
 
-WeakPtrWillBeRawPtr<Document> Document::createWeakPtr()
+RawPtr<Document> Document::createWeakPtr()
 {
 #if ENABLE(OILPAN)
     return this;
@@ -5226,7 +5226,7 @@
     InspectorInstrumentation::scriptExecutionBlockedByCSP(this, directiveText);
 }
 
-void Document::addConsoleMessage(PassRefPtrWillBeRawPtr<ConsoleMessage> consoleMessage)
+void Document::addConsoleMessage(RawPtr<ConsoleMessage> consoleMessage)
 {
     if (!isContextThread()) {
         m_taskRunner->postTask(BLINK_FROM_HERE, AddConsoleMessageTask::create(consoleMessage->source(), consoleMessage->level(), consoleMessage->message()));
@@ -5462,7 +5462,7 @@
     m_scriptedIdleTaskController->cancelCallback(id);
 }
 
-PassRefPtrWillBeRawPtr<Touch> Document::createTouch(DOMWindow* window, EventTarget* target, int identifier, double pageX, double pageY, double screenX, double screenY, double radiusX, double radiusY, float rotationAngle, float force) const
+RawPtr<Touch> Document::createTouch(DOMWindow* window, EventTarget* target, int identifier, double pageX, double pageY, double screenX, double screenY, double radiusX, double radiusY, float rotationAngle, float force) const
 {
     // Match behavior from when these types were integers, and avoid surprises from someone explicitly
     // passing Infinity/NaN.
@@ -5491,7 +5491,7 @@
     return Touch::create(frame, target, identifier, FloatPoint(screenX, screenY), FloatPoint(pageX, pageY), FloatSize(radiusX, radiusY), rotationAngle, force, String());
 }
 
-PassRefPtrWillBeRawPtr<TouchList> Document::createTouchList(WillBeHeapVector<RefPtrWillBeMember<Touch>>& touches) const
+RawPtr<TouchList> Document::createTouchList(HeapVector<Member<Touch>>& touches) const
 {
     return TouchList::adopt(touches);
 }
@@ -5561,7 +5561,7 @@
 
 void Document::setContextFeatures(ContextFeatures& features)
 {
-    m_contextFeatures = PassRefPtrWillBeRawPtr<ContextFeatures>(features);
+    m_contextFeatures = RawPtr<ContextFeatures>(features);
 }
 
 static LayoutObject* nearestCommonHoverAncestor(LayoutObject* obj1, LayoutObject* obj2)
@@ -5597,7 +5597,7 @@
     if (oldActiveElement && !request.active()) {
         // The oldActiveElement layoutObject is null, dropped on :active by setting display: none,
         // for instance. We still need to clear the ActiveChain as the mouse is released.
-        for (RefPtrWillBeRawPtr<Node> node = oldActiveElement; node; node = FlatTreeTraversal::parent(*node)) {
+        for (RawPtr<Node> node = oldActiveElement; node; node = FlatTreeTraversal::parent(*node)) {
             ASSERT(!node->isTextNode());
             node->setActive(false);
             m_userActionElements.setInActiveChain(node.get(), false);
@@ -5624,7 +5624,7 @@
     // at the time the mouse went down.
     bool mustBeInActiveChain = request.active() && request.move();
 
-    RefPtrWillBeRawPtr<Node> oldHoverNode = hoverNode();
+    RawPtr<Node> oldHoverNode = hoverNode();
 
     // Check to see if the hovered node has changed.
     // If it hasn't, we do not need to do anything.
@@ -5641,10 +5641,10 @@
 
     // Locate the common ancestor layout object for the two layoutObjects.
     LayoutObject* ancestor = nearestCommonHoverAncestor(oldHoverObj, newHoverObj);
-    RefPtrWillBeRawPtr<Node> ancestorNode(ancestor ? ancestor->node() : 0);
+    RawPtr<Node> ancestorNode(ancestor ? ancestor->node() : 0);
 
-    WillBeHeapVector<RefPtrWillBeMember<Node>, 32> nodesToRemoveFromChain;
-    WillBeHeapVector<RefPtrWillBeMember<Node>, 32> nodesToAddToChain;
+    HeapVector<Member<Node>, 32> nodesToRemoveFromChain;
+    HeapVector<Member<Node>, 32> nodesToAddToChain;
 
     if (oldHoverObj != newHoverObj) {
         // If the old hovered node is not nil but it's layoutObject is, it was probably detached as part of the :hover style
@@ -5759,7 +5759,7 @@
     if (!frame() || !frame()->page())
         return;
 
-    WillBeHeapVector<RefPtrWillBeMember<Element>> associatedFormControls;
+    HeapVector<Member<Element>> associatedFormControls;
     copyToVector(m_associatedFormControls, associatedFormControls);
 
     frame()->page()->chromeClient().didAssociateFormControls(associatedFormControls, frame());
@@ -5875,7 +5875,7 @@
     // It's possible that no one except for the new wrapper owns this object at
     // this moment, so we have to prevent GC to collect this object until the
     // object gets associated with the wrapper.
-    RefPtrWillBeRawPtr<Document> protect(this);
+    RawPtr<Document> protect(this);
 
     ASSERT(!DOMDataStore::containsWrapper(this, isolate));
 
@@ -5944,9 +5944,9 @@
         frame()->loader().client()->didEnforceStrictMixedContentChecking();
 }
 
-PassOwnPtrWillBeRawPtr<OriginTrialContext> Document::createOriginTrialContext()
+RawPtr<OriginTrialContext> Document::createOriginTrialContext()
 {
-    return adoptPtrWillBeNoop(new DocumentOriginTrialContext(this));
+    return new DocumentOriginTrialContext(this);
 }
 
 LayoutViewItem Document::layoutViewItem() const
@@ -6012,7 +6012,7 @@
     visitor->trace(m_canvasFontCache);
     visitor->trace(m_intersectionObserverController);
     visitor->trace(m_intersectionObserverData);
-    WillBeHeapSupplementable<Document>::trace(visitor);
+    HeapSupplementable<Document>::trace(visitor);
 #endif
     TreeScope::trace(visitor);
     ContainerNode::trace(visitor);
@@ -6021,7 +6021,7 @@
     SecurityContext::trace(visitor);
 }
 
-template class CORE_TEMPLATE_EXPORT WillBeHeapSupplement<Document>;
+template class CORE_TEMPLATE_EXPORT HeapSupplement<Document>;
 
 } // namespace blink
 
diff --git a/third_party/WebKit/Source/core/dom/Document.h b/third_party/WebKit/Source/core/dom/Document.h
index 33329e4..3eddb35 100644
--- a/third_party/WebKit/Source/core/dom/Document.h
+++ b/third_party/WebKit/Source/core/dom/Document.h
@@ -213,13 +213,13 @@
 using DocumentClassFlags = unsigned char;
 
 class CORE_EXPORT Document : public ContainerNode, public TreeScope, public SecurityContext, public ExecutionContext
-    , public WillBeHeapSupplementable<Document>, public DocumentLifecycleNotifier {
+    , public HeapSupplementable<Document>, public DocumentLifecycleNotifier {
     DEFINE_WRAPPERTYPEINFO();
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(Document);
+    USING_GARBAGE_COLLECTED_MIXIN(Document);
 public:
-    static PassRefPtrWillBeRawPtr<Document> create(const DocumentInit& initializer = DocumentInit())
+    static RawPtr<Document> create(const DocumentInit& initializer = DocumentInit())
     {
-        return adoptRefWillBeNoop(new Document(initializer));
+        return new Document(initializer);
     }
     ~Document() override;
 
@@ -268,7 +268,7 @@
 
     String outgoingReferrer() const;
 
-    void setDoctype(PassRefPtrWillBeRawPtr<DocumentType>);
+    void setDoctype(RawPtr<DocumentType>);
     DocumentType* doctype() const { return m_docType.get(); }
 
     DOMImplementation& implementation();
@@ -283,21 +283,21 @@
 
     Location* location() const;
 
-    PassRefPtrWillBeRawPtr<Element> createElement(const AtomicString& name, ExceptionState&);
-    PassRefPtrWillBeRawPtr<DocumentFragment> createDocumentFragment();
-    PassRefPtrWillBeRawPtr<Text> createTextNode(const String& data);
-    PassRefPtrWillBeRawPtr<Comment> createComment(const String& data);
-    PassRefPtrWillBeRawPtr<CDATASection> createCDATASection(const String& data, ExceptionState&);
-    PassRefPtrWillBeRawPtr<ProcessingInstruction> createProcessingInstruction(const String& target, const String& data, ExceptionState&);
-    PassRefPtrWillBeRawPtr<Attr> createAttribute(const AtomicString& name, ExceptionState&);
-    PassRefPtrWillBeRawPtr<Attr> createAttributeNS(const AtomicString& namespaceURI, const AtomicString& qualifiedName, ExceptionState&, bool shouldIgnoreNamespaceChecks = false);
-    PassRefPtrWillBeRawPtr<Node> importNode(Node* importedNode, bool deep, ExceptionState&);
-    PassRefPtrWillBeRawPtr<Element> createElementNS(const AtomicString& namespaceURI, const AtomicString& qualifiedName, ExceptionState&);
-    PassRefPtrWillBeRawPtr<Element> createElement(const QualifiedName&, bool createdByParser);
+    RawPtr<Element> createElement(const AtomicString& name, ExceptionState&);
+    RawPtr<DocumentFragment> createDocumentFragment();
+    RawPtr<Text> createTextNode(const String& data);
+    RawPtr<Comment> createComment(const String& data);
+    RawPtr<CDATASection> createCDATASection(const String& data, ExceptionState&);
+    RawPtr<ProcessingInstruction> createProcessingInstruction(const String& target, const String& data, ExceptionState&);
+    RawPtr<Attr> createAttribute(const AtomicString& name, ExceptionState&);
+    RawPtr<Attr> createAttributeNS(const AtomicString& namespaceURI, const AtomicString& qualifiedName, ExceptionState&, bool shouldIgnoreNamespaceChecks = false);
+    RawPtr<Node> importNode(Node* importedNode, bool deep, ExceptionState&);
+    RawPtr<Element> createElementNS(const AtomicString& namespaceURI, const AtomicString& qualifiedName, ExceptionState&);
+    RawPtr<Element> createElement(const QualifiedName&, bool createdByParser);
 
     Element* elementFromPoint(int x, int y) const;
-    WillBeHeapVector<RawPtrWillBeMember<Element>> elementsFromPoint(int x, int y) const;
-    PassRefPtrWillBeRawPtr<Range> caretRangeFromPoint(int x, int y);
+    HeapVector<Member<Element>> elementsFromPoint(int x, int y) const;
+    RawPtr<Range> caretRangeFromPoint(int x, int y);
     Element* scrollingElement();
 
     String readyState() const;
@@ -335,20 +335,20 @@
     bool hidden() const;
     void didChangeVisibilityState();
 
-    PassRefPtrWillBeRawPtr<Node> adoptNode(PassRefPtrWillBeRawPtr<Node> source, ExceptionState&);
+    RawPtr<Node> adoptNode(RawPtr<Node> source, ExceptionState&);
 
-    PassRefPtrWillBeRawPtr<HTMLCollection> images();
-    PassRefPtrWillBeRawPtr<HTMLCollection> embeds();
-    PassRefPtrWillBeRawPtr<HTMLCollection> applets();
-    PassRefPtrWillBeRawPtr<HTMLCollection> links();
-    PassRefPtrWillBeRawPtr<HTMLCollection> forms();
-    PassRefPtrWillBeRawPtr<HTMLCollection> anchors();
-    PassRefPtrWillBeRawPtr<HTMLCollection> scripts();
-    PassRefPtrWillBeRawPtr<HTMLAllCollection> allForBinding();
-    PassRefPtrWillBeRawPtr<HTMLAllCollection> all();
+    RawPtr<HTMLCollection> images();
+    RawPtr<HTMLCollection> embeds();
+    RawPtr<HTMLCollection> applets();
+    RawPtr<HTMLCollection> links();
+    RawPtr<HTMLCollection> forms();
+    RawPtr<HTMLCollection> anchors();
+    RawPtr<HTMLCollection> scripts();
+    RawPtr<HTMLAllCollection> allForBinding();
+    RawPtr<HTMLAllCollection> all();
 
-    PassRefPtrWillBeRawPtr<HTMLCollection> windowNamedItems(const AtomicString& name);
-    PassRefPtrWillBeRawPtr<DocumentNameCollection> documentNamedItems(const AtomicString& name);
+    RawPtr<HTMLCollection> windowNamedItems(const AtomicString& name);
+    RawPtr<DocumentNameCollection> documentNamedItems(const AtomicString& name);
 
     bool isHTMLDocument() const { return m_documentClasses & HTMLDocumentClass; }
     bool isXHTMLDocument() const { return m_documentClasses & XHTMLDocumentClass; }
@@ -406,13 +406,13 @@
 
     float devicePixelRatio() const;
 
-    PassRefPtrWillBeRawPtr<Range> createRange();
+    RawPtr<Range> createRange();
 
-    PassRefPtrWillBeRawPtr<NodeIterator> createNodeIterator(Node* root, unsigned whatToShow, PassRefPtrWillBeRawPtr<NodeFilter>);
-    PassRefPtrWillBeRawPtr<TreeWalker> createTreeWalker(Node* root, unsigned whatToShow, PassRefPtrWillBeRawPtr<NodeFilter>);
+    RawPtr<NodeIterator> createNodeIterator(Node* root, unsigned whatToShow, RawPtr<NodeFilter>);
+    RawPtr<TreeWalker> createTreeWalker(Node* root, unsigned whatToShow, RawPtr<NodeFilter>);
 
     // Special support for editing
-    PassRefPtrWillBeRawPtr<Text> createEditingTextNode(const String&);
+    RawPtr<Text> createEditingTextNode(const String&);
 
     void setupFontBuilder(ComputedStyle& documentStyle);
 
@@ -470,7 +470,7 @@
     void open(Document* enteredDocument, ExceptionState&);
     // This is used internally and does not handle exceptions.
     void open();
-    PassRefPtrWillBeRawPtr<DocumentParser> implicitOpen(ParserSynchronizationPolicy);
+    RawPtr<DocumentParser> implicitOpen(ParserSynchronizationPolicy);
 
     // This is the DOM API document.close()
     void close(ExceptionState&);
@@ -532,7 +532,7 @@
 
     CSSStyleSheet& elementSheet();
 
-    virtual PassRefPtrWillBeRawPtr<DocumentParser> createParser();
+    virtual RawPtr<DocumentParser> createParser();
     DocumentParser* parser() const { return m_parser.get(); }
     ScriptableDocumentParser* scriptableDocumentParser() const;
 
@@ -590,7 +590,7 @@
     String selectedStylesheetSet() const;
     void setSelectedStylesheetSet(const String&);
 
-    bool setFocusedElement(PassRefPtrWillBeRawPtr<Element>, const FocusParams&);
+    bool setFocusedElement(RawPtr<Element>, const FocusParams&);
     void clearFocusedElement();
     Element* focusedElement() const { return m_focusedElement.get(); }
     UserActionElementSet& userActionElements()  { return m_userActionElements; }
@@ -601,7 +601,7 @@
     void setSequentialFocusNavigationStartingPoint(Node*);
     Element* sequentialFocusNavigationStartingPoint(WebFocusType) const;
 
-    void setActiveHoverElement(PassRefPtrWillBeRawPtr<Element>);
+    void setActiveHoverElement(RawPtr<Element>);
     Element* activeHoverElement() const { return m_activeHoverElement.get(); }
 
     Node* hoverNode() const { return m_hoverNode.get(); }
@@ -650,11 +650,11 @@
     LocalDOMWindow* domWindow() const { return m_domWindow; }
 
     // Helper functions for forwarding LocalDOMWindow event related tasks to the LocalDOMWindow if it exists.
-    void setWindowAttributeEventListener(const AtomicString& eventType, PassRefPtrWillBeRawPtr<EventListener>);
+    void setWindowAttributeEventListener(const AtomicString& eventType, RawPtr<EventListener>);
     EventListener* getWindowAttributeEventListener(const AtomicString& eventType);
 
     static void registerEventFactory(PassOwnPtr<EventFactoryBase>);
-    static PassRefPtrWillBeRawPtr<Event> createEvent(ExecutionContext*, const String& eventType, ExceptionState&);
+    static RawPtr<Event> createEvent(ExecutionContext*, const String& eventType, ExceptionState&);
 
     // keep track of what types of event listeners are registered, so we don't
     // dispatch events unnecessarily
@@ -683,7 +683,7 @@
     bool hasMutationObservers() const { return m_mutationObserverTypes; }
     void addMutationObserverTypes(MutationObserverOptions types) { m_mutationObserverTypes |= types; }
 
-    WeakPtrWillBeRawPtr<Document> createWeakPtr();
+    RawPtr<Document> createWeakPtr();
 
     IntersectionObserverController* intersectionObserverController();
     IntersectionObserverController& ensureIntersectionObserverController();
@@ -757,7 +757,7 @@
     // That is, the first body child of the document element.
     HTMLBodyElement* firstBodyElement() const;
 
-    void setBody(PassRefPtrWillBeRawPtr<HTMLElement>, ExceptionState&);
+    void setBody(RawPtr<HTMLElement>, ExceptionState&);
 
     HTMLHeadElement* head() const;
 
@@ -786,12 +786,12 @@
 
     Document* parentDocument() const;
     Document& topDocument() const;
-    WeakPtrWillBeRawPtr<Document> contextDocument();
+    RawPtr<Document> contextDocument();
 
     ScriptRunner* scriptRunner() { return m_scriptRunner.get(); }
 
     HTMLScriptElement* currentScript() const { return !m_currentScriptStack.isEmpty() ? m_currentScriptStack.last().get() : nullptr; }
-    void pushCurrentScript(PassRefPtrWillBeRawPtr<HTMLScriptElement>);
+    void pushCurrentScript(RawPtr<HTMLScriptElement>);
     void popCurrentScript();
 
     void setTransformSource(PassOwnPtr<TransformSource>);
@@ -857,7 +857,7 @@
     const SVGDocumentExtensions* svgExtensions();
     SVGDocumentExtensions& accessSVGExtensions();
 
-    void initContentSecurityPolicy(PassRefPtrWillBeRawPtr<ContentSecurityPolicy> = nullptr);
+    void initContentSecurityPolicy(RawPtr<ContentSecurityPolicy> = nullptr);
 
     bool isSecureTransitionTo(const KURL&) const;
 
@@ -897,10 +897,10 @@
 
     void enqueueResizeEvent();
     void enqueueScrollEventForNode(Node*);
-    void enqueueAnimationFrameEvent(PassRefPtrWillBeRawPtr<Event>);
+    void enqueueAnimationFrameEvent(RawPtr<Event>);
     // Only one event for a target/event type combination will be dispatched per frame.
-    void enqueueUniqueAnimationFrameEvent(PassRefPtrWillBeRawPtr<Event>);
-    void enqueueMediaQueryChangeListeners(WillBeHeapVector<RefPtrWillBeMember<MediaQueryListListener>>&);
+    void enqueueUniqueAnimationFrameEvent(RawPtr<Event>);
+    void enqueueMediaQueryChangeListeners(HeapVector<Member<MediaQueryListListener>>&);
 
     void dispatchEventsForPrinting();
 
@@ -917,8 +917,8 @@
     bool isDelayingLoadEvent();
     void loadPluginsSoon();
 
-    PassRefPtrWillBeRawPtr<Touch> createTouch(DOMWindow*, EventTarget*, int identifier, double pageX, double pageY, double screenX, double screenY, double radiusX, double radiusY, float rotationAngle, float force) const;
-    PassRefPtrWillBeRawPtr<TouchList> createTouchList(WillBeHeapVector<RefPtrWillBeMember<Touch>>&) const;
+    RawPtr<Touch> createTouch(DOMWindow*, EventTarget*, int identifier, double pageX, double pageY, double screenX, double screenY, double radiusX, double radiusY, float rotationAngle, float force) const;
+    RawPtr<TouchList> createTouchList(HeapVector<Member<Touch>>&) const;
 
     const DocumentTiming& timing() const { return m_documentTiming; }
 
@@ -938,8 +938,8 @@
 
     TextAutosizer* textAutosizer();
 
-    PassRefPtrWillBeRawPtr<Element> createElement(const AtomicString& localName, const AtomicString& typeExtension, ExceptionState&);
-    PassRefPtrWillBeRawPtr<Element> createElementNS(const AtomicString& namespaceURI, const AtomicString& qualifiedName, const AtomicString& typeExtension, ExceptionState&);
+    RawPtr<Element> createElement(const AtomicString& localName, const AtomicString& typeExtension, ExceptionState&);
+    RawPtr<Element> createElementNS(const AtomicString& namespaceURI, const AtomicString& qualifiedName, const AtomicString& typeExtension, ExceptionState&);
     ScriptValue registerElement(ScriptState*, const AtomicString& name, const ElementRegistrationOptions&, ExceptionState&, CustomElement::NameSet validNames = CustomElement::StandardNames);
     CustomElementRegistrationContext* registrationContext() { return m_registrationContext.get(); }
     CustomElementMicrotaskRunQueue* customElementMicrotaskRunQueue();
@@ -973,7 +973,7 @@
 
     void addToTopLayer(Element*, const Element* before = nullptr);
     void removeFromTopLayer(Element*);
-    const WillBeHeapVector<RefPtrWillBeMember<Element>>& topLayerElements() const { return m_topLayerElements; }
+    const HeapVector<Member<Element>>& topLayerElements() const { return m_topLayerElements; }
     HTMLDialogElement* activeModalDialog() const;
 
     // A non-null m_templateDocumentHost implies that |this| was created by ensureTemplateDocument().
@@ -986,7 +986,7 @@
     void didAssociateFormControl(Element*);
     void removeFormAssociation(Element*);
 
-    void addConsoleMessage(PassRefPtrWillBeRawPtr<ConsoleMessage>) final;
+    void addConsoleMessage(RawPtr<ConsoleMessage>) final;
 
     LocalDOMWindow* executingWindow() final;
     LocalFrame* executingFrame();
@@ -1051,7 +1051,7 @@
     }
     int nodeCount() const { return m_nodeCount; }
 
-    using WeakDocumentSet = WillBeHeapHashSet<RawPtrWillBeWeakMember<Document>>;
+    using WeakDocumentSet = HeapHashSet<WeakMember<Document>>;
     static WeakDocumentSet& liveDocumentSet();
 
     WebTaskRunner* loadingTaskRunner() const;
@@ -1070,9 +1070,9 @@
     void dispose() override;
 #endif
 
-    virtual PassRefPtrWillBeRawPtr<Document> cloneDocumentWithoutChildren();
+    virtual RawPtr<Document> cloneDocumentWithoutChildren();
 
-    bool importContainerNodeChildren(ContainerNode* oldContainerNode, PassRefPtrWillBeRawPtr<ContainerNode> newContainerNode, ExceptionState&);
+    bool importContainerNodeChildren(ContainerNode* oldContainerNode, RawPtr<ContainerNode> newContainerNode, ExceptionState&);
     void lockCompatibilityMode() { m_compatibilityModeLocked = true; }
     ParserSynchronizationPolicy getParserSynchronizationPolicy() const { return m_parserSyncPolicy; }
 
@@ -1118,7 +1118,7 @@
     String nodeName() const final;
     NodeType getNodeType() const final;
     bool childTypeAllowed(NodeType) const final;
-    PassRefPtrWillBeRawPtr<Node> cloneNode(bool deep) final;
+    RawPtr<Node> cloneNode(bool deep) final;
     void cloneDataFromDocument(const Document&);
     bool isSecureContextImpl(String* errorMessage, const SecureContextCheck priviligeContextCheck) const;
 
@@ -1152,7 +1152,7 @@
     bool haveStylesheetsLoaded() const;
     void styleResolverMayHaveChanged();
 
-    void setHoverNode(PassRefPtrWillBeRawPtr<Node>);
+    void setHoverNode(RawPtr<Node>);
 
     using EventFactorySet = HashSet<OwnPtr<EventFactoryBase>>;
     static EventFactorySet& eventFactories();
@@ -1161,7 +1161,7 @@
 
     const OriginAccessEntry& accessEntryFromURL();
 
-    PassOwnPtrWillBeRawPtr<OriginTrialContext> createOriginTrialContext() override;
+    RawPtr<OriginTrialContext> createOriginTrialContext() override;
 
     DocumentLifecycle m_lifecycle;
 
@@ -1173,16 +1173,16 @@
     // do eventually load.
     PendingSheetLayout m_pendingSheetLayout;
 
-    RawPtrWillBeMember<LocalFrame> m_frame;
-    RawPtrWillBeMember<LocalDOMWindow> m_domWindow;
+    Member<LocalFrame> m_frame;
+    Member<LocalDOMWindow> m_domWindow;
     // FIXME: oilpan: when we get rid of the transition types change the
     // HTMLImportsController to not be a DocumentSupplement since it is
     // redundant with oilpan.
-    RawPtrWillBeMember<HTMLImportsController> m_importsController;
+    Member<HTMLImportsController> m_importsController;
 
-    PersistentWillBeMember<ResourceFetcher> m_fetcher;
-    RefPtrWillBeMember<DocumentParser> m_parser;
-    RefPtrWillBeMember<ContextFeatures> m_contextFeatures;
+    Member<ResourceFetcher> m_fetcher;
+    Member<DocumentParser> m_parser;
+    Member<ContextFeatures> m_contextFeatures;
 
     bool m_wellFormed;
 
@@ -1199,10 +1199,10 @@
     // Mime-type of the document in case it was cloned or created by XHR.
     AtomicString m_mimeType;
 
-    RefPtrWillBeMember<DocumentType> m_docType;
-    OwnPtrWillBeMember<DOMImplementation> m_implementation;
+    Member<DocumentType> m_docType;
+    Member<DOMImplementation> m_implementation;
 
-    RefPtrWillBeMember<CSSStyleSheet> m_elemSheet;
+    Member<CSSStyleSheet> m_elemSheet;
 
     bool m_printing;
     bool m_wasPrinting;
@@ -1215,12 +1215,12 @@
 
     bool m_hasAutofocused;
     Timer<Document> m_clearFocusedElementTimer;
-    RefPtrWillBeMember<Element> m_autofocusElement;
-    RefPtrWillBeMember<Element> m_focusedElement;
-    RefPtrWillBeMember<Range> m_sequentialFocusNavigationStartingPoint;
-    RefPtrWillBeMember<Node> m_hoverNode;
-    RefPtrWillBeMember<Element> m_activeHoverElement;
-    RefPtrWillBeMember<Element> m_documentElement;
+    Member<Element> m_autofocusElement;
+    Member<Element> m_focusedElement;
+    Member<Range> m_sequentialFocusNavigationStartingPoint;
+    Member<Node> m_hoverNode;
+    Member<Element> m_activeHoverElement;
+    Member<Element> m_documentElement;
     UserActionElementSet m_userActionElements;
 
     uint64_t m_domTreeVersion;
@@ -1228,21 +1228,21 @@
 
     uint64_t m_styleVersion;
 
-    WillBeHeapHashSet<RawPtrWillBeWeakMember<NodeIterator>> m_nodeIterators;
-    using AttachedRangeSet = WillBeHeapHashSet<RawPtrWillBeWeakMember<Range>>;
+    HeapHashSet<WeakMember<NodeIterator>> m_nodeIterators;
+    using AttachedRangeSet = HeapHashSet<WeakMember<Range>>;
     AttachedRangeSet m_ranges;
 
     unsigned short m_listenerTypes;
 
     MutationObserverOptions m_mutationObserverTypes;
 
-    OwnPtrWillBeMember<StyleEngine> m_styleEngine;
-    RefPtrWillBeMember<StyleSheetList> m_styleSheetList;
+    Member<StyleEngine> m_styleEngine;
+    Member<StyleSheetList> m_styleSheetList;
 
-    OwnPtrWillBeMember<FormController> m_formController;
+    Member<FormController> m_formController;
 
     TextLinkColors m_textLinkColors;
-    const OwnPtrWillBeMember<VisitedLinkState> m_visitedLinkState;
+    const Member<VisitedLinkState> m_visitedLinkState;
 
     bool m_visuallyOrdered;
     ReadyState m_readyState;
@@ -1260,22 +1260,22 @@
 
     String m_title;
     String m_rawTitle;
-    RefPtrWillBeMember<Element> m_titleElement;
+    Member<Element> m_titleElement;
 
-    PersistentWillBeMember<AXObjectCache> m_axObjectCache;
-    OwnPtrWillBeMember<DocumentMarkerController> m_markers;
+    Member<AXObjectCache> m_axObjectCache;
+    Member<DocumentMarkerController> m_markers;
 
     Timer<Document> m_updateFocusAppearanceTimer;
 
-    RawPtrWillBeMember<Element> m_cssTarget;
+    Member<Element> m_cssTarget;
 
     LoadEventProgress m_loadEventProgress;
 
     double m_startTime;
 
-    OwnPtrWillBeMember<ScriptRunner> m_scriptRunner;
+    Member<ScriptRunner> m_scriptRunner;
 
-    WillBeHeapVector<RefPtrWillBeMember<HTMLScriptElement>> m_currentScriptStack;
+    HeapVector<Member<HTMLScriptElement>> m_currentScriptStack;
 
     OwnPtr<TransformSource> m_transformSource;
 
@@ -1291,7 +1291,7 @@
     bool m_designMode;
     bool m_isRunningExecCommand;
 
-    WillBeHeapHashSet<RawPtrWillBeWeakMember<const LiveNodeListBase>> m_listsInvalidatedAtDocument;
+    HeapHashSet<WeakMember<const LiveNodeListBase>> m_listsInvalidatedAtDocument;
 #if ENABLE(OILPAN)
     // Oilpan keeps track of all registered NodeLists.
     //
@@ -1302,7 +1302,7 @@
     unsigned m_nodeListCounts[numNodeListInvalidationTypes];
 #endif
 
-    OwnPtrWillBeMember<SVGDocumentExtensions> m_svgExtensions;
+    Member<SVGDocumentExtensions> m_svgExtensions;
 
     Vector<AnnotatedRegionValue> m_annotatedRegions;
     bool m_hasAnnotatedRegions;
@@ -1332,11 +1332,11 @@
 #if !ENABLE(OILPAN)
     WeakPtrFactory<Document> m_weakFactory;
 #endif
-    WeakPtrWillBeWeakMember<Document> m_contextDocument;
+    WeakMember<Document> m_contextDocument;
 
     bool m_hasFullscreenSupplement; // For early return in Fullscreen::fromIfExists()
 
-    WillBeHeapVector<RefPtrWillBeMember<Element>> m_topLayerElements;
+    HeapVector<Member<Element>> m_topLayerElements;
 
     int m_loadEventDelayCount;
     Timer<Document> m_loadEventDelayTimer;
@@ -1349,46 +1349,46 @@
     ReferrerPolicy m_referrerPolicy;
 
     DocumentTiming m_documentTiming;
-    RefPtrWillBeMember<MediaQueryMatcher> m_mediaQueryMatcher;
+    Member<MediaQueryMatcher> m_mediaQueryMatcher;
     bool m_writeRecursionIsTooDeep;
     unsigned m_writeRecursionDepth;
 
-    RefPtrWillBeMember<ScriptedAnimationController> m_scriptedAnimationController;
-    RefPtrWillBeMember<ScriptedIdleTaskController> m_scriptedIdleTaskController;
-    OwnPtrWillBeMember<MainThreadTaskRunner> m_taskRunner;
-    OwnPtrWillBeMember<TextAutosizer> m_textAutosizer;
+    Member<ScriptedAnimationController> m_scriptedAnimationController;
+    Member<ScriptedIdleTaskController> m_scriptedIdleTaskController;
+    Member<MainThreadTaskRunner> m_taskRunner;
+    Member<TextAutosizer> m_textAutosizer;
 
-    RefPtrWillBeMember<CustomElementRegistrationContext> m_registrationContext;
-    RefPtrWillBeMember<CustomElementMicrotaskRunQueue> m_customElementMicrotaskRunQueue;
+    Member<CustomElementRegistrationContext> m_registrationContext;
+    Member<CustomElementMicrotaskRunQueue> m_customElementMicrotaskRunQueue;
 
     void elementDataCacheClearTimerFired(Timer<Document>*);
     Timer<Document> m_elementDataCacheClearTimer;
 
-    OwnPtrWillBeMember<ElementDataCache> m_elementDataCache;
+    Member<ElementDataCache> m_elementDataCache;
 
     using LocaleIdentifierToLocaleMap = HashMap<AtomicString, OwnPtr<Locale>>;
     LocaleIdentifierToLocaleMap m_localeCache;
 
-    PersistentWillBeMember<AnimationTimeline> m_timeline;
-    PersistentWillBeMember<CompositorPendingAnimations> m_compositorPendingAnimations;
+    Member<AnimationTimeline> m_timeline;
+    Member<CompositorPendingAnimations> m_compositorPendingAnimations;
 
-    RefPtrWillBeMember<Document> m_templateDocument;
+    Member<Document> m_templateDocument;
     // With Oilpan the templateDocument and the templateDocumentHost
     // live and die together. Without Oilpan, the templateDocumentHost
     // is a manually managed backpointer from m_templateDocument.
-    RawPtrWillBeMember<Document> m_templateDocumentHost;
+    Member<Document> m_templateDocumentHost;
 
     Timer<Document> m_didAssociateFormControlsTimer;
-    WillBeHeapHashSet<RefPtrWillBeMember<Element>> m_associatedFormControls;
+    HeapHashSet<Member<Element>> m_associatedFormControls;
 
-    WillBeHeapHashSet<RawPtrWillBeMember<SVGUseElement>> m_useElementsNeedingUpdate;
-    WillBeHeapHashSet<RawPtrWillBeMember<Element>> m_layerUpdateSVGFilterElements;
+    HeapHashSet<Member<SVGUseElement>> m_useElementsNeedingUpdate;
+    HeapHashSet<Member<Element>> m_layerUpdateSVGFilterElements;
 
     DOMTimerCoordinator m_timers;
 
     bool m_hasViewportUnits;
 
-    using DocumentVisibilityObserverSet = WillBeHeapHashSet<RawPtrWillBeWeakMember<DocumentVisibilityObserver>>;
+    using DocumentVisibilityObserverSet = HeapHashSet<WeakMember<DocumentVisibilityObserver>>;
     DocumentVisibilityObserverSet m_visibilityObservers;
 
     ParserSynchronizationPolicy m_parserSyncPolicy;
@@ -1397,15 +1397,15 @@
 
     ClientHintsPreferences m_clientHintsPreferences;
 
-    PersistentWillBeMember<CanvasFontCache> m_canvasFontCache;
+    Member<CanvasFontCache> m_canvasFontCache;
 
-    PersistentWillBeMember<IntersectionObserverController> m_intersectionObserverController;
-    PersistentWillBeMember<NodeIntersectionObserverData> m_intersectionObserverData;
+    Member<IntersectionObserverController> m_intersectionObserverController;
+    Member<NodeIntersectionObserverData> m_intersectionObserverData;
 
     int m_nodeCount;
 };
 
-extern template class CORE_EXTERN_TEMPLATE_EXPORT WillBeHeapSupplement<Document>;
+extern template class CORE_EXTERN_TEMPLATE_EXPORT HeapSupplement<Document>;
 
 inline bool Document::shouldOverrideLegacyDescription(ViewportDescription::Type origin)
 {
diff --git a/third_party/WebKit/Source/core/dom/DocumentFragment.cpp b/third_party/WebKit/Source/core/dom/DocumentFragment.cpp
index fd008ab..e87ecaa 100644
--- a/third_party/WebKit/Source/core/dom/DocumentFragment.cpp
+++ b/third_party/WebKit/Source/core/dom/DocumentFragment.cpp
@@ -33,9 +33,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<DocumentFragment> DocumentFragment::create(Document& document)
+RawPtr<DocumentFragment> DocumentFragment::create(Document& document)
 {
-    return adoptRefWillBeNoop(new DocumentFragment(&document, Node::CreateDocumentFragment));
+    return new DocumentFragment(&document, Node::CreateDocumentFragment);
 }
 
 String DocumentFragment::nodeName() const
@@ -62,9 +62,9 @@
     }
 }
 
-PassRefPtrWillBeRawPtr<Node> DocumentFragment::cloneNode(bool deep)
+RawPtr<Node> DocumentFragment::cloneNode(bool deep)
 {
-    RefPtrWillBeRawPtr<DocumentFragment> clone = create(document());
+    RawPtr<DocumentFragment> clone = create(document());
     if (deep)
         cloneChildNodes(clone.get());
     return clone.release();
diff --git a/third_party/WebKit/Source/core/dom/DocumentFragment.h b/third_party/WebKit/Source/core/dom/DocumentFragment.h
index cc36c67..e8816947 100644
--- a/third_party/WebKit/Source/core/dom/DocumentFragment.h
+++ b/third_party/WebKit/Source/core/dom/DocumentFragment.h
@@ -33,7 +33,7 @@
 class CORE_EXPORT DocumentFragment : public ContainerNode {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<DocumentFragment> create(Document&);
+    static RawPtr<DocumentFragment> create(Document&);
 
     void parseHTML(const String&, Element* contextElement, ParserContentPolicy = AllowScriptingContent);
     bool parseXML(const String&, Element* contextElement, ParserContentPolicy = AllowScriptingContent);
@@ -47,7 +47,7 @@
 
 private:
     NodeType getNodeType() const final;
-    PassRefPtrWillBeRawPtr<Node> cloneNode(bool deep) override;
+    RawPtr<Node> cloneNode(bool deep) override;
     bool childTypeAllowed(NodeType) const override;
 
     bool isDocumentFragment() const = delete; // This will catch anyone doing an unnecessary check.
diff --git a/third_party/WebKit/Source/core/dom/DocumentInit.cpp b/third_party/WebKit/Source/core/dom/DocumentInit.cpp
index ddd42dbf4..0d55b24 100644
--- a/third_party/WebKit/Source/core/dom/DocumentInit.cpp
+++ b/third_party/WebKit/Source/core/dom/DocumentInit.cpp
@@ -49,12 +49,12 @@
     return &ownerElement->document();
 }
 
-DocumentInit::DocumentInit(const KURL& url, LocalFrame* frame, WeakPtrWillBeRawPtr<Document> contextDocument, HTMLImportsController* importsController)
+DocumentInit::DocumentInit(const KURL& url, LocalFrame* frame, RawPtr<Document> contextDocument, HTMLImportsController* importsController)
     : DocumentInit(nullptr, url, frame, contextDocument, importsController)
 {
 }
 
-DocumentInit::DocumentInit(PassRefPtrWillBeRawPtr<Document> ownerDocument, const KURL& url, LocalFrame* frame, WeakPtrWillBeRawPtr<Document> contextDocument, HTMLImportsController* importsController)
+DocumentInit::DocumentInit(RawPtr<Document> ownerDocument, const KURL& url, LocalFrame* frame, RawPtr<Document> contextDocument, HTMLImportsController* importsController)
     : m_url(url)
     , m_frame(frame)
     , m_parent(parentDocument(frame))
@@ -162,7 +162,7 @@
     return *this;
 }
 
-PassRefPtrWillBeRawPtr<CustomElementRegistrationContext> DocumentInit::registrationContext(Document* document) const
+RawPtr<CustomElementRegistrationContext> DocumentInit::registrationContext(Document* document) const
 {
     if (!document->isHTMLDocument() && !document->isXHTMLDocument())
         return nullptr;
@@ -173,12 +173,12 @@
     return m_registrationContext.get();
 }
 
-WeakPtrWillBeRawPtr<Document> DocumentInit::contextDocument() const
+RawPtr<Document> DocumentInit::contextDocument() const
 {
     return m_contextDocument;
 }
 
-DocumentInit DocumentInit::fromContext(WeakPtrWillBeRawPtr<Document> contextDocument, const KURL& url)
+DocumentInit DocumentInit::fromContext(RawPtr<Document> contextDocument, const KURL& url)
 {
     return DocumentInit(url, 0, contextDocument, 0);
 }
diff --git a/third_party/WebKit/Source/core/dom/DocumentInit.h b/third_party/WebKit/Source/core/dom/DocumentInit.h
index 17f4910..36d21d7 100644
--- a/third_party/WebKit/Source/core/dom/DocumentInit.h
+++ b/third_party/WebKit/Source/core/dom/DocumentInit.h
@@ -48,8 +48,8 @@
 class CORE_EXPORT DocumentInit final {
     STACK_ALLOCATED();
 public:
-    DocumentInit(const KURL& = KURL(), LocalFrame* = nullptr, WeakPtrWillBeRawPtr<Document> contextDocument = nullptr, HTMLImportsController* = nullptr);
-    DocumentInit(PassRefPtrWillBeRawPtr<Document> ownerDocument, const KURL&, LocalFrame*, WeakPtrWillBeRawPtr<Document> contextDocument = nullptr, HTMLImportsController* = nullptr);
+    DocumentInit(const KURL& = KURL(), LocalFrame* = nullptr, RawPtr<Document> contextDocument = nullptr, HTMLImportsController* = nullptr);
+    DocumentInit(RawPtr<Document> ownerDocument, const KURL&, LocalFrame*, RawPtr<Document> contextDocument = nullptr, HTMLImportsController* = nullptr);
     DocumentInit(const DocumentInit&);
     ~DocumentInit();
 
@@ -76,21 +76,21 @@
 
     DocumentInit& withRegistrationContext(CustomElementRegistrationContext*);
     DocumentInit& withNewRegistrationContext();
-    PassRefPtrWillBeRawPtr<CustomElementRegistrationContext> registrationContext(Document*) const;
-    WeakPtrWillBeRawPtr<Document> contextDocument() const;
+    RawPtr<CustomElementRegistrationContext> registrationContext(Document*) const;
+    RawPtr<Document> contextDocument() const;
 
-    static DocumentInit fromContext(WeakPtrWillBeRawPtr<Document> contextDocument, const KURL& = KURL());
+    static DocumentInit fromContext(RawPtr<Document> contextDocument, const KURL& = KURL());
 
 private:
     LocalFrame* frameForSecurityContext() const;
 
     KURL m_url;
-    RawPtrWillBeMember<LocalFrame> m_frame;
-    RefPtrWillBeMember<Document> m_parent;
-    RefPtrWillBeMember<Document> m_owner;
-    WeakPtrWillBeMember<Document> m_contextDocument;
-    RawPtrWillBeMember<HTMLImportsController> m_importsController;
-    RefPtrWillBeMember<CustomElementRegistrationContext> m_registrationContext;
+    Member<LocalFrame> m_frame;
+    Member<Document> m_parent;
+    Member<Document> m_owner;
+    Member<Document> m_contextDocument;
+    Member<HTMLImportsController> m_importsController;
+    Member<CustomElementRegistrationContext> m_registrationContext;
     bool m_createNewRegistrationContext;
 
     // In some rare cases, we'll re-use a LocalDOMWindow for a new Document. For example,
diff --git a/third_party/WebKit/Source/core/dom/DocumentOrShadowRoot.h b/third_party/WebKit/Source/core/dom/DocumentOrShadowRoot.h
index f9ff819..1f4a04b 100644
--- a/third_party/WebKit/Source/core/dom/DocumentOrShadowRoot.h
+++ b/third_party/WebKit/Source/core/dom/DocumentOrShadowRoot.h
@@ -42,7 +42,7 @@
         return treeScope.elementFromPoint(x, y);
     }
 
-    static WillBeHeapVector<RawPtrWillBeMember<Element>> elementsFromPoint(TreeScope& treeScope, int x, int y)
+    static HeapVector<Member<Element>> elementsFromPoint(TreeScope& treeScope, int x, int y)
     {
         return treeScope.elementsFromPoint(x, y);
     }
diff --git a/third_party/WebKit/Source/core/dom/DocumentOrderedList.h b/third_party/WebKit/Source/core/dom/DocumentOrderedList.h
index a39792b..225d8263 100644
--- a/third_party/WebKit/Source/core/dom/DocumentOrderedList.h
+++ b/third_party/WebKit/Source/core/dom/DocumentOrderedList.h
@@ -47,8 +47,8 @@
     void clear() { m_nodes.clear(); }
     size_t size() const { return m_nodes.size(); }
 
-    using iterator = WillBeHeapListHashSet<RawPtrWillBeMember<Node>, 32>::iterator;
-    using const_reverse_iterator = WillBeHeapListHashSet<RawPtrWillBeMember<Node>, 32>::const_reverse_iterator;
+    using iterator = HeapListHashSet<Member<Node>, 32>::iterator;
+    using const_reverse_iterator = HeapListHashSet<Member<Node>, 32>::const_reverse_iterator;
 
     iterator begin() { return m_nodes.begin(); }
     iterator end() { return m_nodes.end(); }
@@ -59,7 +59,7 @@
     DECLARE_TRACE();
 
 private:
-    WillBeHeapListHashSet<RawPtrWillBeMember<Node>, 32> m_nodes;
+    HeapListHashSet<Member<Node>, 32> m_nodes;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/dom/DocumentOrderedMap.cpp b/third_party/WebKit/Source/core/dom/DocumentOrderedMap.cpp
index 0d310c4..aca331d 100644
--- a/third_party/WebKit/Source/core/dom/DocumentOrderedMap.cpp
+++ b/third_party/WebKit/Source/core/dom/DocumentOrderedMap.cpp
@@ -41,7 +41,7 @@
 using namespace HTMLNames;
 
 
-PassOwnPtrWillBeRawPtr<DocumentOrderedMap> DocumentOrderedMap::create()
+RawPtr<DocumentOrderedMap> DocumentOrderedMap::create()
 {
     return adoptPtrWillBeNoop(new DocumentOrderedMap);
 }
@@ -50,8 +50,6 @@
 {
 }
 
-DEFINE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(DocumentOrderedMap);
-
 #if ENABLE(ASSERT)
 static int s_removeScopeLevel = 0;
 
@@ -92,11 +90,11 @@
     ASSERT(key);
     ASSERT(element);
 
-    Map::AddResult addResult = m_map.add(key, adoptPtrWillBeNoop(new MapEntry(element)));
+    Map::AddResult addResult = m_map.add(key, new MapEntry(element));
     if (addResult.isNewEntry)
         return;
 
-    OwnPtrWillBeMember<MapEntry>& entry = addResult.storedValue->value;
+    Member<MapEntry>& entry = addResult.storedValue->value;
     ASSERT(entry->count);
     entry->element = nullptr;
     entry->count++;
@@ -112,7 +110,7 @@
     if (it == m_map.end())
         return;
 
-    OwnPtrWillBeMember<MapEntry>& entry = it->value;
+    Member<MapEntry>& entry = it->value;
     ASSERT(entry->count);
     if (entry->count == 1) {
         ASSERT(!entry->element || entry->element == element);
@@ -162,17 +160,17 @@
     return get<keyMatchesId>(key, scope);
 }
 
-const WillBeHeapVector<RawPtrWillBeMember<Element>>& DocumentOrderedMap::getAllElementsById(const AtomicString& key, const TreeScope* scope) const
+const HeapVector<Member<Element>>& DocumentOrderedMap::getAllElementsById(const AtomicString& key, const TreeScope* scope) const
 {
     ASSERT(key);
     ASSERT(scope);
-    DEFINE_STATIC_LOCAL(OwnPtrWillBePersistent<WillBeHeapVector<RawPtrWillBeMember<Element>>>, emptyVector, (adoptPtrWillBeNoop(new WillBeHeapVector<RawPtrWillBeMember<Element>>())));
+    DEFINE_STATIC_LOCAL(Persistent<HeapVector<Member<Element>>>, emptyVector, (new HeapVector<Member<Element>>()));
 
     Map::iterator it = m_map.find(key);
     if (it == m_map.end())
         return *emptyVector;
 
-    OwnPtrWillBeMember<MapEntry>& entry = it->value;
+    Member<MapEntry>& entry = it->value;
     ASSERT(entry->count);
 
     if (entry->orderedList.isEmpty()) {
diff --git a/third_party/WebKit/Source/core/dom/DocumentOrderedMap.h b/third_party/WebKit/Source/core/dom/DocumentOrderedMap.h
index 5b25d3f..4e51f16 100644
--- a/third_party/WebKit/Source/core/dom/DocumentOrderedMap.h
+++ b/third_party/WebKit/Source/core/dom/DocumentOrderedMap.h
@@ -44,11 +44,9 @@
 class Element;
 class TreeScope;
 
-class DocumentOrderedMap : public NoBaseWillBeGarbageCollected<DocumentOrderedMap> {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(DocumentOrderedMap);
-    DECLARE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(DocumentOrderedMap);
+class DocumentOrderedMap : public GarbageCollected<DocumentOrderedMap> {
 public:
-    static PassOwnPtrWillBeRawPtr<DocumentOrderedMap> create();
+    static RawPtr<DocumentOrderedMap> create();
 
     void add(const AtomicString&, Element*);
     void remove(const AtomicString&, Element*);
@@ -57,7 +55,7 @@
     bool containsMultiple(const AtomicString&) const;
     // concrete instantiations of the get<>() method template
     Element* getElementById(const AtomicString&, const TreeScope*) const;
-    const WillBeHeapVector<RawPtrWillBeMember<Element>>& getAllElementsById(const AtomicString&, const TreeScope*) const;
+    const HeapVector<Member<Element>>& getAllElementsById(const AtomicString&, const TreeScope*) const;
     Element* getElementByMapName(const AtomicString&, const TreeScope*) const;
     Element* getElementByLowercasedMapName(const AtomicString&, const TreeScope*) const;
     Element* getElementByLabelForAttribute(const AtomicString&, const TreeScope*) const;
@@ -91,7 +89,7 @@
     template<bool keyMatches(const AtomicString&, const Element&)>
     Element* get(const AtomicString&, const TreeScope*) const;
 
-    class MapEntry : public NoBaseWillBeGarbageCollected<MapEntry> {
+    class MapEntry : public GarbageCollected<MapEntry> {
     public:
         explicit MapEntry(Element* firstElement)
             : element(firstElement)
@@ -101,12 +99,12 @@
 
         DECLARE_TRACE();
 
-        RawPtrWillBeMember<Element> element;
+        Member<Element> element;
         unsigned count;
-        WillBeHeapVector<RawPtrWillBeMember<Element>> orderedList;
+        HeapVector<Member<Element>> orderedList;
     };
 
-    using Map = WillBeHeapHashMap<AtomicString, OwnPtrWillBeMember<MapEntry>>;
+    using Map = HeapHashMap<AtomicString, Member<MapEntry>>;
 
     mutable Map m_map;
 };
diff --git a/third_party/WebKit/Source/core/dom/DocumentParser.cpp b/third_party/WebKit/Source/core/dom/DocumentParser.cpp
index 3856198f..3b5a066 100644
--- a/third_party/WebKit/Source/core/dom/DocumentParser.cpp
+++ b/third_party/WebKit/Source/core/dom/DocumentParser.cpp
@@ -79,7 +79,7 @@
     m_state = StoppedState;
 
     // Clients may be removed while in the loop. Make a snapshot for iteration.
-    WillBeHeapVector<RawPtrWillBeMember<DocumentParserClient>> clientsSnapshot;
+    HeapVector<Member<DocumentParserClient>> clientsSnapshot;
     copyToVector(m_clients, clientsSnapshot);
 
     for (DocumentParserClient* client : clientsSnapshot) {
diff --git a/third_party/WebKit/Source/core/dom/DocumentParser.h b/third_party/WebKit/Source/core/dom/DocumentParser.h
index abbf48d..58b48b5 100644
--- a/third_party/WebKit/Source/core/dom/DocumentParser.h
+++ b/third_party/WebKit/Source/core/dom/DocumentParser.h
@@ -36,7 +36,7 @@
 class ScriptableDocumentParser;
 class TextResourceDecoder;
 
-class DocumentParser : public RefCountedWillBeGarbageCollectedFinalized<DocumentParser> {
+class DocumentParser : public GarbageCollectedFinalized<DocumentParser> {
 public:
     virtual ~DocumentParser();
     DECLARE_VIRTUAL_TRACE();
@@ -112,9 +112,9 @@
 
     // Every DocumentParser needs a pointer back to the document.
     // m_document will be 0 after the parser is stopped.
-    RawPtrWillBeMember<Document> m_document;
+    Member<Document> m_document;
 
-    WillBeHeapHashSet<RawPtrWillBeWeakMember<DocumentParserClient>> m_clients;
+    HeapHashSet<WeakMember<DocumentParserClient>> m_clients;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/dom/DocumentParserClient.h b/third_party/WebKit/Source/core/dom/DocumentParserClient.h
index 7ceea721..77bd823d 100644
--- a/third_party/WebKit/Source/core/dom/DocumentParserClient.h
+++ b/third_party/WebKit/Source/core/dom/DocumentParserClient.h
@@ -9,7 +9,7 @@
 
 namespace blink {
 
-class DocumentParserClient : public WillBeGarbageCollectedMixin {
+class DocumentParserClient : public GarbageCollectedMixin {
 public:
     // This callback is called when all data pushed to parser has been consumed.
     virtual void notifyParserStopped() = 0;
diff --git a/third_party/WebKit/Source/core/dom/DocumentStyleSheetCollection.h b/third_party/WebKit/Source/core/dom/DocumentStyleSheetCollection.h
index 0ae269d..e885d6b 100644
--- a/third_party/WebKit/Source/core/dom/DocumentStyleSheetCollection.h
+++ b/third_party/WebKit/Source/core/dom/DocumentStyleSheetCollection.h
@@ -38,11 +38,10 @@
 
 class DocumentStyleSheetCollection final : public TreeScopeStyleSheetCollection {
     WTF_MAKE_NONCOPYABLE(DocumentStyleSheetCollection);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(DocumentStyleSheetCollection);
 public:
-    static PassOwnPtrWillBeRawPtr<DocumentStyleSheetCollection> create(TreeScope& treeScope)
+    static RawPtr<DocumentStyleSheetCollection> create(TreeScope& treeScope)
     {
-        return adoptPtrWillBeNoop(new DocumentStyleSheetCollection(treeScope));
+        return new DocumentStyleSheetCollection(treeScope);
     }
 
     void updateActiveStyleSheets(StyleEngine&, StyleResolverUpdateMode);
diff --git a/third_party/WebKit/Source/core/dom/DocumentStyleSheetCollector.cpp b/third_party/WebKit/Source/core/dom/DocumentStyleSheetCollector.cpp
index ac4676d..6edbc564b 100644
--- a/third_party/WebKit/Source/core/dom/DocumentStyleSheetCollector.cpp
+++ b/third_party/WebKit/Source/core/dom/DocumentStyleSheetCollector.cpp
@@ -32,7 +32,7 @@
 
 namespace blink {
 
-DocumentStyleSheetCollector::DocumentStyleSheetCollector(WillBeHeapVector<RefPtrWillBeMember<StyleSheet>>& sheetsForList, WillBeHeapVector<RefPtrWillBeMember<CSSStyleSheet>>& activeList, WillBeHeapHashSet<RawPtrWillBeMember<Document>>& visitedDocuments)
+DocumentStyleSheetCollector::DocumentStyleSheetCollector(HeapVector<Member<StyleSheet>>& sheetsForList, HeapVector<Member<CSSStyleSheet>>& activeList, HeapHashSet<Member<Document>>& visitedDocuments)
     : m_styleSheetsForStyleSheetList(sheetsForList)
     , m_activeAuthorStyleSheets(activeList)
     , m_visitedDocuments(visitedDocuments)
@@ -43,7 +43,7 @@
 {
 }
 
-void DocumentStyleSheetCollector::appendActiveStyleSheets(const WillBeHeapVector<RefPtrWillBeMember<CSSStyleSheet>>& sheets)
+void DocumentStyleSheetCollector::appendActiveStyleSheets(const HeapVector<Member<CSSStyleSheet>>& sheets)
 {
     m_activeAuthorStyleSheets.appendVector(sheets);
 }
@@ -63,7 +63,7 @@
 {
 }
 
-ImportedDocumentStyleSheetCollector::ImportedDocumentStyleSheetCollector(DocumentStyleSheetCollector& collector, WillBeHeapVector<RefPtrWillBeMember<StyleSheet>>& sheetForList)
+ImportedDocumentStyleSheetCollector::ImportedDocumentStyleSheetCollector(DocumentStyleSheetCollector& collector, HeapVector<Member<StyleSheet>>& sheetForList)
     : DocumentStyleSheetCollector(sheetForList, collector.m_activeAuthorStyleSheets, collector.m_visitedDocuments)
 {
 }
diff --git a/third_party/WebKit/Source/core/dom/DocumentStyleSheetCollector.h b/third_party/WebKit/Source/core/dom/DocumentStyleSheetCollector.h
index a0f49dc..61ab31f 100644
--- a/third_party/WebKit/Source/core/dom/DocumentStyleSheetCollector.h
+++ b/third_party/WebKit/Source/core/dom/DocumentStyleSheetCollector.h
@@ -47,10 +47,10 @@
 public:
     friend class ImportedDocumentStyleSheetCollector;
 
-    DocumentStyleSheetCollector(WillBeHeapVector<RefPtrWillBeMember<StyleSheet>>& sheetsForList, WillBeHeapVector<RefPtrWillBeMember<CSSStyleSheet>>& activeList, WillBeHeapHashSet<RawPtrWillBeMember<Document>>&);
+    DocumentStyleSheetCollector(HeapVector<Member<StyleSheet>>& sheetsForList, HeapVector<Member<CSSStyleSheet>>& activeList, HeapHashSet<Member<Document>>&);
     ~DocumentStyleSheetCollector();
 
-    void appendActiveStyleSheets(const WillBeHeapVector<RefPtrWillBeMember<CSSStyleSheet>>&);
+    void appendActiveStyleSheets(const HeapVector<Member<CSSStyleSheet>>&);
     void appendActiveStyleSheet(CSSStyleSheet*);
     void appendSheetForList(StyleSheet*);
 
@@ -58,21 +58,21 @@
     void willVisit(Document* document) { m_visitedDocuments.add(document); }
 
 private:
-    WillBeHeapVector<RefPtrWillBeMember<StyleSheet>>& m_styleSheetsForStyleSheetList;
-    WillBeHeapVector<RefPtrWillBeMember<CSSStyleSheet>>& m_activeAuthorStyleSheets;
-    WillBeHeapHashSet<RawPtrWillBeMember<Document>>& m_visitedDocuments;
+    HeapVector<Member<StyleSheet>>& m_styleSheetsForStyleSheetList;
+    HeapVector<Member<CSSStyleSheet>>& m_activeAuthorStyleSheets;
+    HeapHashSet<Member<Document>>& m_visitedDocuments;
 };
 
 class ActiveDocumentStyleSheetCollector final : public DocumentStyleSheetCollector {
 public:
     ActiveDocumentStyleSheetCollector(StyleSheetCollection&);
 private:
-    WillBeHeapHashSet<RawPtrWillBeMember<Document>> m_visitedDocuments;
+    HeapHashSet<Member<Document>> m_visitedDocuments;
 };
 
 class ImportedDocumentStyleSheetCollector final : public DocumentStyleSheetCollector {
 public:
-    ImportedDocumentStyleSheetCollector(DocumentStyleSheetCollector&, WillBeHeapVector<RefPtrWillBeMember<StyleSheet>>&);
+    ImportedDocumentStyleSheetCollector(DocumentStyleSheetCollector&, HeapVector<Member<StyleSheet>>&);
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/dom/DocumentTest.cpp b/third_party/WebKit/Source/core/dom/DocumentTest.cpp
index 3ab50ae..fd14fd9 100644
--- a/third_party/WebKit/Source/core/dom/DocumentTest.cpp
+++ b/third_party/WebKit/Source/core/dom/DocumentTest.cpp
@@ -76,13 +76,13 @@
 }
 
 class MockDocumentVisibilityObserver
-    : public NoBaseWillBeGarbageCollectedFinalized<MockDocumentVisibilityObserver>
+    : public GarbageCollectedFinalized<MockDocumentVisibilityObserver>
     , public DocumentVisibilityObserver {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(MockDocumentVisibilityObserver);
+    USING_GARBAGE_COLLECTED_MIXIN(MockDocumentVisibilityObserver);
 public:
-    static PassOwnPtrWillBeRawPtr<MockDocumentVisibilityObserver> create(Document& document)
+    static RawPtr<MockDocumentVisibilityObserver> create(Document& document)
     {
-        return adoptPtrWillBeNoop(new MockDocumentVisibilityObserver(document));
+        return new MockDocumentVisibilityObserver(document);
     }
 
     DEFINE_INLINE_VIRTUAL_TRACE()
@@ -100,10 +100,10 @@
 TEST_F(DocumentTest, VisibilityOberver)
 {
     page().setVisibilityState(PageVisibilityStateVisible, true); // initial state
-    OwnPtrWillBeRawPtr<MockDocumentVisibilityObserver> observer1 = MockDocumentVisibilityObserver::create(document());
+    RawPtr<MockDocumentVisibilityObserver> observer1 = MockDocumentVisibilityObserver::create(document());
 
     {
-        OwnPtrWillBeRawPtr<MockDocumentVisibilityObserver> observer2 = MockDocumentVisibilityObserver::create(document());
+        RawPtr<MockDocumentVisibilityObserver> observer2 = MockDocumentVisibilityObserver::create(document());
         EXPECT_CALL(*observer1, didChangeVisibilityState(PageVisibilityStateHidden)).Times(0);
         EXPECT_CALL(*observer1, didChangeVisibilityState(PageVisibilityStateVisible)).Times(0);
         EXPECT_CALL(*observer2, didChangeVisibilityState(PageVisibilityStateHidden)).Times(0);
@@ -193,13 +193,13 @@
     EXPECT_EQ(0, document().linkManifest());
 
     // Check that we use the first manifest with <link rel=manifest>
-    RefPtrWillBeRawPtr<HTMLLinkElement> link = HTMLLinkElement::create(document(), false);
+    RawPtr<HTMLLinkElement> link = HTMLLinkElement::create(document(), false);
     link->setAttribute(blink::HTMLNames::relAttr, "manifest");
     link->setAttribute(blink::HTMLNames::hrefAttr, "foo.json");
     document().head()->appendChild(link);
     EXPECT_EQ(link, document().linkManifest());
 
-    RefPtrWillBeRawPtr<HTMLLinkElement> link2 = HTMLLinkElement::create(document(), false);
+    RawPtr<HTMLLinkElement> link2 = HTMLLinkElement::create(document(), false);
     link2->setAttribute(blink::HTMLNames::relAttr, "manifest");
     link2->setAttribute(blink::HTMLNames::hrefAttr, "bar.json");
     document().head()->insertBefore(link2, link.get());
diff --git a/third_party/WebKit/Source/core/dom/DocumentTiming.h b/third_party/WebKit/Source/core/dom/DocumentTiming.h
index 2bf2528..e37cf4d8 100644
--- a/third_party/WebKit/Source/core/dom/DocumentTiming.h
+++ b/third_party/WebKit/Source/core/dom/DocumentTiming.h
@@ -66,7 +66,7 @@
     double m_domComplete = 0.0;
     double m_firstLayout = 0.0;
 
-    RawPtrWillBeMember<Document> m_document;
+    Member<Document> m_document;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/dom/DocumentType.cpp b/third_party/WebKit/Source/core/dom/DocumentType.cpp
index 29b5d2d7..9bb137e 100644
--- a/third_party/WebKit/Source/core/dom/DocumentType.cpp
+++ b/third_party/WebKit/Source/core/dom/DocumentType.cpp
@@ -45,7 +45,7 @@
     return DOCUMENT_TYPE_NODE;
 }
 
-PassRefPtrWillBeRawPtr<Node> DocumentType::cloneNode(bool /*deep*/)
+RawPtr<Node> DocumentType::cloneNode(bool /*deep*/)
 {
     return create(&document(), m_name, m_publicId, m_systemId);
 }
diff --git a/third_party/WebKit/Source/core/dom/DocumentType.h b/third_party/WebKit/Source/core/dom/DocumentType.h
index 85718c1..e541501 100644
--- a/third_party/WebKit/Source/core/dom/DocumentType.h
+++ b/third_party/WebKit/Source/core/dom/DocumentType.h
@@ -31,9 +31,9 @@
 class DocumentType final : public Node {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<DocumentType> create(Document* document, const String& name, const String& publicId, const String& systemId)
+    static RawPtr<DocumentType> create(Document* document, const String& name, const String& publicId, const String& systemId)
     {
-        return adoptRefWillBeNoop(new DocumentType(document, name, publicId, systemId));
+        return new DocumentType(document, name, publicId, systemId);
     }
 
     const String& name() const { return m_name; }
@@ -45,7 +45,7 @@
 
     String nodeName() const override;
     NodeType getNodeType() const override;
-    PassRefPtrWillBeRawPtr<Node> cloneNode(bool deep) override;
+    RawPtr<Node> cloneNode(bool deep) override;
 
     InsertionNotificationRequest insertedInto(ContainerNode*) override;
     void removedFrom(ContainerNode*) override;
diff --git a/third_party/WebKit/Source/core/dom/DocumentVisibilityObserver.h b/third_party/WebKit/Source/core/dom/DocumentVisibilityObserver.h
index 188db53..204dbb8 100644
--- a/third_party/WebKit/Source/core/dom/DocumentVisibilityObserver.h
+++ b/third_party/WebKit/Source/core/dom/DocumentVisibilityObserver.h
@@ -13,7 +13,7 @@
 
 class Document;
 
-class CORE_EXPORT DocumentVisibilityObserver : public WillBeGarbageCollectedMixin {
+class CORE_EXPORT DocumentVisibilityObserver : public GarbageCollectedMixin {
     WTF_MAKE_NONCOPYABLE(DocumentVisibilityObserver);
 public:
     explicit DocumentVisibilityObserver(Document&);
@@ -34,7 +34,7 @@
     void registerObserver(Document&);
     void unregisterObserver();
 
-    RawPtrWillBeMember<Document> m_document;
+    Member<Document> m_document;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/dom/Element.cpp b/third_party/WebKit/Source/core/dom/Element.cpp
index 9c5be19f..252dd3e 100644
--- a/third_party/WebKit/Source/core/dom/Element.cpp
+++ b/third_party/WebKit/Source/core/dom/Element.cpp
@@ -160,9 +160,9 @@
 
 enum class ClassStringContent { Empty, WhiteSpaceOnly, HasClasses };
 
-PassRefPtrWillBeRawPtr<Element> Element::create(const QualifiedName& tagName, Document* document)
+RawPtr<Element> Element::create(const QualifiedName& tagName, Document* document)
 {
-    return adoptRefWillBeNoop(new Element(tagName, document, CreateElement));
+    return new Element(tagName, document, CreateElement);
 }
 
 Element::Element(const QualifiedName& tagName, Document* document, ConstructionType type)
@@ -265,21 +265,21 @@
     return layoutObject() && layoutObject()->style()->visibility() == VISIBLE;
 }
 
-PassRefPtrWillBeRawPtr<Node> Element::cloneNode(bool deep)
+RawPtr<Node> Element::cloneNode(bool deep)
 {
     return deep ? cloneElementWithChildren() : cloneElementWithoutChildren();
 }
 
-PassRefPtrWillBeRawPtr<Element> Element::cloneElementWithChildren()
+RawPtr<Element> Element::cloneElementWithChildren()
 {
-    RefPtrWillBeRawPtr<Element> clone = cloneElementWithoutChildren();
+    RawPtr<Element> clone = cloneElementWithoutChildren();
     cloneChildNodes(clone.get());
     return clone.release();
 }
 
-PassRefPtrWillBeRawPtr<Element> Element::cloneElementWithoutChildren()
+RawPtr<Element> Element::cloneElementWithoutChildren()
 {
-    RefPtrWillBeRawPtr<Element> clone = cloneElementWithoutAttributesAndChildren();
+    RawPtr<Element> clone = cloneElementWithoutAttributesAndChildren();
     // This will catch HTML elements in the wrong namespace that are not correctly copied.
     // This is a sanity check as HTML overloads some of the DOM methods.
     ASSERT(isHTMLElement() == clone->isHTMLElement());
@@ -288,16 +288,16 @@
     return clone.release();
 }
 
-PassRefPtrWillBeRawPtr<Element> Element::cloneElementWithoutAttributesAndChildren()
+RawPtr<Element> Element::cloneElementWithoutAttributesAndChildren()
 {
     return document().createElement(tagQName(), false);
 }
 
-PassRefPtrWillBeRawPtr<Attr> Element::detachAttribute(size_t index)
+RawPtr<Attr> Element::detachAttribute(size_t index)
 {
     ASSERT(elementData());
     const Attribute& attribute = elementData()->attributes().at(index);
-    RefPtrWillBeRawPtr<Attr> attrNode = attrIfExists(attribute.name());
+    RawPtr<Attr> attrNode = attrIfExists(attribute.name());
     if (attrNode) {
         detachAttrNodeAtIndex(attrNode.get(), index);
     } else {
@@ -1881,7 +1881,7 @@
     layoutObject->layer()->updateSelfPaintingLayer();
 }
 
-void Element::setCustomElementDefinition(PassRefPtrWillBeRawPtr<CustomElementDefinition> definition)
+void Element::setCustomElementDefinition(RawPtr<CustomElementDefinition> definition)
 {
     if (!hasRareData() && !definition)
         return;
@@ -1896,7 +1896,7 @@
     return nullptr;
 }
 
-PassRefPtrWillBeRawPtr<ShadowRoot> Element::createShadowRoot(const ScriptState* scriptState, ExceptionState& exceptionState)
+RawPtr<ShadowRoot> Element::createShadowRoot(const ScriptState* scriptState, ExceptionState& exceptionState)
 {
     OriginsUsingFeatures::countMainWorldOnly(scriptState, document(), OriginsUsingFeatures::Feature::ElementCreateShadowRoot);
     if (ShadowRoot* root = shadowRoot()) {
@@ -1914,7 +1914,7 @@
     return createShadowRootInternal(ShadowRootType::V0, exceptionState);
 }
 
-PassRefPtrWillBeRawPtr<ShadowRoot> Element::attachShadow(const ScriptState* scriptState, const ShadowRootInit& shadowRootInitDict, ExceptionState& exceptionState)
+RawPtr<ShadowRoot> Element::attachShadow(const ScriptState* scriptState, const ShadowRootInit& shadowRootInitDict, ExceptionState& exceptionState)
 {
     ASSERT(RuntimeEnabledFeatures::shadowDOMV1Enabled());
 
@@ -1960,7 +1960,7 @@
     else if (type == ShadowRootType::Open)
         UseCounter::count(document(), UseCounter::ElementAttachShadowOpen);
 
-    RefPtrWillBeRawPtr<ShadowRoot> shadowRoot = createShadowRootInternal(type, exceptionState);
+    RawPtr<ShadowRoot> shadowRoot = createShadowRootInternal(type, exceptionState);
 
     if (shadowRootInitDict.hasDelegatesFocus())
         shadowRoot->setDelegatesFocus(shadowRootInitDict.delegatesFocus());
@@ -1968,7 +1968,7 @@
     return shadowRoot.release();
 }
 
-PassRefPtrWillBeRawPtr<ShadowRoot> Element::createShadowRootInternal(ShadowRootType type, ExceptionState& exceptionState)
+RawPtr<ShadowRoot> Element::createShadowRootInternal(ShadowRootType type, ExceptionState& exceptionState)
 {
     ASSERT(!closedShadowRoot());
 
@@ -1982,7 +1982,7 @@
         return nullptr;
     }
 
-    return PassRefPtrWillBeRawPtr<ShadowRoot>(ensureShadow().addShadowRoot(*this, type));
+    return RawPtr<ShadowRoot>(ensureShadow().addShadowRoot(*this, type));
 }
 
 ShadowRoot* Element::shadowRoot() const
@@ -2132,9 +2132,9 @@
         elementRareData()->removeAttrNodeList();
 }
 
-PassRefPtrWillBeRawPtr<Attr> Element::setAttributeNode(Attr* attrNode, ExceptionState& exceptionState)
+RawPtr<Attr> Element::setAttributeNode(Attr* attrNode, ExceptionState& exceptionState)
 {
-    RefPtrWillBeRawPtr<Attr> oldAttrNode = attrIfExists(attrNode->getQualifiedName());
+    RawPtr<Attr> oldAttrNode = attrIfExists(attrNode->getQualifiedName());
     if (oldAttrNode.get() == attrNode)
         return attrNode; // This Attr is already attached to the element.
 
@@ -2184,12 +2184,12 @@
     return oldAttrNode.release();
 }
 
-PassRefPtrWillBeRawPtr<Attr> Element::setAttributeNodeNS(Attr* attr, ExceptionState& exceptionState)
+RawPtr<Attr> Element::setAttributeNodeNS(Attr* attr, ExceptionState& exceptionState)
 {
     return setAttributeNode(attr, exceptionState);
 }
 
-PassRefPtrWillBeRawPtr<Attr> Element::removeAttributeNode(Attr* attr, ExceptionState& exceptionState)
+RawPtr<Attr> Element::removeAttributeNode(Attr* attr, ExceptionState& exceptionState)
 {
     if (attr->ownerElement() != this) {
         exceptionState.throwDOMException(NotFoundError, "The node provided is owned by another element.");
@@ -2206,7 +2206,7 @@
         return nullptr;
     }
 
-    RefPtrWillBeRawPtr<Attr> guard(attr);
+    RawPtr<Attr> guard(attr);
     detachAttrNodeAtIndex(attr, index);
     return guard.release();
 }
@@ -2270,7 +2270,7 @@
             willModifyAttribute(name, valueBeingRemoved, nullAtom);
     }
 
-    if (RefPtrWillBeRawPtr<Attr> attrNode = attrIfExists(name))
+    if (RawPtr<Attr> attrNode = attrIfExists(name))
         detachAttrNodeFromElementWithValue(attrNode.get(), attributes[index].value());
 
     attributes.remove(index);
@@ -2309,7 +2309,7 @@
     removeAttribute(QualifiedName(nullAtom, localName, namespaceURI));
 }
 
-PassRefPtrWillBeRawPtr<Attr> Element::getAttributeNode(const AtomicString& localName)
+RawPtr<Attr> Element::getAttributeNode(const AtomicString& localName)
 {
     if (!elementData())
         return nullptr;
@@ -2320,7 +2320,7 @@
     return ensureAttr(attribute->name());
 }
 
-PassRefPtrWillBeRawPtr<Attr> Element::getAttributeNodeNS(const AtomicString& namespaceURI, const AtomicString& localName)
+RawPtr<Attr> Element::getAttributeNodeNS(const AtomicString& namespaceURI, const AtomicString& localName)
 {
     if (!elementData())
         return nullptr;
@@ -2376,7 +2376,7 @@
         }
     }
 
-    RefPtrWillBeRawPtr<Node> protect(this);
+    RawPtr<Node> protect(this);
     if (!document().page()->focusController().setFocusedElement(this, document().frame(), params))
         return;
 
@@ -2395,7 +2395,7 @@
         return;
     if (isRootEditableElement()) {
         // Taking the ownership since setSelection() may release the last reference to |frame|.
-        RefPtrWillBeRawPtr<LocalFrame> frame(document().frame());
+        RawPtr<LocalFrame> frame(document().frame());
         if (!frame)
             return;
 
@@ -2522,7 +2522,7 @@
 {
     InspectorInstrumentation::willSetInnerHTML(this);
 
-    if (RefPtrWillBeRawPtr<DocumentFragment> fragment = createFragmentForInnerOuterHTML(html, this, AllowScriptingContent, "innerHTML", exceptionState)) {
+    if (RawPtr<DocumentFragment> fragment = createFragmentForInnerOuterHTML(html, this, AllowScriptingContent, "innerHTML", exceptionState)) {
         ContainerNode* container = this;
         if (isHTMLTemplateElement(*this))
             container = toHTMLTemplateElement(this)->content();
@@ -2542,16 +2542,16 @@
         return;
     }
 
-    RefPtrWillBeRawPtr<Element> parent = toElement(p);
-    RefPtrWillBeRawPtr<Node> prev = previousSibling();
-    RefPtrWillBeRawPtr<Node> next = nextSibling();
+    RawPtr<Element> parent = toElement(p);
+    RawPtr<Node> prev = previousSibling();
+    RawPtr<Node> next = nextSibling();
 
-    RefPtrWillBeRawPtr<DocumentFragment> fragment = createFragmentForInnerOuterHTML(html, parent.get(), AllowScriptingContent, "outerHTML", exceptionState);
+    RawPtr<DocumentFragment> fragment = createFragmentForInnerOuterHTML(html, parent.get(), AllowScriptingContent, "outerHTML", exceptionState);
     if (exceptionState.hadException())
         return;
 
     parent->replaceChild(fragment.release(), this, exceptionState);
-    RefPtrWillBeRawPtr<Node> node = next ? next->previousSibling() : nullptr;
+    RawPtr<Node> node = next ? next->previousSibling() : nullptr;
     if (!exceptionState.hadException() && node && node->isTextNode())
         mergeWithNextTextNode(toText(node.get()), exceptionState);
 
@@ -2635,11 +2635,11 @@
 
 void Element::insertAdjacentHTML(const String& where, const String& markup, ExceptionState& exceptionState)
 {
-    RefPtrWillBeRawPtr<Element> contextElement = contextElementForInsertion(where, this, exceptionState);
+    RawPtr<Element> contextElement = contextElementForInsertion(where, this, exceptionState);
     if (!contextElement)
         return;
 
-    RefPtrWillBeRawPtr<DocumentFragment> fragment = createFragmentForInnerOuterHTML(markup, contextElement.get(), AllowScriptingContent, "insertAdjacentHTML", exceptionState);
+    RawPtr<DocumentFragment> fragment = createFragmentForInnerOuterHTML(markup, contextElement.get(), AllowScriptingContent, "insertAdjacentHTML", exceptionState);
     if (!fragment)
         return;
     insertAdjacent(where, fragment.get(), exceptionState);
@@ -2902,7 +2902,7 @@
         return;
 
     // Document::ensureStyleResolver is not inlined and shows up on profiles, avoid it here.
-    RefPtrWillBeRawPtr<PseudoElement> element = document().styleEngine().ensureResolver().createPseudoElementIfNeeded(*this, pseudoId);
+    RawPtr<PseudoElement> element = document().styleEngine().ensureResolver().createPseudoElementIfNeeded(*this, pseudoId);
     if (!element)
         return;
 
@@ -3160,7 +3160,7 @@
             CustomElement::attributeDidChange(this, name.localName(), oldValue, newValue);
     }
 
-    if (OwnPtrWillBeRawPtr<MutationObserverInterestGroup> recipients = MutationObserverInterestGroup::createForAttributesMutation(*this, name))
+    if (RawPtr<MutationObserverInterestGroup> recipients = MutationObserverInterestGroup::createForAttributesMutation(*this, name))
         recipients->enqueueMutationRecord(MutationRecord::createAttributes(this, name, oldValue));
 
     InspectorInstrumentation::willModifyDOMAttr(this, oldValue, newValue);
@@ -3279,7 +3279,7 @@
     ensureElementRareData().setSavedLayerScrollOffset(size);
 }
 
-PassRefPtrWillBeRawPtr<Attr> Element::attrIfExists(const QualifiedName& name)
+RawPtr<Attr> Element::attrIfExists(const QualifiedName& name)
 {
     if (AttrNodeList* attrNodeList = this->attrNodeList()) {
         bool shouldIgnoreCase = shouldIgnoreAttributeCase();
@@ -3291,9 +3291,9 @@
     return nullptr;
 }
 
-PassRefPtrWillBeRawPtr<Attr> Element::ensureAttr(const QualifiedName& name)
+RawPtr<Attr> Element::ensureAttr(const QualifiedName& name)
 {
-    RefPtrWillBeRawPtr<Attr> attrNode = attrIfExists(name);
+    RawPtr<Attr> attrNode = attrIfExists(name);
     if (!attrNode) {
         attrNode = Attr::create(*this, name);
         treeScope().adoptIfNeeded(*attrNode);
@@ -3323,7 +3323,7 @@
 
     AttributeCollection attributes = elementData()->attributes();
     for (const Attribute& attr : attributes) {
-        if (RefPtrWillBeRawPtr<Attr> attrNode = attrIfExists(attr.name()))
+        if (RawPtr<Attr> attrNode = attrIfExists(attr.name()))
             attrNode->detachFromElementWithValue(attr.value());
     }
 
@@ -3430,7 +3430,7 @@
 MutableStylePropertySet& Element::ensureMutableInlineStyle()
 {
     ASSERT(isStyledElement());
-    RefPtrWillBeMember<StylePropertySet>& inlineStyle = ensureUniqueElementData().m_inlineStyle;
+    Member<StylePropertySet>& inlineStyle = ensureUniqueElementData().m_inlineStyle;
     if (!inlineStyle) {
         CSSParserMode mode = (!isHTMLElement() || document().inQuirksMode()) ? HTMLQuirksMode : HTMLStandardMode;
         inlineStyle = MutableStylePropertySet::create(mode);
@@ -3450,7 +3450,7 @@
 inline void Element::setInlineStyleFromString(const AtomicString& newStyleString)
 {
     ASSERT(isStyledElement());
-    RefPtrWillBeMember<StylePropertySet>& inlineStyle = elementData()->m_inlineStyle;
+    Member<StylePropertySet>& inlineStyle = elementData()->m_inlineStyle;
 
     // Avoid redundant work if we're using shared attribute data with already parsed inline style.
     if (inlineStyle && !elementData()->isUnique())
@@ -3569,7 +3569,7 @@
     style->setProperty(propertyID, value, false);
 }
 
-void Element::addPropertyToPresentationAttributeStyle(MutableStylePropertySet*  style, CSSPropertyID propertyID, PassRefPtrWillBeRawPtr<CSSValue> value)
+void Element::addPropertyToPresentationAttributeStyle(MutableStylePropertySet*  style, CSSPropertyID propertyID, RawPtr<CSSValue> value)
 {
     ASSERT(isStyledElement());
     style->setProperty(propertyID, value);
diff --git a/third_party/WebKit/Source/core/dom/Element.h b/third_party/WebKit/Source/core/dom/Element.h
index b350f39..6203c0a 100644
--- a/third_party/WebKit/Source/core/dom/Element.h
+++ b/third_party/WebKit/Source/core/dom/Element.h
@@ -108,12 +108,12 @@
     Member<InputDeviceCapabilities> sourceCapabilities = nullptr;
 };
 
-typedef WillBeHeapVector<RefPtrWillBeMember<Attr>> AttrNodeList;
+typedef HeapVector<Member<Attr>> AttrNodeList;
 
 class CORE_EXPORT Element : public ContainerNode {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<Element> create(const QualifiedName&, Document*);
+    static RawPtr<Element> create(const QualifiedName&, Document*);
     ~Element() override;
 
     DEFINE_ATTRIBUTE_EVENT_LISTENER(beforecopy);
@@ -229,16 +229,16 @@
     void removeAttribute(const AtomicString& name);
     void removeAttributeNS(const AtomicString& namespaceURI, const AtomicString& localName);
 
-    PassRefPtrWillBeRawPtr<Attr> detachAttribute(size_t index);
+    RawPtr<Attr> detachAttribute(size_t index);
 
-    PassRefPtrWillBeRawPtr<Attr> getAttributeNode(const AtomicString& name);
-    PassRefPtrWillBeRawPtr<Attr> getAttributeNodeNS(const AtomicString& namespaceURI, const AtomicString& localName);
-    PassRefPtrWillBeRawPtr<Attr> setAttributeNode(Attr*, ExceptionState&);
-    PassRefPtrWillBeRawPtr<Attr> setAttributeNodeNS(Attr*, ExceptionState&);
-    PassRefPtrWillBeRawPtr<Attr> removeAttributeNode(Attr*, ExceptionState&);
+    RawPtr<Attr> getAttributeNode(const AtomicString& name);
+    RawPtr<Attr> getAttributeNodeNS(const AtomicString& namespaceURI, const AtomicString& localName);
+    RawPtr<Attr> setAttributeNode(Attr*, ExceptionState&);
+    RawPtr<Attr> setAttributeNodeNS(Attr*, ExceptionState&);
+    RawPtr<Attr> removeAttributeNode(Attr*, ExceptionState&);
 
-    PassRefPtrWillBeRawPtr<Attr> attrIfExists(const QualifiedName&);
-    PassRefPtrWillBeRawPtr<Attr> ensureAttr(const QualifiedName&);
+    RawPtr<Attr> attrIfExists(const QualifiedName&);
+    RawPtr<Attr> ensureAttr(const QualifiedName&);
 
     AttrNodeList* attrNodeList();
 
@@ -266,8 +266,8 @@
 
     String nodeName() const override;
 
-    PassRefPtrWillBeRawPtr<Element> cloneElementWithChildren();
-    PassRefPtrWillBeRawPtr<Element> cloneElementWithoutChildren();
+    RawPtr<Element> cloneElementWithChildren();
+    RawPtr<Element> cloneElementWithoutChildren();
 
     void scheduleSVGFilterLayerUpdateHack();
 
@@ -343,9 +343,9 @@
     // If type of ShadowRoot (either closed or open) is explicitly specified, creation of multiple
     // shadow roots is prohibited in any combination and throws an exception. Multiple shadow roots
     // are allowed only when createShadowRoot() is used without any parameters from JavaScript.
-    PassRefPtrWillBeRawPtr<ShadowRoot> createShadowRoot(const ScriptState*, ExceptionState&);
-    PassRefPtrWillBeRawPtr<ShadowRoot> attachShadow(const ScriptState*, const ShadowRootInit&, ExceptionState&);
-    PassRefPtrWillBeRawPtr<ShadowRoot> createShadowRootInternal(ShadowRootType, ExceptionState&);
+    RawPtr<ShadowRoot> createShadowRoot(const ScriptState*, ExceptionState&);
+    RawPtr<ShadowRoot> attachShadow(const ScriptState*, const ShadowRootInit&, ExceptionState&);
+    RawPtr<ShadowRoot> createShadowRootInternal(ShadowRootType, ExceptionState&);
 
     ShadowRoot* openShadowRoot() const;
     ShadowRoot* closedShadowRoot() const;
@@ -504,7 +504,7 @@
     void clearHasPendingResources() { clearElementFlag(HasPendingResources); }
     virtual void buildPendingResource() { }
 
-    void setCustomElementDefinition(PassRefPtrWillBeRawPtr<CustomElementDefinition>);
+    void setCustomElementDefinition(RawPtr<CustomElementDefinition>);
     CustomElementDefinition* customElementDefinition() const;
 
     bool containsFullScreenElement() const { return hasElementFlag(ContainsFullScreenElement); }
@@ -573,7 +573,7 @@
     void addPropertyToPresentationAttributeStyle(MutableStylePropertySet*, CSSPropertyID, CSSValueID identifier);
     void addPropertyToPresentationAttributeStyle(MutableStylePropertySet*, CSSPropertyID, double value, CSSPrimitiveValue::UnitType);
     void addPropertyToPresentationAttributeStyle(MutableStylePropertySet*, CSSPropertyID, const String& value);
-    void addPropertyToPresentationAttributeStyle(MutableStylePropertySet*, CSSPropertyID, PassRefPtrWillBeRawPtr<CSSValue>);
+    void addPropertyToPresentationAttributeStyle(MutableStylePropertySet*, CSSPropertyID, RawPtr<CSSValue>);
 
     InsertionNotificationRequest insertedInto(ContainerNode*) override;
     void removedFrom(ContainerNode*) override;
@@ -689,8 +689,8 @@
 
     // cloneNode is private so that non-virtual cloneElementWithChildren and cloneElementWithoutChildren
     // are used instead.
-    PassRefPtrWillBeRawPtr<Node> cloneNode(bool deep) override;
-    virtual PassRefPtrWillBeRawPtr<Element> cloneElementWithoutAttributesAndChildren();
+    RawPtr<Node> cloneNode(bool deep) override;
+    virtual RawPtr<Element> cloneElementWithoutAttributesAndChildren();
 
     QualifiedName m_tagName;
 
@@ -712,7 +712,7 @@
 
     v8::Local<v8::Object> wrapCustomElement(v8::Isolate*, v8::Local<v8::Object> creationContext);
 
-    RefPtrWillBeMember<ElementData> m_elementData;
+    Member<ElementData> m_elementData;
 };
 
 DEFINE_NODE_TYPE_CASTS(Element, isElementNode());
@@ -945,11 +945,11 @@
     DEFINE_NODE_TYPE_CASTS_WITH_FUNCTION(thisType)
 
 #define DECLARE_ELEMENT_FACTORY_WITH_TAGNAME(T) \
-    static PassRefPtrWillBeRawPtr<T> create(const QualifiedName&, Document&)
+    static RawPtr<T> create(const QualifiedName&, Document&)
 #define DEFINE_ELEMENT_FACTORY_WITH_TAGNAME(T) \
-    PassRefPtrWillBeRawPtr<T> T::create(const QualifiedName& tagName, Document& document) \
+    RawPtr<T> T::create(const QualifiedName& tagName, Document& document) \
     { \
-        return adoptRefWillBeNoop(new T(tagName, document)); \
+        return new T(tagName, document); \
     }
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/dom/ElementData.cpp b/third_party/WebKit/Source/core/dom/ElementData.cpp
index 86a7f2e..cbd5856 100644
--- a/third_party/WebKit/Source/core/dom/ElementData.cpp
+++ b/third_party/WebKit/Source/core/dom/ElementData.cpp
@@ -36,9 +36,9 @@
 
 namespace blink {
 
-struct SameSizeAsElementData : public RefCountedWillBeGarbageCollectedFinalized<SameSizeAsElementData> {
+struct SameSizeAsElementData : public GarbageCollectedFinalized<SameSizeAsElementData> {
     unsigned bitfield;
-    RawPtrWillBeMember<void*> willbeMember;
+    Member<void*> willbeMember;
     void* pointers[2];
 };
 
@@ -97,11 +97,11 @@
 }
 #endif
 
-PassRefPtrWillBeRawPtr<UniqueElementData> ElementData::makeUniqueCopy() const
+RawPtr<UniqueElementData> ElementData::makeUniqueCopy() const
 {
     if (isUnique())
-        return adoptRefWillBeNoop(new UniqueElementData(toUniqueElementData(*this)));
-    return adoptRefWillBeNoop(new UniqueElementData(toShareableElementData(*this)));
+        return new UniqueElementData(toUniqueElementData(*this));
+    return new UniqueElementData(toShareableElementData(*this));
 }
 
 bool ElementData::isEquivalent(const ElementData* other) const
@@ -161,7 +161,7 @@
         new (&m_attributeArray[i]) Attribute(other.m_attributeVector.at(i));
 }
 
-PassRefPtrWillBeRawPtr<ShareableElementData> ShareableElementData::createWithAttributes(const Vector<Attribute>& attributes)
+RawPtr<ShareableElementData> ShareableElementData::createWithAttributes(const Vector<Attribute>& attributes)
 {
 #if ENABLE(OILPAN)
     void* slot = Heap::allocate<ElementData>(sizeForShareableElementDataWithAttributeCount(attributes.size()));
@@ -196,12 +196,12 @@
         m_attributeVector.uncheckedAppend(other.m_attributeArray[i]);
 }
 
-PassRefPtrWillBeRawPtr<UniqueElementData> UniqueElementData::create()
+RawPtr<UniqueElementData> UniqueElementData::create()
 {
     return adoptRefWillBeNoop(new UniqueElementData);
 }
 
-PassRefPtrWillBeRawPtr<ShareableElementData> UniqueElementData::makeShareableCopy() const
+RawPtr<ShareableElementData> UniqueElementData::makeShareableCopy() const
 {
 #if ENABLE(OILPAN)
     void* slot = Heap::allocate<ElementData>(sizeForShareableElementDataWithAttributeCount(m_attributeVector.size()));
diff --git a/third_party/WebKit/Source/core/dom/ElementData.h b/third_party/WebKit/Source/core/dom/ElementData.h
index 63eab9b5..5f3b851 100644
--- a/third_party/WebKit/Source/core/dom/ElementData.h
+++ b/third_party/WebKit/Source/core/dom/ElementData.h
@@ -46,8 +46,7 @@
 
 // ElementData represents very common, but not necessarily unique to an element,
 // data such as attributes, inline style, and parsed class names and ids.
-class ElementData : public RefCountedWillBeGarbageCollectedFinalized<ElementData> {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(ElementData);
+class ElementData : public GarbageCollectedFinalized<ElementData> {
 public:
 #if ENABLE(OILPAN)
     // Override GarbageCollectedFinalized's finalizeGarbageCollectedObject to
@@ -94,7 +93,7 @@
     mutable unsigned m_styleAttributeIsDirty : 1;
     mutable unsigned m_animatedSVGAttributesAreDirty : 1;
 
-    mutable RefPtrWillBeMember<StylePropertySet> m_inlineStyle;
+    mutable Member<StylePropertySet> m_inlineStyle;
     mutable SpaceSplitString m_classNames;
     mutable AtomicString m_idForStyleResolution;
 
@@ -108,7 +107,7 @@
     void destroy();
 #endif
 
-    PassRefPtrWillBeRawPtr<UniqueElementData> makeUniqueCopy() const;
+    RawPtr<UniqueElementData> makeUniqueCopy() const;
 };
 
 #define DEFINE_ELEMENT_DATA_TYPE_CASTS(thisType,  pointerPredicate, referencePredicate) \
@@ -126,7 +125,7 @@
 // duplicate sets of attributes (ex. the same classes).
 class ShareableElementData final : public ElementData {
 public:
-    static PassRefPtrWillBeRawPtr<ShareableElementData> createWithAttributes(const Vector<Attribute>&);
+    static RawPtr<ShareableElementData> createWithAttributes(const Vector<Attribute>&);
 
     explicit ShareableElementData(const Vector<Attribute>&);
     explicit ShareableElementData(const UniqueElementData&);
@@ -163,8 +162,8 @@
 // attribute will have the same inline style.
 class UniqueElementData final : public ElementData {
 public:
-    static PassRefPtrWillBeRawPtr<UniqueElementData> create();
-    PassRefPtrWillBeRawPtr<ShareableElementData> makeShareableCopy() const;
+    static RawPtr<UniqueElementData> create();
+    RawPtr<ShareableElementData> makeShareableCopy() const;
 
     MutableAttributeCollection attributes();
     AttributeCollection attributes() const;
@@ -179,7 +178,7 @@
     // presentation attribute style. Lots of table cells likely have the same
     // attributes. Most modern pages don't use presentation attributes though
     // so this might not make sense.
-    mutable RefPtrWillBeMember<StylePropertySet> m_presentationAttributeStyle;
+    mutable Member<StylePropertySet> m_presentationAttributeStyle;
     AttributeVector m_attributeVector;
 };
 
diff --git a/third_party/WebKit/Source/core/dom/ElementDataCache.cpp b/third_party/WebKit/Source/core/dom/ElementDataCache.cpp
index 3ff704d..1cde844c 100644
--- a/third_party/WebKit/Source/core/dom/ElementDataCache.cpp
+++ b/third_party/WebKit/Source/core/dom/ElementDataCache.cpp
@@ -30,8 +30,6 @@
 
 namespace blink {
 
-DEFINE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(ElementDataCache)
-
 inline unsigned attributeHash(const Vector<Attribute>& attributes)
 {
     return StringHasher::hashMemory(attributes.data(), attributes.size() * sizeof(Attribute));
@@ -44,7 +42,7 @@
     return !memcmp(attributes.data(), elementData.m_attributeArray, attributes.size() * sizeof(Attribute));
 }
 
-PassRefPtrWillBeRawPtr<ShareableElementData> ElementDataCache::cachedShareableElementDataWithAttributes(const Vector<Attribute>& attributes)
+RawPtr<ShareableElementData> ElementDataCache::cachedShareableElementDataWithAttributes(const Vector<Attribute>& attributes)
 {
     ASSERT(!attributes.isEmpty());
 
diff --git a/third_party/WebKit/Source/core/dom/ElementDataCache.h b/third_party/WebKit/Source/core/dom/ElementDataCache.h
index fba63ec..e75fe44 100644
--- a/third_party/WebKit/Source/core/dom/ElementDataCache.h
+++ b/third_party/WebKit/Source/core/dom/ElementDataCache.h
@@ -40,20 +40,18 @@
 class Attribute;
 class ShareableElementData;
 
-class ElementDataCache final : public NoBaseWillBeGarbageCollected<ElementDataCache>  {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(ElementDataCache);
-    DECLARE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(ElementDataCache)
+class ElementDataCache final : public GarbageCollected<ElementDataCache>  {
 public:
-    static PassOwnPtrWillBeRawPtr<ElementDataCache> create() { return adoptPtrWillBeNoop(new ElementDataCache); }
+    static RawPtr<ElementDataCache> create() { return adoptPtrWillBeNoop(new ElementDataCache); }
 
-    PassRefPtrWillBeRawPtr<ShareableElementData> cachedShareableElementDataWithAttributes(const Vector<Attribute>&);
+    RawPtr<ShareableElementData> cachedShareableElementDataWithAttributes(const Vector<Attribute>&);
 
     DECLARE_TRACE();
 
 private:
     ElementDataCache();
 
-    typedef WillBeHeapHashMap<unsigned, RefPtrWillBeMember<ShareableElementData>, AlreadyHashed> ShareableElementDataCache;
+    typedef HeapHashMap<unsigned, Member<ShareableElementData>, AlreadyHashed> ShareableElementDataCache;
     ShareableElementDataCache m_shareableElementDataCache;
 };
 
diff --git a/third_party/WebKit/Source/core/dom/ElementRareData.cpp b/third_party/WebKit/Source/core/dom/ElementRareData.cpp
index c5c756c..338ad07 100644
--- a/third_party/WebKit/Source/core/dom/ElementRareData.cpp
+++ b/third_party/WebKit/Source/core/dom/ElementRareData.cpp
@@ -39,13 +39,13 @@
     LayoutSize sizeForResizing;
     IntSize scrollOffset;
     void* pointers[13];
-    PersistentWillBeMember<void*> persistentMember[2];
+    Member<void*> persistentMember[2];
 };
 
 CSSStyleDeclaration& ElementRareData::ensureInlineCSSStyleDeclaration(Element* ownerElement)
 {
     if (!m_cssomWrapper)
-        m_cssomWrapper = adoptPtrWillBeNoop(new InlineCSSStyleDeclaration(ownerElement));
+        m_cssomWrapper = new InlineCSSStyleDeclaration(ownerElement);
     return *m_cssomWrapper;
 }
 
diff --git a/third_party/WebKit/Source/core/dom/ElementRareData.h b/third_party/WebKit/Source/core/dom/ElementRareData.h
index 0678212..82bba11 100644
--- a/third_party/WebKit/Source/core/dom/ElementRareData.h
+++ b/third_party/WebKit/Source/core/dom/ElementRareData.h
@@ -52,7 +52,7 @@
 
     ~ElementRareData();
 
-    void setPseudoElement(PseudoId, PassRefPtrWillBeRawPtr<PseudoElement>);
+    void setPseudoElement(PseudoId, RawPtr<PseudoElement>);
     PseudoElement* pseudoElement(PseudoId) const;
 
     short tabIndex() const { return m_tabindex; }
@@ -81,14 +81,14 @@
     }
 
     NamedNodeMap* attributeMap() const { return m_attributeMap.get(); }
-    void setAttributeMap(PassOwnPtrWillBeRawPtr<NamedNodeMap> attributeMap) { m_attributeMap = attributeMap; }
+    void setAttributeMap(RawPtr<NamedNodeMap> attributeMap) { m_attributeMap = attributeMap; }
 
     ComputedStyle* ensureComputedStyle() const { return m_computedStyle.get(); }
     void setComputedStyle(PassRefPtr<ComputedStyle> computedStyle) { m_computedStyle = computedStyle; }
     void clearComputedStyle() { m_computedStyle = nullptr; }
 
     ClassList* classList() const { return m_classList.get(); }
-    void setClassList(PassRefPtrWillBeRawPtr<ClassList> classList) { m_classList = classList.leakRef(); }
+    void setClassList(RawPtr<ClassList> classList) { m_classList = classList.leakRef(); }
     void clearClassListValueForQuirksMode()
     {
         if (!m_classList)
@@ -97,7 +97,7 @@
     }
 
     DatasetDOMStringMap* dataset() const { return m_dataset.get(); }
-    void setDataset(PassOwnPtrWillBeRawPtr<DatasetDOMStringMap> dataset) { m_dataset = dataset; }
+    void setDataset(RawPtr<DatasetDOMStringMap> dataset) { m_dataset = dataset; }
 
     LayoutSize minimumSizeForResizing() const { return m_minimumSizeForResizing; }
     void setMinimumSizeForResizing(LayoutSize size) { m_minimumSizeForResizing = size; }
@@ -118,7 +118,7 @@
     void decrementCompositorProxiedProperties(uint32_t properties);
     CompositorProxiedPropertySet* proxiedPropertyCounts() const { return m_proxiedProperties.get(); }
 
-    void setCustomElementDefinition(PassRefPtrWillBeRawPtr<CustomElementDefinition> definition) { m_customElementDefinition = definition; }
+    void setCustomElementDefinition(RawPtr<CustomElementDefinition> definition) { m_customElementDefinition = definition; }
     CustomElementDefinition* customElementDefinition() const { return m_customElementDefinition.get(); }
 
     AttrNodeList& ensureAttrNodeList();
@@ -144,24 +144,24 @@
     LayoutSize m_minimumSizeForResizing;
     IntSize m_savedLayerScrollOffset;
 
-    OwnPtrWillBeMember<DatasetDOMStringMap> m_dataset;
-    OwnPtrWillBeMember<ElementShadow> m_shadow;
-    RawPtrWillBeMember<ClassList> m_classList;
-    OwnPtrWillBeMember<NamedNodeMap> m_attributeMap;
-    OwnPtrWillBeMember<AttrNodeList> m_attrNodeList;
-    OwnPtrWillBeMember<InlineCSSStyleDeclaration> m_cssomWrapper;
+    Member<DatasetDOMStringMap> m_dataset;
+    Member<ElementShadow> m_shadow;
+    Member<ClassList> m_classList;
+    Member<NamedNodeMap> m_attributeMap;
+    Member<AttrNodeList> m_attrNodeList;
+    Member<InlineCSSStyleDeclaration> m_cssomWrapper;
     OwnPtr<CompositorProxiedPropertySet> m_proxiedProperties;
 
-    PersistentWillBeMember<ElementAnimations> m_elementAnimations;
-    PersistentWillBeMember<NodeIntersectionObserverData> m_intersectionObserverData;
+    Member<ElementAnimations> m_elementAnimations;
+    Member<NodeIntersectionObserverData> m_intersectionObserverData;
 
     RefPtr<ComputedStyle> m_computedStyle;
-    RefPtrWillBeMember<CustomElementDefinition> m_customElementDefinition;
+    Member<CustomElementDefinition> m_customElementDefinition;
 
-    RefPtrWillBeMember<PseudoElement> m_generatedBefore;
-    RefPtrWillBeMember<PseudoElement> m_generatedAfter;
-    RefPtrWillBeMember<PseudoElement> m_generatedFirstLetter;
-    RefPtrWillBeMember<PseudoElement> m_backdrop;
+    Member<PseudoElement> m_generatedBefore;
+    Member<PseudoElement> m_generatedAfter;
+    Member<PseudoElement> m_generatedFirstLetter;
+    Member<PseudoElement> m_backdrop;
 
     explicit ElementRareData(LayoutObject*);
 };
@@ -208,7 +208,7 @@
     setPseudoElement(PseudoIdFirstLetter, nullptr);
 }
 
-inline void ElementRareData::setPseudoElement(PseudoId pseudoId, PassRefPtrWillBeRawPtr<PseudoElement> element)
+inline void ElementRareData::setPseudoElement(PseudoId pseudoId, RawPtr<PseudoElement> element)
 {
     switch (pseudoId) {
     case PseudoIdBefore:
diff --git a/third_party/WebKit/Source/core/dom/EmptyNodeList.h b/third_party/WebKit/Source/core/dom/EmptyNodeList.h
index 4fbfc65..c82a24f 100644
--- a/third_party/WebKit/Source/core/dom/EmptyNodeList.h
+++ b/third_party/WebKit/Source/core/dom/EmptyNodeList.h
@@ -39,9 +39,9 @@
 
 class EmptyNodeList final : public NodeList {
 public:
-    static PassRefPtrWillBeRawPtr<EmptyNodeList> create(Node& rootNode)
+    static RawPtr<EmptyNodeList> create(Node& rootNode)
     {
-        return adoptRefWillBeNoop(new EmptyNodeList(rootNode));
+        return new EmptyNodeList(rootNode);
     }
     ~EmptyNodeList() override;
 
@@ -58,7 +58,7 @@
     bool isEmptyNodeList() const override { return true; }
     Node* virtualOwnerNode() const override;
 
-    RefPtrWillBeMember<Node> m_owner;
+    Member<Node> m_owner;
 };
 
 DEFINE_TYPE_CASTS(EmptyNodeList, NodeList, nodeList, nodeList->isEmptyNodeList(), nodeList.isEmptyNodeList());
diff --git a/third_party/WebKit/Source/core/dom/ExecutionContext.cpp b/third_party/WebKit/Source/core/dom/ExecutionContext.cpp
index b40efae5..68a6e97 100644
--- a/third_party/WebKit/Source/core/dom/ExecutionContext.cpp
+++ b/third_party/WebKit/Source/core/dom/ExecutionContext.cpp
@@ -145,9 +145,9 @@
     return !(getSecurityOrigin()->canRequestNoSuborigin(completeURL(sourceURL)) || corsStatus == SharableCrossOrigin);
 }
 
-void ExecutionContext::reportException(PassRefPtrWillBeRawPtr<ErrorEvent> event, int scriptId, PassRefPtr<ScriptCallStack> callStack, AccessControlStatus corsStatus)
+void ExecutionContext::reportException(RawPtr<ErrorEvent> event, int scriptId, PassRefPtr<ScriptCallStack> callStack, AccessControlStatus corsStatus)
 {
-    RefPtrWillBeRawPtr<ErrorEvent> errorEvent = event;
+    RawPtr<ErrorEvent> errorEvent = event;
     if (m_inDispatchErrorEvent) {
         if (!m_pendingExceptions)
             m_pendingExceptions = adoptPtr(new Vector<OwnPtr<PendingException>>());
@@ -169,13 +169,13 @@
     m_pendingExceptions.clear();
 }
 
-bool ExecutionContext::dispatchErrorEvent(PassRefPtrWillBeRawPtr<ErrorEvent> event, AccessControlStatus corsStatus)
+bool ExecutionContext::dispatchErrorEvent(RawPtr<ErrorEvent> event, AccessControlStatus corsStatus)
 {
     EventTarget* target = errorEventTarget();
     if (!target)
         return false;
 
-    RefPtrWillBeRawPtr<ErrorEvent> errorEvent = event;
+    RawPtr<ErrorEvent> errorEvent = event;
     if (shouldSanitizeScriptError(errorEvent->filename(), corsStatus))
         errorEvent = ErrorEvent::createSanitizedError(errorEvent->world());
 
@@ -264,7 +264,7 @@
     m_referrerPolicy = referrerPolicy;
 }
 
-PassOwnPtrWillBeRawPtr<OriginTrialContext> ExecutionContext::createOriginTrialContext()
+RawPtr<OriginTrialContext> ExecutionContext::createOriginTrialContext()
 {
     return nullptr;
 }
diff --git a/third_party/WebKit/Source/core/dom/ExecutionContext.h b/third_party/WebKit/Source/core/dom/ExecutionContext.h
index 9016c2fee..4ed122e7 100644
--- a/third_party/WebKit/Source/core/dom/ExecutionContext.h
+++ b/third_party/WebKit/Source/core/dom/ExecutionContext.h
@@ -59,7 +59,7 @@
 class ScriptCallStack;
 
 class CORE_EXPORT ExecutionContext
-    : public ContextLifecycleNotifier, public WillBeHeapSupplementable<ExecutionContext> {
+    : public ContextLifecycleNotifier, public HeapSupplementable<ExecutionContext> {
     WTF_MAKE_NONCOPYABLE(ExecutionContext);
 public:
     DECLARE_VIRTUAL_TRACE();
@@ -106,9 +106,9 @@
     KURL contextCompleteURL(const String& url) const { return virtualCompleteURL(url); }
 
     bool shouldSanitizeScriptError(const String& sourceURL, AccessControlStatus);
-    void reportException(PassRefPtrWillBeRawPtr<ErrorEvent>, int scriptId, PassRefPtr<ScriptCallStack>, AccessControlStatus);
+    void reportException(RawPtr<ErrorEvent>, int scriptId, PassRefPtr<ScriptCallStack>, AccessControlStatus);
 
-    virtual void addConsoleMessage(PassRefPtrWillBeRawPtr<ConsoleMessage>) = 0;
+    virtual void addConsoleMessage(RawPtr<ConsoleMessage>) = 0;
     virtual void logExceptionToConsole(const String& errorMessage, int scriptId, const String& sourceURL, int lineNumber, int columnNumber, PassRefPtr<ScriptCallStack>) = 0;
 
     PublicURLManager& publicURLManager();
@@ -158,7 +158,7 @@
     ReferrerPolicy getReferrerPolicy() const { return m_referrerPolicy; }
 
     // Override to enable experimental features through origin trials
-    virtual PassOwnPtrWillBeRawPtr<OriginTrialContext> createOriginTrialContext();
+    virtual RawPtr<OriginTrialContext> createOriginTrialContext();
 
 protected:
     ExecutionContext();
@@ -168,7 +168,7 @@
     virtual KURL virtualCompleteURL(const String&) const = 0;
 
 private:
-    bool dispatchErrorEvent(PassRefPtrWillBeRawPtr<ErrorEvent>, AccessControlStatus);
+    bool dispatchErrorEvent(RawPtr<ErrorEvent>, AccessControlStatus);
     void runSuspendableTasks();
 
 #if !ENABLE(OILPAN)
@@ -186,7 +186,7 @@
     bool m_activeDOMObjectsAreSuspended;
     bool m_activeDOMObjectsAreStopped;
 
-    OwnPtrWillBeMember<PublicURLManager> m_publicURLManager;
+    Member<PublicURLManager> m_publicURLManager;
 
     // Counter that keeps track of how many window interaction calls are allowed
     // for this ExecutionContext. Callers are expected to call
diff --git a/third_party/WebKit/Source/core/dom/FirstLetterPseudoElement.h b/third_party/WebKit/Source/core/dom/FirstLetterPseudoElement.h
index 1eaff157..45165eeb 100644
--- a/third_party/WebKit/Source/core/dom/FirstLetterPseudoElement.h
+++ b/third_party/WebKit/Source/core/dom/FirstLetterPseudoElement.h
@@ -37,9 +37,9 @@
 class FirstLetterPseudoElement final : public PseudoElement {
     WTF_MAKE_NONCOPYABLE(FirstLetterPseudoElement);
 public:
-    static PassRefPtrWillBeRawPtr<FirstLetterPseudoElement> create(Element* parent)
+    static RawPtr<FirstLetterPseudoElement> create(Element* parent)
     {
-        return adoptRefWillBeNoop(new FirstLetterPseudoElement(parent));
+        return new FirstLetterPseudoElement(parent);
     }
 
     ~FirstLetterPseudoElement() override;
diff --git a/third_party/WebKit/Source/core/dom/FrameRequestCallbackCollection.h b/third_party/WebKit/Source/core/dom/FrameRequestCallbackCollection.h
index 48306f3..99ee7f8 100644
--- a/third_party/WebKit/Source/core/dom/FrameRequestCallbackCollection.h
+++ b/third_party/WebKit/Source/core/dom/FrameRequestCallbackCollection.h
@@ -28,13 +28,13 @@
     DECLARE_TRACE();
 
 private:
-    using CallbackList = PersistentHeapVectorWillBeHeapVector<Member<FrameRequestCallback>>;
+    using CallbackList = HeapVector<Member<FrameRequestCallback>>;
     CallbackList m_callbacks;
     CallbackList m_callbacksToInvoke; // only non-empty while inside executeCallbacks
 
     CallbackId m_nextCallbackId = 0;
 
-    RawPtrWillBeMember<ExecutionContext> m_context;
+    Member<ExecutionContext> m_context;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/dom/Fullscreen.cpp b/third_party/WebKit/Source/core/dom/Fullscreen.cpp
index 5ccffd81..fe387beb 100644
--- a/third_party/WebKit/Source/core/dom/Fullscreen.cpp
+++ b/third_party/WebKit/Source/core/dom/Fullscreen.cpp
@@ -120,11 +120,11 @@
     return type == EventTypeNames::webkitfullscreenchange || type == EventTypeNames::webkitfullscreenerror;
 }
 
-static PassRefPtrWillBeRawPtr<Event> createEvent(const AtomicString& type, EventTarget& target)
+static RawPtr<Event> createEvent(const AtomicString& type, EventTarget& target)
 {
     EventInit initializer;
     initializer.setBubbles(isPrefixed(type));
-    RefPtrWillBeRawPtr<Event> event = Event::create(type, initializer);
+    RawPtr<Event> event = Event::create(type, initializer);
     event->setTarget(&target);
     return event;
 }
@@ -139,7 +139,7 @@
     Fullscreen* fullscreen = fromIfExists(document);
     if (!fullscreen) {
         fullscreen = new Fullscreen(document);
-        WillBeHeapSupplement<Document>::provideTo(document, supplementName(), adoptPtrWillBeNoop(fullscreen));
+        HeapSupplement<Document>::provideTo(document, supplementName(), adoptPtrWillBeNoop(fullscreen));
     }
 
     return *fullscreen;
@@ -147,7 +147,7 @@
 
 Fullscreen* Fullscreen::fromIfExistsSlow(Document& document)
 {
-    return static_cast<Fullscreen*>(WillBeHeapSupplement<Document>::from(document, supplementName()));
+    return static_cast<Fullscreen*>(HeapSupplement<Document>::from(document, supplementName()));
 }
 
 Element* Fullscreen::fullscreenElementFrom(Document& document)
@@ -256,7 +256,7 @@
         Document* currentDoc = document();
 
         // 3. Let docs be all doc's ancestor browsing context's documents (if any) and doc.
-        WillBeHeapDeque<RawPtrWillBeMember<Document>> docs;
+        HeapDeque<Member<Document>> docs;
 
         do {
             docs.prepend(currentDoc);
@@ -264,7 +264,7 @@
         } while (currentDoc);
 
         // 4. For each document in docs, run these substeps:
-        WillBeHeapDeque<RawPtrWillBeMember<Document>>::iterator current = docs.begin(), following = docs.begin();
+        HeapDeque<Member<Document>>::iterator current = docs.begin(), following = docs.begin();
 
         do {
             ++following;
@@ -345,7 +345,7 @@
     // 3. Let descendants be all the doc's descendant browsing context's documents with a non-empty fullscreen
     // element stack (if any), ordered so that the child of the doc is last and the document furthest
     // away from the doc is first.
-    WillBeHeapDeque<RefPtrWillBeMember<Document>> descendants;
+    HeapDeque<Member<Document>> descendants;
     for (Frame* descendant = document()->frame() ? document()->frame()->tree().traverseNext() : 0; descendant; descendant = descendant->tree().traverseNext()) {
         if (!descendant->isLocalFrame())
             continue;
@@ -528,7 +528,7 @@
 
 void Fullscreen::enqueueChangeEvent(Document& document, RequestType requestType)
 {
-    RefPtrWillBeRawPtr<Event> event;
+    RawPtr<Event> event;
     if (requestType == UnprefixedRequest) {
         event = createEvent(EventTypeNames::fullscreenchange, document);
     } else {
@@ -547,7 +547,7 @@
 
 void Fullscreen::enqueueErrorEvent(Element& element, RequestType requestType)
 {
-    RefPtrWillBeRawPtr<Event> event;
+    RawPtr<Event> event;
     if (requestType == UnprefixedRequest)
         event = createEvent(EventTypeNames::fullscreenerror, element.document());
     else
@@ -561,12 +561,12 @@
     // Since we dispatch events in this function, it's possible that the
     // document will be detached and GC'd. We protect it here to make sure we
     // can finish the function successfully.
-    RefPtrWillBeRawPtr<Document> protectDocument(document());
-    WillBeHeapDeque<RefPtrWillBeMember<Event>> eventQueue;
+    RawPtr<Document> protectDocument(document());
+    HeapDeque<Member<Event>> eventQueue;
     m_eventQueue.swap(eventQueue);
 
     while (!eventQueue.isEmpty()) {
-        RefPtrWillBeRawPtr<Event> event = eventQueue.takeFirst();
+        RawPtr<Event> event = eventQueue.takeFirst();
         Node* target = event->target()->toNode();
 
         // If the element was removed from our tree, also message the documentElement.
@@ -627,7 +627,7 @@
     visitor->trace(m_fullScreenElementStack);
     visitor->trace(m_eventQueue);
 #endif
-    WillBeHeapSupplement<Document>::trace(visitor);
+    HeapSupplement<Document>::trace(visitor);
     DocumentLifecycleObserver::trace(visitor);
 }
 
diff --git a/third_party/WebKit/Source/core/dom/Fullscreen.h b/third_party/WebKit/Source/core/dom/Fullscreen.h
index f7f4b39..3d205fd52 100644
--- a/third_party/WebKit/Source/core/dom/Fullscreen.h
+++ b/third_party/WebKit/Source/core/dom/Fullscreen.h
@@ -45,11 +45,10 @@
 class ComputedStyle;
 
 class CORE_EXPORT Fullscreen final
-    : public NoBaseWillBeGarbageCollectedFinalized<Fullscreen>
-    , public WillBeHeapSupplement<Document>
+    : public GarbageCollectedFinalized<Fullscreen>
+    , public HeapSupplement<Document>
     , public DocumentLifecycleObserver {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(Fullscreen);
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(Fullscreen);
+    USING_GARBAGE_COLLECTED_MIXIN(Fullscreen);
 public:
     virtual ~Fullscreen();
     static const char* supplementName();
@@ -109,11 +108,11 @@
     void enqueueErrorEvent(Element&, RequestType);
     void eventQueueTimerFired(Timer<Fullscreen>*);
 
-    RefPtrWillBeMember<Element> m_fullScreenElement;
-    WillBeHeapVector<std::pair<RefPtrWillBeMember<Element>, RequestType>> m_fullScreenElementStack;
+    Member<Element> m_fullScreenElement;
+    HeapVector<std::pair<Member<Element>, RequestType>> m_fullScreenElementStack;
     LayoutFullScreen* m_fullScreenLayoutObject;
     Timer<Fullscreen> m_eventQueueTimer;
-    WillBeHeapDeque<RefPtrWillBeMember<Event>> m_eventQueue;
+    HeapDeque<Member<Event>> m_eventQueue;
     LayoutRect m_savedPlaceholderFrameRect;
     RefPtr<ComputedStyle> m_savedPlaceholderComputedStyle;
 };
diff --git a/third_party/WebKit/Source/core/dom/IdTargetObserver.h b/third_party/WebKit/Source/core/dom/IdTargetObserver.h
index 750bfbb..16dd55b9 100644
--- a/third_party/WebKit/Source/core/dom/IdTargetObserver.h
+++ b/third_party/WebKit/Source/core/dom/IdTargetObserver.h
@@ -33,7 +33,7 @@
 
 class IdTargetObserverRegistry;
 
-class IdTargetObserver : public NoBaseWillBeGarbageCollectedFinalized<IdTargetObserver> {
+class IdTargetObserver : public GarbageCollectedFinalized<IdTargetObserver> {
 public:
     virtual ~IdTargetObserver();
     DECLARE_VIRTUAL_TRACE();
@@ -46,7 +46,7 @@
 private:
     IdTargetObserverRegistry& registry() { return *m_registry; }
 
-    RawPtrWillBeMember<IdTargetObserverRegistry> m_registry;
+    Member<IdTargetObserverRegistry> m_registry;
     AtomicString m_id;
 };
 
diff --git a/third_party/WebKit/Source/core/dom/IdTargetObserverRegistry.cpp b/third_party/WebKit/Source/core/dom/IdTargetObserverRegistry.cpp
index 491950c9..85cdd6c 100644
--- a/third_party/WebKit/Source/core/dom/IdTargetObserverRegistry.cpp
+++ b/third_party/WebKit/Source/core/dom/IdTargetObserverRegistry.cpp
@@ -29,9 +29,9 @@
 
 namespace blink {
 
-PassOwnPtrWillBeRawPtr<IdTargetObserverRegistry> IdTargetObserverRegistry::create()
+RawPtr<IdTargetObserverRegistry> IdTargetObserverRegistry::create()
 {
-    return adoptPtrWillBeNoop(new IdTargetObserverRegistry());
+    return new IdTargetObserverRegistry();
 }
 
 DEFINE_TRACE(IdTargetObserverRegistry)
@@ -49,7 +49,7 @@
 
     IdToObserverSetMap::AddResult result = m_registry.add(id.impl(), nullptr);
     if (result.isNewEntry)
-        result.storedValue->value = adoptPtrWillBeNoop(new ObserverSet());
+        result.storedValue->value = new ObserverSet();
 
     result.storedValue->value->add(observer);
 }
@@ -76,7 +76,7 @@
     if (!m_notifyingObserversInSet)
         return;
 
-    WillBeHeapVector<RawPtrWillBeMember<IdTargetObserver>> copy;
+    HeapVector<Member<IdTargetObserver>> copy;
     copyToVector(*m_notifyingObserversInSet, copy);
     for (const auto& observer : copy) {
         if (m_notifyingObserversInSet->contains(observer))
diff --git a/third_party/WebKit/Source/core/dom/IdTargetObserverRegistry.h b/third_party/WebKit/Source/core/dom/IdTargetObserverRegistry.h
index ddb6041..10db431 100644
--- a/third_party/WebKit/Source/core/dom/IdTargetObserverRegistry.h
+++ b/third_party/WebKit/Source/core/dom/IdTargetObserverRegistry.h
@@ -36,12 +36,11 @@
 
 class IdTargetObserver;
 
-class IdTargetObserverRegistry final : public NoBaseWillBeGarbageCollectedFinalized<IdTargetObserverRegistry> {
+class IdTargetObserverRegistry final : public GarbageCollectedFinalized<IdTargetObserverRegistry> {
     WTF_MAKE_NONCOPYABLE(IdTargetObserverRegistry);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(IdTargetObserverRegistry);
     friend class IdTargetObserver;
 public:
-    static PassOwnPtrWillBeRawPtr<IdTargetObserverRegistry> create();
+    static RawPtr<IdTargetObserverRegistry> create();
     DECLARE_TRACE();
     void notifyObservers(const AtomicString& id);
     bool hasObservers(const AtomicString& id) const;
@@ -52,10 +51,10 @@
     void removeObserver(const AtomicString& id, IdTargetObserver*);
     void notifyObserversInternal(const AtomicString& id);
 
-    typedef WillBeHeapHashSet<RawPtrWillBeMember<IdTargetObserver>> ObserverSet;
-    typedef WillBeHeapHashMap<StringImpl*, OwnPtrWillBeMember<ObserverSet>> IdToObserverSetMap;
+    typedef HeapHashSet<Member<IdTargetObserver>> ObserverSet;
+    typedef HeapHashMap<StringImpl*, Member<ObserverSet>> IdToObserverSetMap;
     IdToObserverSetMap m_registry;
-    RawPtrWillBeMember<ObserverSet> m_notifyingObserversInSet;
+    Member<ObserverSet> m_notifyingObserversInSet;
 };
 
 inline void IdTargetObserverRegistry::notifyObservers(const AtomicString& id)
diff --git a/third_party/WebKit/Source/core/dom/IncrementLoadEventDelayCount.h b/third_party/WebKit/Source/core/dom/IncrementLoadEventDelayCount.h
index fefb7b6..029d2ee 100644
--- a/third_party/WebKit/Source/core/dom/IncrementLoadEventDelayCount.h
+++ b/third_party/WebKit/Source/core/dom/IncrementLoadEventDelayCount.h
@@ -29,7 +29,7 @@
 
 private:
     IncrementLoadEventDelayCount(Document&);
-    RefPtrWillBePersistent<Document> m_document;
+    Persistent<Document> m_document;
 };
 } // namespace blink
 
diff --git a/third_party/WebKit/Source/core/dom/IntersectionObservation.h b/third_party/WebKit/Source/core/dom/IntersectionObservation.h
index 0d50498..477f361 100644
--- a/third_party/WebKit/Source/core/dom/IntersectionObservation.h
+++ b/third_party/WebKit/Source/core/dom/IntersectionObservation.h
@@ -54,7 +54,7 @@
     // TODO(szager): Why Node instead of Element?  Because NodeIntersectionObserverData::createWeakPtr()
     // returns a WeakPtr<Node>, which cannot be coerced into a WeakPtr<Element>.  When oilpan rolls out,
     // this can be changed to WeakMember<Element>.
-    WeakPtrWillBeWeakMember<Node> m_target;
+    WeakMember<Node> m_target;
 
     unsigned m_shouldReportRootBounds : 1;
     unsigned m_lastThresholdIndex : 30;
diff --git a/third_party/WebKit/Source/core/dom/IntersectionObserver.cpp b/third_party/WebKit/Source/core/dom/IntersectionObserver.cpp
index dac0764..25fa579 100644
--- a/third_party/WebKit/Source/core/dom/IntersectionObserver.cpp
+++ b/third_party/WebKit/Source/core/dom/IntersectionObserver.cpp
@@ -82,7 +82,7 @@
 
 IntersectionObserver* IntersectionObserver::create(const IntersectionObserverInit& observerInit, IntersectionObserverCallback& callback, ExceptionState& exceptionState)
 {
-    RefPtrWillBeRawPtr<Node> root = observerInit.root();
+    RawPtr<Node> root = observerInit.root();
     if (!root) {
         // TODO(szager): Use Document instead of document element for implicit root. (crbug.com/570538)
         ExecutionContext* context = callback.getExecutionContext();
diff --git a/third_party/WebKit/Source/core/dom/IntersectionObserver.h b/third_party/WebKit/Source/core/dom/IntersectionObserver.h
index 8b1efff..de9fc6d1 100644
--- a/third_party/WebKit/Source/core/dom/IntersectionObserver.h
+++ b/third_party/WebKit/Source/core/dom/IntersectionObserver.h
@@ -60,7 +60,7 @@
 #endif
 
     Member<IntersectionObserverCallback> m_callback;
-    WeakPtrWillBeWeakMember<Node> m_root;
+    WeakMember<Node> m_root;
     HeapHashSet<WeakMember<IntersectionObservation>> m_observations;
     HeapVector<Member<IntersectionObserverEntry>> m_entries;
     Vector<float> m_thresholds;
diff --git a/third_party/WebKit/Source/core/dom/IntersectionObserverController.h b/third_party/WebKit/Source/core/dom/IntersectionObserverController.h
index e75ede9f..3757835f 100644
--- a/third_party/WebKit/Source/core/dom/IntersectionObserverController.h
+++ b/third_party/WebKit/Source/core/dom/IntersectionObserverController.h
@@ -17,7 +17,7 @@
 namespace blink {
 
 class IntersectionObserverController : public GarbageCollectedFinalized<IntersectionObserverController>, public ActiveDOMObject {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(IntersectionObserverController);
+    USING_GARBAGE_COLLECTED_MIXIN(IntersectionObserverController);
 public:
     static IntersectionObserverController* create(Document*);
     ~IntersectionObserverController();
diff --git a/third_party/WebKit/Source/core/dom/IntersectionObserverEntry.h b/third_party/WebKit/Source/core/dom/IntersectionObserverEntry.h
index 3b05aa1..eb67a89 100644
--- a/third_party/WebKit/Source/core/dom/IntersectionObserverEntry.h
+++ b/third_party/WebKit/Source/core/dom/IntersectionObserverEntry.h
@@ -34,7 +34,7 @@
     Member<ClientRect> m_boundingClientRect;
     Member<ClientRect> m_rootBounds;
     Member<ClientRect> m_intersectionRect;
-    RefPtrWillBeMember<Element> m_target;
+    Member<Element> m_target;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/dom/LayoutTreeBuilder.h b/third_party/WebKit/Source/core/dom/LayoutTreeBuilder.h
index 4a4a11f..d3fbef3 100644
--- a/third_party/WebKit/Source/core/dom/LayoutTreeBuilder.h
+++ b/third_party/WebKit/Source/core/dom/LayoutTreeBuilder.h
@@ -62,7 +62,7 @@
         return LayoutTreeBuilderTraversal::nextSiblingLayoutObject(*m_node);
     }
 
-    RawPtrWillBeMember<NodeType> m_node;
+    Member<NodeType> m_node;
     LayoutObject* m_layoutObjectParent;
 };
 
diff --git a/third_party/WebKit/Source/core/dom/LayoutTreeBuilderTraversal.cpp b/third_party/WebKit/Source/core/dom/LayoutTreeBuilderTraversal.cpp
index ec3518e8..f5d97695 100644
--- a/third_party/WebKit/Source/core/dom/LayoutTreeBuilderTraversal.cpp
+++ b/third_party/WebKit/Source/core/dom/LayoutTreeBuilderTraversal.cpp
@@ -237,7 +237,7 @@
 {
     if (!element.isInTopLayer())
         return 0;
-    const WillBeHeapVector<RefPtrWillBeMember<Element>>& topLayerElements = element.document().topLayerElements();
+    const HeapVector<Member<Element>>& topLayerElements = element.document().topLayerElements();
     size_t position = topLayerElements.find(&element);
     ASSERT(position != kNotFound);
     for (size_t i = position + 1; i < topLayerElements.size(); ++i) {
diff --git a/third_party/WebKit/Source/core/dom/LayoutTreeBuilderTraversal.h b/third_party/WebKit/Source/core/dom/LayoutTreeBuilderTraversal.h
index 39bb2e0..d17d74b7 100644
--- a/third_party/WebKit/Source/core/dom/LayoutTreeBuilderTraversal.h
+++ b/third_party/WebKit/Source/core/dom/LayoutTreeBuilderTraversal.h
@@ -54,7 +54,7 @@
     }
 
 private:
-    RawPtrWillBeMember<const InsertionPoint> m_insertionPoint;
+    Member<const InsertionPoint> m_insertionPoint;
 };
 
 CORE_EXPORT ContainerNode* parent(const Node&, ParentDetails* = 0);
diff --git a/third_party/WebKit/Source/core/dom/LiveNodeList.cpp b/third_party/WebKit/Source/core/dom/LiveNodeList.cpp
index 58bb1071..81b0b2a 100644
--- a/third_party/WebKit/Source/core/dom/LiveNodeList.cpp
+++ b/third_party/WebKit/Source/core/dom/LiveNodeList.cpp
@@ -39,7 +39,7 @@
     }
 
 private:
-    RawPtrWillBeMember<const LiveNodeList> m_list;
+    Member<const LiveNodeList> m_list;
 };
 
 } // namespace
diff --git a/third_party/WebKit/Source/core/dom/LiveNodeList.h b/third_party/WebKit/Source/core/dom/LiveNodeList.h
index c8457dd..fa483d08 100644
--- a/third_party/WebKit/Source/core/dom/LiveNodeList.h
+++ b/third_party/WebKit/Source/core/dom/LiveNodeList.h
@@ -36,7 +36,7 @@
 class Element;
 
 class LiveNodeList : public NodeList, public LiveNodeListBase {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(LiveNodeList);
+    USING_GARBAGE_COLLECTED_MIXIN(LiveNodeList);
 public:
     LiveNodeList(ContainerNode& ownerNode, CollectionType collectionType, NodeListInvalidationType invalidationType, NodeListRootType rootType = NodeListRootType::Node)
         : LiveNodeListBase(ownerNode, rootType, invalidationType, collectionType) { }
diff --git a/third_party/WebKit/Source/core/dom/LiveNodeListBase.h b/third_party/WebKit/Source/core/dom/LiveNodeListBase.h
index 306d3e8a..f465755 100644
--- a/third_party/WebKit/Source/core/dom/LiveNodeListBase.h
+++ b/third_party/WebKit/Source/core/dom/LiveNodeListBase.h
@@ -39,7 +39,7 @@
     TreeScope,
 };
 
-class CORE_EXPORT LiveNodeListBase : public WillBeGarbageCollectedMixin {
+class CORE_EXPORT LiveNodeListBase : public GarbageCollectedMixin {
 public:
     LiveNodeListBase(ContainerNode& ownerNode, NodeListRootType rootType, NodeListInvalidationType invalidationType,
         CollectionType collectionType)
@@ -88,7 +88,7 @@
     DEFINE_INLINE_VIRTUAL_TRACE() { visitor->trace(m_ownerNode); }
 
 private:
-    RefPtrWillBeMember<ContainerNode> m_ownerNode; // Cannot be null.
+    Member<ContainerNode> m_ownerNode; // Cannot be null.
     const unsigned m_rootType : 1;
     const unsigned m_invalidationType : 4;
     const unsigned m_collectionType : 5;
diff --git a/third_party/WebKit/Source/core/dom/MainThreadTaskRunner.h b/third_party/WebKit/Source/core/dom/MainThreadTaskRunner.h
index 14a5c7a..385ae5e 100644
--- a/third_party/WebKit/Source/core/dom/MainThreadTaskRunner.h
+++ b/third_party/WebKit/Source/core/dom/MainThreadTaskRunner.h
@@ -42,12 +42,10 @@
 class ExecutionContext;
 class ExecutionContextTask;
 
-class CORE_EXPORT MainThreadTaskRunner final : public NoBaseWillBeGarbageCollectedFinalized<MainThreadTaskRunner> {
+class CORE_EXPORT MainThreadTaskRunner final : public GarbageCollectedFinalized<MainThreadTaskRunner> {
     WTF_MAKE_NONCOPYABLE(MainThreadTaskRunner);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(MainThreadTaskRunner);
-
 public:
-    static PassOwnPtrWillBeRawPtr<MainThreadTaskRunner> create(ExecutionContext*);
+    static RawPtr<MainThreadTaskRunner> create(ExecutionContext*);
 
     ~MainThreadTaskRunner();
 
@@ -67,7 +65,7 @@
 
     void postTaskInternal(const WebTraceLocation&, PassOwnPtr<ExecutionContextTask>, bool isInspectorTask);
 
-    RawPtrWillBeMember<ExecutionContext> m_context;
+    Member<ExecutionContext> m_context;
 #if !ENABLE(OILPAN)
     WeakPtrFactory<MainThreadTaskRunner> m_weakFactory;
 #endif
@@ -76,9 +74,9 @@
     bool m_suspended;
 };
 
-inline PassOwnPtrWillBeRawPtr<MainThreadTaskRunner> MainThreadTaskRunner::create(ExecutionContext* context)
+inline RawPtr<MainThreadTaskRunner> MainThreadTaskRunner::create(ExecutionContext* context)
 {
-    return adoptPtrWillBeNoop(new MainThreadTaskRunner(context));
+    return new MainThreadTaskRunner(context);
 }
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/dom/MainThreadTaskRunnerTest.cpp b/third_party/WebKit/Source/core/dom/MainThreadTaskRunnerTest.cpp
index 8dbfd06a..1c97da2 100644
--- a/third_party/WebKit/Source/core/dom/MainThreadTaskRunnerTest.cpp
+++ b/third_party/WebKit/Source/core/dom/MainThreadTaskRunnerTest.cpp
@@ -45,8 +45,8 @@
 
 TEST(MainThreadTaskRunnerTest, PostTask)
 {
-    RefPtrWillBeRawPtr<NullExecutionContext> context = adoptRefWillBeNoop(new NullExecutionContext());
-    OwnPtrWillBeRawPtr<MainThreadTaskRunner> runner = MainThreadTaskRunner::create(context.get());
+    RawPtr<NullExecutionContext> context = new NullExecutionContext();
+    RawPtr<MainThreadTaskRunner> runner = MainThreadTaskRunner::create(context.get());
     bool isMarked = false;
 
     runner->postTask(BLINK_FROM_HERE, createSameThreadTask(&markBoolean, &isMarked));
@@ -57,8 +57,8 @@
 
 TEST(MainThreadTaskRunnerTest, SuspendTask)
 {
-    RefPtrWillBeRawPtr<NullExecutionContext> context = adoptRefWillBeNoop(new NullExecutionContext());
-    OwnPtrWillBeRawPtr<MainThreadTaskRunner> runner = MainThreadTaskRunner::create(context.get());
+    RawPtr<NullExecutionContext> context = new NullExecutionContext();
+    RawPtr<MainThreadTaskRunner> runner = MainThreadTaskRunner::create(context.get());
     bool isMarked = false;
 
     context->setTasksNeedSuspension(true);
@@ -75,8 +75,8 @@
 
 TEST(MainThreadTaskRunnerTest, RemoveRunner)
 {
-    RefPtrWillBeRawPtr<NullExecutionContext> context = adoptRefWillBeNoop(new NullExecutionContext());
-    OwnPtrWillBeRawPtr<MainThreadTaskRunner> runner = MainThreadTaskRunner::create(context.get());
+    RawPtr<NullExecutionContext> context = new NullExecutionContext();
+    RawPtr<MainThreadTaskRunner> runner = MainThreadTaskRunner::create(context.get());
     bool isMarked = false;
 
     context->setTasksNeedSuspension(true);
diff --git a/third_party/WebKit/Source/core/dom/MessageChannel.cpp b/third_party/WebKit/Source/core/dom/MessageChannel.cpp
index 92fa87d..c6bde2b 100644
--- a/third_party/WebKit/Source/core/dom/MessageChannel.cpp
+++ b/third_party/WebKit/Source/core/dom/MessageChannel.cpp
@@ -32,8 +32,6 @@
 
 namespace blink {
 
-DEFINE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(MessageChannel);
-
 static void createChannel(MessagePort* port1, MessagePort* port2)
 {
     WebMessagePortChannel* channel1;
diff --git a/third_party/WebKit/Source/core/dom/MessageChannel.h b/third_party/WebKit/Source/core/dom/MessageChannel.h
index c96b55f..353e974 100644
--- a/third_party/WebKit/Source/core/dom/MessageChannel.h
+++ b/third_party/WebKit/Source/core/dom/MessageChannel.h
@@ -37,7 +37,6 @@
 class ExecutionContext;
 
 class MessageChannel final : public GarbageCollectedFinalized<MessageChannel>, public ScriptWrappable {
-    DECLARE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(MessageChannel);
     DEFINE_WRAPPERTYPEINFO();
 public:
     static MessageChannel* create(ExecutionContext* context)
diff --git a/third_party/WebKit/Source/core/dom/MessagePort.cpp b/third_party/WebKit/Source/core/dom/MessagePort.cpp
index f6a8bef..2c3a2f2 100644
--- a/third_party/WebKit/Source/core/dom/MessagePort.cpp
+++ b/third_party/WebKit/Source/core/dom/MessagePort.cpp
@@ -210,7 +210,7 @@
             return;
 
         MessagePortArray* ports = MessagePort::entanglePorts(*getExecutionContext(), channels.release());
-        RefPtrWillBeRawPtr<Event> evt = MessageEvent::create(ports, message.release());
+        RawPtr<Event> evt = MessageEvent::create(ports, message.release());
 
         dispatchEvent(evt.release());
     }
diff --git a/third_party/WebKit/Source/core/dom/MessagePort.h b/third_party/WebKit/Source/core/dom/MessagePort.h
index 3117aa7..8f43329 100644
--- a/third_party/WebKit/Source/core/dom/MessagePort.h
+++ b/third_party/WebKit/Source/core/dom/MessagePort.h
@@ -63,7 +63,7 @@
     , public WebMessagePortChannelClient {
     DEFINE_WRAPPERTYPEINFO();
     REFCOUNTED_GARBAGE_COLLECTED_EVENT_TARGET(MessagePort);
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(MessagePort);
+    USING_GARBAGE_COLLECTED_MIXIN(MessagePort);
 public:
     static MessagePort* create(ExecutionContext&);
     ~MessagePort() override;
@@ -100,7 +100,7 @@
     // ActiveDOMObject implementation.
     void stop() override { close(); }
 
-    void setOnmessage(PassRefPtrWillBeRawPtr<EventListener> listener)
+    void setOnmessage(RawPtr<EventListener> listener)
     {
         setAttributeEventListener(EventTypeNames::message, listener);
         start();
diff --git a/third_party/WebKit/Source/core/dom/MutationCallback.h b/third_party/WebKit/Source/core/dom/MutationCallback.h
index 0e737c7..9102a4f5 100644
--- a/third_party/WebKit/Source/core/dom/MutationCallback.h
+++ b/third_party/WebKit/Source/core/dom/MutationCallback.h
@@ -40,11 +40,11 @@
 class MutationRecord;
 class MutationObserver;
 
-class MutationCallback : public NoBaseWillBeGarbageCollectedFinalized<MutationCallback> {
+class MutationCallback : public GarbageCollectedFinalized<MutationCallback> {
 public:
     virtual ~MutationCallback() { }
 
-    virtual void call(const WillBeHeapVector<RefPtrWillBeMember<MutationRecord>>&, MutationObserver*) = 0;
+    virtual void call(const HeapVector<Member<MutationRecord>>&, MutationObserver*) = 0;
     virtual ExecutionContext* getExecutionContext() const = 0;
 
     DEFINE_INLINE_VIRTUAL_TRACE() { }
diff --git a/third_party/WebKit/Source/core/dom/MutationObserver.cpp b/third_party/WebKit/Source/core/dom/MutationObserver.cpp
index 50207cd3..9b7a0d9c 100644
--- a/third_party/WebKit/Source/core/dom/MutationObserver.cpp
+++ b/third_party/WebKit/Source/core/dom/MutationObserver.cpp
@@ -46,19 +46,19 @@
 static unsigned s_observerPriority = 0;
 
 struct MutationObserver::ObserverLessThan {
-    bool operator()(const RefPtrWillBeMember<MutationObserver>& lhs, const RefPtrWillBeMember<MutationObserver>& rhs)
+    bool operator()(const Member<MutationObserver>& lhs, const Member<MutationObserver>& rhs)
     {
         return lhs->m_priority < rhs->m_priority;
     }
 };
 
-PassRefPtrWillBeRawPtr<MutationObserver> MutationObserver::create(PassOwnPtrWillBeRawPtr<MutationCallback> callback)
+RawPtr<MutationObserver> MutationObserver::create(RawPtr<MutationCallback> callback)
 {
     ASSERT(isMainThread());
-    return adoptRefWillBeNoop(new MutationObserver(callback));
+    return new MutationObserver(callback);
 }
 
-MutationObserver::MutationObserver(PassOwnPtrWillBeRawPtr<MutationCallback> callback)
+MutationObserver::MutationObserver(RawPtr<MutationCallback> callback)
     : m_callback(callback)
     , m_priority(s_observerPriority++)
 {
@@ -166,17 +166,17 @@
 
 static MutationObserverSet& activeMutationObservers()
 {
-    DEFINE_STATIC_LOCAL(OwnPtrWillBePersistent<MutationObserverSet>, activeObservers, (adoptPtrWillBeNoop(new MutationObserverSet())));
+    DEFINE_STATIC_LOCAL(Persistent<MutationObserverSet>, activeObservers, (new MutationObserverSet()));
     return *activeObservers;
 }
 
 static MutationObserverSet& suspendedMutationObservers()
 {
-    DEFINE_STATIC_LOCAL(OwnPtrWillBePersistent<MutationObserverSet>, suspendedObservers, (adoptPtrWillBeNoop(new MutationObserverSet())));
+    DEFINE_STATIC_LOCAL(Persistent<MutationObserverSet>, suspendedObservers, (new MutationObserverSet()));
     return *suspendedObservers;
 }
 
-static void activateObserver(PassRefPtrWillBeRawPtr<MutationObserver> observer)
+static void activateObserver(RawPtr<MutationObserver> observer)
 {
     if (activeMutationObservers().isEmpty())
         Microtask::enqueueMicrotask(WTF::bind(&MutationObserver::deliverMutations));
@@ -184,7 +184,7 @@
     activeMutationObservers().add(observer);
 }
 
-void MutationObserver::enqueueMutationRecord(PassRefPtrWillBeRawPtr<MutationRecord> mutation)
+void MutationObserver::enqueueMutationRecord(RawPtr<MutationRecord> mutation)
 {
     ASSERT(isMainThread());
     m_records.append(mutation);
@@ -198,9 +198,9 @@
     activateObserver(this);
 }
 
-WillBeHeapHashSet<RawPtrWillBeMember<Node>> MutationObserver::getObservedNodes() const
+HeapHashSet<Member<Node>> MutationObserver::getObservedNodes() const
 {
-    WillBeHeapHashSet<RawPtrWillBeMember<Node>> observedNodes;
+    HeapHashSet<Member<Node>> observedNodes;
     for (const auto& registration : m_registrations)
         registration->addRegistrationNodesToSet(observedNodes);
     return observedNodes;
@@ -217,7 +217,7 @@
 
     // Calling clearTransientRegistrations() can modify m_registrations, so it's necessary
     // to make a copy of the transient registrations before operating on them.
-    WillBeHeapVector<RawPtrWillBeMember<MutationObserverRegistration>, 1> transientRegistrations;
+    HeapVector<Member<MutationObserverRegistration>, 1> transientRegistrations;
     for (auto& registration : m_registrations) {
         if (registration->hasTransientRegistrations())
             transientRegistrations.append(registration);
diff --git a/third_party/WebKit/Source/core/dom/MutationObserver.h b/third_party/WebKit/Source/core/dom/MutationObserver.h
index deda1e3..698863e 100644
--- a/third_party/WebKit/Source/core/dom/MutationObserver.h
+++ b/third_party/WebKit/Source/core/dom/MutationObserver.h
@@ -53,12 +53,12 @@
 typedef unsigned char MutationObserverOptions;
 typedef unsigned char MutationRecordDeliveryOptions;
 
-using MutationObserverSet = WillBeHeapHashSet<RefPtrWillBeMember<MutationObserver>>;
-using MutationObserverRegistrationSet = WillBeHeapHashSet<RawPtrWillBeWeakMember<MutationObserverRegistration>>;
-using MutationObserverVector = WillBeHeapVector<RefPtrWillBeMember<MutationObserver>>;
-using MutationRecordVector = WillBeHeapVector<RefPtrWillBeMember<MutationRecord>>;
+using MutationObserverSet = HeapHashSet<Member<MutationObserver>>;
+using MutationObserverRegistrationSet = HeapHashSet<WeakMember<MutationObserverRegistration>>;
+using MutationObserverVector = HeapVector<Member<MutationObserver>>;
+using MutationRecordVector = HeapVector<Member<MutationRecord>>;
 
-class MutationObserver final : public RefCountedWillBeGarbageCollectedFinalized<MutationObserver>, public ScriptWrappable {
+class MutationObserver final : public GarbageCollectedFinalized<MutationObserver>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
     enum MutationType {
@@ -79,7 +79,7 @@
         CharacterDataOldValue = 1 << 6,
     };
 
-    static PassRefPtrWillBeRawPtr<MutationObserver> create(PassOwnPtrWillBeRawPtr<MutationCallback>);
+    static RawPtr<MutationObserver> create(RawPtr<MutationCallback>);
     static void resumeSuspendedObservers();
     static void deliverMutations();
 
@@ -90,10 +90,10 @@
     void disconnect();
     void observationStarted(MutationObserverRegistration*);
     void observationEnded(MutationObserverRegistration*);
-    void enqueueMutationRecord(PassRefPtrWillBeRawPtr<MutationRecord>);
+    void enqueueMutationRecord(RawPtr<MutationRecord>);
     void setHasTransientRegistration();
 
-    WillBeHeapHashSet<RawPtrWillBeMember<Node>> getObservedNodes() const;
+    HeapHashSet<Member<Node>> getObservedNodes() const;
 
     // Eagerly finalized as destructor accesses heap object members.
     EAGERLY_FINALIZE();
@@ -102,11 +102,11 @@
 private:
     struct ObserverLessThan;
 
-    explicit MutationObserver(PassOwnPtrWillBeRawPtr<MutationCallback>);
+    explicit MutationObserver(RawPtr<MutationCallback>);
     void deliver();
     bool shouldBeSuspended() const;
 
-    OwnPtrWillBeMember<MutationCallback> m_callback;
+    Member<MutationCallback> m_callback;
     MutationRecordVector m_records;
     MutationObserverRegistrationSet m_registrations;
     unsigned m_priority;
diff --git a/third_party/WebKit/Source/core/dom/MutationObserverInterestGroup.cpp b/third_party/WebKit/Source/core/dom/MutationObserverInterestGroup.cpp
index b5dcbbd..b3fb0de 100644
--- a/third_party/WebKit/Source/core/dom/MutationObserverInterestGroup.cpp
+++ b/third_party/WebKit/Source/core/dom/MutationObserverInterestGroup.cpp
@@ -34,18 +34,18 @@
 
 namespace blink {
 
-PassOwnPtrWillBeRawPtr<MutationObserverInterestGroup> MutationObserverInterestGroup::createIfNeeded(Node& target, MutationObserver::MutationType type, MutationRecordDeliveryOptions oldValueFlag, const QualifiedName* attributeName)
+RawPtr<MutationObserverInterestGroup> MutationObserverInterestGroup::createIfNeeded(Node& target, MutationObserver::MutationType type, MutationRecordDeliveryOptions oldValueFlag, const QualifiedName* attributeName)
 {
     ASSERT((type == MutationObserver::Attributes && attributeName) || !attributeName);
-    WillBeHeapHashMap<RefPtrWillBeMember<MutationObserver>, MutationRecordDeliveryOptions> observers;
+    HeapHashMap<Member<MutationObserver>, MutationRecordDeliveryOptions> observers;
     target.getRegisteredMutationObserversOfType(observers, type, attributeName);
     if (observers.isEmpty())
         return nullptr;
 
-    return adoptPtrWillBeNoop(new MutationObserverInterestGroup(observers, oldValueFlag));
+    return new MutationObserverInterestGroup(observers, oldValueFlag);
 }
 
-MutationObserverInterestGroup::MutationObserverInterestGroup(WillBeHeapHashMap<RefPtrWillBeMember<MutationObserver>, MutationRecordDeliveryOptions>& observers, MutationRecordDeliveryOptions oldValueFlag)
+MutationObserverInterestGroup::MutationObserverInterestGroup(HeapHashMap<Member<MutationObserver>, MutationRecordDeliveryOptions>& observers, MutationRecordDeliveryOptions oldValueFlag)
     : m_oldValueFlag(oldValueFlag)
 {
     ASSERT(!observers.isEmpty());
@@ -61,10 +61,10 @@
     return false;
 }
 
-void MutationObserverInterestGroup::enqueueMutationRecord(PassRefPtrWillBeRawPtr<MutationRecord> prpMutation)
+void MutationObserverInterestGroup::enqueueMutationRecord(RawPtr<MutationRecord> prpMutation)
 {
-    RefPtrWillBeRawPtr<MutationRecord> mutation = prpMutation;
-    RefPtrWillBeRawPtr<MutationRecord> mutationWithNullOldValue = nullptr;
+    RawPtr<MutationRecord> mutation = prpMutation;
+    RawPtr<MutationRecord> mutationWithNullOldValue = nullptr;
     for (auto& iter : m_observers) {
         MutationObserver* observer = iter.key.get();
         if (hasOldValue(iter.value)) {
diff --git a/third_party/WebKit/Source/core/dom/MutationObserverInterestGroup.h b/third_party/WebKit/Source/core/dom/MutationObserverInterestGroup.h
index 45d3b8c..7703123 100644
--- a/third_party/WebKit/Source/core/dom/MutationObserverInterestGroup.h
+++ b/third_party/WebKit/Source/core/dom/MutationObserverInterestGroup.h
@@ -41,10 +41,9 @@
 
 namespace blink {
 
-class MutationObserverInterestGroup final : public NoBaseWillBeGarbageCollected<MutationObserverInterestGroup> {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(MutationObserverInterestGroup);
+class MutationObserverInterestGroup final : public GarbageCollected<MutationObserverInterestGroup> {
 public:
-    static PassOwnPtrWillBeRawPtr<MutationObserverInterestGroup> createForChildListMutation(Node& target)
+    static RawPtr<MutationObserverInterestGroup> createForChildListMutation(Node& target)
     {
         if (!target.document().hasMutationObserversOfType(MutationObserver::ChildList))
             return nullptr;
@@ -53,7 +52,7 @@
         return createIfNeeded(target, MutationObserver::ChildList, oldValueFlag);
     }
 
-    static PassOwnPtrWillBeRawPtr<MutationObserverInterestGroup> createForCharacterDataMutation(Node& target)
+    static RawPtr<MutationObserverInterestGroup> createForCharacterDataMutation(Node& target)
     {
         if (!target.document().hasMutationObserversOfType(MutationObserver::CharacterData))
             return nullptr;
@@ -61,7 +60,7 @@
         return createIfNeeded(target, MutationObserver::CharacterData, MutationObserver::CharacterDataOldValue);
     }
 
-    static PassOwnPtrWillBeRawPtr<MutationObserverInterestGroup> createForAttributesMutation(Node& target, const QualifiedName& attributeName)
+    static RawPtr<MutationObserverInterestGroup> createForAttributesMutation(Node& target, const QualifiedName& attributeName)
     {
         if (!target.document().hasMutationObserversOfType(MutationObserver::Attributes))
             return nullptr;
@@ -70,17 +69,17 @@
     }
 
     bool isOldValueRequested();
-    void enqueueMutationRecord(PassRefPtrWillBeRawPtr<MutationRecord>);
+    void enqueueMutationRecord(RawPtr<MutationRecord>);
 
     DECLARE_TRACE();
 
 private:
-    static PassOwnPtrWillBeRawPtr<MutationObserverInterestGroup> createIfNeeded(Node& target, MutationObserver::MutationType, MutationRecordDeliveryOptions oldValueFlag, const QualifiedName* attributeName = 0);
-    MutationObserverInterestGroup(WillBeHeapHashMap<RefPtrWillBeMember<MutationObserver>, MutationRecordDeliveryOptions>& observers, MutationRecordDeliveryOptions oldValueFlag);
+    static RawPtr<MutationObserverInterestGroup> createIfNeeded(Node& target, MutationObserver::MutationType, MutationRecordDeliveryOptions oldValueFlag, const QualifiedName* attributeName = 0);
+    MutationObserverInterestGroup(HeapHashMap<Member<MutationObserver>, MutationRecordDeliveryOptions>& observers, MutationRecordDeliveryOptions oldValueFlag);
 
     bool hasOldValue(MutationRecordDeliveryOptions options) { return options & m_oldValueFlag; }
 
-    WillBeHeapHashMap<RefPtrWillBeMember<MutationObserver>, MutationRecordDeliveryOptions> m_observers;
+    HeapHashMap<Member<MutationObserver>, MutationRecordDeliveryOptions> m_observers;
     MutationRecordDeliveryOptions m_oldValueFlag;
 };
 
diff --git a/third_party/WebKit/Source/core/dom/MutationObserverRegistration.cpp b/third_party/WebKit/Source/core/dom/MutationObserverRegistration.cpp
index b114f2a..23eef8d 100644
--- a/third_party/WebKit/Source/core/dom/MutationObserverRegistration.cpp
+++ b/third_party/WebKit/Source/core/dom/MutationObserverRegistration.cpp
@@ -35,9 +35,9 @@
 
 namespace blink {
 
-PassOwnPtrWillBeRawPtr<MutationObserverRegistration> MutationObserverRegistration::create(MutationObserver& observer, Node* registrationNode, MutationObserverOptions options, const HashSet<AtomicString>& attributeFilter)
+RawPtr<MutationObserverRegistration> MutationObserverRegistration::create(MutationObserver& observer, Node* registrationNode, MutationObserverOptions options, const HashSet<AtomicString>& attributeFilter)
 {
-    return adoptPtrWillBeNoop(new MutationObserverRegistration(observer, registrationNode, options, attributeFilter));
+    return new MutationObserverRegistration(observer, registrationNode, options, attributeFilter);
 }
 
 MutationObserverRegistration::MutationObserverRegistration(MutationObserver& observer, Node* registrationNode, MutationObserverOptions options, const HashSet<AtomicString>& attributeFilter)
@@ -83,7 +83,7 @@
 
         ASSERT(m_registrationNode);
         ASSERT(!m_registrationNodeKeepAlive);
-        m_registrationNodeKeepAlive = PassRefPtrWillBeRawPtr<Node>(m_registrationNode.get()); // Balanced in clearTransientRegistrations.
+        m_registrationNodeKeepAlive = RawPtr<Node>(m_registrationNode.get()); // Balanced in clearTransientRegistrations.
     }
     m_transientRegistrationNodes->add(&node);
 }
@@ -129,7 +129,7 @@
     return m_attributeFilter.contains(attributeName->localName());
 }
 
-void MutationObserverRegistration::addRegistrationNodesToSet(WillBeHeapHashSet<RawPtrWillBeMember<Node>>& nodes) const
+void MutationObserverRegistration::addRegistrationNodesToSet(HeapHashSet<Member<Node>>& nodes) const
 {
     ASSERT(m_registrationNode);
     nodes.add(m_registrationNode.get());
diff --git a/third_party/WebKit/Source/core/dom/MutationObserverRegistration.h b/third_party/WebKit/Source/core/dom/MutationObserverRegistration.h
index 1a612c7..e6992d4 100644
--- a/third_party/WebKit/Source/core/dom/MutationObserverRegistration.h
+++ b/third_party/WebKit/Source/core/dom/MutationObserverRegistration.h
@@ -41,10 +41,9 @@
 
 class QualifiedName;
 
-class MutationObserverRegistration final : public NoBaseWillBeGarbageCollectedFinalized<MutationObserverRegistration> {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(MutationObserverRegistration);
+class MutationObserverRegistration final : public GarbageCollectedFinalized<MutationObserverRegistration> {
 public:
-    static PassOwnPtrWillBeRawPtr<MutationObserverRegistration> create(MutationObserver&, Node*, MutationObserverOptions, const HashSet<AtomicString>& attributeFilter);
+    static RawPtr<MutationObserverRegistration> create(MutationObserver&, Node*, MutationObserverOptions, const HashSet<AtomicString>& attributeFilter);
     ~MutationObserverRegistration();
 
     void resetObservation(MutationObserverOptions, const HashSet<AtomicString>& attributeFilter);
@@ -60,7 +59,7 @@
     MutationRecordDeliveryOptions deliveryOptions() const { return m_options & (MutationObserver::AttributeOldValue | MutationObserver::CharacterDataOldValue); }
     MutationObserverOptions mutationTypes() const { return m_options & MutationObserver::AllMutationTypes; }
 
-    void addRegistrationNodesToSet(WillBeHeapHashSet<RawPtrWillBeMember<Node>>&) const;
+    void addRegistrationNodesToSet(HeapHashSet<Member<Node>>&) const;
 
     DECLARE_TRACE();
 
@@ -69,11 +68,11 @@
 private:
     MutationObserverRegistration(MutationObserver&, Node*, MutationObserverOptions, const HashSet<AtomicString>& attributeFilter);
 
-    RefPtrWillBeMember<MutationObserver> m_observer;
-    RawPtrWillBeWeakMember<Node> m_registrationNode;
-    RefPtrWillBeMember<Node> m_registrationNodeKeepAlive;
-    typedef WillBeHeapHashSet<RefPtrWillBeMember<Node>> NodeHashSet;
-    OwnPtrWillBeMember<NodeHashSet> m_transientRegistrationNodes;
+    Member<MutationObserver> m_observer;
+    WeakMember<Node> m_registrationNode;
+    Member<Node> m_registrationNodeKeepAlive;
+    typedef HeapHashSet<Member<Node>> NodeHashSet;
+    Member<NodeHashSet> m_transientRegistrationNodes;
 
     MutationObserverOptions m_options;
     HashSet<AtomicString> m_attributeFilter;
diff --git a/third_party/WebKit/Source/core/dom/MutationRecord.cpp b/third_party/WebKit/Source/core/dom/MutationRecord.cpp
index a9968b2..1080f52 100644
--- a/third_party/WebKit/Source/core/dom/MutationRecord.cpp
+++ b/third_party/WebKit/Source/core/dom/MutationRecord.cpp
@@ -42,7 +42,7 @@
 
 class ChildListRecord : public MutationRecord {
 public:
-    ChildListRecord(PassRefPtrWillBeRawPtr<Node> target, PassRefPtrWillBeRawPtr<StaticNodeList> added, PassRefPtrWillBeRawPtr<StaticNodeList> removed, PassRefPtrWillBeRawPtr<Node> previousSibling, PassRefPtrWillBeRawPtr<Node> nextSibling)
+    ChildListRecord(RawPtr<Node> target, RawPtr<StaticNodeList> added, RawPtr<StaticNodeList> removed, RawPtr<Node> previousSibling, RawPtr<Node> nextSibling)
         : m_target(target)
         , m_addedNodes(added)
         , m_removedNodes(removed)
@@ -69,16 +69,16 @@
     Node* previousSibling() override { return m_previousSibling.get(); }
     Node* nextSibling() override { return m_nextSibling.get(); }
 
-    RefPtrWillBeMember<Node> m_target;
-    RefPtrWillBeMember<StaticNodeList> m_addedNodes;
-    RefPtrWillBeMember<StaticNodeList> m_removedNodes;
-    RefPtrWillBeMember<Node> m_previousSibling;
-    RefPtrWillBeMember<Node> m_nextSibling;
+    Member<Node> m_target;
+    Member<StaticNodeList> m_addedNodes;
+    Member<StaticNodeList> m_removedNodes;
+    Member<Node> m_previousSibling;
+    Member<Node> m_nextSibling;
 };
 
 class RecordWithEmptyNodeLists : public MutationRecord {
 public:
-    RecordWithEmptyNodeLists(PassRefPtrWillBeRawPtr<Node> target, const String& oldValue)
+    RecordWithEmptyNodeLists(RawPtr<Node> target, const String& oldValue)
         : m_target(target)
         , m_oldValue(oldValue)
     {
@@ -98,22 +98,22 @@
     StaticNodeList* addedNodes() override { return lazilyInitializeEmptyNodeList(m_addedNodes); }
     StaticNodeList* removedNodes() override { return lazilyInitializeEmptyNodeList(m_removedNodes); }
 
-    static StaticNodeList* lazilyInitializeEmptyNodeList(RefPtrWillBeMember<StaticNodeList>& nodeList)
+    static StaticNodeList* lazilyInitializeEmptyNodeList(Member<StaticNodeList>& nodeList)
     {
         if (!nodeList)
             nodeList = StaticNodeList::createEmpty();
         return nodeList.get();
     }
 
-    RefPtrWillBeMember<Node> m_target;
+    Member<Node> m_target;
     String m_oldValue;
-    RefPtrWillBeMember<StaticNodeList> m_addedNodes;
-    RefPtrWillBeMember<StaticNodeList> m_removedNodes;
+    Member<StaticNodeList> m_addedNodes;
+    Member<StaticNodeList> m_removedNodes;
 };
 
 class AttributesRecord : public RecordWithEmptyNodeLists {
 public:
-    AttributesRecord(PassRefPtrWillBeRawPtr<Node> target, const QualifiedName& name, const AtomicString& oldValue)
+    AttributesRecord(RawPtr<Node> target, const QualifiedName& name, const AtomicString& oldValue)
         : RecordWithEmptyNodeLists(target, oldValue)
         , m_attributeName(name.localName())
         , m_attributeNamespace(name.namespaceURI())
@@ -131,7 +131,7 @@
 
 class CharacterDataRecord : public RecordWithEmptyNodeLists {
 public:
-    CharacterDataRecord(PassRefPtrWillBeRawPtr<Node> target, const String& oldValue)
+    CharacterDataRecord(RawPtr<Node> target, const String& oldValue)
         : RecordWithEmptyNodeLists(target, oldValue)
     {
     }
@@ -142,7 +142,7 @@
 
 class MutationRecordWithNullOldValue : public MutationRecord {
 public:
-    MutationRecordWithNullOldValue(PassRefPtrWillBeRawPtr<MutationRecord> record)
+    MutationRecordWithNullOldValue(RawPtr<MutationRecord> record)
         : m_record(record)
     {
     }
@@ -165,7 +165,7 @@
 
     String oldValue() override { return String(); }
 
-    RefPtrWillBeMember<MutationRecord> m_record;
+    Member<MutationRecord> m_record;
 };
 
 const AtomicString& ChildListRecord::type()
@@ -188,24 +188,24 @@
 
 } // namespace
 
-PassRefPtrWillBeRawPtr<MutationRecord> MutationRecord::createChildList(PassRefPtrWillBeRawPtr<Node> target, PassRefPtrWillBeRawPtr<StaticNodeList> added, PassRefPtrWillBeRawPtr<StaticNodeList> removed, PassRefPtrWillBeRawPtr<Node> previousSibling, PassRefPtrWillBeRawPtr<Node> nextSibling)
+RawPtr<MutationRecord> MutationRecord::createChildList(RawPtr<Node> target, RawPtr<StaticNodeList> added, RawPtr<StaticNodeList> removed, RawPtr<Node> previousSibling, RawPtr<Node> nextSibling)
 {
-    return adoptRefWillBeNoop(new ChildListRecord(target, added, removed, previousSibling, nextSibling));
+    return new ChildListRecord(target, added, removed, previousSibling, nextSibling);
 }
 
-PassRefPtrWillBeRawPtr<MutationRecord> MutationRecord::createAttributes(PassRefPtrWillBeRawPtr<Node> target, const QualifiedName& name, const AtomicString& oldValue)
+RawPtr<MutationRecord> MutationRecord::createAttributes(RawPtr<Node> target, const QualifiedName& name, const AtomicString& oldValue)
 {
-    return adoptRefWillBeNoop(new AttributesRecord(target, name, oldValue));
+    return new AttributesRecord(target, name, oldValue);
 }
 
-PassRefPtrWillBeRawPtr<MutationRecord> MutationRecord::createCharacterData(PassRefPtrWillBeRawPtr<Node> target, const String& oldValue)
+RawPtr<MutationRecord> MutationRecord::createCharacterData(RawPtr<Node> target, const String& oldValue)
 {
-    return adoptRefWillBeNoop(new CharacterDataRecord(target, oldValue));
+    return new CharacterDataRecord(target, oldValue);
 }
 
-PassRefPtrWillBeRawPtr<MutationRecord> MutationRecord::createWithNullOldValue(PassRefPtrWillBeRawPtr<MutationRecord> record)
+RawPtr<MutationRecord> MutationRecord::createWithNullOldValue(RawPtr<MutationRecord> record)
 {
-    return adoptRefWillBeNoop(new MutationRecordWithNullOldValue(record));
+    return new MutationRecordWithNullOldValue(record);
 }
 
 MutationRecord::~MutationRecord()
diff --git a/third_party/WebKit/Source/core/dom/MutationRecord.h b/third_party/WebKit/Source/core/dom/MutationRecord.h
index 16e500d..4196483 100644
--- a/third_party/WebKit/Source/core/dom/MutationRecord.h
+++ b/third_party/WebKit/Source/core/dom/MutationRecord.h
@@ -44,13 +44,13 @@
 template <typename NodeType> class StaticNodeTypeList;
 typedef StaticNodeTypeList<Node> StaticNodeList;
 
-class MutationRecord : public RefCountedWillBeGarbageCollectedFinalized<MutationRecord>, public ScriptWrappable {
+class MutationRecord : public GarbageCollectedFinalized<MutationRecord>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<MutationRecord> createChildList(PassRefPtrWillBeRawPtr<Node> target, PassRefPtrWillBeRawPtr<StaticNodeList> added, PassRefPtrWillBeRawPtr<StaticNodeList> removed, PassRefPtrWillBeRawPtr<Node> previousSibling, PassRefPtrWillBeRawPtr<Node> nextSibling);
-    static PassRefPtrWillBeRawPtr<MutationRecord> createAttributes(PassRefPtrWillBeRawPtr<Node> target, const QualifiedName&, const AtomicString& oldValue);
-    static PassRefPtrWillBeRawPtr<MutationRecord> createCharacterData(PassRefPtrWillBeRawPtr<Node> target, const String& oldValue);
-    static PassRefPtrWillBeRawPtr<MutationRecord> createWithNullOldValue(PassRefPtrWillBeRawPtr<MutationRecord>);
+    static RawPtr<MutationRecord> createChildList(RawPtr<Node> target, RawPtr<StaticNodeList> added, RawPtr<StaticNodeList> removed, RawPtr<Node> previousSibling, RawPtr<Node> nextSibling);
+    static RawPtr<MutationRecord> createAttributes(RawPtr<Node> target, const QualifiedName&, const AtomicString& oldValue);
+    static RawPtr<MutationRecord> createCharacterData(RawPtr<Node> target, const String& oldValue);
+    static RawPtr<MutationRecord> createWithNullOldValue(RawPtr<MutationRecord>);
 
     MutationRecord() { }
 
diff --git a/third_party/WebKit/Source/core/dom/NameNodeList.h b/third_party/WebKit/Source/core/dom/NameNodeList.h
index 5a8e392..0a4ffe0 100644
--- a/third_party/WebKit/Source/core/dom/NameNodeList.h
+++ b/third_party/WebKit/Source/core/dom/NameNodeList.h
@@ -32,10 +32,10 @@
 // NodeList which lists all Nodes in a Element with a given "name" attribute
 class NameNodeList final : public LiveNodeList {
 public:
-    static PassRefPtrWillBeRawPtr<NameNodeList> create(ContainerNode& rootNode, CollectionType type, const AtomicString& name)
+    static RawPtr<NameNodeList> create(ContainerNode& rootNode, CollectionType type, const AtomicString& name)
     {
         ASSERT_UNUSED(type, type == NameNodeListType);
-        return adoptRefWillBeNoop(new NameNodeList(rootNode, name));
+        return new NameNodeList(rootNode, name);
     }
 
     ~NameNodeList() override;
diff --git a/third_party/WebKit/Source/core/dom/NamedNodeMap.cpp b/third_party/WebKit/Source/core/dom/NamedNodeMap.cpp
index d1b10c20..d7d5ec5 100644
--- a/third_party/WebKit/Source/core/dom/NamedNodeMap.cpp
+++ b/third_party/WebKit/Source/core/dom/NamedNodeMap.cpp
@@ -45,17 +45,17 @@
 }
 #endif
 
-PassRefPtrWillBeRawPtr<Attr> NamedNodeMap::getNamedItem(const AtomicString& name) const
+RawPtr<Attr> NamedNodeMap::getNamedItem(const AtomicString& name) const
 {
     return m_element->getAttributeNode(name);
 }
 
-PassRefPtrWillBeRawPtr<Attr> NamedNodeMap::getNamedItemNS(const AtomicString& namespaceURI, const AtomicString& localName) const
+RawPtr<Attr> NamedNodeMap::getNamedItemNS(const AtomicString& namespaceURI, const AtomicString& localName) const
 {
     return m_element->getAttributeNodeNS(namespaceURI, localName);
 }
 
-PassRefPtrWillBeRawPtr<Attr> NamedNodeMap::removeNamedItem(const AtomicString& name, ExceptionState& exceptionState)
+RawPtr<Attr> NamedNodeMap::removeNamedItem(const AtomicString& name, ExceptionState& exceptionState)
 {
     size_t index = m_element->attributes().findIndex(name, m_element->shouldIgnoreAttributeCase());
     if (index == kNotFound) {
@@ -65,7 +65,7 @@
     return m_element->detachAttribute(index);
 }
 
-PassRefPtrWillBeRawPtr<Attr> NamedNodeMap::removeNamedItemNS(const AtomicString& namespaceURI, const AtomicString& localName, ExceptionState& exceptionState)
+RawPtr<Attr> NamedNodeMap::removeNamedItemNS(const AtomicString& namespaceURI, const AtomicString& localName, ExceptionState& exceptionState)
 {
     size_t index = m_element->attributes().findIndex(QualifiedName(nullAtom, localName, namespaceURI));
     if (index == kNotFound) {
@@ -75,19 +75,19 @@
     return m_element->detachAttribute(index);
 }
 
-PassRefPtrWillBeRawPtr<Attr> NamedNodeMap::setNamedItem(Attr* attr, ExceptionState& exceptionState)
+RawPtr<Attr> NamedNodeMap::setNamedItem(Attr* attr, ExceptionState& exceptionState)
 {
     ASSERT(attr);
     return m_element->setAttributeNode(attr, exceptionState);
 }
 
-PassRefPtrWillBeRawPtr<Attr> NamedNodeMap::setNamedItemNS(Attr* attr, ExceptionState& exceptionState)
+RawPtr<Attr> NamedNodeMap::setNamedItemNS(Attr* attr, ExceptionState& exceptionState)
 {
     ASSERT(attr);
     return m_element->setAttributeNodeNS(attr, exceptionState);
 }
 
-PassRefPtrWillBeRawPtr<Attr> NamedNodeMap::item(unsigned index) const
+RawPtr<Attr> NamedNodeMap::item(unsigned index) const
 {
     AttributeCollection attributes = m_element->attributes();
     if (index >= attributes.size())
diff --git a/third_party/WebKit/Source/core/dom/NamedNodeMap.h b/third_party/WebKit/Source/core/dom/NamedNodeMap.h
index 4f2d204..e4e9769 100644
--- a/third_party/WebKit/Source/core/dom/NamedNodeMap.h
+++ b/third_party/WebKit/Source/core/dom/NamedNodeMap.h
@@ -36,14 +36,13 @@
 class Attr;
 class ExceptionState;
 
-class NamedNodeMap final : public NoBaseWillBeGarbageCollected<NamedNodeMap>, public ScriptWrappable {
+class NamedNodeMap final : public GarbageCollected<NamedNodeMap>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
-    USING_FAST_MALLOC_WILL_BE_REMOVED(NamedNodeMap);
     friend class Element;
 public:
-    static PassOwnPtrWillBeRawPtr<NamedNodeMap> create(Element* element)
+    static RawPtr<NamedNodeMap> create(Element* element)
     {
-        return adoptPtrWillBeNoop(new NamedNodeMap(element));
+        return new NamedNodeMap(element);
     }
 
 #if !ENABLE(OILPAN)
@@ -53,16 +52,16 @@
 
     // Public DOM interface.
 
-    PassRefPtrWillBeRawPtr<Attr> getNamedItem(const AtomicString&) const;
-    PassRefPtrWillBeRawPtr<Attr> removeNamedItem(const AtomicString& name, ExceptionState&);
+    RawPtr<Attr> getNamedItem(const AtomicString&) const;
+    RawPtr<Attr> removeNamedItem(const AtomicString& name, ExceptionState&);
 
-    PassRefPtrWillBeRawPtr<Attr> getNamedItemNS(const AtomicString& namespaceURI, const AtomicString& localName) const;
-    PassRefPtrWillBeRawPtr<Attr> removeNamedItemNS(const AtomicString& namespaceURI, const AtomicString& localName, ExceptionState&);
+    RawPtr<Attr> getNamedItemNS(const AtomicString& namespaceURI, const AtomicString& localName) const;
+    RawPtr<Attr> removeNamedItemNS(const AtomicString& namespaceURI, const AtomicString& localName, ExceptionState&);
 
-    PassRefPtrWillBeRawPtr<Attr> setNamedItem(Attr*, ExceptionState&);
-    PassRefPtrWillBeRawPtr<Attr> setNamedItemNS(Attr*, ExceptionState&);
+    RawPtr<Attr> setNamedItem(Attr*, ExceptionState&);
+    RawPtr<Attr> setNamedItemNS(Attr*, ExceptionState&);
 
-    PassRefPtrWillBeRawPtr<Attr> item(unsigned index) const;
+    RawPtr<Attr> item(unsigned index) const;
     size_t length() const;
 
     Element* element() const { return m_element; }
@@ -77,7 +76,7 @@
         ASSERT(m_element);
     }
 
-    RawPtrWillBeMember<Element> m_element;
+    Member<Element> m_element;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/dom/Node.cpp b/third_party/WebKit/Source/core/dom/Node.cpp
index 629b64f..821eb4f9d 100644
--- a/third_party/WebKit/Source/core/dom/Node.cpp
+++ b/third_party/WebKit/Source/core/dom/Node.cpp
@@ -104,7 +104,7 @@
 
 struct SameSizeAsNode : NODE_BASE_CLASSES {
     uint32_t m_nodeFlags;
-    RawPtrWillBeMember<void*> m_willbeMember[4];
+    Member<void*> m_willbeMember[4];
     void* m_pointer;
 };
 
@@ -125,10 +125,10 @@
 #endif
 
 #if DUMP_NODE_STATISTICS
-using WeakNodeSet = WillBeHeapHashSet<RawPtrWillBeWeakMember<Node>>;
+using WeakNodeSet = HeapHashSet<WeakMember<Node>>;
 static WeakNodeSet& liveNodeSet()
 {
-    DEFINE_STATIC_LOCAL(OwnPtrWillBePersistent<WeakNodeSet>, set, (adoptPtrWillBeNoop(new WeakNodeSet())));
+    DEFINE_STATIC_LOCAL(Persistent<WeakNodeSet>, set, (new WeakNodeSet()));
     return *set;
 }
 #endif
@@ -391,7 +391,7 @@
     // By default, setting nodeValue has no effect.
 }
 
-PassRefPtrWillBeRawPtr<NodeList> Node::childNodes()
+RawPtr<NodeList> Node::childNodes()
 {
     if (isContainerNode())
         return ensureRareData().ensureNodeLists().ensureChildNodeList(toContainerNode(*this));
@@ -464,7 +464,7 @@
     return const_cast<Node&>(*node);
 }
 
-PassRefPtrWillBeRawPtr<Node> Node::insertBefore(PassRefPtrWillBeRawPtr<Node> newChild, Node* refChild, ExceptionState& exceptionState)
+RawPtr<Node> Node::insertBefore(RawPtr<Node> newChild, Node* refChild, ExceptionState& exceptionState)
 {
     if (isContainerNode())
         return toContainerNode(this)->insertBefore(newChild, refChild, exceptionState);
@@ -473,7 +473,7 @@
     return nullptr;
 }
 
-PassRefPtrWillBeRawPtr<Node> Node::replaceChild(PassRefPtrWillBeRawPtr<Node> newChild, PassRefPtrWillBeRawPtr<Node> oldChild, ExceptionState& exceptionState)
+RawPtr<Node> Node::replaceChild(RawPtr<Node> newChild, RawPtr<Node> oldChild, ExceptionState& exceptionState)
 {
     if (isContainerNode())
         return toContainerNode(this)->replaceChild(newChild, oldChild, exceptionState);
@@ -482,7 +482,7 @@
     return nullptr;
 }
 
-PassRefPtrWillBeRawPtr<Node> Node::removeChild(PassRefPtrWillBeRawPtr<Node> oldChild, ExceptionState& exceptionState)
+RawPtr<Node> Node::removeChild(RawPtr<Node> oldChild, ExceptionState& exceptionState)
 {
     if (isContainerNode())
         return toContainerNode(this)->removeChild(oldChild, exceptionState);
@@ -491,7 +491,7 @@
     return nullptr;
 }
 
-PassRefPtrWillBeRawPtr<Node> Node::appendChild(PassRefPtrWillBeRawPtr<Node> newChild, ExceptionState& exceptionState)
+RawPtr<Node> Node::appendChild(RawPtr<Node> newChild, ExceptionState& exceptionState)
 {
     if (isContainerNode())
         return toContainerNode(this)->appendChild(newChild, exceptionState);
@@ -513,7 +513,7 @@
     // Go through the subtree beneath us, normalizing all nodes. This means that
     // any two adjacent text nodes are merged and any empty text nodes are removed.
 
-    RefPtrWillBeRawPtr<Node> node = this;
+    RawPtr<Node> node = this;
     while (Node* firstChild = node->firstChild())
         node = firstChild;
     while (node) {
@@ -697,7 +697,7 @@
     if (RuntimeEnabledFeatures::shadowDOMV1Enabled() && inDocument() && !document().childNeedsDistributionRecalc()) {
         // TODO(hayato): Support a non-document composed tree.
         // TODO(hayato): Enqueue a task only if a 'slotchange' event listner is registered in the document composed tree.
-        Microtask::enqueueMicrotask(WTF::bind(&Document::updateDistribution, PassRefPtrWillBeRawPtr<Document>(&document())));
+        Microtask::enqueueMicrotask(WTF::bind(&Document::updateDistribution, RawPtr<Document>(&document())));
     }
     for (Node* node = this; node && !node->childNeedsDistributionRecalc(); node = node->parentOrShadowHostNode())
         node->setChildNeedsDistributionRecalc();
@@ -1336,7 +1336,7 @@
     case ELEMENT_NODE:
     case DOCUMENT_FRAGMENT_NODE: {
         // FIXME: Merge this logic into replaceChildrenWithText.
-        RefPtrWillBeRawPtr<ContainerNode> container = toContainerNode(this);
+        RawPtr<ContainerNode> container = toContainerNode(this);
 
         // Note: This is an intentional optimization.
         // See crbug.com/352836 also.
@@ -1387,8 +1387,8 @@
         return DOCUMENT_POSITION_DISCONNECTED | DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC | direction;
     }
 
-    WillBeHeapVector<RawPtrWillBeMember<const Node>, 16> chain1;
-    WillBeHeapVector<RawPtrWillBeMember<const Node>, 16> chain2;
+    HeapVector<Member<const Node>, 16> chain1;
+    HeapVector<Member<const Node>, 16> chain2;
     if (attr1)
         chain1.append(attr1);
     if (attr2)
@@ -1561,8 +1561,8 @@
         prefix = "";
     if (isTextNode()) {
         String value = nodeValue();
-        value.replaceWithLiteral('\\', "\\\\");
-        value.replaceWithLiteral('\n', "\\n");
+        value.replace('\\', "\\\\");
+        value.replace('\n', "\\n");
         WTFLogAlways("%s%s\t%p \"%s\"\n", prefix, nodeName().utf8().data(), this, value.utf8().data());
     } else if (isDocumentTypeNode()) {
         WTFLogAlways("%sDOCTYPE %s\t%p\n", prefix, nodeName().utf8().data(), this);
@@ -1597,7 +1597,7 @@
 
 void Node::showNodePathForThis() const
 {
-    WillBeHeapVector<RawPtrWillBeMember<const Node>, 16> chain;
+    HeapVector<Member<const Node>, 16> chain;
     const Node* node = this;
     while (node->parentOrShadowHostNode()) {
         chain.append(node);
@@ -1829,7 +1829,7 @@
     else if (oldDocument.frameHost() != document().frameHost())
         EventHandlerRegistry::didMoveBetweenFrameHosts(*this, oldDocument.frameHost(), document().frameHost());
 
-    if (WillBeHeapVector<OwnPtrWillBeMember<MutationObserverRegistration>>* registry = mutationObserverRegistry()) {
+    if (HeapVector<Member<MutationObserverRegistration>>* registry = mutationObserverRegistry()) {
         for (size_t i = 0; i < registry->size(); ++i) {
             document().addMutationObserverTypes(registry->at(i)->mutationTypes());
         }
@@ -1841,7 +1841,7 @@
     }
 }
 
-bool Node::addEventListenerInternal(const AtomicString& eventType, PassRefPtrWillBeRawPtr<EventListener> listener, const EventListenerOptions& options)
+bool Node::addEventListenerInternal(const AtomicString& eventType, RawPtr<EventListener> listener, const EventListenerOptions& options)
 {
     if (!EventTarget::addEventListenerInternal(eventType, listener, options))
         return false;
@@ -1853,7 +1853,7 @@
     return true;
 }
 
-bool Node::removeEventListenerInternal(const AtomicString& eventType, PassRefPtrWillBeRawPtr<EventListener> listener, const EventListenerOptions& options)
+bool Node::removeEventListenerInternal(const AtomicString& eventType, RawPtr<EventListener> listener, const EventListenerOptions& options)
 {
     if (!EventTarget::removeEventListenerInternal(eventType, listener, options))
         return false;
@@ -1883,10 +1883,10 @@
     }
 }
 
-using EventTargetDataMap = WillBeHeapHashMap<RawPtrWillBeWeakMember<Node>, OwnPtrWillBeMember<EventTargetData>>;
+using EventTargetDataMap = HeapHashMap<WeakMember<Node>, Member<EventTargetData>>;
 static EventTargetDataMap& eventTargetDataMap()
 {
-    DEFINE_STATIC_LOCAL(OwnPtrWillBePersistent<EventTargetDataMap>, map, (adoptPtrWillBeNoop(new EventTargetDataMap())));
+    DEFINE_STATIC_LOCAL(Persistent<EventTargetDataMap>, map, (new EventTargetDataMap()));
     return *map;
 }
 
@@ -1901,7 +1901,7 @@
         return *eventTargetDataMap().get(this);
     ASSERT(!eventTargetDataMap().contains(this));
     setHasEventTargetData(true);
-    OwnPtrWillBeRawPtr<EventTargetData> data = adoptPtrWillBeNoop(new EventTargetData);
+    RawPtr<EventTargetData> data = adoptPtrWillBeNoop(new EventTargetData);
     EventTargetData* dataPtr = data.get();
     eventTargetDataMap().set(this, data.release());
     return *dataPtr;
@@ -1917,7 +1917,7 @@
 }
 #endif
 
-WillBeHeapVector<OwnPtrWillBeMember<MutationObserverRegistration>>* Node::mutationObserverRegistry()
+HeapVector<Member<MutationObserverRegistration>>* Node::mutationObserverRegistry()
 {
     if (!hasRareData())
         return nullptr;
@@ -1927,7 +1927,7 @@
     return &data->registry;
 }
 
-WillBeHeapHashSet<RawPtrWillBeMember<MutationObserverRegistration>>* Node::transientMutationObserverRegistry()
+HeapHashSet<Member<MutationObserverRegistration>>* Node::transientMutationObserverRegistry()
 {
     if (!hasRareData())
         return nullptr;
@@ -1938,7 +1938,7 @@
 }
 
 template<typename Registry>
-static inline void collectMatchingObserversForMutation(WillBeHeapHashMap<RefPtrWillBeMember<MutationObserver>, MutationRecordDeliveryOptions>& observers, Registry* registry, Node& target, MutationObserver::MutationType type, const QualifiedName* attributeName)
+static inline void collectMatchingObserversForMutation(HeapHashMap<Member<MutationObserver>, MutationRecordDeliveryOptions>& observers, Registry* registry, Node& target, MutationObserver::MutationType type, const QualifiedName* attributeName)
 {
     if (!registry)
         return;
@@ -1946,14 +1946,14 @@
     for (const auto& registration : *registry) {
         if (registration->shouldReceiveMutationFrom(target, type, attributeName)) {
             MutationRecordDeliveryOptions deliveryOptions = registration->deliveryOptions();
-            WillBeHeapHashMap<RefPtrWillBeMember<MutationObserver>, MutationRecordDeliveryOptions>::AddResult result = observers.add(&registration->observer(), deliveryOptions);
+            HeapHashMap<Member<MutationObserver>, MutationRecordDeliveryOptions>::AddResult result = observers.add(&registration->observer(), deliveryOptions);
             if (!result.isNewEntry)
                 result.storedValue->value |= deliveryOptions;
         }
     }
 }
 
-void Node::getRegisteredMutationObserversOfType(WillBeHeapHashMap<RefPtrWillBeMember<MutationObserver>, MutationRecordDeliveryOptions>& observers, MutationObserver::MutationType type, const QualifiedName* attributeName)
+void Node::getRegisteredMutationObserversOfType(HeapHashMap<Member<MutationObserver>, MutationRecordDeliveryOptions>& observers, MutationObserver::MutationType type, const QualifiedName* attributeName)
 {
     ASSERT((type == MutationObserver::Attributes && attributeName) || !attributeName);
     collectMatchingObserversForMutation(observers, mutationObserverRegistry(), *this, type, attributeName);
@@ -1968,7 +1968,7 @@
 void Node::registerMutationObserver(MutationObserver& observer, MutationObserverOptions options, const HashSet<AtomicString>& attributeFilter)
 {
     MutationObserverRegistration* registration = nullptr;
-    WillBeHeapVector<OwnPtrWillBeMember<MutationObserverRegistration>>& registry = ensureRareData().ensureMutationObserverData().registry;
+    HeapVector<Member<MutationObserverRegistration>>& registry = ensureRareData().ensureMutationObserverData().registry;
     for (size_t i = 0; i < registry.size(); ++i) {
         if (&registry[i]->observer() == &observer) {
             registration = registry[i].get();
@@ -1986,7 +1986,7 @@
 
 void Node::unregisterMutationObserver(MutationObserverRegistration* registration)
 {
-    WillBeHeapVector<OwnPtrWillBeMember<MutationObserverRegistration>>* registry = mutationObserverRegistry();
+    HeapVector<Member<MutationObserverRegistration>>* registry = mutationObserverRegistry();
     ASSERT(registry);
     if (!registry)
         return;
@@ -1999,7 +1999,7 @@
     // Deleting the registration may cause this node to be derefed, so we must make sure the Vector operation completes
     // before that, in case |this| is destroyed (see MutationObserverRegistration::m_registrationNodeKeepAlive).
     // FIXME: Simplify the registration/transient registration logic to make this understandable by humans.
-    RefPtrWillBeRawPtr<Node> protect(this);
+    RawPtr<Node> protect(this);
 #if ENABLE(OILPAN)
     // The explicit dispose() is needed to have the registration
     // object unregister itself promptly.
@@ -2015,7 +2015,7 @@
 
 void Node::unregisterTransientMutationObserver(MutationObserverRegistration* registration)
 {
-    WillBeHeapHashSet<RawPtrWillBeMember<MutationObserverRegistration>>* transientRegistry = transientMutationObserverRegistry();
+    HeapHashSet<Member<MutationObserverRegistration>>* transientRegistry = transientMutationObserverRegistry();
     ASSERT(transientRegistry);
     if (!transientRegistry)
         return;
@@ -2031,13 +2031,13 @@
 
     ScriptForbiddenScope forbidScriptDuringRawIteration;
     for (Node* node = parentNode(); node; node = node->parentNode()) {
-        if (WillBeHeapVector<OwnPtrWillBeMember<MutationObserverRegistration>>* registry = node->mutationObserverRegistry()) {
+        if (HeapVector<Member<MutationObserverRegistration>>* registry = node->mutationObserverRegistry()) {
             const size_t size = registry->size();
             for (size_t i = 0; i < size; ++i)
                 registry->at(i)->observedSubtreeNodeWillDetach(*this);
         }
 
-        if (WillBeHeapHashSet<RawPtrWillBeMember<MutationObserverRegistration>>* transientRegistry = node->transientMutationObserverRegistry()) {
+        if (HeapHashSet<Member<MutationObserverRegistration>>* transientRegistry = node->transientMutationObserverRegistry()) {
             for (auto& registration : *transientRegistry)
                 registration->observedSubtreeNodeWillDetach(*this);
         }
@@ -2055,13 +2055,13 @@
     fireEventListeners(&event);
 }
 
-void Node::dispatchScopedEvent(PassRefPtrWillBeRawPtr<Event> event)
+void Node::dispatchScopedEvent(RawPtr<Event> event)
 {
     event->setTrusted(true);
     EventDispatcher::dispatchScopedEvent(*this, event->createMediator());
 }
 
-DispatchEventResult Node::dispatchEventInternal(PassRefPtrWillBeRawPtr<Event> event)
+DispatchEventResult Node::dispatchEventInternal(RawPtr<Event> event)
 {
     return EventDispatcher::dispatchEvent(*this, event->createMediator());
 }
@@ -2079,10 +2079,10 @@
     dispatchScopedEvent(MutationEvent::create(EventTypeNames::DOMSubtreeModified, true));
 }
 
-DispatchEventResult Node::dispatchDOMActivateEvent(int detail, PassRefPtrWillBeRawPtr<Event> underlyingEvent)
+DispatchEventResult Node::dispatchDOMActivateEvent(int detail, RawPtr<Event> underlyingEvent)
 {
     ASSERT(!EventDispatchForbiddenScope::isEventDispatchForbidden());
-    RefPtrWillBeRawPtr<UIEvent> event = UIEvent::create(EventTypeNames::DOMActivate, true, true, document().domWindow(), detail);
+    RawPtr<UIEvent> event = UIEvent::create(EventTypeNames::DOMActivate, true, true, document().domWindow(), detail);
     event->setUnderlyingEvent(underlyingEvent);
     dispatchScopedEvent(event);
 
@@ -2094,7 +2094,7 @@
 DispatchEventResult Node::dispatchMouseEvent(const PlatformMouseEvent& nativeEvent, const AtomicString& eventType,
     int detail, Node* relatedTarget)
 {
-    RefPtrWillBeRawPtr<MouseEvent> event = MouseEvent::create(eventType, document().domWindow(), nativeEvent, detail, relatedTarget);
+    RawPtr<MouseEvent> event = MouseEvent::create(eventType, document().domWindow(), nativeEvent, detail, relatedTarget);
     return dispatchEvent(event);
 }
 
@@ -2265,12 +2265,12 @@
     rareData()->decrementConnectedSubframeCount();
 }
 
-PassRefPtrWillBeRawPtr<StaticNodeList> Node::getDestinationInsertionPoints()
+RawPtr<StaticNodeList> Node::getDestinationInsertionPoints()
 {
     updateDistribution();
-    WillBeHeapVector<RawPtrWillBeMember<InsertionPoint>, 8> insertionPoints;
+    HeapVector<Member<InsertionPoint>, 8> insertionPoints;
     collectDestinationInsertionPoints(*this, insertionPoints);
-    WillBeHeapVector<RefPtrWillBeMember<Node>> filteredInsertionPoints;
+    HeapVector<Member<Node>> filteredInsertionPoints;
     for (size_t i = 0; i < insertionPoints.size(); ++i) {
         InsertionPoint* insertionPoint = insertionPoints[i];
         ASSERT(insertionPoint->containingShadowRoot());
@@ -2408,7 +2408,7 @@
     // It's possible that no one except for the new wrapper owns this object at
     // this moment, so we have to prevent GC to collect this object until the
     // object gets associated with the wrapper.
-    RefPtrWillBeRawPtr<Node> protect(this);
+    RawPtr<Node> protect(this);
 
     ASSERT(!DOMDataStore::containsWrapper(this, isolate));
 
diff --git a/third_party/WebKit/Source/core/dom/Node.h b/third_party/WebKit/Source/core/dom/Node.h
index d933172ca..44556ef 100644
--- a/third_party/WebKit/Source/core/dom/Node.h
+++ b/third_party/WebKit/Source/core/dom/Node.h
@@ -210,7 +210,7 @@
     ContainerNode* parentElementOrDocumentFragment() const;
     Node* previousSibling() const { return m_previous; }
     Node* nextSibling() const { return m_next; }
-    PassRefPtrWillBeRawPtr<NodeList> childNodes();
+    RawPtr<NodeList> childNodes();
     Node* firstChild() const;
     Node* lastChild() const;
     Node& treeRoot() const;
@@ -224,13 +224,13 @@
 
     const KURL& baseURI() const;
 
-    PassRefPtrWillBeRawPtr<Node> insertBefore(PassRefPtrWillBeRawPtr<Node> newChild, Node* refChild, ExceptionState& = ASSERT_NO_EXCEPTION);
-    PassRefPtrWillBeRawPtr<Node> replaceChild(PassRefPtrWillBeRawPtr<Node> newChild, PassRefPtrWillBeRawPtr<Node> oldChild, ExceptionState& = ASSERT_NO_EXCEPTION);
-    PassRefPtrWillBeRawPtr<Node> removeChild(PassRefPtrWillBeRawPtr<Node> child, ExceptionState& = ASSERT_NO_EXCEPTION);
-    PassRefPtrWillBeRawPtr<Node> appendChild(PassRefPtrWillBeRawPtr<Node> newChild, ExceptionState& = ASSERT_NO_EXCEPTION);
+    RawPtr<Node> insertBefore(RawPtr<Node> newChild, Node* refChild, ExceptionState& = ASSERT_NO_EXCEPTION);
+    RawPtr<Node> replaceChild(RawPtr<Node> newChild, RawPtr<Node> oldChild, ExceptionState& = ASSERT_NO_EXCEPTION);
+    RawPtr<Node> removeChild(RawPtr<Node> child, ExceptionState& = ASSERT_NO_EXCEPTION);
+    RawPtr<Node> appendChild(RawPtr<Node> newChild, ExceptionState& = ASSERT_NO_EXCEPTION);
 
     bool hasChildren() const { return firstChild(); }
-    virtual PassRefPtrWillBeRawPtr<Node> cloneNode(bool deep) = 0;
+    virtual RawPtr<Node> cloneNode(bool deep) = 0;
     void normalize();
 
     bool isEqualNode(Node*) const;
@@ -635,12 +635,12 @@
     virtual void* preDispatchEventHandler(Event*) { return nullptr; }
     virtual void postDispatchEventHandler(Event*, void* /*dataFromPreDispatch*/) { }
 
-    void dispatchScopedEvent(PassRefPtrWillBeRawPtr<Event>);
+    void dispatchScopedEvent(RawPtr<Event>);
 
     virtual void handleLocalEvents(Event&);
 
     void dispatchSubtreeModifiedEvent();
-    DispatchEventResult dispatchDOMActivateEvent(int detail, PassRefPtrWillBeRawPtr<Event> underlyingEvent);
+    DispatchEventResult dispatchDOMActivateEvent(int detail, RawPtr<Event> underlyingEvent);
 
     DispatchEventResult dispatchMouseEvent(const PlatformMouseEvent&, const AtomicString& eventType, int clickCount = 0, Node* relatedTarget = nullptr);
 
@@ -655,7 +655,7 @@
     EventTargetData* eventTargetData() override;
     EventTargetData& ensureEventTargetData() override;
 
-    void getRegisteredMutationObserversOfType(WillBeHeapHashMap<RefPtrWillBeMember<MutationObserver>, MutationRecordDeliveryOptions>&, MutationObserver::MutationType, const QualifiedName* attributeName);
+    void getRegisteredMutationObserversOfType(HeapHashMap<Member<MutationObserver>, MutationRecordDeliveryOptions>&, MutationObserver::MutationType, const QualifiedName* attributeName);
     void registerMutationObserver(MutationObserver&, MutationObserverOptions, const HashSet<AtomicString>& attributeFilter);
     void unregisterMutationObserver(MutationObserverRegistration*);
     void registerTransientMutationObserver(MutationObserverRegistration*);
@@ -666,7 +666,7 @@
     void incrementConnectedSubframeCount();
     void decrementConnectedSubframeCount();
 
-    PassRefPtrWillBeRawPtr<StaticNodeList> getDestinationInsertionPoints();
+    RawPtr<StaticNodeList> getDestinationInsertionPoints();
     HTMLSlotElement* assignedSlot() const;
     HTMLSlotElement* assignedSlotForBinding();
 
@@ -757,9 +757,9 @@
 
     virtual void didMoveToNewDocument(Document& oldDocument);
 
-    bool addEventListenerInternal(const AtomicString& eventType, PassRefPtrWillBeRawPtr<EventListener>, const EventListenerOptions&) override;
-    bool removeEventListenerInternal(const AtomicString& eventType, PassRefPtrWillBeRawPtr<EventListener>, const EventListenerOptions&) override;
-    DispatchEventResult dispatchEventInternal(PassRefPtrWillBeRawPtr<Event>) override;
+    bool addEventListenerInternal(const AtomicString& eventType, RawPtr<EventListener>, const EventListenerOptions&) override;
+    bool removeEventListenerInternal(const AtomicString& eventType, RawPtr<EventListener>, const EventListenerOptions&) override;
+    DispatchEventResult dispatchEventInternal(RawPtr<Event>) override;
 
     static void reattachWhitespaceSiblingsIfNeeded(Text* start);
 
@@ -826,14 +826,14 @@
 
     void trackForDebugging();
 
-    WillBeHeapVector<OwnPtrWillBeMember<MutationObserverRegistration>>* mutationObserverRegistry();
-    WillBeHeapHashSet<RawPtrWillBeMember<MutationObserverRegistration>>* transientMutationObserverRegistry();
+    HeapVector<Member<MutationObserverRegistration>>* mutationObserverRegistry();
+    HeapHashSet<Member<MutationObserverRegistration>>* transientMutationObserverRegistry();
 
     uint32_t m_nodeFlags;
-    RawPtrWillBeMember<ContainerNode> m_parentOrShadowHostNode;
-    RawPtrWillBeMember<TreeScope> m_treeScope;
-    RawPtrWillBeMember<Node> m_previous;
-    RawPtrWillBeMember<Node> m_next;
+    Member<ContainerNode> m_parentOrShadowHostNode;
+    Member<TreeScope> m_treeScope;
+    Member<Node> m_previous;
+    Member<Node> m_next;
     // When a node has rare data we move the layoutObject into the rare data.
     union DataUnion {
         DataUnion() : m_layoutObject(nullptr) { }
@@ -911,11 +911,11 @@
     DEFINE_TYPE_CASTS(thisType, Node, node, is##thisType(*node), is##thisType(node))
 
 #define DECLARE_NODE_FACTORY(T) \
-    static PassRefPtrWillBeRawPtr<T> create(Document&)
+    static RawPtr<T> create(Document&)
 #define DEFINE_NODE_FACTORY(T) \
-PassRefPtrWillBeRawPtr<T> T::create(Document& document) \
+RawPtr<T> T::create(Document& document) \
 { \
-    return adoptRefWillBeNoop(new T(document)); \
+    return new T(document); \
 }
 
 CORE_EXPORT std::ostream& operator<<(std::ostream&, const Node&);
diff --git a/third_party/WebKit/Source/core/dom/NodeChildRemovalTracker.h b/third_party/WebKit/Source/core/dom/NodeChildRemovalTracker.h
index c8499f9..8f696b9 100644
--- a/third_party/WebKit/Source/core/dom/NodeChildRemovalTracker.h
+++ b/third_party/WebKit/Source/core/dom/NodeChildRemovalTracker.h
@@ -44,7 +44,7 @@
     Node& node() const { return *m_node; }
     NodeChildRemovalTracker* previous() { return m_previous; }
 
-    RawPtrWillBeMember<Node> m_node;
+    Member<Node> m_node;
     // Using raw pointers are safe because these NodeChildRemovalTrackers are
     // guaranteed to be on a stack.
     NodeChildRemovalTracker* m_previous;
diff --git a/third_party/WebKit/Source/core/dom/NodeFilter.h b/third_party/WebKit/Source/core/dom/NodeFilter.h
index e33dbc0..9afd9d7 100644
--- a/third_party/WebKit/Source/core/dom/NodeFilter.h
+++ b/third_party/WebKit/Source/core/dom/NodeFilter.h
@@ -32,7 +32,7 @@
 
 namespace blink {
 
-class NodeFilter final : public RefCountedWillBeGarbageCollected<NodeFilter>, public ScriptWrappable {
+class NodeFilter final : public GarbageCollected<NodeFilter>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
     /**
@@ -67,19 +67,19 @@
         SHOW_NOTATION                  = 0x00000800
     };
 
-    static PassRefPtrWillBeRawPtr<NodeFilter> create(PassRefPtrWillBeRawPtr<NodeFilterCondition> condition)
+    static RawPtr<NodeFilter> create(RawPtr<NodeFilterCondition> condition)
     {
-        return adoptRefWillBeNoop(new NodeFilter(condition));
+        return new NodeFilter(condition);
     }
 
-    static PassRefPtrWillBeRawPtr<NodeFilter> create()
+    static RawPtr<NodeFilter> create()
     {
-        return adoptRefWillBeNoop(new NodeFilter());
+        return new NodeFilter();
     }
 
     unsigned acceptNode(Node*, ExceptionState&) const;
 
-    void setCondition(PassRefPtrWillBeRawPtr<NodeFilterCondition> condition)
+    void setCondition(RawPtr<NodeFilterCondition> condition)
     {
         m_condition = condition;
     }
@@ -87,11 +87,11 @@
     DECLARE_TRACE();
 
 private:
-    explicit NodeFilter(PassRefPtrWillBeRawPtr<NodeFilterCondition> condition) : m_condition(condition) { }
+    explicit NodeFilter(RawPtr<NodeFilterCondition> condition) : m_condition(condition) { }
 
     NodeFilter() { }
 
-    RefPtrWillBeMember<NodeFilterCondition> m_condition;
+    Member<NodeFilterCondition> m_condition;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/dom/NodeFilterCondition.h b/third_party/WebKit/Source/core/dom/NodeFilterCondition.h
index 77764bd..9c9ce3c 100644
--- a/third_party/WebKit/Source/core/dom/NodeFilterCondition.h
+++ b/third_party/WebKit/Source/core/dom/NodeFilterCondition.h
@@ -33,7 +33,7 @@
 class ExceptionState;
 class Node;
 
-class NodeFilterCondition : public RefCountedWillBeGarbageCollectedFinalized<NodeFilterCondition> {
+class NodeFilterCondition : public GarbageCollectedFinalized<NodeFilterCondition> {
 public:
     virtual ~NodeFilterCondition() { }
     virtual unsigned acceptNode(Node*, ExceptionState&) const = 0;
diff --git a/third_party/WebKit/Source/core/dom/NodeIntersectionObserverData.cpp b/third_party/WebKit/Source/core/dom/NodeIntersectionObserverData.cpp
index 5eadb0fb..8fdb35d 100644
--- a/third_party/WebKit/Source/core/dom/NodeIntersectionObserverData.cpp
+++ b/third_party/WebKit/Source/core/dom/NodeIntersectionObserverData.cpp
@@ -56,13 +56,13 @@
 }
 #endif
 
-WeakPtrWillBeRawPtr<Node> NodeIntersectionObserverData::createWeakPtr(Node* node)
+RawPtr<Node> NodeIntersectionObserverData::createWeakPtr(Node* node)
 {
 #if ENABLE(OILPAN)
     return node;
 #else
     if (!m_weakPointerFactory)
-        m_weakPointerFactory = adoptPtrWillBeNoop(new WeakPtrFactory<Node>(node));
+        m_weakPointerFactory = new WeakPtrFactory<Node>(node);
     WeakPtr<Node> result = m_weakPointerFactory->createWeakPtr();
     ASSERT(result.get() == node);
     return result;
diff --git a/third_party/WebKit/Source/core/dom/NodeIntersectionObserverData.h b/third_party/WebKit/Source/core/dom/NodeIntersectionObserverData.h
index 71d8516..5a50d00b 100644
--- a/third_party/WebKit/Source/core/dom/NodeIntersectionObserverData.h
+++ b/third_party/WebKit/Source/core/dom/NodeIntersectionObserverData.h
@@ -29,7 +29,7 @@
     void dispose();
 #endif
 
-    WeakPtrWillBeRawPtr<Node> createWeakPtr(Node*);
+    RawPtr<Node> createWeakPtr(Node*);
 
 private:
     // IntersectionObservers for which the Node owning this data is root.
diff --git a/third_party/WebKit/Source/core/dom/NodeIterator.cpp b/third_party/WebKit/Source/core/dom/NodeIterator.cpp
index c3a7d06a..b8a1bf0 100644
--- a/third_party/WebKit/Source/core/dom/NodeIterator.cpp
+++ b/third_party/WebKit/Source/core/dom/NodeIterator.cpp
@@ -36,7 +36,7 @@
 {
 }
 
-NodeIterator::NodePointer::NodePointer(PassRefPtrWillBeRawPtr<Node> n, bool b)
+NodeIterator::NodePointer::NodePointer(RawPtr<Node> n, bool b)
     : node(n)
     , isPointerBeforeNode(b)
 {
@@ -71,7 +71,7 @@
     return node;
 }
 
-NodeIterator::NodeIterator(PassRefPtrWillBeRawPtr<Node> rootNode, unsigned whatToShow, PassRefPtrWillBeRawPtr<NodeFilter> filter)
+NodeIterator::NodeIterator(RawPtr<Node> rootNode, unsigned whatToShow, RawPtr<NodeFilter> filter)
     : NodeIteratorBase(rootNode, whatToShow, filter)
     , m_referenceNode(root(), true)
 {
@@ -88,16 +88,16 @@
 }
 #endif
 
-PassRefPtrWillBeRawPtr<Node> NodeIterator::nextNode(ExceptionState& exceptionState)
+RawPtr<Node> NodeIterator::nextNode(ExceptionState& exceptionState)
 {
-    RefPtrWillBeRawPtr<Node> result = nullptr;
+    RawPtr<Node> result = nullptr;
 
     m_candidateNode = m_referenceNode;
     while (m_candidateNode.moveToNext(root())) {
         // NodeIterators treat the DOM tree as a flat list of nodes.
         // In other words, FILTER_REJECT does not pass over descendants
         // of the rejected node. Hence, FILTER_REJECT is the same as FILTER_SKIP.
-        RefPtrWillBeRawPtr<Node> provisionalResult = m_candidateNode.node;
+        RawPtr<Node> provisionalResult = m_candidateNode.node;
         bool nodeWasAccepted = acceptNode(provisionalResult.get(), exceptionState) == NodeFilter::FILTER_ACCEPT;
         if (exceptionState.hadException())
             break;
@@ -112,16 +112,16 @@
     return result.release();
 }
 
-PassRefPtrWillBeRawPtr<Node> NodeIterator::previousNode(ExceptionState& exceptionState)
+RawPtr<Node> NodeIterator::previousNode(ExceptionState& exceptionState)
 {
-    RefPtrWillBeRawPtr<Node> result = nullptr;
+    RawPtr<Node> result = nullptr;
 
     m_candidateNode = m_referenceNode;
     while (m_candidateNode.moveToPrevious(root())) {
         // NodeIterators treat the DOM tree as a flat list of nodes.
         // In other words, FILTER_REJECT does not pass over descendants
         // of the rejected node. Hence, FILTER_REJECT is the same as FILTER_SKIP.
-        RefPtrWillBeRawPtr<Node> provisionalResult = m_candidateNode.node;
+        RawPtr<Node> provisionalResult = m_candidateNode.node;
         bool nodeWasAccepted = acceptNode(provisionalResult.get(), exceptionState) == NodeFilter::FILTER_ACCEPT;
         if (exceptionState.hadException())
             break;
diff --git a/third_party/WebKit/Source/core/dom/NodeIterator.h b/third_party/WebKit/Source/core/dom/NodeIterator.h
index 4a0b5be..6c6e4163 100644
--- a/third_party/WebKit/Source/core/dom/NodeIterator.h
+++ b/third_party/WebKit/Source/core/dom/NodeIterator.h
@@ -36,21 +36,21 @@
 
 class ExceptionState;
 
-class NodeIterator final : public RefCountedWillBeGarbageCollected<NodeIterator>, public ScriptWrappable, public NodeIteratorBase {
+class NodeIterator final : public GarbageCollected<NodeIterator>, public ScriptWrappable, public NodeIteratorBase {
     DEFINE_WRAPPERTYPEINFO();
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(NodeIterator);
+    USING_GARBAGE_COLLECTED_MIXIN(NodeIterator);
 public:
-    static PassRefPtrWillBeRawPtr<NodeIterator> create(PassRefPtrWillBeRawPtr<Node> rootNode, unsigned whatToShow, PassRefPtrWillBeRawPtr<NodeFilter> filter)
+    static RawPtr<NodeIterator> create(RawPtr<Node> rootNode, unsigned whatToShow, RawPtr<NodeFilter> filter)
     {
-        return adoptRefWillBeNoop(new NodeIterator(rootNode, whatToShow, filter));
+        return new NodeIterator(rootNode, whatToShow, filter);
     }
 
 #if !ENABLE(OILPAN)
     ~NodeIterator();
 #endif
 
-    PassRefPtrWillBeRawPtr<Node> nextNode(ExceptionState&);
-    PassRefPtrWillBeRawPtr<Node> previousNode(ExceptionState&);
+    RawPtr<Node> nextNode(ExceptionState&);
+    RawPtr<Node> previousNode(ExceptionState&);
     void detach();
 
     Node* referenceNode() const { return m_referenceNode.node.get(); }
@@ -62,19 +62,19 @@
     DECLARE_VIRTUAL_TRACE();
 
 private:
-    NodeIterator(PassRefPtrWillBeRawPtr<Node>, unsigned whatToShow, PassRefPtrWillBeRawPtr<NodeFilter>);
+    NodeIterator(RawPtr<Node>, unsigned whatToShow, RawPtr<NodeFilter>);
 
     class NodePointer {
         DISALLOW_NEW();
     public:
         NodePointer();
-        NodePointer(PassRefPtrWillBeRawPtr<Node>, bool);
+        NodePointer(RawPtr<Node>, bool);
 
         void clear();
         bool moveToNext(Node* root);
         bool moveToPrevious(Node* root);
 
-        RefPtrWillBeMember<Node> node;
+        Member<Node> node;
         bool isPointerBeforeNode;
 
         DEFINE_INLINE_TRACE()
diff --git a/third_party/WebKit/Source/core/dom/NodeIteratorBase.cpp b/third_party/WebKit/Source/core/dom/NodeIteratorBase.cpp
index bcb45b16..24577df 100644
--- a/third_party/WebKit/Source/core/dom/NodeIteratorBase.cpp
+++ b/third_party/WebKit/Source/core/dom/NodeIteratorBase.cpp
@@ -30,9 +30,7 @@
 
 namespace blink {
 
-DEFINE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(NodeIteratorBase);
-
-NodeIteratorBase::NodeIteratorBase(PassRefPtrWillBeRawPtr<Node> rootNode, unsigned whatToShow, PassRefPtrWillBeRawPtr<NodeFilter> nodeFilter)
+NodeIteratorBase::NodeIteratorBase(RawPtr<Node> rootNode, unsigned whatToShow, RawPtr<NodeFilter> nodeFilter)
     : m_root(rootNode)
     , m_whatToShow(whatToShow)
     , m_filter(nodeFilter)
diff --git a/third_party/WebKit/Source/core/dom/NodeIteratorBase.h b/third_party/WebKit/Source/core/dom/NodeIteratorBase.h
index fdd82ec2..c5915d0 100644
--- a/third_party/WebKit/Source/core/dom/NodeIteratorBase.h
+++ b/third_party/WebKit/Source/core/dom/NodeIteratorBase.h
@@ -34,8 +34,7 @@
 class Node;
 class NodeFilter;
 
-class NodeIteratorBase : public WillBeGarbageCollectedMixin {
-    DECLARE_EMPTY_VIRTUAL_DESTRUCTOR_WILL_BE_REMOVED(NodeIteratorBase);
+class NodeIteratorBase : public GarbageCollectedMixin {
 public:
     Node* root() const { return m_root.get(); }
     unsigned whatToShow() const { return m_whatToShow; }
@@ -44,13 +43,13 @@
     DECLARE_VIRTUAL_TRACE();
 
 protected:
-    NodeIteratorBase(PassRefPtrWillBeRawPtr<Node>, unsigned whatToShow, PassRefPtrWillBeRawPtr<NodeFilter>);
+    NodeIteratorBase(RawPtr<Node>, unsigned whatToShow, RawPtr<NodeFilter>);
     unsigned acceptNode(Node*, ExceptionState&) const;
 
 private:
-    RefPtrWillBeMember<Node> m_root;
+    Member<Node> m_root;
     unsigned m_whatToShow;
-    RefPtrWillBeMember<NodeFilter> m_filter;
+    Member<NodeFilter> m_filter;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/dom/NodeList.cpp b/third_party/WebKit/Source/core/dom/NodeList.cpp
index a11c40ae..5f46cc9 100644
--- a/third_party/WebKit/Source/core/dom/NodeList.cpp
+++ b/third_party/WebKit/Source/core/dom/NodeList.cpp
@@ -28,7 +28,7 @@
         }
 
     private:
-        const RefPtrWillBeMember<NodeList> m_nodeList;
+        const Member<NodeList> m_nodeList;
     };
 
 } // namespace
diff --git a/third_party/WebKit/Source/core/dom/NodeList.h b/third_party/WebKit/Source/core/dom/NodeList.h
index 17be3f1..4bc8847 100644
--- a/third_party/WebKit/Source/core/dom/NodeList.h
+++ b/third_party/WebKit/Source/core/dom/NodeList.h
@@ -33,7 +33,7 @@
 
 class Node;
 
-class CORE_EXPORT NodeList : public RefCountedWillBeGarbageCollectedFinalized<NodeList>, public ScriptWrappable, public ValueIterable<Node *> {
+class CORE_EXPORT NodeList : public GarbageCollectedFinalized<NodeList>, public ScriptWrappable, public ValueIterable<Node *> {
     DEFINE_WRAPPERTYPEINFO();
 public:
     virtual ~NodeList() { }
diff --git a/third_party/WebKit/Source/core/dom/NodeListsNodeData.h b/third_party/WebKit/Source/core/dom/NodeListsNodeData.h
index 5a3a3a4..84f22cf6 100644
--- a/third_party/WebKit/Source/core/dom/NodeListsNodeData.h
+++ b/third_party/WebKit/Source/core/dom/NodeListsNodeData.h
@@ -33,9 +33,8 @@
 
 namespace blink {
 
-class NodeListsNodeData final : public NoBaseWillBeGarbageCollectedFinalized<NodeListsNodeData> {
+class NodeListsNodeData final : public GarbageCollectedFinalized<NodeListsNodeData> {
     WTF_MAKE_NONCOPYABLE(NodeListsNodeData);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(NodeListsNodeData);
 public:
     ChildNodeList* childNodeList(ContainerNode& node)
     {
@@ -43,20 +42,20 @@
         return toChildNodeList(m_childNodeList);
     }
 
-    PassRefPtrWillBeRawPtr<ChildNodeList> ensureChildNodeList(ContainerNode& node)
+    RawPtr<ChildNodeList> ensureChildNodeList(ContainerNode& node)
     {
         if (m_childNodeList)
             return toChildNodeList(m_childNodeList);
-        RefPtrWillBeRawPtr<ChildNodeList> list = ChildNodeList::create(node);
+        RawPtr<ChildNodeList> list = ChildNodeList::create(node);
         m_childNodeList = list.get();
         return list.release();
     }
 
-    PassRefPtrWillBeRawPtr<EmptyNodeList> ensureEmptyChildNodeList(Node& node)
+    RawPtr<EmptyNodeList> ensureEmptyChildNodeList(Node& node)
     {
         if (m_childNodeList)
             return toEmptyNodeList(m_childNodeList);
-        RefPtrWillBeRawPtr<EmptyNodeList> list = EmptyNodeList::create(node);
+        RawPtr<EmptyNodeList> list = EmptyNodeList::create(node);
         m_childNodeList = list.get();
         return list.release();
     }
@@ -93,11 +92,11 @@
     // Explicit object unregistration in a non-Oilpan setting
     // on object destruction is replaced by the garbage collector
     // clearing out their weak reference.
-    typedef WillBeHeapHashMap<std::pair<unsigned char, StringImpl*>, RawPtrWillBeWeakMember<LiveNodeListBase>, NodeListAtomicCacheMapEntryHash> NodeListAtomicNameCacheMap;
-    typedef WillBeHeapHashMap<QualifiedName, RawPtrWillBeWeakMember<TagCollection>> TagCollectionCacheNS;
+    typedef HeapHashMap<std::pair<unsigned char, StringImpl*>, WeakMember<LiveNodeListBase>, NodeListAtomicCacheMapEntryHash> NodeListAtomicNameCacheMap;
+    typedef HeapHashMap<QualifiedName, WeakMember<TagCollection>> TagCollectionCacheNS;
 
     template<typename T>
-    PassRefPtrWillBeRawPtr<T> addCache(ContainerNode& node, CollectionType collectionType, const AtomicString& name)
+    RawPtr<T> addCache(ContainerNode& node, CollectionType collectionType, const AtomicString& name)
     {
         NodeListAtomicNameCacheMap::AddResult result = m_atomicNameCaches.add(namedNodeListKey(collectionType, name), nullptr);
         if (!result.isNewEntry) {
@@ -108,13 +107,13 @@
 #endif
         }
 
-        RefPtrWillBeRawPtr<T> list = T::create(node, collectionType, name);
+        RawPtr<T> list = T::create(node, collectionType, name);
         result.storedValue->value = list.get();
         return list.release();
     }
 
     template<typename T>
-    PassRefPtrWillBeRawPtr<T> addCache(ContainerNode& node, CollectionType collectionType)
+    RawPtr<T> addCache(ContainerNode& node, CollectionType collectionType)
     {
         NodeListAtomicNameCacheMap::AddResult result = m_atomicNameCaches.add(namedNodeListKey(collectionType, starAtom), nullptr);
         if (!result.isNewEntry) {
@@ -125,7 +124,7 @@
 #endif
         }
 
-        RefPtrWillBeRawPtr<T> list = T::create(node, collectionType);
+        RawPtr<T> list = T::create(node, collectionType);
         result.storedValue->value = list.get();
         return list.release();
     }
@@ -136,14 +135,14 @@
         return static_cast<T*>(m_atomicNameCaches.get(namedNodeListKey(collectionType, starAtom)));
     }
 
-    PassRefPtrWillBeRawPtr<TagCollection> addCache(ContainerNode& node, const AtomicString& namespaceURI, const AtomicString& localName)
+    RawPtr<TagCollection> addCache(ContainerNode& node, const AtomicString& namespaceURI, const AtomicString& localName)
     {
         QualifiedName name(nullAtom, localName, namespaceURI);
         TagCollectionCacheNS::AddResult result = m_tagCollectionCacheNS.add(name, nullptr);
         if (!result.isNewEntry)
             return result.storedValue->value;
 
-        RefPtrWillBeRawPtr<TagCollection> list = TagCollection::create(node, namespaceURI, localName);
+        RawPtr<TagCollection> list = TagCollection::create(node, namespaceURI, localName);
         result.storedValue->value = list.get();
         return list.release();
     }
@@ -167,7 +166,7 @@
     }
 #endif
 
-    static PassOwnPtrWillBeRawPtr<NodeListsNodeData> create()
+    static RawPtr<NodeListsNodeData> create()
     {
         return adoptPtrWillBeNoop(new NodeListsNodeData);
     }
@@ -221,7 +220,7 @@
 #endif
 
     // Can be a ChildNodeList or an EmptyNodeList.
-    RawPtrWillBeWeakMember<NodeList> m_childNodeList;
+    WeakMember<NodeList> m_childNodeList;
     NodeListAtomicNameCacheMap m_atomicNameCaches;
     TagCollectionCacheNS m_tagCollectionCacheNS;
 };
@@ -238,19 +237,19 @@
 #endif
 
 template <typename Collection>
-inline PassRefPtrWillBeRawPtr<Collection> ContainerNode::ensureCachedCollection(CollectionType type)
+inline RawPtr<Collection> ContainerNode::ensureCachedCollection(CollectionType type)
 {
     return ensureNodeLists().addCache<Collection>(*this, type);
 }
 
 template <typename Collection>
-inline PassRefPtrWillBeRawPtr<Collection> ContainerNode::ensureCachedCollection(CollectionType type, const AtomicString& name)
+inline RawPtr<Collection> ContainerNode::ensureCachedCollection(CollectionType type, const AtomicString& name)
 {
     return ensureNodeLists().addCache<Collection>(*this, type, name);
 }
 
 template <typename Collection>
-inline PassRefPtrWillBeRawPtr<Collection> ContainerNode::ensureCachedCollection(CollectionType type, const AtomicString& namespaceURI, const AtomicString& localName)
+inline RawPtr<Collection> ContainerNode::ensureCachedCollection(CollectionType type, const AtomicString& namespaceURI, const AtomicString& localName)
 {
     ASSERT_UNUSED(type, type == TagCollectionType);
     return ensureNodeLists().addCache(*this, namespaceURI, localName);
diff --git a/third_party/WebKit/Source/core/dom/NodeRareData.cpp b/third_party/WebKit/Source/core/dom/NodeRareData.cpp
index a2042353..04a158e 100644
--- a/third_party/WebKit/Source/core/dom/NodeRareData.cpp
+++ b/third_party/WebKit/Source/core/dom/NodeRareData.cpp
@@ -40,7 +40,7 @@
 
 struct SameSizeAsNodeRareData {
     void* m_pointer;
-    RawPtrWillBeMember<void*> m_willbeMember[2];
+    Member<void*> m_willbeMember[2];
     unsigned m_bitfields;
 };
 
diff --git a/third_party/WebKit/Source/core/dom/NodeRareData.h b/third_party/WebKit/Source/core/dom/NodeRareData.h
index 3cf6e50..04fcdbac 100644
--- a/third_party/WebKit/Source/core/dom/NodeRareData.h
+++ b/third_party/WebKit/Source/core/dom/NodeRareData.h
@@ -31,14 +31,13 @@
 
 namespace blink {
 
-class NodeMutationObserverData final : public NoBaseWillBeGarbageCollected<NodeMutationObserverData> {
+class NodeMutationObserverData final : public GarbageCollected<NodeMutationObserverData> {
     WTF_MAKE_NONCOPYABLE(NodeMutationObserverData);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(NodeMutationObserverData);
 public:
-    WillBeHeapVector<OwnPtrWillBeMember<MutationObserverRegistration>> registry;
-    WillBeHeapHashSet<RawPtrWillBeMember<MutationObserverRegistration>> transientRegistry;
+    HeapVector<Member<MutationObserverRegistration>> registry;
+    HeapHashSet<Member<MutationObserverRegistration>> transientRegistry;
 
-    static PassOwnPtrWillBeRawPtr<NodeMutationObserverData> create()
+    static RawPtr<NodeMutationObserverData> create()
     {
         return adoptPtrWillBeNoop(new NodeMutationObserverData);
     }
@@ -55,9 +54,8 @@
     NodeMutationObserverData() { }
 };
 
-class NodeRareData : public NoBaseWillBeGarbageCollectedFinalized<NodeRareData>, public NodeRareDataBase {
+class NodeRareData : public GarbageCollectedFinalized<NodeRareData>, public NodeRareDataBase {
     WTF_MAKE_NONCOPYABLE(NodeRareData);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(NodeRareData);
 public:
     static NodeRareData* create(LayoutObject* layoutObject)
     {
@@ -117,8 +115,8 @@
     { }
 
 private:
-    OwnPtrWillBeMember<NodeListsNodeData> m_nodeLists;
-    OwnPtrWillBeMember<NodeMutationObserverData> m_mutationObserverData;
+    Member<NodeListsNodeData> m_nodeLists;
+    Member<NodeMutationObserverData> m_mutationObserverData;
 
     unsigned m_connectedFrameCount : ConnectedFrameCountBits;
     unsigned m_elementFlags : NumberOfElementFlags;
diff --git a/third_party/WebKit/Source/core/dom/NodeTraversal.h b/third_party/WebKit/Source/core/dom/NodeTraversal.h
index 9062ab4..99bf817 100644
--- a/third_party/WebKit/Source/core/dom/NodeTraversal.h
+++ b/third_party/WebKit/Source/core/dom/NodeTraversal.h
@@ -124,7 +124,7 @@
     Iterator begin() { return Iterator(m_start); }
     Iterator end() { return Iterator::end(); }
 private:
-    RawPtrWillBeMember<const StartNodeType> m_start;
+    Member<const StartNodeType> m_start;
 };
 
 template <class TraversalNext>
@@ -137,7 +137,7 @@
 protected:
     explicit TraversalIteratorBase(NodeType* current) : m_current(current) { }
 
-    RawPtrWillBeMember<NodeType> m_current;
+    Member<NodeType> m_current;
 };
 
 template <class TraversalNext>
@@ -175,7 +175,7 @@
     static TraversalDescendantIterator end() { return TraversalDescendantIterator(); }
 private:
     TraversalDescendantIterator() : TraversalIteratorBase<TraversalNext>(nullptr), m_root(nullptr) { }
-    RawPtrWillBeMember<const Node> m_root;
+    Member<const Node> m_root;
 };
 
 template <class TraversalNext>
@@ -189,7 +189,7 @@
     void operator++() { m_current = TraversalNext::next(*m_current, m_root); }
     static TraversalInclusiveDescendantIterator end() { return TraversalInclusiveDescendantIterator(nullptr); }
 private:
-    RawPtrWillBeMember<const StartNodeType> m_root;
+    Member<const StartNodeType> m_root;
 };
 
 inline TraversalRange<TraversalChildrenIterator<NodeTraversal>> NodeTraversal::childrenOf(const Node& parent)
diff --git a/third_party/WebKit/Source/core/dom/NodeWithIndex.h b/third_party/WebKit/Source/core/dom/NodeWithIndex.h
index 1329ccb..4adb4c3 100644
--- a/third_party/WebKit/Source/core/dom/NodeWithIndex.h
+++ b/third_party/WebKit/Source/core/dom/NodeWithIndex.h
@@ -56,7 +56,7 @@
 private:
     bool hasIndex() const { return m_index >= 0; }
 
-    RawPtrWillBeMember<Node> m_node;
+    Member<Node> m_node;
     mutable int m_index;
 };
 
diff --git a/third_party/WebKit/Source/core/dom/NthIndexCache.cpp b/third_party/WebKit/Source/core/dom/NthIndexCache.cpp
index de8c37d..76c2cbd 100644
--- a/third_party/WebKit/Source/core/dom/NthIndexCache.cpp
+++ b/third_party/WebKit/Source/core/dom/NthIndexCache.cpp
@@ -156,21 +156,21 @@
 {
     ASSERT(element.parentNode());
     if (!m_parentMap)
-        m_parentMap = adoptPtrWillBeNoop(new ParentMap());
+        m_parentMap = new ParentMap();
 
     ParentMap::AddResult addResult = m_parentMap->add(element.parentNode(), nullptr);
     ASSERT(addResult.isNewEntry);
-    addResult.storedValue->value = adoptPtrWillBeNoop(new NthIndexData(*element.parentNode()));
+    addResult.storedValue->value = new NthIndexData(*element.parentNode());
 }
 
 NthIndexCache::IndexByType& NthIndexCache::ensureTypeIndexMap(ContainerNode& parent)
 {
     if (!m_parentMapForType)
-        m_parentMapForType = adoptPtrWillBeNoop(new ParentMapForType());
+        m_parentMapForType = new ParentMapForType();
 
     ParentMapForType::AddResult addResult = m_parentMapForType->add(&parent, nullptr);
     if (addResult.isNewEntry)
-        addResult.storedValue->value = adoptPtrWillBeNoop(new IndexByType());
+        addResult.storedValue->value = new IndexByType();
 
     ASSERT(addResult.storedValue->value);
     return *addResult.storedValue->value;
@@ -181,7 +181,7 @@
     ASSERT(element.parentNode());
     IndexByType::AddResult addResult = ensureTypeIndexMap(*element.parentNode()).add(element.tagName(), nullptr);
     ASSERT(addResult.isNewEntry);
-    addResult.storedValue->value = adoptPtrWillBeNoop(new NthIndexData(*element.parentNode(), element.tagQName()));
+    addResult.storedValue->value = new NthIndexData(*element.parentNode(), element.tagQName());
 }
 
 unsigned NthIndexData::nthIndex(Element& element) const
diff --git a/third_party/WebKit/Source/core/dom/NthIndexCache.h b/third_party/WebKit/Source/core/dom/NthIndexCache.h
index 5ae0d46..e0dc45ee 100644
--- a/third_party/WebKit/Source/core/dom/NthIndexCache.h
+++ b/third_party/WebKit/Source/core/dom/NthIndexCache.h
@@ -16,10 +16,8 @@
 
 class Document;
 
-class CORE_EXPORT NthIndexData final : public NoBaseWillBeGarbageCollected<NthIndexData> {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(NthIndexData);
+class CORE_EXPORT NthIndexData final : public GarbageCollected<NthIndexData> {
     WTF_MAKE_NONCOPYABLE(NthIndexData);
-    DECLARE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(NthIndexData);
 public:
     NthIndexData(ContainerNode&);
     NthIndexData(ContainerNode&, const QualifiedName& type);
@@ -30,7 +28,7 @@
     unsigned nthLastOfTypeIndex(Element&) const;
 
 private:
-    WillBeHeapHashMap<RawPtrWillBeMember<Element>, unsigned> m_elementIndexMap;
+    HeapHashMap<Member<Element>, unsigned> m_elementIndexMap;
     unsigned m_count = 0;
 
     DECLARE_TRACE();
@@ -49,18 +47,18 @@
     static unsigned nthLastOfTypeIndex(Element&);
 
 private:
-    using IndexByType = WillBeHeapHashMap<String, OwnPtrWillBeMember<NthIndexData>>;
-    using ParentMap = WillBeHeapHashMap<RefPtrWillBeMember<Node>, OwnPtrWillBeMember<NthIndexData>>;
-    using ParentMapForType = WillBeHeapHashMap<RefPtrWillBeMember<Node>, OwnPtrWillBeMember<IndexByType>>;
+    using IndexByType = HeapHashMap<String, Member<NthIndexData>>;
+    using ParentMap = HeapHashMap<Member<Node>, Member<NthIndexData>>;
+    using ParentMapForType = HeapHashMap<Member<Node>, Member<IndexByType>>;
 
     void cacheNthIndexDataForParent(Element&);
     void cacheNthOfTypeIndexDataForParent(Element&);
     IndexByType& ensureTypeIndexMap(ContainerNode&);
     NthIndexData* nthTypeIndexDataForParent(Element&) const;
 
-    RawPtrWillBeMember<Document> m_document;
-    OwnPtrWillBeMember<ParentMap> m_parentMap;
-    OwnPtrWillBeMember<ParentMapForType> m_parentMapForType;
+    Member<Document> m_document;
+    Member<ParentMap> m_parentMap;
+    Member<ParentMapForType> m_parentMapForType;
 
 #if ENABLE(ASSERT)
     uint64_t m_domTreeVersion;
diff --git a/third_party/WebKit/Source/core/dom/ParentNode.h b/third_party/WebKit/Source/core/dom/ParentNode.h
index 5c66857..274e23a 100644
--- a/third_party/WebKit/Source/core/dom/ParentNode.h
+++ b/third_party/WebKit/Source/core/dom/ParentNode.h
@@ -40,7 +40,7 @@
 
 class ParentNode {
 public:
-    static PassRefPtrWillBeRawPtr<HTMLCollection> children(ContainerNode& node)
+    static RawPtr<HTMLCollection> children(ContainerNode& node)
     {
         return node.children();
     }
@@ -63,12 +63,12 @@
         return count;
     }
 
-    static PassRefPtrWillBeRawPtr<Element> querySelector(ContainerNode& node, const AtomicString& selectors, ExceptionState& exceptionState)
+    static RawPtr<Element> querySelector(ContainerNode& node, const AtomicString& selectors, ExceptionState& exceptionState)
     {
         return node.querySelector(selectors, exceptionState);
     }
 
-    static PassRefPtrWillBeRawPtr<StaticElementList> querySelectorAll(ContainerNode& node, const AtomicString& selectors, ExceptionState& exceptionState)
+    static RawPtr<StaticElementList> querySelectorAll(ContainerNode& node, const AtomicString& selectors, ExceptionState& exceptionState)
     {
         return node.querySelectorAll(selectors, exceptionState);
     }
diff --git a/third_party/WebKit/Source/core/dom/PendingScript.cpp b/third_party/WebKit/Source/core/dom/PendingScript.cpp
index d7971cf..54d9faf 100644
--- a/third_party/WebKit/Source/core/dom/PendingScript.cpp
+++ b/third_party/WebKit/Source/core/dom/PendingScript.cpp
@@ -33,9 +33,9 @@
 
 namespace blink {
 
-PassOwnPtrWillBeRawPtr<PendingScript> PendingScript::create(Element* element, ScriptResource* resource)
+RawPtr<PendingScript> PendingScript::create(Element* element, ScriptResource* resource)
 {
-    return adoptPtrWillBeNoop(new PendingScript(element, resource));
+    return new PendingScript(element, resource);
 }
 
 PendingScript::PendingScript(Element* element, ScriptResource* resource)
@@ -113,7 +113,7 @@
     m_element = element;
 }
 
-PassRefPtrWillBeRawPtr<Element> PendingScript::releaseElementAndClear()
+RawPtr<Element> PendingScript::releaseElementAndClear()
 {
     setScriptResource(0);
     m_watchingForLoad = false;
@@ -208,7 +208,7 @@
     return ScriptSourceCode(m_element->textContent(), documentURL, startingPosition());
 }
 
-void PendingScript::setStreamer(PassRefPtrWillBeRawPtr<ScriptStreamer> streamer)
+void PendingScript::setStreamer(RawPtr<ScriptStreamer> streamer)
 {
     ASSERT(!m_streamer);
     ASSERT(!m_watchingForLoad);
diff --git a/third_party/WebKit/Source/core/dom/PendingScript.h b/third_party/WebKit/Source/core/dom/PendingScript.h
index 2491b4f..75d9fe9 100644
--- a/third_party/WebKit/Source/core/dom/PendingScript.h
+++ b/third_party/WebKit/Source/core/dom/PendingScript.h
@@ -45,11 +45,11 @@
 // A RefPtr alone does not prevent the underlying Resource
 // from purging its data buffer. This class holds a dummy client open for its
 // lifetime in order to guarantee that the data buffer will not be purged.
-class CORE_EXPORT PendingScript final : public NoBaseWillBeGarbageCollectedFinalized<PendingScript>, public ResourceOwner<ScriptResource> {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(PendingScript);
-    WILL_BE_USING_PRE_FINALIZER(PendingScript, dispose);
+class CORE_EXPORT PendingScript final : public GarbageCollectedFinalized<PendingScript>, public ResourceOwner<ScriptResource> {
+    USING_GARBAGE_COLLECTED_MIXIN(PendingScript);
+    USING_PRE_FINALIZER(PendingScript, dispose);
 public:
-    static PassOwnPtrWillBeRawPtr<PendingScript> create(Element*, ScriptResource*);
+    static RawPtr<PendingScript> create(Element*, ScriptResource*);
     ~PendingScript() override;
 
     PendingScript& operator=(const PendingScript&);
@@ -62,7 +62,7 @@
 
     Element* element() const { return m_element.get(); }
     void setElement(Element*);
-    PassRefPtrWillBeRawPtr<Element> releaseElementAndClear();
+    RawPtr<Element> releaseElementAndClear();
 
     void setScriptResource(ScriptResource*);
 
@@ -74,7 +74,7 @@
 
     ScriptSourceCode getSource(const KURL& documentURL, bool& errorOccurred) const;
 
-    void setStreamer(PassRefPtrWillBeRawPtr<ScriptStreamer>);
+    void setStreamer(RawPtr<ScriptStreamer>);
     void streamingFinished();
 
     bool isReady() const;
@@ -86,11 +86,11 @@
     PendingScript(Element*, ScriptResource*);
 
     bool m_watchingForLoad;
-    RefPtrWillBeMember<Element> m_element;
+    Member<Element> m_element;
     TextPosition m_startingPosition; // Only used for inline script tags.
     bool m_integrityFailure;
 
-    RefPtrWillBeMember<ScriptStreamer> m_streamer;
+    Member<ScriptStreamer> m_streamer;
     ScriptResourceClient* m_client;
 };
 
diff --git a/third_party/WebKit/Source/core/dom/PresentationAttributeStyle.cpp b/third_party/WebKit/Source/core/dom/PresentationAttributeStyle.cpp
index e6ec956..a3906d2 100644
--- a/third_party/WebKit/Source/core/dom/PresentationAttributeStyle.cpp
+++ b/third_party/WebKit/Source/core/dom/PresentationAttributeStyle.cpp
@@ -57,19 +57,18 @@
     return a.attributesAndValues != b.attributesAndValues;
 }
 
-struct PresentationAttributeCacheEntry final : public NoBaseWillBeGarbageCollectedFinalized<PresentationAttributeCacheEntry> {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(PresentationAttributeCacheEntry);
+struct PresentationAttributeCacheEntry final : public GarbageCollectedFinalized<PresentationAttributeCacheEntry> {
 public:
     DEFINE_INLINE_TRACE() { visitor->trace(value); }
 
     PresentationAttributeCacheKey key;
-    RefPtrWillBeMember<StylePropertySet> value;
+    Member<StylePropertySet> value;
 };
 
-using PresentationAttributeCache = WillBeHeapHashMap<unsigned, OwnPtrWillBeMember<PresentationAttributeCacheEntry>, AlreadyHashed>;
+using PresentationAttributeCache = HeapHashMap<unsigned, Member<PresentationAttributeCacheEntry>, AlreadyHashed>;
 static PresentationAttributeCache& presentationAttributeCache()
 {
-    DEFINE_STATIC_LOCAL(OwnPtrWillBePersistent<PresentationAttributeCache>, cache, (adoptPtrWillBeNoop(new PresentationAttributeCache())));
+    DEFINE_STATIC_LOCAL(Persistent<PresentationAttributeCache>, cache, (new PresentationAttributeCache()));
     return *cache;
 }
 
@@ -154,7 +153,7 @@
     return WTF::hashInts(key.tagName->existingHash(), attributeHash);
 }
 
-PassRefPtrWillBeRawPtr<StylePropertySet> computePresentationAttributeStyle(Element& element)
+RawPtr<StylePropertySet> computePresentationAttributeStyle(Element& element)
 {
     DEFINE_STATIC_LOCAL(PresentationAttributeCacheCleaner, cacheCleaner, ());
 
@@ -174,7 +173,7 @@
         cacheValue = nullptr;
     }
 
-    RefPtrWillBeRawPtr<StylePropertySet> style = nullptr;
+    RawPtr<StylePropertySet> style = nullptr;
     if (cacheHash && cacheValue->value) {
         style = cacheValue->value->value;
         cacheCleaner.didHitPresentationAttributeCache();
@@ -188,7 +187,7 @@
     if (!cacheHash || cacheValue->value)
         return style.release();
 
-    OwnPtrWillBeRawPtr<PresentationAttributeCacheEntry> newEntry = adoptPtrWillBeNoop(new PresentationAttributeCacheEntry);
+    RawPtr<PresentationAttributeCacheEntry> newEntry = adoptPtrWillBeNoop(new PresentationAttributeCacheEntry);
     newEntry->key = cacheKey;
     newEntry->value = style;
 
diff --git a/third_party/WebKit/Source/core/dom/PresentationAttributeStyle.h b/third_party/WebKit/Source/core/dom/PresentationAttributeStyle.h
index 3a9c6ac1f..98c7494 100644
--- a/third_party/WebKit/Source/core/dom/PresentationAttributeStyle.h
+++ b/third_party/WebKit/Source/core/dom/PresentationAttributeStyle.h
@@ -39,7 +39,7 @@
 class Element;
 class StylePropertySet;
 
-PassRefPtrWillBeRawPtr<StylePropertySet> computePresentationAttributeStyle(Element&);
+RawPtr<StylePropertySet> computePresentationAttributeStyle(Element&);
 
 } // namespace blink
 
diff --git a/third_party/WebKit/Source/core/dom/ProcessingInstruction.cpp b/third_party/WebKit/Source/core/dom/ProcessingInstruction.cpp
index 9714d1a6..c7519c83 100644
--- a/third_party/WebKit/Source/core/dom/ProcessingInstruction.cpp
+++ b/third_party/WebKit/Source/core/dom/ProcessingInstruction.cpp
@@ -48,9 +48,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<ProcessingInstruction> ProcessingInstruction::create(Document& document, const String& target, const String& data)
+RawPtr<ProcessingInstruction> ProcessingInstruction::create(Document& document, const String& target, const String& data)
 {
-    return adoptRefWillBeNoop(new ProcessingInstruction(document, target, data));
+    return new ProcessingInstruction(document, target, data);
 }
 
 ProcessingInstruction::~ProcessingInstruction()
@@ -94,7 +94,7 @@
     return PROCESSING_INSTRUCTION_NODE;
 }
 
-PassRefPtrWillBeRawPtr<Node> ProcessingInstruction::cloneNode(bool /*deep*/)
+RawPtr<Node> ProcessingInstruction::cloneNode(bool /*deep*/)
 {
     // FIXME: Is it a problem that this does not copy m_localHref?
     // What about other data members?
@@ -164,7 +164,7 @@
 
     String url = document().completeURL(href).getString();
 
-    RefPtrWillBeRawPtr<StyleSheetResource> resource = nullptr;
+    RawPtr<StyleSheetResource> resource = nullptr;
     FetchRequest request(ResourceRequest(document().completeURL(href)), FetchInitiatorTypeNames::processinginstruction);
     if (m_isXSL) {
         if (RuntimeEnabledFeatures::xsltEnabled())
@@ -211,9 +211,9 @@
     ASSERT(m_isCSS);
     CSSParserContext parserContext(document(), 0, baseURL, charset);
 
-    RefPtrWillBeRawPtr<StyleSheetContents> newSheet = StyleSheetContents::create(href, parserContext);
+    RawPtr<StyleSheetContents> newSheet = StyleSheetContents::create(href, parserContext);
 
-    RefPtrWillBeRawPtr<CSSStyleSheet> cssSheet = CSSStyleSheet::create(newSheet, this);
+    RawPtr<CSSStyleSheet> cssSheet = CSSStyleSheet::create(newSheet, this);
     cssSheet->setDisabled(m_alternate);
     cssSheet->setTitle(m_title);
     cssSheet->setMediaQueries(MediaQuerySet::create(m_media));
@@ -235,7 +235,7 @@
 
     ASSERT(m_isXSL);
     m_sheet = XSLStyleSheet::create(this, href, baseURL);
-    RefPtrWillBeRawPtr<Document> protect(&document());
+    RawPtr<Document> protect(&document());
     OwnPtr<IncrementLoadEventDelayCount> delay = IncrementLoadEventDelayCount::create(document());
     parseStyleSheet(sheet);
 }
@@ -282,7 +282,7 @@
     if (!DocumentXSLT::processingInstructionRemovedFromDocument(document(), this))
         document().styleEngine().removeStyleSheetCandidateNode(this);
 
-    RefPtrWillBeRawPtr<StyleSheet> removedSheet = m_sheet;
+    RawPtr<StyleSheet> removedSheet = m_sheet;
     if (m_sheet) {
         ASSERT(m_sheet->ownerNode() == this);
         clearSheet();
diff --git a/third_party/WebKit/Source/core/dom/ProcessingInstruction.h b/third_party/WebKit/Source/core/dom/ProcessingInstruction.h
index 46d9df9..086462c 100644
--- a/third_party/WebKit/Source/core/dom/ProcessingInstruction.h
+++ b/third_party/WebKit/Source/core/dom/ProcessingInstruction.h
@@ -35,9 +35,9 @@
 
 class ProcessingInstruction final : public CharacterData, private ResourceOwner<StyleSheetResource> {
     DEFINE_WRAPPERTYPEINFO();
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(ProcessingInstruction);
+    USING_GARBAGE_COLLECTED_MIXIN(ProcessingInstruction);
 public:
-    static PassRefPtrWillBeRawPtr<ProcessingInstruction> create(Document&, const String& target, const String& data);
+    static RawPtr<ProcessingInstruction> create(Document&, const String& target, const String& data);
     ~ProcessingInstruction() override;
     DECLARE_VIRTUAL_TRACE();
 
@@ -52,7 +52,7 @@
     bool isLoading() const;
 
     // For XSLT
-    class DetachableEventListener : public WillBeGarbageCollectedMixin {
+    class DetachableEventListener : public GarbageCollectedMixin {
     public:
         virtual ~DetachableEventListener() { }
         virtual EventListener* toEventListener() = 0;
@@ -71,7 +71,7 @@
 #endif
     };
 
-    void setEventListenerForXSLT(PassRefPtrWillBeRawPtr<DetachableEventListener> listener) { m_listenerForXSLT = listener; }
+    void setEventListenerForXSLT(RawPtr<DetachableEventListener> listener) { m_listenerForXSLT = listener; }
     EventListener* eventListenerForXSLT();
     void clearEventListenerForXSLT();
 
@@ -80,7 +80,7 @@
 
     String nodeName() const override;
     NodeType getNodeType() const override;
-    PassRefPtrWillBeRawPtr<Node> cloneNode(bool deep) override;
+    RawPtr<Node> cloneNode(bool deep) override;
 
     InsertionNotificationRequest insertedInto(ContainerNode*) override;
     void removedFrom(ContainerNode*) override;
@@ -102,13 +102,13 @@
     String m_localHref;
     String m_title;
     String m_media;
-    RefPtrWillBeMember<StyleSheet> m_sheet;
+    Member<StyleSheet> m_sheet;
     bool m_loading;
     bool m_alternate;
     bool m_isCSS;
     bool m_isXSL;
 
-    RefPtrWillBeMember<DetachableEventListener> m_listenerForXSLT;
+    Member<DetachableEventListener> m_listenerForXSLT;
 };
 
 DEFINE_NODE_TYPE_CASTS(ProcessingInstruction, getNodeType() == Node::PROCESSING_INSTRUCTION_NODE);
diff --git a/third_party/WebKit/Source/core/dom/PseudoElement.cpp b/third_party/WebKit/Source/core/dom/PseudoElement.cpp
index 6bcd3a64..ff405551 100644
--- a/third_party/WebKit/Source/core/dom/PseudoElement.cpp
+++ b/third_party/WebKit/Source/core/dom/PseudoElement.cpp
@@ -35,9 +35,9 @@
 
 namespace blink {
 
-PassRefPtrWillBeRawPtr<PseudoElement> PseudoElement::create(Element* parent, PseudoId pseudoId)
+RawPtr<PseudoElement> PseudoElement::create(Element* parent, PseudoId pseudoId)
 {
-    return adoptRefWillBeNoop(new PseudoElement(parent, pseudoId));
+    return new PseudoElement(parent, pseudoId);
 }
 
 const QualifiedName& pseudoElementTagName(PseudoId pseudoId)
@@ -108,7 +108,7 @@
     ASSERT(!previousSibling());
 
     detach();
-    RefPtrWillBeRawPtr<Element> parent = parentOrShadowHostElement();
+    RawPtr<Element> parent = parentOrShadowHostElement();
     document().adoptIfNeeded(*this);
     setParentOrShadowHostNode(0);
     removedFrom(parent.get());
diff --git a/third_party/WebKit/Source/core/dom/PseudoElement.h b/third_party/WebKit/Source/core/dom/PseudoElement.h
index a6e2c3d9..0fd367b 100644
--- a/third_party/WebKit/Source/core/dom/PseudoElement.h
+++ b/third_party/WebKit/Source/core/dom/PseudoElement.h
@@ -35,7 +35,7 @@
 
 class CORE_EXPORT PseudoElement : public Element {
 public:
-    static PassRefPtrWillBeRawPtr<PseudoElement> create(Element* parent, PseudoId);
+    static RawPtr<PseudoElement> create(Element* parent, PseudoId);
 
     PassRefPtr<ComputedStyle> customStyleForLayoutObject() override;
     void attach(const AttachContext& = AttachContext()) override;
diff --git a/third_party/WebKit/Source/core/dom/Range.cpp b/third_party/WebKit/Source/core/dom/Range.cpp
index f5fe97c..60ddc57 100644
--- a/third_party/WebKit/Source/core/dom/Range.cpp
+++ b/third_party/WebKit/Source/core/dom/Range.cpp
@@ -76,9 +76,9 @@
     m_ownerDocument->attachRange(this);
 }
 
-PassRefPtrWillBeRawPtr<Range> Range::create(Document& ownerDocument)
+RawPtr<Range> Range::create(Document& ownerDocument)
 {
-    return adoptRefWillBeNoop(new Range(ownerDocument));
+    return new Range(ownerDocument);
 }
 
 inline Range::Range(Document& ownerDocument, Node* startContainer, int startOffset, Node* endContainer, int endOffset)
@@ -98,19 +98,19 @@
     setEnd(endContainer, endOffset);
 }
 
-PassRefPtrWillBeRawPtr<Range> Range::create(Document& ownerDocument, Node* startContainer, int startOffset, Node* endContainer, int endOffset)
+RawPtr<Range> Range::create(Document& ownerDocument, Node* startContainer, int startOffset, Node* endContainer, int endOffset)
 {
-    return adoptRefWillBeNoop(new Range(ownerDocument, startContainer, startOffset, endContainer, endOffset));
+    return new Range(ownerDocument, startContainer, startOffset, endContainer, endOffset);
 }
 
-PassRefPtrWillBeRawPtr<Range> Range::create(Document& ownerDocument, const Position& start, const Position& end)
+RawPtr<Range> Range::create(Document& ownerDocument, const Position& start, const Position& end)
 {
-    return adoptRefWillBeNoop(new Range(ownerDocument, start.computeContainerNode(), start.computeOffsetInContainerNode(), end.computeContainerNode(), end.computeOffsetInContainerNode()));
+    return new Range(ownerDocument, start.computeContainerNode(), start.computeOffsetInContainerNode(), end.computeContainerNode(), end.computeOffsetInContainerNode());
 }
 
-PassRefPtrWillBeRawPtr<Range> Range::createAdjustedToTreeScope(const TreeScope& treeScope, const Position& position)
+RawPtr<Range> Range::createAdjustedToTreeScope(const TreeScope& treeScope, const Position& position)
 {
-    RefPtrWillBeRawPtr<Range> range = create(treeScope.document(), position, position);
+    RawPtr<Range> range = create(treeScope.document(), position, position);
 
     // Make sure the range is in this scope.
     Node* firstNode = range->firstNode();
@@ -190,7 +190,7 @@
     return startRootContainer != endRootContainer || (Range::compareBoundaryPoints(start, end, ASSERT_NO_EXCEPTION) > 0);
 }
 
-void Range::setStart(PassRefPtrWillBeRawPtr<Node> refNode, int offset, ExceptionState& exceptionState)
+void Range::setStart(RawPtr<Node> refNode, int offset, ExceptionState& exceptionState)
 {
     if (!refNode) {
         // FIXME: Generated bindings code never calls with null, and neither should other callers!
@@ -214,7 +214,7 @@
         collapse(true);
 }
 
-void Range::setEnd(PassRefPtrWillBeRawPtr<Node> refNode, int offset, ExceptionState& exceptionState)
+void Range::setEnd(RawPtr<Node> refNode, int offset, ExceptionState& exceptionState)
 {
     if (!refNode) {
         // FIXME: Generated bindings code never calls with null, and neither should other callers!
@@ -502,18 +502,18 @@
     return container;
 }
 
-PassRefPtrWillBeRawPtr<DocumentFragment> Range::processContents(ActionType action, ExceptionState& exceptionState)
+RawPtr<DocumentFragment> Range::processContents(ActionType action, ExceptionState& exceptionState)
 {
-    typedef WillBeHeapVector<RefPtrWillBeMember<Node>> NodeVector;
+    typedef HeapVector<Member<Node>> NodeVector;
 
-    RefPtrWillBeRawPtr<DocumentFragment> fragment = nullptr;
+    RawPtr<DocumentFragment> fragment = nullptr;
     if (action == EXTRACT_CONTENTS || action == CLONE_CONTENTS)
         fragment = DocumentFragment::create(*m_ownerDocument.get());
 
     if (collapsed())
         return fragment.release();
 
-    RefPtrWillBeRawPtr<Node> commonRoot = commonAncestorContainer();
+    RawPtr<Node> commonRoot = commonAncestorContainer();
     ASSERT(commonRoot);
 
     if (m_start.container() == m_end.container()) {
@@ -526,8 +526,8 @@
     RangeBoundaryPoint originalEnd(m_end);
 
     // what is the highest node that partially selects the start / end of the range?
-    RefPtrWillBeRawPtr<Node> partialStart = highestAncestorUnderCommonRoot(originalStart.container(), commonRoot.get());
-    RefPtrWillBeRawPtr<Node> partialEnd = highestAncestorUnderCommonRoot(originalEnd.container(), commonRoot.get());
+    RawPtr<Node> partialStart = highestAncestorUnderCommonRoot(originalStart.container(), commonRoot.get());
+    RawPtr<Node> partialEnd = highestAncestorUnderCommonRoot(originalEnd.container(), commonRoot.get());
 
     // Start and end containers are different.
     // There are three possibilities here:
@@ -549,23 +549,23 @@
     // Note that we are verifying that our common root hierarchy is still intact
     // after any DOM mutation event, at various stages below. See webkit bug 60350.
 
-    RefPtrWillBeRawPtr<Node> leftContents = nullptr;
+    RawPtr<Node> leftContents = nullptr;
     if (originalStart.container() != commonRoot && commonRoot->contains(originalStart.container())) {
         leftContents = processContentsBetweenOffsets(action, nullptr, originalStart.container(), originalStart.offset(), originalStart.container()->lengthOfContents(), exceptionState);
         leftContents = processAncestorsAndTheirSiblings(action, originalStart.container(), ProcessContentsForward, leftContents, commonRoot.get(), exceptionState);
     }
 
-    RefPtrWillBeRawPtr<Node> rightContents = nullptr;
+    RawPtr<Node> rightContents = nullptr;
     if (m_end.container() != commonRoot && commonRoot->contains(originalEnd.container())) {
         rightContents = processContentsBetweenOffsets(action, nullptr, originalEnd.container(), 0, originalEnd.offset(), exceptionState);
         rightContents = processAncestorsAndTheirSiblings(action, originalEnd.container(), ProcessContentsBackward, rightContents, commonRoot.get(), exceptionState);
     }
 
     // delete all children of commonRoot between the start and end container
-    RefPtrWillBeRawPtr<Node> processStart = childOfCommonRootBeforeOffset(originalStart.container(), originalStart.offset(), commonRoot.get());
+    RawPtr<Node> processStart = childOfCommonRootBeforeOffset(originalStart.container(), originalStart.offset(), commonRoot.get());
     if (processStart && originalStart.container() != commonRoot) // processStart contains nodes before m_start.
         processStart = processStart->nextSibling();
-    RefPtrWillBeRawPtr<Node> processEnd = childOfCommonRootBeforeOffset(originalEnd.container(), originalEnd.offset(), commonRoot.get());
+    RawPtr<Node> processEnd = childOfCommonRootBeforeOffset(originalEnd.container(), originalEnd.offset(), commonRoot.get());
 
     // Collapse the range, making sure that the result is not within a node that was partially selected.
     if (action == EXTRACT_CONTENTS || action == DELETE_CONTENTS) {
@@ -605,7 +605,7 @@
     return fragment.release();
 }
 
-static inline void deleteCharacterData(PassRefPtrWillBeRawPtr<CharacterData> data, unsigned startOffset, unsigned endOffset, ExceptionState& exceptionState)
+static inline void deleteCharacterData(RawPtr<CharacterData> data, unsigned startOffset, unsigned endOffset, ExceptionState& exceptionState)
 {
     if (data->length() - endOffset)
         data->deleteData(endOffset, data->length() - endOffset, exceptionState);
@@ -613,14 +613,14 @@
         data->deleteData(0, startOffset, exceptionState);
 }
 
-PassRefPtrWillBeRawPtr<Node> Range::processContentsBetweenOffsets(ActionType action, PassRefPtrWillBeRawPtr<DocumentFragment> fragment,
+RawPtr<Node> Range::processContentsBetweenOffsets(ActionType action, RawPtr<DocumentFragment> fragment,
     Node* container, unsigned startOffset, unsigned endOffset, ExceptionState& exceptionState)
 {
     ASSERT(container);
     ASSERT(startOffset <= endOffset);
 
     // This switch statement must be consistent with that of Node::lengthOfContents.
-    RefPtrWillBeRawPtr<Node> result = nullptr;
+    RawPtr<Node> result = nullptr;
     switch (container->getNodeType()) {
     case Node::TEXT_NODE:
     case Node::CDATA_SECTION_NODE:
@@ -628,7 +628,7 @@
     case Node::PROCESSING_INSTRUCTION_NODE:
         endOffset = std::min(endOffset, toCharacterData(container)->length());
         if (action == EXTRACT_CONTENTS || action == CLONE_CONTENTS) {
-            RefPtrWillBeRawPtr<CharacterData> c = static_pointer_cast<CharacterData>(container->cloneNode(true));
+            RawPtr<CharacterData> c = static_pointer_cast<CharacterData>(container->cloneNode(true));
             deleteCharacterData(c, startOffset, endOffset, exceptionState);
             if (fragment) {
                 result = fragment;
@@ -654,7 +654,7 @@
         }
 
         Node* n = container->firstChild();
-        WillBeHeapVector<RefPtrWillBeMember<Node>> nodes;
+        HeapVector<Member<Node>> nodes;
         for (unsigned i = startOffset; n && i; i--)
             n = n->nextSibling();
         for (unsigned i = startOffset; n && i < endOffset; i++, n = n->nextSibling())
@@ -667,7 +667,7 @@
     return result.release();
 }
 
-void Range::processNodes(ActionType action, WillBeHeapVector<RefPtrWillBeMember<Node>>& nodes, PassRefPtrWillBeRawPtr<Node> oldContainer, PassRefPtrWillBeRawPtr<Node> newContainer, ExceptionState& exceptionState)
+void Range::processNodes(ActionType action, HeapVector<Member<Node>>& nodes, RawPtr<Node> oldContainer, RawPtr<Node> newContainer, ExceptionState& exceptionState)
 {
     for (auto& node : nodes) {
         switch (action) {
@@ -684,19 +684,19 @@
     }
 }
 
-PassRefPtrWillBeRawPtr<Node> Range::processAncestorsAndTheirSiblings(ActionType action, Node* container, ContentsProcessDirection direction, PassRefPtrWillBeRawPtr<Node> passedClonedContainer, Node* commonRoot, ExceptionState& exceptionState)
+RawPtr<Node> Range::processAncestorsAndTheirSiblings(ActionType action, Node* container, ContentsProcessDirection direction, RawPtr<Node> passedClonedContainer, Node* commonRoot, ExceptionState& exceptionState)
 {
-    typedef WillBeHeapVector<RefPtrWillBeMember<Node>> NodeVector;
+    typedef HeapVector<Member<Node>> NodeVector;
 
-    RefPtrWillBeRawPtr<Node> clonedContainer = passedClonedContainer;
+    RawPtr<Node> clonedContainer = passedClonedContainer;
     NodeVector ancestors;
     for (ContainerNode* n = container->parentNode(); n && n != commonRoot; n = n->parentNode())
         ancestors.append(n);
 
-    RefPtrWillBeRawPtr<Node> firstChildInAncestorToProcess = direction == ProcessContentsForward ? container->nextSibling() : container->previousSibling();
-    for (const RefPtrWillBeRawPtr<Node>& ancestor : ancestors) {
+    RawPtr<Node> firstChildInAncestorToProcess = direction == ProcessContentsForward ? container->nextSibling() : container->previousSibling();
+    for (const RawPtr<Node>& ancestor : ancestors) {
         if (action == EXTRACT_CONTENTS || action == CLONE_CONTENTS) {
-            if (RefPtrWillBeRawPtr<Node> clonedAncestor = ancestor->cloneNode(false)) { // Might have been removed already during mutation event.
+            if (RawPtr<Node> clonedAncestor = ancestor->cloneNode(false)) { // Might have been removed already during mutation event.
                 clonedAncestor->appendChild(clonedContainer, exceptionState);
                 clonedContainer = clonedAncestor;
             }
@@ -712,7 +712,7 @@
             child = (direction == ProcessContentsForward) ? child->nextSibling() : child->previousSibling())
             nodes.append(child);
 
-        for (const RefPtrWillBeRawPtr<Node>& node : nodes) {
+        for (const RawPtr<Node>& node : nodes) {
             Node* child = node.get();
             switch (action) {
             case DELETE_CONTENTS:
@@ -741,7 +741,7 @@
     return clonedContainer.release();
 }
 
-PassRefPtrWillBeRawPtr<DocumentFragment> Range::extractContents(ExceptionState& exceptionState)
+RawPtr<DocumentFragment> Range::extractContents(ExceptionState& exceptionState)
 {
     checkExtractPrecondition(exceptionState);
     if (exceptionState.hadException())
@@ -750,14 +750,14 @@
     return processContents(EXTRACT_CONTENTS, exceptionState);
 }
 
-PassRefPtrWillBeRawPtr<DocumentFragment> Range::cloneContents(ExceptionState& exceptionState)
+RawPtr<DocumentFragment> Range::cloneContents(ExceptionState& exceptionState)
 {
     return processContents(CLONE_CONTENTS, exceptionState);
 }
 
-void Range::insertNode(PassRefPtrWillBeRawPtr<Node> prpNewNode, ExceptionState& exceptionState)
+void Range::insertNode(RawPtr<Node> prpNewNode, ExceptionState& exceptionState)
 {
-    RefPtrWillBeRawPtr<Node> newNode = prpNewNode;
+    RawPtr<Node> newNode = prpNewNode;
 
     if (!newNode) {
         // FIXME: Generated bindings code never calls with null, and neither should other callers!
@@ -826,10 +826,10 @@
 
     EventQueueScope scope;
     bool collapsed = m_start == m_end;
-    RefPtrWillBeRawPtr<Node> container = nullptr;
+    RawPtr<Node> container = nullptr;
     if (startIsText) {
         container = m_start.container();
-        RefPtrWillBeRawPtr<Text> newText = toText(container)->splitText(m_start.offset(), exceptionState);
+        RawPtr<Text> newText = toText(container)->splitText(m_start.offset(), exceptionState);
         if (exceptionState.hadException())
             return;
 
@@ -849,7 +849,7 @@
             m_end.setToBeforeChild(*newText);
         }
     } else {
-        RefPtrWillBeRawPtr<Node> lastChild = (newNodeType == Node::DOCUMENT_FRAGMENT_NODE) ? toDocumentFragment(newNode)->lastChild() : newNode.get();
+        RawPtr<Node> lastChild = (newNodeType == Node::DOCUMENT_FRAGMENT_NODE) ? toDocumentFragment(newNode)->lastChild() : newNode.get();
         if (lastChild && lastChild == m_start.childBefore()) {
             // The insertion will do nothing, but we need to extend the range to include
             // the inserted nodes.
@@ -895,14 +895,14 @@
     return plainText(EphemeralRange(this), TextIteratorEmitsObjectReplacementCharacter);
 }
 
-PassRefPtrWillBeRawPtr<DocumentFragment> Range::createContextualFragment(const String& markup, ExceptionState& exceptionState)
+RawPtr<DocumentFragment> Range::createContextualFragment(const String& markup, ExceptionState& exceptionState)
 {
     // Algorithm: http://domparsing.spec.whatwg.org/#extensions-to-the-range-interface
 
     Node* node = m_start.container();
 
     // Step 1.
-    RefPtrWillBeRawPtr<Element> element;
+    RawPtr<Element> element;
     if (!m_start.offset() && (node->isDocumentNode() || node->isDocumentFragment()))
         element = nullptr;
     else if (node->isElementNode())
@@ -932,7 +932,7 @@
     }
 
     // Steps 3, 4, 5.
-    RefPtrWillBeRawPtr<DocumentFragment> fragment = blink::createContextualFragment(markup, element.get(), AllowScriptingContentAndDoNotMarkAlreadyStarted, exceptionState);
+    RawPtr<DocumentFragment> fragment = blink::createContextualFragment(markup, element.get(), AllowScriptingContentAndDoNotMarkAlreadyStarted, exceptionState);
     if (!fragment)
         return nullptr;
 
@@ -1029,7 +1029,7 @@
     }
 }
 
-PassRefPtrWillBeRawPtr<Range> Range::cloneRange() const
+RawPtr<Range> Range::cloneRange() const
 {
     return Range::create(*m_ownerDocument.get(), m_start.container(), m_start.offset(), m_end.container(), m_end.offset());
 }
@@ -1161,9 +1161,9 @@
     return true;
 }
 
-void Range::surroundContents(PassRefPtrWillBeRawPtr<Node> passNewParent, ExceptionState& exceptionState)
+void Range::surroundContents(RawPtr<Node> passNewParent, ExceptionState& exceptionState)
 {
-    RefPtrWillBeRawPtr<Node> newParent = passNewParent;
+    RawPtr<Node> newParent = passNewParent;
     if (!newParent) {
         // FIXME: Generated bindings code never calls with null, and neither should other callers!
         exceptionState.throwTypeError("The node provided is null.");
@@ -1231,7 +1231,7 @@
         if (exceptionState.hadException())
             return;
     }
-    RefPtrWillBeRawPtr<DocumentFragment> fragment = extractContents(exceptionState);
+    RawPtr<DocumentFragment> fragment = extractContents(exceptionState);
     if (exceptionState.hadException())
         return;
     insertNode(newParent, exceptionState);
@@ -1577,7 +1577,7 @@
     Node* endContainer = m_end.container();
     Node* stopNode = pastLastNode();
 
-    WillBeHeapHashSet<RawPtrWillBeMember<Node>> nodeSet;
+    HeapHashSet<Member<Node>> nodeSet;
     for (Node* node = firstNode(); node != stopNode; node = NodeTraversal::next(*node)) {
         if (node->isElementNode())
             nodeSet.add(node);
diff --git a/third_party/WebKit/Source/core/dom/Range.h b/third_party/WebKit/Source/core/dom/Range.h
index a8f9781..9dafd6d 100644
--- a/third_party/WebKit/Source/core/dom/Range.h
+++ b/third_party/WebKit/Source/core/dom/Range.h
@@ -50,17 +50,17 @@
 
 class CORE_EXPORT Range final
 #ifndef NDEBUG
-    : public RefCountedWillBeGarbageCollectedFinalized<Range>
+    : public GarbageCollectedFinalized<Range>
 #else
-    : public RefCountedWillBeGarbageCollected<Range>
+    : public GarbageCollected<Range>
 #endif
     , public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<Range> create(Document&);
-    static PassRefPtrWillBeRawPtr<Range> create(Document&, Node* startContainer, int startOffset, Node* endContainer, int endOffset);
-    static PassRefPtrWillBeRawPtr<Range> create(Document&, const Position&, const Position&);
-    static PassRefPtrWillBeRawPtr<Range> createAdjustedToTreeScope(const TreeScope&, const Position&);
+    static RawPtr<Range> create(Document&);
+    static RawPtr<Range> create(Document&, Node* startContainer, int startOffset, Node* endContainer, int endOffset);
+    static RawPtr<Range> create(Document&, const Position&, const Position&);
+    static RawPtr<Range> createAdjustedToTreeScope(const TreeScope&, const Position&);
 #if !ENABLE(OILPAN) || !defined(NDEBUG)
     ~Range();
 #endif
@@ -77,8 +77,8 @@
 
     Node* commonAncestorContainer() const;
     static Node* commonAncestorContainer(const Node* containerA, const Node* containerB);
-    void setStart(PassRefPtrWillBeRawPtr<Node> container, int offset, ExceptionState& = ASSERT_NO_EXCEPTION);
-    void setEnd(PassRefPtrWillBeRawPtr<Node> container, int offset, ExceptionState& = ASSERT_NO_EXCEPTION);
+    void setStart(RawPtr<Node> container, int offset, ExceptionState& = ASSERT_NO_EXCEPTION);
+    void setEnd(RawPtr<Node> container, int offset, ExceptionState& = ASSERT_NO_EXCEPTION);
     void collapse(bool toStart);
     bool isNodeFullyContained(Node&) const;
     bool isPointInRange(Node* refNode, int offset, ExceptionState&) const;
@@ -92,17 +92,17 @@
     bool intersectsNode(Node* refNode, ExceptionState&);
     static bool intersectsNode(Node* refNode, const Position& start, const Position& end, ExceptionState&);
     void deleteContents(ExceptionState&);
-    PassRefPtrWillBeRawPtr<DocumentFragment> extractContents(ExceptionState&);
-    PassRefPtrWillBeRawPtr<DocumentFragment> cloneContents(ExceptionState&);
-    void insertNode(PassRefPtrWillBeRawPtr<Node>, ExceptionState&);
+    RawPtr<DocumentFragment> extractContents(ExceptionState&);
+    RawPtr<DocumentFragment> cloneContents(ExceptionState&);
+    void insertNode(RawPtr<Node>, ExceptionState&);
     String toString() const;
 
     String text() const;
 
-    PassRefPtrWillBeRawPtr<DocumentFragment> createContextualFragment(const String& html, ExceptionState&);
+    RawPtr<DocumentFragment> createContextualFragment(const String& html, ExceptionState&);
 
     void detach();
-    PassRefPtrWillBeRawPtr<Range> cloneRange() const;
+    RawPtr<Range> cloneRange() const;
 
     void setStartAfter(Node*, ExceptionState& = ASSERT_NO_EXCEPTION);
     void setEndBefore(Node*, ExceptionState& = ASSERT_NO_EXCEPTION);
@@ -110,7 +110,7 @@
     void selectNode(Node*, ExceptionState& = ASSERT_NO_EXCEPTION);
     void selectNodeContents(Node*, ExceptionState&);
     static bool selectNodeContents(Node*, Position&, Position&);
-    void surroundContents(PassRefPtrWillBeRawPtr<Node>, ExceptionState&);
+    void surroundContents(RawPtr<Node>, ExceptionState&);
     void setStartBefore(Node*, ExceptionState& = ASSERT_NO_EXCEPTION);
 
     const Position startPosition() const { return m_start.toPosition(); }
@@ -167,13 +167,13 @@
     void checkExtractPrecondition(ExceptionState&);
 
     enum ActionType { DELETE_CONTENTS, EXTRACT_CONTENTS, CLONE_CONTENTS };
-    PassRefPtrWillBeRawPtr<DocumentFragment> processContents(ActionType, ExceptionState&);
-    static PassRefPtrWillBeRawPtr<Node> processContentsBetweenOffsets(ActionType, PassRefPtrWillBeRawPtr<DocumentFragment>, Node*, unsigned startOffset, unsigned endOffset, ExceptionState&);
-    static void processNodes(ActionType, WillBeHeapVector<RefPtrWillBeMember<Node>>&, PassRefPtrWillBeRawPtr<Node> oldContainer, PassRefPtrWillBeRawPtr<Node> newContainer, ExceptionState&);
+    RawPtr<DocumentFragment> processContents(ActionType, ExceptionState&);
+    static RawPtr<Node> processContentsBetweenOffsets(ActionType, RawPtr<DocumentFragment>, Node*, unsigned startOffset, unsigned endOffset, ExceptionState&);
+    static void processNodes(ActionType, HeapVector<Member<Node>>&, RawPtr<Node> oldContainer, RawPtr<Node> newContainer, ExceptionState&);
     enum ContentsProcessDirection { ProcessContentsForward, ProcessContentsBackward };
-    static PassRefPtrWillBeRawPtr<Node> processAncestorsAndTheirSiblings(ActionType, Node* container, ContentsProcessDirection, PassRefPtrWillBeRawPtr<Node> clonedContainer, Node* commonRoot, ExceptionState&);
+    static RawPtr<Node> processAncestorsAndTheirSiblings(ActionType, Node* container, ContentsProcessDirection, RawPtr<Node> clonedContainer, Node* commonRoot, ExceptionState&);
 
-    RefPtrWillBeMember<Document> m_ownerDocument; // Cannot be null.
+    Member<Document> m_ownerDocument; // Cannot be null.
     RangeBoundaryPoint m_start;
     RangeBoundaryPoint m_end;
 };
diff --git a/third_party/WebKit/Source/core/dom/RangeBoundaryPoint.h b/third_party/WebKit/Source/core/dom/RangeBoundaryPoint.h
index 9b637ecd4..85ad5695 100644
--- a/third_party/WebKit/Source/core/dom/RangeBoundaryPoint.h
+++ b/third_party/WebKit/Source/core/dom/RangeBoundaryPoint.h
@@ -35,7 +35,7 @@
 class RangeBoundaryPoint {
     DISALLOW_NEW();
 public:
-    explicit RangeBoundaryPoint(PassRefPtrWillBeRawPtr<Node> container);
+    explicit RangeBoundaryPoint(RawPtr<Node> container);
 
     explicit RangeBoundaryPoint(const RangeBoundaryPoint&);
 
@@ -48,7 +48,7 @@
 
     void clear();
 
-    void set(PassRefPtrWillBeRawPtr<Node> container, int offset, Node* childBefore);
+    void set(RawPtr<Node> container, int offset, Node* childBefore);
     void setOffset(int);
 
     void setToBeforeChild(Node&);
@@ -68,12 +68,12 @@
 private:
     static const int invalidOffset = -1;
 
-    RefPtrWillBeMember<Node> m_containerNode;
+    Member<Node> m_containerNode;
     mutable int m_offsetInContainer;
-    RefPtrWillBeMember<Node> m_childBeforeBoundary;
+    Member<Node> m_childBeforeBoundary;
 };
 
-inline RangeBoundaryPoint::RangeBoundaryPoint(PassRefPtrWillBeRawPtr<Node> container)
+inline RangeBoundaryPoint::RangeBoundaryPoint(RawPtr<Node> container)
     : m_containerNode(container)
     , m_offsetInContainer(0)
     , m_childBeforeBoundary(nullptr)
@@ -131,7 +131,7 @@
     m_childBeforeBoundary = nullptr;
 }
 
-inline void RangeBoundaryPoint::set(PassRefPtrWillBeRawPtr<Node> container, int offset, Node* childBefore)
+inline void RangeBoundaryPoint::set(RawPtr<Node> container, int offset, Node* childBefore)
 {
     ASSERT(container);
     ASSERT(offset >= 0);
diff --git a/third_party/WebKit/Source/core/dom/RangeTest.cpp b/third_party/WebKit/Source/core/dom/RangeTest.cpp
index 077ee221..cb96638b 100644
--- a/third_party/WebKit/Source/core/dom/RangeTest.cpp
+++ b/third_party/WebKit/Source/core/dom/RangeTest.cpp
@@ -27,13 +27,13 @@
     HTMLDocument& document() const;
 
 private:
-    RefPtrWillBePersistent<HTMLDocument> m_document;
+    Persistent<HTMLDocument> m_document;
 };
 
 void RangeTest::SetUp()
 {
     m_document = HTMLDocument::create();
-    RefPtrWillBeRawPtr<HTMLHtmlElement> html = HTMLHtmlElement::create(*m_document);
+    RawPtr<HTMLHtmlElement> html = HTMLHtmlElement::create(*m_document);
     html->appendChild(HTMLBodyElement::create(*m_document));
     m_document->appendChild(html.release());
 }
@@ -48,10 +48,10 @@
     document().body()->setInnerHTML("1234", ASSERT_NO_EXCEPTION);
     Text* oldText = toText(document().body()->firstChild());
 
-    RefPtrWillBeRawPtr<Range> range04 = Range::create(document(), oldText, 0, oldText, 4);
-    RefPtrWillBeRawPtr<Range> range02 = Range::create(document(), oldText, 0, oldText, 2);
-    RefPtrWillBeRawPtr<Range> range22 = Range::create(document(), oldText, 2, oldText, 2);
-    RefPtrWillBeRawPtr<Range> range24 = Range::create(document(), oldText, 2, oldText, 4);
+    RawPtr<Range> range04 = Range::create(document(), oldText, 0, oldText, 4);
+    RawPtr<Range> range02 = Range::create(document(), oldText, 0, oldText, 2);
+    RawPtr<Range> range22 = Range::create(document(), oldText, 2, oldText, 2);
+    RawPtr<Range> range24 = Range::create(document(), oldText, 2, oldText, 4);
 
     oldText->splitText(2, ASSERT_NO_EXCEPTION);
     Text* newText = toText(oldText->nextSibling());
@@ -91,12 +91,12 @@
     Element* innerRight = document().getElementById(AtomicString::fromUTF8("inner-right"));
     Text* oldText = toText(outer->childNodes()->item(2));
 
-    RefPtrWillBeRawPtr<Range> rangeOuterOutside = Range::create(document(), outer, 0, outer, 5);
-    RefPtrWillBeRawPtr<Range> rangeOuterInside = Range::create(document(), outer, 1, outer, 4);
-    RefPtrWillBeRawPtr<Range> rangeOuterSurroundingText = Range::create(document(), outer, 2, outer, 3);
-    RefPtrWillBeRawPtr<Range> rangeInnerLeft = Range::create(document(), innerLeft, 0, innerLeft, 1);
-    RefPtrWillBeRawPtr<Range> rangeInnerRight = Range::create(document(), innerRight, 0, innerRight, 1);
-    RefPtrWillBeRawPtr<Range> rangeFromTextToMiddleOfElement = Range::create(document(), oldText, 6, outer, 3);
+    RawPtr<Range> rangeOuterOutside = Range::create(document(), outer, 0, outer, 5);
+    RawPtr<Range> rangeOuterInside = Range::create(document(), outer, 1, outer, 4);
+    RawPtr<Range> rangeOuterSurroundingText = Range::create(document(), outer, 2, outer, 3);
+    RawPtr<Range> rangeInnerLeft = Range::create(document(), innerLeft, 0, innerLeft, 1);
+    RawPtr<Range> rangeInnerRight = Range::create(document(), innerRight, 0, innerRight, 1);
+    RawPtr<Range> rangeFromTextToMiddleOfElement = Range::create(document(), oldText, 6, outer, 3);
 
     oldText->splitText(3, ASSERT_NO_EXCEPTION);
     Text* newText = toText(oldText->nextSibling());
diff --git a/third_party/WebKit/Source/core/dom/RemoteSecurityContext.cpp b/third_party/WebKit/Source/core/dom/RemoteSecurityContext.cpp
index fd94703..25a69e95 100644
--- a/third_party/WebKit/Source/core/dom/RemoteSecurityContext.cpp
+++ b/third_party/WebKit/Source/core/dom/RemoteSecurityContext.cpp
@@ -26,9 +26,9 @@
     // grantUniversalAccess().
 }
 
-PassRefPtrWillBeRawPtr<RemoteSecurityContext> RemoteSecurityContext::create()
+RawPtr<RemoteSecurityContext> RemoteSecurityContext::create()
 {
-    return adoptRefWillBeNoop(new RemoteSecurityContext());
+    return new RemoteSecurityContext();
 }
 
 DEFINE_TRACE(RemoteSecurityContext)
diff --git a/third_party/WebKit/Source/core/dom/RemoteSecurityContext.h b/third_party/WebKit/Source/core/dom/RemoteSecurityContext.h
index 4987e1b..6f4e2fbe 100644
--- a/third_party/WebKit/Source/core/dom/RemoteSecurityContext.h
+++ b/third_party/WebKit/Source/core/dom/RemoteSecurityContext.h
@@ -11,12 +11,12 @@
 
 namespace blink {
 
-class CORE_EXPORT RemoteSecurityContext : public RefCountedWillBeGarbageCollectedFinalized<RemoteSecurityContext>, public SecurityContext {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(RemoteSecurityContext);
+class CORE_EXPORT RemoteSecurityContext : public GarbageCollectedFinalized<RemoteSecurityContext>, public SecurityContext {
+    USING_GARBAGE_COLLECTED_MIXIN(RemoteSecurityContext);
 public:
     DECLARE_VIRTUAL_TRACE();
 
-    static PassRefPtrWillBeRawPtr<RemoteSecurityContext> create();
+    static RawPtr<RemoteSecurityContext> create();
     void setReplicatedOrigin(PassRefPtr<SecurityOrigin>);
 
     // FIXME: implement
diff --git a/third_party/WebKit/Source/core/dom/ScopedWindowFocusAllowedIndicator.h b/third_party/WebKit/Source/core/dom/ScopedWindowFocusAllowedIndicator.h
index 51c5367..01917758 100644
--- a/third_party/WebKit/Source/core/dom/ScopedWindowFocusAllowedIndicator.h
+++ b/third_party/WebKit/Source/core/dom/ScopedWindowFocusAllowedIndicator.h
@@ -16,7 +16,7 @@
     WTF_MAKE_NONCOPYABLE(ScopedWindowFocusAllowedIndicator);
 public:
     explicit ScopedWindowFocusAllowedIndicator(ExecutionContext* executionContext)
-        : m_observer(adoptPtrWillBeNoop(new Observer(executionContext)))
+        : m_observer(new Observer(executionContext))
     {
     }
     ~ScopedWindowFocusAllowedIndicator()
@@ -25,8 +25,8 @@
     }
 
 private:
-    class Observer final : public NoBaseWillBeGarbageCollectedFinalized<Observer>, public ContextLifecycleObserver {
-        WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(Observer);
+    class Observer final : public GarbageCollectedFinalized<Observer>, public ContextLifecycleObserver {
+        USING_GARBAGE_COLLECTED_MIXIN(Observer);
     public:
         explicit Observer(ExecutionContext* executionContext)
             : ContextLifecycleObserver(executionContext)
@@ -51,7 +51,7 @@
     // The Observer indirection is needed to keep
     // ScopedWindowFocusAllowedIndicator off-heap and thus allows its destructor
     // to call getExecutionContext()->consumeWindowInteraction().
-    OwnPtrWillBePersistent<Observer> m_observer;
+    Persistent<Observer> m_observer;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/dom/ScriptLoader.cpp b/third_party/WebKit/Source/core/dom/ScriptLoader.cpp
index 26263cf292..f8861bd7 100644
--- a/third_party/WebKit/Source/core/dom/ScriptLoader.cpp
+++ b/third_party/WebKit/Source/core/dom/ScriptLoader.cpp
@@ -285,7 +285,7 @@
 {
     ASSERT(m_element);
 
-    RefPtrWillBeRawPtr<Document> elementDocument(m_element->document());
+    RawPtr<Document> elementDocument(m_element->document());
     if (!m_element->inDocument() || m_element->document() != elementDocument)
         return false;
 
@@ -364,8 +364,8 @@
     if (sourceCode.isEmpty())
         return true;
 
-    RefPtrWillBeRawPtr<Document> elementDocument(m_element->document());
-    RefPtrWillBeRawPtr<Document> contextDocument = elementDocument->contextDocument().get();
+    RawPtr<Document> elementDocument(m_element->document());
+    RawPtr<Document> contextDocument = elementDocument->contextDocument().get();
     if (!contextDocument)
         return true;
 
@@ -446,7 +446,7 @@
     ASSERT(m_pendingScript->resource());
     bool errorOccurred = false;
     ScriptSourceCode source = m_pendingScript->getSource(KURL(), errorOccurred);
-    RefPtrWillBeRawPtr<Element> element = m_pendingScript->releaseElementAndClear();
+    RawPtr<Element> element = m_pendingScript->releaseElementAndClear();
     ALLOW_UNUSED_LOCAL(element);
     if (errorOccurred) {
         dispatchErrorEvent();
@@ -463,8 +463,8 @@
 {
     ASSERT(!m_willBeParserExecuted);
 
-    RefPtrWillBeRawPtr<Document> elementDocument(m_element->document());
-    RefPtrWillBeRawPtr<Document> contextDocument = elementDocument->contextDocument().get();
+    RawPtr<Document> elementDocument(m_element->document());
+    RawPtr<Document> contextDocument = elementDocument->contextDocument().get();
     if (!contextDocument)
         return;
 
diff --git a/third_party/WebKit/Source/core/dom/ScriptLoader.h b/third_party/WebKit/Source/core/dom/ScriptLoader.h
index 99d47c3..2b79d3058 100644
--- a/third_party/WebKit/Source/core/dom/ScriptLoader.h
+++ b/third_party/WebKit/Source/core/dom/ScriptLoader.h
@@ -36,12 +36,11 @@
 class ScriptSourceCode;
 class LocalFrame;
 
-class CORE_EXPORT ScriptLoader : public NoBaseWillBeGarbageCollectedFinalized<ScriptLoader>, public ScriptResourceClient {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(ScriptLoader);
+class CORE_EXPORT ScriptLoader : public GarbageCollectedFinalized<ScriptLoader>, public ScriptResourceClient {
 public:
-    static PassOwnPtrWillBeRawPtr<ScriptLoader> create(Element* element, bool createdByParser, bool isEvaluated)
+    static RawPtr<ScriptLoader> create(Element* element, bool createdByParser, bool isEvaluated)
     {
-        return adoptPtrWillBeNoop(new ScriptLoader(element, createdByParser, isEvaluated));
+        return new ScriptLoader(element, createdByParser, isEvaluated);
     }
 
     ~ScriptLoader() override;
@@ -102,8 +101,8 @@
     void notifyFinished(Resource*) override;
     String debugName() const override { return "ScriptLoader"; }
 
-    RawPtrWillBeMember<Element> m_element;
-    RefPtrWillBeMember<ScriptResource> m_resource;
+    Member<Element> m_element;
+    Member<ScriptResource> m_resource;
     WTF::OrdinalNumber m_startLineNumber;
     String m_characterEncoding;
     String m_fallbackCharacterEncoding;
@@ -118,7 +117,7 @@
     bool m_willExecuteWhenDocumentFinishedParsing : 1;
     bool m_forceAsync : 1;
 
-    OwnPtrWillBeMember<PendingScript> m_pendingScript;
+    Member<PendingScript> m_pendingScript;
 };
 
 ScriptLoader* toScriptLoaderIfPossible(Element*);
diff --git a/third_party/WebKit/Source/core/dom/ScriptRunner.cpp b/third_party/WebKit/Source/core/dom/ScriptRunner.cpp
index b9e704c..38d9117 100644
--- a/third_party/WebKit/Source/core/dom/ScriptRunner.cpp
+++ b/third_party/WebKit/Source/core/dom/ScriptRunner.cpp
@@ -213,7 +213,7 @@
 
 void ScriptRunner::movePendingScript(Document& oldDocument, Document& newDocument, ScriptLoader* scriptLoader)
 {
-    RefPtrWillBeRawPtr<Document> newContextDocument = newDocument.contextDocument().get();
+    RawPtr<Document> newContextDocument = newDocument.contextDocument().get();
     if (!newContextDocument) {
         // Document's contextDocument() method will return no Document if the
         // following conditions both hold:
@@ -228,7 +228,7 @@
         ASSERT(!newDocument.frame());
         newContextDocument = &newDocument;
     }
-    RefPtrWillBeRawPtr<Document> oldContextDocument = oldDocument.contextDocument().get();
+    RawPtr<Document> oldContextDocument = oldDocument.contextDocument().get();
     if (!oldContextDocument) {
         ASSERT(!oldDocument.frame());
         oldContextDocument = &oldDocument;
@@ -252,7 +252,7 @@
 }
 
 // Returns true if task was run, and false otherwise.
-bool ScriptRunner::executeTaskFromQueue(WillBeHeapDeque<RawPtrWillBeMember<ScriptLoader>>* taskQueue)
+bool ScriptRunner::executeTaskFromQueue(HeapDeque<Member<ScriptLoader>>* taskQueue)
 {
     if (taskQueue->isEmpty())
         return false;
diff --git a/third_party/WebKit/Source/core/dom/ScriptRunner.h b/third_party/WebKit/Source/core/dom/ScriptRunner.h
index bdc35e6..abc7e26 100644
--- a/third_party/WebKit/Source/core/dom/ScriptRunner.h
+++ b/third_party/WebKit/Source/core/dom/ScriptRunner.h
@@ -40,12 +40,12 @@
 class ScriptLoader;
 class WebTaskRunner;
 
-class CORE_EXPORT ScriptRunner final : public NoBaseWillBeGarbageCollectedFinalized<ScriptRunner> {
-    WTF_MAKE_NONCOPYABLE(ScriptRunner); USING_FAST_MALLOC_WILL_BE_REMOVED(ScriptRunner);
+class CORE_EXPORT ScriptRunner final : public GarbageCollectedFinalized<ScriptRunner> {
+    WTF_MAKE_NONCOPYABLE(ScriptRunner);
 public:
-    static PassOwnPtrWillBeRawPtr<ScriptRunner> create(Document* document)
+    static RawPtr<ScriptRunner> create(Document* document)
     {
-        return adoptPtrWillBeNoop(new ScriptRunner(document));
+        return new ScriptRunner(document);
     }
     ~ScriptRunner();
 #if !ENABLE(OILPAN)
@@ -75,18 +75,18 @@
 
     void postTask(const WebTraceLocation&);
 
-    bool executeTaskFromQueue(WillBeHeapDeque<RawPtrWillBeMember<ScriptLoader>>*);
+    bool executeTaskFromQueue(HeapDeque<Member<ScriptLoader>>*);
 
     void executeTask();
 
-    RawPtrWillBeMember<Document> m_document;
+    Member<Document> m_document;
 
-    WillBeHeapDeque<RawPtrWillBeMember<ScriptLoader>> m_pendingInOrderScripts;
-    WillBeHeapHashSet<RawPtrWillBeMember<ScriptLoader>> m_pendingAsyncScripts;
+    HeapDeque<Member<ScriptLoader>> m_pendingInOrderScripts;
+    HeapHashSet<Member<ScriptLoader>> m_pendingAsyncScripts;
 
     // http://www.whatwg.org/specs/web-apps/current-work/#set-of-scripts-that-will-execute-as-soon-as-possible
-    WillBeHeapDeque<RawPtrWillBeMember<ScriptLoader>> m_asyncScriptsToExecuteSoon;
-    WillBeHeapDeque<RawPtrWillBeMember<ScriptLoader>> m_inOrderScriptsToExecuteSoon;
+    HeapDeque<Member<ScriptLoader>> m_asyncScriptsToExecuteSoon;
+    HeapDeque<Member<ScriptLoader>> m_inOrderScriptsToExecuteSoon;
 
     WebTaskRunner* m_taskRunner;
 
diff --git a/third_party/WebKit/Source/core/dom/ScriptRunnerTest.cpp b/third_party/WebKit/Source/core/dom/ScriptRunnerTest.cpp
index 862955d..c21f690b 100644
--- a/third_party/WebKit/Source/core/dom/ScriptRunnerTest.cpp
+++ b/third_party/WebKit/Source/core/dom/ScriptRunnerTest.cpp
@@ -25,9 +25,9 @@
 
 class MockScriptLoader final : public ScriptLoader {
 public:
-    static PassOwnPtrWillBeRawPtr<MockScriptLoader> create(Element* element)
+    static RawPtr<MockScriptLoader> create(Element* element)
     {
-        return adoptPtrWillBeNoop(new MockScriptLoader(element));
+        return new MockScriptLoader(element);
     }
     ~MockScriptLoader() override { }
 
@@ -60,16 +60,16 @@
         m_scriptRunner.release();
     }
 
-    RefPtrWillBePersistent<Document> m_document;
-    RefPtrWillBePersistent<Element> m_element;
+    Persistent<Document> m_document;
+    Persistent<Element> m_element;
     TestingPlatformSupportWithMockScheduler m_platform;
-    OwnPtrWillBePersistent<ScriptRunner> m_scriptRunner;
+    Persistent<ScriptRunner> m_scriptRunner;
     WTF::Vector<int> m_order;
 };
 
 TEST_F(ScriptRunnerTest, QueueSingleScript_Async)
 {
-    OwnPtrWillBeRawPtr<MockScriptLoader> scriptLoader = MockScriptLoader::create(m_element.get());
+    RawPtr<MockScriptLoader> scriptLoader = MockScriptLoader::create(m_element.get());
     m_scriptRunner->queueScriptForExecution(scriptLoader.get(), ScriptRunner::ASYNC_EXECUTION);
     m_scriptRunner->notifyScriptReady(scriptLoader.get(), ScriptRunner::ASYNC_EXECUTION);
 
@@ -79,7 +79,7 @@
 
 TEST_F(ScriptRunnerTest, QueueSingleScript_InOrder)
 {
-    OwnPtrWillBeRawPtr<MockScriptLoader> scriptLoader = MockScriptLoader::create(m_element.get());
+    RawPtr<MockScriptLoader> scriptLoader = MockScriptLoader::create(m_element.get());
     m_scriptRunner->queueScriptForExecution(scriptLoader.get(), ScriptRunner::IN_ORDER_EXECUTION);
 
     EXPECT_CALL(*scriptLoader, isReady()).WillOnce(Return(true));
@@ -92,11 +92,11 @@
 
 TEST_F(ScriptRunnerTest, QueueMultipleScripts_InOrder)
 {
-    OwnPtrWillBeRawPtr<MockScriptLoader> scriptLoader1 = MockScriptLoader::create(m_element.get());
-    OwnPtrWillBeRawPtr<MockScriptLoader> scriptLoader2 = MockScriptLoader::create(m_element.get());
-    OwnPtrWillBeRawPtr<MockScriptLoader> scriptLoader3 = MockScriptLoader::create(m_element.get());
+    RawPtr<MockScriptLoader> scriptLoader1 = MockScriptLoader::create(m_element.get());
+    RawPtr<MockScriptLoader> scriptLoader2 = MockScriptLoader::create(m_element.get());
+    RawPtr<MockScriptLoader> scriptLoader3 = MockScriptLoader::create(m_element.get());
 
-    WillBeHeapVector<RawPtrWillBeMember<MockScriptLoader>> scriptLoaders;
+    HeapVector<Member<MockScriptLoader>> scriptLoaders;
     scriptLoaders.append(scriptLoader1.get());
     scriptLoaders.append(scriptLoader2.get());
     scriptLoaders.append(scriptLoader3.get());
@@ -134,11 +134,11 @@
 
 TEST_F(ScriptRunnerTest, QueueMixedScripts)
 {
-    OwnPtrWillBeRawPtr<MockScriptLoader> scriptLoader1 = MockScriptLoader::create(m_element.get());
-    OwnPtrWillBeRawPtr<MockScriptLoader> scriptLoader2 = MockScriptLoader::create(m_element.get());
-    OwnPtrWillBeRawPtr<MockScriptLoader> scriptLoader3 = MockScriptLoader::create(m_element.get());
-    OwnPtrWillBeRawPtr<MockScriptLoader> scriptLoader4 = MockScriptLoader::create(m_element.get());
-    OwnPtrWillBeRawPtr<MockScriptLoader> scriptLoader5 = MockScriptLoader::create(m_element.get());
+    RawPtr<MockScriptLoader> scriptLoader1 = MockScriptLoader::create(m_element.get());
+    RawPtr<MockScriptLoader> scriptLoader2 = MockScriptLoader::create(m_element.get());
+    RawPtr<MockScriptLoader> scriptLoader3 = MockScriptLoader::create(m_element.get());
+    RawPtr<MockScriptLoader> scriptLoader4 = MockScriptLoader::create(m_element.get());
+    RawPtr<MockScriptLoader> scriptLoader5 = MockScriptLoader::create(m_element.get());
 
 
     m_scriptRunner->queueScriptForExecution(scriptLoader1.get(), ScriptRunner::IN_ORDER_EXECUTION);
@@ -188,9 +188,9 @@
 
 TEST_F(ScriptRunnerTest, QueueReentrantScript_Async)
 {
-    OwnPtrWillBeRawPtr<MockScriptLoader> scriptLoader1 = MockScriptLoader::create(m_element.get());
-    OwnPtrWillBeRawPtr<MockScriptLoader> scriptLoader2 = MockScriptLoader::create(m_element.get());
-    OwnPtrWillBeRawPtr<MockScriptLoader> scriptLoader3 = MockScriptLoader::create(m_element.get());
+    RawPtr<MockScriptLoader> scriptLoader1 = MockScriptLoader::create(m_element.get());
+    RawPtr<MockScriptLoader> scriptLoader2 = MockScriptLoader::create(m_element.get());
+    RawPtr<MockScriptLoader> scriptLoader3 = MockScriptLoader::create(m_element.get());
 
     m_scriptRunner->queueScriptForExecution(scriptLoader1.get(), ScriptRunner::ASYNC_EXECUTION);
     m_scriptRunner->queueScriptForExecution(scriptLoader2.get(), ScriptRunner::ASYNC_EXECUTION);
@@ -227,9 +227,9 @@
 
 TEST_F(ScriptRunnerTest, QueueReentrantScript_InOrder)
 {
-    OwnPtrWillBeRawPtr<MockScriptLoader> scriptLoader1 = MockScriptLoader::create(m_element.get());
-    OwnPtrWillBeRawPtr<MockScriptLoader> scriptLoader2 = MockScriptLoader::create(m_element.get());
-    OwnPtrWillBeRawPtr<MockScriptLoader> scriptLoader3 = MockScriptLoader::create(m_element.get());
+    RawPtr<MockScriptLoader> scriptLoader1 = MockScriptLoader::create(m_element.get());
+    RawPtr<MockScriptLoader> scriptLoader2 = MockScriptLoader::create(m_element.get());
+    RawPtr<MockScriptLoader> scriptLoader3 = MockScriptLoader::create(m_element.get());
 
     EXPECT_CALL(*scriptLoader1, isReady()).WillRepeatedly(Return(true));
     EXPECT_CALL(*scriptLoader2, isReady()).WillRepeatedly(Return(true));
@@ -272,7 +272,7 @@
 
 TEST_F(ScriptRunnerTest, QueueReentrantScript_ManyAsyncScripts)
 {
-    OwnPtrWillBeRawPtr<MockScriptLoader> scriptLoaders[20];
+    RawPtr<MockScriptLoader> scriptLoaders[20];
     for (int i = 0; i < 20; i++)
         scriptLoaders[i] = nullptr;
 
@@ -309,9 +309,9 @@
 
 TEST_F(ScriptRunnerTest, ResumeAndSuspend_InOrder)
 {
-    OwnPtrWillBeRawPtr<MockScriptLoader> scriptLoader1 = MockScriptLoader::create(m_element.get());
-    OwnPtrWillBeRawPtr<MockScriptLoader> scriptLoader2 = MockScriptLoader::create(m_element.get());
-    OwnPtrWillBeRawPtr<MockScriptLoader> scriptLoader3 = MockScriptLoader::create(m_element.get());
+    RawPtr<MockScriptLoader> scriptLoader1 = MockScriptLoader::create(m_element.get());
+    RawPtr<MockScriptLoader> scriptLoader2 = MockScriptLoader::create(m_element.get());
+    RawPtr<MockScriptLoader> scriptLoader3 = MockScriptLoader::create(m_element.get());
 
     m_scriptRunner->queueScriptForExecution(scriptLoader1.get(), ScriptRunner::IN_ORDER_EXECUTION);
     m_scriptRunner->queueScriptForExecution(scriptLoader2.get(), ScriptRunner::IN_ORDER_EXECUTION);
@@ -359,9 +359,9 @@
 
 TEST_F(ScriptRunnerTest, ResumeAndSuspend_Async)
 {
-    OwnPtrWillBeRawPtr<MockScriptLoader> scriptLoader1 = MockScriptLoader::create(m_element.get());
-    OwnPtrWillBeRawPtr<MockScriptLoader> scriptLoader2 = MockScriptLoader::create(m_element.get());
-    OwnPtrWillBeRawPtr<MockScriptLoader> scriptLoader3 = MockScriptLoader::create(m_element.get());
+    RawPtr<MockScriptLoader> scriptLoader1 = MockScriptLoader::create(m_element.get());
+    RawPtr<MockScriptLoader> scriptLoader2 = MockScriptLoader::create(m_element.get());
+    RawPtr<MockScriptLoader> scriptLoader3 = MockScriptLoader::create(m_element.get());
 
     m_scriptRunner->queueScriptForExecution(scriptLoader1.get(), ScriptRunner::ASYNC_EXECUTION);
     m_scriptRunner->queueScriptForExecution(scriptLoader2.get(), ScriptRunner::ASYNC_EXECUTION);
@@ -395,8 +395,8 @@
 
 TEST_F(ScriptRunnerTest, LateNotifications)
 {
-    OwnPtrWillBeRawPtr<MockScriptLoader> scriptLoader1 = MockScriptLoader::create(m_element.get());
-    OwnPtrWillBeRawPtr<MockScriptLoader> scriptLoader2 = MockScriptLoader::create(m_element.get());
+    RawPtr<MockScriptLoader> scriptLoader1 = MockScriptLoader::create(m_element.get());
+    RawPtr<MockScriptLoader> scriptLoader2 = MockScriptLoader::create(m_element.get());
 
     EXPECT_CALL(*scriptLoader1, isReady()).WillRepeatedly(Return(true));
     EXPECT_CALL(*scriptLoader2, isReady()).WillRepeatedly(Return(true));
@@ -423,8 +423,8 @@
 
 TEST_F(ScriptRunnerTest, TasksWithDeadScriptRunner)
 {
-    OwnPtrWillBePersistent<MockScriptLoader> scriptLoader1 = MockScriptLoader::create(m_element.get());
-    OwnPtrWillBePersistent<MockScriptLoader> scriptLoader2 = MockScriptLoader::create(m_element.get());
+    Persistent<MockScriptLoader> scriptLoader1 = MockScriptLoader::create(m_element.get());
+    Persistent<MockScriptLoader> scriptLoader2 = MockScriptLoader::create(m_element.get());
 
     EXPECT_CALL(*scriptLoader1, isReady()).WillRepeatedly(Return(true));
     EXPECT_CALL(*scriptLoader2, isReady()).WillRepeatedly(Return(true));
diff --git a/third_party/WebKit/Source/core/dom/ScriptedAnimationController.cpp b/third_party/WebKit/Source/core/dom/ScriptedAnimationController.cpp
index 40796d7..f40ed58 100644
--- a/third_party/WebKit/Source/core/dom/ScriptedAnimationController.cpp
+++ b/third_party/WebKit/Source/core/dom/ScriptedAnimationController.cpp
@@ -50,8 +50,6 @@
 {
 }
 
-DEFINE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(ScriptedAnimationController);
-
 DEFINE_TRACE(ScriptedAnimationController)
 {
 #if ENABLE(OILPAN)
@@ -97,12 +95,12 @@
 
 void ScriptedAnimationController::dispatchEvents(const AtomicString& eventInterfaceFilter)
 {
-    WillBeHeapVector<RefPtrWillBeMember<Event>> events;
+    HeapVector<Member<Event>> events;
     if (eventInterfaceFilter.isEmpty()) {
         events.swap(m_eventQueue);
         m_perFrameEvents.clear();
     } else {
-        WillBeHeapVector<RefPtrWillBeMember<Event>> remaining;
+        HeapVector<Member<Event>> remaining;
         for (auto& event : m_eventQueue) {
             if (event && event->interfaceName() == eventInterfaceFilter) {
                 m_perFrameEvents.remove(eventTargetKey(event.get()));
@@ -163,7 +161,7 @@
     if (!hasScheduledItems())
         return;
 
-    RefPtrWillBeRawPtr<ScriptedAnimationController> protect(this);
+    RawPtr<ScriptedAnimationController> protect(this);
 
     callMediaQueryListListeners();
     dispatchEvents();
@@ -172,21 +170,21 @@
     scheduleAnimationIfNeeded();
 }
 
-void ScriptedAnimationController::enqueueEvent(PassRefPtrWillBeRawPtr<Event> event)
+void ScriptedAnimationController::enqueueEvent(RawPtr<Event> event)
 {
     InspectorInstrumentation::didEnqueueEvent(event->target(), event.get());
     m_eventQueue.append(event);
     scheduleAnimationIfNeeded();
 }
 
-void ScriptedAnimationController::enqueuePerFrameEvent(PassRefPtrWillBeRawPtr<Event> event)
+void ScriptedAnimationController::enqueuePerFrameEvent(RawPtr<Event> event)
 {
     if (!m_perFrameEvents.add(eventTargetKey(event.get())).isNewEntry)
         return;
     enqueueEvent(event);
 }
 
-void ScriptedAnimationController::enqueueMediaQueryChangeListeners(WillBeHeapVector<RefPtrWillBeMember<MediaQueryListListener>>& listeners)
+void ScriptedAnimationController::enqueueMediaQueryChangeListeners(HeapVector<Member<MediaQueryListListener>>& listeners)
 {
     for (size_t i = 0; i < listeners.size(); ++i) {
         m_mediaQueryListListeners.add(listeners[i]);
diff --git a/third_party/WebKit/Source/core/dom/ScriptedAnimationController.h b/third_party/WebKit/Source/core/dom/ScriptedAnimationController.h
index 81406ee..1b574f3 100644
--- a/third_party/WebKit/Source/core/dom/ScriptedAnimationController.h
+++ b/third_party/WebKit/Source/core/dom/ScriptedAnimationController.h
@@ -43,12 +43,11 @@
 class FrameRequestCallback;
 class MediaQueryListListener;
 
-class ScriptedAnimationController : public RefCountedWillBeGarbageCollected<ScriptedAnimationController> {
-    DECLARE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(ScriptedAnimationController);
+class ScriptedAnimationController : public GarbageCollected<ScriptedAnimationController> {
 public:
-    static PassRefPtrWillBeRawPtr<ScriptedAnimationController> create(Document* document)
+    static RawPtr<ScriptedAnimationController> create(Document* document)
     {
-        return adoptRefWillBeNoop(new ScriptedAnimationController(document));
+        return new ScriptedAnimationController(document);
     }
 
     DECLARE_TRACE();
@@ -60,9 +59,9 @@
     void cancelCallback(CallbackId);
     void serviceScriptedAnimations(double monotonicTimeNow);
 
-    void enqueueEvent(PassRefPtrWillBeRawPtr<Event>);
-    void enqueuePerFrameEvent(PassRefPtrWillBeRawPtr<Event>);
-    void enqueueMediaQueryChangeListeners(WillBeHeapVector<RefPtrWillBeMember<MediaQueryListListener>>&);
+    void enqueueEvent(RawPtr<Event>);
+    void enqueuePerFrameEvent(RawPtr<Event>);
+    void enqueueMediaQueryChangeListeners(HeapVector<Member<MediaQueryListListener>>&);
 
     void suspend();
     void resume();
@@ -79,12 +78,12 @@
 
     bool hasScheduledItems() const;
 
-    RawPtrWillBeMember<Document> m_document;
+    Member<Document> m_document;
     FrameRequestCallbackCollection m_callbackCollection;
     int m_suspendCount;
-    WillBeHeapVector<RefPtrWillBeMember<Event>> m_eventQueue;
-    WillBeHeapListHashSet<std::pair<RawPtrWillBeMember<const EventTarget>, const StringImpl*>> m_perFrameEvents;
-    using MediaQueryListListeners = WillBeHeapListHashSet<RefPtrWillBeMember<MediaQueryListListener>>;
+    HeapVector<Member<Event>> m_eventQueue;
+    HeapListHashSet<std::pair<Member<const EventTarget>, const StringImpl*>> m_perFrameEvents;
+    using MediaQueryListListeners = HeapListHashSet<Member<MediaQueryListListener>>;
     MediaQueryListListeners m_mediaQueryListListeners;
 };
 
diff --git a/third_party/WebKit/Source/core/dom/ScriptedIdleTaskController.cpp b/third_party/WebKit/Source/core/dom/ScriptedIdleTaskController.cpp
index 22736848..b0d102e 100644
--- a/third_party/WebKit/Source/core/dom/ScriptedIdleTaskController.cpp
+++ b/third_party/WebKit/Source/core/dom/ScriptedIdleTaskController.cpp
@@ -23,7 +23,7 @@
 
 class IdleRequestCallbackWrapper : public RefCounted<IdleRequestCallbackWrapper> {
 public:
-    static PassRefPtr<IdleRequestCallbackWrapper> create(ScriptedIdleTaskController::CallbackId id, PassRefPtrWillBeRawPtr<ScriptedIdleTaskController> controller)
+    static PassRefPtr<IdleRequestCallbackWrapper> create(ScriptedIdleTaskController::CallbackId id, RawPtr<ScriptedIdleTaskController> controller)
     {
         return adoptRef(new IdleRequestCallbackWrapper(id, controller));
     }
@@ -34,14 +34,14 @@
     static void idleTaskFired(PassRefPtr<IdleRequestCallbackWrapper> callbackWrapper, double deadlineSeconds)
     {
         // TODO(rmcilroy): Implement clamping of deadline in some form.
-        if (RefPtrWillBeRawPtr<ScriptedIdleTaskController> controller = callbackWrapper->controller())
+        if (RawPtr<ScriptedIdleTaskController> controller = callbackWrapper->controller())
             controller->callbackFired(callbackWrapper->id(), deadlineSeconds, IdleDeadline::CallbackType::CalledWhenIdle);
         callbackWrapper->cancel();
     }
 
     static void timeoutFired(PassRefPtr<IdleRequestCallbackWrapper> callbackWrapper)
     {
-        if (RefPtrWillBeRawPtr<ScriptedIdleTaskController> controller = callbackWrapper->controller())
+        if (RawPtr<ScriptedIdleTaskController> controller = callbackWrapper->controller())
             controller->callbackFired(callbackWrapper->id(), monotonicallyIncreasingTime(), IdleDeadline::CallbackType::CalledByTimeout);
         callbackWrapper->cancel();
     }
@@ -52,17 +52,17 @@
     }
 
     ScriptedIdleTaskController::CallbackId id() const { return m_id; }
-    PassRefPtrWillBeRawPtr<ScriptedIdleTaskController> controller() const { return m_controller; }
+    RawPtr<ScriptedIdleTaskController> controller() const { return m_controller; }
 
 private:
-    IdleRequestCallbackWrapper(ScriptedIdleTaskController::CallbackId id, PassRefPtrWillBeRawPtr<ScriptedIdleTaskController> controller)
+    IdleRequestCallbackWrapper(ScriptedIdleTaskController::CallbackId id, RawPtr<ScriptedIdleTaskController> controller)
         : m_id(id)
         , m_controller(controller)
     {
     }
 
     ScriptedIdleTaskController::CallbackId m_id;
-    RefPtrWillBePersistent<ScriptedIdleTaskController> m_controller;
+    Persistent<ScriptedIdleTaskController> m_controller;
 };
 
 } // namespace internal
diff --git a/third_party/WebKit/Source/core/dom/ScriptedIdleTaskController.h b/third_party/WebKit/Source/core/dom/ScriptedIdleTaskController.h
index f8f76da1..f1d710c2 100644
--- a/third_party/WebKit/Source/core/dom/ScriptedIdleTaskController.h
+++ b/third_party/WebKit/Source/core/dom/ScriptedIdleTaskController.h
@@ -19,12 +19,12 @@
 class IdleRequestCallback;
 class IdleRequestOptions;
 
-class ScriptedIdleTaskController : public RefCountedWillBeGarbageCollectedFinalized<ScriptedIdleTaskController>, public ActiveDOMObject {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(ScriptedIdleTaskController);
+class ScriptedIdleTaskController : public GarbageCollectedFinalized<ScriptedIdleTaskController>, public ActiveDOMObject {
+    USING_GARBAGE_COLLECTED_MIXIN(ScriptedIdleTaskController);
 public:
-    static PassRefPtrWillBeRawPtr<ScriptedIdleTaskController> create(ExecutionContext* context)
+    static RawPtr<ScriptedIdleTaskController> create(ExecutionContext* context)
     {
-        return adoptRefWillBeNoop(new ScriptedIdleTaskController(context));
+        return new ScriptedIdleTaskController(context);
     }
     ~ScriptedIdleTaskController();
 
@@ -48,7 +48,7 @@
     void runCallback(CallbackId, double deadlineSeconds, IdleDeadline::CallbackType);
 
     WebScheduler* m_scheduler; // Not owned.
-    PersistentHeapHashMapWillBeHeapHashMap<CallbackId, Member<IdleRequestCallback>> m_callbacks;
+    HeapHashMap<CallbackId, Member<IdleRequestCallback>> m_callbacks;
     Vector<CallbackId> m_pendingTimeouts;
     CallbackId m_nextCallbackId;
     bool m_suspended;
diff --git a/third_party/WebKit/Source/core/dom/SecurityContext.cpp b/third_party/WebKit/Source/core/dom/SecurityContext.cpp
index cc42092..4652a68 100644
--- a/third_party/WebKit/Source/core/dom/SecurityContext.cpp
+++ b/third_party/WebKit/Source/core/dom/SecurityContext.cpp
@@ -54,7 +54,7 @@
     m_securityOrigin = securityOrigin;
 }
 
-void SecurityContext::setContentSecurityPolicy(PassRefPtrWillBeRawPtr<ContentSecurityPolicy> contentSecurityPolicy)
+void SecurityContext::setContentSecurityPolicy(RawPtr<ContentSecurityPolicy> contentSecurityPolicy)
 {
     m_contentSecurityPolicy = contentSecurityPolicy;
 }
diff --git a/third_party/WebKit/Source/core/dom/SecurityContext.h b/third_party/WebKit/Source/core/dom/SecurityContext.h
index f1f9483e..4c45f0b2 100644
--- a/third_party/WebKit/Source/core/dom/SecurityContext.h
+++ b/third_party/WebKit/Source/core/dom/SecurityContext.h
@@ -46,7 +46,7 @@
 class ContentSecurityPolicy;
 class KURL;
 
-class CORE_EXPORT SecurityContext : public WillBeGarbageCollectedMixin {
+class CORE_EXPORT SecurityContext : public GarbageCollectedMixin {
     WTF_MAKE_NONCOPYABLE(SecurityContext);
 public:
     DECLARE_VIRTUAL_TRACE();
@@ -91,13 +91,13 @@
     SecurityContext();
     virtual ~SecurityContext();
 
-    void setContentSecurityPolicy(PassRefPtrWillBeRawPtr<ContentSecurityPolicy>);
+    void setContentSecurityPolicy(RawPtr<ContentSecurityPolicy>);
 
     void applySandboxFlags(SandboxFlags mask);
 
 private:
     RefPtr<SecurityOrigin> m_securityOrigin;
-    RefPtrWillBeMember<ContentSecurityPolicy> m_contentSecurityPolicy;
+    Member<ContentSecurityPolicy> m_contentSecurityPolicy;
 
     SandboxFlags m_sandboxFlags;
 
diff --git a/third_party/WebKit/Source/core/dom/SelectorQuery.cpp b/third_party/WebKit/Source/core/dom/SelectorQuery.cpp
index 449bf2b..ee5af5b 100644
--- a/third_party/WebKit/Source/core/dom/SelectorQuery.cpp
+++ b/third_party/WebKit/Source/core/dom/SelectorQuery.cpp
@@ -50,7 +50,7 @@
 };
 
 struct AllElementsSelectorQueryTrait {
-    typedef WillBeHeapVector<RefPtrWillBeMember<Element>> OutputType;
+    typedef HeapVector<Member<Element>> OutputType;
     static const bool shouldOnlyMatchFirstElement = false;
     ALWAYS_INLINE static void appendElement(OutputType& output, Element& element)
     {
@@ -93,8 +93,8 @@
     }
 
     const AtomicString& m_className;
-    RawPtrWillBeMember<ContainerNode> m_rootNode;
-    RawPtrWillBeMember<Element> m_currentElement;
+    Member<ContainerNode> m_rootNode;
+    Member<Element> m_currentElement;
 };
 
 void SelectorDataList::initialize(const CSSSelectorList& selectorList)
@@ -161,14 +161,14 @@
     return nullptr;
 }
 
-PassRefPtrWillBeRawPtr<StaticElementList> SelectorDataList::queryAll(ContainerNode& rootNode) const
+RawPtr<StaticElementList> SelectorDataList::queryAll(ContainerNode& rootNode) const
 {
-    WillBeHeapVector<RefPtrWillBeMember<Element>> result;
+    HeapVector<Member<Element>> result;
     execute<AllElementsSelectorQueryTrait>(rootNode, result);
     return StaticElementList::adopt(result);
 }
 
-PassRefPtrWillBeRawPtr<Element> SelectorDataList::queryFirst(ContainerNode& rootNode) const
+RawPtr<Element> SelectorDataList::queryFirst(ContainerNode& rootNode) const
 {
     Element* matchedElement = nullptr;
     execute<SingleElementSelectorQueryTrait>(rootNode, matchedElement);
@@ -481,7 +481,7 @@
     if (const CSSSelector* idSelector = selectorForIdLookup(firstSelector)) {
         const AtomicString& idToMatch = idSelector->value();
         if (rootNode.treeScope().containsMultipleElementsWithId(idToMatch)) {
-            const WillBeHeapVector<RawPtrWillBeMember<Element>>& elements = rootNode.treeScope().getAllElementsById(idToMatch);
+            const HeapVector<Member<Element>>& elements = rootNode.treeScope().getAllElementsById(idToMatch);
             size_t count = elements.size();
             for (size_t i = 0; i < count; ++i) {
                 Element& element = *elements[i];
@@ -541,12 +541,12 @@
     return m_selectors.closest(element);
 }
 
-PassRefPtrWillBeRawPtr<StaticElementList> SelectorQuery::queryAll(ContainerNode& rootNode) const
+RawPtr<StaticElementList> SelectorQuery::queryAll(ContainerNode& rootNode) const
 {
     return m_selectors.queryAll(rootNode);
 }
 
-PassRefPtrWillBeRawPtr<Element> SelectorQuery::queryFirst(ContainerNode& rootNode) const
+RawPtr<Element> SelectorQuery::queryFirst(ContainerNode& rootNode) const
 {
     return m_selectors.queryFirst(rootNode);
 }
diff --git a/third_party/WebKit/Source/core/dom/SelectorQuery.h b/third_party/WebKit/Source/core/dom/SelectorQuery.h
index 31ab8b4..a481652 100644
--- a/third_party/WebKit/Source/core/dom/SelectorQuery.h
+++ b/third_party/WebKit/Source/core/dom/SelectorQuery.h
@@ -49,8 +49,8 @@
     void initialize(const CSSSelectorList&);
     bool matches(Element&) const;
     Element* closest(Element&) const;
-    PassRefPtrWillBeRawPtr<StaticElementList> queryAll(ContainerNode& rootNode) const;
-    PassRefPtrWillBeRawPtr<Element> queryFirst(ContainerNode& rootNode) const;
+    RawPtr<StaticElementList> queryAll(ContainerNode& rootNode) const;
+    RawPtr<Element> queryFirst(ContainerNode& rootNode) const;
 
 private:
     bool canUseFastQuery(const ContainerNode& rootNode) const;
@@ -93,8 +93,8 @@
 
     bool matches(Element&) const;
     Element* closest(Element&) const;
-    PassRefPtrWillBeRawPtr<StaticElementList> queryAll(ContainerNode& rootNode) const;
-    PassRefPtrWillBeRawPtr<Element> queryFirst(ContainerNode& rootNode) const;
+    RawPtr<StaticElementList> queryAll(ContainerNode& rootNode) const;
+    RawPtr<Element> queryFirst(ContainerNode& rootNode) const;
 private:
     explicit SelectorQuery(CSSSelectorList);
 
diff --git a/third_party/WebKit/Source/core/dom/SelectorQueryTest.cpp b/third_party/WebKit/Source/core/dom/SelectorQueryTest.cpp
index f49dea77..6b748cc9cf 100644
--- a/third_party/WebKit/Source/core/dom/SelectorQueryTest.cpp
+++ b/third_party/WebKit/Source/core/dom/SelectorQueryTest.cpp
@@ -13,14 +13,14 @@
 
 TEST(SelectorQueryTest, NotMatchingPseudoElement)
 {
-    RefPtrWillBeRawPtr<Document> document = Document::create();
-    RefPtrWillBeRawPtr<HTMLHtmlElement> html = HTMLHtmlElement::create(*document);
+    RawPtr<Document> document = Document::create();
+    RawPtr<HTMLHtmlElement> html = HTMLHtmlElement::create(*document);
     document->appendChild(html.release());
     document->documentElement()->setInnerHTML("<body><style>span::before { content: 'X' }</style><span></span></body>", ASSERT_NO_EXCEPTION);
 
     CSSSelectorList selectorList = CSSParser::parseSelector(CSSParserContext(*document, nullptr), nullptr, "span::before");
     OwnPtr<SelectorQuery> query = SelectorQuery::adopt(std::move(selectorList));
-    RefPtrWillBeRawPtr<Element> elm = query->queryFirst(*document);
+    RawPtr<Element> elm = query->queryFirst(*document);
     EXPECT_EQ(nullptr, elm);
 
     selectorList = CSSParser::parseSelector(CSSParserContext(*document, nullptr), nullptr, "span");
diff --git a/third_party/WebKit/Source/core/dom/ShadowTreeStyleSheetCollection.h b/third_party/WebKit/Source/core/dom/ShadowTreeStyleSheetCollection.h
index 96a79da..b74d6cc 100644
--- a/third_party/WebKit/Source/core/dom/ShadowTreeStyleSheetCollection.h
+++ b/third_party/WebKit/Source/core/dom/ShadowTreeStyleSheetCollection.h
@@ -38,7 +38,6 @@
 
 class ShadowTreeStyleSheetCollection final : public TreeScopeStyleSheetCollection {
     WTF_MAKE_NONCOPYABLE(ShadowTreeStyleSheetCollection);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(ShadowTreeStyleSheetCollection);
 public:
     explicit ShadowTreeStyleSheetCollection(ShadowRoot&);
 
diff --git a/third_party/WebKit/Source/core/dom/StaticNodeList.h b/third_party/WebKit/Source/core/dom/StaticNodeList.h
index 83d8ba4..98a26fa7 100644
--- a/third_party/WebKit/Source/core/dom/StaticNodeList.h
+++ b/third_party/WebKit/Source/core/dom/StaticNodeList.h
@@ -42,9 +42,9 @@
 template <typename NodeType>
 class StaticNodeTypeList final : public NodeList {
 public:
-    static PassRefPtrWillBeRawPtr<StaticNodeTypeList> adopt(WillBeHeapVector<RefPtrWillBeMember<NodeType>>& nodes);
+    static RawPtr<StaticNodeTypeList> adopt(HeapVector<Member<NodeType>>& nodes);
 
-    static PassRefPtrWillBeRawPtr<StaticNodeTypeList> createEmpty()
+    static RawPtr<StaticNodeTypeList> createEmpty()
     {
         return adoptRefWillBeNoop(new StaticNodeTypeList);
     }
@@ -57,16 +57,16 @@
     DECLARE_VIRTUAL_TRACE();
 
 private:
-    WillBeHeapVector<RefPtrWillBeMember<NodeType>> m_nodes;
+    HeapVector<Member<NodeType>> m_nodes;
 };
 
 typedef StaticNodeTypeList<Node> StaticNodeList;
 typedef StaticNodeTypeList<Element> StaticElementList;
 
 template <typename NodeType>
-PassRefPtrWillBeRawPtr<StaticNodeTypeList<NodeType>> StaticNodeTypeList<NodeType>::adopt(WillBeHeapVector<RefPtrWillBeMember<NodeType>>& nodes)
+RawPtr<StaticNodeTypeList<NodeType>> StaticNodeTypeList<NodeType>::adopt(HeapVector<Member<NodeType>>& nodes)
 {
-    RefPtrWillBeRawPtr<StaticNodeTypeList<NodeType>> nodeList = adoptRefWillBeNoop(new StaticNodeTypeList<NodeType>);
+    RawPtr<StaticNodeTypeList<NodeType>> nodeList = adoptRefWillBeNoop(new StaticNodeTypeList<NodeType>);
     nodeList->m_nodes.swap(nodes);
     return nodeList.release();
 }
diff --git a/third_party/WebKit/Source/core/dom/StyleElement.cpp b/third_party/WebKit/Source/core/dom/StyleElement.cpp
index 400dbe2..dfc733e 100644
--- a/third_party/WebKit/Source/core/dom/StyleElement.cpp
+++ b/third_party/WebKit/Source/core/dom/StyleElement.cpp
@@ -101,7 +101,7 @@
         m_registeredAsCandidate = false;
     }
 
-    RefPtrWillBeRawPtr<StyleSheet> removedSheet = m_sheet.get();
+    RawPtr<StyleSheet> removedSheet = m_sheet.get();
 
     if (m_sheet)
         clearSheet(element);
@@ -183,12 +183,12 @@
         || csp->allowInlineStyle(e->document().url(), m_startPosition.m_line, text);
 
     // Clearing the current sheet may remove the cache entry so create the new sheet first
-    RefPtrWillBeRawPtr<CSSStyleSheet> newSheet = nullptr;
+    RawPtr<CSSStyleSheet> newSheet = nullptr;
 
     // If type is empty or CSS, this is a CSS style sheet.
     const AtomicString& type = this->type();
     if (isCSS(e, type) && passesContentSecurityPolicyChecks) {
-        RefPtrWillBeRawPtr<MediaQuerySet> mediaQueries = MediaQuerySet::create(media());
+        RawPtr<MediaQuerySet> mediaQueries = MediaQuerySet::create(media());
 
         MediaQueryEvaluator screenEval("screen", true);
         MediaQueryEvaluator printEval("print", true);
diff --git a/third_party/WebKit/Source/core/dom/StyleElement.h b/third_party/WebKit/Source/core/dom/StyleElement.h
index a0aae7f..91921b1 100644
--- a/third_party/WebKit/Source/core/dom/StyleElement.h
+++ b/third_party/WebKit/Source/core/dom/StyleElement.h
@@ -30,7 +30,7 @@
 class Document;
 class Element;
 
-class StyleElement : public WillBeGarbageCollectedMixin {
+class StyleElement : public GarbageCollectedMixin {
 public:
     StyleElement(Document*, bool createdByParser);
     virtual ~StyleElement();
@@ -58,7 +58,7 @@
     ProcessingResult childrenChanged(Element*);
     ProcessingResult finishParsingChildren(Element*);
 
-    RefPtrWillBeMember<CSSStyleSheet> m_sheet;
+    Member<CSSStyleSheet> m_sheet;
 
 private:
     ProcessingResult createSheet(Element*, const String& text = String());
diff --git a/third_party/WebKit/Source/core/dom/StyleElementTest.cpp b/third_party/WebKit/Source/core/dom/StyleElementTest.cpp
index c5546e8..fa1b644 100644
--- a/third_party/WebKit/Source/core/dom/StyleElementTest.cpp
+++ b/third_party/WebKit/Source/core/dom/StyleElementTest.cpp
@@ -20,9 +20,9 @@
     document.documentElement()->setInnerHTML("<style id=style>a { top: 0; }</style>", ASSERT_NO_EXCEPTION);
 
     HTMLStyleElement& styleElement = toHTMLStyleElement(*document.getElementById("style"));
-    RefPtrWillBeRawPtr<StyleSheetContents> sheet = styleElement.sheet()->contents();
+    RawPtr<StyleSheetContents> sheet = styleElement.sheet()->contents();
 
-    RefPtrWillBeRawPtr<Comment> comment = document.createComment("hello!");
+    RawPtr<Comment> comment = document.createComment("hello!");
     styleElement.appendChild(comment);
     EXPECT_EQ(styleElement.sheet()->contents(), sheet);
 
diff --git a/third_party/WebKit/Source/core/dom/StyleEngine.cpp b/third_party/WebKit/Source/core/dom/StyleEngine.cpp
index 439509c..ec08731 100644
--- a/third_party/WebKit/Source/core/dom/StyleEngine.cpp
+++ b/third_party/WebKit/Source/core/dom/StyleEngine.cpp
@@ -116,7 +116,7 @@
 
     StyleSheetCollectionMap::AddResult result = m_styleSheetCollectionMap.add(&treeScope, nullptr);
     if (result.isNewEntry)
-        result.storedValue->value = adoptPtrWillBeNoop(new ShadowTreeStyleSheetCollection(toShadowRoot(treeScope)));
+        result.storedValue->value = new ShadowTreeStyleSheetCollection(toShadowRoot(treeScope));
     return result.storedValue->value.get();
 }
 
@@ -131,7 +131,7 @@
     return it->value.get();
 }
 
-const WillBeHeapVector<RefPtrWillBeMember<StyleSheet>>& StyleEngine::styleSheetsForStyleSheetList(TreeScope& treeScope)
+const HeapVector<Member<StyleSheet>>& StyleEngine::styleSheetsForStyleSheetList(TreeScope& treeScope)
 {
     if (treeScope == m_document)
         return documentStyleSheetCollection()->styleSheetsForStyleSheetList();
@@ -147,7 +147,7 @@
     m_maxDirectAdjacentSelectors = features.maxDirectAdjacentSelectors();
 }
 
-void StyleEngine::injectAuthorSheet(PassRefPtrWillBeRawPtr<StyleSheetContents> authorSheet)
+void StyleEngine::injectAuthorSheet(RawPtr<StyleSheetContents> authorSheet)
 {
     m_injectedAuthorStyleSheets.append(CSSStyleSheet::create(authorSheet, m_document));
     markDocumentDirty();
@@ -285,7 +285,7 @@
 void StyleEngine::updateStyleSheetsInImport(DocumentStyleSheetCollector& parentCollector)
 {
     ASSERT(!isMaster());
-    WillBeHeapVector<RefPtrWillBeMember<StyleSheet>> sheetsForList;
+    HeapVector<Member<StyleSheet>> sheetsForList;
     ImportedDocumentStyleSheetCollector subcollector(parentCollector, sheetsForList);
     documentStyleSheetCollection()->collectStyleSheets(*this, subcollector);
     documentStyleSheetCollection()->swapSheetsForSheetList(sheetsForList);
@@ -338,12 +338,12 @@
     m_documentScopeDirty = false;
 }
 
-const WillBeHeapVector<RefPtrWillBeMember<CSSStyleSheet>> StyleEngine::activeStyleSheetsForInspector() const
+const HeapVector<Member<CSSStyleSheet>> StyleEngine::activeStyleSheetsForInspector() const
 {
     if (m_activeTreeScopes.isEmpty())
         return documentStyleSheetCollection()->activeAuthorStyleSheets();
 
-    WillBeHeapVector<RefPtrWillBeMember<CSSStyleSheet>> activeStyleSheets;
+    HeapVector<Member<CSSStyleSheet>> activeStyleSheets;
 
     activeStyleSheets.appendVector(documentStyleSheetCollection()->activeAuthorStyleSheets());
     for (TreeScope* treeScope : m_activeTreeScopes) {
@@ -486,7 +486,7 @@
     FontCache::fontCache()->invalidateShapeCache();
 }
 
-void StyleEngine::removeFontFaceRules(const WillBeHeapVector<RawPtrWillBeMember<const StyleRuleFontFace>>& fontFaceRules)
+void StyleEngine::removeFontFaceRules(const HeapVector<Member<const StyleRuleFontFace>>& fontFaceRules)
 {
     if (!m_fontSelector)
         return;
@@ -531,15 +531,15 @@
     return true;
 }
 
-PassRefPtrWillBeRawPtr<CSSStyleSheet> StyleEngine::createSheet(Element* e, const String& text, TextPosition startPosition)
+RawPtr<CSSStyleSheet> StyleEngine::createSheet(Element* e, const String& text, TextPosition startPosition)
 {
-    RefPtrWillBeRawPtr<CSSStyleSheet> styleSheet = nullptr;
+    RawPtr<CSSStyleSheet> styleSheet = nullptr;
 
     e->document().styleEngine().addPendingSheet();
 
     AtomicString textContent(text);
 
-    WillBeHeapHashMap<AtomicString, RawPtrWillBeMember<StyleSheetContents>>::AddResult result = m_textToSheetCache.add(textContent, nullptr);
+    HeapHashMap<AtomicString, Member<StyleSheetContents>>::AddResult result = m_textToSheetCache.add(textContent, nullptr);
     if (result.isNewEntry || !result.storedValue->value) {
         styleSheet = StyleEngine::parseSheet(e, text, startPosition);
         if (result.isNewEntry && isCacheableForStyleElement(*styleSheet->contents())) {
@@ -559,9 +559,9 @@
     return styleSheet;
 }
 
-PassRefPtrWillBeRawPtr<CSSStyleSheet> StyleEngine::parseSheet(Element* e, const String& text, TextPosition startPosition)
+RawPtr<CSSStyleSheet> StyleEngine::parseSheet(Element* e, const String& text, TextPosition startPosition)
 {
-    RefPtrWillBeRawPtr<CSSStyleSheet> styleSheet = nullptr;
+    RawPtr<CSSStyleSheet> styleSheet = nullptr;
     styleSheet = CSSStyleSheet::createInline(e, KURL(), startPosition, e->document().characterSet());
     styleSheet->contents()->parseStringAtPosition(text, startPosition);
     return styleSheet;
@@ -569,7 +569,7 @@
 
 void StyleEngine::removeSheet(StyleSheetContents* contents)
 {
-    WillBeHeapHashMap<RawPtrWillBeMember<StyleSheetContents>, AtomicString>::iterator it = m_sheetToTextCache.find(contents);
+    HeapHashMap<Member<StyleSheetContents>, AtomicString>::iterator it = m_sheetToTextCache.find(contents);
     if (it == m_sheetToTextCache.end())
         return;
 
@@ -579,7 +579,7 @@
 
 void StyleEngine::collectScopedStyleFeaturesTo(RuleFeatureSet& features) const
 {
-    WillBeHeapHashSet<RawPtrWillBeMember<const StyleSheetContents>> visitedSharedStyleSheetContents;
+    HeapHashSet<Member<const StyleSheetContents>> visitedSharedStyleSheetContents;
     if (document().scopedStyleResolver())
         document().scopedStyleResolver()->collectFeaturesTo(features, visitedSharedStyleSheetContents);
     for (TreeScope* treeScope : m_activeTreeScopes) {
@@ -603,7 +603,7 @@
     document().setNeedsStyleRecalc(SubtreeStyleChange, StyleChangeReasonForTracing::create(StyleChangeReason::Fonts));
 }
 
-void StyleEngine::setFontSelector(PassRefPtrWillBeRawPtr<CSSFontSelector> fontSelector)
+void StyleEngine::setFontSelector(RawPtr<CSSFontSelector> fontSelector)
 {
 #if !ENABLE(OILPAN)
     if (m_fontSelector)
diff --git a/third_party/WebKit/Source/core/dom/StyleEngine.h b/third_party/WebKit/Source/core/dom/StyleEngine.h
index aa4b272..97da62c 100644
--- a/third_party/WebKit/Source/core/dom/StyleEngine.h
+++ b/third_party/WebKit/Source/core/dom/StyleEngine.h
@@ -61,9 +61,8 @@
     ShadowCascadeV1
 };
 
-class CORE_EXPORT StyleEngine final : public NoBaseWillBeGarbageCollectedFinalized<StyleEngine>, public CSSFontSelectorClient  {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(StyleEngine);
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(StyleEngine);
+class CORE_EXPORT StyleEngine final : public GarbageCollectedFinalized<StyleEngine>, public CSSFontSelectorClient  {
+    USING_GARBAGE_COLLECTED_MIXIN(StyleEngine);
 public:
 
     class IgnoringPendingStylesheet : public TemporaryChange<bool> {
@@ -77,7 +76,7 @@
 
     friend class IgnoringPendingStylesheet;
 
-    static PassOwnPtrWillBeRawPtr<StyleEngine> create(Document& document) { return adoptPtrWillBeNoop(new StyleEngine(document)); }
+    static RawPtr<StyleEngine> create(Document& document) { return new StyleEngine(document); }
 
     ~StyleEngine();
 
@@ -85,11 +84,11 @@
     void detachFromDocument();
 #endif
 
-    const WillBeHeapVector<RefPtrWillBeMember<StyleSheet>>& styleSheetsForStyleSheetList(TreeScope&);
+    const HeapVector<Member<StyleSheet>>& styleSheetsForStyleSheetList(TreeScope&);
 
-    const WillBeHeapVector<RefPtrWillBeMember<CSSStyleSheet>>& injectedAuthorStyleSheets() const { return m_injectedAuthorStyleSheets; }
+    const HeapVector<Member<CSSStyleSheet>>& injectedAuthorStyleSheets() const { return m_injectedAuthorStyleSheets; }
 
-    const WillBeHeapVector<RefPtrWillBeMember<CSSStyleSheet>> activeStyleSheetsForInspector() const;
+    const HeapVector<Member<CSSStyleSheet>> activeStyleSheetsForInspector() const;
 
     void setNeedsActiveStyleUpdate(StyleSheet*, StyleResolverUpdateMode);
     void addStyleSheetCandidateNode(Node*);
@@ -98,7 +97,7 @@
     void modifiedStyleSheetCandidateNode(Node*);
     void watchedSelectorsChanged();
 
-    void injectAuthorSheet(PassRefPtrWillBeRawPtr<StyleSheetContents> authorSheet);
+    void injectAuthorSheet(RawPtr<StyleSheetContents> authorSheet);
 
     void clearMediaQueryRuleSetStyleSheets();
     void updateStyleSheetsInImport(DocumentStyleSheetCollector& parentCollector);
@@ -153,9 +152,9 @@
     StyleInvalidator& styleInvalidator() { return m_styleInvalidator; }
 
     CSSFontSelector* fontSelector() { return m_fontSelector.get(); }
-    void setFontSelector(PassRefPtrWillBeRawPtr<CSSFontSelector>);
+    void setFontSelector(RawPtr<CSSFontSelector>);
 
-    void removeFontFaceRules(const WillBeHeapVector<RawPtrWillBeMember<const StyleRuleFontFace>>&);
+    void removeFontFaceRules(const HeapVector<Member<const StyleRuleFontFace>>&);
     void clearFontCache();
     // updateGenericFontFamilySettings is used from WebSettingsImpl.
     void updateGenericFontFamilySettings();
@@ -164,7 +163,7 @@
     bool shouldClearResolver() const;
     void resolverChanged(StyleResolverUpdateMode);
 
-    PassRefPtrWillBeRawPtr<CSSStyleSheet> createSheet(Element*, const String& text, TextPosition startPosition);
+    RawPtr<CSSStyleSheet> createSheet(Element*, const String& text, TextPosition startPosition);
     void removeSheet(StyleSheetContents*);
 
     void collectScopedStyleFeaturesTo(RuleFeatureSet&) const;
@@ -208,13 +207,13 @@
     Document* master();
     Document& document() const { return *m_document; }
 
-    typedef WillBeHeapHashSet<RawPtrWillBeMember<TreeScope>> UnorderedTreeScopeSet;
+    typedef HeapHashSet<Member<TreeScope>> UnorderedTreeScopeSet;
 
     void clearMediaQueryRuleSetOnTreeScopeStyleSheets(UnorderedTreeScopeSet&);
 
     void createResolver();
 
-    static PassRefPtrWillBeRawPtr<CSSStyleSheet> parseSheet(Element*, const String& text, TextPosition startPosition);
+    static RawPtr<CSSStyleSheet> parseSheet(Element*, const String& text, TextPosition startPosition);
 
     const DocumentStyleSheetCollection* documentStyleSheetCollection() const
     {
@@ -230,7 +229,7 @@
 
     bool shouldSkipInvalidationFor(const Element&) const;
 
-    RawPtrWillBeMember<Document> m_document;
+    Member<Document> m_document;
     bool m_isMaster;
 
     // Track the number of currently loading top-level stylesheets needed for layout.
@@ -239,11 +238,11 @@
     // elements and when it is safe to execute scripts.
     int m_pendingStylesheets = 0;
 
-    WillBeHeapVector<RefPtrWillBeMember<CSSStyleSheet>> m_injectedAuthorStyleSheets;
+    HeapVector<Member<CSSStyleSheet>> m_injectedAuthorStyleSheets;
 
-    OwnPtrWillBeMember<DocumentStyleSheetCollection> m_documentStyleSheetCollection;
+    Member<DocumentStyleSheetCollection> m_documentStyleSheetCollection;
 
-    typedef WillBeHeapHashMap<RawPtrWillBeWeakMember<TreeScope>, OwnPtrWillBeMember<ShadowTreeStyleSheetCollection>> StyleSheetCollectionMap;
+    typedef HeapHashMap<WeakMember<TreeScope>, Member<ShadowTreeStyleSheetCollection>> StyleSheetCollectionMap;
     StyleSheetCollectionMap m_styleSheetCollectionMap;
 
     bool m_documentScopeDirty = true;
@@ -264,13 +263,13 @@
 
     ShadowCascadeOrder m_shadowCascadeOrder = ShadowCascadeNone;
 
-    OwnPtrWillBeMember<StyleResolver> m_resolver;
+    Member<StyleResolver> m_resolver;
     StyleInvalidator m_styleInvalidator;
 
-    RefPtrWillBeMember<CSSFontSelector> m_fontSelector;
+    Member<CSSFontSelector> m_fontSelector;
 
-    WillBeHeapHashMap<AtomicString, RawPtrWillBeMember<StyleSheetContents>> m_textToSheetCache;
-    WillBeHeapHashMap<RawPtrWillBeMember<StyleSheetContents>, AtomicString> m_sheetToTextCache;
+    HeapHashMap<AtomicString, Member<StyleSheetContents>> m_textToSheetCache;
+    HeapHashMap<Member<StyleSheetContents>, AtomicString> m_sheetToTextCache;
 
     OwnPtr<StyleResolverStats> m_styleResolverStats;
     unsigned m_styleForElementCount = 0;
diff --git a/third_party/WebKit/Source/core/dom/StyleEngineTest.cpp b/third_party/WebKit/Source/core/dom/StyleEngineTest.cpp
index 1708917..bae1f78 100644
--- a/third_party/WebKit/Source/core/dom/StyleEngineTest.cpp
+++ b/third_party/WebKit/Source/core/dom/StyleEngineTest.cpp
@@ -34,7 +34,7 @@
 
 TEST_F(StyleEngineTest, DocumentDirtyAfterInject)
 {
-    RefPtrWillBeRawPtr<StyleSheetContents> parsedSheet = StyleSheetContents::create(CSSParserContext(document(), nullptr));
+    RawPtr<StyleSheetContents> parsedSheet = StyleSheetContents::create(CSSParserContext(document(), nullptr));
     parsedSheet->parseString("div {}");
     styleEngine().injectAuthorSheet(parsedSheet);
     document().view()->updateAllLifecyclePhases();
@@ -54,7 +54,7 @@
 
     unsigned beforeCount = styleEngine().styleForElementCount();
 
-    RefPtrWillBeRawPtr<StyleSheetContents> parsedSheet = StyleSheetContents::create(CSSParserContext(document(), nullptr));
+    RawPtr<StyleSheetContents> parsedSheet = StyleSheetContents::create(CSSParserContext(document(), nullptr));
     parsedSheet->parseString("#t1 { color: green }");
     styleEngine().injectAuthorSheet(parsedSheet);
     document().view()->updateAllLifecyclePhases();
diff --git a/third_party/WebKit/Source/core/dom/StyleSheetCandidate.h b/third_party/WebKit/Source/core/dom/StyleSheetCandidate.h
index 7d38b71..f5b4250 100644
--- a/third_party/WebKit/Source/core/dom/StyleSheetCandidate.h
+++ b/third_party/WebKit/Source/core/dom/StyleSheetCandidate.h
@@ -72,7 +72,7 @@
 
     static Type typeOf(Node&);
 
-    RawPtrWillBeMember<Node> m_node;
+    Member<Node> m_node;
     Type m_type;
 };
 
diff --git a/third_party/WebKit/Source/core/dom/StyleSheetCollection.cpp b/third_party/WebKit/Source/core/dom/StyleSheetCollection.cpp
index 6e8becc..aa4b8dc 100644
--- a/third_party/WebKit/Source/core/dom/StyleSheetCollection.cpp
+++ b/third_party/WebKit/Source/core/dom/StyleSheetCollection.cpp
@@ -34,15 +34,13 @@
 {
 }
 
-DEFINE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(StyleSheetCollection);
-
 void StyleSheetCollection::swap(StyleSheetCollection& other)
 {
     m_styleSheetsForStyleSheetList.swap(other.m_styleSheetsForStyleSheetList);
     m_activeAuthorStyleSheets.swap(other.m_activeAuthorStyleSheets);
 }
 
-void StyleSheetCollection::swapSheetsForSheetList(WillBeHeapVector<RefPtrWillBeMember<StyleSheet>>& sheets)
+void StyleSheetCollection::swapSheetsForSheetList(HeapVector<Member<StyleSheet>>& sheets)
 {
     // Only called for collection of HTML Imports that never has active sheets.
     ASSERT(m_activeAuthorStyleSheets.isEmpty());
diff --git a/third_party/WebKit/Source/core/dom/StyleSheetCollection.h b/third_party/WebKit/Source/core/dom/StyleSheetCollection.h
index 1cb62a2..a188878 100644
--- a/third_party/WebKit/Source/core/dom/StyleSheetCollection.h
+++ b/third_party/WebKit/Source/core/dom/StyleSheetCollection.h
@@ -39,31 +39,29 @@
 class CSSStyleSheet;
 class StyleSheet;
 
-class CORE_EXPORT StyleSheetCollection : public NoBaseWillBeGarbageCollected<StyleSheetCollection> {
-    DECLARE_EMPTY_VIRTUAL_DESTRUCTOR_WILL_BE_REMOVED(StyleSheetCollection);
+class CORE_EXPORT StyleSheetCollection : public GarbageCollected<StyleSheetCollection> {
     WTF_MAKE_NONCOPYABLE(StyleSheetCollection);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(StyleSheetCollection);
 public:
     friend class ActiveDocumentStyleSheetCollector;
     friend class ImportedDocumentStyleSheetCollector;
 
     StyleSheetCollection();
 
-    WillBeHeapVector<RefPtrWillBeMember<CSSStyleSheet>>& activeAuthorStyleSheets() { return m_activeAuthorStyleSheets; }
-    WillBeHeapVector<RefPtrWillBeMember<StyleSheet>>& styleSheetsForStyleSheetList() { return m_styleSheetsForStyleSheetList; }
-    const WillBeHeapVector<RefPtrWillBeMember<CSSStyleSheet>>& activeAuthorStyleSheets() const { return m_activeAuthorStyleSheets; }
-    const WillBeHeapVector<RefPtrWillBeMember<StyleSheet>>& styleSheetsForStyleSheetList() const { return m_styleSheetsForStyleSheetList; }
+    HeapVector<Member<CSSStyleSheet>>& activeAuthorStyleSheets() { return m_activeAuthorStyleSheets; }
+    HeapVector<Member<StyleSheet>>& styleSheetsForStyleSheetList() { return m_styleSheetsForStyleSheetList; }
+    const HeapVector<Member<CSSStyleSheet>>& activeAuthorStyleSheets() const { return m_activeAuthorStyleSheets; }
+    const HeapVector<Member<StyleSheet>>& styleSheetsForStyleSheetList() const { return m_styleSheetsForStyleSheetList; }
 
     void swap(StyleSheetCollection&);
-    void swapSheetsForSheetList(WillBeHeapVector<RefPtrWillBeMember<StyleSheet>>&);
+    void swapSheetsForSheetList(HeapVector<Member<StyleSheet>>&);
     void appendActiveStyleSheet(CSSStyleSheet*);
     void appendSheetForList(StyleSheet*);
 
     DECLARE_VIRTUAL_TRACE();
 
 protected:
-    WillBeHeapVector<RefPtrWillBeMember<StyleSheet>> m_styleSheetsForStyleSheetList;
-    WillBeHeapVector<RefPtrWillBeMember<CSSStyleSheet>> m_activeAuthorStyleSheets;
+    HeapVector<Member<StyleSheet>> m_styleSheetsForStyleSheetList;
+    HeapVector<Member<CSSStyleSheet>> m_activeAuthorStyleSheets;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/dom/TagCollection.h b/third_party/WebKit/Source/core/dom/TagCollection.h
index 519792f2..8e8fc679 100644
--- a/third_party/WebKit/Source/core/dom/TagCollection.h
+++ b/third_party/WebKit/Source/core/dom/TagCollection.h
@@ -32,16 +32,16 @@
 // Collection that limits to a particular tag.
 class TagCollection : public HTMLCollection {
 public:
-    static PassRefPtrWillBeRawPtr<TagCollection> create(ContainerNode& rootNode, const AtomicString& namespaceURI, const AtomicString& localName)
+    static RawPtr<TagCollection> create(ContainerNode& rootNode, const AtomicString& namespaceURI, const AtomicString& localName)
     {
         ASSERT(namespaceURI != starAtom);
-        return adoptRefWillBeNoop(new TagCollection(rootNode, TagCollectionType, namespaceURI, localName));
+        return new TagCollection(rootNode, TagCollectionType, namespaceURI, localName);
     }
 
-    static PassRefPtrWillBeRawPtr<TagCollection> create(ContainerNode& rootNode, CollectionType type, const AtomicString& localName)
+    static RawPtr<TagCollection> create(ContainerNode& rootNode, CollectionType type, const AtomicString& localName)
     {
         ASSERT_UNUSED(type, type == TagCollectionType);
-        return adoptRefWillBeNoop(new TagCollection(rootNode, TagCollectionType, starAtom, localName));
+        return new TagCollection(rootNode, TagCollectionType, starAtom, localName);
     }
 
     ~TagCollection() override;
diff --git a/third_party/WebKit/Source/core/dom/TemplateContentDocumentFragment.h b/third_party/WebKit/Source/core/dom/TemplateContentDocumentFragment.h
index 92363c295..2588a16 100644
--- a/third_party/WebKit/Source/core/dom/TemplateContentDocumentFragment.h
+++ b/third_party/WebKit/Source/core/dom/TemplateContentDocumentFragment.h
@@ -33,9 +33,9 @@
 
 class TemplateContentDocumentFragment final : public DocumentFragment {
 public:
-    static PassRefPtrWillBeRawPtr<TemplateContentDocumentFragment> create(Document& document, Element* host)
+    static RawPtr<TemplateContentDocumentFragment> create(Document& document, Element* host)
     {
-        return adoptRefWillBeNoop(new TemplateContentDocumentFragment(document, host));
+        return new TemplateContentDocumentFragment(document, host);
     }
 
     Element* host() const { return m_host; }
@@ -58,7 +58,7 @@
 
     bool isTemplateContent() const override { return true; }
 
-    RawPtrWillBeMember<Element> m_host;
+    Member<Element> m_host;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/dom/Text.cpp b/third_party/WebKit/Source/core/dom/Text.cpp
index 0a0b82e7..e95cff6 100644
--- a/third_party/WebKit/Source/core/dom/Text.cpp
+++ b/third_party/WebKit/Source/core/dom/Text.cpp
@@ -44,24 +44,24 @@
 
 namespace blink {
 
-PassRefPtrWillBeRawPtr<Text> Text::create(Document& document, const String& data)
+RawPtr<Text> Text::create(Document& document, const String& data)
 {
-    return adoptRefWillBeNoop(new Text(document, data, CreateText));
+    return new Text(document, data, CreateText);
 }
 
-PassRefPtrWillBeRawPtr<Text> Text::createEditingText(Document& document, const String& data)
+RawPtr<Text> Text::createEditingText(Document& document, const String& data)
 {
-    return adoptRefWillBeNoop(new Text(document, data, CreateEditingText));
+    return new Text(document, data, CreateEditingText);
 }
 
-PassRefPtrWillBeRawPtr<Node> Text::mergeNextSiblingNodesIfPossible()
+RawPtr<Node> Text::mergeNextSiblingNodesIfPossible()
 {
-    RefPtrWillBeRawPtr<Node> protect(this);
+    RawPtr<Node> protect(this);
 
     // Remove empty text nodes.
     if (!length()) {
         // Care must be taken to get the next node before removing the current node.
-        RefPtrWillBeRawPtr<Node> nextNode(NodeTraversal::nextPostOrder(*this));
+        RawPtr<Node> nextNode(NodeTraversal::nextPostOrder(*this));
         remove(IGNORE_EXCEPTION);
         return nextNode.release();
     }
@@ -71,7 +71,7 @@
         if (nextSibling->getNodeType() != TEXT_NODE)
             break;
 
-        RefPtrWillBeRawPtr<Text> nextText = toText(nextSibling);
+        RawPtr<Text> nextText = toText(nextSibling);
 
         // Remove empty text nodes.
         if (!nextText->length()) {
@@ -104,7 +104,7 @@
     return NodeTraversal::nextPostOrder(*this);
 }
 
-PassRefPtrWillBeRawPtr<Text> Text::splitText(unsigned offset, ExceptionState& exceptionState)
+RawPtr<Text> Text::splitText(unsigned offset, ExceptionState& exceptionState)
 {
     // IndexSizeError: Raised if the specified offset is negative or greater than
     // the number of 16-bit units in data.
@@ -115,7 +115,7 @@
 
     EventQueueScope scope;
     String oldStr = data();
-    RefPtrWillBeRawPtr<Text> newText = cloneWithData(oldStr.substring(offset));
+    RawPtr<Text> newText = cloneWithData(oldStr.substring(offset));
     setDataWithoutUpdate(oldStr.substring(0, offset));
 
     didModifyData(oldStr, CharacterData::UpdateFromNonParser);
@@ -189,26 +189,26 @@
     return result.toString();
 }
 
-PassRefPtrWillBeRawPtr<Text> Text::replaceWholeText(const String& newText)
+RawPtr<Text> Text::replaceWholeText(const String& newText)
 {
     // Remove all adjacent text nodes, and replace the contents of this one.
 
     // Protect startText and endText against mutation event handlers removing the last ref
-    RefPtrWillBeRawPtr<Text> startText = const_cast<Text*>(earliestLogicallyAdjacentTextNode(this));
-    RefPtrWillBeRawPtr<Text> endText = const_cast<Text*>(latestLogicallyAdjacentTextNode(this));
+    RawPtr<Text> startText = const_cast<Text*>(earliestLogicallyAdjacentTextNode(this));
+    RawPtr<Text> endText = const_cast<Text*>(latestLogicallyAdjacentTextNode(this));
 
-    RefPtrWillBeRawPtr<Text> protectedThis(this); // Mutation event handlers could cause our last ref to go away
-    RefPtrWillBeRawPtr<ContainerNode> parent = parentNode(); // Protect against mutation handlers moving this node during traversal
-    for (RefPtrWillBeRawPtr<Node> n = startText; n && n != this && n->isTextNode() && n->parentNode() == parent;) {
-        RefPtrWillBeRawPtr<Node> nodeToRemove(n.release());
+    RawPtr<Text> protectedThis(this); // Mutation event handlers could cause our last ref to go away
+    RawPtr<ContainerNode> parent = parentNode(); // Protect against mutation handlers moving this node during traversal
+    for (RawPtr<Node> n = startText; n && n != this && n->isTextNode() && n->parentNode() == parent;) {
+        RawPtr<Node> nodeToRemove(n.release());
         n = nodeToRemove->nextSibling();
         parent->removeChild(nodeToRemove.get(), IGNORE_EXCEPTION);
     }
 
     if (this != endText) {
         Node* onePastEndText = endText->nextSibling();
-        for (RefPtrWillBeRawPtr<Node> n = nextSibling(); n && n != onePastEndText && n->isTextNode() && n->parentNode() == parent;) {
-            RefPtrWillBeRawPtr<Node> nodeToRemove(n.release());
+        for (RawPtr<Node> n = nextSibling(); n && n != onePastEndText && n->isTextNode() && n->parentNode() == parent;) {
+            RawPtr<Node> nodeToRemove(n.release());
             n = nodeToRemove->nextSibling();
             parent->removeChild(nodeToRemove.get(), IGNORE_EXCEPTION);
         }
@@ -234,7 +234,7 @@
     return TEXT_NODE;
 }
 
-PassRefPtrWillBeRawPtr<Node> Text::cloneNode(bool /*deep*/)
+RawPtr<Node> Text::cloneNode(bool /*deep*/)
 {
     return cloneWithData(data());
 }
@@ -435,7 +435,7 @@
     textLayoutObject->setTextWithOffset(dataImpl(), offsetOfReplacedData, lengthOfReplacedData);
 }
 
-PassRefPtrWillBeRawPtr<Text> Text::cloneWithData(const String& data)
+RawPtr<Text> Text::cloneWithData(const String& data)
 {
     return create(document(), data);
 }
diff --git a/third_party/WebKit/Source/core/dom/Text.h b/third_party/WebKit/Source/core/dom/Text.h
index 21176770..28c37334 100644
--- a/third_party/WebKit/Source/core/dom/Text.h
+++ b/third_party/WebKit/Source/core/dom/Text.h
@@ -36,20 +36,20 @@
 public:
     static const unsigned defaultLengthLimit = 1 << 16;
 
-    static PassRefPtrWillBeRawPtr<Text> create(Document&, const String&);
-    static PassRefPtrWillBeRawPtr<Text> createEditingText(Document&, const String&);
+    static RawPtr<Text> create(Document&, const String&);
+    static RawPtr<Text> createEditingText(Document&, const String&);
 
     LayoutText* layoutObject() const;
 
     // mergeNextSiblingNodesIfPossible() merges next sibling nodes if possible
     // then returns a node not merged.
-    PassRefPtrWillBeRawPtr<Node> mergeNextSiblingNodesIfPossible();
-    PassRefPtrWillBeRawPtr<Text> splitText(unsigned offset, ExceptionState&);
+    RawPtr<Node> mergeNextSiblingNodesIfPossible();
+    RawPtr<Text> splitText(unsigned offset, ExceptionState&);
 
     // DOM Level 3: http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-1312295772
 
     String wholeText() const;
-    PassRefPtrWillBeRawPtr<Text> replaceWholeText(const String&);
+    RawPtr<Text> replaceWholeText(const String&);
 
     void recalcTextStyle(StyleRecalcChange, Text* nextTextSibling);
     bool textLayoutObjectIsNeeded(const ComputedStyle&, const LayoutObject& parent) const;
@@ -70,13 +70,13 @@
 
 private:
     String nodeName() const override;
-    PassRefPtrWillBeRawPtr<Node> cloneNode(bool deep) final;
+    RawPtr<Node> cloneNode(bool deep) final;
 
     bool isTextNode() const = delete; // This will catch anyone doing an unnecessary check.
 
     bool needsWhitespaceLayoutObject();
 
-    virtual PassRefPtrWillBeRawPtr<Text> cloneWithData(const String&);
+    virtual RawPtr<Text> cloneWithData(const String&);
 
 #ifndef NDEBUG
     void formatForDebugger(char* buffer, unsigned length) const override;
diff --git a/third_party/WebKit/Source/core/dom/TextTest.cpp b/third_party/WebKit/Source/core/dom/TextTest.cpp
index a2e218f..a846da0 100644
--- a/third_party/WebKit/Source/core/dom/TextTest.cpp
+++ b/third_party/WebKit/Source/core/dom/TextTest.cpp
@@ -20,10 +20,10 @@
     document().documentElement()->setInnerHTML("<style>*::first-letter{font:icon;}</style><pre>AB\n</pre>", ASSERT_NO_EXCEPTION);
     updateLayoutAndStyleForPainting();
 
-    RefPtrWillBeRawPtr<Element> pre = document().querySelector("pre", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> pre = document().querySelector("pre", ASSERT_NO_EXCEPTION);
     Text* text = toText(pre->firstChild());
 
-    RefPtrWillBeRawPtr<Range> range = Range::create(document(), text, 0, text, 2);
+    RawPtr<Range> range = Range::create(document(), text, 0, text, 2);
     range->deleteContents(ASSERT_NO_EXCEPTION);
     updateLayoutAndStyleForPainting();
 
diff --git a/third_party/WebKit/Source/core/dom/Touch.cpp b/third_party/WebKit/Source/core/dom/Touch.cpp
index 4a5c228e..c28005c 100644
--- a/third_party/WebKit/Source/core/dom/Touch.cpp
+++ b/third_party/WebKit/Source/core/dom/Touch.cpp
@@ -86,9 +86,9 @@
     m_absoluteLocation = roundedLayoutPoint(m_pagePos.scaledBy(scaleFactor));
 }
 
-PassRefPtrWillBeRawPtr<Touch> Touch::cloneWithNewTarget(EventTarget* eventTarget) const
+RawPtr<Touch> Touch::cloneWithNewTarget(EventTarget* eventTarget) const
 {
-    return adoptRefWillBeNoop(new Touch(eventTarget, m_identifier, m_clientPos, m_screenPos, m_pagePos, m_radius, m_rotationAngle, m_force, m_region, m_absoluteLocation));
+    return new Touch(eventTarget, m_identifier, m_clientPos, m_screenPos, m_pagePos, m_radius, m_rotationAngle, m_force, m_region, m_absoluteLocation);
 }
 
 DEFINE_TRACE(Touch)
diff --git a/third_party/WebKit/Source/core/dom/Touch.h b/third_party/WebKit/Source/core/dom/Touch.h
index 61ded554..3efa1c3 100644
--- a/third_party/WebKit/Source/core/dom/Touch.h
+++ b/third_party/WebKit/Source/core/dom/Touch.h
@@ -43,19 +43,19 @@
 
 class LocalFrame;
 
-class CORE_EXPORT Touch final : public RefCountedWillBeGarbageCollectedFinalized<Touch>, public ScriptWrappable {
+class CORE_EXPORT Touch final : public GarbageCollectedFinalized<Touch>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<Touch> create(LocalFrame* frame, EventTarget* target,
+    static RawPtr<Touch> create(LocalFrame* frame, EventTarget* target,
         int identifier, const FloatPoint& screenPos, const FloatPoint& pagePos,
         const FloatSize& radius, float rotationAngle, float force, String region)
     {
-        return adoptRefWillBeNoop(new Touch(frame, target, identifier, screenPos, pagePos, radius, rotationAngle, force, region));
+        return new Touch(frame, target, identifier, screenPos, pagePos, radius, rotationAngle, force, region);
     }
 
-    static PassRefPtrWillBeRawPtr<Touch> create(const Document& document, const TouchInit& initializer)
+    static RawPtr<Touch> create(const Document& document, const TouchInit& initializer)
     {
-        return adoptRefWillBeNoop(new Touch(document.frame(), initializer));
+        return new Touch(document.frame(), initializer);
     }
 
     // DOM Touch implementation
@@ -76,7 +76,7 @@
     // Blink-internal methods
     const LayoutPoint& absoluteLocation() const { return m_absoluteLocation; }
     const FloatPoint& screenLocation() const { return m_screenPos; }
-    PassRefPtrWillBeRawPtr<Touch> cloneWithNewTarget(EventTarget*) const;
+    RawPtr<Touch> cloneWithNewTarget(EventTarget*) const;
 
     DECLARE_TRACE();
 
@@ -91,7 +91,7 @@
 
     Touch(LocalFrame*, const TouchInit&);
 
-    RefPtrWillBeMember<EventTarget> m_target;
+    Member<EventTarget> m_target;
     int m_identifier;
     // Position relative to the viewport in CSS px.
     FloatPoint m_clientPos;
diff --git a/third_party/WebKit/Source/core/dom/TouchList.h b/third_party/WebKit/Source/core/dom/TouchList.h
index 6f471a28..46000ff 100644
--- a/third_party/WebKit/Source/core/dom/TouchList.h
+++ b/third_party/WebKit/Source/core/dom/TouchList.h
@@ -35,24 +35,24 @@
 
 namespace blink {
 
-class CORE_EXPORT TouchList final : public RefCountedWillBeGarbageCollected<TouchList>, public ScriptWrappable {
+class CORE_EXPORT TouchList final : public GarbageCollected<TouchList>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<TouchList> create()
+    static RawPtr<TouchList> create()
     {
         return adoptRefWillBeNoop(new TouchList);
     }
 
-    static PassRefPtrWillBeRawPtr<TouchList> create(const WillBeHeapVector<RefPtrWillBeMember<Touch>>& touches)
+    static RawPtr<TouchList> create(const HeapVector<Member<Touch>>& touches)
     {
-        RefPtrWillBeRawPtr<TouchList> list = adoptRefWillBeNoop(new TouchList);
+        RawPtr<TouchList> list = adoptRefWillBeNoop(new TouchList);
         list->m_values.appendVector(touches);
         return list.release();
     }
 
-    static PassRefPtrWillBeRawPtr<TouchList> adopt(WillBeHeapVector<RefPtrWillBeMember<Touch>>& touches)
+    static RawPtr<TouchList> adopt(HeapVector<Member<Touch>>& touches)
     {
-        return adoptRefWillBeNoop(new TouchList(touches));
+        return new TouchList(touches);
     }
 
     unsigned length() const { return m_values.size(); }
@@ -60,19 +60,19 @@
     Touch* item(unsigned);
     const Touch* item(unsigned) const;
 
-    void append(const PassRefPtrWillBeRawPtr<Touch> touch) { m_values.append(touch); }
+    void append(const RawPtr<Touch> touch) { m_values.append(touch); }
 
     DECLARE_TRACE();
 
 private:
     TouchList() { }
 
-    TouchList(WillBeHeapVector<RefPtrWillBeMember<Touch>>& touches)
+    TouchList(HeapVector<Member<Touch>>& touches)
     {
         m_values.swap(touches);
     }
 
-    WillBeHeapVector<RefPtrWillBeMember<Touch>> m_values;
+    HeapVector<Member<Touch>> m_values;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/dom/TreeScope.cpp b/third_party/WebKit/Source/core/dom/TreeScope.cpp
index 4d6ff5e..f69be23 100644
--- a/third_party/WebKit/Source/core/dom/TreeScope.cpp
+++ b/third_party/WebKit/Source/core/dom/TreeScope.cpp
@@ -168,9 +168,9 @@
     return m_elementsById->getElementById(elementId, this);
 }
 
-const WillBeHeapVector<RawPtrWillBeMember<Element>>& TreeScope::getAllElementsById(const AtomicString& elementId) const
+const HeapVector<Member<Element>>& TreeScope::getAllElementsById(const AtomicString& elementId) const
 {
-    DEFINE_STATIC_LOCAL(OwnPtrWillBePersistent<WillBeHeapVector<RawPtrWillBeMember<Element>>>, emptyVector, (adoptPtrWillBeNoop(new WillBeHeapVector<RawPtrWillBeMember<Element>>())));
+    DEFINE_STATIC_LOCAL(Persistent<HeapVector<Member<Element>>>, emptyVector, (new HeapVector<Member<Element>>()));
     if (elementId.isEmpty())
         return *emptyVector;
     if (!m_elementsById)
@@ -294,9 +294,9 @@
     return toElement(node);
 }
 
-WillBeHeapVector<RawPtrWillBeMember<Element>> TreeScope::elementsFromHitTestResult(HitTestResult& result) const
+HeapVector<Member<Element>> TreeScope::elementsFromHitTestResult(HitTestResult& result) const
 {
-    WillBeHeapVector<RawPtrWillBeMember<Element>> elements;
+    HeapVector<Member<Element>> elements;
 
     Node* lastNode = nullptr;
     for (const auto rectBasedNode : result.listBasedTestResult()) {
@@ -329,12 +329,12 @@
     return elements;
 }
 
-WillBeHeapVector<RawPtrWillBeMember<Element>> TreeScope::elementsFromPoint(int x, int y) const
+HeapVector<Member<Element>> TreeScope::elementsFromPoint(int x, int y) const
 {
     Document& document = rootNode().document();
     IntPoint hitPoint(x, y);
     if (!pointWithScrollAndZoomIfPossible(document, hitPoint))
-        return WillBeHeapVector<RawPtrWillBeMember<Element>>();
+        return HeapVector<Member<Element>>();
 
     HitTestRequest request(HitTestRequest::ReadOnly | HitTestRequest::Active | HitTestRequest::ListBased | HitTestRequest::PenetratingList);
     HitTestResult result(request, hitPoint);
@@ -429,7 +429,7 @@
     if (!element)
         return 0;
 
-    OwnPtrWillBeRawPtr<EventPath> eventPath = adoptPtrWillBeNoop(new EventPath(*element));
+    RawPtr<EventPath> eventPath = new EventPath(*element);
     for (size_t i = 0; i < eventPath->size(); ++i) {
         if (eventPath->at(i).node() == rootNode()) {
             // eventPath->at(i).target() is one of the followings:
@@ -448,8 +448,8 @@
     if (otherScope == this)
         return Node::DOCUMENT_POSITION_EQUIVALENT;
 
-    WillBeHeapVector<RawPtrWillBeMember<const TreeScope>, 16> chain1;
-    WillBeHeapVector<RawPtrWillBeMember<const TreeScope>, 16> chain2;
+    HeapVector<Member<const TreeScope>, 16> chain1;
+    HeapVector<Member<const TreeScope>, 16> chain2;
     const TreeScope* current;
     for (current = this; current; current = current->parentTreeScope())
         chain1.append(current);
@@ -488,11 +488,11 @@
 
 const TreeScope* TreeScope::commonAncestorTreeScope(const TreeScope& other) const
 {
-    WillBeHeapVector<RawPtrWillBeMember<const TreeScope>, 16> thisChain;
+    HeapVector<Member<const TreeScope>, 16> thisChain;
     for (const TreeScope* tree = this; tree; tree = tree->parentTreeScope())
         thisChain.append(tree);
 
-    WillBeHeapVector<RawPtrWillBeMember<const TreeScope>, 16> otherChain;
+    HeapVector<Member<const TreeScope>, 16> otherChain;
     for (const TreeScope* tree = &other; tree; tree = tree->parentTreeScope())
         otherChain.append(tree);
 
diff --git a/third_party/WebKit/Source/core/dom/TreeScope.h b/third_party/WebKit/Source/core/dom/TreeScope.h
index a916f723..9cf5b49 100644
--- a/third_party/WebKit/Source/core/dom/TreeScope.h
+++ b/third_party/WebKit/Source/core/dom/TreeScope.h
@@ -50,7 +50,7 @@
 // A class which inherits both Node and TreeScope must call clearRareData() in its destructor
 // so that the Node destructor no longer does problematic NodeList cache manipulation in
 // the destructor.
-class CORE_EXPORT TreeScope : public WillBeGarbageCollectedMixin {
+class CORE_EXPORT TreeScope : public GarbageCollectedMixin {
 public:
     TreeScope* parentTreeScope() const { return m_parentTreeScope; }
 
@@ -59,7 +59,7 @@
 
     Element* adjustedFocusedElement() const;
     Element* getElementById(const AtomicString&) const;
-    const WillBeHeapVector<RawPtrWillBeMember<Element>>& getAllElementsById(const AtomicString&) const;
+    const HeapVector<Member<Element>>& getAllElementsById(const AtomicString&) const;
     bool hasElementWithId(const AtomicString& id) const;
     bool containsMultipleElementsWithId(const AtomicString& id) const;
     void addElementById(const AtomicString& elementId, Element*);
@@ -79,8 +79,8 @@
 
     Element* elementFromPoint(int x, int y) const;
     Element* hitTestPoint(int x, int y, const HitTestRequest&) const;
-    WillBeHeapVector<RawPtrWillBeMember<Element>> elementsFromPoint(int x, int y) const;
-    WillBeHeapVector<RawPtrWillBeMember<Element>> elementsFromHitTestResult(HitTestResult&) const;
+    HeapVector<Member<Element>> elementsFromPoint(int x, int y) const;
+    HeapVector<Member<Element>> elementsFromHitTestResult(HitTestResult&) const;
 
     // For accessibility.
     bool shouldCacheLabelsByForAttribute() const { return m_labelsByForAttribute; }
@@ -181,23 +181,23 @@
 
     bool rootNodeHasTreeSharedParent() const;
 
-    RawPtrWillBeMember<ContainerNode> m_rootNode;
-    RawPtrWillBeMember<Document> m_document;
-    RawPtrWillBeMember<TreeScope> m_parentTreeScope;
+    Member<ContainerNode> m_rootNode;
+    Member<Document> m_document;
+    Member<TreeScope> m_parentTreeScope;
 
 #if !ENABLE(OILPAN)
     int m_guardRefCount;
 #endif
 
-    OwnPtrWillBeMember<DocumentOrderedMap> m_elementsById;
-    OwnPtrWillBeMember<DocumentOrderedMap> m_imageMapsByName;
-    OwnPtrWillBeMember<DocumentOrderedMap> m_labelsByForAttribute;
+    Member<DocumentOrderedMap> m_elementsById;
+    Member<DocumentOrderedMap> m_imageMapsByName;
+    Member<DocumentOrderedMap> m_labelsByForAttribute;
 
-    OwnPtrWillBeMember<IdTargetObserverRegistry> m_idTargetObserverRegistry;
+    Member<IdTargetObserverRegistry> m_idTargetObserverRegistry;
 
-    OwnPtrWillBeMember<ScopedStyleResolver> m_scopedStyleResolver;
+    Member<ScopedStyleResolver> m_scopedStyleResolver;
 
-    mutable RefPtrWillBeMember<DOMSelection> m_selection;
+    mutable Member<DOMSelection> m_selection;
 
     RadioButtonGroupScope m_radioButtonGroupScope;
 };
diff --git a/third_party/WebKit/Source/core/dom/TreeScopeAdopter.cpp b/third_party/WebKit/Source/core/dom/TreeScopeAdopter.cpp
index 536b7ad..e16131a 100644
--- a/third_party/WebKit/Source/core/dom/TreeScopeAdopter.cpp
+++ b/third_party/WebKit/Source/core/dom/TreeScopeAdopter.cpp
@@ -65,7 +65,7 @@
             continue;
         Element& element = toElement(node);
 
-        if (WillBeHeapVector<RefPtrWillBeMember<Attr>>* attrs = element.attrNodeList()) {
+        if (HeapVector<Member<Attr>>* attrs = element.attrNodeList()) {
             for (const auto& attr : *attrs)
                 moveTreeToNewScope(*attr);
         }
@@ -92,7 +92,7 @@
             continue;
         Element& element = toElement(node);
 
-        if (WillBeHeapVector<RefPtrWillBeMember<Attr>>* attrs = element.attrNodeList()) {
+        if (HeapVector<Member<Attr>>* attrs = element.attrNodeList()) {
             for (const auto& attr : *attrs)
                 moveTreeToNewDocument(*attr, oldDocument, newDocument);
         }
diff --git a/third_party/WebKit/Source/core/dom/TreeScopeAdopter.h b/third_party/WebKit/Source/core/dom/TreeScopeAdopter.h
index 861b4b3..da664d8 100644
--- a/third_party/WebKit/Source/core/dom/TreeScopeAdopter.h
+++ b/third_party/WebKit/Source/core/dom/TreeScopeAdopter.h
@@ -53,9 +53,9 @@
     TreeScope& oldScope() const { return *m_oldScope; }
     TreeScope& newScope() const { return *m_newScope; }
 
-    RawPtrWillBeMember<Node> m_toAdopt;
-    RawPtrWillBeMember<TreeScope> m_newScope;
-    RawPtrWillBeMember<TreeScope> m_oldScope;
+    Member<Node> m_toAdopt;
+    Member<TreeScope> m_newScope;
+    Member<TreeScope> m_oldScope;
 };
 
 inline TreeScopeAdopter::TreeScopeAdopter(Node& toAdopt, TreeScope& newScope)
diff --git a/third_party/WebKit/Source/core/dom/TreeScopeStyleSheetCollection.cpp b/third_party/WebKit/Source/core/dom/TreeScopeStyleSheetCollection.cpp
index c11282e..4e2577d 100644
--- a/third_party/WebKit/Source/core/dom/TreeScopeStyleSheetCollection.cpp
+++ b/third_party/WebKit/Source/core/dom/TreeScopeStyleSheetCollection.cpp
@@ -52,7 +52,7 @@
     m_styleSheetCandidateNodes.add(node);
 }
 
-TreeScopeStyleSheetCollection::StyleResolverUpdateType TreeScopeStyleSheetCollection::compareStyleSheets(const WillBeHeapVector<RefPtrWillBeMember<CSSStyleSheet>>& oldStyleSheets, const WillBeHeapVector<RefPtrWillBeMember<CSSStyleSheet>>& newStylesheets, WillBeHeapVector<RawPtrWillBeMember<StyleSheetContents>>& addedSheets)
+TreeScopeStyleSheetCollection::StyleResolverUpdateType TreeScopeStyleSheetCollection::compareStyleSheets(const HeapVector<Member<CSSStyleSheet>>& oldStyleSheets, const HeapVector<Member<CSSStyleSheet>>& newStylesheets, HeapVector<Member<StyleSheetContents>>& addedSheets)
 {
     unsigned newStyleSheetCount = newStylesheets.size();
     unsigned oldStyleSheetCount = oldStyleSheets.size();
@@ -81,7 +81,7 @@
     return hasInsertions ? Reset : Additive;
 }
 
-bool TreeScopeStyleSheetCollection::activeLoadingStyleSheetLoaded(const WillBeHeapVector<RefPtrWillBeMember<CSSStyleSheet>>& newStyleSheets)
+bool TreeScopeStyleSheetCollection::activeLoadingStyleSheetLoaded(const HeapVector<Member<CSSStyleSheet>>& newStyleSheets)
 {
     // StyleSheets of <style> elements that @import stylesheets are active but loading. We need to trigger a full recalc when such loads are done.
     bool hasActiveLoadingStylesheet = false;
@@ -98,7 +98,7 @@
     return false;
 }
 
-static bool findFontFaceRulesFromStyleSheetContents(const WillBeHeapVector<RawPtrWillBeMember<StyleSheetContents>>& sheets, WillBeHeapVector<RawPtrWillBeMember<const StyleRuleFontFace>>& fontFaceRules)
+static bool findFontFaceRulesFromStyleSheetContents(const HeapVector<Member<StyleSheetContents>>& sheets, HeapVector<Member<const StyleRuleFontFace>>& fontFaceRules)
 {
     bool hasFontFaceRule = false;
 
@@ -122,7 +122,7 @@
         return;
 
     // Find out which stylesheets are new.
-    WillBeHeapVector<RawPtrWillBeMember<StyleSheetContents>> addedSheets;
+    HeapVector<Member<StyleSheetContents>> addedSheets;
     if (m_activeAuthorStyleSheets.size() <= newCollection.activeAuthorStyleSheets().size()) {
         change.styleResolverUpdateType = compareStyleSheets(m_activeAuthorStyleSheets, newCollection.activeAuthorStyleSheets(), addedSheets);
     } else {
diff --git a/third_party/WebKit/Source/core/dom/TreeScopeStyleSheetCollection.h b/third_party/WebKit/Source/core/dom/TreeScopeStyleSheetCollection.h
index c651de8..fa954d3 100644
--- a/third_party/WebKit/Source/core/dom/TreeScopeStyleSheetCollection.h
+++ b/third_party/WebKit/Source/core/dom/TreeScopeStyleSheetCollection.h
@@ -72,7 +72,7 @@
     public:
         StyleResolverUpdateType styleResolverUpdateType;
         bool requiresFullStyleRecalc;
-        WillBeHeapVector<RawPtrWillBeMember<const StyleRuleFontFace>> fontFaceRulesToRemove;
+        HeapVector<Member<const StyleRuleFontFace>> fontFaceRulesToRemove;
 
         StyleSheetChange()
             : styleResolverUpdateType(Reconstruct)
@@ -82,13 +82,13 @@
     void analyzeStyleSheetChange(StyleResolverUpdateMode, const StyleSheetCollection&, StyleSheetChange&);
 
 private:
-    static StyleResolverUpdateType compareStyleSheets(const WillBeHeapVector<RefPtrWillBeMember<CSSStyleSheet>>& oldStyleSheets, const WillBeHeapVector<RefPtrWillBeMember<CSSStyleSheet>>& newStylesheets, WillBeHeapVector<RawPtrWillBeMember<StyleSheetContents>>& addedSheets);
-    bool activeLoadingStyleSheetLoaded(const WillBeHeapVector<RefPtrWillBeMember<CSSStyleSheet>>& newStyleSheets);
+    static StyleResolverUpdateType compareStyleSheets(const HeapVector<Member<CSSStyleSheet>>& oldStyleSheets, const HeapVector<Member<CSSStyleSheet>>& newStylesheets, HeapVector<Member<StyleSheetContents>>& addedSheets);
+    bool activeLoadingStyleSheetLoaded(const HeapVector<Member<CSSStyleSheet>>& newStyleSheets);
 
     friend class TreeScopeStyleSheetCollectionTest;
 
 protected:
-    RawPtrWillBeMember<TreeScope> m_treeScope;
+    Member<TreeScope> m_treeScope;
     bool m_hadActiveLoadingStylesheet;
 
     DocumentOrderedList m_styleSheetCandidateNodes;
diff --git a/third_party/WebKit/Source/core/dom/TreeScopeStyleSheetCollectionTest.cpp b/third_party/WebKit/Source/core/dom/TreeScopeStyleSheetCollectionTest.cpp
index c0cafd8..df9db32 100644
--- a/third_party/WebKit/Source/core/dom/TreeScopeStyleSheetCollectionTest.cpp
+++ b/third_party/WebKit/Source/core/dom/TreeScopeStyleSheetCollectionTest.cpp
@@ -13,8 +13,8 @@
 
 class TreeScopeStyleSheetCollectionTest : public testing::Test {
 protected:
-    using SheetVector = WillBeHeapVector<RefPtrWillBeMember<CSSStyleSheet>>;
-    using ContentsVector = WillBeHeapVector<RawPtrWillBeMember<StyleSheetContents>>;
+    using SheetVector = HeapVector<Member<CSSStyleSheet>>;
+    using ContentsVector = HeapVector<Member<StyleSheetContents>>;
 
     enum UpdateType {
         Reconstruct = TreeScopeStyleSheetCollection::Reconstruct,
@@ -22,7 +22,7 @@
         Additive = TreeScopeStyleSheetCollection::Additive
     };
 
-    static PassRefPtrWillBeRawPtr<CSSStyleSheet> createSheet()
+    static RawPtr<CSSStyleSheet> createSheet()
     {
         return CSSStyleSheet::create(StyleSheetContents::create(CSSParserContext(HTMLStandardMode, nullptr)));
     }
@@ -42,8 +42,8 @@
 
 TEST_F(TreeScopeStyleSheetCollectionTest, CompareStyleSheetsAppend)
 {
-    RefPtrWillBeRawPtr<CSSStyleSheet> sheet1 = createSheet();
-    RefPtrWillBeRawPtr<CSSStyleSheet> sheet2 = createSheet();
+    RawPtr<CSSStyleSheet> sheet1 = createSheet();
+    RawPtr<CSSStyleSheet> sheet2 = createSheet();
 
     ContentsVector added;
     SheetVector previous;
@@ -61,8 +61,8 @@
 
 TEST_F(TreeScopeStyleSheetCollectionTest, CompareStyleSheetsPrepend)
 {
-    RefPtrWillBeRawPtr<CSSStyleSheet> sheet1 = createSheet();
-    RefPtrWillBeRawPtr<CSSStyleSheet> sheet2 = createSheet();
+    RawPtr<CSSStyleSheet> sheet1 = createSheet();
+    RawPtr<CSSStyleSheet> sheet2 = createSheet();
 
     ContentsVector added;
     SheetVector previous;
@@ -80,9 +80,9 @@
 
 TEST_F(TreeScopeStyleSheetCollectionTest, CompareStyleSheetsInsert)
 {
-    RefPtrWillBeRawPtr<CSSStyleSheet> sheet1 = createSheet();
-    RefPtrWillBeRawPtr<CSSStyleSheet> sheet2 = createSheet();
-    RefPtrWillBeRawPtr<CSSStyleSheet> sheet3 = createSheet();
+    RawPtr<CSSStyleSheet> sheet1 = createSheet();
+    RawPtr<CSSStyleSheet> sheet2 = createSheet();
+    RawPtr<CSSStyleSheet> sheet3 = createSheet();
 
     ContentsVector added;
     SheetVector previous;
@@ -102,9 +102,9 @@
 
 TEST_F(TreeScopeStyleSheetCollectionTest, CompareStyleSheetsRemove)
 {
-    RefPtrWillBeRawPtr<CSSStyleSheet> sheet1 = createSheet();
-    RefPtrWillBeRawPtr<CSSStyleSheet> sheet2 = createSheet();
-    RefPtrWillBeRawPtr<CSSStyleSheet> sheet3 = createSheet();
+    RawPtr<CSSStyleSheet> sheet1 = createSheet();
+    RawPtr<CSSStyleSheet> sheet2 = createSheet();
+    RawPtr<CSSStyleSheet> sheet3 = createSheet();
 
     ContentsVector added;
     SheetVector previous;
@@ -126,9 +126,9 @@
 
 TEST_F(TreeScopeStyleSheetCollectionTest, CompareStyleSheetsInsertRemove)
 {
-    RefPtrWillBeRawPtr<CSSStyleSheet> sheet1 = createSheet();
-    RefPtrWillBeRawPtr<CSSStyleSheet> sheet2 = createSheet();
-    RefPtrWillBeRawPtr<CSSStyleSheet> sheet3 = createSheet();
+    RawPtr<CSSStyleSheet> sheet1 = createSheet();
+    RawPtr<CSSStyleSheet> sheet2 = createSheet();
+    RawPtr<CSSStyleSheet> sheet3 = createSheet();
 
     ContentsVector added;
     SheetVector previous;
diff --git a/third_party/WebKit/Source/core/dom/TreeScopeTest.cpp b/third_party/WebKit/Source/core/dom/TreeScopeTest.cpp
index 180c495b..7ed3de9 100644
--- a/third_party/WebKit/Source/core/dom/TreeScopeTest.cpp
+++ b/third_party/WebKit/Source/core/dom/TreeScopeTest.cpp
@@ -13,12 +13,12 @@
 
 TEST(TreeScopeTest, CommonAncestorOfSameTrees)
 {
-    RefPtrWillBeRawPtr<Document> document = Document::create();
+    RawPtr<Document> document = Document::create();
     EXPECT_EQ(document.get(), document->commonAncestorTreeScope(*document));
 
-    RefPtrWillBeRawPtr<Element> html = document->createElement("html", nullAtom, ASSERT_NO_EXCEPTION);
+    RawPtr<Element> html = document->createElement("html", nullAtom, ASSERT_NO_EXCEPTION);
     document->appendChild(html, ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<ShadowRoot> shadowRoot = html->createShadowRootInternal(ShadowRootType::V0, ASSERT_NO_EXCEPTION);
+    RawPtr<ShadowRoot> shadowRoot = html->createShadowRootInternal(ShadowRootType::V0, ASSERT_NO_EXCEPTION);
     EXPECT_EQ(shadowRoot.get(), shadowRoot->commonAncestorTreeScope(*shadowRoot));
 }
 
@@ -28,10 +28,10 @@
     //     |      : Common ancestor is document.
     // shadowRoot
 
-    RefPtrWillBeRawPtr<Document> document = Document::create();
-    RefPtrWillBeRawPtr<Element> html = document->createElement("html", nullAtom, ASSERT_NO_EXCEPTION);
+    RawPtr<Document> document = Document::create();
+    RawPtr<Element> html = document->createElement("html", nullAtom, ASSERT_NO_EXCEPTION);
     document->appendChild(html, ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<ShadowRoot> shadowRoot = html->createShadowRootInternal(ShadowRootType::V0, ASSERT_NO_EXCEPTION);
+    RawPtr<ShadowRoot> shadowRoot = html->createShadowRootInternal(ShadowRootType::V0, ASSERT_NO_EXCEPTION);
 
     EXPECT_EQ(document.get(), document->commonAncestorTreeScope(*shadowRoot));
     EXPECT_EQ(document.get(), shadowRoot->commonAncestorTreeScope(*document));
@@ -43,16 +43,16 @@
     //   /    \  : Common ancestor is document.
     //  A      B
 
-    RefPtrWillBeRawPtr<Document> document = Document::create();
-    RefPtrWillBeRawPtr<Element> html = document->createElement("html", nullAtom, ASSERT_NO_EXCEPTION);
+    RawPtr<Document> document = Document::create();
+    RawPtr<Element> html = document->createElement("html", nullAtom, ASSERT_NO_EXCEPTION);
     document->appendChild(html, ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> head = document->createElement("head", nullAtom, ASSERT_NO_EXCEPTION);
+    RawPtr<Element> head = document->createElement("head", nullAtom, ASSERT_NO_EXCEPTION);
     html->appendChild(head);
-    RefPtrWillBeRawPtr<Element> body = document->createElement("body", nullAtom, ASSERT_NO_EXCEPTION);
+    RawPtr<Element> body = document->createElement("body", nullAtom, ASSERT_NO_EXCEPTION);
     html->appendChild(body);
 
-    RefPtrWillBeRawPtr<ShadowRoot> shadowRootA = head->createShadowRootInternal(ShadowRootType::V0, ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<ShadowRoot> shadowRootB = body->createShadowRootInternal(ShadowRootType::V0, ASSERT_NO_EXCEPTION);
+    RawPtr<ShadowRoot> shadowRootA = head->createShadowRootInternal(ShadowRootType::V0, ASSERT_NO_EXCEPTION);
+    RawPtr<ShadowRoot> shadowRootB = body->createShadowRootInternal(ShadowRootType::V0, ASSERT_NO_EXCEPTION);
 
     EXPECT_EQ(document.get(), shadowRootA->commonAncestorTreeScope(*shadowRootB));
     EXPECT_EQ(document.get(), shadowRootB->commonAncestorTreeScope(*shadowRootA));
@@ -66,20 +66,20 @@
     //  /
     // A
 
-    RefPtrWillBeRawPtr<Document> document = Document::create();
-    RefPtrWillBeRawPtr<Element> html = document->createElement("html", nullAtom, ASSERT_NO_EXCEPTION);
+    RawPtr<Document> document = Document::create();
+    RawPtr<Element> html = document->createElement("html", nullAtom, ASSERT_NO_EXCEPTION);
     document->appendChild(html, ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> head = document->createElement("head", nullAtom, ASSERT_NO_EXCEPTION);
+    RawPtr<Element> head = document->createElement("head", nullAtom, ASSERT_NO_EXCEPTION);
     html->appendChild(head);
-    RefPtrWillBeRawPtr<Element> body = document->createElement("body", nullAtom, ASSERT_NO_EXCEPTION);
+    RawPtr<Element> body = document->createElement("body", nullAtom, ASSERT_NO_EXCEPTION);
     html->appendChild(body);
 
-    RefPtrWillBeRawPtr<ShadowRoot> shadowRootY = head->createShadowRootInternal(ShadowRootType::V0, ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<ShadowRoot> shadowRootB = body->createShadowRootInternal(ShadowRootType::V0, ASSERT_NO_EXCEPTION);
+    RawPtr<ShadowRoot> shadowRootY = head->createShadowRootInternal(ShadowRootType::V0, ASSERT_NO_EXCEPTION);
+    RawPtr<ShadowRoot> shadowRootB = body->createShadowRootInternal(ShadowRootType::V0, ASSERT_NO_EXCEPTION);
 
-    RefPtrWillBeRawPtr<Element> divInY = document->createElement("div", nullAtom, ASSERT_NO_EXCEPTION);
+    RawPtr<Element> divInY = document->createElement("div", nullAtom, ASSERT_NO_EXCEPTION);
     shadowRootY->appendChild(divInY);
-    RefPtrWillBeRawPtr<ShadowRoot> shadowRootA = divInY->createShadowRootInternal(ShadowRootType::V0, ASSERT_NO_EXCEPTION);
+    RawPtr<ShadowRoot> shadowRootA = divInY->createShadowRootInternal(ShadowRootType::V0, ASSERT_NO_EXCEPTION);
 
     EXPECT_EQ(document.get(), shadowRootA->commonAncestorTreeScope(*shadowRootB));
     EXPECT_EQ(document.get(), shadowRootB->commonAncestorTreeScope(*shadowRootA));
@@ -87,8 +87,8 @@
 
 TEST(TreeScopeTest, CommonAncestorOfTreesInDifferentDocuments)
 {
-    RefPtrWillBeRawPtr<Document> document1 = Document::create();
-    RefPtrWillBeRawPtr<Document> document2 = Document::create();
+    RawPtr<Document> document1 = Document::create();
+    RawPtr<Document> document2 = Document::create();
     EXPECT_EQ(0, document1->commonAncestorTreeScope(*document2));
     EXPECT_EQ(0, document2->commonAncestorTreeScope(*document1));
 }
diff --git a/third_party/WebKit/Source/core/dom/TreeShared.h b/third_party/WebKit/Source/core/dom/TreeShared.h
index 96be95f..50b8147 100644
--- a/third_party/WebKit/Source/core/dom/TreeShared.h
+++ b/third_party/WebKit/Source/core/dom/TreeShared.h
@@ -32,7 +32,7 @@
 template<typename NodeType> void adopted(TreeShared<NodeType>*);
 #endif
 
-template<typename NodeType> class TreeShared : public NoBaseWillBeGarbageCollectedFinalized<NodeType> {
+template<typename NodeType> class TreeShared : public GarbageCollectedFinalized<NodeType> {
     WTF_MAKE_NONCOPYABLE(TreeShared);
 protected:
     TreeShared()
diff --git a/third_party/WebKit/Source/core/dom/TreeWalker.cpp b/third_party/WebKit/Source/core/dom/TreeWalker.cpp
index 9fc4177..1726bbb 100644
--- a/third_party/WebKit/Source/core/dom/TreeWalker.cpp
+++ b/third_party/WebKit/Source/core/dom/TreeWalker.cpp
@@ -32,19 +32,19 @@
 
 namespace blink {
 
-TreeWalker::TreeWalker(PassRefPtrWillBeRawPtr<Node> rootNode, unsigned whatToShow, PassRefPtrWillBeRawPtr<NodeFilter> filter)
+TreeWalker::TreeWalker(RawPtr<Node> rootNode, unsigned whatToShow, RawPtr<NodeFilter> filter)
     : NodeIteratorBase(rootNode, whatToShow, filter)
     , m_current(root())
 {
 }
 
-void TreeWalker::setCurrentNode(PassRefPtrWillBeRawPtr<Node> node)
+void TreeWalker::setCurrentNode(RawPtr<Node> node)
 {
     ASSERT(node);
     m_current = node;
 }
 
-inline Node* TreeWalker::setCurrent(PassRefPtrWillBeRawPtr<Node> node)
+inline Node* TreeWalker::setCurrent(RawPtr<Node> node)
 {
     m_current = node;
     return m_current.get();
@@ -52,7 +52,7 @@
 
 Node* TreeWalker::parentNode(ExceptionState& exceptionState)
 {
-    RefPtrWillBeRawPtr<Node> node = m_current;
+    RawPtr<Node> node = m_current;
     while (node != root()) {
         node = node->parentNode();
         if (!node)
@@ -68,7 +68,7 @@
 
 Node* TreeWalker::firstChild(ExceptionState& exceptionState)
 {
-    for (RefPtrWillBeRawPtr<Node> node = m_current->firstChild(); node; ) {
+    for (RawPtr<Node> node = m_current->firstChild(); node; ) {
         unsigned acceptNodeResult = acceptNode(node.get(), exceptionState);
         if (exceptionState.hadException())
             return 0;
@@ -101,7 +101,7 @@
 
 Node* TreeWalker::lastChild(ExceptionState& exceptionState)
 {
-    for (RefPtrWillBeRawPtr<Node> node = m_current->lastChild(); node; ) {
+    for (RawPtr<Node> node = m_current->lastChild(); node; ) {
         unsigned acceptNodeResult = acceptNode(node.get(), exceptionState);
         if (exceptionState.hadException())
             return 0;
@@ -134,11 +134,11 @@
 
 Node* TreeWalker::previousSibling(ExceptionState& exceptionState)
 {
-    RefPtrWillBeRawPtr<Node> node = m_current;
+    RawPtr<Node> node = m_current;
     if (node == root())
         return 0;
     while (1) {
-        for (RefPtrWillBeRawPtr<Node> sibling = node->previousSibling(); sibling; ) {
+        for (RawPtr<Node> sibling = node->previousSibling(); sibling; ) {
             unsigned acceptNodeResult = acceptNode(sibling.get(), exceptionState);
             if (exceptionState.hadException())
                 return 0;
@@ -171,11 +171,11 @@
 
 Node* TreeWalker::nextSibling(ExceptionState& exceptionState)
 {
-    RefPtrWillBeRawPtr<Node> node = m_current;
+    RawPtr<Node> node = m_current;
     if (node == root())
         return 0;
     while (1) {
-        for (RefPtrWillBeRawPtr<Node> sibling = node->nextSibling(); sibling; ) {
+        for (RawPtr<Node> sibling = node->nextSibling(); sibling; ) {
             unsigned acceptNodeResult = acceptNode(sibling.get(), exceptionState);
             if (exceptionState.hadException())
                 return 0;
@@ -208,7 +208,7 @@
 
 Node* TreeWalker::previousNode(ExceptionState& exceptionState)
 {
-    RefPtrWillBeRawPtr<Node> node = m_current;
+    RawPtr<Node> node = m_current;
     while (node != root()) {
         while (Node* previousSibling = node->previousSibling()) {
             node = previousSibling;
@@ -247,7 +247,7 @@
 
 Node* TreeWalker::nextNode(ExceptionState& exceptionState)
 {
-    RefPtrWillBeRawPtr<Node> node = m_current;
+    RawPtr<Node> node = m_current;
 Children:
     while (Node* firstChild = node->firstChild()) {
         node = firstChild;
diff --git a/third_party/WebKit/Source/core/dom/TreeWalker.h b/third_party/WebKit/Source/core/dom/TreeWalker.h
index 8ef7d6d6..a9b4447 100644
--- a/third_party/WebKit/Source/core/dom/TreeWalker.h
+++ b/third_party/WebKit/Source/core/dom/TreeWalker.h
@@ -36,17 +36,17 @@
 
 class ExceptionState;
 
-class TreeWalker final : public RefCountedWillBeGarbageCollected<TreeWalker>, public ScriptWrappable, public NodeIteratorBase {
+class TreeWalker final : public GarbageCollected<TreeWalker>, public ScriptWrappable, public NodeIteratorBase {
     DEFINE_WRAPPERTYPEINFO();
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(TreeWalker);
+    USING_GARBAGE_COLLECTED_MIXIN(TreeWalker);
 public:
-    static PassRefPtrWillBeRawPtr<TreeWalker> create(PassRefPtrWillBeRawPtr<Node> rootNode, unsigned whatToShow, PassRefPtrWillBeRawPtr<NodeFilter> filter)
+    static RawPtr<TreeWalker> create(RawPtr<Node> rootNode, unsigned whatToShow, RawPtr<NodeFilter> filter)
     {
-        return adoptRefWillBeNoop(new TreeWalker(rootNode, whatToShow, filter));
+        return new TreeWalker(rootNode, whatToShow, filter);
     }
 
     Node* currentNode() const { return m_current.get(); }
-    void setCurrentNode(PassRefPtrWillBeRawPtr<Node>);
+    void setCurrentNode(RawPtr<Node>);
 
     Node* parentNode(ExceptionState&);
     Node* firstChild(ExceptionState&);
@@ -59,11 +59,11 @@
     DECLARE_TRACE();
 
 private:
-    TreeWalker(PassRefPtrWillBeRawPtr<Node>, unsigned whatToShow, PassRefPtrWillBeRawPtr<NodeFilter>);
+    TreeWalker(RawPtr<Node>, unsigned whatToShow, RawPtr<NodeFilter>);
 
-    Node* setCurrent(PassRefPtrWillBeRawPtr<Node>);
+    Node* setCurrent(RawPtr<Node>);
 
-    RefPtrWillBeMember<Node> m_current;
+    Member<Node> m_current;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/dom/UserActionElementSet.h b/third_party/WebKit/Source/core/dom/UserActionElementSet.h
index 647d5dc..79d2a54 100644
--- a/third_party/WebKit/Source/core/dom/UserActionElementSet.h
+++ b/third_party/WebKit/Source/core/dom/UserActionElementSet.h
@@ -77,7 +77,7 @@
     void clearFlags(Element*, unsigned);
     bool hasFlags(const Element*, unsigned flags) const;
 
-    typedef WillBeHeapHashMap<RefPtrWillBeMember<Element>, unsigned> ElementFlagMap;
+    typedef HeapHashMap<Member<Element>, unsigned> ElementFlagMap;
     ElementFlagMap m_elements;
 };
 
diff --git a/third_party/WebKit/Source/core/dom/VisitedLinkState.h b/third_party/WebKit/Source/core/dom/VisitedLinkState.h
index 0be7176..ebaa8319 100644
--- a/third_party/WebKit/Source/core/dom/VisitedLinkState.h
+++ b/third_party/WebKit/Source/core/dom/VisitedLinkState.h
@@ -38,12 +38,11 @@
 
 class Document;
 
-class VisitedLinkState : public NoBaseWillBeGarbageCollectedFinalized<VisitedLinkState> {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(VisitedLinkState);
+class VisitedLinkState : public GarbageCollectedFinalized<VisitedLinkState> {
 public:
-    static PassOwnPtrWillBeRawPtr<VisitedLinkState> create(const Document& document)
+    static RawPtr<VisitedLinkState> create(const Document& document)
     {
-        return adoptPtrWillBeNoop(new VisitedLinkState(document));
+        return new VisitedLinkState(document);
     }
 
     void invalidateStyleForAllLinks(bool invalidateVisitedLinkHashes);
@@ -64,7 +63,7 @@
 
     EInsideLink determineLinkStateSlowCase(const Element&);
 
-    RawPtrWillBeMember<const Document> m_document;
+    Member<const Document> m_document;
     HashSet<LinkHash, LinkHashHash> m_linksCheckedForVisitedState;
 };
 
diff --git a/third_party/WebKit/Source/core/dom/XMLDocument.h b/third_party/WebKit/Source/core/dom/XMLDocument.h
index abd24082..7837037 100644
--- a/third_party/WebKit/Source/core/dom/XMLDocument.h
+++ b/third_party/WebKit/Source/core/dom/XMLDocument.h
@@ -34,19 +34,19 @@
 class XMLDocument final : public Document {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<XMLDocument> create(const DocumentInit& initializer = DocumentInit())
+    static RawPtr<XMLDocument> create(const DocumentInit& initializer = DocumentInit())
     {
-        return adoptRefWillBeNoop(new XMLDocument(initializer, XMLDocumentClass));
+        return new XMLDocument(initializer, XMLDocumentClass);
     }
 
-    static PassRefPtrWillBeRawPtr<XMLDocument> createXHTML(const DocumentInit& initializer = DocumentInit())
+    static RawPtr<XMLDocument> createXHTML(const DocumentInit& initializer = DocumentInit())
     {
-        return adoptRefWillBeNoop(new XMLDocument(initializer, XMLDocumentClass | XHTMLDocumentClass));
+        return new XMLDocument(initializer, XMLDocumentClass | XHTMLDocumentClass);
     }
 
-    static PassRefPtrWillBeRawPtr<XMLDocument> createSVG(const DocumentInit& initializer = DocumentInit())
+    static RawPtr<XMLDocument> createSVG(const DocumentInit& initializer = DocumentInit())
     {
-        return adoptRefWillBeNoop(new XMLDocument(initializer, XMLDocumentClass | SVGDocumentClass));
+        return new XMLDocument(initializer, XMLDocumentClass | SVGDocumentClass);
     }
 
 protected:
diff --git a/third_party/WebKit/Source/core/dom/custom/CustomElement.cpp b/third_party/WebKit/Source/core/dom/custom/CustomElement.cpp
index 36d0f12..b60e60c9 100644
--- a/third_party/WebKit/Source/core/dom/custom/CustomElement.cpp
+++ b/third_party/WebKit/Source/core/dom/custom/CustomElement.cpp
@@ -102,9 +102,9 @@
     return false;
 }
 
-void CustomElement::define(Element* element, PassRefPtrWillBeRawPtr<CustomElementDefinition> passDefinition)
+void CustomElement::define(Element* element, RawPtr<CustomElementDefinition> passDefinition)
 {
-    RefPtrWillBeRawPtr<CustomElementDefinition> definition(passDefinition);
+    RawPtr<CustomElementDefinition> definition(passDefinition);
 
     switch (element->getCustomElementState()) {
     case Element::NotCustomElement:
diff --git a/third_party/WebKit/Source/core/dom/custom/CustomElement.h b/third_party/WebKit/Source/core/dom/custom/CustomElement.h
index 470f7a6..c277ebea 100644
--- a/third_party/WebKit/Source/core/dom/custom/CustomElement.h
+++ b/third_party/WebKit/Source/core/dom/custom/CustomElement.h
@@ -63,7 +63,7 @@
     static void didFinishLoadingImport(Document& master);
 
     // API for registration contexts
-    static void define(Element*, PassRefPtrWillBeRawPtr<CustomElementDefinition>);
+    static void define(Element*, RawPtr<CustomElementDefinition>);
 
     // API for Element to kick off changes
 
diff --git a/third_party/WebKit/Source/core/dom/custom/CustomElementAsyncImportMicrotaskQueue.cpp b/third_party/WebKit/Source/core/dom/custom/CustomElementAsyncImportMicrotaskQueue.cpp
index 8ee92d4..925c054 100644
--- a/third_party/WebKit/Source/core/dom/custom/CustomElementAsyncImportMicrotaskQueue.cpp
+++ b/third_party/WebKit/Source/core/dom/custom/CustomElementAsyncImportMicrotaskQueue.cpp
@@ -34,14 +34,14 @@
 
 namespace blink {
 
-void CustomElementAsyncImportMicrotaskQueue::enqueue(PassOwnPtrWillBeRawPtr<CustomElementMicrotaskStep> step)
+void CustomElementAsyncImportMicrotaskQueue::enqueue(RawPtr<CustomElementMicrotaskStep> step)
 {
     m_queue.append(step);
 }
 
 void CustomElementAsyncImportMicrotaskQueue::doDispatch()
 {
-    WillBeHeapVector<OwnPtrWillBeMember<CustomElementMicrotaskStep>> remaining;
+    HeapVector<Member<CustomElementMicrotaskStep>> remaining;
 
     for (unsigned i = 0; i < m_queue.size(); ++i) {
         if (CustomElementMicrotaskStep::Processing == m_queue[i]->process())
diff --git a/third_party/WebKit/Source/core/dom/custom/CustomElementAsyncImportMicrotaskQueue.h b/third_party/WebKit/Source/core/dom/custom/CustomElementAsyncImportMicrotaskQueue.h
index 09c325e18..d22960ad 100644
--- a/third_party/WebKit/Source/core/dom/custom/CustomElementAsyncImportMicrotaskQueue.h
+++ b/third_party/WebKit/Source/core/dom/custom/CustomElementAsyncImportMicrotaskQueue.h
@@ -37,9 +37,9 @@
 
 class CustomElementAsyncImportMicrotaskQueue : public CustomElementMicrotaskQueueBase {
 public:
-    static PassRefPtrWillBeRawPtr<CustomElementAsyncImportMicrotaskQueue> create() { return adoptRefWillBeNoop(new CustomElementAsyncImportMicrotaskQueue()); }
+    static RawPtr<CustomElementAsyncImportMicrotaskQueue> create() { return new CustomElementAsyncImportMicrotaskQueue(); }
 
-    void enqueue(PassOwnPtrWillBeRawPtr<CustomElementMicrotaskStep>);
+    void enqueue(RawPtr<CustomElementMicrotaskStep>);
 
 private:
     CustomElementAsyncImportMicrotaskQueue() { }
diff --git a/third_party/WebKit/Source/core/dom/custom/CustomElementCallbackInvocation.cpp b/third_party/WebKit/Source/core/dom/custom/CustomElementCallbackInvocation.cpp
index d98ffdf..1a1c7afc 100644
--- a/third_party/WebKit/Source/core/dom/custom/CustomElementCallbackInvocation.cpp
+++ b/third_party/WebKit/Source/core/dom/custom/CustomElementCallbackInvocation.cpp
@@ -38,7 +38,7 @@
 
 class AttachedDetachedInvocation final : public CustomElementCallbackInvocation {
 public:
-    AttachedDetachedInvocation(PassRefPtrWillBeRawPtr<CustomElementLifecycleCallbacks>, CustomElementLifecycleCallbacks::CallbackType which);
+    AttachedDetachedInvocation(RawPtr<CustomElementLifecycleCallbacks>, CustomElementLifecycleCallbacks::CallbackType which);
 
 private:
     void dispatch(Element*) override;
@@ -46,7 +46,7 @@
     CustomElementLifecycleCallbacks::CallbackType m_which;
 };
 
-AttachedDetachedInvocation::AttachedDetachedInvocation(PassRefPtrWillBeRawPtr<CustomElementLifecycleCallbacks> callbacks, CustomElementLifecycleCallbacks::CallbackType which)
+AttachedDetachedInvocation::AttachedDetachedInvocation(RawPtr<CustomElementLifecycleCallbacks> callbacks, CustomElementLifecycleCallbacks::CallbackType which)
     : CustomElementCallbackInvocation(callbacks)
     , m_which(which)
 {
@@ -69,7 +69,7 @@
 
 class AttributeChangedInvocation final : public CustomElementCallbackInvocation {
 public:
-    AttributeChangedInvocation(PassRefPtrWillBeRawPtr<CustomElementLifecycleCallbacks>, const AtomicString& name, const AtomicString& oldValue, const AtomicString& newValue);
+    AttributeChangedInvocation(RawPtr<CustomElementLifecycleCallbacks>, const AtomicString& name, const AtomicString& oldValue, const AtomicString& newValue);
 
 private:
     void dispatch(Element*) override;
@@ -79,7 +79,7 @@
     AtomicString m_newValue;
 };
 
-AttributeChangedInvocation::AttributeChangedInvocation(PassRefPtrWillBeRawPtr<CustomElementLifecycleCallbacks> callbacks, const AtomicString& name, const AtomicString& oldValue, const AtomicString& newValue)
+AttributeChangedInvocation::AttributeChangedInvocation(RawPtr<CustomElementLifecycleCallbacks> callbacks, const AtomicString& name, const AtomicString& oldValue, const AtomicString& newValue)
     : CustomElementCallbackInvocation(callbacks)
     , m_name(name)
     , m_oldValue(oldValue)
@@ -94,7 +94,7 @@
 
 class CreatedInvocation final : public CustomElementCallbackInvocation {
 public:
-    explicit CreatedInvocation(PassRefPtrWillBeRawPtr<CustomElementLifecycleCallbacks> callbacks)
+    explicit CreatedInvocation(RawPtr<CustomElementLifecycleCallbacks> callbacks)
         : CustomElementCallbackInvocation(callbacks)
     {
     }
@@ -111,24 +111,24 @@
     callbacks()->created(element);
 }
 
-PassOwnPtrWillBeRawPtr<CustomElementCallbackInvocation> CustomElementCallbackInvocation::createInvocation(PassRefPtrWillBeRawPtr<CustomElementLifecycleCallbacks> callbacks, CustomElementLifecycleCallbacks::CallbackType which)
+RawPtr<CustomElementCallbackInvocation> CustomElementCallbackInvocation::createInvocation(RawPtr<CustomElementLifecycleCallbacks> callbacks, CustomElementLifecycleCallbacks::CallbackType which)
 {
     switch (which) {
     case CustomElementLifecycleCallbacks::CreatedCallback:
-        return adoptPtrWillBeNoop(new CreatedInvocation(callbacks));
+        return new CreatedInvocation(callbacks);
 
     case CustomElementLifecycleCallbacks::AttachedCallback:
     case CustomElementLifecycleCallbacks::DetachedCallback:
-        return adoptPtrWillBeNoop(new AttachedDetachedInvocation(callbacks, which));
+        return new AttachedDetachedInvocation(callbacks, which);
     default:
         ASSERT_NOT_REACHED();
         return nullptr;
     }
 }
 
-PassOwnPtrWillBeRawPtr<CustomElementCallbackInvocation> CustomElementCallbackInvocation::createAttributeChangedInvocation(PassRefPtrWillBeRawPtr<CustomElementLifecycleCallbacks> callbacks, const AtomicString& name, const AtomicString& oldValue, const AtomicString& newValue)
+RawPtr<CustomElementCallbackInvocation> CustomElementCallbackInvocation::createAttributeChangedInvocation(RawPtr<CustomElementLifecycleCallbacks> callbacks, const AtomicString& name, const AtomicString& oldValue, const AtomicString& newValue)
 {
-    return adoptPtrWillBeNoop(new AttributeChangedInvocation(callbacks, name, oldValue, newValue));
+    return new AttributeChangedInvocation(callbacks, name, oldValue, newValue);
 }
 
 DEFINE_TRACE(CustomElementCallbackInvocation)
diff --git a/third_party/WebKit/Source/core/dom/custom/CustomElementCallbackInvocation.h b/third_party/WebKit/Source/core/dom/custom/CustomElementCallbackInvocation.h
index 0510c705..ede43ec 100644
--- a/third_party/WebKit/Source/core/dom/custom/CustomElementCallbackInvocation.h
+++ b/third_party/WebKit/Source/core/dom/custom/CustomElementCallbackInvocation.h
@@ -43,11 +43,11 @@
 class CustomElementCallbackInvocation : public CustomElementProcessingStep {
     WTF_MAKE_NONCOPYABLE(CustomElementCallbackInvocation);
 public:
-    static PassOwnPtrWillBeRawPtr<CustomElementCallbackInvocation> createInvocation(PassRefPtrWillBeRawPtr<CustomElementLifecycleCallbacks>, CustomElementLifecycleCallbacks::CallbackType);
-    static PassOwnPtrWillBeRawPtr<CustomElementCallbackInvocation> createAttributeChangedInvocation(PassRefPtrWillBeRawPtr<CustomElementLifecycleCallbacks>, const AtomicString& name, const AtomicString& oldValue, const AtomicString& newValue);
+    static RawPtr<CustomElementCallbackInvocation> createInvocation(RawPtr<CustomElementLifecycleCallbacks>, CustomElementLifecycleCallbacks::CallbackType);
+    static RawPtr<CustomElementCallbackInvocation> createAttributeChangedInvocation(RawPtr<CustomElementLifecycleCallbacks>, const AtomicString& name, const AtomicString& oldValue, const AtomicString& newValue);
 
 protected:
-    CustomElementCallbackInvocation(PassRefPtrWillBeRawPtr<CustomElementLifecycleCallbacks> callbacks)
+    CustomElementCallbackInvocation(RawPtr<CustomElementLifecycleCallbacks> callbacks)
         : m_callbacks(callbacks)
     {
     }
@@ -57,7 +57,7 @@
     DECLARE_VIRTUAL_TRACE();
 
 private:
-    RefPtrWillBeMember<CustomElementLifecycleCallbacks> m_callbacks;
+    Member<CustomElementLifecycleCallbacks> m_callbacks;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/dom/custom/CustomElementCallbackQueue.cpp b/third_party/WebKit/Source/core/dom/custom/CustomElementCallbackQueue.cpp
index 7735a219..f3c55061 100644
--- a/third_party/WebKit/Source/core/dom/custom/CustomElementCallbackQueue.cpp
+++ b/third_party/WebKit/Source/core/dom/custom/CustomElementCallbackQueue.cpp
@@ -34,12 +34,12 @@
 
 namespace blink {
 
-PassOwnPtrWillBeRawPtr<CustomElementCallbackQueue> CustomElementCallbackQueue::create(PassRefPtrWillBeRawPtr<Element> element)
+RawPtr<CustomElementCallbackQueue> CustomElementCallbackQueue::create(RawPtr<Element> element)
 {
-    return adoptPtrWillBeNoop(new CustomElementCallbackQueue(element));
+    return new CustomElementCallbackQueue(element);
 }
 
-CustomElementCallbackQueue::CustomElementCallbackQueue(PassRefPtrWillBeRawPtr<Element> element)
+CustomElementCallbackQueue::CustomElementCallbackQueue(RawPtr<Element> element)
     : m_element(element)
     , m_owner(-1)
     , m_index(0)
diff --git a/third_party/WebKit/Source/core/dom/custom/CustomElementCallbackQueue.h b/third_party/WebKit/Source/core/dom/custom/CustomElementCallbackQueue.h
index 230fbba..45f1e0c3 100644
--- a/third_party/WebKit/Source/core/dom/custom/CustomElementCallbackQueue.h
+++ b/third_party/WebKit/Source/core/dom/custom/CustomElementCallbackQueue.h
@@ -44,11 +44,10 @@
 
 // FIXME: Rename this because it contains resolution and upgrade as
 // well as callbacks.
-class CustomElementCallbackQueue : public NoBaseWillBeGarbageCollectedFinalized<CustomElementCallbackQueue> {
+class CustomElementCallbackQueue : public GarbageCollectedFinalized<CustomElementCallbackQueue> {
     WTF_MAKE_NONCOPYABLE(CustomElementCallbackQueue);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(CustomElementCallbackQueue);
 public:
-    static PassOwnPtrWillBeRawPtr<CustomElementCallbackQueue> create(PassRefPtrWillBeRawPtr<Element>);
+    static RawPtr<CustomElementCallbackQueue> create(RawPtr<Element>);
 
     typedef int ElementQueueId;
     ElementQueueId owner() const { return m_owner; }
@@ -63,16 +62,16 @@
 
     bool processInElementQueue(ElementQueueId);
 
-    void append(PassOwnPtrWillBeRawPtr<CustomElementProcessingStep> invocation) { m_queue.append(invocation); }
+    void append(RawPtr<CustomElementProcessingStep> invocation) { m_queue.append(invocation); }
     bool inCreatedCallback() const { return m_inCreatedCallback; }
 
     DECLARE_TRACE();
 
 private:
-    explicit CustomElementCallbackQueue(PassRefPtrWillBeRawPtr<Element>);
+    explicit CustomElementCallbackQueue(RawPtr<Element>);
 
-    RefPtrWillBeMember<Element> m_element;
-    WillBeHeapVector<OwnPtrWillBeMember<CustomElementProcessingStep>> m_queue;
+    Member<Element> m_element;
+    HeapVector<Member<CustomElementProcessingStep>> m_queue;
     ElementQueueId m_owner;
     size_t m_index;
     bool m_inCreatedCallback;
diff --git a/third_party/WebKit/Source/core/dom/custom/CustomElementDefinition.cpp b/third_party/WebKit/Source/core/dom/custom/CustomElementDefinition.cpp
index b071a54..53a0461 100644
--- a/third_party/WebKit/Source/core/dom/custom/CustomElementDefinition.cpp
+++ b/third_party/WebKit/Source/core/dom/custom/CustomElementDefinition.cpp
@@ -32,12 +32,12 @@
 
 namespace blink {
 
-PassRefPtrWillBeRawPtr<CustomElementDefinition> CustomElementDefinition::create(const CustomElementDescriptor& descriptor, PassRefPtrWillBeRawPtr<CustomElementLifecycleCallbacks> callbacks)
+RawPtr<CustomElementDefinition> CustomElementDefinition::create(const CustomElementDescriptor& descriptor, RawPtr<CustomElementLifecycleCallbacks> callbacks)
 {
-    return adoptRefWillBeNoop(new CustomElementDefinition(descriptor, callbacks));
+    return new CustomElementDefinition(descriptor, callbacks);
 }
 
-CustomElementDefinition::CustomElementDefinition(const CustomElementDescriptor& descriptor, PassRefPtrWillBeRawPtr<CustomElementLifecycleCallbacks> callbacks)
+CustomElementDefinition::CustomElementDefinition(const CustomElementDescriptor& descriptor, RawPtr<CustomElementLifecycleCallbacks> callbacks)
     : m_descriptor(descriptor)
     , m_callbacks(callbacks)
 {
diff --git a/third_party/WebKit/Source/core/dom/custom/CustomElementDefinition.h b/third_party/WebKit/Source/core/dom/custom/CustomElementDefinition.h
index d8b73bd..3e6b25d 100644
--- a/third_party/WebKit/Source/core/dom/custom/CustomElementDefinition.h
+++ b/third_party/WebKit/Source/core/dom/custom/CustomElementDefinition.h
@@ -38,9 +38,9 @@
 
 namespace blink {
 
-class CustomElementDefinition final : public RefCountedWillBeGarbageCollectedFinalized<CustomElementDefinition> {
+class CustomElementDefinition final : public GarbageCollectedFinalized<CustomElementDefinition> {
 public:
-    static PassRefPtrWillBeRawPtr<CustomElementDefinition> create(const CustomElementDescriptor&, PassRefPtrWillBeRawPtr<CustomElementLifecycleCallbacks>);
+    static RawPtr<CustomElementDefinition> create(const CustomElementDescriptor&, RawPtr<CustomElementLifecycleCallbacks>);
 
     const CustomElementDescriptor& descriptor() const { return m_descriptor; }
     CustomElementLifecycleCallbacks* callbacks() const { return m_callbacks.get(); }
@@ -48,10 +48,10 @@
     DECLARE_TRACE();
 
 private:
-    CustomElementDefinition(const CustomElementDescriptor&, PassRefPtrWillBeRawPtr<CustomElementLifecycleCallbacks>);
+    CustomElementDefinition(const CustomElementDescriptor&, RawPtr<CustomElementLifecycleCallbacks>);
 
     CustomElementDescriptor m_descriptor;
-    RefPtrWillBeMember<CustomElementLifecycleCallbacks> m_callbacks;
+    Member<CustomElementLifecycleCallbacks> m_callbacks;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/dom/custom/CustomElementLifecycleCallbacks.h b/third_party/WebKit/Source/core/dom/custom/CustomElementLifecycleCallbacks.h
index ef2db17..b9b91e8 100644
--- a/third_party/WebKit/Source/core/dom/custom/CustomElementLifecycleCallbacks.h
+++ b/third_party/WebKit/Source/core/dom/custom/CustomElementLifecycleCallbacks.h
@@ -39,7 +39,7 @@
 
 class Element;
 
-class CustomElementLifecycleCallbacks : public RefCountedWillBeGarbageCollectedFinalized<CustomElementLifecycleCallbacks> {
+class CustomElementLifecycleCallbacks : public GarbageCollectedFinalized<CustomElementLifecycleCallbacks> {
 public:
     virtual ~CustomElementLifecycleCallbacks() { }
 
diff --git a/third_party/WebKit/Source/core/dom/custom/CustomElementMicrotaskDispatcher.cpp b/third_party/WebKit/Source/core/dom/custom/CustomElementMicrotaskDispatcher.cpp
index 50e3ba0..3b1f6e6d 100644
--- a/third_party/WebKit/Source/core/dom/custom/CustomElementMicrotaskDispatcher.cpp
+++ b/third_party/WebKit/Source/core/dom/custom/CustomElementMicrotaskDispatcher.cpp
@@ -20,11 +20,9 @@
 {
 }
 
-DEFINE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(CustomElementMicrotaskDispatcher)
-
 CustomElementMicrotaskDispatcher& CustomElementMicrotaskDispatcher::instance()
 {
-    DEFINE_STATIC_LOCAL(OwnPtrWillBePersistent<CustomElementMicrotaskDispatcher>, instance, (adoptPtrWillBeNoop(new CustomElementMicrotaskDispatcher())));
+    DEFINE_STATIC_LOCAL(Persistent<CustomElementMicrotaskDispatcher>, instance, (new CustomElementMicrotaskDispatcher()));
     return *instance;
 }
 
diff --git a/third_party/WebKit/Source/core/dom/custom/CustomElementMicrotaskDispatcher.h b/third_party/WebKit/Source/core/dom/custom/CustomElementMicrotaskDispatcher.h
index 6a07de27..a81801b1 100644
--- a/third_party/WebKit/Source/core/dom/custom/CustomElementMicrotaskDispatcher.h
+++ b/third_party/WebKit/Source/core/dom/custom/CustomElementMicrotaskDispatcher.h
@@ -14,10 +14,8 @@
 
 class CustomElementCallbackQueue;
 
-class CustomElementMicrotaskDispatcher final : public NoBaseWillBeGarbageCollected<CustomElementMicrotaskDispatcher> {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(CustomElementMicrotaskDispatcher);
+class CustomElementMicrotaskDispatcher final : public GarbageCollected<CustomElementMicrotaskDispatcher> {
     WTF_MAKE_NONCOPYABLE(CustomElementMicrotaskDispatcher);
-    DECLARE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(CustomElementMicrotaskDispatcher);
 public:
     static CustomElementMicrotaskDispatcher& instance();
 
@@ -43,7 +41,7 @@
         DispatchingCallbacks
     } m_phase;
 
-    WillBeHeapVector<RawPtrWillBeMember<CustomElementCallbackQueue>> m_elements;
+    HeapVector<Member<CustomElementCallbackQueue>> m_elements;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/dom/custom/CustomElementMicrotaskImportStep.cpp b/third_party/WebKit/Source/core/dom/custom/CustomElementMicrotaskImportStep.cpp
index 1bf757a8..372bf9d4 100644
--- a/third_party/WebKit/Source/core/dom/custom/CustomElementMicrotaskImportStep.cpp
+++ b/third_party/WebKit/Source/core/dom/custom/CustomElementMicrotaskImportStep.cpp
@@ -38,9 +38,9 @@
 
 namespace blink {
 
-PassOwnPtrWillBeRawPtr<CustomElementMicrotaskImportStep> CustomElementMicrotaskImportStep::create(HTMLImportChild* import)
+RawPtr<CustomElementMicrotaskImportStep> CustomElementMicrotaskImportStep::create(HTMLImportChild* import)
 {
-    return adoptPtrWillBeNoop(new CustomElementMicrotaskImportStep(import));
+    return new CustomElementMicrotaskImportStep(import);
 }
 
 CustomElementMicrotaskImportStep::CustomElementMicrotaskImportStep(HTMLImportChild* import)
diff --git a/third_party/WebKit/Source/core/dom/custom/CustomElementMicrotaskImportStep.h b/third_party/WebKit/Source/core/dom/custom/CustomElementMicrotaskImportStep.h
index ec042e1e..37d81b3 100644
--- a/third_party/WebKit/Source/core/dom/custom/CustomElementMicrotaskImportStep.h
+++ b/third_party/WebKit/Source/core/dom/custom/CustomElementMicrotaskImportStep.h
@@ -52,7 +52,7 @@
 // import isn't "ready" (finished parsing and running script.)
 class CustomElementMicrotaskImportStep final : public CustomElementMicrotaskStep {
 public:
-    static PassOwnPtrWillBeRawPtr<CustomElementMicrotaskImportStep> create(HTMLImportChild*);
+    static RawPtr<CustomElementMicrotaskImportStep> create(HTMLImportChild*);
     ~CustomElementMicrotaskImportStep() override;
 
     // API for HTML Imports
@@ -76,11 +76,11 @@
 #if !defined(NDEBUG)
     void show(unsigned indent) override;
 #endif
-    WeakPtrWillBeWeakMember<HTMLImportChild> m_import;
+    WeakMember<HTMLImportChild> m_import;
 #if !ENABLE(OILPAN)
     WeakPtrFactory<CustomElementMicrotaskImportStep> m_weakFactory;
 #endif
-    RefPtrWillBeMember<CustomElementSyncMicrotaskQueue> m_queue;
+    Member<CustomElementSyncMicrotaskQueue> m_queue;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/dom/custom/CustomElementMicrotaskQueueBase.h b/third_party/WebKit/Source/core/dom/custom/CustomElementMicrotaskQueueBase.h
index 0990fde1d..ccd87d5 100644
--- a/third_party/WebKit/Source/core/dom/custom/CustomElementMicrotaskQueueBase.h
+++ b/third_party/WebKit/Source/core/dom/custom/CustomElementMicrotaskQueueBase.h
@@ -16,7 +16,7 @@
 
 namespace blink {
 
-class CustomElementMicrotaskQueueBase : public RefCountedWillBeGarbageCollectedFinalized<CustomElementMicrotaskQueueBase> {
+class CustomElementMicrotaskQueueBase : public GarbageCollectedFinalized<CustomElementMicrotaskQueueBase> {
     WTF_MAKE_NONCOPYABLE(CustomElementMicrotaskQueueBase);
 public:
     virtual ~CustomElementMicrotaskQueueBase() { }
@@ -34,7 +34,7 @@
     CustomElementMicrotaskQueueBase() : m_inDispatch(false) { }
     virtual void doDispatch() = 0;
 
-    WillBeHeapVector<OwnPtrWillBeMember<CustomElementMicrotaskStep>> m_queue;
+    HeapVector<Member<CustomElementMicrotaskStep>> m_queue;
     bool m_inDispatch;
 };
 
diff --git a/third_party/WebKit/Source/core/dom/custom/CustomElementMicrotaskResolutionStep.cpp b/third_party/WebKit/Source/core/dom/custom/CustomElementMicrotaskResolutionStep.cpp
index 8502d0b..435732f 100644
--- a/third_party/WebKit/Source/core/dom/custom/CustomElementMicrotaskResolutionStep.cpp
+++ b/third_party/WebKit/Source/core/dom/custom/CustomElementMicrotaskResolutionStep.cpp
@@ -35,12 +35,12 @@
 
 namespace blink {
 
-PassOwnPtrWillBeRawPtr<CustomElementMicrotaskResolutionStep> CustomElementMicrotaskResolutionStep::create(PassRefPtrWillBeRawPtr<CustomElementRegistrationContext> context, PassRefPtrWillBeRawPtr<Element> element, const CustomElementDescriptor& descriptor)
+RawPtr<CustomElementMicrotaskResolutionStep> CustomElementMicrotaskResolutionStep::create(RawPtr<CustomElementRegistrationContext> context, RawPtr<Element> element, const CustomElementDescriptor& descriptor)
 {
-    return adoptPtrWillBeNoop(new CustomElementMicrotaskResolutionStep(context, element, descriptor));
+    return new CustomElementMicrotaskResolutionStep(context, element, descriptor);
 }
 
-CustomElementMicrotaskResolutionStep::CustomElementMicrotaskResolutionStep(PassRefPtrWillBeRawPtr<CustomElementRegistrationContext> context, PassRefPtrWillBeRawPtr<Element> element, const CustomElementDescriptor& descriptor)
+CustomElementMicrotaskResolutionStep::CustomElementMicrotaskResolutionStep(RawPtr<CustomElementRegistrationContext> context, RawPtr<Element> element, const CustomElementDescriptor& descriptor)
     : m_context(context)
     , m_element(element)
     , m_descriptor(descriptor)
diff --git a/third_party/WebKit/Source/core/dom/custom/CustomElementMicrotaskResolutionStep.h b/third_party/WebKit/Source/core/dom/custom/CustomElementMicrotaskResolutionStep.h
index 5e3e17a..626122f 100644
--- a/third_party/WebKit/Source/core/dom/custom/CustomElementMicrotaskResolutionStep.h
+++ b/third_party/WebKit/Source/core/dom/custom/CustomElementMicrotaskResolutionStep.h
@@ -45,14 +45,14 @@
 
 class CustomElementMicrotaskResolutionStep final : public CustomElementMicrotaskStep {
 public:
-    static PassOwnPtrWillBeRawPtr<CustomElementMicrotaskResolutionStep> create(PassRefPtrWillBeRawPtr<CustomElementRegistrationContext>, PassRefPtrWillBeRawPtr<Element>, const CustomElementDescriptor&);
+    static RawPtr<CustomElementMicrotaskResolutionStep> create(RawPtr<CustomElementRegistrationContext>, RawPtr<Element>, const CustomElementDescriptor&);
 
     ~CustomElementMicrotaskResolutionStep() override;
 
     DECLARE_VIRTUAL_TRACE();
 
 private:
-    CustomElementMicrotaskResolutionStep(PassRefPtrWillBeRawPtr<CustomElementRegistrationContext>, PassRefPtrWillBeRawPtr<Element>, const CustomElementDescriptor&);
+    CustomElementMicrotaskResolutionStep(RawPtr<CustomElementRegistrationContext>, RawPtr<Element>, const CustomElementDescriptor&);
 
     Result process() override;
 
@@ -60,8 +60,8 @@
     void show(unsigned indent) override;
 #endif
 
-    RefPtrWillBeMember<CustomElementRegistrationContext> m_context;
-    RefPtrWillBeMember<Element> m_element;
+    Member<CustomElementRegistrationContext> m_context;
+    Member<Element> m_element;
     CustomElementDescriptor m_descriptor;
 };
 
diff --git a/third_party/WebKit/Source/core/dom/custom/CustomElementMicrotaskRunQueue.cpp b/third_party/WebKit/Source/core/dom/custom/CustomElementMicrotaskRunQueue.cpp
index b1e66439..cb13d70b 100644
--- a/third_party/WebKit/Source/core/dom/custom/CustomElementMicrotaskRunQueue.cpp
+++ b/third_party/WebKit/Source/core/dom/custom/CustomElementMicrotaskRunQueue.cpp
@@ -11,8 +11,6 @@
 
 namespace blink {
 
-DEFINE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(CustomElementMicrotaskRunQueue)
-
 CustomElementMicrotaskRunQueue::CustomElementMicrotaskRunQueue()
     : m_syncQueue(CustomElementSyncMicrotaskQueue::create())
     , m_asyncQueue(CustomElementAsyncImportMicrotaskQueue::create())
@@ -23,7 +21,7 @@
 {
 }
 
-void CustomElementMicrotaskRunQueue::enqueue(HTMLImportLoader* parentLoader, PassOwnPtrWillBeRawPtr<CustomElementMicrotaskStep> step, bool importIsSync)
+void CustomElementMicrotaskRunQueue::enqueue(HTMLImportLoader* parentLoader, RawPtr<CustomElementMicrotaskStep> step, bool importIsSync)
 {
     if (importIsSync) {
         if (parentLoader)
@@ -57,7 +55,7 @@
 
 void CustomElementMicrotaskRunQueue::dispatch()
 {
-    RefPtrWillBeRawPtr<CustomElementMicrotaskRunQueue> protect(this);
+    RawPtr<CustomElementMicrotaskRunQueue> protect(this);
     m_dispatchIsPending = false;
     m_syncQueue->dispatch();
     if (m_syncQueue->isEmpty())
diff --git a/third_party/WebKit/Source/core/dom/custom/CustomElementMicrotaskRunQueue.h b/third_party/WebKit/Source/core/dom/custom/CustomElementMicrotaskRunQueue.h
index b531e27..0744dd2c 100644
--- a/third_party/WebKit/Source/core/dom/custom/CustomElementMicrotaskRunQueue.h
+++ b/third_party/WebKit/Source/core/dom/custom/CustomElementMicrotaskRunQueue.h
@@ -16,12 +16,11 @@
 class CustomElementMicrotaskStep;
 class HTMLImportLoader;
 
-class CustomElementMicrotaskRunQueue : public RefCountedWillBeGarbageCollectedFinalized<CustomElementMicrotaskRunQueue> {
-    DECLARE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(CustomElementMicrotaskRunQueue)
+class CustomElementMicrotaskRunQueue : public GarbageCollectedFinalized<CustomElementMicrotaskRunQueue> {
 public:
-    static PassRefPtrWillBeRawPtr<CustomElementMicrotaskRunQueue> create() { return adoptRefWillBeNoop(new CustomElementMicrotaskRunQueue()); }
+    static RawPtr<CustomElementMicrotaskRunQueue> create() { return new CustomElementMicrotaskRunQueue(); }
 
-    void enqueue(HTMLImportLoader* parentLoader, PassOwnPtrWillBeRawPtr<CustomElementMicrotaskStep>, bool importIsSync);
+    void enqueue(HTMLImportLoader* parentLoader, RawPtr<CustomElementMicrotaskStep>, bool importIsSync);
     void requestDispatchIfNeeded();
     bool isEmpty() const;
 
@@ -32,8 +31,8 @@
 
     void dispatch();
 
-    RefPtrWillBeMember<CustomElementSyncMicrotaskQueue> m_syncQueue;
-    RefPtrWillBeMember<CustomElementAsyncImportMicrotaskQueue> m_asyncQueue;
+    Member<CustomElementSyncMicrotaskQueue> m_syncQueue;
+    Member<CustomElementAsyncImportMicrotaskQueue> m_asyncQueue;
     bool m_dispatchIsPending;
 #if !ENABLE(OILPAN)
     WeakPtrFactory<CustomElementMicrotaskRunQueue> m_weakFactory;
diff --git a/third_party/WebKit/Source/core/dom/custom/CustomElementMicrotaskStep.h b/third_party/WebKit/Source/core/dom/custom/CustomElementMicrotaskStep.h
index 2b1a8e73..8a18064c 100644
--- a/third_party/WebKit/Source/core/dom/custom/CustomElementMicrotaskStep.h
+++ b/third_party/WebKit/Source/core/dom/custom/CustomElementMicrotaskStep.h
@@ -36,8 +36,7 @@
 
 namespace blink {
 
-class CustomElementMicrotaskStep : public NoBaseWillBeGarbageCollectedFinalized<CustomElementMicrotaskStep> {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(CustomElementMicrotaskStep);
+class CustomElementMicrotaskStep : public GarbageCollectedFinalized<CustomElementMicrotaskStep> {
     WTF_MAKE_NONCOPYABLE(CustomElementMicrotaskStep);
 public:
     CustomElementMicrotaskStep() { }
diff --git a/third_party/WebKit/Source/core/dom/custom/CustomElementObserver.cpp b/third_party/WebKit/Source/core/dom/custom/CustomElementObserver.cpp
index 573ff69..139d74d2 100644
--- a/third_party/WebKit/Source/core/dom/custom/CustomElementObserver.cpp
+++ b/third_party/WebKit/Source/core/dom/custom/CustomElementObserver.cpp
@@ -36,11 +36,11 @@
 
 // Maps elements to the observer watching them. At most one per
 // element at a time.
-typedef WillBeHeapHashMap<RawPtrWillBeWeakMember<Element>, RawPtrWillBeMember<CustomElementObserver>> ElementObserverMap;
+typedef HeapHashMap<WeakMember<Element>, Member<CustomElementObserver>> ElementObserverMap;
 
 static ElementObserverMap& elementObservers()
 {
-    DEFINE_STATIC_LOCAL(OwnPtrWillBePersistent<ElementObserverMap>, map, (adoptPtrWillBeNoop(new ElementObserverMap())));
+    DEFINE_STATIC_LOCAL(Persistent<ElementObserverMap>, map, (new ElementObserverMap()));
     return *map;
 }
 
diff --git a/third_party/WebKit/Source/core/dom/custom/CustomElementObserver.h b/third_party/WebKit/Source/core/dom/custom/CustomElementObserver.h
index d99d939..b27c929 100644
--- a/third_party/WebKit/Source/core/dom/custom/CustomElementObserver.h
+++ b/third_party/WebKit/Source/core/dom/custom/CustomElementObserver.h
@@ -38,7 +38,7 @@
 
 class Element;
 
-class CustomElementObserver : public NoBaseWillBeGarbageCollectedFinalized<CustomElementObserver> {
+class CustomElementObserver : public GarbageCollectedFinalized<CustomElementObserver> {
 public:
     virtual ~CustomElementObserver() { }
 
diff --git a/third_party/WebKit/Source/core/dom/custom/CustomElementProcessingStack.cpp b/third_party/WebKit/Source/core/dom/custom/CustomElementProcessingStack.cpp
index 324fbbc..b9db2f2 100644
--- a/third_party/WebKit/Source/core/dom/custom/CustomElementProcessingStack.cpp
+++ b/third_party/WebKit/Source/core/dom/custom/CustomElementProcessingStack.cpp
@@ -42,7 +42,7 @@
 
 CustomElementProcessingStack& CustomElementProcessingStack::instance()
 {
-    DEFINE_STATIC_LOCAL(OwnPtrWillBePersistent<CustomElementProcessingStack>, instance, (adoptPtrWillBeNoop(new CustomElementProcessingStack())));
+    DEFINE_STATIC_LOCAL(Persistent<CustomElementProcessingStack>, instance, (new CustomElementProcessingStack()));
     return *instance;
 }
 
diff --git a/third_party/WebKit/Source/core/dom/custom/CustomElementProcessingStack.h b/third_party/WebKit/Source/core/dom/custom/CustomElementProcessingStack.h
index 9e268584b..f85bf0c 100644
--- a/third_party/WebKit/Source/core/dom/custom/CustomElementProcessingStack.h
+++ b/third_party/WebKit/Source/core/dom/custom/CustomElementProcessingStack.h
@@ -37,8 +37,7 @@
 
 namespace blink {
 
-class CORE_EXPORT CustomElementProcessingStack : public NoBaseWillBeGarbageCollectedFinalized<CustomElementProcessingStack> {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(CustomElementProcessingStack);
+class CORE_EXPORT CustomElementProcessingStack : public GarbageCollectedFinalized<CustomElementProcessingStack> {
     WTF_MAKE_NONCOPYABLE(CustomElementProcessingStack);
 public:
     // This is stack allocated in many DOM callbacks. Make it cheap.
@@ -100,7 +99,7 @@
     // stack appear toward the head of the vector. The first element
     // is a null sentinel value.
     static const size_t kNumSentinels = 1;
-    WillBeHeapVector<RawPtrWillBeMember<CustomElementCallbackQueue>> m_flattenedProcessingStack;
+    HeapVector<Member<CustomElementCallbackQueue>> m_flattenedProcessingStack;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/dom/custom/CustomElementProcessingStep.h b/third_party/WebKit/Source/core/dom/custom/CustomElementProcessingStep.h
index a4d69b7..fc9b95e 100644
--- a/third_party/WebKit/Source/core/dom/custom/CustomElementProcessingStep.h
+++ b/third_party/WebKit/Source/core/dom/custom/CustomElementProcessingStep.h
@@ -36,8 +36,7 @@
 
 namespace blink {
 
-class CustomElementProcessingStep : public NoBaseWillBeGarbageCollectedFinalized<CustomElementProcessingStep> {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(CustomElementProcessingStep);
+class CustomElementProcessingStep : public GarbageCollectedFinalized<CustomElementProcessingStep> {
     WTF_MAKE_NONCOPYABLE(CustomElementProcessingStep);
 public:
     CustomElementProcessingStep() { }
diff --git a/third_party/WebKit/Source/core/dom/custom/CustomElementRegistrationContext.cpp b/third_party/WebKit/Source/core/dom/custom/CustomElementRegistrationContext.cpp
index 24a4584..5b420127 100644
--- a/third_party/WebKit/Source/core/dom/custom/CustomElementRegistrationContext.cpp
+++ b/third_party/WebKit/Source/core/dom/custom/CustomElementRegistrationContext.cpp
@@ -58,7 +58,7 @@
         return;
 
     // Upgrade elements that were waiting for this definition.
-    OwnPtrWillBeRawPtr<CustomElementUpgradeCandidateMap::ElementSet> upgradeCandidates = m_candidates->takeUpgradeCandidatesFor(definition->descriptor());
+    RawPtr<CustomElementUpgradeCandidateMap::ElementSet> upgradeCandidates = m_candidates->takeUpgradeCandidatesFor(definition->descriptor());
 
     if (!upgradeCandidates)
         return;
@@ -67,11 +67,11 @@
         CustomElement::define(candidate, definition);
 }
 
-PassRefPtrWillBeRawPtr<Element> CustomElementRegistrationContext::createCustomTagElement(Document& document, const QualifiedName& tagName)
+RawPtr<Element> CustomElementRegistrationContext::createCustomTagElement(Document& document, const QualifiedName& tagName)
 {
     ASSERT(CustomElement::isValidName(tagName.localName()));
 
-    RefPtrWillBeRawPtr<Element> element;
+    RawPtr<Element> element;
 
     if (HTMLNames::xhtmlNamespaceURI == tagName.namespaceURI()) {
         element = HTMLElement::create(tagName, document);
diff --git a/third_party/WebKit/Source/core/dom/custom/CustomElementRegistrationContext.h b/third_party/WebKit/Source/core/dom/custom/CustomElementRegistrationContext.h
index c448997..04334f0 100644
--- a/third_party/WebKit/Source/core/dom/custom/CustomElementRegistrationContext.h
+++ b/third_party/WebKit/Source/core/dom/custom/CustomElementRegistrationContext.h
@@ -43,11 +43,11 @@
 
 namespace blink {
 
-class CustomElementRegistrationContext final : public RefCountedWillBeGarbageCollectedFinalized<CustomElementRegistrationContext> {
+class CustomElementRegistrationContext final : public GarbageCollectedFinalized<CustomElementRegistrationContext> {
 public:
-    static PassRefPtrWillBeRawPtr<CustomElementRegistrationContext> create()
+    static RawPtr<CustomElementRegistrationContext> create()
     {
-        return adoptRefWillBeNoop(new CustomElementRegistrationContext());
+        return new CustomElementRegistrationContext();
     }
 
     ~CustomElementRegistrationContext() { }
@@ -56,7 +56,7 @@
     // Definitions
     void registerElement(Document*, CustomElementConstructorBuilder*, const AtomicString& type, CustomElement::NameSet validNames, ExceptionState&);
 
-    PassRefPtrWillBeRawPtr<Element> createCustomTagElement(Document&, const QualifiedName&);
+    RawPtr<Element> createCustomTagElement(Document&, const QualifiedName&);
     static void setIsAttributeAndTypeExtension(Element*, const AtomicString& type);
     static void setTypeExtension(Element*, const AtomicString& type);
 
@@ -76,7 +76,7 @@
     CustomElementRegistry m_registry;
 
     // Element creation
-    OwnPtrWillBeMember<CustomElementUpgradeCandidateMap> m_candidates;
+    Member<CustomElementUpgradeCandidateMap> m_candidates;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/dom/custom/CustomElementRegistry.cpp b/third_party/WebKit/Source/core/dom/custom/CustomElementRegistry.cpp
index 9bfa92de..15b331c 100644
--- a/third_party/WebKit/Source/core/dom/custom/CustomElementRegistry.cpp
+++ b/third_party/WebKit/Source/core/dom/custom/CustomElementRegistry.cpp
@@ -66,7 +66,7 @@
 
     ASSERT(!m_documentWasDetached);
 
-    RefPtrWillBeRawPtr<CustomElementLifecycleCallbacks> lifecycleCallbacks = constructorBuilder->createCallbacks();
+    RawPtr<CustomElementLifecycleCallbacks> lifecycleCallbacks = constructorBuilder->createCallbacks();
 
     // Consulting the constructor builder could execute script and
     // kill the document.
@@ -76,7 +76,7 @@
     }
 
     const CustomElementDescriptor descriptor(type, tagName.namespaceURI(), tagName.localName());
-    RefPtrWillBeRawPtr<CustomElementDefinition> definition = CustomElementDefinition::create(descriptor, lifecycleCallbacks);
+    RawPtr<CustomElementDefinition> definition = CustomElementDefinition::create(descriptor, lifecycleCallbacks);
 
     if (!constructorBuilder->createConstructor(document, definition.get(), exceptionState))
         return 0;
diff --git a/third_party/WebKit/Source/core/dom/custom/CustomElementRegistry.h b/third_party/WebKit/Source/core/dom/custom/CustomElementRegistry.h
index a5234b4d..db80ca9 100644
--- a/third_party/WebKit/Source/core/dom/custom/CustomElementRegistry.h
+++ b/third_party/WebKit/Source/core/dom/custom/CustomElementRegistry.h
@@ -62,7 +62,7 @@
     CustomElementDefinition* find(const CustomElementDescriptor&) const;
 
 private:
-    typedef WillBeHeapHashMap<CustomElementDescriptor, RefPtrWillBeMember<CustomElementDefinition>> DefinitionMap;
+    typedef HeapHashMap<CustomElementDescriptor, Member<CustomElementDefinition>> DefinitionMap;
     DefinitionMap m_definitions;
     HashSet<AtomicString> m_registeredTypeNames;
     bool m_documentWasDetached;
diff --git a/third_party/WebKit/Source/core/dom/custom/CustomElementScheduler.cpp b/third_party/WebKit/Source/core/dom/custom/CustomElementScheduler.cpp
index a4df3af..7cebedc3 100644
--- a/third_party/WebKit/Source/core/dom/custom/CustomElementScheduler.cpp
+++ b/third_party/WebKit/Source/core/dom/custom/CustomElementScheduler.cpp
@@ -46,18 +46,16 @@
 
 namespace blink {
 
-DEFINE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(CustomElementScheduler)
-
 // FIXME: Consider moving the element's callback queue to ElementRareData.
-typedef WillBeHeapHashMap<RawPtrWillBeMember<Element>, OwnPtrWillBeMember<CustomElementCallbackQueue>> ElementCallbackQueueMap;
+typedef HeapHashMap<Member<Element>, Member<CustomElementCallbackQueue>> ElementCallbackQueueMap;
 
 static ElementCallbackQueueMap& callbackQueues()
 {
-    DEFINE_STATIC_LOCAL(OwnPtrWillBePersistent<ElementCallbackQueueMap>, map, (adoptPtrWillBeNoop(new ElementCallbackQueueMap())));
+    DEFINE_STATIC_LOCAL(Persistent<ElementCallbackQueueMap>, map, (new ElementCallbackQueueMap()));
     return *map;
 }
 
-static CustomElementCallbackQueue& ensureCallbackQueue(PassRefPtrWillBeRawPtr<Element> element)
+static CustomElementCallbackQueue& ensureCallbackQueue(RawPtr<Element> element)
 {
     ElementCallbackQueueMap::ValueType* it = callbackQueues().add(element.get(), nullptr).storedValue;
     if (!it->value)
@@ -66,9 +64,9 @@
 }
 
 // Finds or creates the callback queue for element.
-static CustomElementCallbackQueue& scheduleCallbackQueue(PassRefPtrWillBeRawPtr<Element> passElement)
+static CustomElementCallbackQueue& scheduleCallbackQueue(RawPtr<Element> passElement)
 {
-    RefPtrWillBeRawPtr<Element> element(passElement);
+    RawPtr<Element> element(passElement);
 
     CustomElementCallbackQueue& callbackQueue = ensureCallbackQueue(element);
     if (callbackQueue.inCreatedCallback()) {
@@ -89,7 +87,7 @@
     return callbackQueue;
 }
 
-void CustomElementScheduler::scheduleCallback(PassRefPtrWillBeRawPtr<CustomElementLifecycleCallbacks> callbacks, PassRefPtrWillBeRawPtr<Element> element, CustomElementLifecycleCallbacks::CallbackType type)
+void CustomElementScheduler::scheduleCallback(RawPtr<CustomElementLifecycleCallbacks> callbacks, RawPtr<Element> element, CustomElementLifecycleCallbacks::CallbackType type)
 {
     ASSERT(type != CustomElementLifecycleCallbacks::AttributeChangedCallback);
 
@@ -100,7 +98,7 @@
     queue.append(CustomElementCallbackInvocation::createInvocation(callbacks, type));
 }
 
-void CustomElementScheduler::scheduleAttributeChangedCallback(PassRefPtrWillBeRawPtr<CustomElementLifecycleCallbacks> callbacks, PassRefPtrWillBeRawPtr<Element> element, const AtomicString& name, const AtomicString& oldValue, const AtomicString& newValue)
+void CustomElementScheduler::scheduleAttributeChangedCallback(RawPtr<CustomElementLifecycleCallbacks> callbacks, RawPtr<Element> element, const AtomicString& name, const AtomicString& oldValue, const AtomicString& newValue)
 {
     if (!callbacks->hasCallback(CustomElementLifecycleCallbacks::AttributeChangedCallback))
         return;
@@ -109,7 +107,7 @@
     queue.append(CustomElementCallbackInvocation::createAttributeChangedInvocation(callbacks, name, oldValue, newValue));
 }
 
-void CustomElementScheduler::resolveOrScheduleResolution(PassRefPtrWillBeRawPtr<CustomElementRegistrationContext> context, PassRefPtrWillBeRawPtr<Element> element, const CustomElementDescriptor& descriptor)
+void CustomElementScheduler::resolveOrScheduleResolution(RawPtr<CustomElementRegistrationContext> context, RawPtr<Element> element, const CustomElementDescriptor& descriptor)
 {
     if (CustomElementProcessingStack::inCallbackDeliveryScope()) {
         context->resolve(element.get(), descriptor);
@@ -117,7 +115,7 @@
     }
 
     Document& document = element->document();
-    OwnPtrWillBeRawPtr<CustomElementMicrotaskResolutionStep> step = CustomElementMicrotaskResolutionStep::create(context, element, descriptor);
+    RawPtr<CustomElementMicrotaskResolutionStep> step = CustomElementMicrotaskResolutionStep::create(context, element, descriptor);
     enqueueMicrotaskStep(document, step.release());
 }
 
@@ -128,13 +126,13 @@
 
     // Ownership of the new step is transferred to the parent
     // processing step, or the base queue.
-    OwnPtrWillBeRawPtr<CustomElementMicrotaskImportStep> step = CustomElementMicrotaskImportStep::create(import);
+    RawPtr<CustomElementMicrotaskImportStep> step = CustomElementMicrotaskImportStep::create(import);
     CustomElementMicrotaskImportStep* rawStep = step.get();
     enqueueMicrotaskStep(*(import->parent()->document()), step.release(), import->isSync());
     return rawStep;
 }
 
-void CustomElementScheduler::enqueueMicrotaskStep(Document& document, PassOwnPtrWillBeRawPtr<CustomElementMicrotaskStep> step, bool importIsSync)
+void CustomElementScheduler::enqueueMicrotaskStep(Document& document, RawPtr<CustomElementMicrotaskStep> step, bool importIsSync)
 {
     Document& master = document.importsController() ? *(document.importsController()->master()) : document;
     master.customElementMicrotaskRunQueue()->enqueue(document.importLoader(), step, importIsSync);
diff --git a/third_party/WebKit/Source/core/dom/custom/CustomElementScheduler.h b/third_party/WebKit/Source/core/dom/custom/CustomElementScheduler.h
index 691cbd2..1814b7b 100644
--- a/third_party/WebKit/Source/core/dom/custom/CustomElementScheduler.h
+++ b/third_party/WebKit/Source/core/dom/custom/CustomElementScheduler.h
@@ -47,15 +47,13 @@
 class CustomElementRegistrationContext;
 class HTMLImportChild;
 
-class CustomElementScheduler final : public NoBaseWillBeGarbageCollected<CustomElementScheduler> {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(CustomElementScheduler);
-    DECLARE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(CustomElementScheduler);
+class CustomElementScheduler final : public GarbageCollected<CustomElementScheduler> {
 public:
 
-    static void scheduleCallback(PassRefPtrWillBeRawPtr<CustomElementLifecycleCallbacks>, PassRefPtrWillBeRawPtr<Element>, CustomElementLifecycleCallbacks::CallbackType);
-    static void scheduleAttributeChangedCallback(PassRefPtrWillBeRawPtr<CustomElementLifecycleCallbacks>, PassRefPtrWillBeRawPtr<Element>, const AtomicString& name, const AtomicString& oldValue, const AtomicString& newValue);
+    static void scheduleCallback(RawPtr<CustomElementLifecycleCallbacks>, RawPtr<Element>, CustomElementLifecycleCallbacks::CallbackType);
+    static void scheduleAttributeChangedCallback(RawPtr<CustomElementLifecycleCallbacks>, RawPtr<Element>, const AtomicString& name, const AtomicString& oldValue, const AtomicString& newValue);
 
-    static void resolveOrScheduleResolution(PassRefPtrWillBeRawPtr<CustomElementRegistrationContext>, PassRefPtrWillBeRawPtr<Element>, const CustomElementDescriptor&);
+    static void resolveOrScheduleResolution(RawPtr<CustomElementRegistrationContext>, RawPtr<Element>, const CustomElementDescriptor&);
     static CustomElementMicrotaskImportStep* scheduleImport(HTMLImportChild*);
 
     static void microtaskDispatcherDidFinish();
@@ -64,7 +62,7 @@
 private:
     CustomElementScheduler() { }
 
-    static void enqueueMicrotaskStep(Document&, PassOwnPtrWillBeRawPtr<CustomElementMicrotaskStep>, bool importIsSync = true);
+    static void enqueueMicrotaskStep(Document&, RawPtr<CustomElementMicrotaskStep>, bool importIsSync = true);
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/dom/custom/CustomElementSyncMicrotaskQueue.cpp b/third_party/WebKit/Source/core/dom/custom/CustomElementSyncMicrotaskQueue.cpp
index 16fd480a..683b7bf 100644
--- a/third_party/WebKit/Source/core/dom/custom/CustomElementSyncMicrotaskQueue.cpp
+++ b/third_party/WebKit/Source/core/dom/custom/CustomElementSyncMicrotaskQueue.cpp
@@ -6,7 +6,7 @@
 
 namespace blink {
 
-void CustomElementSyncMicrotaskQueue::enqueue(PassOwnPtrWillBeRawPtr<CustomElementMicrotaskStep> step)
+void CustomElementSyncMicrotaskQueue::enqueue(RawPtr<CustomElementMicrotaskStep> step)
 {
     m_queue.append(step);
 }
diff --git a/third_party/WebKit/Source/core/dom/custom/CustomElementSyncMicrotaskQueue.h b/third_party/WebKit/Source/core/dom/custom/CustomElementSyncMicrotaskQueue.h
index c0c20ac..9976e1b 100644
--- a/third_party/WebKit/Source/core/dom/custom/CustomElementSyncMicrotaskQueue.h
+++ b/third_party/WebKit/Source/core/dom/custom/CustomElementSyncMicrotaskQueue.h
@@ -11,9 +11,9 @@
 
 class CustomElementSyncMicrotaskQueue : public CustomElementMicrotaskQueueBase {
 public:
-    static PassRefPtrWillBeRawPtr<CustomElementSyncMicrotaskQueue> create() { return adoptRefWillBeNoop(new CustomElementSyncMicrotaskQueue()); }
+    static RawPtr<CustomElementSyncMicrotaskQueue> create() { return new CustomElementSyncMicrotaskQueue(); }
 
-    void enqueue(PassOwnPtrWillBeRawPtr<CustomElementMicrotaskStep>);
+    void enqueue(RawPtr<CustomElementMicrotaskStep>);
 
 private:
     CustomElementSyncMicrotaskQueue() { }
diff --git a/third_party/WebKit/Source/core/dom/custom/CustomElementUpgradeCandidateMap.cpp b/third_party/WebKit/Source/core/dom/custom/CustomElementUpgradeCandidateMap.cpp
index b39afff1..0ec63a9b 100644
--- a/third_party/WebKit/Source/core/dom/custom/CustomElementUpgradeCandidateMap.cpp
+++ b/third_party/WebKit/Source/core/dom/custom/CustomElementUpgradeCandidateMap.cpp
@@ -34,9 +34,9 @@
 
 namespace blink {
 
-PassOwnPtrWillBeRawPtr<CustomElementUpgradeCandidateMap> CustomElementUpgradeCandidateMap::create()
+RawPtr<CustomElementUpgradeCandidateMap> CustomElementUpgradeCandidateMap::create()
 {
-    return adoptPtrWillBeNoop(new CustomElementUpgradeCandidateMap());
+    return new CustomElementUpgradeCandidateMap();
 }
 
 CustomElementUpgradeCandidateMap::~CustomElementUpgradeCandidateMap()
@@ -60,7 +60,7 @@
     UnresolvedDefinitionMap::iterator it = m_unresolvedDefinitions.find(descriptor);
     ElementSet* elements;
     if (it == m_unresolvedDefinitions.end())
-        elements = m_unresolvedDefinitions.add(descriptor, adoptPtrWillBeNoop(new ElementSet())).storedValue->value.get();
+        elements = m_unresolvedDefinitions.add(descriptor, new ElementSet()).storedValue->value.get();
     else
         elements = it->value.get();
     elements->add(element);
@@ -78,9 +78,9 @@
     m_upgradeCandidates.remove(candidate);
 }
 
-PassOwnPtrWillBeRawPtr<CustomElementUpgradeCandidateMap::ElementSet> CustomElementUpgradeCandidateMap::takeUpgradeCandidatesFor(const CustomElementDescriptor& descriptor)
+RawPtr<CustomElementUpgradeCandidateMap::ElementSet> CustomElementUpgradeCandidateMap::takeUpgradeCandidatesFor(const CustomElementDescriptor& descriptor)
 {
-    OwnPtrWillBeRawPtr<ElementSet> candidates = m_unresolvedDefinitions.take(descriptor);
+    RawPtr<ElementSet> candidates = m_unresolvedDefinitions.take(descriptor);
 
     if (!candidates)
         return nullptr;
diff --git a/third_party/WebKit/Source/core/dom/custom/CustomElementUpgradeCandidateMap.h b/third_party/WebKit/Source/core/dom/custom/CustomElementUpgradeCandidateMap.h
index 1585def5..6db3e134 100644
--- a/third_party/WebKit/Source/core/dom/custom/CustomElementUpgradeCandidateMap.h
+++ b/third_party/WebKit/Source/core/dom/custom/CustomElementUpgradeCandidateMap.h
@@ -41,18 +41,17 @@
 namespace blink {
 
 class CustomElementUpgradeCandidateMap final : public CustomElementObserver {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(CustomElementUpgradeCandidateMap);
     WTF_MAKE_NONCOPYABLE(CustomElementUpgradeCandidateMap);
 public:
-    static PassOwnPtrWillBeRawPtr<CustomElementUpgradeCandidateMap> create();
+    static RawPtr<CustomElementUpgradeCandidateMap> create();
     ~CustomElementUpgradeCandidateMap() override;
 
     // API for CustomElementRegistrationContext to save and take candidates
 
-    typedef WillBeHeapLinkedHashSet<RawPtrWillBeWeakMember<Element>> ElementSet;
+    typedef HeapLinkedHashSet<WeakMember<Element>> ElementSet;
 
     void add(const CustomElementDescriptor&, Element*);
-    PassOwnPtrWillBeRawPtr<ElementSet> takeUpgradeCandidatesFor(const CustomElementDescriptor&);
+    RawPtr<ElementSet> takeUpgradeCandidatesFor(const CustomElementDescriptor&);
 
     DECLARE_VIRTUAL_TRACE();
 
@@ -61,10 +60,10 @@
 
     void elementWasDestroyed(Element*) override;
 
-    typedef WillBeHeapHashMap<RawPtrWillBeWeakMember<Element>, CustomElementDescriptor> UpgradeCandidateMap;
+    typedef HeapHashMap<WeakMember<Element>, CustomElementDescriptor> UpgradeCandidateMap;
     UpgradeCandidateMap m_upgradeCandidates;
 
-    typedef WillBeHeapHashMap<CustomElementDescriptor, OwnPtrWillBeMember<ElementSet>> UnresolvedDefinitionMap;
+    typedef HeapHashMap<CustomElementDescriptor, Member<ElementSet>> UnresolvedDefinitionMap;
     UnresolvedDefinitionMap m_unresolvedDefinitions;
 };
 
diff --git a/third_party/WebKit/Source/core/dom/shadow/DistributedNodes.cpp b/third_party/WebKit/Source/core/dom/shadow/DistributedNodes.cpp
index 32e9774..29af2089 100644
--- a/third_party/WebKit/Source/core/dom/shadow/DistributedNodes.cpp
+++ b/third_party/WebKit/Source/core/dom/shadow/DistributedNodes.cpp
@@ -36,7 +36,7 @@
     m_indices.swap(other.m_indices);
 }
 
-void DistributedNodes::append(PassRefPtrWillBeRawPtr<Node> node)
+void DistributedNodes::append(RawPtr<Node> node)
 {
     ASSERT(node);
     ASSERT(!node->isSlotOrActiveInsertionPoint());
@@ -47,7 +47,7 @@
 
 size_t DistributedNodes::find(const Node* node) const
 {
-    WillBeHeapHashMap<RawPtrWillBeMember<const Node>, size_t>::const_iterator it = m_indices.find(node);
+    HeapHashMap<Member<const Node>, size_t>::const_iterator it = m_indices.find(node);
     if (it == m_indices.end())
         return kNotFound;
 
diff --git a/third_party/WebKit/Source/core/dom/shadow/DistributedNodes.h b/third_party/WebKit/Source/core/dom/shadow/DistributedNodes.h
index 7197feb..d117d49 100644
--- a/third_party/WebKit/Source/core/dom/shadow/DistributedNodes.h
+++ b/third_party/WebKit/Source/core/dom/shadow/DistributedNodes.h
@@ -42,14 +42,14 @@
 public:
     DistributedNodes() { }
 
-    PassRefPtrWillBeRawPtr<Node> first() const { return m_nodes.first(); }
-    PassRefPtrWillBeRawPtr<Node> last() const { return m_nodes.last(); }
-    PassRefPtrWillBeRawPtr<Node> at(size_t index) const { return m_nodes.at(index); }
+    RawPtr<Node> first() const { return m_nodes.first(); }
+    RawPtr<Node> last() const { return m_nodes.last(); }
+    RawPtr<Node> at(size_t index) const { return m_nodes.at(index); }
 
     size_t size() const { return m_nodes.size(); }
     bool isEmpty() const { return m_nodes.isEmpty(); }
 
-    void append(PassRefPtrWillBeRawPtr<Node>);
+    void append(RawPtr<Node>);
     void clear() { m_nodes.clear(); m_indices.clear(); }
     void shrinkToFit() { m_nodes.shrinkToFit(); }
 
@@ -63,8 +63,8 @@
     DECLARE_TRACE();
 
 private:
-    WillBeHeapVector<RefPtrWillBeMember<Node>> m_nodes;
-    WillBeHeapHashMap<RawPtrWillBeMember<const Node>, size_t> m_indices;
+    HeapVector<Member<Node>> m_nodes;
+    HeapHashMap<Member<const Node>, size_t> m_indices;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/dom/shadow/ElementShadow.cpp b/third_party/WebKit/Source/core/dom/shadow/ElementShadow.cpp
index df5be275..2c5f2ca 100644
--- a/third_party/WebKit/Source/core/dom/shadow/ElementShadow.cpp
+++ b/third_party/WebKit/Source/core/dom/shadow/ElementShadow.cpp
@@ -51,7 +51,7 @@
 
 private:
     void detachNonDistributedNodes();
-    WillBeHeapVector<RawPtrWillBeMember<Node>, 32> m_nodes;
+    HeapVector<Member<Node>, 32> m_nodes;
     Vector<bool, 32> m_distributed;
 };
 
@@ -129,9 +129,9 @@
     }
 }
 
-PassOwnPtrWillBeRawPtr<ElementShadow> ElementShadow::create()
+RawPtr<ElementShadow> ElementShadow::create()
 {
-    return adoptPtrWillBeNoop(new ElementShadow());
+    return new ElementShadow();
 }
 
 ElementShadow::ElementShadow()
@@ -168,7 +168,7 @@
     for (ShadowRoot* root = m_shadowRoots.head(); root; root = root->olderShadowRoot())
         root->lazyReattachIfAttached();
 
-    RefPtrWillBeRawPtr<ShadowRoot> shadowRoot = ShadowRoot::create(shadowHost.document(), type);
+    RawPtr<ShadowRoot> shadowRoot = ShadowRoot::create(shadowHost.document(), type);
     shadowRoot->setParentOrShadowHostNode(&shadowHost);
     shadowRoot->setParentTreeScope(shadowHost.treeScope());
     m_shadowRoots.push(shadowRoot.get());
@@ -190,7 +190,7 @@
     Element* shadowHost = host();
     ASSERT(shadowHost);
 
-    while (RefPtrWillBeRawPtr<ShadowRoot> oldRoot = m_shadowRoots.head()) {
+    while (RawPtr<ShadowRoot> oldRoot = m_shadowRoots.head()) {
         InspectorInstrumentation::willPopShadowRoot(shadowHost, oldRoot.get());
         shadowHost->document().removeFocusedElementOfSubtree(oldRoot.get());
         m_shadowRoots.removeHead();
@@ -288,12 +288,12 @@
 
 void ElementShadow::distributeV0()
 {
-    WillBeHeapVector<RawPtrWillBeMember<HTMLShadowElement>, 32> shadowInsertionPoints;
+    HeapVector<Member<HTMLShadowElement>, 32> shadowInsertionPoints;
     DistributionPool pool(*host());
 
     for (ShadowRoot* root = &youngestShadowRoot(); root; root = root->olderShadowRoot()) {
         HTMLShadowElement* shadowInsertionPoint = 0;
-        const WillBeHeapVector<RefPtrWillBeMember<InsertionPoint>>& insertionPoints = root->descendantInsertionPoints();
+        const HeapVector<Member<InsertionPoint>>& insertionPoints = root->descendantInsertionPoints();
         for (size_t i = 0; i < insertionPoints.size(); ++i) {
             InsertionPoint* point = insertionPoints[i].get();
             if (!point->isActive())
@@ -341,7 +341,7 @@
 #if ENABLE(OILPAN)
     NodeToDestinationInsertionPoints::AddResult result = m_nodeToInsertionPoints.add(node, nullptr);
     if (result.isNewEntry)
-        result.storedValue->value = adoptPtrWillBeNoop(new DestinationInsertionPoints());
+        result.storedValue->value = new DestinationInsertionPoints();
     result.storedValue->value->append(insertionPoint);
 #else
     NodeToDestinationInsertionPoints::AddResult result = m_nodeToInsertionPoints.add(node, DestinationInsertionPoints());
diff --git a/third_party/WebKit/Source/core/dom/shadow/ElementShadow.h b/third_party/WebKit/Source/core/dom/shadow/ElementShadow.h
index 5d3b199c..fb522ec 100644
--- a/third_party/WebKit/Source/core/dom/shadow/ElementShadow.h
+++ b/third_party/WebKit/Source/core/dom/shadow/ElementShadow.h
@@ -40,11 +40,10 @@
 
 namespace blink {
 
-class CORE_EXPORT ElementShadow final : public NoBaseWillBeGarbageCollectedFinalized<ElementShadow> {
+class CORE_EXPORT ElementShadow final : public GarbageCollectedFinalized<ElementShadow> {
     WTF_MAKE_NONCOPYABLE(ElementShadow);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(ElementShadow);
 public:
-    static PassOwnPtrWillBeRawPtr<ElementShadow> create();
+    static RawPtr<ElementShadow> create();
     ~ElementShadow();
 
     Element* host() const;
@@ -124,7 +123,7 @@
     bool m_needsSelectFeatureSet;
 
     // TODO(hayato): ShadowRoot should be an owner of SlotAssigment
-    OwnPtrWillBeMember<SlotAssignment> m_slotAssignment;
+    Member<SlotAssignment> m_slotAssignment;
 };
 
 inline Element* ElementShadow::host() const
diff --git a/third_party/WebKit/Source/core/dom/shadow/FlatTreeTraversalTest.cpp b/third_party/WebKit/Source/core/dom/shadow/FlatTreeTraversalTest.cpp
index 2bc828c9..3584d0a2 100644
--- a/third_party/WebKit/Source/core/dom/shadow/FlatTreeTraversalTest.cpp
+++ b/third_party/WebKit/Source/core/dom/shadow/FlatTreeTraversalTest.cpp
@@ -42,7 +42,7 @@
 private:
     void SetUp() override;
 
-    RefPtrWillBePersistent<HTMLDocument> m_document;
+    Persistent<HTMLDocument> m_document;
     OwnPtr<DummyPageHolder> m_dummyPageHolder;
 };
 
@@ -60,30 +60,30 @@
 
 void FlatTreeTraversalTest::setupSampleHTML(const char* mainHTML, const char* shadowHTML, unsigned index)
 {
-    RefPtrWillBeRawPtr<Element> body = document().body();
+    RawPtr<Element> body = document().body();
     body->setInnerHTML(String::fromUTF8(mainHTML), ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> shadowHost = toElement(NodeTraversal::childAt(*body, index));
-    RefPtrWillBeRawPtr<ShadowRoot> shadowRoot = shadowHost->createShadowRootInternal(ShadowRootType::V0, ASSERT_NO_EXCEPTION);
+    RawPtr<Element> shadowHost = toElement(NodeTraversal::childAt(*body, index));
+    RawPtr<ShadowRoot> shadowRoot = shadowHost->createShadowRootInternal(ShadowRootType::V0, ASSERT_NO_EXCEPTION);
     shadowRoot->setInnerHTML(String::fromUTF8(shadowHTML), ASSERT_NO_EXCEPTION);
     body->updateDistribution();
 }
 
 void FlatTreeTraversalTest::setupDocumentTree(const char* mainHTML)
 {
-    RefPtrWillBeRawPtr<Element> body = document().body();
+    RawPtr<Element> body = document().body();
     body->setInnerHTML(String::fromUTF8(mainHTML), ASSERT_NO_EXCEPTION);
 }
 
 void FlatTreeTraversalTest::attachV0ShadowRoot(Element& shadowHost, const char* shadowInnerHTML)
 {
-    RefPtrWillBeRawPtr<ShadowRoot> shadowRoot = shadowHost.createShadowRootInternal(ShadowRootType::V0, ASSERT_NO_EXCEPTION);
+    RawPtr<ShadowRoot> shadowRoot = shadowHost.createShadowRootInternal(ShadowRootType::V0, ASSERT_NO_EXCEPTION);
     shadowRoot->setInnerHTML(String::fromUTF8(shadowInnerHTML), ASSERT_NO_EXCEPTION);
     document().body()->updateDistribution();
 }
 
 void FlatTreeTraversalTest::attachOpenShadowRoot(Element& shadowHost, const char* shadowInnerHTML)
 {
-    RefPtrWillBeRawPtr<ShadowRoot> shadowRoot = shadowHost.createShadowRootInternal(ShadowRootType::Open, ASSERT_NO_EXCEPTION);
+    RawPtr<ShadowRoot> shadowRoot = shadowHost.createShadowRootInternal(ShadowRootType::Open, ASSERT_NO_EXCEPTION);
     shadowRoot->setInnerHTML(String::fromUTF8(shadowInnerHTML), ASSERT_NO_EXCEPTION);
     document().body()->updateDistribution();
 }
@@ -117,17 +117,17 @@
         "<a id='s04'>s04</a>";
     setupSampleHTML(mainHTML, shadowHTML, 0);
 
-    RefPtrWillBeRawPtr<Element> body = document().body();
-    RefPtrWillBeRawPtr<Element> m0 = body->querySelector("#m0", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> m00 = m0->querySelector("#m00", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> m01 = m0->querySelector("#m01", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> body = document().body();
+    RawPtr<Element> m0 = body->querySelector("#m0", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> m00 = m0->querySelector("#m00", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> m01 = m0->querySelector("#m01", ASSERT_NO_EXCEPTION);
 
-    RefPtrWillBeRawPtr<Element> shadowHost = m0;
-    RefPtrWillBeRawPtr<ShadowRoot> shadowRoot = shadowHost->openShadowRoot();
-    RefPtrWillBeRawPtr<Element> s00 = shadowRoot->querySelector("#s00", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> s02 = shadowRoot->querySelector("#s02", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> s03 = shadowRoot->querySelector("#s03", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> s04 = shadowRoot->querySelector("#s04", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> shadowHost = m0;
+    RawPtr<ShadowRoot> shadowRoot = shadowHost->openShadowRoot();
+    RawPtr<Element> s00 = shadowRoot->querySelector("#s00", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> s02 = shadowRoot->querySelector("#s02", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> s03 = shadowRoot->querySelector("#s03", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> s04 = shadowRoot->querySelector("#s04", ASSERT_NO_EXCEPTION);
 
     const unsigned numberOfChildNodes = 5;
     Node* expectedChildNodes[5] = { s00.get(), m01.get(), s02.get(), s03.get(), s04.get() };
@@ -192,25 +192,25 @@
         "</a>"
         "<a id='s14'>s14</a>";
     setupSampleHTML(mainHTML, shadowHTML, 1);
-    RefPtrWillBeRawPtr<Element> body = document().body();
-    RefPtrWillBeRawPtr<Element> m0 = body->querySelector("#m0", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> m1 = body->querySelector("#m1", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> m2 = body->querySelector("#m2", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> body = document().body();
+    RawPtr<Element> m0 = body->querySelector("#m0", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> m1 = body->querySelector("#m1", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> m2 = body->querySelector("#m2", ASSERT_NO_EXCEPTION);
 
-    RefPtrWillBeRawPtr<Element> m00 = body->querySelector("#m00", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> m01 = body->querySelector("#m01", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> m10 = body->querySelector("#m10", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> m11 = body->querySelector("#m11", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> m12 = body->querySelector("#m12", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> m20 = body->querySelector("#m20", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> m21 = body->querySelector("#m21", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> m00 = body->querySelector("#m00", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> m01 = body->querySelector("#m01", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> m10 = body->querySelector("#m10", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> m11 = body->querySelector("#m11", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> m12 = body->querySelector("#m12", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> m20 = body->querySelector("#m20", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> m21 = body->querySelector("#m21", ASSERT_NO_EXCEPTION);
 
-    RefPtrWillBeRawPtr<ShadowRoot> shadowRoot = m1->openShadowRoot();
-    RefPtrWillBeRawPtr<Element> s10 = shadowRoot->querySelector("#s10", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> s11 = shadowRoot->querySelector("#s11", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> s12 = shadowRoot->querySelector("#s12", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> s13 = shadowRoot->querySelector("#s13", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> s14 = shadowRoot->querySelector("#s14", ASSERT_NO_EXCEPTION);
+    RawPtr<ShadowRoot> shadowRoot = m1->openShadowRoot();
+    RawPtr<Element> s10 = shadowRoot->querySelector("#s10", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> s11 = shadowRoot->querySelector("#s11", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> s12 = shadowRoot->querySelector("#s12", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> s13 = shadowRoot->querySelector("#s13", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> s14 = shadowRoot->querySelector("#s14", ASSERT_NO_EXCEPTION);
 
     testCommonAncestor(body.get(), *m0, *m1);
     testCommonAncestor(body.get(), *m1, *m2);
@@ -263,18 +263,18 @@
         "</a>";
     setupSampleHTML(mainHTML, shadowHTML, 1);
 
-    RefPtrWillBeRawPtr<Element> body = document().body();
-    RefPtrWillBeRawPtr<Element> m0 = body->querySelector("#m0", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> m1 = body->querySelector("#m1", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> m2 = body->querySelector("#m2", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> body = document().body();
+    RawPtr<Element> m0 = body->querySelector("#m0", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> m1 = body->querySelector("#m1", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> m2 = body->querySelector("#m2", ASSERT_NO_EXCEPTION);
 
-    RefPtrWillBeRawPtr<Element> m10 = body->querySelector("#m10", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> m11 = body->querySelector("#m11", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> m10 = body->querySelector("#m10", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> m11 = body->querySelector("#m11", ASSERT_NO_EXCEPTION);
 
-    RefPtrWillBeRawPtr<ShadowRoot> shadowRoot = m1->openShadowRoot();
-    RefPtrWillBeRawPtr<Element> s11 = shadowRoot->querySelector("#s11", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> s12 = shadowRoot->querySelector("#s12", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> s120 = shadowRoot->querySelector("#s120", ASSERT_NO_EXCEPTION);
+    RawPtr<ShadowRoot> shadowRoot = m1->openShadowRoot();
+    RawPtr<Element> s11 = shadowRoot->querySelector("#s11", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> s12 = shadowRoot->querySelector("#s12", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> s120 = shadowRoot->querySelector("#s120", ASSERT_NO_EXCEPTION);
 
     // Main tree node to main tree node
     EXPECT_EQ(*m1, FlatTreeTraversal::nextSkippingChildren(*m0));
@@ -321,16 +321,16 @@
         "</a>";
     setupSampleHTML(mainHTML, shadowHTML, 1);
 
-    RefPtrWillBeRawPtr<Element> body = document().body();
-    RefPtrWillBeRawPtr<Element> m0 = body->querySelector("#m0", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> m1 = body->querySelector("#m1", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> m2 = body->querySelector("#m2", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> body = document().body();
+    RawPtr<Element> m0 = body->querySelector("#m0", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> m1 = body->querySelector("#m1", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> m2 = body->querySelector("#m2", ASSERT_NO_EXCEPTION);
 
-    RefPtrWillBeRawPtr<Element> m10 = body->querySelector("#m10", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> m10 = body->querySelector("#m10", ASSERT_NO_EXCEPTION);
 
-    RefPtrWillBeRawPtr<ShadowRoot> shadowRoot = m1->openShadowRoot();
-    RefPtrWillBeRawPtr<Element> s11 = shadowRoot->querySelector("#s11", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> s12 = shadowRoot->querySelector("#s12", ASSERT_NO_EXCEPTION);
+    RawPtr<ShadowRoot> shadowRoot = m1->openShadowRoot();
+    RawPtr<Element> s11 = shadowRoot->querySelector("#s11", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> s12 = shadowRoot->querySelector("#s12", ASSERT_NO_EXCEPTION);
 
     EXPECT_EQ(m0->firstChild(), FlatTreeTraversal::lastWithin(*m0));
     EXPECT_EQ(*m0->firstChild(), FlatTreeTraversal::lastWithinOrSelf(*m0));
@@ -366,18 +366,18 @@
         "</a>";
     setupSampleHTML(mainHTML, shadowHTML, 1);
 
-    RefPtrWillBeRawPtr<Element> body = document().body();
-    RefPtrWillBeRawPtr<Element> m0 = body->querySelector("#m0", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> m1 = body->querySelector("#m1", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> m2 = body->querySelector("#m2", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> body = document().body();
+    RawPtr<Element> m0 = body->querySelector("#m0", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> m1 = body->querySelector("#m1", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> m2 = body->querySelector("#m2", ASSERT_NO_EXCEPTION);
 
-    RefPtrWillBeRawPtr<Element> m10 = body->querySelector("#m10", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> m11 = body->querySelector("#m11", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> m10 = body->querySelector("#m10", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> m11 = body->querySelector("#m11", ASSERT_NO_EXCEPTION);
 
-    RefPtrWillBeRawPtr<ShadowRoot> shadowRoot = m1->openShadowRoot();
-    RefPtrWillBeRawPtr<Element> s11 = shadowRoot->querySelector("#s11", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> s12 = shadowRoot->querySelector("#s12", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> s120 = shadowRoot->querySelector("#s120", ASSERT_NO_EXCEPTION);
+    RawPtr<ShadowRoot> shadowRoot = m1->openShadowRoot();
+    RawPtr<Element> s11 = shadowRoot->querySelector("#s11", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> s12 = shadowRoot->querySelector("#s12", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> s120 = shadowRoot->querySelector("#s120", ASSERT_NO_EXCEPTION);
 
     EXPECT_EQ(*m0->firstChild(), FlatTreeTraversal::previousPostOrder(*m0));
     EXPECT_EQ(*s12, FlatTreeTraversal::previousPostOrder(*m1));
@@ -409,8 +409,8 @@
         "<content select='#m11'></content>";
     setupSampleHTML(mainHTML, shadowHTML, 1);
 
-    RefPtrWillBeRawPtr<Element> body = document().body();
-    RefPtrWillBeRawPtr<Element> m10 = body->querySelector("#m10", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> body = document().body();
+    RawPtr<Element> m10 = body->querySelector("#m10", ASSERT_NO_EXCEPTION);
 
     EXPECT_EQ(nullptr, FlatTreeTraversal::nextSibling(*m10));
     EXPECT_EQ(nullptr, FlatTreeTraversal::previousSibling(*m10));
@@ -438,24 +438,24 @@
         "<span id='s21'>s21</span>"
         "</div>";
 
-    RefPtrWillBeRawPtr<Element> body = document().body();
-    RefPtrWillBeRawPtr<Element> m1 = body->querySelector("#m1", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> m10 = body->querySelector("#m10", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> body = document().body();
+    RawPtr<Element> m1 = body->querySelector("#m1", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> m10 = body->querySelector("#m10", ASSERT_NO_EXCEPTION);
 
-    RefPtrWillBeRawPtr<ShadowRoot> shadowRoot1 = m1->openShadowRoot();
-    RefPtrWillBeRawPtr<Element> s1 = shadowRoot1->querySelector("#s1", ASSERT_NO_EXCEPTION);
+    RawPtr<ShadowRoot> shadowRoot1 = m1->openShadowRoot();
+    RawPtr<Element> s1 = shadowRoot1->querySelector("#s1", ASSERT_NO_EXCEPTION);
 
     attachV0ShadowRoot(*s1, shadowHTML2);
 
-    RefPtrWillBeRawPtr<ShadowRoot> shadowRoot2 = s1->openShadowRoot();
-    RefPtrWillBeRawPtr<Element> s21 = shadowRoot2->querySelector("#s21", ASSERT_NO_EXCEPTION);
+    RawPtr<ShadowRoot> shadowRoot2 = s1->openShadowRoot();
+    RawPtr<Element> s21 = shadowRoot2->querySelector("#s21", ASSERT_NO_EXCEPTION);
 
     EXPECT_EQ(s21.get(), FlatTreeTraversal::nextSibling(*m10));
     EXPECT_EQ(m10.get(), FlatTreeTraversal::previousSibling(*s21));
 
     // FlatTreeTraversal::traverseSiblings does not work for a node which is not in a document flat tree.
     // e.g. The following test fails. The result of FlatTreeTraversal::previousSibling(*m11)) will be #m10, instead of nullptr.
-    // RefPtrWillBeRawPtr<Element> m11 = body->querySelector("#m11", ASSERT_NO_EXCEPTION);
+    // RawPtr<Element> m11 = body->querySelector("#m11", ASSERT_NO_EXCEPTION);
     // EXPECT_EQ(nullptr, FlatTreeTraversal::previousSibling(*m11));
 }
 
@@ -473,17 +473,17 @@
         "<div id='shadow-child2'></div>";
 
     setupDocumentTree(mainHTML);
-    RefPtrWillBeRawPtr<Element> body = document().body();
-    RefPtrWillBeRawPtr<Element> host = body->querySelector("#host", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> child1 = body->querySelector("#child1", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> child2 = body->querySelector("#child2", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> body = document().body();
+    RawPtr<Element> host = body->querySelector("#host", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> child1 = body->querySelector("#child1", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> child2 = body->querySelector("#child2", ASSERT_NO_EXCEPTION);
 
     attachOpenShadowRoot(*host, shadowHTML);
-    RefPtrWillBeRawPtr<ShadowRoot> shadowRoot = host->openShadowRoot();
-    RefPtrWillBeRawPtr<Element> slot1 = shadowRoot->querySelector("[name=slot1]", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> slot2 = shadowRoot->querySelector("[name=slot2]", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> shadowChild1 = shadowRoot->querySelector("#shadow-child1", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> shadowChild2 = shadowRoot->querySelector("#shadow-child2", ASSERT_NO_EXCEPTION);
+    RawPtr<ShadowRoot> shadowRoot = host->openShadowRoot();
+    RawPtr<Element> slot1 = shadowRoot->querySelector("[name=slot1]", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> slot2 = shadowRoot->querySelector("[name=slot2]", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> shadowChild1 = shadowRoot->querySelector("#shadow-child1", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> shadowChild2 = shadowRoot->querySelector("#shadow-child2", ASSERT_NO_EXCEPTION);
 
     EXPECT_TRUE(slot1);
     EXPECT_TRUE(slot2);
@@ -520,30 +520,30 @@
 
     setupDocumentTree(mainHTML);
 
-    RefPtrWillBeRawPtr<Element> body = document().body();
-    RefPtrWillBeRawPtr<Element> d1 = body->querySelector("#d1", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> d2 = body->querySelector("#d2", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> d3 = body->querySelector("#d3", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> d4 = body->querySelector("#d4", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> d5 = body->querySelector("#d5", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> d6 = body->querySelector("#d6", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> body = document().body();
+    RawPtr<Element> d1 = body->querySelector("#d1", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> d2 = body->querySelector("#d2", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> d3 = body->querySelector("#d3", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> d4 = body->querySelector("#d4", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> d5 = body->querySelector("#d5", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> d6 = body->querySelector("#d6", ASSERT_NO_EXCEPTION);
 
     attachOpenShadowRoot(*d1, shadowHTML1);
-    RefPtrWillBeRawPtr<ShadowRoot> shadowRoot1 = d1->openShadowRoot();
-    RefPtrWillBeRawPtr<Element> d11 = shadowRoot1->querySelector("#d1-1", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> d12 = shadowRoot1->querySelector("#d1-2", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> d13 = shadowRoot1->querySelector("#d1-3", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> d14 = shadowRoot1->querySelector("#d1-4", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> d1s0 = shadowRoot1->querySelector("#d1-s0", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> d1s1 = shadowRoot1->querySelector("[name=d1-s1]", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> d1s2 = shadowRoot1->querySelector("[name=d1-s2]", ASSERT_NO_EXCEPTION);
+    RawPtr<ShadowRoot> shadowRoot1 = d1->openShadowRoot();
+    RawPtr<Element> d11 = shadowRoot1->querySelector("#d1-1", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> d12 = shadowRoot1->querySelector("#d1-2", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> d13 = shadowRoot1->querySelector("#d1-3", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> d14 = shadowRoot1->querySelector("#d1-4", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> d1s0 = shadowRoot1->querySelector("#d1-s0", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> d1s1 = shadowRoot1->querySelector("[name=d1-s1]", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> d1s2 = shadowRoot1->querySelector("[name=d1-s2]", ASSERT_NO_EXCEPTION);
 
     attachOpenShadowRoot(*d11, shadowHTML2);
-    RefPtrWillBeRawPtr<ShadowRoot> shadowRoot2 = d11->openShadowRoot();
-    RefPtrWillBeRawPtr<Element> d111 = shadowRoot2->querySelector("#d1-1-1", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> d112 = shadowRoot2->querySelector("#d1-1-2", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> d11s1 = shadowRoot2->querySelector("[name=d1-1-s1]", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<Element> d11s2 = shadowRoot2->querySelector("[name=d1-1-s2]", ASSERT_NO_EXCEPTION);
+    RawPtr<ShadowRoot> shadowRoot2 = d11->openShadowRoot();
+    RawPtr<Element> d111 = shadowRoot2->querySelector("#d1-1-1", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> d112 = shadowRoot2->querySelector("#d1-1-2", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> d11s1 = shadowRoot2->querySelector("[name=d1-1-s1]", ASSERT_NO_EXCEPTION);
+    RawPtr<Element> d11s2 = shadowRoot2->querySelector("[name=d1-1-s2]", ASSERT_NO_EXCEPTION);
 
     EXPECT_TRUE(d5);
     EXPECT_TRUE(d12);
diff --git a/third_party/WebKit/Source/core/dom/shadow/InsertionPoint.cpp b/third_party/WebKit/Source/core/dom/shadow/InsertionPoint.cpp
index 25810c5..9ea38c09 100644
--- a/third_party/WebKit/Source/core/dom/shadow/InsertionPoint.cpp
+++ b/third_party/WebKit/Source/core/dom/shadow/InsertionPoint.cpp
@@ -150,7 +150,7 @@
         return true;
 
     // Slow path only when there are more than one shadow elements in a shadow tree. That should be a rare case.
-    const WillBeHeapVector<RefPtrWillBeMember<InsertionPoint>>& insertionPoints = shadowRoot->descendantInsertionPoints();
+    const HeapVector<Member<InsertionPoint>>& insertionPoints = shadowRoot->descendantInsertionPoints();
     for (size_t i = 0; i < insertionPoints.size(); ++i) {
         InsertionPoint* point = insertionPoints[i].get();
         if (isHTMLShadowElement(*point))
@@ -169,11 +169,11 @@
     return isHTMLContentElement(*this) && isActive();
 }
 
-PassRefPtrWillBeRawPtr<StaticNodeList> InsertionPoint::getDistributedNodes()
+RawPtr<StaticNodeList> InsertionPoint::getDistributedNodes()
 {
     updateDistribution();
 
-    WillBeHeapVector<RefPtrWillBeMember<Node>> nodes;
+    HeapVector<Member<Node>> nodes;
     nodes.reserveInitialCapacity(m_distributedNodes.size());
     for (size_t i = 0; i < m_distributedNodes.size(); ++i)
         nodes.uncheckedAppend(m_distributedNodes.at(i));
@@ -274,7 +274,7 @@
     return insertionPoint;
 }
 
-void collectDestinationInsertionPoints(const Node& node, WillBeHeapVector<RawPtrWillBeMember<InsertionPoint>, 8>& results)
+void collectDestinationInsertionPoints(const Node& node, HeapVector<Member<InsertionPoint>, 8>& results)
 {
     const Node* current = &node;
     ElementShadow* lastElementShadow = 0;
diff --git a/third_party/WebKit/Source/core/dom/shadow/InsertionPoint.h b/third_party/WebKit/Source/core/dom/shadow/InsertionPoint.h
index 2d198b1..5d95c5cc 100644
--- a/third_party/WebKit/Source/core/dom/shadow/InsertionPoint.h
+++ b/third_party/WebKit/Source/core/dom/shadow/InsertionPoint.h
@@ -52,7 +52,7 @@
     bool isShadowInsertionPoint() const;
     bool isContentInsertionPoint() const;
 
-    PassRefPtrWillBeRawPtr<StaticNodeList> getDistributedNodes();
+    RawPtr<StaticNodeList> getDistributedNodes();
 
     virtual bool canAffectSelector() const { return false; }
 
@@ -83,7 +83,7 @@
     bool m_registeredWithShadowRoot;
 };
 
-typedef WillBeHeapVector<RefPtrWillBeMember<InsertionPoint>, 1> DestinationInsertionPoints;
+typedef HeapVector<Member<InsertionPoint>, 1> DestinationInsertionPoints;
 
 DEFINE_ELEMENT_TYPE_CASTS(InsertionPoint, isInsertionPoint());
 
@@ -114,7 +114,7 @@
 
 const InsertionPoint* resolveReprojection(const Node*);
 
-void collectDestinationInsertionPoints(const Node&, WillBeHeapVector<RawPtrWillBeMember<InsertionPoint>, 8>& results);
+void collectDestinationInsertionPoints(const Node&, HeapVector<Member<InsertionPoint>, 8>& results);
 
 } // namespace blink
 
diff --git a/third_party/WebKit/Source/core/dom/shadow/ShadowRoot.cpp b/third_party/WebKit/Source/core/dom/shadow/ShadowRoot.cpp
index 8e3af0d..1a6f7f5 100644
--- a/third_party/WebKit/Source/core/dom/shadow/ShadowRoot.cpp
+++ b/third_party/WebKit/Source/core/dom/shadow/ShadowRoot.cpp
@@ -46,7 +46,7 @@
 #if ENABLE(OILPAN)
     char emptyClassFieldsDueToGCMixinMarker[1];
 #endif
-    RawPtrWillBeMember<void*> willbeMember[3];
+    Member<void*> willbeMember[3];
     unsigned countersAndFlags[1];
 };
 
@@ -111,7 +111,7 @@
     return older;
 }
 
-PassRefPtrWillBeRawPtr<Node> ShadowRoot::cloneNode(bool, ExceptionState& exceptionState)
+RawPtr<Node> ShadowRoot::cloneNode(bool, ExceptionState& exceptionState)
 {
     exceptionState.throwDOMException(NotSupportedError, "ShadowRoot nodes are not clonable.");
     return nullptr;
@@ -129,7 +129,7 @@
         return;
     }
 
-    if (RefPtrWillBeRawPtr<DocumentFragment> fragment = createFragmentForInnerOuterHTML(markup, host(), AllowScriptingContent, "innerHTML", exceptionState))
+    if (RawPtr<DocumentFragment> fragment = createFragmentForInnerOuterHTML(markup, host(), AllowScriptingContent, "innerHTML", exceptionState))
         replaceChildrenWithFragment(this, fragment.release(), exceptionState);
 }
 
@@ -252,7 +252,7 @@
     return m_shadowRootRareData ? m_shadowRootRareData->shadowInsertionPointOfYoungerShadowRoot() : 0;
 }
 
-void ShadowRoot::setShadowInsertionPointOfYoungerShadowRoot(PassRefPtrWillBeRawPtr<HTMLShadowElement> shadowInsertionPoint)
+void ShadowRoot::setShadowInsertionPointOfYoungerShadowRoot(RawPtr<HTMLShadowElement> shadowInsertionPoint)
 {
     if (!m_shadowRootRareData && !shadowInsertionPoint)
         return;
@@ -295,9 +295,9 @@
     m_shadowRootRareData->clearDescendantInsertionPoints();
 }
 
-const WillBeHeapVector<RefPtrWillBeMember<InsertionPoint>>& ShadowRoot::descendantInsertionPoints()
+const HeapVector<Member<InsertionPoint>>& ShadowRoot::descendantInsertionPoints()
 {
-    DEFINE_STATIC_LOCAL(WillBePersistentHeapVector<RefPtrWillBeMember<InsertionPoint>>, emptyList, ());
+    DEFINE_STATIC_LOCAL(PersistentHeapVector<Member<InsertionPoint>>, emptyList, ());
     if (m_shadowRootRareData && m_descendantInsertionPointsIsValid)
         return m_shadowRootRareData->descendantInsertionPoints();
 
@@ -306,7 +306,7 @@
     if (!containsInsertionPoints())
         return emptyList;
 
-    WillBeHeapVector<RefPtrWillBeMember<InsertionPoint>> insertionPoints;
+    HeapVector<Member<InsertionPoint>> insertionPoints;
     for (InsertionPoint& insertionPoint : Traversal<InsertionPoint>::descendantsOf(*this))
         insertionPoints.append(&insertionPoint);
 
@@ -347,9 +347,9 @@
     return m_shadowRootRareData ? m_shadowRootRareData->descendantSlotCount() : 0;
 }
 
-const WillBeHeapVector<RefPtrWillBeMember<HTMLSlotElement>>& ShadowRoot::descendantSlots()
+const HeapVector<Member<HTMLSlotElement>>& ShadowRoot::descendantSlots()
 {
-    DEFINE_STATIC_LOCAL(WillBePersistentHeapVector<RefPtrWillBeMember<HTMLSlotElement>>, emptyList, ());
+    DEFINE_STATIC_LOCAL(PersistentHeapVector<Member<HTMLSlotElement>>, emptyList, ());
     if (m_descendantSlotsIsValid) {
         ASSERT(m_shadowRootRareData);
         return m_shadowRootRareData->descendantSlots();
@@ -358,7 +358,7 @@
         return emptyList;
 
     ASSERT(m_shadowRootRareData);
-    WillBeHeapVector<RefPtrWillBeMember<HTMLSlotElement>> slots;
+    HeapVector<Member<HTMLSlotElement>> slots;
     slots.reserveCapacity(descendantSlotCount());
     for (HTMLSlotElement& slot : Traversal<HTMLSlotElement>::descendantsOf(rootNode()))
         slots.append(&slot);
diff --git a/third_party/WebKit/Source/core/dom/shadow/ShadowRoot.h b/third_party/WebKit/Source/core/dom/shadow/ShadowRoot.h
index cf17ea36..be54eb0f 100644
--- a/third_party/WebKit/Source/core/dom/shadow/ShadowRoot.h
+++ b/third_party/WebKit/Source/core/dom/shadow/ShadowRoot.h
@@ -53,15 +53,15 @@
 
 class CORE_EXPORT ShadowRoot final : public DocumentFragment, public TreeScope, public DoublyLinkedListNode<ShadowRoot> {
     DEFINE_WRAPPERTYPEINFO();
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(ShadowRoot);
+    USING_GARBAGE_COLLECTED_MIXIN(ShadowRoot);
     friend class WTF::DoublyLinkedListNode<ShadowRoot>;
 public:
     // FIXME: Current implementation does not work well if a shadow root is dynamically created.
     // So multiple shadow subtrees in several elements are prohibited.
     // See https://github.com/w3c/webcomponents/issues/102 and http://crbug.com/234020
-    static PassRefPtrWillBeRawPtr<ShadowRoot> create(Document& document, ShadowRootType type)
+    static RawPtr<ShadowRoot> create(Document& document, ShadowRootType type)
     {
-        return adoptRefWillBeNoop(new ShadowRoot(document, type));
+        return new ShadowRoot(document, type);
     }
 
     void recalcStyle(StyleRecalcChange);
@@ -79,6 +79,8 @@
 
     ShadowRoot* olderShadowRootForBindings() const;
 
+    String mode() const { return (type() == ShadowRootType::V0 || type() == ShadowRootType::Open) ? "open" : "closed"; };
+
     bool isOpenOrV0() const { return type() == ShadowRootType::V0 || type() == ShadowRootType::Open; }
 
     bool isV1() const { return type() == ShadowRootType::Open || type() == ShadowRootType::Closed; }
@@ -106,17 +108,17 @@
     unsigned numberOfStyles() const { return m_numberOfStyles; }
 
     HTMLShadowElement* shadowInsertionPointOfYoungerShadowRoot() const;
-    void setShadowInsertionPointOfYoungerShadowRoot(PassRefPtrWillBeRawPtr<HTMLShadowElement>);
+    void setShadowInsertionPointOfYoungerShadowRoot(RawPtr<HTMLShadowElement>);
 
     void didAddInsertionPoint(InsertionPoint*);
     void didRemoveInsertionPoint(InsertionPoint*);
-    const WillBeHeapVector<RefPtrWillBeMember<InsertionPoint>>& descendantInsertionPoints();
+    const HeapVector<Member<InsertionPoint>>& descendantInsertionPoints();
 
     ShadowRootType type() const { return static_cast<ShadowRootType>(m_type); }
 
     void didAddSlot();
     void didRemoveSlot();
-    const WillBeHeapVector<RefPtrWillBeMember<HTMLSlotElement>>& descendantSlots();
+    const HeapVector<Member<HTMLSlotElement>>& descendantSlots();
 
     // Make protected methods from base class public here.
     using TreeScope::setDocument;
@@ -130,7 +132,7 @@
     String innerHTML() const;
     void setInnerHTML(const String&, ExceptionState&);
 
-    PassRefPtrWillBeRawPtr<Node> cloneNode(bool, ExceptionState&);
+    RawPtr<Node> cloneNode(bool, ExceptionState&);
 
     StyleSheetList* styleSheets();
 
@@ -156,7 +158,7 @@
     void invalidateDescendantInsertionPoints();
 
     // ShadowRoots should never be cloned.
-    PassRefPtrWillBeRawPtr<Node> cloneNode(bool) override { return nullptr; }
+    RawPtr<Node> cloneNode(bool) override { return nullptr; }
 
     // FIXME: This shouldn't happen. https://bugs.webkit.org/show_bug.cgi?id=88834
     bool isOrphan() const { return !host(); }
@@ -164,9 +166,9 @@
     void invalidateDescendantSlots();
     unsigned descendantSlotCount() const;
 
-    RawPtrWillBeMember<ShadowRoot> m_prev;
-    RawPtrWillBeMember<ShadowRoot> m_next;
-    OwnPtrWillBeMember<ShadowRootRareData> m_shadowRootRareData;
+    Member<ShadowRoot> m_prev;
+    Member<ShadowRoot> m_next;
+    Member<ShadowRootRareData> m_shadowRootRareData;
     unsigned m_numberOfStyles : 26;
     unsigned m_type : 2;
     unsigned m_registeredWithParentShadowRoot : 1;
diff --git a/third_party/WebKit/Source/core/dom/shadow/ShadowRoot.idl b/third_party/WebKit/Source/core/dom/shadow/ShadowRoot.idl
index e8cdb01d..b2a1872 100644
--- a/third_party/WebKit/Source/core/dom/shadow/ShadowRoot.idl
+++ b/third_party/WebKit/Source/core/dom/shadow/ShadowRoot.idl
@@ -27,6 +27,7 @@
 // https://w3c.github.io/webcomponents/spec/shadow/#the-shadowroot-interface
 
 interface ShadowRoot : DocumentFragment {
+    [RuntimeEnabled=ShadowDOMV1]readonly attribute ShadowRootMode mode;
     readonly attribute Element host;
     [ImplementedAs=olderShadowRootForBindings] readonly attribute ShadowRoot? olderShadowRoot;
     [TreatNullAs=NullString, CustomElementCallbacks, RaisesException=Setter] attribute DOMString innerHTML;
diff --git a/third_party/WebKit/Source/core/dom/shadow/ShadowRootRareData.h b/third_party/WebKit/Source/core/dom/shadow/ShadowRootRareData.h
index 401627be..28e456d 100644
--- a/third_party/WebKit/Source/core/dom/shadow/ShadowRootRareData.h
+++ b/third_party/WebKit/Source/core/dom/shadow/ShadowRootRareData.h
@@ -38,8 +38,7 @@
 
 namespace blink {
 
-class ShadowRootRareData : public NoBaseWillBeGarbageCollected<ShadowRootRareData> {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(ShadowRootRareData);
+class ShadowRootRareData : public GarbageCollected<ShadowRootRareData> {
 public:
     ShadowRootRareData()
         : m_descendantShadowElementCount(0)
@@ -50,7 +49,7 @@
     }
 
     HTMLShadowElement* shadowInsertionPointOfYoungerShadowRoot() const { return m_shadowInsertionPointOfYoungerShadowRoot.get(); }
-    void setShadowInsertionPointOfYoungerShadowRoot(PassRefPtrWillBeRawPtr<HTMLShadowElement> shadowInsertionPoint) { m_shadowInsertionPointOfYoungerShadowRoot = shadowInsertionPoint; }
+    void setShadowInsertionPointOfYoungerShadowRoot(RawPtr<HTMLShadowElement> shadowInsertionPoint) { m_shadowInsertionPointOfYoungerShadowRoot = shadowInsertionPoint; }
 
     void didAddInsertionPoint(InsertionPoint*);
     void didRemoveInsertionPoint(InsertionPoint*);
@@ -66,21 +65,21 @@
 
     unsigned childShadowRootCount() const { return m_childShadowRootCount; }
 
-    const WillBeHeapVector<RefPtrWillBeMember<InsertionPoint>>& descendantInsertionPoints() { return m_descendantInsertionPoints; }
-    void setDescendantInsertionPoints(WillBeHeapVector<RefPtrWillBeMember<InsertionPoint>>& list) { m_descendantInsertionPoints.swap(list); }
+    const HeapVector<Member<InsertionPoint>>& descendantInsertionPoints() { return m_descendantInsertionPoints; }
+    void setDescendantInsertionPoints(HeapVector<Member<InsertionPoint>>& list) { m_descendantInsertionPoints.swap(list); }
     void clearDescendantInsertionPoints() { m_descendantInsertionPoints.clear(); }
 
     StyleSheetList* styleSheets() { return m_styleSheetList.get(); }
-    void setStyleSheets(PassRefPtrWillBeRawPtr<StyleSheetList> styleSheetList) { m_styleSheetList = styleSheetList; }
+    void setStyleSheets(RawPtr<StyleSheetList> styleSheetList) { m_styleSheetList = styleSheetList; }
 
     void didAddSlot() { ++m_descendantSlotCount; }
     void didRemoveSlot() { ASSERT(m_descendantSlotCount >= 1); --m_descendantSlotCount; }
 
     unsigned descendantSlotCount() const { return m_descendantSlotCount; }
 
-    const WillBeHeapVector<RefPtrWillBeMember<HTMLSlotElement>>& descendantSlots() const { return m_descendantSlots; }
+    const HeapVector<Member<HTMLSlotElement>>& descendantSlots() const { return m_descendantSlots; }
 
-    void setDescendantSlots(WillBeHeapVector<RefPtrWillBeMember<HTMLSlotElement>>& slots) { m_descendantSlots.swap(slots); }
+    void setDescendantSlots(HeapVector<Member<HTMLSlotElement>>& slots) { m_descendantSlots.swap(slots); }
     void clearDescendantSlots() { m_descendantSlots.clear(); }
 
     DEFINE_INLINE_TRACE()
@@ -92,14 +91,14 @@
     }
 
 private:
-    RefPtrWillBeMember<HTMLShadowElement> m_shadowInsertionPointOfYoungerShadowRoot;
+    Member<HTMLShadowElement> m_shadowInsertionPointOfYoungerShadowRoot;
     unsigned m_descendantShadowElementCount;
     unsigned m_descendantContentElementCount;
     unsigned m_childShadowRootCount;
-    WillBeHeapVector<RefPtrWillBeMember<InsertionPoint>> m_descendantInsertionPoints;
-    RefPtrWillBeMember<StyleSheetList> m_styleSheetList;
+    HeapVector<Member<InsertionPoint>> m_descendantInsertionPoints;
+    Member<StyleSheetList> m_styleSheetList;
     unsigned m_descendantSlotCount;
-    WillBeHeapVector<RefPtrWillBeMember<HTMLSlotElement>> m_descendantSlots;
+    HeapVector<Member<HTMLSlotElement>> m_descendantSlots;
 };
 
 inline void ShadowRootRareData::didAddInsertionPoint(InsertionPoint* point)
diff --git a/third_party/WebKit/Source/core/dom/shadow/SlotAssignment.cpp b/third_party/WebKit/Source/core/dom/shadow/SlotAssignment.cpp
index f1e75d7..8f0dfab1 100644
--- a/third_party/WebKit/Source/core/dom/shadow/SlotAssignment.cpp
+++ b/third_party/WebKit/Source/core/dom/shadow/SlotAssignment.cpp
@@ -34,13 +34,13 @@
 {
     m_assignment.clear();
 
-    using Name2Slot = WillBeHeapHashMap<AtomicString, RefPtrWillBeMember<HTMLSlotElement>>;
+    using Name2Slot = HeapHashMap<AtomicString, Member<HTMLSlotElement>>;
     Name2Slot name2slot;
     HTMLSlotElement* defaultSlot = nullptr;
 
-    const WillBeHeapVector<RefPtrWillBeMember<HTMLSlotElement>>& slots = shadowRoot.descendantSlots();
+    const HeapVector<Member<HTMLSlotElement>>& slots = shadowRoot.descendantSlots();
 
-    for (RefPtrWillBeMember<HTMLSlotElement> slot : slots) {
+    for (Member<HTMLSlotElement> slot : slots) {
         slot->willUpdateDistribution();
         AtomicString name = slot->fastGetAttribute(HTMLNames::nameAttr);
         if (isDefaultSlotName(name)) {
diff --git a/third_party/WebKit/Source/core/dom/shadow/SlotAssignment.h b/third_party/WebKit/Source/core/dom/shadow/SlotAssignment.h
index eb8a786..7b863fe 100644
--- a/third_party/WebKit/Source/core/dom/shadow/SlotAssignment.h
+++ b/third_party/WebKit/Source/core/dom/shadow/SlotAssignment.h
@@ -13,9 +13,9 @@
 class Node;
 class ShadowRoot;
 
-class SlotAssignment final : public NoBaseWillBeGarbageCollected<SlotAssignment> {
+class SlotAssignment final : public GarbageCollected<SlotAssignment> {
 public:
-    static PassOwnPtrWillBeRawPtr<SlotAssignment> create()
+    static RawPtr<SlotAssignment> create()
     {
         return adoptPtrWillBeNoop(new SlotAssignment);
     }
@@ -29,7 +29,7 @@
     SlotAssignment() { }
 
     void assign(Node&, HTMLSlotElement&);
-    WillBeHeapHashMap<RawPtrWillBeMember<Node>, RawPtrWillBeMember<HTMLSlotElement>> m_assignment;
+    HeapHashMap<Member<Node>, Member<HTMLSlotElement>> m_assignment;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/dom/shadow/SlotScopedTraversal.cpp b/third_party/WebKit/Source/core/dom/shadow/SlotScopedTraversal.cpp
index 92a75f5a..3f8137e4 100644
--- a/third_party/WebKit/Source/core/dom/shadow/SlotScopedTraversal.cpp
+++ b/third_party/WebKit/Source/core/dom/shadow/SlotScopedTraversal.cpp
@@ -45,7 +45,7 @@
         slot = nearestAncestorAssignedToSlot->assignedSlot();
         ASSERT(slot);
     }
-    WillBeHeapVector<RefPtrWillBeMember<Node>> assignedNodes = slot->getAssignedNodes();
+    HeapVector<Member<Node>> assignedNodes = slot->getAssignedNodes();
     size_t currentIndex = assignedNodes.find(*nearestAncestorAssignedToSlot);
     ASSERT(currentIndex != kNotFound);
     for (++currentIndex; currentIndex < assignedNodes.size(); ++currentIndex) {
@@ -63,11 +63,11 @@
     if (Element* previous = ElementTraversal::previous(current, nearestAncestorAssignedToSlot))
         return previous;
     // If null, jump to previous assigned node's descendant
-    const WillBeHeapVector<RefPtrWillBeMember<Node>> assignedNodes = nearestAncestorAssignedToSlot->assignedSlot()->getAssignedNodes();
+    const HeapVector<Member<Node>> assignedNodes = nearestAncestorAssignedToSlot->assignedSlot()->getAssignedNodes();
     size_t currentIndex = assignedNodes.reverseFind(*nearestAncestorAssignedToSlot);
     ASSERT(currentIndex != kNotFound);
     for (; currentIndex > 0; --currentIndex) {
-        const RefPtrWillBeMember<Node> assignedPrevious = assignedNodes[currentIndex - 1];
+        const Member<Node> assignedPrevious = assignedNodes[currentIndex - 1];
         if (assignedPrevious->isElementNode()) {
             if (Element* last = ElementTraversal::lastWithin(*toElement(assignedPrevious)))
                 return last;
diff --git a/third_party/WebKit/Source/core/editing/EditingStyle.cpp b/third_party/WebKit/Source/core/editing/EditingStyle.cpp
index f3576a7..16b9bb7a 100644
--- a/third_party/WebKit/Source/core/editing/EditingStyle.cpp
+++ b/third_party/WebKit/Source/core/editing/EditingStyle.cpp
@@ -1559,7 +1559,7 @@
 
     m_applyFontFace = style->getPropertyValue(CSSPropertyFontFamily);
     // Remove double quotes for Outlook 2007 compatibility. See https://bugs.webkit.org/show_bug.cgi?id=79448
-    m_applyFontFace.replaceWithLiteral('"', "");
+    m_applyFontFace.replace('"', "");
     style->removeProperty(CSSPropertyFontFamily);
 
     if (RefPtrWillBeRawPtr<CSSValue> fontSize = style->getPropertyCSSValue(CSSPropertyFontSize)) {
diff --git a/third_party/WebKit/Source/core/editing/EditingUtilities.cpp b/third_party/WebKit/Source/core/editing/EditingUtilities.cpp
index f712083..84fe0d2 100644
--- a/third_party/WebKit/Source/core/editing/EditingUtilities.cpp
+++ b/third_party/WebKit/Source/core/editing/EditingUtilities.cpp
@@ -1402,7 +1402,7 @@
         return Position();
     if (enclosingBlockFlowElement(*anchorNode) != enclosingBlockFlowElement(*position.anchorNode()))
         return Position();
-    if (!anchorNode->isTextNode())
+    if (option == NotConsiderNonCollapsibleWhitespace && anchorNode->layoutObject() && !anchorNode->layoutObject()->style()->collapseWhiteSpace())
         return Position();
     const String& string = toText(anchorNode)->data();
     const UChar previousCharacter = string[prev.computeOffsetInContainerNode()];
diff --git a/third_party/WebKit/Source/core/editing/EditingUtilities.h b/third_party/WebKit/Source/core/editing/EditingUtilities.h
index 7632c5c..8e38eff6 100644
--- a/third_party/WebKit/Source/core/editing/EditingUtilities.h
+++ b/third_party/WebKit/Source/core/editing/EditingUtilities.h
@@ -241,6 +241,14 @@
 // miscellaneous functions on Position
 
 enum WhitespacePositionOption { NotConsiderNonCollapsibleWhitespace, ConsiderNonCollapsibleWhitespace };
+
+// |leadingWhitespacePosition(position)| returns a previous position of
+// |position| if it is at collapsible whitespace, otherwise it returns null
+// position. When it is called with |NotConsiderNonCollapsibleWhitespace| and
+// a previous position in a element which has CSS property "white-space:pre",
+// or its variant, |leadingWhitespacePosition()| returns null position.
+// TODO(yosin) We should rename |leadingWhitespacePosition()| to
+// |leadingCollapsibleWhitespacePosition()| as this function really returns.
 Position leadingWhitespacePosition(const Position&, TextAffinity, WhitespacePositionOption = NotConsiderNonCollapsibleWhitespace);
 Position trailingWhitespacePosition(const Position&, TextAffinity, WhitespacePositionOption = NotConsiderNonCollapsibleWhitespace);
 unsigned numEnclosingMailBlockquotes(const Position&);
diff --git a/third_party/WebKit/Source/core/editing/commands/ReplaceSelectionCommand.cpp b/third_party/WebKit/Source/core/editing/commands/ReplaceSelectionCommand.cpp
index ad72342..169bccf 100644
--- a/third_party/WebKit/Source/core/editing/commands/ReplaceSelectionCommand.cpp
+++ b/third_party/WebKit/Source/core/editing/commands/ReplaceSelectionCommand.cpp
@@ -1541,30 +1541,41 @@
     if (!text)
         return;
 
+    // Merging Text nodes causes an additional layout. We'd like to skip it if the
+    // editable text is huge.
+    // TODO(tkent): 1024 was chosen by my intuition.  We need data.
+    const unsigned kMergeSizeLimit = 1024;
+    bool hasIncompleteSurrogate = text->data().length() >= 1 && (U16_IS_TRAIL(text->data()[0]) || U16_IS_LEAD(text->data()[text->data().length() - 1]));
+    if (!hasIncompleteSurrogate && text->data().length() > kMergeSizeLimit)
+        return;
     if (text->previousSibling() && text->previousSibling()->isTextNode()) {
         RefPtrWillBeRawPtr<Text> previous = toText(text->previousSibling());
-        insertTextIntoNode(text, 0, previous->data());
+        if (hasIncompleteSurrogate || previous->data().length() <= kMergeSizeLimit) {
+            insertTextIntoNode(text, 0, previous->data());
 
-        if (positionIsOffsetInAnchor)
-            position = Position(position.computeContainerNode(), previous->length() + position.offsetInContainerNode());
-        else
-            updatePositionForNodeRemoval(position, *previous);
+            if (positionIsOffsetInAnchor)
+                position = Position(position.computeContainerNode(), previous->length() + position.offsetInContainerNode());
+            else
+                updatePositionForNodeRemoval(position, *previous);
 
-        if (positionOnlyToBeUpdatedIsOffsetInAnchor) {
-            if (positionOnlyToBeUpdated.computeContainerNode() == text)
-                positionOnlyToBeUpdated = Position(text, previous->length() + positionOnlyToBeUpdated.offsetInContainerNode());
-            else if (positionOnlyToBeUpdated.computeContainerNode() == previous)
-                positionOnlyToBeUpdated = Position(text, positionOnlyToBeUpdated.offsetInContainerNode());
-        } else {
-            updatePositionForNodeRemoval(positionOnlyToBeUpdated, *previous);
+            if (positionOnlyToBeUpdatedIsOffsetInAnchor) {
+                if (positionOnlyToBeUpdated.computeContainerNode() == text)
+                    positionOnlyToBeUpdated = Position(text, previous->length() + positionOnlyToBeUpdated.offsetInContainerNode());
+                else if (positionOnlyToBeUpdated.computeContainerNode() == previous)
+                    positionOnlyToBeUpdated = Position(text, positionOnlyToBeUpdated.offsetInContainerNode());
+            } else {
+                updatePositionForNodeRemoval(positionOnlyToBeUpdated, *previous);
+            }
+
+            removeNode(previous, editingState);
+            if (editingState->isAborted())
+                return;
         }
-
-        removeNode(previous, editingState);
-        if (editingState->isAborted())
-            return;
     }
     if (text->nextSibling() && text->nextSibling()->isTextNode()) {
         RefPtrWillBeRawPtr<Text> next = toText(text->nextSibling());
+        if (!hasIncompleteSurrogate && next->data().length() > kMergeSizeLimit)
+            return;
         unsigned originalLength = text->length();
         insertTextIntoNode(text, originalLength, next->data());
 
diff --git a/third_party/WebKit/Source/core/editing/serializers/MarkupFormatter.cpp b/third_party/WebKit/Source/core/editing/serializers/MarkupFormatter.cpp
index 8622985..a16bdc05 100644
--- a/third_party/WebKit/Source/core/editing/serializers/MarkupFormatter.cpp
+++ b/third_party/WebKit/Source/core/editing/serializers/MarkupFormatter.cpp
@@ -198,11 +198,11 @@
     if (protocolIsJavaScript(strippedURLString)) {
         // minimal escaping for javascript urls
         if (strippedURLString.contains('&'))
-            strippedURLString.replaceWithLiteral('&', "&amp;");
+            strippedURLString.replace('&', "&amp;");
 
         if (strippedURLString.contains('"')) {
             if (strippedURLString.contains('\''))
-                strippedURLString.replaceWithLiteral('"', "&quot;");
+                strippedURLString.replace('"', "&quot;");
             else
                 quoteChar = '\'';
         }
diff --git a/third_party/WebKit/Source/core/editing/state_machines/BackspaceStateMachine.cpp b/third_party/WebKit/Source/core/editing/state_machines/BackspaceStateMachine.cpp
index 0f14512..28cfb38c 100644
--- a/third_party/WebKit/Source/core/editing/state_machines/BackspaceStateMachine.cpp
+++ b/third_party/WebKit/Source/core/editing/state_machines/BackspaceStateMachine.cpp
@@ -4,24 +4,95 @@
 
 #include "core/editing/state_machines/BackspaceStateMachine.h"
 
+// TODO(nona):Move Character.h to platform/text
+#include "platform/fonts/Character.h"
+#include "wtf/text/CharacterNames.h"
 #include "wtf/text/Unicode.h"
+#include <ostream> // NOLINT
 
 namespace blink {
 
 namespace {
-const TextSegmentationMachineState kInvalid = TextSegmentationMachineState::Invalid;
-const TextSegmentationMachineState kNeedMoreCodeUnit = TextSegmentationMachineState::NeedMoreCodeUnit;
-const TextSegmentationMachineState kFinished = TextSegmentationMachineState::Finished;
+
+// Returns true if the code point can be a part of ZWJ sequence.
+bool isZwjEmoji(uint32_t codePoint)
+{
+    return codePoint == WTF::Unicode::boyCharacter
+        || codePoint == WTF::Unicode::eyeCharacter
+        || codePoint == WTF::Unicode::girlCharacter
+        || codePoint == WTF::Unicode::heavyBlackHeartCharacter
+        || codePoint == WTF::Unicode::kissMarkCharacter
+        || codePoint == WTF::Unicode::leftSpeechBubbleCharacter
+        || codePoint == WTF::Unicode::manCharacter
+        || codePoint == WTF::Unicode::womanCharacter;
+}
+
 } // namespace
 
-TextSegmentationMachineState BackspaceStateMachine::feedPrecedingCodeUnit(UChar codeUnit)
+#define FOR_EACH_BACKSPACE_STATE_MACHINE_STATE(V)                          \
+    /* Initial state */                                                    \
+    V(Start)                                                               \
+    /* The current offset is just before line feed. */                     \
+    V(BeforeLF)                                                            \
+    /* The current offset is just before keycap. */                        \
+    V(BeforeKeycap)                                                        \
+    /* The current offset is just before variation selector and keycap. */ \
+    V(BeforeVSAndKeycap)                                                   \
+    /* The current offset is just before emoji modifier. */                \
+    V(BeforeEmojiModifier)                                                 \
+    /* The current offset is just before variation selector and emoji*/    \
+    /* modifier. */                                                        \
+    V(BeforeVSAndEmojiModifier)                                            \
+    /* The current offset is just before variation sequence. */            \
+    V(BeforeVS)                                                            \
+    /* The current offset is just before ZWJ emoji. */                     \
+    V(BeforeZWJEmoji)                                                      \
+    /* The current offset is just before ZWJ. */                           \
+    V(BeforeZWJ)                                                           \
+    /* The current offset is just before variation selector and ZWJ. */    \
+    V(BeforeVSAndZWJ)                                                      \
+    /* That there are odd numbered RIS from the beggining. */              \
+    V(OddNumberedRIS)                                                      \
+    /* That there are even numbered RIS from the begging. */               \
+    V(EvenNumberedRIS)                                                     \
+    /* This state machine has finished. */                                 \
+    V(Finished)
+
+enum class BackspaceStateMachine::BackspaceState {
+#define V(name) name,
+    FOR_EACH_BACKSPACE_STATE_MACHINE_STATE(V)
+#undef V
+};
+
+std::ostream& operator<<(std::ostream& os,
+    BackspaceStateMachine::BackspaceState state)
 {
+    static const char* const texts[] = {
+#define V(name) #name,
+        FOR_EACH_BACKSPACE_STATE_MACHINE_STATE(V)
+#undef V
+    };
+    const auto& it = std::begin(texts) + static_cast<size_t>(state);
+    DCHECK_GE(it, std::begin(texts)) << "Unknown backspace value";
+    DCHECK_LT(it, std::end(texts)) << "Unknown backspace value";
+    return os << *it;
+}
+
+BackspaceStateMachine::BackspaceStateMachine()
+    : m_state(BackspaceState::Start)
+{
+}
+
+TextSegmentationMachineState
+BackspaceStateMachine::feedPrecedingCodeUnit(UChar codeUnit)
+{
+    DCHECK_NE(BackspaceState::Finished, m_state);
     uint32_t codePoint = codeUnit;
     if (U16_IS_LEAD(codeUnit)) {
         if (m_trailSurrogate == 0) {
             // Unpaired lead surrogate. Aborting with deleting broken surrogate.
             ++m_codeUnitsToBeDeleted;
-            return kFinished;
+            return TextSegmentationMachineState::Finished;
         }
         codePoint = U16_GET_SUPPLEMENTARY(codeUnit, m_trailSurrogate);
         m_trailSurrogate = 0;
@@ -29,21 +100,123 @@
         if (m_trailSurrogate != 0) {
             // Unpaired trail surrogate. Aborting with deleting broken
             // surrogate.
-            return kFinished;
+            return TextSegmentationMachineState::Finished;
         }
         m_trailSurrogate = codeUnit;
-        return kNeedMoreCodeUnit;
+        return TextSegmentationMachineState::NeedMoreCodeUnit;
     } else {
         if (m_trailSurrogate != 0) {
             // Unpaired trail surrogate. Aborting with deleting broken
             // surrogate.
-            return kFinished;
+            return TextSegmentationMachineState::Finished;
         }
     }
 
-    // TODO(nona): Handle emoji sequences.
-    m_codeUnitsToBeDeleted = U16_LENGTH(codePoint);
-    return kFinished;
+    switch (m_state) {
+    case BackspaceState::Start:
+        m_codeUnitsToBeDeleted = U16_LENGTH(codePoint);
+        if (codePoint == newlineCharacter)
+            return moveToNextState(BackspaceState::BeforeLF);
+        if (u_hasBinaryProperty(codePoint, UCHAR_VARIATION_SELECTOR))
+            return moveToNextState(BackspaceState::BeforeVS);
+        if (isZwjEmoji(codePoint))
+            return moveToNextState(BackspaceState::BeforeZWJEmoji);
+        if (Character::isRegionalIndicator(codePoint))
+            return moveToNextState(BackspaceState::OddNumberedRIS);
+        if (Character::isModifier(codePoint))
+            return moveToNextState(BackspaceState::BeforeEmojiModifier);
+        if (codePoint == combiningEnclosingKeycapCharacter)
+            return moveToNextState(BackspaceState::BeforeKeycap);
+        return finish();
+    case BackspaceState::BeforeLF:
+        if (codePoint == carriageReturnCharacter)
+            ++m_codeUnitsToBeDeleted;
+        return finish();
+    case BackspaceState::BeforeKeycap:
+        if (u_hasBinaryProperty(codePoint, UCHAR_VARIATION_SELECTOR)) {
+            DCHECK_EQ(m_lastSeenVSCodeUnits, 0);
+            m_lastSeenVSCodeUnits = U16_LENGTH(codePoint);
+            return moveToNextState(BackspaceState::BeforeVSAndKeycap);
+        }
+        if (Character::isEmojiKeycapBase(codePoint))
+            m_codeUnitsToBeDeleted += U16_LENGTH(codePoint);
+        return finish();
+    case BackspaceState::BeforeVSAndKeycap:
+        if (Character::isEmojiKeycapBase(codePoint)) {
+            DCHECK_GT(m_lastSeenVSCodeUnits, 0);
+            DCHECK_LE(m_lastSeenVSCodeUnits, 2);
+            m_codeUnitsToBeDeleted +=
+                m_lastSeenVSCodeUnits + U16_LENGTH(codePoint);
+        }
+        return finish();
+    case BackspaceState::BeforeEmojiModifier:
+        if (u_hasBinaryProperty(codePoint, UCHAR_VARIATION_SELECTOR)) {
+            DCHECK_EQ(m_lastSeenVSCodeUnits, 0);
+            m_lastSeenVSCodeUnits = U16_LENGTH(codePoint);
+            return moveToNextState(BackspaceState::BeforeVSAndEmojiModifier);
+        }
+        if (Character::isEmojiModifierBase(codePoint))
+            m_codeUnitsToBeDeleted += U16_LENGTH(codePoint);
+        return finish();
+    case BackspaceState::BeforeVSAndEmojiModifier:
+        if (Character::isEmojiModifierBase(codePoint)) {
+            DCHECK_GT(m_lastSeenVSCodeUnits, 0);
+            DCHECK_LE(m_lastSeenVSCodeUnits, 2);
+            m_codeUnitsToBeDeleted +=
+                m_lastSeenVSCodeUnits + U16_LENGTH(codePoint);
+        }
+        return finish();
+    case BackspaceState::BeforeVS:
+        if (isZwjEmoji(codePoint)) {
+            m_codeUnitsToBeDeleted += U16_LENGTH(codePoint);
+            return moveToNextState(BackspaceState::BeforeZWJEmoji);
+        }
+        if (!u_hasBinaryProperty(codePoint, UCHAR_VARIATION_SELECTOR)
+            && u_getCombiningClass(codePoint) == 0)
+            m_codeUnitsToBeDeleted += U16_LENGTH(codePoint);
+        return finish();
+    case BackspaceState::BeforeZWJEmoji:
+        return codePoint == zeroWidthJoinerCharacter ?
+            moveToNextState(BackspaceState::BeforeZWJ) : finish();
+    case BackspaceState::BeforeZWJ:
+        if (isZwjEmoji(codePoint)) {
+            m_codeUnitsToBeDeleted += U16_LENGTH(codePoint) + 1; // +1 for ZWJ
+            return moveToNextState(BackspaceState::BeforeZWJEmoji);
+        }
+        if (u_hasBinaryProperty(codePoint, UCHAR_VARIATION_SELECTOR)) {
+            DCHECK_EQ(m_lastSeenVSCodeUnits, 0);
+            m_lastSeenVSCodeUnits = U16_LENGTH(codePoint);
+            return moveToNextState(BackspaceState::BeforeVSAndZWJ);
+        }
+        return finish();
+    case BackspaceState::BeforeVSAndZWJ:
+        if (!isZwjEmoji(codePoint))
+            return finish();
+
+        DCHECK_GT(m_lastSeenVSCodeUnits, 0);
+        DCHECK_LE(m_lastSeenVSCodeUnits, 2);
+        // +1 for ZWJ
+        m_codeUnitsToBeDeleted +=
+            U16_LENGTH(codePoint) + 1 + m_lastSeenVSCodeUnits;
+        m_lastSeenVSCodeUnits = 0;
+        return moveToNextState(BackspaceState::BeforeZWJEmoji);
+    case BackspaceState::OddNumberedRIS:
+        if (!Character::isRegionalIndicator(codePoint))
+            return finish();
+        m_codeUnitsToBeDeleted += 2; // Code units of RIS
+        return moveToNextState(BackspaceState::EvenNumberedRIS);
+    case BackspaceState::EvenNumberedRIS:
+        if (!Character::isRegionalIndicator(codePoint))
+            return finish();
+        m_codeUnitsToBeDeleted -= 2; // Code units of RIS
+        return moveToNextState(BackspaceState::OddNumberedRIS);
+    case BackspaceState::Finished:
+        NOTREACHED() << "Do not call feedPrecedingCodeUnit() once it finishes.";
+    default:
+        NOTREACHED() << "Unhandled state: " << m_state;
+    }
+    NOTREACHED() << "Unhandled state: " << m_state;
+    return TextSegmentationMachineState::Invalid;
 }
 
 TextSegmentationMachineState BackspaceStateMachine::tellEndOfPrecedingText()
@@ -53,13 +226,14 @@
         ++m_codeUnitsToBeDeleted;
         m_trailSurrogate = 0;
     }
-    return kFinished;
+    return TextSegmentationMachineState::Finished;
 }
 
-TextSegmentationMachineState BackspaceStateMachine::feedFollowingCodeUnit(UChar codeUnit)
+TextSegmentationMachineState
+BackspaceStateMachine::feedFollowingCodeUnit(UChar codeUnit)
 {
     NOTREACHED();
-    return kInvalid;
+    return TextSegmentationMachineState::Invalid;
 }
 
 int BackspaceStateMachine::finalizeAndGetBoundaryOffset()
@@ -69,6 +243,10 @@
         ++m_codeUnitsToBeDeleted;
         m_trailSurrogate = 0;
     }
+    if (m_state != BackspaceState::Finished) {
+        m_lastSeenVSCodeUnits = 0;
+        m_state = BackspaceState::Finished;
+    }
     return -m_codeUnitsToBeDeleted;
 }
 
@@ -76,6 +254,26 @@
 {
     m_codeUnitsToBeDeleted = 0;
     m_trailSurrogate = 0;
+    m_state = BackspaceState::Start;
+    m_lastSeenVSCodeUnits = 0;
+}
+
+TextSegmentationMachineState
+BackspaceStateMachine::moveToNextState(BackspaceState newState)
+{
+    DCHECK_NE(BackspaceState::Finished, newState) << "Use finish() instead.";
+    DCHECK_NE(BackspaceState::Start, newState) << "Don't move to Start.";
+    // Below |DCHECK_NE()| prevent us to infinite loop in state machine.
+    DCHECK_NE(m_state, newState) << "State should be changed.";
+    m_state = newState;
+    return TextSegmentationMachineState::NeedMoreCodeUnit;
+}
+
+TextSegmentationMachineState BackspaceStateMachine::finish()
+{
+    DCHECK_NE(BackspaceState::Finished, m_state);
+    m_state = BackspaceState::Finished;
+    return TextSegmentationMachineState::Finished;
 }
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/editing/state_machines/BackspaceStateMachine.h b/third_party/WebKit/Source/core/editing/state_machines/BackspaceStateMachine.h
index e72e74a..d073e3e 100644
--- a/third_party/WebKit/Source/core/editing/state_machines/BackspaceStateMachine.h
+++ b/third_party/WebKit/Source/core/editing/state_machines/BackspaceStateMachine.h
@@ -10,6 +10,7 @@
 #include "wtf/Allocator.h"
 #include "wtf/Noncopyable.h"
 #include "wtf/text/Unicode.h"
+#include <iosfwd>
 
 namespace blink {
 
@@ -17,7 +18,7 @@
     STACK_ALLOCATED();
     WTF_MAKE_NONCOPYABLE(BackspaceStateMachine);
 public:
-    BackspaceStateMachine() = default;
+    BackspaceStateMachine();
 
     // Prepares by feeding preceding text.
     // This method must not be called after feedFollowingCodeUnit().
@@ -27,20 +28,40 @@
     TextSegmentationMachineState tellEndOfPrecedingText();
 
     // Find boundary offset by feeding following text.
-    // This method must be called after feedPrecedingCodeUnit() returns NeedsFollowingCodeUnit.
+    // This method must be called after feedPrecedingCodeUnit() returns
+    // NeedsFollowingCodeUnit.
     TextSegmentationMachineState feedFollowingCodeUnit(UChar codeUnit);
 
-    // Returns the next boundary offset. This method finalizes the state machine if it is not finished.
+    // Returns the next boundary offset. This method finalizes the state machine
+    // if it is not finished.
     int finalizeAndGetBoundaryOffset();
 
     // Resets the internal state to the initial state.
     void reset();
 
 private:
-    int m_codeUnitsToBeDeleted = 0;
+    enum class BackspaceState;
+    friend std::ostream& operator<<(std::ostream&, BackspaceState);
+
+    // Updates the internal state to the |newState| then return
+    // InternalState::NeedMoreCodeUnit.
+    TextSegmentationMachineState moveToNextState(BackspaceState newState);
+
+    // Update the internal state to BackspaceState::Finished, then return
+    // MachineState::Finished.
+    TextSegmentationMachineState finish();
 
     // Used for composing supplementary code point with surrogate pairs.
     UChar m_trailSurrogate = 0;
+
+    // The number of code units to be deleted.
+    int m_codeUnitsToBeDeleted = 0;
+
+    // The length of the previously seen variation selector.
+    int m_lastSeenVSCodeUnits = 0;
+
+    // The internal state.
+    BackspaceState m_state;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/editing/state_machines/BackspaceStateMachineTest.cpp b/third_party/WebKit/Source/core/editing/state_machines/BackspaceStateMachineTest.cpp
index cfdd8a1..16d8f0c 100644
--- a/third_party/WebKit/Source/core/editing/state_machines/BackspaceStateMachineTest.cpp
+++ b/third_party/WebKit/Source/core/editing/state_machines/BackspaceStateMachineTest.cpp
@@ -5,6 +5,7 @@
 #include "core/editing/state_machines/BackspaceStateMachine.h"
 
 #include "testing/gtest/include/gtest/gtest.h"
+#include "wtf/text/Unicode.h"
 
 namespace blink {
 
@@ -49,8 +50,8 @@
     BackspaceStateMachine machine;
 
     // U+1F5FA(WORLD MAP) is \uD83D\uDDFA in UTF-16.
-    uint16_t leadSurrogate = 0xD83D;
-    uint16_t trailSurrogate = 0xDDFA;
+    const UChar leadSurrogate = 0xD83D;
+    const UChar trailSurrogate = 0xDDFA;
 
     EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(trailSurrogate));
     EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit(leadSurrogate));
@@ -83,4 +84,787 @@
     EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset());
 }
 
+TEST(BackspaceStateMachineTest, CRLF)
+{
+    BackspaceStateMachine machine;
+
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit('\r'));
+    EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset());
+
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit('\n'));
+    EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset());
+
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit('\n'));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit(' '));
+    EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset());
+
+    // CR LF should be deleted at the same time.
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit('\n'));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit('\r'));
+    EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
+}
+
+TEST(BackspaceStateMachineTest, KeyCap)
+{
+    BackspaceStateMachine machine;
+
+    const UChar keycap = 0x20E3;
+    const UChar vs16 = 0xFE0F;
+    const UChar notKeycapBaseLead = 0xD83C;
+    const UChar notKeycapBaseTrail = 0xDCCF;
+
+    // keycapBase + keycap
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(keycap));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit('0'));
+    EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
+
+    // keycapBase + VS + keycap
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(keycap));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(vs16));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit('0'));
+    EXPECT_EQ(-3, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-3, machine.finalizeAndGetBoundaryOffset());
+
+    // Followings are edge cases. Remove only keycap character.
+    // Not keycapBase + keycap
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(keycap));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit('a'));
+    EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset());
+
+    // Not keycapBase + VS + keycap
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(keycap));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(vs16));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit('a'));
+    EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset());
+
+    // Not keycapBase(surrogate pair) + keycap
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(keycap));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(notKeycapBaseTrail));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit(notKeycapBaseLead));
+    EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset());
+
+    // Not keycapBase(surrogate pair) + VS + keycap
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(keycap));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(vs16));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(notKeycapBaseTrail));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit(notKeycapBaseLead));
+    EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset());
+
+    // Sot + keycap
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(keycap));
+    EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset());
+
+    // Sot + VS + keycap
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(keycap));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(vs16));
+    EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset());
+}
+
+TEST(BackspaceStateMachineTest, EmojiModifier)
+{
+    BackspaceStateMachine machine;
+
+    const UChar emojiModifierLead = 0xD83C;
+    const UChar emojiModifierTrail = 0xDFFB;
+    const UChar emojiModifierBase = 0x261D;
+    const UChar emojiModifierBaseLead = 0xD83D;
+    const UChar emojiModifierBaseTrail = 0xDC66;
+    const UChar notEmojiModifierBaseLead = 0xD83C;
+    const UChar notEmojiModifierBaseTrail = 0xDCCF;
+    const UChar vs16 = 0xFE0F;
+
+    // EMOJI_MODIFIER_BASE + EMOJI_MODIFIER
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(emojiModifierTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(emojiModifierLead));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit(emojiModifierBase));
+    EXPECT_EQ(-3, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-3, machine.finalizeAndGetBoundaryOffset());
+
+    // EMOJI_MODIFIER_BASE(surrogate pairs) + EMOJI_MODIFIER
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(emojiModifierTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(emojiModifierLead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(emojiModifierBaseTrail));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit(emojiModifierBaseLead));
+    EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset());
+
+    // EMOJI_MODIFIER_BASE + VS + EMOJI_MODIFIER
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(emojiModifierTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(emojiModifierLead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(vs16));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit(emojiModifierBase));
+    EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset());
+
+    // EMOJI_MODIFIER_BASE(surrogate pairs) + VS + EMOJI_MODIFIER
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(emojiModifierTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(emojiModifierLead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(vs16));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(emojiModifierBaseTrail));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit(emojiModifierBaseLead));
+    EXPECT_EQ(-5, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-5, machine.finalizeAndGetBoundaryOffset());
+
+    // Followings are edge cases. Remove only emoji modifier.
+    // Not EMOJI_MODIFIER_BASE + EMOJI_MODIFIER
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(emojiModifierTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(emojiModifierLead));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit('a'));
+    EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
+
+    // Not EMOJI_MODIFIER_BASE(surrogate pairs) + EMOJI_MODIFIER
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(emojiModifierTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(emojiModifierLead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(notEmojiModifierBaseTrail));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit(notEmojiModifierBaseLead));
+    EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
+
+    // Not EMOJI_MODIFIER_BASE + VS + EMOJI_MODIFIER
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(emojiModifierTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(emojiModifierLead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(vs16));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit('a'));
+    EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
+
+    // Not EMOJI_MODIFIER_BASE(surrogate pairs) + VS + EMOJI_MODIFIER
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(emojiModifierTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(emojiModifierLead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(vs16));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(notEmojiModifierBaseTrail));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit(notEmojiModifierBaseLead));
+    EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
+
+    // Sot + EMOJI_MODIFIER
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(emojiModifierTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(emojiModifierLead));
+    EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
+
+    // Sot + VS + EMOJI_MODIFIER
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(emojiModifierTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(emojiModifierLead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(vs16));
+    EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
+}
+
+TEST(BackspaceStateMachineTest, RegionalIndicator)
+{
+    BackspaceStateMachine machine;
+
+    const UChar regionalIndicatorULead = 0xD83C;
+    const UChar regionalIndicatorUTrail = 0xDDFA;
+    const UChar regionalIndicatorSLead = 0xD83C;
+    const UChar regionalIndicatorSTrail = 0xDDF8;
+    const UChar notRegionalIndicatorLead = 0xD83C;
+    const UChar notRegionalIndicatorTrail = 0xDCCF;
+
+    // Not RI + RI + RI
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorUTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorULead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorSTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorSLead));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit('a'));
+    EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset());
+
+    // Not RI(surrogate pairs) + RI + RI
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorUTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorULead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorSTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorSLead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(notRegionalIndicatorTrail));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit(notRegionalIndicatorLead));
+    EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset());
+
+    // Sot + RI + RI
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorUTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorULead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorSTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorSLead));
+    EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset());
+
+    // Not RI + RI + RI + RI + RI
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorUTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorULead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorSTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorSLead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorUTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorULead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorSTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorSLead));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit('a'));
+    EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset());
+
+    // Not RI(surrogate pairs) + RI + RI + RI + RI
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorUTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorULead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorSTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorSLead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorUTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorULead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorSTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorSLead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(notRegionalIndicatorTrail));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit(notRegionalIndicatorLead));
+    EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset());
+
+    // Sot + RI + RI + RI + RI
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorUTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorULead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorSTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorSLead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorUTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorULead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorSTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorSLead));
+    EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset());
+
+    // Followings are edge cases. Delete last regional indicator only.
+    // Not RI + RI
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorUTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorULead));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit('a'));
+    EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
+
+    // Not RI(surrogate pairs) + RI
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorUTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorULead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(notRegionalIndicatorTrail));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit(notRegionalIndicatorLead));
+    EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
+
+    // Sot + RI
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorUTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorULead));
+    EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
+
+    // Not RI + RI + RI + RI
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorUTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorULead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorSTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorSLead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorUTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorULead));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit('a'));
+    EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
+
+    // Not RI(surrogate pairs) + RI + RI + RI
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorUTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorULead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorSTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorSLead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorUTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorULead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(notRegionalIndicatorTrail));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit(notRegionalIndicatorLead));
+    EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
+
+    // Sot + RI + RI + RI
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorUTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorULead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorSTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorSLead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorUTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(regionalIndicatorULead));
+    EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
+}
+
+TEST(BackspaceStateMachineTest, VariationSequencec)
+{
+    BackspaceStateMachine machine;
+
+    UChar vs16 = 0xFE0F;
+    UChar vs16Base = '0';
+    UChar vs16BaseLead = 0xD83C;
+    UChar vs16BaseTrail = 0xDD70;
+
+    UChar vs17Lead = 0xDB40;
+    UChar vs17Trail = 0xDD00;
+    UChar vs17Base = 0x3402;
+    UChar vs17BaseLead = 0xD841;
+    UChar vs17BaseTrail = 0xDC8C;
+
+    UChar mongolianVs = 0x180B;
+    UChar mongolianVsBase = 0x1820;
+    // Variation selectors can't be a base of variation sequence.
+    UChar notvsBase = 0xFE00;
+    UChar notvsBaseLead = 0xDB40;
+    UChar notvsBaseTrail = 0xDD01;
+
+    // VS_BASE + VS
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(vs16));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit(vs16Base));
+    EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
+
+    // VS_BASE + VS(surrogate pairs)
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(vs17Trail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(vs17Lead));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit(vs17Base));
+    EXPECT_EQ(-3, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-3, machine.finalizeAndGetBoundaryOffset());
+
+    // VS_BASE(surrogate pairs) + VS
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(vs16));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(vs16BaseTrail));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit(vs16BaseLead));
+    EXPECT_EQ(-3, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-3, machine.finalizeAndGetBoundaryOffset());
+
+    // VS_BASE(surrogate pairs) + VS(surrogate pairs)
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(vs17Trail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(vs17Lead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(vs17BaseTrail));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit(vs17BaseLead));
+    EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset());
+
+    // mongolianVsBase + mongolianVs
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(mongolianVs));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit(mongolianVsBase));
+    EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
+
+    // Followings are edge case. Delete only variation selector.
+    // Not VS_BASE + VS
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(vs16));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit(notvsBase));
+    EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset());
+
+    // Not VS_BASE + VS(surrogate pairs)
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(vs17Trail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(vs17Lead));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit(notvsBase));
+    EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
+
+    // Not VS_BASE(surrogate pairs) + VS
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(vs16));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(notvsBaseTrail));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit(notvsBaseLead));
+    EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset());
+
+    // Not VS_BASE(surrogate pairs) + VS(surrogate pairs)
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(vs17Trail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(vs17Lead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(notvsBaseTrail));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit(notvsBaseLead));
+    EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
+
+    // Not VS_BASE + MONGOLIAN_VS
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(mongolianVs));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit(notvsBase));
+    EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset());
+
+    // Not VS_BASE(surrogate pairs) + MONGOLIAN_VS
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(mongolianVs));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(notvsBaseTrail));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit(notvsBaseLead));
+    EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset());
+
+    // Sot + VS
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(vs16));
+    EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset());
+
+    // Sot + VS(surrogate pair)
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(vs17Trail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(vs17Lead));
+    EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
+
+    // Sot + MONGOLIAN_VS
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(mongolianVs));
+    EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset());
+}
+
+TEST(BackspaceStateMachineTest, ZWJSequence)
+{
+    BackspaceStateMachine machine;
+
+    const UChar zwj = 0x200D;
+    const UChar eyeLead = 0xD83D;
+    const UChar eyeTrail = 0xDC41;
+    const UChar leftSpeachBubbleLead = 0xD83D;
+    const UChar leftSpeachBubbleTrail = 0xDDE8;
+    const UChar manLead = 0xD83D;
+    const UChar manTrail = 0xDC68;
+    const UChar boyLead = 0xD83D;
+    const UChar boyTrail = 0xDC66;
+    const UChar heart = 0x2764;
+    const UChar kissLead = 0xD83D;
+    const UChar killTrail = 0xDC8B;
+    const UChar vs16 = 0xFE0F;
+    const UChar other = 'a';
+    const UChar otherLead = 0xD83C;
+    const UChar otherTrail = 0xDCCF;
+
+    // Followings are chosen from valid zwj sequcne.
+    // See http://www.unicode.org/Public/emoji/2.0//emoji-zwj-sequences.txt
+
+    // others + ZWJ_EMOJI + ZWJ + ZWJ_EMOJI
+    // As an example, use EYE + ZWJ + LEFT_SPEACH_BUBBLE
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(leftSpeachBubbleTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(leftSpeachBubbleLead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(zwj));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(eyeTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(eyeLead));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit(other));
+    EXPECT_EQ(-5, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-5, machine.finalizeAndGetBoundaryOffset());
+
+    // others(surrogate pairs) + ZWJ_EMOJI + ZWJ + ZWJ_EMOJI
+    // As an example, use EYE + ZWJ + LEFT_SPEACH_BUBBLE
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(leftSpeachBubbleTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(leftSpeachBubbleLead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(zwj));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(eyeTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(eyeLead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(otherTrail));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit(otherLead));
+    EXPECT_EQ(-5, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-5, machine.finalizeAndGetBoundaryOffset());
+
+    // Sot + ZWJ_EMOJI + ZWJ + ZWJ_EMOJI
+    // As an example, use EYE + ZWJ + LEFT_SPEACH_BUBBLE
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(leftSpeachBubbleTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(leftSpeachBubbleLead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(zwj));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(eyeTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(eyeLead));
+    EXPECT_EQ(-5, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-5, machine.finalizeAndGetBoundaryOffset());
+
+    // others + ZWJ_EMOJI + ZWJ + ZWJ_EMOJI + ZWJ + ZWJ_EMOJI
+    // As an example, use MAN + ZWJ + heart + ZWJ + MAN
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manLead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(zwj));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(heart));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(zwj));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manLead));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit(other));
+    EXPECT_EQ(-7, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-7, machine.finalizeAndGetBoundaryOffset());
+
+    // others(surrogate pairs) + ZWJ_EMOJI + ZWJ + ZWJ_EMOJI + ZWJ + ZWJ_EMOJI
+    // As an example, use MAN + ZWJ + heart + ZWJ + MAN
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manLead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(zwj));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(heart));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(zwj));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manLead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(otherTrail));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit(otherLead));
+    EXPECT_EQ(-7, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-7, machine.finalizeAndGetBoundaryOffset());
+
+    // Sot + ZWJ_EMOJI + ZWJ + ZWJ_EMOJI + ZWJ + ZWJ_EMOJI
+    // As an example, use MAN + ZWJ + heart + ZWJ + MAN
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manLead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(zwj));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(heart));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(zwj));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manLead));
+    EXPECT_EQ(-7, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-7, machine.finalizeAndGetBoundaryOffset());
+
+    // others + ZWJ_EMOJI + ZWJ + ZWJ_EMOJI + VS + ZWJ + ZWJ_EMOJI
+    // As an example, use MAN + ZWJ + heart + vs16 + ZWJ + MAN
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manLead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(zwj));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(vs16));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(heart));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(zwj));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manLead));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit(other));
+    EXPECT_EQ(-8, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-8, machine.finalizeAndGetBoundaryOffset());
+
+    // others(surrogate pairs) + ZWJ_EMOJI + ZWJ + ZWJ_EMOJI + VS + ZWJ + ZWJ_EMOJI
+    // As an example, use MAN + ZWJ + heart + vs16 + ZWJ + MAN
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manLead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(zwj));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(vs16));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(heart));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(zwj));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manLead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(otherTrail));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit(otherLead));
+    EXPECT_EQ(-8, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-8, machine.finalizeAndGetBoundaryOffset());
+
+    // Sot + ZWJ_EMOJI + ZWJ + ZWJ_EMOJI + VS + ZWJ + ZWJ_EMOJI
+    // As an example, use MAN + ZWJ + heart + vs16 + ZWJ + MAN
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manLead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(zwj));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(vs16));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(heart));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(zwj));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manLead));
+    EXPECT_EQ(-8, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-8, machine.finalizeAndGetBoundaryOffset());
+
+    // others + ZWJ_EMOJI + ZWJ + ZWJ_EMOJI + ZWJ + ZWJ_EMOJI + ZWJ + ZWJ_EMOJI
+    // As an example, use MAN + ZWJ + MAN + ZWJ + boy + ZWJ + BOY
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(boyTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(boyLead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(zwj));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(boyTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(boyLead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(zwj));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manLead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(zwj));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manLead));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit(other));
+    EXPECT_EQ(-11, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-11, machine.finalizeAndGetBoundaryOffset());
+
+    // others(surrogate pairs) + ZWJ_EMOJI + ZWJ + ZWJ_EMOJI + ZWJ + ZWJ_EMOJI + ZWJ + ZWJ_EMOJI
+    // As an example, use MAN + ZWJ + MAN + ZWJ + boy + ZWJ + BOY
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(boyTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(boyLead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(zwj));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(boyTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(boyLead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(zwj));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manLead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(zwj));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manLead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(otherTrail));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit(otherLead));
+    EXPECT_EQ(-11, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-11, machine.finalizeAndGetBoundaryOffset());
+
+    // Sot + ZWJ_EMOJI + ZWJ + ZWJ_EMOJI + ZWJ + ZWJ_EMOJI + ZWJ + ZWJ_EMOJI
+    // As an example, use MAN + ZWJ + MAN + ZWJ + boy + ZWJ + BOY
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(boyTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(boyLead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(zwj));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(boyTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(boyLead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(zwj));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manLead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(zwj));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manLead));
+    EXPECT_EQ(-11, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-11, machine.finalizeAndGetBoundaryOffset());
+
+    // others + ZWJ_EMOJI + ZWJ + ZWJ_EMOJI + VS + ZWJ + ZWJ_EMOJI + ZWJ + ZWJ_EMOJI
+    // As an example, use MAN + ZWJ + heart + VS + ZWJ + KISS + ZWJ + MAN
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manLead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(zwj));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(killTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(kissLead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(zwj));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(vs16));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(heart));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(zwj));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manLead));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit(other));
+    EXPECT_EQ(-11, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-11, machine.finalizeAndGetBoundaryOffset());
+
+    // others(surrogate pairs) + ZWJ_EMOJI + ZWJ + ZWJ_EMOJI + VS + ZWJ + ZWJ_EMOJI + ZWJ + ZWJ_EMOJI
+    // As an example, use MAN + ZWJ + heart + VS + ZWJ + KISS + ZWJ + MAN
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manLead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(zwj));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(killTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(kissLead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(zwj));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(vs16));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(heart));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(zwj));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manLead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(otherTrail));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit(otherLead));
+    EXPECT_EQ(-11, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-11, machine.finalizeAndGetBoundaryOffset());
+
+    // Sot + ZWJ_EMOJI + ZWJ + ZWJ_EMOJI + VS + ZWJ + ZWJ_EMOJI + ZWJ + ZWJ_EMOJI
+    // As an example, use MAN + ZWJ + heart + VS + ZWJ + KISS + ZWJ + MAN
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manLead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(zwj));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(killTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(kissLead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(zwj));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(vs16));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(heart));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(zwj));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manLead));
+    EXPECT_EQ(-11, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-11, machine.finalizeAndGetBoundaryOffset());
+
+    // Followings are not edge cases but good to check.
+    // If leading character is not zwj, delete only ZWJ_EMOJI.
+    // other + ZWJ_EMOJI
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(heart));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit(other));
+    EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset());
+
+    // other(surrogate pairs) + ZWJ_EMOJI
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(heart));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(otherTrail));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit(otherLead));
+    EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset());
+
+    // Sot + ZWJ_EMOJI
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(heart));
+    EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset());
+
+    // other + ZWJ_EMOJI(surrogate pairs)
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manLead));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit(other));
+    EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
+
+    // other(surrogate pairs) + ZWJ_EMOJI(surrogate pairs)
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manLead));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(otherTrail));
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit(otherLead));
+    EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
+
+    // Sot + ZWJ_EMOJI(surrogate pairs)
+    machine.reset();
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manTrail));
+    EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(manLead));
+    EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
+    EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
+
+    // Followings are edge case.
+    // It is hard to list all edge case patterns. Check only over deleting by ZWJ.
+    // any + ZWJ: should delete only last ZWJ.
+    machine.reset();
+    EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit(zwj));
+    EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset());
+}
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/events/AnimationEvent.h b/third_party/WebKit/Source/core/events/AnimationEvent.h
index f7a6230..4490219 100644
--- a/third_party/WebKit/Source/core/events/AnimationEvent.h
+++ b/third_party/WebKit/Source/core/events/AnimationEvent.h
@@ -34,17 +34,17 @@
 class AnimationEvent final : public Event {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<AnimationEvent> create()
+    static RawPtr<AnimationEvent> create()
     {
         return adoptRefWillBeNoop(new AnimationEvent);
     }
-    static PassRefPtrWillBeRawPtr<AnimationEvent> create(const AtomicString& type, const String& animationName, double elapsedTime)
+    static RawPtr<AnimationEvent> create(const AtomicString& type, const String& animationName, double elapsedTime)
     {
-        return adoptRefWillBeNoop(new AnimationEvent(type, animationName, elapsedTime));
+        return new AnimationEvent(type, animationName, elapsedTime);
     }
-    static PassRefPtrWillBeRawPtr<AnimationEvent> create(const AtomicString& type, const AnimationEventInit& initializer)
+    static RawPtr<AnimationEvent> create(const AtomicString& type, const AnimationEventInit& initializer)
     {
-        return adoptRefWillBeNoop(new AnimationEvent(type, initializer));
+        return new AnimationEvent(type, initializer);
     }
 
     ~AnimationEvent() override;
diff --git a/third_party/WebKit/Source/core/events/AnimationPlayerEvent.h b/third_party/WebKit/Source/core/events/AnimationPlayerEvent.h
index 1da81d15..469fb10 100644
--- a/third_party/WebKit/Source/core/events/AnimationPlayerEvent.h
+++ b/third_party/WebKit/Source/core/events/AnimationPlayerEvent.h
@@ -13,17 +13,17 @@
 class AnimationPlayerEvent final : public Event {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<AnimationPlayerEvent> create()
+    static RawPtr<AnimationPlayerEvent> create()
     {
         return adoptRefWillBeNoop(new AnimationPlayerEvent);
     }
-    static PassRefPtrWillBeRawPtr<AnimationPlayerEvent> create(const AtomicString& type, double currentTime, double timelineTime)
+    static RawPtr<AnimationPlayerEvent> create(const AtomicString& type, double currentTime, double timelineTime)
     {
-        return adoptRefWillBeNoop(new AnimationPlayerEvent(type, currentTime, timelineTime));
+        return new AnimationPlayerEvent(type, currentTime, timelineTime);
     }
-    static PassRefPtrWillBeRawPtr<AnimationPlayerEvent> create(const AtomicString& type, const AnimationPlayerEventInit& initializer)
+    static RawPtr<AnimationPlayerEvent> create(const AtomicString& type, const AnimationPlayerEventInit& initializer)
     {
-        return adoptRefWillBeNoop(new AnimationPlayerEvent(type, initializer));
+        return new AnimationPlayerEvent(type, initializer);
     }
 
     ~AnimationPlayerEvent() override;
diff --git a/third_party/WebKit/Source/core/events/ApplicationCacheErrorEvent.h b/third_party/WebKit/Source/core/events/ApplicationCacheErrorEvent.h
index e71909d7..fad86082 100644
--- a/third_party/WebKit/Source/core/events/ApplicationCacheErrorEvent.h
+++ b/third_party/WebKit/Source/core/events/ApplicationCacheErrorEvent.h
@@ -17,19 +17,19 @@
 public:
     ~ApplicationCacheErrorEvent() override;
 
-    static PassRefPtrWillBeRawPtr<ApplicationCacheErrorEvent> create()
+    static RawPtr<ApplicationCacheErrorEvent> create()
     {
         return adoptRefWillBeNoop(new ApplicationCacheErrorEvent);
     }
 
-    static PassRefPtrWillBeRawPtr<ApplicationCacheErrorEvent> create(WebApplicationCacheHost::ErrorReason reason, const String& url, int status, const String& message)
+    static RawPtr<ApplicationCacheErrorEvent> create(WebApplicationCacheHost::ErrorReason reason, const String& url, int status, const String& message)
     {
-        return adoptRefWillBeNoop(new ApplicationCacheErrorEvent(reason, url, status, message));
+        return new ApplicationCacheErrorEvent(reason, url, status, message);
     }
 
-    static PassRefPtrWillBeRawPtr<ApplicationCacheErrorEvent> create(const AtomicString& eventType, const ApplicationCacheErrorEventInit& initializer)
+    static RawPtr<ApplicationCacheErrorEvent> create(const AtomicString& eventType, const ApplicationCacheErrorEventInit& initializer)
     {
-        return adoptRefWillBeNoop(new ApplicationCacheErrorEvent(eventType, initializer));
+        return new ApplicationCacheErrorEvent(eventType, initializer);
     }
 
     const String& reason() const { return m_reason; }
diff --git a/third_party/WebKit/Source/core/events/AutocompleteErrorEvent.h b/third_party/WebKit/Source/core/events/AutocompleteErrorEvent.h
index 51fa9ab..2f8062c 100644
--- a/third_party/WebKit/Source/core/events/AutocompleteErrorEvent.h
+++ b/third_party/WebKit/Source/core/events/AutocompleteErrorEvent.h
@@ -33,19 +33,19 @@
 class AutocompleteErrorEvent final : public Event {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<AutocompleteErrorEvent> create()
+    static RawPtr<AutocompleteErrorEvent> create()
     {
         return adoptRefWillBeNoop(new AutocompleteErrorEvent);
     }
 
-    static PassRefPtrWillBeRawPtr<AutocompleteErrorEvent> create(const String& reason)
+    static RawPtr<AutocompleteErrorEvent> create(const String& reason)
     {
-        return adoptRefWillBeNoop(new AutocompleteErrorEvent(reason));
+        return new AutocompleteErrorEvent(reason);
     }
 
-    static PassRefPtrWillBeRawPtr<AutocompleteErrorEvent> create(const AtomicString& eventType, const AutocompleteErrorEventInit& initializer)
+    static RawPtr<AutocompleteErrorEvent> create(const AtomicString& eventType, const AutocompleteErrorEventInit& initializer)
     {
-        return adoptRefWillBeNoop(new AutocompleteErrorEvent(eventType, initializer));
+        return new AutocompleteErrorEvent(eventType, initializer);
     }
 
     const String& reason() const { return m_reason; }
diff --git a/third_party/WebKit/Source/core/events/BeforeTextInsertedEvent.h b/third_party/WebKit/Source/core/events/BeforeTextInsertedEvent.h
index 1a6681e..7171c0d 100644
--- a/third_party/WebKit/Source/core/events/BeforeTextInsertedEvent.h
+++ b/third_party/WebKit/Source/core/events/BeforeTextInsertedEvent.h
@@ -34,9 +34,9 @@
 public:
     ~BeforeTextInsertedEvent() override;
 
-    static PassRefPtrWillBeRawPtr<BeforeTextInsertedEvent> create(const String& text)
+    static RawPtr<BeforeTextInsertedEvent> create(const String& text)
     {
-        return adoptRefWillBeNoop(new BeforeTextInsertedEvent(text));
+        return new BeforeTextInsertedEvent(text);
     }
 
     const AtomicString& interfaceName() const override;
diff --git a/third_party/WebKit/Source/core/events/BeforeUnloadEvent.h b/third_party/WebKit/Source/core/events/BeforeUnloadEvent.h
index a4e49f42..f4970c5 100644
--- a/third_party/WebKit/Source/core/events/BeforeUnloadEvent.h
+++ b/third_party/WebKit/Source/core/events/BeforeUnloadEvent.h
@@ -34,7 +34,7 @@
 public:
     ~BeforeUnloadEvent() override;
 
-    static PassRefPtrWillBeRawPtr<BeforeUnloadEvent> create()
+    static RawPtr<BeforeUnloadEvent> create()
     {
         return adoptRefWillBeNoop(new BeforeUnloadEvent);
     }
diff --git a/third_party/WebKit/Source/core/events/ClipboardEvent.h b/third_party/WebKit/Source/core/events/ClipboardEvent.h
index 65829ae..1d35eb63 100644
--- a/third_party/WebKit/Source/core/events/ClipboardEvent.h
+++ b/third_party/WebKit/Source/core/events/ClipboardEvent.h
@@ -33,14 +33,14 @@
     DEFINE_WRAPPERTYPEINFO();
 public:
     ~ClipboardEvent() override;
-    static PassRefPtrWillBeRawPtr<ClipboardEvent> create()
+    static RawPtr<ClipboardEvent> create()
     {
-        return adoptRefWillBeNoop(new ClipboardEvent());
+        return new ClipboardEvent();
     }
 
-    static PassRefPtrWillBeRawPtr<ClipboardEvent> create(const AtomicString& type, bool canBubble, bool cancelable, DataTransfer* dataTransfer)
+    static RawPtr<ClipboardEvent> create(const AtomicString& type, bool canBubble, bool cancelable, DataTransfer* dataTransfer)
     {
-        return adoptRefWillBeNoop(new ClipboardEvent(type, canBubble, cancelable, dataTransfer));
+        return new ClipboardEvent(type, canBubble, cancelable, dataTransfer);
     }
 
     DataTransfer* clipboardData() const { return m_clipboardData.get(); }
@@ -54,7 +54,7 @@
     const AtomicString& interfaceName() const override;
     bool isClipboardEvent() const override;
 
-    PersistentWillBeMember<DataTransfer> m_clipboardData;
+    Member<DataTransfer> m_clipboardData;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/events/CompositionEvent.cpp b/third_party/WebKit/Source/core/events/CompositionEvent.cpp
index bf46606..f58fb60 100644
--- a/third_party/WebKit/Source/core/events/CompositionEvent.cpp
+++ b/third_party/WebKit/Source/core/events/CompositionEvent.cpp
@@ -32,7 +32,7 @@
 {
 }
 
-CompositionEvent::CompositionEvent(const AtomicString& type, PassRefPtrWillBeRawPtr<AbstractView> view, const String& data)
+CompositionEvent::CompositionEvent(const AtomicString& type, RawPtr<AbstractView> view, const String& data)
     : UIEvent(type, true, true, view, 0, InputDeviceCapabilities::doesntFireTouchEventsSourceCapabilities())
     , m_data(data)
 {
@@ -49,7 +49,7 @@
 {
 }
 
-void CompositionEvent::initCompositionEvent(const AtomicString& type, bool canBubble, bool cancelable, PassRefPtrWillBeRawPtr<AbstractView> view, const String& data)
+void CompositionEvent::initCompositionEvent(const AtomicString& type, bool canBubble, bool cancelable, RawPtr<AbstractView> view, const String& data)
 {
     if (dispatched())
         return;
diff --git a/third_party/WebKit/Source/core/events/CompositionEvent.h b/third_party/WebKit/Source/core/events/CompositionEvent.h
index 8acd3f6..810a180 100644
--- a/third_party/WebKit/Source/core/events/CompositionEvent.h
+++ b/third_party/WebKit/Source/core/events/CompositionEvent.h
@@ -35,24 +35,24 @@
 class CompositionEvent final : public UIEvent {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<CompositionEvent> create()
+    static RawPtr<CompositionEvent> create()
     {
         return adoptRefWillBeNoop(new CompositionEvent);
     }
 
-    static PassRefPtrWillBeRawPtr<CompositionEvent> create(const AtomicString& type, PassRefPtrWillBeRawPtr<AbstractView> view, const String& data)
+    static RawPtr<CompositionEvent> create(const AtomicString& type, RawPtr<AbstractView> view, const String& data)
     {
-        return adoptRefWillBeNoop(new CompositionEvent(type, view, data));
+        return new CompositionEvent(type, view, data);
     }
 
-    static PassRefPtrWillBeRawPtr<CompositionEvent> create(const AtomicString& type, const CompositionEventInit& initializer)
+    static RawPtr<CompositionEvent> create(const AtomicString& type, const CompositionEventInit& initializer)
     {
-        return adoptRefWillBeNoop(new CompositionEvent(type, initializer));
+        return new CompositionEvent(type, initializer);
     }
 
     ~CompositionEvent() override;
 
-    void initCompositionEvent(const AtomicString& type, bool canBubble, bool cancelable, PassRefPtrWillBeRawPtr<AbstractView>, const String& data);
+    void initCompositionEvent(const AtomicString& type, bool canBubble, bool cancelable, RawPtr<AbstractView>, const String& data);
 
     String data() const { return m_data; }
 
@@ -62,7 +62,7 @@
 
 private:
     CompositionEvent();
-    CompositionEvent(const AtomicString& type, PassRefPtrWillBeRawPtr<AbstractView>, const String&);
+    CompositionEvent(const AtomicString& type, RawPtr<AbstractView>, const String&);
     CompositionEvent(const AtomicString& type, const CompositionEventInit&);
 
     String m_data;
diff --git a/third_party/WebKit/Source/core/events/CustomEvent.h b/third_party/WebKit/Source/core/events/CustomEvent.h
index 9ae76f8..9916057 100644
--- a/third_party/WebKit/Source/core/events/CustomEvent.h
+++ b/third_party/WebKit/Source/core/events/CustomEvent.h
@@ -39,14 +39,14 @@
 public:
     ~CustomEvent() override;
 
-    static PassRefPtrWillBeRawPtr<CustomEvent> create()
+    static RawPtr<CustomEvent> create()
     {
         return adoptRefWillBeNoop(new CustomEvent);
     }
 
-    static PassRefPtrWillBeRawPtr<CustomEvent> create(const AtomicString& type, const CustomEventInit& initializer)
+    static RawPtr<CustomEvent> create(const AtomicString& type, const CustomEventInit& initializer)
     {
-        return adoptRefWillBeNoop(new CustomEvent(type, initializer));
+        return new CustomEvent(type, initializer);
     }
 
     void initCustomEvent(const AtomicString& type, bool canBubble, bool cancelable, const ScriptValue& detail);
diff --git a/third_party/WebKit/Source/core/events/DOMWindowEventQueue.cpp b/third_party/WebKit/Source/core/events/DOMWindowEventQueue.cpp
index 927fba12..f84a1018 100644
--- a/third_party/WebKit/Source/core/events/DOMWindowEventQueue.cpp
+++ b/third_party/WebKit/Source/core/events/DOMWindowEventQueue.cpp
@@ -33,8 +33,8 @@
 
 namespace blink {
 
-class DOMWindowEventQueueTimer final : public NoBaseWillBeGarbageCollectedFinalized<DOMWindowEventQueueTimer>, public SuspendableTimer {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(DOMWindowEventQueueTimer);
+class DOMWindowEventQueueTimer final : public GarbageCollectedFinalized<DOMWindowEventQueueTimer>, public SuspendableTimer {
+    USING_GARBAGE_COLLECTED_MIXIN(DOMWindowEventQueueTimer);
     WTF_MAKE_NONCOPYABLE(DOMWindowEventQueueTimer);
 public:
     DOMWindowEventQueueTimer(DOMWindowEventQueue* eventQueue, ExecutionContext* context)
@@ -55,16 +55,16 @@
 private:
     virtual void fired() { m_eventQueue->pendingEventTimerFired(); }
 
-    RawPtrWillBeMember<DOMWindowEventQueue> m_eventQueue;
+    Member<DOMWindowEventQueue> m_eventQueue;
 };
 
-PassRefPtrWillBeRawPtr<DOMWindowEventQueue> DOMWindowEventQueue::create(ExecutionContext* context)
+RawPtr<DOMWindowEventQueue> DOMWindowEventQueue::create(ExecutionContext* context)
 {
-    return adoptRefWillBeNoop(new DOMWindowEventQueue(context));
+    return new DOMWindowEventQueue(context);
 }
 
 DOMWindowEventQueue::DOMWindowEventQueue(ExecutionContext* context)
-    : m_pendingEventTimer(adoptPtrWillBeNoop(new DOMWindowEventQueueTimer(this, context)))
+    : m_pendingEventTimer(new DOMWindowEventQueueTimer(this, context))
     , m_isClosed(false)
 {
     m_pendingEventTimer->suspendIfNeeded();
@@ -83,7 +83,7 @@
     EventQueue::trace(visitor);
 }
 
-bool DOMWindowEventQueue::enqueueEvent(PassRefPtrWillBeRawPtr<Event> event)
+bool DOMWindowEventQueue::enqueueEvent(RawPtr<Event> event)
 {
     if (m_isClosed)
         return false;
@@ -102,7 +102,7 @@
 
 bool DOMWindowEventQueue::cancelEvent(Event* event)
 {
-    WillBeHeapListHashSet<RefPtrWillBeMember<Event>, 16>::iterator it = m_queuedEvents.find(event);
+    HeapListHashSet<Member<Event>, 16>::iterator it = m_queuedEvents.find(event);
     bool found = it != m_queuedEvents.end();
     if (found) {
         InspectorInstrumentation::didRemoveEvent(event->target(), event);
@@ -119,7 +119,7 @@
     m_pendingEventTimer->stop();
     if (InspectorInstrumentation::hasFrontends()) {
         for (const auto& queuedEvent : m_queuedEvents) {
-            RefPtrWillBeRawPtr<Event> event = queuedEvent;
+            RawPtr<Event> event = queuedEvent;
             if (event)
                 InspectorInstrumentation::didRemoveEvent(event->target(), event.get());
         }
@@ -137,11 +137,11 @@
     bool wasAdded = m_queuedEvents.add(nullptr).isNewEntry;
     ASSERT_UNUSED(wasAdded, wasAdded); // It should not have already been in the list.
 
-    RefPtrWillBeRawPtr<DOMWindowEventQueue> protector(this);
+    RawPtr<DOMWindowEventQueue> protector(this);
 
     while (!m_queuedEvents.isEmpty()) {
-        WillBeHeapListHashSet<RefPtrWillBeMember<Event>, 16>::iterator iter = m_queuedEvents.begin();
-        RefPtrWillBeRawPtr<Event> event = *iter;
+        HeapListHashSet<Member<Event>, 16>::iterator iter = m_queuedEvents.begin();
+        RawPtr<Event> event = *iter;
         m_queuedEvents.remove(iter);
         if (!event)
             break;
@@ -150,7 +150,7 @@
     }
 }
 
-void DOMWindowEventQueue::dispatchEvent(PassRefPtrWillBeRawPtr<Event> event)
+void DOMWindowEventQueue::dispatchEvent(RawPtr<Event> event)
 {
     EventTarget* eventTarget = event->target();
     if (eventTarget->toDOMWindow())
diff --git a/third_party/WebKit/Source/core/events/DOMWindowEventQueue.h b/third_party/WebKit/Source/core/events/DOMWindowEventQueue.h
index e05fe83..92caaf6 100644
--- a/third_party/WebKit/Source/core/events/DOMWindowEventQueue.h
+++ b/third_party/WebKit/Source/core/events/DOMWindowEventQueue.h
@@ -47,12 +47,12 @@
 
 class DOMWindowEventQueue final : DOMWINDOWEVENTQUEUE_BASE_CLASSES {
 public:
-    static PassRefPtrWillBeRawPtr<DOMWindowEventQueue> create(ExecutionContext*);
+    static RawPtr<DOMWindowEventQueue> create(ExecutionContext*);
     ~DOMWindowEventQueue() override;
 
     // EventQueue
     DECLARE_VIRTUAL_TRACE();
-    bool enqueueEvent(PassRefPtrWillBeRawPtr<Event>) override;
+    bool enqueueEvent(RawPtr<Event>) override;
     bool cancelEvent(Event*) override;
     void close() override;
 
@@ -60,10 +60,10 @@
     explicit DOMWindowEventQueue(ExecutionContext*);
 
     void pendingEventTimerFired();
-    void dispatchEvent(PassRefPtrWillBeRawPtr<Event>);
+    void dispatchEvent(RawPtr<Event>);
 
-    OwnPtrWillBeMember<DOMWindowEventQueueTimer> m_pendingEventTimer;
-    WillBeHeapListHashSet<RefPtrWillBeMember<Event>, 16> m_queuedEvents;
+    Member<DOMWindowEventQueueTimer> m_pendingEventTimer;
+    HeapListHashSet<Member<Event>, 16> m_queuedEvents;
     bool m_isClosed;
 
     friend class DOMWindowEventQueueTimer;
diff --git a/third_party/WebKit/Source/core/events/DragEvent.cpp b/third_party/WebKit/Source/core/events/DragEvent.cpp
index 7faab8b..0068b92 100644
--- a/third_party/WebKit/Source/core/events/DragEvent.cpp
+++ b/third_party/WebKit/Source/core/events/DragEvent.cpp
@@ -10,20 +10,20 @@
 
 namespace blink {
 
-PassRefPtrWillBeRawPtr<DragEvent> DragEvent::create(const AtomicString& type, bool canBubble, bool cancelable, PassRefPtrWillBeRawPtr<AbstractView> view,
+RawPtr<DragEvent> DragEvent::create(const AtomicString& type, bool canBubble, bool cancelable, RawPtr<AbstractView> view,
     int detail, int screenX, int screenY, int windowX, int windowY,
     int movementX, int movementY,
     PlatformEvent::Modifiers modifiers,
     short button, unsigned short buttons,
-    PassRefPtrWillBeRawPtr<EventTarget> relatedTarget,
+    RawPtr<EventTarget> relatedTarget,
     double platformTimeStamp, DataTransfer* dataTransfer,
     PlatformMouseEvent::SyntheticEventType syntheticEventType)
 {
-    return adoptRefWillBeNoop(new DragEvent(type, canBubble, cancelable, view,
+    return new DragEvent(type, canBubble, cancelable, view,
         detail, screenX, screenY, windowX, windowY,
         movementX, movementY,
         modifiers, button, buttons, relatedTarget, platformTimeStamp,
-        dataTransfer, syntheticEventType));
+        dataTransfer, syntheticEventType);
 }
 
 
@@ -37,11 +37,11 @@
 {
 }
 
-DragEvent::DragEvent(const AtomicString& eventType, bool canBubble, bool cancelable, PassRefPtrWillBeRawPtr<AbstractView> view,
+DragEvent::DragEvent(const AtomicString& eventType, bool canBubble, bool cancelable, RawPtr<AbstractView> view,
     int detail, int screenX, int screenY, int windowX, int windowY,
     int movementX, int movementY,
     PlatformEvent::Modifiers modifiers,
-    short button, unsigned short buttons, PassRefPtrWillBeRawPtr<EventTarget> relatedTarget,
+    short button, unsigned short buttons, RawPtr<EventTarget> relatedTarget,
     double platformTimeStamp, DataTransfer* dataTransfer,
     PlatformMouseEvent::SyntheticEventType syntheticEventType)
     : MouseEvent(eventType, canBubble, cancelable, view, detail, screenX, screenY,
@@ -71,7 +71,7 @@
     return false;
 }
 
-PassRefPtrWillBeRawPtr<EventDispatchMediator> DragEvent::createMediator()
+RawPtr<EventDispatchMediator> DragEvent::createMediator()
 {
     return DragEventDispatchMediator::create(this);
 }
@@ -82,12 +82,12 @@
     MouseEvent::trace(visitor);
 }
 
-PassRefPtrWillBeRawPtr<DragEventDispatchMediator> DragEventDispatchMediator::create(PassRefPtrWillBeRawPtr<DragEvent> dragEvent)
+RawPtr<DragEventDispatchMediator> DragEventDispatchMediator::create(RawPtr<DragEvent> dragEvent)
 {
-    return adoptRefWillBeNoop(new DragEventDispatchMediator(dragEvent));
+    return new DragEventDispatchMediator(dragEvent);
 }
 
-DragEventDispatchMediator::DragEventDispatchMediator(PassRefPtrWillBeRawPtr<DragEvent> dragEvent)
+DragEventDispatchMediator::DragEventDispatchMediator(RawPtr<DragEvent> dragEvent)
     : EventDispatchMediator(dragEvent)
 {
 }
diff --git a/third_party/WebKit/Source/core/events/DragEvent.h b/third_party/WebKit/Source/core/events/DragEvent.h
index cb81af9..8243671 100644
--- a/third_party/WebKit/Source/core/events/DragEvent.h
+++ b/third_party/WebKit/Source/core/events/DragEvent.h
@@ -17,27 +17,27 @@
     DEFINE_WRAPPERTYPEINFO();
 
 public:
-    static PassRefPtrWillBeRawPtr<DragEvent> create()
+    static RawPtr<DragEvent> create()
     {
         return adoptRefWillBeNoop(new DragEvent);
     }
 
-    static PassRefPtrWillBeRawPtr<DragEvent> create(DataTransfer* dataTransfer)
+    static RawPtr<DragEvent> create(DataTransfer* dataTransfer)
     {
-        return adoptRefWillBeNoop(new DragEvent(dataTransfer));
+        return new DragEvent(dataTransfer);
     }
 
-    static PassRefPtrWillBeRawPtr<DragEvent> create(const AtomicString& type, bool canBubble, bool cancelable, PassRefPtrWillBeRawPtr<AbstractView>,
+    static RawPtr<DragEvent> create(const AtomicString& type, bool canBubble, bool cancelable, RawPtr<AbstractView>,
         int detail, int screenX, int screenY, int windowX, int windowY,
         int movementX, int movementY,
         PlatformEvent::Modifiers, short button, unsigned short buttons,
-        PassRefPtrWillBeRawPtr<EventTarget> relatedTarget,
+        RawPtr<EventTarget> relatedTarget,
         double platformTimeStamp, DataTransfer*,
         PlatformMouseEvent::SyntheticEventType = PlatformMouseEvent::RealOrIndistinguishable);
 
-    static PassRefPtrWillBeRawPtr<DragEvent> create(const AtomicString& type, const DragEventInit& initializer)
+    static RawPtr<DragEvent> create(const AtomicString& type, const DragEventInit& initializer)
     {
-        return adoptRefWillBeNoop(new DragEvent(type, initializer));
+        return new DragEvent(type, initializer);
     }
 
     DataTransfer* getDataTransfer() const override { return isDragEvent() ? m_dataTransfer.get() : nullptr; }
@@ -45,32 +45,32 @@
     bool isDragEvent() const override;
     bool isMouseEvent() const override;
 
-    PassRefPtrWillBeRawPtr<EventDispatchMediator> createMediator() override;
+    RawPtr<EventDispatchMediator> createMediator() override;
 
     DECLARE_VIRTUAL_TRACE();
 
 private:
     DragEvent();
     DragEvent(DataTransfer*);
-    DragEvent(const AtomicString& type, bool canBubble, bool cancelable, PassRefPtrWillBeRawPtr<AbstractView>,
+    DragEvent(const AtomicString& type, bool canBubble, bool cancelable, RawPtr<AbstractView>,
         int detail, int screenX, int screenY, int windowX, int windowY,
         int movementX, int movementY,
         PlatformEvent::Modifiers, short button, unsigned short buttons,
-        PassRefPtrWillBeRawPtr<EventTarget> relatedTarget,
+        RawPtr<EventTarget> relatedTarget,
         double platformTimeStamp, DataTransfer*,
         PlatformMouseEvent::SyntheticEventType);
 
     DragEvent(const AtomicString& type, const DragEventInit&);
 
-    PersistentWillBeMember<DataTransfer> m_dataTransfer;
+    Member<DataTransfer> m_dataTransfer;
 };
 
 class DragEventDispatchMediator final : public EventDispatchMediator {
 public:
-    static PassRefPtrWillBeRawPtr<DragEventDispatchMediator> create(PassRefPtrWillBeRawPtr<DragEvent>);
+    static RawPtr<DragEventDispatchMediator> create(RawPtr<DragEvent>);
 
 private:
-    explicit DragEventDispatchMediator(PassRefPtrWillBeRawPtr<DragEvent>);
+    explicit DragEventDispatchMediator(RawPtr<DragEvent>);
     DragEvent& event() const;
     DispatchEventResult dispatchEvent(EventDispatcher&) const override;
 };
diff --git a/third_party/WebKit/Source/core/events/ErrorEvent.h b/third_party/WebKit/Source/core/events/ErrorEvent.h
index 2b0f7118..434b80fc 100644
--- a/third_party/WebKit/Source/core/events/ErrorEvent.h
+++ b/third_party/WebKit/Source/core/events/ErrorEvent.h
@@ -42,21 +42,21 @@
 class ErrorEvent final : public Event {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<ErrorEvent> create()
+    static RawPtr<ErrorEvent> create()
     {
         return adoptRefWillBeNoop(new ErrorEvent);
     }
-    static PassRefPtrWillBeRawPtr<ErrorEvent> create(const String& message, const String& fileName, unsigned lineNumber, unsigned columnNumber, DOMWrapperWorld* world)
+    static RawPtr<ErrorEvent> create(const String& message, const String& fileName, unsigned lineNumber, unsigned columnNumber, DOMWrapperWorld* world)
     {
-        return adoptRefWillBeNoop(new ErrorEvent(message, fileName, lineNumber, columnNumber, world));
+        return new ErrorEvent(message, fileName, lineNumber, columnNumber, world);
     }
-    static PassRefPtrWillBeRawPtr<ErrorEvent> create(const AtomicString& type, const ErrorEventInit& initializer)
+    static RawPtr<ErrorEvent> create(const AtomicString& type, const ErrorEventInit& initializer)
     {
-        return adoptRefWillBeNoop(new ErrorEvent(type, initializer));
+        return new ErrorEvent(type, initializer);
     }
-    static PassRefPtrWillBeRawPtr<ErrorEvent> createSanitizedError(DOMWrapperWorld* world)
+    static RawPtr<ErrorEvent> createSanitizedError(DOMWrapperWorld* world)
     {
-        return adoptRefWillBeNoop(new ErrorEvent("Script error.", String(), 0, 0, world));
+        return new ErrorEvent("Script error.", String(), 0, 0, world);
     }
     ~ErrorEvent() override;
 
diff --git a/third_party/WebKit/Source/core/events/Event.cpp b/third_party/WebKit/Source/core/events/Event.cpp
index 7457ae6..14ef5bb 100644
--- a/third_party/WebKit/Source/core/events/Event.cpp
+++ b/third_party/WebKit/Source/core/events/Event.cpp
@@ -241,7 +241,7 @@
         m_defaultPrevented = true;
 }
 
-void Event::setTarget(PassRefPtrWillBeRawPtr<EventTarget> target)
+void Event::setTarget(RawPtr<EventTarget> target)
 {
     if (m_target == target)
         return;
@@ -255,7 +255,7 @@
 {
 }
 
-void Event::setUnderlyingEvent(PassRefPtrWillBeRawPtr<Event> ue)
+void Event::setUnderlyingEvent(RawPtr<Event> ue)
 {
     // Prohibit creation of a cycle -- just do nothing in that case.
     for (Event* e = ue.get(); e; e = e->underlyingEvent())
@@ -267,23 +267,23 @@
 void Event::initEventPath(Node& node)
 {
     if (!m_eventPath) {
-        m_eventPath = adoptPtrWillBeNoop(new EventPath(node, this));
+        m_eventPath = new EventPath(node, this);
     } else {
         m_eventPath->initializeWith(node, this);
     }
 }
 
-WillBeHeapVector<RefPtrWillBeMember<EventTarget>> Event::path(ScriptState* scriptState) const
+HeapVector<Member<EventTarget>> Event::path(ScriptState* scriptState) const
 {
     return pathInternal(scriptState, NonEmptyAfterDispatch);
 }
 
-WillBeHeapVector<RefPtrWillBeMember<EventTarget>> Event::deepPath(ScriptState* scriptState) const
+HeapVector<Member<EventTarget>> Event::deepPath(ScriptState* scriptState) const
 {
     return pathInternal(scriptState, EmptyAfterDispatch);
 }
 
-WillBeHeapVector<RefPtrWillBeMember<EventTarget>> Event::pathInternal(ScriptState* scriptState, EventPathMode mode) const
+HeapVector<Member<EventTarget>> Event::pathInternal(ScriptState* scriptState, EventPathMode mode) const
 {
     if (m_target)
         OriginsUsingFeatures::countOriginOrIsolatedWorldHumanReadableName(scriptState, *m_target, OriginsUsingFeatures::Feature::EventPath);
@@ -292,12 +292,12 @@
         ASSERT(m_eventPhase == Event::NONE);
         if (!m_eventPath) {
             // Before dispatching the event
-            return WillBeHeapVector<RefPtrWillBeMember<EventTarget>>();
+            return HeapVector<Member<EventTarget>>();
         }
         ASSERT(!m_eventPath->isEmpty());
         // After dispatching the event
         if (mode == EmptyAfterDispatch)
-            return WillBeHeapVector<RefPtrWillBeMember<EventTarget>>();
+            return HeapVector<Member<EventTarget>>();
         return m_eventPath->last().treeScopeEventContext().ensureEventPath(*m_eventPath);
     }
 
@@ -315,12 +315,12 @@
     // Returns [window] for events that are directly dispatched to the window object;
     // e.g., window.load, pageshow, etc.
     if (LocalDOMWindow* window = m_currentTarget->toDOMWindow())
-        return WillBeHeapVector<RefPtrWillBeMember<EventTarget>>(1, window);
+        return HeapVector<Member<EventTarget>>(1, window);
 
-    return WillBeHeapVector<RefPtrWillBeMember<EventTarget>>();
+    return HeapVector<Member<EventTarget>>();
 }
 
-PassRefPtrWillBeRawPtr<EventDispatchMediator> Event::createMediator()
+RawPtr<EventDispatchMediator> Event::createMediator()
 {
     return EventDispatchMediator::create(this);
 }
diff --git a/third_party/WebKit/Source/core/events/Event.h b/third_party/WebKit/Source/core/events/Event.h
index 2cffacc1..01405224 100644
--- a/third_party/WebKit/Source/core/events/Event.h
+++ b/third_party/WebKit/Source/core/events/Event.h
@@ -40,7 +40,7 @@
 class EventTarget;
 class ExecutionContext;
 
-class CORE_EXPORT Event : public RefCountedWillBeGarbageCollectedFinalized<Event>,  public ScriptWrappable {
+class CORE_EXPORT Event : public GarbageCollectedFinalized<Event>,  public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
     enum PhaseType {
@@ -75,7 +75,7 @@
         RailsModeVertical   = 2
     };
 
-    static PassRefPtrWillBeRawPtr<Event> create()
+    static RawPtr<Event> create()
     {
         return adoptRefWillBeNoop(new Event);
     }
@@ -83,26 +83,26 @@
     // A factory for a simple event. The event doesn't bubble, and isn't
     // cancelable.
     // http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#fire-a-simple-event
-    static PassRefPtrWillBeRawPtr<Event> create(const AtomicString& type)
+    static RawPtr<Event> create(const AtomicString& type)
     {
-        return adoptRefWillBeNoop(new Event(type, false, false));
+        return new Event(type, false, false);
     }
-    static PassRefPtrWillBeRawPtr<Event> createCancelable(const AtomicString& type)
+    static RawPtr<Event> createCancelable(const AtomicString& type)
     {
-        return adoptRefWillBeNoop(new Event(type, false, true));
+        return new Event(type, false, true);
     }
-    static PassRefPtrWillBeRawPtr<Event> createBubble(const AtomicString& type)
+    static RawPtr<Event> createBubble(const AtomicString& type)
     {
-        return adoptRefWillBeNoop(new Event(type, true, false));
+        return new Event(type, true, false);
     }
-    static PassRefPtrWillBeRawPtr<Event> createCancelableBubble(const AtomicString& type)
+    static RawPtr<Event> createCancelableBubble(const AtomicString& type)
     {
-        return adoptRefWillBeNoop(new Event(type, true, true));
+        return new Event(type, true, true);
     }
 
-    static PassRefPtrWillBeRawPtr<Event> create(const AtomicString& type, const EventInit& initializer)
+    static RawPtr<Event> create(const AtomicString& type, const EventInit& initializer)
     {
-        return adoptRefWillBeNoop(new Event(type, initializer));
+        return new Event(type, initializer);
     }
 
     virtual ~Event();
@@ -114,7 +114,7 @@
     void setType(const AtomicString& type) { m_type = type; }
 
     EventTarget* target() const { return m_target.get(); }
-    void setTarget(PassRefPtrWillBeRawPtr<EventTarget>);
+    void setTarget(RawPtr<EventTarget>);
 
     EventTarget* currentTarget() const;
     void setCurrentTarget(EventTarget* currentTarget) { m_currentTarget = currentTarget; }
@@ -183,13 +183,13 @@
     void setCancelBubble(bool cancel) { m_cancelBubble = cancel; }
 
     Event* underlyingEvent() const { return m_underlyingEvent.get(); }
-    void setUnderlyingEvent(PassRefPtrWillBeRawPtr<Event>);
+    void setUnderlyingEvent(RawPtr<Event>);
 
     EventPath& eventPath() { ASSERT(m_eventPath); return *m_eventPath; }
     void initEventPath(Node&);
 
-    WillBeHeapVector<RefPtrWillBeMember<EventTarget>> path(ScriptState*) const;
-    WillBeHeapVector<RefPtrWillBeMember<EventTarget>> deepPath(ScriptState*) const;
+    HeapVector<Member<EventTarget>> path(ScriptState*) const;
+    HeapVector<Member<EventTarget>> deepPath(ScriptState*) const;
 
     bool isBeingDispatched() const { return eventPhase(); }
 
@@ -197,7 +197,7 @@
     // ErrorEvent behaves, can override this method.
     virtual bool canBeDispatchedInWorld(const DOMWrapperWorld&) const { return true; }
 
-    virtual PassRefPtrWillBeRawPtr<EventDispatchMediator> createMediator();
+    virtual RawPtr<EventDispatchMediator> createMediator();
 
     bool isTrusted() const { return m_isTrusted; }
     void setTrusted(bool value) { m_isTrusted = value; }
@@ -227,7 +227,7 @@
         NonEmptyAfterDispatch
     };
 
-    WillBeHeapVector<RefPtrWillBeMember<EventTarget>> pathInternal(ScriptState*, EventPathMode) const;
+    HeapVector<Member<EventTarget>> pathInternal(ScriptState*, EventPathMode) const;
 
     AtomicString m_type;
     unsigned m_canBubble:1;
@@ -244,11 +244,11 @@
     unsigned m_handlingPassive : 1;
 
     unsigned short m_eventPhase;
-    RefPtrWillBeMember<EventTarget> m_currentTarget;
-    RefPtrWillBeMember<EventTarget> m_target;
+    Member<EventTarget> m_currentTarget;
+    Member<EventTarget> m_target;
     DOMTimeStamp m_createTime;
-    RefPtrWillBeMember<Event> m_underlyingEvent;
-    OwnPtrWillBeMember<EventPath> m_eventPath;
+    Member<Event> m_underlyingEvent;
+    Member<EventPath> m_eventPath;
     // The monotonic platform time in seconds, for input events it is the
     // event timestamp provided by the host OS and reported in the original
     // WebInputEvent instance.
diff --git a/third_party/WebKit/Source/core/events/EventDispatchMediator.cpp b/third_party/WebKit/Source/core/events/EventDispatchMediator.cpp
index f66869a..fa817a8 100644
--- a/third_party/WebKit/Source/core/events/EventDispatchMediator.cpp
+++ b/third_party/WebKit/Source/core/events/EventDispatchMediator.cpp
@@ -35,12 +35,12 @@
 
 namespace blink {
 
-PassRefPtrWillBeRawPtr<EventDispatchMediator> EventDispatchMediator::create(PassRefPtrWillBeRawPtr<Event> event)
+RawPtr<EventDispatchMediator> EventDispatchMediator::create(RawPtr<Event> event)
 {
-    return adoptRefWillBeNoop(new EventDispatchMediator(event));
+    return new EventDispatchMediator(event);
 }
 
-EventDispatchMediator::EventDispatchMediator(PassRefPtrWillBeRawPtr<Event> event)
+EventDispatchMediator::EventDispatchMediator(RawPtr<Event> event)
     : m_event(event)
 {
 }
diff --git a/third_party/WebKit/Source/core/events/EventDispatchMediator.h b/third_party/WebKit/Source/core/events/EventDispatchMediator.h
index 19425685..a090a63 100644
--- a/third_party/WebKit/Source/core/events/EventDispatchMediator.h
+++ b/third_party/WebKit/Source/core/events/EventDispatchMediator.h
@@ -42,21 +42,21 @@
 class Event;
 class EventDispatcher;
 
-class EventDispatchMediator : public RefCountedWillBeGarbageCollectedFinalized<EventDispatchMediator> {
+class EventDispatchMediator : public GarbageCollectedFinalized<EventDispatchMediator> {
 public:
-    static PassRefPtrWillBeRawPtr<EventDispatchMediator> create(PassRefPtrWillBeRawPtr<Event>);
+    static RawPtr<EventDispatchMediator> create(RawPtr<Event>);
     virtual ~EventDispatchMediator() { }
     DECLARE_VIRTUAL_TRACE();
     virtual DispatchEventResult dispatchEvent(EventDispatcher&) const;
     Event& event() const { return *m_event; }
 
 protected:
-    explicit EventDispatchMediator(PassRefPtrWillBeRawPtr<Event>);
+    explicit EventDispatchMediator(RawPtr<Event>);
     EventDispatchMediator() { }
-    void setEvent(PassRefPtrWillBeRawPtr<Event> event) { ASSERT(event.get()); m_event = event; }
+    void setEvent(RawPtr<Event> event) { ASSERT(event.get()); m_event = event; }
 
 private:
-    RefPtrWillBeMember<Event> m_event;
+    Member<Event> m_event;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/events/EventDispatcher.cpp b/third_party/WebKit/Source/core/events/EventDispatcher.cpp
index 5f882c2..5a51d61 100644
--- a/third_party/WebKit/Source/core/events/EventDispatcher.cpp
+++ b/third_party/WebKit/Source/core/events/EventDispatcher.cpp
@@ -41,7 +41,7 @@
 
 namespace blink {
 
-DispatchEventResult EventDispatcher::dispatchEvent(Node& node, PassRefPtrWillBeRawPtr<EventDispatchMediator> mediator)
+DispatchEventResult EventDispatcher::dispatchEvent(Node& node, RawPtr<EventDispatchMediator> mediator)
 {
     TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("blink.debug"), "EventDispatcher::dispatchEvent");
     ASSERT(!EventDispatchForbiddenScope::isEventDispatchForbidden());
@@ -49,7 +49,7 @@
     return mediator->dispatchEvent(dispatcher);
 }
 
-EventDispatcher::EventDispatcher(Node& node, PassRefPtrWillBeRawPtr<Event> event)
+EventDispatcher::EventDispatcher(Node& node, RawPtr<Event> event)
     : m_node(node)
     , m_event(event)
 #if ENABLE(ASSERT)
@@ -61,7 +61,7 @@
     m_event->initEventPath(*m_node);
 }
 
-void EventDispatcher::dispatchScopedEvent(Node& node, PassRefPtrWillBeRawPtr<EventDispatchMediator> mediator)
+void EventDispatcher::dispatchScopedEvent(Node& node, RawPtr<EventDispatchMediator> mediator)
 {
     // We need to set the target here because it can go away by the time we actually fire the event.
     mediator->event().setTarget(EventPath::eventTargetRespectingTargetRules(node));
@@ -73,7 +73,7 @@
     // This persistent vector doesn't cause leaks, because added Nodes are removed
     // before dispatchSimulatedClick() returns. This vector is here just to prevent
     // the code from running into an infinite recursion of dispatchSimulatedClick().
-    DEFINE_STATIC_LOCAL(OwnPtrWillBePersistent<WillBeHeapHashSet<RawPtrWillBeMember<Node>>>, nodesDispatchingSimulatedClicks, (adoptPtrWillBeNoop(new WillBeHeapHashSet<RawPtrWillBeMember<Node>>())));
+    DEFINE_STATIC_LOCAL(Persistent<HeapHashSet<Member<Node>>>, nodesDispatchingSimulatedClicks, (new HeapHashSet<Member<Node>>()));
 
     if (isDisabledFormControl(&node))
         return;
diff --git a/third_party/WebKit/Source/core/events/EventDispatcher.h b/third_party/WebKit/Source/core/events/EventDispatcher.h
index 972fa214..5a543fa 100644
--- a/third_party/WebKit/Source/core/events/EventDispatcher.h
+++ b/third_party/WebKit/Source/core/events/EventDispatcher.h
@@ -49,8 +49,8 @@
 class EventDispatcher {
     STACK_ALLOCATED();
 public:
-    static DispatchEventResult dispatchEvent(Node&, PassRefPtrWillBeRawPtr<EventDispatchMediator>);
-    static void dispatchScopedEvent(Node&, PassRefPtrWillBeRawPtr<EventDispatchMediator>);
+    static DispatchEventResult dispatchEvent(Node&, RawPtr<EventDispatchMediator>);
+    static void dispatchScopedEvent(Node&, RawPtr<EventDispatchMediator>);
 
     static void dispatchSimulatedClick(Node&, Event* underlyingEvent, SimulatedClickMouseEventOptions, SimulatedClickCreationScope);
 
@@ -59,7 +59,7 @@
     Event& event() const { return *m_event; }
 
 private:
-    EventDispatcher(Node&, PassRefPtrWillBeRawPtr<Event>);
+    EventDispatcher(Node&, RawPtr<Event>);
 
     EventDispatchContinuation dispatchEventPreProcess(void*& preDispatchEventHandlerResult);
     EventDispatchContinuation dispatchEventAtCapturing();
@@ -67,9 +67,9 @@
     void dispatchEventAtBubbling();
     void dispatchEventPostProcess(void* preDispatchEventHandlerResult);
 
-    RefPtrWillBeMember<Node> m_node;
-    RefPtrWillBeMember<Event> m_event;
-    RefPtrWillBeMember<FrameView> m_view;
+    Member<Node> m_node;
+    Member<Event> m_event;
+    Member<FrameView> m_view;
 #if ENABLE(ASSERT)
     bool m_eventDispatched;
 #endif
diff --git a/third_party/WebKit/Source/core/events/EventFactory.h b/third_party/WebKit/Source/core/events/EventFactory.h
index b830dc99..7b97af0 100644
--- a/third_party/WebKit/Source/core/events/EventFactory.h
+++ b/third_party/WebKit/Source/core/events/EventFactory.h
@@ -39,7 +39,7 @@
 class EventFactoryBase {
     USING_FAST_MALLOC(EventFactoryBase);
 public:
-    virtual PassRefPtrWillBeRawPtr<Event> create(ExecutionContext*, const String& eventType) = 0;
+    virtual RawPtr<Event> create(ExecutionContext*, const String& eventType) = 0;
     virtual ~EventFactoryBase() { }
 
 protected:
@@ -53,7 +53,7 @@
         return adoptPtr(new EventFactory());
     }
 
-    PassRefPtrWillBeRawPtr<Event> create(ExecutionContext*, const String& eventType) override;
+    RawPtr<Event> create(ExecutionContext*, const String& eventType) override;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/events/EventListener.h b/third_party/WebKit/Source/core/events/EventListener.h
index b2bb559a..e85c5e0b 100644
--- a/third_party/WebKit/Source/core/events/EventListener.h
+++ b/third_party/WebKit/Source/core/events/EventListener.h
@@ -31,7 +31,7 @@
 class Event;
 class ExecutionContext;
 
-class CORE_EXPORT EventListener : public RefCountedWillBeGarbageCollectedFinalized<EventListener> {
+class CORE_EXPORT EventListener : public GarbageCollectedFinalized<EventListener> {
 public:
     enum ListenerType {
         JSEventListenerType,
diff --git a/third_party/WebKit/Source/core/events/EventListenerMap.cpp b/third_party/WebKit/Source/core/events/EventListenerMap.cpp
index bc20b40..e863085 100644
--- a/third_party/WebKit/Source/core/events/EventListenerMap.cpp
+++ b/third_party/WebKit/Source/core/events/EventListenerMap.cpp
@@ -106,7 +106,7 @@
     return types;
 }
 
-static bool addListenerToVector(EventListenerVector* vector, PassRefPtrWillBeRawPtr<EventListener> listener, const EventListenerOptions& options)
+static bool addListenerToVector(EventListenerVector* vector, RawPtr<EventListener> listener, const EventListenerOptions& options)
 {
     RegisteredEventListener registeredListener(listener, options);
 
@@ -117,7 +117,7 @@
     return true;
 }
 
-bool EventListenerMap::add(const AtomicString& eventType, PassRefPtrWillBeRawPtr<EventListener> listener, const EventListenerOptions& options)
+bool EventListenerMap::add(const AtomicString& eventType, RawPtr<EventListener> listener, const EventListenerOptions& options)
 {
     assertNoActiveIterators();
 
diff --git a/third_party/WebKit/Source/core/events/EventListenerMap.h b/third_party/WebKit/Source/core/events/EventListenerMap.h
index 808b10a..bed3e923 100644
--- a/third_party/WebKit/Source/core/events/EventListenerMap.h
+++ b/third_party/WebKit/Source/core/events/EventListenerMap.h
@@ -44,7 +44,7 @@
 
 class EventTarget;
 
-using EventListenerVector = WillBeHeapVector<RegisteredEventListener, 1>;
+using EventListenerVector = HeapVector<RegisteredEventListener, 1>;
 
 class CORE_EXPORT EventListenerMap {
     WTF_MAKE_NONCOPYABLE(EventListenerMap);
@@ -57,7 +57,7 @@
     bool containsCapturing(const AtomicString& eventType) const;
 
     void clear();
-    bool add(const AtomicString& eventType, PassRefPtrWillBeRawPtr<EventListener>, const EventListenerOptions&);
+    bool add(const AtomicString& eventType, RawPtr<EventListener>, const EventListenerOptions&);
     bool remove(const AtomicString& eventType, EventListener*, const EventListenerOptions&, size_t& indexOfRemovedListener);
     EventListenerVector* find(const AtomicString& eventType);
     Vector<AtomicString> eventTypes() const;
@@ -71,7 +71,7 @@
 
     void assertNoActiveIterators();
 
-    WillBeHeapVector<std::pair<AtomicString, OwnPtrWillBeMember<EventListenerVector>>, 2> m_entries;
+    HeapVector<std::pair<AtomicString, Member<EventListenerVector>>, 2> m_entries;
 
 #if ENABLE(ASSERT)
     int m_activeIteratorCount;
diff --git a/third_party/WebKit/Source/core/events/EventPath.cpp b/third_party/WebKit/Source/core/events/EventPath.cpp
index 66442994..8570112 100644
--- a/third_party/WebKit/Source/core/events/EventPath.cpp
+++ b/third_party/WebKit/Source/core/events/EventPath.cpp
@@ -99,13 +99,13 @@
     // path using as few bytes as possible and with as few allocations
     // as possible which is why we gather the data on the stack before
     // storing it in a perfectly sized m_nodeEventContexts Vector.
-    WillBeHeapVector<RawPtrWillBeMember<Node>, 64> nodesInPath;
+    HeapVector<Member<Node>, 64> nodesInPath;
     Node* current = m_node;
     nodesInPath.append(current);
     while (current) {
         if (m_event && current->keepEventInNode(m_event))
             break;
-        WillBeHeapVector<RawPtrWillBeMember<InsertionPoint>, 8> insertionPoints;
+        HeapVector<Member<InsertionPoint>, 8> insertionPoints;
         collectDestinationInsertionPoints(*current, insertionPoints);
         if (!insertionPoints.isEmpty()) {
             for (const auto& insertionPoint : insertionPoints) {
@@ -159,7 +159,7 @@
     // Precondition:
     //   - TreeScopes in m_treeScopeEventContexts must be *connected* in the same composed tree.
     //   - The root tree must be included.
-    WillBeHeapHashMap<RawPtrWillBeMember<const TreeScope>, RawPtrWillBeMember<TreeScopeEventContext>> treeScopeEventContextMap;
+    HeapHashMap<Member<const TreeScope>, Member<TreeScopeEventContext>> treeScopeEventContextMap;
     for (const auto& treeScopeEventContext : m_treeScopeEventContexts)
         treeScopeEventContextMap.add(&treeScopeEventContext->treeScope(), treeScopeEventContext.get());
     TreeScopeEventContext* rootTree = nullptr;
@@ -228,7 +228,7 @@
 
 void EventPath::buildRelatedNodeMap(const Node& relatedNode, RelatedTargetMap& relatedTargetMap)
 {
-    OwnPtrWillBeRawPtr<EventPath> relatedTargetEventPath = adoptPtrWillBeNoop(new EventPath(const_cast<Node&>(relatedNode)));
+    RawPtr<EventPath> relatedTargetEventPath = new EventPath(const_cast<Node&>(relatedNode));
     for (size_t i = 0; i < relatedTargetEventPath->m_treeScopeEventContexts.size(); ++i) {
         TreeScopeEventContext* treeScopeEventContext = relatedTargetEventPath->m_treeScopeEventContexts[i].get();
         relatedTargetMap.add(&treeScopeEventContext->treeScope(), treeScopeEventContext->target());
@@ -242,7 +242,7 @@
 
 EventTarget* EventPath::findRelatedNode(TreeScope& scope, RelatedTargetMap& relatedTargetMap)
 {
-    WillBeHeapVector<RawPtrWillBeMember<TreeScope>, 32> parentTreeScopes;
+    HeapVector<Member<TreeScope>, 32> parentTreeScopes;
     EventTarget* relatedNode = nullptr;
     for (TreeScope* current = &scope; current; current = current->olderShadowRootOrParentTreeScope()) {
         parentTreeScopes.append(current);
@@ -304,10 +304,10 @@
 
 void EventPath::adjustForTouchEvent(TouchEvent& touchEvent)
 {
-    WillBeHeapVector<RawPtrWillBeMember<TouchList>> adjustedTouches;
-    WillBeHeapVector<RawPtrWillBeMember<TouchList>> adjustedTargetTouches;
-    WillBeHeapVector<RawPtrWillBeMember<TouchList>> adjustedChangedTouches;
-    WillBeHeapVector<RawPtrWillBeMember<TreeScope>> treeScopes;
+    HeapVector<Member<TouchList>> adjustedTouches;
+    HeapVector<Member<TouchList>> adjustedTargetTouches;
+    HeapVector<Member<TouchList>> adjustedChangedTouches;
+    HeapVector<Member<TreeScope>> treeScopes;
 
     for (const auto& treeScopeEventContext : m_treeScopeEventContexts) {
         TouchEventContext* touchEventContext = treeScopeEventContext->ensureTouchEventContext();
@@ -332,7 +332,7 @@
 #endif
 }
 
-void EventPath::adjustTouchList(const TouchList* touchList, WillBeHeapVector<RawPtrWillBeMember<TouchList>> adjustedTouchList, const WillBeHeapVector<RawPtrWillBeMember<TreeScope>>& treeScopes)
+void EventPath::adjustTouchList(const TouchList* touchList, HeapVector<Member<TouchList>> adjustedTouchList, const HeapVector<Member<TreeScope>>& treeScopes)
 {
     if (!touchList)
         return;
@@ -363,7 +363,7 @@
 {
     ASSERT(m_event);
     if (!m_windowEventContext)
-        m_windowEventContext = adoptPtrWillBeNoop(new WindowEventContext(*m_event, topNodeEventContext()));
+        m_windowEventContext = new WindowEventContext(*m_event, topNodeEventContext());
 }
 
 #if ENABLE(ASSERT)
diff --git a/third_party/WebKit/Source/core/events/EventPath.h b/third_party/WebKit/Source/core/events/EventPath.h
index 467a98a..efaf18d 100644
--- a/third_party/WebKit/Source/core/events/EventPath.h
+++ b/third_party/WebKit/Source/core/events/EventPath.h
@@ -44,8 +44,7 @@
 class TouchList;
 class TreeScope;
 
-class CORE_EXPORT EventPath final : public NoBaseWillBeGarbageCollectedFinalized<EventPath> {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(EventPath);
+class CORE_EXPORT EventPath final : public GarbageCollectedFinalized<EventPath> {
     WTF_MAKE_NONCOPYABLE(EventPath);
 public:
     explicit EventPath(Node&, Event* = nullptr);
@@ -86,12 +85,12 @@
     void shrink(size_t newSize) { ASSERT(!m_windowEventContext); m_nodeEventContexts.shrink(newSize); }
     void shrinkIfNeeded(const Node& target, const EventTarget& relatedTarget);
 
-    void adjustTouchList(const TouchList*, WillBeHeapVector<RawPtrWillBeMember<TouchList>> adjustedTouchList, const WillBeHeapVector<RawPtrWillBeMember<TreeScope>>& treeScopes);
+    void adjustTouchList(const TouchList*, HeapVector<Member<TouchList>> adjustedTouchList, const HeapVector<Member<TreeScope>>& treeScopes);
 
-    using TreeScopeEventContextMap = WillBeHeapHashMap<RawPtrWillBeMember<TreeScope>, RefPtrWillBeMember<TreeScopeEventContext>>;
+    using TreeScopeEventContextMap = HeapHashMap<Member<TreeScope>, Member<TreeScopeEventContext>>;
     TreeScopeEventContext* ensureTreeScopeEventContext(Node* currentTarget, TreeScope*, TreeScopeEventContextMap&);
 
-    using RelatedTargetMap = WillBeHeapHashMap<RawPtrWillBeMember<TreeScope>, RawPtrWillBeMember<EventTarget>>;
+    using RelatedTargetMap = HeapHashMap<Member<TreeScope>, Member<EventTarget>>;
 
     static void buildRelatedNodeMap(const Node&, RelatedTargetMap&);
     static EventTarget* findRelatedNode(TreeScope&, RelatedTargetMap&);
@@ -102,11 +101,11 @@
 
     const NodeEventContext& topNodeEventContext();
 
-    WillBeHeapVector<NodeEventContext> m_nodeEventContexts;
-    RawPtrWillBeMember<Node> m_node;
-    RawPtrWillBeMember<Event> m_event;
-    WillBeHeapVector<RefPtrWillBeMember<TreeScopeEventContext>> m_treeScopeEventContexts;
-    OwnPtrWillBeMember<WindowEventContext> m_windowEventContext;
+    HeapVector<NodeEventContext> m_nodeEventContexts;
+    Member<Node> m_node;
+    Member<Event> m_event;
+    HeapVector<Member<TreeScopeEventContext>> m_treeScopeEventContexts;
+    Member<WindowEventContext> m_windowEventContext;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/events/EventPathTest.cpp b/third_party/WebKit/Source/core/events/EventPathTest.cpp
index eb75b01..06c5ba10 100644
--- a/third_party/WebKit/Source/core/events/EventPathTest.cpp
+++ b/third_party/WebKit/Source/core/events/EventPathTest.cpp
@@ -30,8 +30,8 @@
 
 TEST_F(EventPathTest, ShouldBeEmptyForPseudoElementWithoutParentElement)
 {
-    RefPtrWillBeRawPtr<Element> div = document().createElement(HTMLNames::divTag, false);
-    RefPtrWillBeRawPtr<PseudoElement> pseudo = PseudoElement::create(div.get(), PseudoIdFirstLetter);
+    RawPtr<Element> div = document().createElement(HTMLNames::divTag, false);
+    RawPtr<PseudoElement> pseudo = PseudoElement::create(div.get(), PseudoIdFirstLetter);
     pseudo->dispose();
     EventPath eventPath(*pseudo);
     EXPECT_TRUE(eventPath.isEmpty());
diff --git a/third_party/WebKit/Source/core/events/EventQueue.h b/third_party/WebKit/Source/core/events/EventQueue.h
index e865fab..fec6b8d 100644
--- a/third_party/WebKit/Source/core/events/EventQueue.h
+++ b/third_party/WebKit/Source/core/events/EventQueue.h
@@ -37,11 +37,11 @@
 
 class Event;
 
-class CORE_EXPORT EventQueue : public NoBaseWillBeGarbageCollectedFinalized<EventQueue> {
+class CORE_EXPORT EventQueue : public GarbageCollectedFinalized<EventQueue> {
 public:
     virtual ~EventQueue() { }
     DEFINE_INLINE_VIRTUAL_TRACE() { }
-    virtual bool enqueueEvent(PassRefPtrWillBeRawPtr<Event>) = 0;
+    virtual bool enqueueEvent(RawPtr<Event>) = 0;
     virtual bool cancelEvent(Event*) = 0;
     // The accumulated and all the future events will be discarded, no events will be dispatched anymore.
     virtual void close() = 0;
diff --git a/third_party/WebKit/Source/core/events/EventSender.h b/third_party/WebKit/Source/core/events/EventSender.h
index 03f75c70..06a39f5 100644
--- a/third_party/WebKit/Source/core/events/EventSender.h
+++ b/third_party/WebKit/Source/core/events/EventSender.h
@@ -34,13 +34,12 @@
 namespace blink {
 
 template<typename T>
-class EventSender final : public NoBaseWillBeGarbageCollectedFinalized<EventSender<T>> {
+class EventSender final : public GarbageCollectedFinalized<EventSender<T>> {
     WTF_MAKE_NONCOPYABLE(EventSender);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(EventSender);
 public:
-    static PassOwnPtrWillBeRawPtr<EventSender> create(const AtomicString& eventType)
+    static RawPtr<EventSender> create(const AtomicString& eventType)
     {
-        return adoptPtrWillBeNoop(new EventSender(eventType));
+        return new EventSender(eventType);
     }
 
     const AtomicString& eventType() const { return m_eventType; }
@@ -68,8 +67,8 @@
 
     AtomicString m_eventType;
     Timer<EventSender<T>> m_timer;
-    WillBeHeapVector<RawPtrWillBeMember<T>> m_dispatchSoonList;
-    WillBeHeapVector<RawPtrWillBeMember<T>> m_dispatchingList;
+    HeapVector<Member<T>> m_dispatchSoonList;
+    HeapVector<Member<T>> m_dispatchingList;
 };
 
 template<typename T> EventSender<T>::EventSender(const AtomicString& eventType)
diff --git a/third_party/WebKit/Source/core/events/EventTarget.cpp b/third_party/WebKit/Source/core/events/EventTarget.cpp
index 82e2d26..9891ef5 100644
--- a/third_party/WebKit/Source/core/events/EventTarget.cpp
+++ b/third_party/WebKit/Source/core/events/EventTarget.cpp
@@ -118,14 +118,14 @@
     return nullptr;
 }
 
-bool EventTarget::addEventListener(const AtomicString& eventType, PassRefPtrWillBeRawPtr<EventListener> listener, bool useCapture)
+bool EventTarget::addEventListener(const AtomicString& eventType, RawPtr<EventListener> listener, bool useCapture)
 {
     EventListenerOptions options;
     setDefaultEventListenerOptionsLegacy(options, useCapture);
     return addEventListenerInternal(eventType, listener, options);
 }
 
-bool EventTarget::addEventListener(const AtomicString& eventType, PassRefPtrWillBeRawPtr<EventListener> listener, const EventListenerOptionsOrBoolean& optionsUnion)
+bool EventTarget::addEventListener(const AtomicString& eventType, RawPtr<EventListener> listener, const EventListenerOptionsOrBoolean& optionsUnion)
 {
     if (optionsUnion.isBoolean())
         return addEventListener(eventType, listener, optionsUnion.getAsBoolean());
@@ -136,13 +136,13 @@
     return addEventListener(eventType, listener);
 }
 
-bool EventTarget::addEventListener(const AtomicString& eventType, PassRefPtrWillBeRawPtr<EventListener> listener, EventListenerOptions& options)
+bool EventTarget::addEventListener(const AtomicString& eventType, RawPtr<EventListener> listener, EventListenerOptions& options)
 {
     setDefaultEventListenerOptions(options);
     return addEventListenerInternal(eventType, listener, options);
 }
 
-bool EventTarget::addEventListenerInternal(const AtomicString& eventType, PassRefPtrWillBeRawPtr<EventListener> listener, const EventListenerOptions& options)
+bool EventTarget::addEventListenerInternal(const AtomicString& eventType, RawPtr<EventListener> listener, const EventListenerOptions& options)
 {
     if (!listener)
         return false;
@@ -158,14 +158,14 @@
     return ensureEventTargetData().eventListenerMap.add(eventType, listener, options);
 }
 
-bool EventTarget::removeEventListener(const AtomicString& eventType, PassRefPtrWillBeRawPtr<EventListener> listener, bool useCapture)
+bool EventTarget::removeEventListener(const AtomicString& eventType, RawPtr<EventListener> listener, bool useCapture)
 {
     EventListenerOptions options;
     setDefaultEventListenerOptionsLegacy(options, useCapture);
     return removeEventListenerInternal(eventType, listener, options);
 }
 
-bool EventTarget::removeEventListener(const AtomicString& eventType, PassRefPtrWillBeRawPtr<EventListener> listener, const EventListenerOptionsOrBoolean& optionsUnion)
+bool EventTarget::removeEventListener(const AtomicString& eventType, RawPtr<EventListener> listener, const EventListenerOptionsOrBoolean& optionsUnion)
 {
     if (optionsUnion.isBoolean())
         return removeEventListener(eventType, listener, optionsUnion.getAsBoolean());
@@ -176,13 +176,13 @@
     return removeEventListener(eventType, listener);
 }
 
-bool EventTarget::removeEventListener(const AtomicString& eventType, PassRefPtrWillBeRawPtr<EventListener> listener, EventListenerOptions& options)
+bool EventTarget::removeEventListener(const AtomicString& eventType, RawPtr<EventListener> listener, EventListenerOptions& options)
 {
     setDefaultEventListenerOptions(options);
     return removeEventListenerInternal(eventType, listener, options);
 }
 
-bool EventTarget::removeEventListenerInternal(const AtomicString& eventType, PassRefPtrWillBeRawPtr<EventListener> listener, const EventListenerOptions& options)
+bool EventTarget::removeEventListenerInternal(const AtomicString& eventType, RawPtr<EventListener> listener, const EventListenerOptions& options)
 {
     if (!listener)
         return false;
@@ -220,7 +220,7 @@
     return true;
 }
 
-bool EventTarget::setAttributeEventListener(const AtomicString& eventType, PassRefPtrWillBeRawPtr<EventListener> listener)
+bool EventTarget::setAttributeEventListener(const AtomicString& eventType, RawPtr<EventListener> listener)
 {
     clearAttributeEventListener(eventType);
     if (!listener)
@@ -249,7 +249,7 @@
     return removeEventListener(eventType, listener, false);
 }
 
-bool EventTarget::dispatchEventForBindings(PassRefPtrWillBeRawPtr<Event> event, ExceptionState& exceptionState)
+bool EventTarget::dispatchEventForBindings(RawPtr<Event> event, ExceptionState& exceptionState)
 {
     if (event->type().isEmpty()) {
         exceptionState.throwDOMException(InvalidStateError, "The event provided is uninitialized.");
@@ -271,13 +271,13 @@
     return dispatchEventInternal(event) != DispatchEventResult::CanceledByEventHandler;
 }
 
-DispatchEventResult EventTarget::dispatchEvent(PassRefPtrWillBeRawPtr<Event> event)
+DispatchEventResult EventTarget::dispatchEvent(RawPtr<Event> event)
 {
     event->setTrusted(true);
     return dispatchEventInternal(event);
 }
 
-DispatchEventResult EventTarget::dispatchEventInternal(PassRefPtrWillBeRawPtr<Event> event)
+DispatchEventResult EventTarget::dispatchEventInternal(RawPtr<Event> event)
 {
     event->setTarget(this);
     event->setCurrentTarget(this);
@@ -384,7 +384,7 @@
 
 void EventTarget::fireEventListeners(Event* event, EventTargetData* d, EventListenerVector& entry)
 {
-    RefPtrWillBeRawPtr<EventTarget> protect(this);
+    RawPtr<EventTarget> protect(this);
 
     // Fire all listeners registered for this event. Don't fire listeners removed
     // during event dispatch. Also, don't fire event listeners added during event
diff --git a/third_party/WebKit/Source/core/events/EventTarget.h b/third_party/WebKit/Source/core/events/EventTarget.h
index fa1cd9ff..3ececf98 100644
--- a/third_party/WebKit/Source/core/events/EventTarget.h
+++ b/third_party/WebKit/Source/core/events/EventTarget.h
@@ -67,9 +67,8 @@
 };
 using FiringEventIteratorVector = Vector<FiringEventIterator, 1>;
 
-class CORE_EXPORT EventTargetData final : public NoBaseWillBeGarbageCollectedFinalized<EventTargetData> {
+class CORE_EXPORT EventTargetData final : public GarbageCollectedFinalized<EventTargetData> {
     WTF_MAKE_NONCOPYABLE(EventTargetData);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(EventTargetData);
 public:
     EventTargetData();
     ~EventTargetData();
@@ -112,7 +111,7 @@
 //
 // Optionally, add a FooEvent.idl class, but that's outside the scope of this
 // comment (and much more straightforward).
-class CORE_EXPORT EventTarget : public NoBaseWillBeGarbageCollectedFinalized<EventTarget>, public ScriptWrappable {
+class CORE_EXPORT EventTarget : public GarbageCollectedFinalized<EventTarget>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
     virtual ~EventTarget();
@@ -130,25 +129,25 @@
     virtual LocalDOMWindow* toDOMWindow();
     virtual MessagePort* toMessagePort();
 
-    bool addEventListener(const AtomicString& eventType, PassRefPtrWillBeRawPtr<EventListener>, bool useCapture = false);
-    bool addEventListener(const AtomicString& eventType, PassRefPtrWillBeRawPtr<EventListener>, const EventListenerOptionsOrBoolean&);
-    bool addEventListener(const AtomicString& eventType, PassRefPtrWillBeRawPtr<EventListener>, EventListenerOptions&);
+    bool addEventListener(const AtomicString& eventType, RawPtr<EventListener>, bool useCapture = false);
+    bool addEventListener(const AtomicString& eventType, RawPtr<EventListener>, const EventListenerOptionsOrBoolean&);
+    bool addEventListener(const AtomicString& eventType, RawPtr<EventListener>, EventListenerOptions&);
 
-    bool removeEventListener(const AtomicString& eventType, PassRefPtrWillBeRawPtr<EventListener>, bool useCapture = false);
-    bool removeEventListener(const AtomicString& eventType, PassRefPtrWillBeRawPtr<EventListener>, const EventListenerOptionsOrBoolean&);
-    bool removeEventListener(const AtomicString& eventType, PassRefPtrWillBeRawPtr<EventListener>, EventListenerOptions&);
+    bool removeEventListener(const AtomicString& eventType, RawPtr<EventListener>, bool useCapture = false);
+    bool removeEventListener(const AtomicString& eventType, RawPtr<EventListener>, const EventListenerOptionsOrBoolean&);
+    bool removeEventListener(const AtomicString& eventType, RawPtr<EventListener>, EventListenerOptions&);
     virtual void removeAllEventListeners();
 
-    DispatchEventResult dispatchEvent(PassRefPtrWillBeRawPtr<Event>);
+    DispatchEventResult dispatchEvent(RawPtr<Event>);
 
     // dispatchEventForBindings is intended to only be called from
     // javascript originated calls. This method will validate and may adjust
     // the Event object before dispatching.
-    bool dispatchEventForBindings(PassRefPtrWillBeRawPtr<Event>, ExceptionState&);
+    bool dispatchEventForBindings(RawPtr<Event>, ExceptionState&);
     virtual void uncaughtExceptionInEventHandler();
 
     // Used for legacy "onEvent" attribute APIs.
-    bool setAttributeEventListener(const AtomicString& eventType, PassRefPtrWillBeRawPtr<EventListener>);
+    bool setAttributeEventListener(const AtomicString& eventType, RawPtr<EventListener>);
     EventListener* getAttributeEventListener(const AtomicString& eventType);
 
     bool hasEventListeners() const;
@@ -168,9 +167,9 @@
 protected:
     EventTarget();
 
-    virtual bool addEventListenerInternal(const AtomicString& eventType, PassRefPtrWillBeRawPtr<EventListener>, const EventListenerOptions&);
-    virtual bool removeEventListenerInternal(const AtomicString& eventType, PassRefPtrWillBeRawPtr<EventListener>, const EventListenerOptions&);
-    virtual DispatchEventResult dispatchEventInternal(PassRefPtrWillBeRawPtr<Event>);
+    virtual bool addEventListenerInternal(const AtomicString& eventType, RawPtr<EventListener>, const EventListenerOptions&);
+    virtual bool removeEventListenerInternal(const AtomicString& eventType, RawPtr<EventListener>, const EventListenerOptions&);
+    virtual DispatchEventResult dispatchEventInternal(RawPtr<Event>);
 
     // Subclasses should likely not override these themselves; instead, they should subclass EventTargetWithInlineData.
     virtual EventTargetData* eventTargetData() = 0;
@@ -251,15 +250,15 @@
 // macros to avoid causing so many header includes.
 #define DEFINE_ATTRIBUTE_EVENT_LISTENER(attribute) \
     EventListener* on##attribute() { return this->getAttributeEventListener(EventTypeNames::attribute); } \
-    void setOn##attribute(PassRefPtrWillBeRawPtr<EventListener> listener) { this->setAttributeEventListener(EventTypeNames::attribute, listener); } \
+    void setOn##attribute(RawPtr<EventListener> listener) { this->setAttributeEventListener(EventTypeNames::attribute, listener); } \
 
 #define DEFINE_STATIC_ATTRIBUTE_EVENT_LISTENER(attribute) \
     static EventListener* on##attribute(EventTarget& eventTarget) { return eventTarget.getAttributeEventListener(EventTypeNames::attribute); } \
-    static void setOn##attribute(EventTarget& eventTarget, PassRefPtrWillBeRawPtr<EventListener> listener) { eventTarget.setAttributeEventListener(EventTypeNames::attribute, listener); } \
+    static void setOn##attribute(EventTarget& eventTarget, RawPtr<EventListener> listener) { eventTarget.setAttributeEventListener(EventTypeNames::attribute, listener); } \
 
 #define DEFINE_WINDOW_ATTRIBUTE_EVENT_LISTENER(attribute) \
     EventListener* on##attribute() { return document().getWindowAttributeEventListener(EventTypeNames::attribute); } \
-    void setOn##attribute(PassRefPtrWillBeRawPtr<EventListener> listener) { document().setWindowAttributeEventListener(EventTypeNames::attribute, listener); } \
+    void setOn##attribute(RawPtr<EventListener> listener) { document().setWindowAttributeEventListener(EventTypeNames::attribute, listener); } \
 
 #define DEFINE_STATIC_WINDOW_ATTRIBUTE_EVENT_LISTENER(attribute) \
     static EventListener* on##attribute(EventTarget& eventTarget) { \
@@ -268,7 +267,7 @@
         ASSERT(eventTarget.toDOMWindow()); \
         return eventTarget.getAttributeEventListener(EventTypeNames::attribute); \
     } \
-    static void setOn##attribute(EventTarget& eventTarget, PassRefPtrWillBeRawPtr<EventListener> listener) { \
+    static void setOn##attribute(EventTarget& eventTarget, RawPtr<EventListener> listener) { \
         if (Node* node = eventTarget.toNode()) \
             node->document().setWindowAttributeEventListener(EventTypeNames::attribute, listener); \
         else { \
@@ -279,7 +278,7 @@
 
 #define DEFINE_MAPPED_ATTRIBUTE_EVENT_LISTENER(attribute, eventName) \
     EventListener* on##attribute() { return getAttributeEventListener(EventTypeNames::eventName); } \
-    void setOn##attribute(PassRefPtrWillBeRawPtr<EventListener> listener) { setAttributeEventListener(EventTypeNames::eventName, listener); } \
+    void setOn##attribute(RawPtr<EventListener> listener) { setAttributeEventListener(EventTypeNames::eventName, listener); } \
 
 inline bool EventTarget::hasEventListeners() const
 {
diff --git a/third_party/WebKit/Source/core/events/FocusEvent.cpp b/third_party/WebKit/Source/core/events/FocusEvent.cpp
index f9dc537..93d2a5f 100644
--- a/third_party/WebKit/Source/core/events/FocusEvent.cpp
+++ b/third_party/WebKit/Source/core/events/FocusEvent.cpp
@@ -44,7 +44,7 @@
 {
 }
 
-FocusEvent::FocusEvent(const AtomicString& type, bool canBubble, bool cancelable, PassRefPtrWillBeRawPtr<AbstractView> view, int detail, EventTarget* relatedTarget, InputDeviceCapabilities* sourceCapabilities)
+FocusEvent::FocusEvent(const AtomicString& type, bool canBubble, bool cancelable, RawPtr<AbstractView> view, int detail, EventTarget* relatedTarget, InputDeviceCapabilities* sourceCapabilities)
     : UIEvent(type, canBubble, cancelable, relatedTarget, view, detail, sourceCapabilities)
     , m_relatedTarget(relatedTarget)
 {
@@ -57,7 +57,7 @@
         m_relatedTarget = initializer.relatedTarget();
 }
 
-PassRefPtrWillBeRawPtr<EventDispatchMediator> FocusEvent::createMediator()
+RawPtr<EventDispatchMediator> FocusEvent::createMediator()
 {
     return FocusEventDispatchMediator::create(this);
 }
@@ -68,12 +68,12 @@
     UIEvent::trace(visitor);
 }
 
-PassRefPtrWillBeRawPtr<FocusEventDispatchMediator> FocusEventDispatchMediator::create(PassRefPtrWillBeRawPtr<FocusEvent> focusEvent)
+RawPtr<FocusEventDispatchMediator> FocusEventDispatchMediator::create(RawPtr<FocusEvent> focusEvent)
 {
-    return adoptRefWillBeNoop(new FocusEventDispatchMediator(focusEvent));
+    return new FocusEventDispatchMediator(focusEvent);
 }
 
-FocusEventDispatchMediator::FocusEventDispatchMediator(PassRefPtrWillBeRawPtr<FocusEvent> focusEvent)
+FocusEventDispatchMediator::FocusEventDispatchMediator(RawPtr<FocusEvent> focusEvent)
     : EventDispatchMediator(focusEvent)
 {
 }
diff --git a/third_party/WebKit/Source/core/events/FocusEvent.h b/third_party/WebKit/Source/core/events/FocusEvent.h
index bc4d7ec..3b3bf1d 100644
--- a/third_party/WebKit/Source/core/events/FocusEvent.h
+++ b/third_party/WebKit/Source/core/events/FocusEvent.h
@@ -35,19 +35,19 @@
 class FocusEvent final : public UIEvent {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<FocusEvent> create()
+    static RawPtr<FocusEvent> create()
     {
         return adoptRefWillBeNoop(new FocusEvent);
     }
 
-    static PassRefPtrWillBeRawPtr<FocusEvent> create(const AtomicString& type, bool canBubble, bool cancelable, PassRefPtrWillBeRawPtr<AbstractView> view, int detail, EventTarget* relatedTarget, InputDeviceCapabilities* sourceCapabilities)
+    static RawPtr<FocusEvent> create(const AtomicString& type, bool canBubble, bool cancelable, RawPtr<AbstractView> view, int detail, EventTarget* relatedTarget, InputDeviceCapabilities* sourceCapabilities)
     {
-        return adoptRefWillBeNoop(new FocusEvent(type, canBubble, cancelable, view, detail, relatedTarget, sourceCapabilities));
+        return new FocusEvent(type, canBubble, cancelable, view, detail, relatedTarget, sourceCapabilities);
     }
 
-    static PassRefPtrWillBeRawPtr<FocusEvent> create(const AtomicString& type, const FocusEventInit& initializer)
+    static RawPtr<FocusEvent> create(const AtomicString& type, const FocusEventInit& initializer)
     {
-        return adoptRefWillBeNoop(new FocusEvent(type, initializer));
+        return new FocusEvent(type, initializer);
     }
 
     EventTarget* relatedTarget() const { return m_relatedTarget.get(); }
@@ -56,25 +56,25 @@
     const AtomicString& interfaceName() const override;
     bool isFocusEvent() const override;
 
-    PassRefPtrWillBeRawPtr<EventDispatchMediator> createMediator() override;
+    RawPtr<EventDispatchMediator> createMediator() override;
 
     DECLARE_VIRTUAL_TRACE();
 
 private:
     FocusEvent();
-    FocusEvent(const AtomicString& type, bool canBubble, bool cancelable, PassRefPtrWillBeRawPtr<AbstractView>, int, EventTarget*, InputDeviceCapabilities*);
+    FocusEvent(const AtomicString& type, bool canBubble, bool cancelable, RawPtr<AbstractView>, int, EventTarget*, InputDeviceCapabilities*);
     FocusEvent(const AtomicString& type, const FocusEventInit&);
 
-    RefPtrWillBeMember<EventTarget> m_relatedTarget;
+    Member<EventTarget> m_relatedTarget;
 };
 
 DEFINE_EVENT_TYPE_CASTS(FocusEvent);
 
 class FocusEventDispatchMediator final : public EventDispatchMediator {
 public:
-    static PassRefPtrWillBeRawPtr<FocusEventDispatchMediator> create(PassRefPtrWillBeRawPtr<FocusEvent>);
+    static RawPtr<FocusEventDispatchMediator> create(RawPtr<FocusEvent>);
 private:
-    explicit FocusEventDispatchMediator(PassRefPtrWillBeRawPtr<FocusEvent>);
+    explicit FocusEventDispatchMediator(RawPtr<FocusEvent>);
     FocusEvent& event() const { return static_cast<FocusEvent&>(EventDispatchMediator::event()); }
     DispatchEventResult dispatchEvent(EventDispatcher&) const override;
 };
diff --git a/third_party/WebKit/Source/core/events/GenericEventQueue.cpp b/third_party/WebKit/Source/core/events/GenericEventQueue.cpp
index a8b0f84..60274bd 100644
--- a/third_party/WebKit/Source/core/events/GenericEventQueue.cpp
+++ b/third_party/WebKit/Source/core/events/GenericEventQueue.cpp
@@ -31,9 +31,9 @@
 
 namespace blink {
 
-PassOwnPtrWillBeRawPtr<GenericEventQueue> GenericEventQueue::create(EventTarget* owner)
+RawPtr<GenericEventQueue> GenericEventQueue::create(EventTarget* owner)
 {
-    return adoptPtrWillBeNoop(new GenericEventQueue(owner));
+    return new GenericEventQueue(owner);
 }
 
 GenericEventQueue::GenericEventQueue(EventTarget* owner)
@@ -54,7 +54,7 @@
     EventQueue::trace(visitor);
 }
 
-bool GenericEventQueue::enqueueEvent(PassRefPtrWillBeRawPtr<Event> event)
+bool GenericEventQueue::enqueueEvent(RawPtr<Event> event)
 {
     if (m_isClosed)
         return false;
@@ -93,10 +93,10 @@
     ASSERT(!m_timer.isActive());
     ASSERT(!m_pendingEvents.isEmpty());
 
-    WillBeHeapVector<RefPtrWillBeMember<Event>> pendingEvents;
+    HeapVector<Member<Event>> pendingEvents;
     m_pendingEvents.swap(pendingEvents);
 
-    RefPtrWillBeRawPtr<EventTarget> protect(m_owner.get());
+    RawPtr<EventTarget> protect(m_owner.get());
     for (const auto& pendingEvent : pendingEvents) {
         Event* event = pendingEvent.get();
         EventTarget* target = event->target() ? event->target() : m_owner.get();
diff --git a/third_party/WebKit/Source/core/events/GenericEventQueue.h b/third_party/WebKit/Source/core/events/GenericEventQueue.h
index 3e64a664..524dece 100644
--- a/third_party/WebKit/Source/core/events/GenericEventQueue.h
+++ b/third_party/WebKit/Source/core/events/GenericEventQueue.h
@@ -37,14 +37,13 @@
 namespace blink {
 
 class CORE_EXPORT GenericEventQueue final : public EventQueue {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(GenericEventQueue);
 public:
-    static PassOwnPtrWillBeRawPtr<GenericEventQueue> create(EventTarget*);
+    static RawPtr<GenericEventQueue> create(EventTarget*);
     ~GenericEventQueue() override;
 
     // EventQueue
     DECLARE_VIRTUAL_TRACE();
-    bool enqueueEvent(PassRefPtrWillBeRawPtr<Event>) override;
+    bool enqueueEvent(RawPtr<Event>) override;
     bool cancelEvent(Event*) override;
     void close() override;
 
@@ -55,8 +54,8 @@
     explicit GenericEventQueue(EventTarget*);
     void timerFired(Timer<GenericEventQueue>*);
 
-    RawPtrWillBeMember<EventTarget> m_owner;
-    WillBeHeapVector<RefPtrWillBeMember<Event>> m_pendingEvents;
+    Member<EventTarget> m_owner;
+    HeapVector<Member<Event>> m_pendingEvents;
     Timer<GenericEventQueue> m_timer;
 
     bool m_isClosed;
diff --git a/third_party/WebKit/Source/core/events/GestureEvent.cpp b/third_party/WebKit/Source/core/events/GestureEvent.cpp
index 97575e9..2acb24b 100644
--- a/third_party/WebKit/Source/core/events/GestureEvent.cpp
+++ b/third_party/WebKit/Source/core/events/GestureEvent.cpp
@@ -30,7 +30,7 @@
 
 namespace blink {
 
-PassRefPtrWillBeRawPtr<GestureEvent> GestureEvent::create(PassRefPtrWillBeRawPtr<AbstractView> view, const PlatformGestureEvent& event)
+RawPtr<GestureEvent> GestureEvent::create(RawPtr<AbstractView> view, const PlatformGestureEvent& event)
 {
     AtomicString eventType;
     float deltaX = 0;
@@ -98,7 +98,7 @@
     default:
         return nullptr;
     }
-    return adoptRefWillBeNoop(new GestureEvent(eventType, view, event.globalPosition().x(), event.globalPosition().y(), event.position().x(), event.position().y(), event.getModifiers(), deltaX, deltaY, velocityX, velocityY, inertial, synthetic, deltaUnits, event.timestamp(), event.resendingPluginId(), source));
+    return new GestureEvent(eventType, view, event.globalPosition().x(), event.globalPosition().y(), event.position().x(), event.position().y(), event.getModifiers(), deltaX, deltaY, velocityX, velocityY, inertial, synthetic, deltaUnits, event.timestamp(), event.resendingPluginId(), source);
 }
 
 const AtomicString& GestureEvent::interfaceName() const
@@ -127,7 +127,7 @@
 {
 }
 
-GestureEvent::GestureEvent(const AtomicString& type, PassRefPtrWillBeRawPtr<AbstractView> view, int screenX, int screenY, int clientX, int clientY, PlatformEvent::Modifiers modifiers, float deltaX, float deltaY, float velocityX, float velocityY, bool inertial, bool synthetic, ScrollGranularity deltaUnits, double platformTimeStamp, int resendingPluginId, GestureSource source)
+GestureEvent::GestureEvent(const AtomicString& type, RawPtr<AbstractView> view, int screenX, int screenY, int clientX, int clientY, PlatformEvent::Modifiers modifiers, float deltaX, float deltaY, float velocityX, float velocityY, bool inertial, bool synthetic, ScrollGranularity deltaUnits, double platformTimeStamp, int resendingPluginId, GestureSource source)
     : MouseRelatedEvent(type, true, true, nullptr, view, 0, IntPoint(screenX, screenY), IntPoint(clientX, clientY), IntPoint(0, 0), modifiers, platformTimeStamp, PositionType::Position)
     , m_deltaX(deltaX)
     , m_deltaY(deltaY)
diff --git a/third_party/WebKit/Source/core/events/GestureEvent.h b/third_party/WebKit/Source/core/events/GestureEvent.h
index 46ea208..900239c7 100644
--- a/third_party/WebKit/Source/core/events/GestureEvent.h
+++ b/third_party/WebKit/Source/core/events/GestureEvent.h
@@ -43,7 +43,7 @@
 public:
     ~GestureEvent() override { }
 
-    static PassRefPtrWillBeRawPtr<GestureEvent> create(PassRefPtrWillBeRawPtr<AbstractView>, const PlatformGestureEvent&);
+    static RawPtr<GestureEvent> create(RawPtr<AbstractView>, const PlatformGestureEvent&);
 
     bool isGestureEvent() const override;
 
@@ -64,7 +64,7 @@
 
 private:
     GestureEvent();
-    GestureEvent(const AtomicString& type, PassRefPtrWillBeRawPtr<AbstractView>, int screenX, int screenY, int clientX, int clientY, PlatformEvent::Modifiers, float deltaX, float deltaY, float velocityX, float velocityY, bool inertial, bool synthetic, ScrollGranularity deltaUnits, double platformTimeStamp, int resendingPluginId, GestureSource);
+    GestureEvent(const AtomicString& type, RawPtr<AbstractView>, int screenX, int screenY, int clientX, int clientY, PlatformEvent::Modifiers, float deltaX, float deltaY, float velocityX, float velocityY, bool inertial, bool synthetic, ScrollGranularity deltaUnits, double platformTimeStamp, int resendingPluginId, GestureSource);
 
     float m_deltaX;
     float m_deltaY;
diff --git a/third_party/WebKit/Source/core/events/HashChangeEvent.h b/third_party/WebKit/Source/core/events/HashChangeEvent.h
index 0f3dc20..80c5d96 100644
--- a/third_party/WebKit/Source/core/events/HashChangeEvent.h
+++ b/third_party/WebKit/Source/core/events/HashChangeEvent.h
@@ -29,19 +29,19 @@
 class HashChangeEvent final : public Event {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<HashChangeEvent> create()
+    static RawPtr<HashChangeEvent> create()
     {
         return adoptRefWillBeNoop(new HashChangeEvent);
     }
 
-    static PassRefPtrWillBeRawPtr<HashChangeEvent> create(const String& oldURL, const String& newURL)
+    static RawPtr<HashChangeEvent> create(const String& oldURL, const String& newURL)
     {
-        return adoptRefWillBeNoop(new HashChangeEvent(oldURL, newURL));
+        return new HashChangeEvent(oldURL, newURL);
     }
 
-    static PassRefPtrWillBeRawPtr<HashChangeEvent> create(const AtomicString& type, const HashChangeEventInit& initializer)
+    static RawPtr<HashChangeEvent> create(const AtomicString& type, const HashChangeEventInit& initializer)
     {
-        return adoptRefWillBeNoop(new HashChangeEvent(type, initializer));
+        return new HashChangeEvent(type, initializer);
     }
 
     const String& oldURL() const { return m_oldURL; }
diff --git a/third_party/WebKit/Source/core/events/InputEvent.h b/third_party/WebKit/Source/core/events/InputEvent.h
index f6c46ae..cff834d 100644
--- a/third_party/WebKit/Source/core/events/InputEvent.h
+++ b/third_party/WebKit/Source/core/events/InputEvent.h
@@ -14,14 +14,14 @@
     DEFINE_WRAPPERTYPEINFO();
 
 public:
-    static PassRefPtrWillBeRawPtr<InputEvent> create()
+    static RawPtr<InputEvent> create()
     {
         return adoptRefWillBeNoop(new InputEvent);
     }
 
-    static PassRefPtrWillBeRawPtr<InputEvent> create(const AtomicString& type, const InputEventInit& initializer)
+    static RawPtr<InputEvent> create(const AtomicString& type, const InputEventInit& initializer)
     {
-        return adoptRefWillBeNoop(new InputEvent(type, initializer));
+        return new InputEvent(type, initializer);
     }
 
     bool isInputEvent() const override;
diff --git a/third_party/WebKit/Source/core/events/KeyboardEvent.cpp b/third_party/WebKit/Source/core/events/KeyboardEvent.cpp
index 32a49f9..f99d22d 100644
--- a/third_party/WebKit/Source/core/events/KeyboardEvent.cpp
+++ b/third_party/WebKit/Source/core/events/KeyboardEvent.cpp
@@ -59,11 +59,11 @@
     return KeyboardEvent::DOM_KEY_LOCATION_STANDARD;
 }
 
-PassRefPtrWillBeRawPtr<KeyboardEvent> KeyboardEvent::create(ScriptState* scriptState, const AtomicString& type, const KeyboardEventInit& initializer)
+RawPtr<KeyboardEvent> KeyboardEvent::create(ScriptState* scriptState, const AtomicString& type, const KeyboardEventInit& initializer)
 {
     if (scriptState->world().isIsolatedWorld())
         UIEventWithKeyState::didCreateEventInIsolatedWorld(initializer.ctrlKey(), initializer.altKey(), initializer.shiftKey(), initializer.metaKey());
-    return adoptRefWillBeNoop(new KeyboardEvent(type, initializer));
+    return new KeyboardEvent(type, initializer);
 }
 
 KeyboardEvent::KeyboardEvent()
diff --git a/third_party/WebKit/Source/core/events/KeyboardEvent.h b/third_party/WebKit/Source/core/events/KeyboardEvent.h
index 5654151..02177b8 100644
--- a/third_party/WebKit/Source/core/events/KeyboardEvent.h
+++ b/third_party/WebKit/Source/core/events/KeyboardEvent.h
@@ -43,24 +43,24 @@
         DOM_KEY_LOCATION_NUMPAD     = 0x03
     };
 
-    static PassRefPtrWillBeRawPtr<KeyboardEvent> create()
+    static RawPtr<KeyboardEvent> create()
     {
         return adoptRefWillBeNoop(new KeyboardEvent);
     }
 
-    static PassRefPtrWillBeRawPtr<KeyboardEvent> create(const PlatformKeyboardEvent& platformEvent, AbstractView* view)
+    static RawPtr<KeyboardEvent> create(const PlatformKeyboardEvent& platformEvent, AbstractView* view)
     {
-        return adoptRefWillBeNoop(new KeyboardEvent(platformEvent, view));
+        return new KeyboardEvent(platformEvent, view);
     }
 
-    static PassRefPtrWillBeRawPtr<KeyboardEvent> create(ScriptState*, const AtomicString& type, const KeyboardEventInit&);
+    static RawPtr<KeyboardEvent> create(ScriptState*, const AtomicString& type, const KeyboardEventInit&);
 
-    static PassRefPtrWillBeRawPtr<KeyboardEvent> create(const AtomicString& type, bool canBubble, bool cancelable, AbstractView* view,
+    static RawPtr<KeyboardEvent> create(const AtomicString& type, bool canBubble, bool cancelable, AbstractView* view,
         const String& keyIdentifier, const String& code, const String& key, unsigned location,
         PlatformEvent::Modifiers modifiers, double platformTimeStamp)
     {
-        return adoptRefWillBeNoop(new KeyboardEvent(type, canBubble, cancelable, view, keyIdentifier, code, key, location,
-            modifiers, platformTimeStamp));
+        return new KeyboardEvent(type, canBubble, cancelable, view, keyIdentifier, code, key, location,
+            modifiers, platformTimeStamp);
     }
 
     ~KeyboardEvent() override;
diff --git a/third_party/WebKit/Source/core/events/MessageEvent.cpp b/third_party/WebKit/Source/core/events/MessageEvent.cpp
index 7e33433..43da489 100644
--- a/third_party/WebKit/Source/core/events/MessageEvent.cpp
+++ b/third_party/WebKit/Source/core/events/MessageEvent.cpp
@@ -61,7 +61,7 @@
     ASSERT(isValidSource(m_source.get()));
 }
 
-MessageEvent::MessageEvent(const String& origin, const String& lastEventId, PassRefPtrWillBeRawPtr<EventTarget> source, MessagePortArray* ports, const String& suborigin)
+MessageEvent::MessageEvent(const String& origin, const String& lastEventId, RawPtr<EventTarget> source, MessagePortArray* ports, const String& suborigin)
     : Event(EventTypeNames::message, false, false)
     , m_dataType(DataTypeScriptValue)
     , m_origin(origin)
@@ -72,7 +72,7 @@
     ASSERT(isValidSource(m_source.get()));
 }
 
-MessageEvent::MessageEvent(PassRefPtr<SerializedScriptValue> data, const String& origin, const String& lastEventId, PassRefPtrWillBeRawPtr<EventTarget> source, MessagePortArray* ports, const String& suborigin)
+MessageEvent::MessageEvent(PassRefPtr<SerializedScriptValue> data, const String& origin, const String& lastEventId, RawPtr<EventTarget> source, MessagePortArray* ports, const String& suborigin)
     : Event(EventTypeNames::message, false, false)
     , m_dataType(DataTypeSerializedScriptValue)
     , m_dataAsSerializedScriptValue(data)
@@ -86,7 +86,7 @@
     ASSERT(isValidSource(m_source.get()));
 }
 
-MessageEvent::MessageEvent(PassRefPtr<SerializedScriptValue> data, const String& origin, const String& lastEventId, PassRefPtrWillBeRawPtr<EventTarget> source, PassOwnPtr<MessagePortChannelArray> channels, const String& suborigin)
+MessageEvent::MessageEvent(PassRefPtr<SerializedScriptValue> data, const String& origin, const String& lastEventId, RawPtr<EventTarget> source, PassOwnPtr<MessagePortChannelArray> channels, const String& suborigin)
     : Event(EventTypeNames::message, false, false)
     , m_dataType(DataTypeSerializedScriptValue)
     , m_dataAsSerializedScriptValue(data)
@@ -129,13 +129,13 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<MessageEvent> MessageEvent::create(const AtomicString& type, const MessageEventInit& initializer, ExceptionState& exceptionState)
+RawPtr<MessageEvent> MessageEvent::create(const AtomicString& type, const MessageEventInit& initializer, ExceptionState& exceptionState)
 {
     if (initializer.source() && !isValidSource(initializer.source())) {
         exceptionState.throwTypeError("The optional 'source' property is neither a Window nor MessagePort.");
         return nullptr;
     }
-    return adoptRefWillBeNoop(new MessageEvent(type, initializer));
+    return new MessageEvent(type, initializer);
 }
 
 void MessageEvent::initMessageEvent(const AtomicString& type, bool canBubble, bool cancelable, ScriptValue data, const String& origin, const String& lastEventId, DOMWindow* source, MessagePortArray* ports)
diff --git a/third_party/WebKit/Source/core/events/MessageEvent.h b/third_party/WebKit/Source/core/events/MessageEvent.h
index 3c9ad750..2f556b3 100644
--- a/third_party/WebKit/Source/core/events/MessageEvent.h
+++ b/third_party/WebKit/Source/core/events/MessageEvent.h
@@ -43,35 +43,35 @@
 class CORE_EXPORT MessageEvent final : public Event {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<MessageEvent> create()
+    static RawPtr<MessageEvent> create()
     {
         return adoptRefWillBeNoop(new MessageEvent);
     }
-    static PassRefPtrWillBeRawPtr<MessageEvent> create(MessagePortArray* ports, const String& origin = String(), const String& lastEventId = String(), PassRefPtrWillBeRawPtr<EventTarget> source = nullptr, const String& suborigin = String())
+    static RawPtr<MessageEvent> create(MessagePortArray* ports, const String& origin = String(), const String& lastEventId = String(), RawPtr<EventTarget> source = nullptr, const String& suborigin = String())
     {
-        return adoptRefWillBeNoop(new MessageEvent(origin, lastEventId, source, ports, suborigin));
+        return new MessageEvent(origin, lastEventId, source, ports, suborigin);
     }
-    static PassRefPtrWillBeRawPtr<MessageEvent> create(MessagePortArray* ports, PassRefPtr<SerializedScriptValue> data, const String& origin = String(), const String& lastEventId = String(), PassRefPtrWillBeRawPtr<EventTarget> source = nullptr, const String& suborigin = String())
+    static RawPtr<MessageEvent> create(MessagePortArray* ports, PassRefPtr<SerializedScriptValue> data, const String& origin = String(), const String& lastEventId = String(), RawPtr<EventTarget> source = nullptr, const String& suborigin = String())
     {
-        return adoptRefWillBeNoop(new MessageEvent(data, origin, lastEventId, source, ports, suborigin));
+        return new MessageEvent(data, origin, lastEventId, source, ports, suborigin);
     }
-    static PassRefPtrWillBeRawPtr<MessageEvent> create(PassOwnPtr<MessagePortChannelArray> channels, PassRefPtr<SerializedScriptValue> data, const String& origin = String(), const String& lastEventId = String(), PassRefPtrWillBeRawPtr<EventTarget> source = nullptr, const String& suborigin = String())
+    static RawPtr<MessageEvent> create(PassOwnPtr<MessagePortChannelArray> channels, PassRefPtr<SerializedScriptValue> data, const String& origin = String(), const String& lastEventId = String(), RawPtr<EventTarget> source = nullptr, const String& suborigin = String())
     {
-        return adoptRefWillBeNoop(new MessageEvent(data, origin, lastEventId, source, std::move(channels), suborigin));
+        return new MessageEvent(data, origin, lastEventId, source, std::move(channels), suborigin);
     }
-    static PassRefPtrWillBeRawPtr<MessageEvent> create(const String& data, const String& origin = String(), const String& suborigin = String())
+    static RawPtr<MessageEvent> create(const String& data, const String& origin = String(), const String& suborigin = String())
     {
-        return adoptRefWillBeNoop(new MessageEvent(data, origin, suborigin));
+        return new MessageEvent(data, origin, suborigin);
     }
-    static PassRefPtrWillBeRawPtr<MessageEvent> create(Blob* data, const String& origin = String(), const String& suborigin = String())
+    static RawPtr<MessageEvent> create(Blob* data, const String& origin = String(), const String& suborigin = String())
     {
-        return adoptRefWillBeNoop(new MessageEvent(data, origin, suborigin));
+        return new MessageEvent(data, origin, suborigin);
     }
-    static PassRefPtrWillBeRawPtr<MessageEvent> create(PassRefPtr<DOMArrayBuffer> data, const String& origin = String(), const String& suborigin = String())
+    static RawPtr<MessageEvent> create(PassRefPtr<DOMArrayBuffer> data, const String& origin = String(), const String& suborigin = String())
     {
-        return adoptRefWillBeNoop(new MessageEvent(data, origin, suborigin));
+        return new MessageEvent(data, origin, suborigin);
     }
-    static PassRefPtrWillBeRawPtr<MessageEvent> create(const AtomicString& type, const MessageEventInit& initializer, ExceptionState&);
+    static RawPtr<MessageEvent> create(const AtomicString& type, const MessageEventInit& initializer, ExceptionState&);
     ~MessageEvent() override;
 
     void initMessageEvent(const AtomicString& type, bool canBubble, bool cancelable, ScriptValue data, const String& origin, const String& lastEventId, DOMWindow* source, MessagePortArray*);
@@ -116,9 +116,9 @@
 private:
     MessageEvent();
     MessageEvent(const AtomicString&, const MessageEventInit&);
-    MessageEvent(const String& origin, const String& lastEventId, PassRefPtrWillBeRawPtr<EventTarget> source, MessagePortArray*, const String& suborigin);
-    MessageEvent(PassRefPtr<SerializedScriptValue> data, const String& origin, const String& lastEventId, PassRefPtrWillBeRawPtr<EventTarget> source, MessagePortArray*, const String& suborigin);
-    MessageEvent(PassRefPtr<SerializedScriptValue> data, const String& origin, const String& lastEventId, PassRefPtrWillBeRawPtr<EventTarget> source, PassOwnPtr<MessagePortChannelArray>, const String& suborigin);
+    MessageEvent(const String& origin, const String& lastEventId, RawPtr<EventTarget> source, MessagePortArray*, const String& suborigin);
+    MessageEvent(PassRefPtr<SerializedScriptValue> data, const String& origin, const String& lastEventId, RawPtr<EventTarget> source, MessagePortArray*, const String& suborigin);
+    MessageEvent(PassRefPtr<SerializedScriptValue> data, const String& origin, const String& lastEventId, RawPtr<EventTarget> source, PassOwnPtr<MessagePortChannelArray>, const String& suborigin);
 
     MessageEvent(const String& data, const String& origin, const String& suborigin);
     MessageEvent(Blob* data, const String& origin, const String& suborigin);
@@ -128,15 +128,15 @@
     ScriptValue m_dataAsScriptValue;
     RefPtr<SerializedScriptValue> m_dataAsSerializedScriptValue;
     String m_dataAsString;
-    PersistentWillBeMember<Blob> m_dataAsBlob;
+    Member<Blob> m_dataAsBlob;
     RefPtr<DOMArrayBuffer> m_dataAsArrayBuffer;
     String m_origin;
     String m_lastEventId;
-    RefPtrWillBeMember<EventTarget> m_source;
+    Member<EventTarget> m_source;
     // m_ports are the MessagePorts in an engtangled state, and m_channels are
     // the MessageChannels in a disentangled state. Only one of them can be
     // non-empty at a time. entangleMessagePorts() moves between the states.
-    PersistentWillBeMember<MessagePortArray> m_ports;
+    Member<MessagePortArray> m_ports;
     OwnPtr<MessagePortChannelArray> m_channels;
     String m_suborigin;
 };
diff --git a/third_party/WebKit/Source/core/events/MouseEvent.cpp b/third_party/WebKit/Source/core/events/MouseEvent.cpp
index 18b4921..fe08b37 100644
--- a/third_party/WebKit/Source/core/events/MouseEvent.cpp
+++ b/third_party/WebKit/Source/core/events/MouseEvent.cpp
@@ -30,14 +30,14 @@
 
 namespace blink {
 
-PassRefPtrWillBeRawPtr<MouseEvent> MouseEvent::create(ScriptState* scriptState, const AtomicString& type, const MouseEventInit& initializer)
+RawPtr<MouseEvent> MouseEvent::create(ScriptState* scriptState, const AtomicString& type, const MouseEventInit& initializer)
 {
     if (scriptState && scriptState->world().isIsolatedWorld())
         UIEventWithKeyState::didCreateEventInIsolatedWorld(initializer.ctrlKey(), initializer.altKey(), initializer.shiftKey(), initializer.metaKey());
-    return adoptRefWillBeNoop(new MouseEvent(type, initializer));
+    return new MouseEvent(type, initializer);
 }
 
-PassRefPtrWillBeRawPtr<MouseEvent> MouseEvent::create(const AtomicString& eventType, PassRefPtrWillBeRawPtr<AbstractView> view, const PlatformMouseEvent& event, int detail, PassRefPtrWillBeRawPtr<Node> relatedTarget)
+RawPtr<MouseEvent> MouseEvent::create(const AtomicString& eventType, RawPtr<AbstractView> view, const PlatformMouseEvent& event, int detail, RawPtr<Node> relatedTarget)
 {
     ASSERT(event.type() == PlatformEvent::MouseMoved || event.button() != NoButton);
 
@@ -54,23 +54,23 @@
         relatedTarget, event.timestamp(), event.getSyntheticEventType(), event.region());
 }
 
-PassRefPtrWillBeRawPtr<MouseEvent> MouseEvent::create(const AtomicString& type, bool canBubble, bool cancelable, PassRefPtrWillBeRawPtr<AbstractView> view,
+RawPtr<MouseEvent> MouseEvent::create(const AtomicString& type, bool canBubble, bool cancelable, RawPtr<AbstractView> view,
     int detail, int screenX, int screenY, int windowX, int windowY,
     int movementX, int movementY,
     PlatformEvent::Modifiers modifiers,
     short button, unsigned short buttons,
-    PassRefPtrWillBeRawPtr<EventTarget> relatedTarget,
+    RawPtr<EventTarget> relatedTarget,
     double platformTimeStamp,
     PlatformMouseEvent::SyntheticEventType syntheticEventType,
     const String& region)
 {
-    return adoptRefWillBeNoop(new MouseEvent(type, canBubble, cancelable, view,
+    return new MouseEvent(type, canBubble, cancelable, view,
         detail, screenX, screenY, windowX, windowY,
         movementX, movementY,
-        modifiers, button, buttons, relatedTarget, platformTimeStamp, syntheticEventType, region));
+        modifiers, button, buttons, relatedTarget, platformTimeStamp, syntheticEventType, region);
 }
 
-PassRefPtrWillBeRawPtr<MouseEvent> MouseEvent::create(const AtomicString& eventType, PassRefPtrWillBeRawPtr<AbstractView> view, PassRefPtrWillBeRawPtr<Event> underlyingEvent, SimulatedClickCreationScope creationScope)
+RawPtr<MouseEvent> MouseEvent::create(const AtomicString& eventType, RawPtr<AbstractView> view, RawPtr<Event> underlyingEvent, SimulatedClickCreationScope creationScope)
 {
     PlatformEvent::Modifiers modifiers = PlatformEvent::NoModifiers;
     if (UIEventWithKeyState* keyStateEvent = findEventWithKeyState(underlyingEvent.get())) {
@@ -88,7 +88,7 @@
     }
 
     double timestamp = underlyingEvent ? underlyingEvent->platformTimeStamp() : monotonicallyIncreasingTime();
-    RefPtrWillBeRawPtr<MouseEvent> createdEvent = MouseEvent::create(eventType, true, true, view,
+    RawPtr<MouseEvent> createdEvent = MouseEvent::create(eventType, true, true, view,
         0, screenX, screenY, 0, 0, 0, 0, modifiers, 0, 0, nullptr,
         timestamp, syntheticType, String());
 
@@ -110,12 +110,12 @@
 {
 }
 
-MouseEvent::MouseEvent(const AtomicString& eventType, bool canBubble, bool cancelable, PassRefPtrWillBeRawPtr<AbstractView> view,
+MouseEvent::MouseEvent(const AtomicString& eventType, bool canBubble, bool cancelable, RawPtr<AbstractView> view,
     int detail, int screenX, int screenY, int windowX, int windowY,
     int movementX, int movementY,
     PlatformEvent::Modifiers modifiers,
     short button, unsigned short buttons,
-    PassRefPtrWillBeRawPtr<EventTarget> relatedTarget,
+    RawPtr<EventTarget> relatedTarget,
     double platformTimeStamp,
     PlatformMouseEvent::SyntheticEventType syntheticEventType,
     const String& region)
@@ -176,10 +176,10 @@
     return 0;
 }
 
-void MouseEvent::initMouseEvent(ScriptState* scriptState, const AtomicString& type, bool canBubble, bool cancelable, PassRefPtrWillBeRawPtr<AbstractView> view,
+void MouseEvent::initMouseEvent(ScriptState* scriptState, const AtomicString& type, bool canBubble, bool cancelable, RawPtr<AbstractView> view,
                                 int detail, int screenX, int screenY, int clientX, int clientY,
                                 bool ctrlKey, bool altKey, bool shiftKey, bool metaKey,
-                                short button, PassRefPtrWillBeRawPtr<EventTarget> relatedTarget, unsigned short buttons)
+                                short button, RawPtr<EventTarget> relatedTarget, unsigned short buttons)
 {
     if (dispatched())
         return;
@@ -191,9 +191,9 @@
     initMouseEventInternal(type, canBubble, cancelable, view, detail, screenX, screenY, clientX, clientY, modifiers(), button, relatedTarget, nullptr, buttons);
 }
 
-void MouseEvent::initMouseEventInternal(const AtomicString& type, bool canBubble, bool cancelable, PassRefPtrWillBeRawPtr<AbstractView> view,
+void MouseEvent::initMouseEventInternal(const AtomicString& type, bool canBubble, bool cancelable, RawPtr<AbstractView> view,
     int detail, int screenX, int screenY, int clientX, int clientY, PlatformEvent::Modifiers modifiers,
-    short button, PassRefPtrWillBeRawPtr<EventTarget> relatedTarget, InputDeviceCapabilities* sourceCapabilities, unsigned short buttons)
+    short button, RawPtr<EventTarget> relatedTarget, InputDeviceCapabilities* sourceCapabilities, unsigned short buttons)
 {
     initUIEventInternal(type, canBubble, cancelable, relatedTarget.get(), view, detail, sourceCapabilities);
 
@@ -250,17 +250,17 @@
     MouseRelatedEvent::trace(visitor);
 }
 
-PassRefPtrWillBeRawPtr<EventDispatchMediator> MouseEvent::createMediator()
+RawPtr<EventDispatchMediator> MouseEvent::createMediator()
 {
     return MouseEventDispatchMediator::create(this);
 }
 
-PassRefPtrWillBeRawPtr<MouseEventDispatchMediator> MouseEventDispatchMediator::create(PassRefPtrWillBeRawPtr<MouseEvent> mouseEvent)
+RawPtr<MouseEventDispatchMediator> MouseEventDispatchMediator::create(RawPtr<MouseEvent> mouseEvent)
 {
-    return adoptRefWillBeNoop(new MouseEventDispatchMediator(mouseEvent));
+    return new MouseEventDispatchMediator(mouseEvent);
 }
 
-MouseEventDispatchMediator::MouseEventDispatchMediator(PassRefPtrWillBeRawPtr<MouseEvent> mouseEvent)
+MouseEventDispatchMediator::MouseEventDispatchMediator(RawPtr<MouseEvent> mouseEvent)
     : EventDispatchMediator(mouseEvent)
 {
 }
@@ -297,7 +297,7 @@
     // Special case: If it's a double click event, we also send the dblclick event. This is not part
     // of the DOM specs, but is used for compatibility with the ondblclick="" attribute. This is treated
     // as a separate event in other DOM-compliant browsers like Firefox, and so we do the same.
-    RefPtrWillBeRawPtr<MouseEvent> doubleClickEvent = MouseEvent::create();
+    RawPtr<MouseEvent> doubleClickEvent = MouseEvent::create();
     doubleClickEvent->initMouseEventInternal(EventTypeNames::dblclick, mouseEvent.bubbles(), mouseEvent.cancelable(), mouseEvent.view(),
         mouseEvent.detail(), mouseEvent.screenX(), mouseEvent.screenY(), mouseEvent.clientX(), mouseEvent.clientY(),
         mouseEvent.modifiers(), mouseEvent.button(), relatedTarget, mouseEvent.sourceCapabilities(), mouseEvent.buttons());
diff --git a/third_party/WebKit/Source/core/events/MouseEvent.h b/third_party/WebKit/Source/core/events/MouseEvent.h
index b78383c..1298e8a 100644
--- a/third_party/WebKit/Source/core/events/MouseEvent.h
+++ b/third_party/WebKit/Source/core/events/MouseEvent.h
@@ -37,36 +37,36 @@
 class CORE_EXPORT MouseEvent : public MouseRelatedEvent {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<MouseEvent> create()
+    static RawPtr<MouseEvent> create()
     {
         return adoptRefWillBeNoop(new MouseEvent);
     }
 
     // TODO(mustaq): Should replace most/all of these params with a MouseEventInit.
-    static PassRefPtrWillBeRawPtr<MouseEvent> create(const AtomicString& type, bool canBubble, bool cancelable, PassRefPtrWillBeRawPtr<AbstractView>,
+    static RawPtr<MouseEvent> create(const AtomicString& type, bool canBubble, bool cancelable, RawPtr<AbstractView>,
         int detail, int screenX, int screenY, int windowX, int windowY,
         int movementX, int movementY, PlatformEvent::Modifiers,
         short button, unsigned short buttons,
-        PassRefPtrWillBeRawPtr<EventTarget> relatedTarget,
+        RawPtr<EventTarget> relatedTarget,
         double platformTimeStamp,
         PlatformMouseEvent::SyntheticEventType,
         const String& region);
 
-    static PassRefPtrWillBeRawPtr<MouseEvent> create(const AtomicString& eventType, PassRefPtrWillBeRawPtr<AbstractView>, const PlatformMouseEvent&, int detail, PassRefPtrWillBeRawPtr<Node> relatedTarget);
+    static RawPtr<MouseEvent> create(const AtomicString& eventType, RawPtr<AbstractView>, const PlatformMouseEvent&, int detail, RawPtr<Node> relatedTarget);
 
-    static PassRefPtrWillBeRawPtr<MouseEvent> create(ScriptState*, const AtomicString& eventType, const MouseEventInit&);
+    static RawPtr<MouseEvent> create(ScriptState*, const AtomicString& eventType, const MouseEventInit&);
 
-    static PassRefPtrWillBeRawPtr<MouseEvent> create(const AtomicString& eventType, PassRefPtrWillBeRawPtr<AbstractView>, PassRefPtrWillBeRawPtr<Event> underlyingEvent, SimulatedClickCreationScope);
+    static RawPtr<MouseEvent> create(const AtomicString& eventType, RawPtr<AbstractView>, RawPtr<Event> underlyingEvent, SimulatedClickCreationScope);
 
     ~MouseEvent() override;
 
     static unsigned short platformModifiersToButtons(unsigned modifiers);
     static unsigned short buttonToButtons(short button);
 
-    void initMouseEvent(ScriptState*, const AtomicString& type, bool canBubble, bool cancelable, PassRefPtrWillBeRawPtr<AbstractView>,
+    void initMouseEvent(ScriptState*, const AtomicString& type, bool canBubble, bool cancelable, RawPtr<AbstractView>,
         int detail, int screenX, int screenY, int clientX, int clientY,
         bool ctrlKey, bool altKey, bool shiftKey, bool metaKey,
-        short button, PassRefPtrWillBeRawPtr<EventTarget> relatedTarget, unsigned short buttons = 0);
+        short button, RawPtr<EventTarget> relatedTarget, unsigned short buttons = 0);
 
     // WinIE uses 1,4,2 for left/middle/right but not for click (just for mousedown/up, maybe others),
     // but we will match the standard DOM.
@@ -74,7 +74,7 @@
     unsigned short buttons() const { return m_buttons; }
     bool buttonDown() const { return m_button != -1; }
     EventTarget* relatedTarget() const { return m_relatedTarget.get(); }
-    void setRelatedTarget(PassRefPtrWillBeRawPtr<EventTarget> relatedTarget) { m_relatedTarget = relatedTarget; }
+    void setRelatedTarget(RawPtr<EventTarget> relatedTarget) { m_relatedTarget = relatedTarget; }
     PlatformMouseEvent::SyntheticEventType getSyntheticEventType() const { return m_syntheticEventType; }
     const String& region() const { return m_region; }
     void setRegion(const String& region) { m_region = region; }
@@ -91,7 +91,7 @@
     bool isMouseEvent() const override;
     int which() const final;
 
-    PassRefPtrWillBeRawPtr<EventDispatchMediator> createMediator() override;
+    RawPtr<EventDispatchMediator> createMediator() override;
 
     enum class Buttons : unsigned {
         None = 0,
@@ -103,11 +103,11 @@
     DECLARE_VIRTUAL_TRACE();
 
 protected:
-    MouseEvent(const AtomicString& type, bool canBubble, bool cancelable, PassRefPtrWillBeRawPtr<AbstractView>,
+    MouseEvent(const AtomicString& type, bool canBubble, bool cancelable, RawPtr<AbstractView>,
         int detail, int screenX, int screenY, int windowX, int windowY,
         int movementX, int movementY,
         PlatformEvent::Modifiers, short button, unsigned short buttons,
-        PassRefPtrWillBeRawPtr<EventTarget> relatedTarget,
+        RawPtr<EventTarget> relatedTarget,
         double platformTimeStamp,
         PlatformMouseEvent::SyntheticEventType,
         const String& region);
@@ -120,24 +120,24 @@
 
 private:
     friend class MouseEventDispatchMediator;
-    void initMouseEventInternal(const AtomicString& type, bool canBubble, bool cancelable, PassRefPtrWillBeRawPtr<AbstractView>,
+    void initMouseEventInternal(const AtomicString& type, bool canBubble, bool cancelable, RawPtr<AbstractView>,
         int detail, int screenX, int screenY, int clientX, int clientY,
         PlatformEvent::Modifiers,
-        short button, PassRefPtrWillBeRawPtr<EventTarget> relatedTarget, InputDeviceCapabilities* sourceCapabilities, unsigned short buttons = 0);
+        short button, RawPtr<EventTarget> relatedTarget, InputDeviceCapabilities* sourceCapabilities, unsigned short buttons = 0);
 
     short m_button;
     unsigned short m_buttons;
-    RefPtrWillBeMember<EventTarget> m_relatedTarget;
+    Member<EventTarget> m_relatedTarget;
     PlatformMouseEvent::SyntheticEventType m_syntheticEventType;
     String m_region;
 };
 
 class MouseEventDispatchMediator final : public EventDispatchMediator {
 public:
-    static PassRefPtrWillBeRawPtr<MouseEventDispatchMediator> create(PassRefPtrWillBeRawPtr<MouseEvent>);
+    static RawPtr<MouseEventDispatchMediator> create(RawPtr<MouseEvent>);
 
 private:
-    explicit MouseEventDispatchMediator(PassRefPtrWillBeRawPtr<MouseEvent>);
+    explicit MouseEventDispatchMediator(RawPtr<MouseEvent>);
     MouseEvent& event() const;
 
     DispatchEventResult dispatchEvent(EventDispatcher&) const override;
diff --git a/third_party/WebKit/Source/core/events/MouseRelatedEvent.cpp b/third_party/WebKit/Source/core/events/MouseRelatedEvent.cpp
index bf3dad1..8d4f8c22 100644
--- a/third_party/WebKit/Source/core/events/MouseRelatedEvent.cpp
+++ b/third_party/WebKit/Source/core/events/MouseRelatedEvent.cpp
@@ -52,7 +52,7 @@
 }
 
 MouseRelatedEvent::MouseRelatedEvent(const AtomicString& eventType, bool canBubble, bool cancelable, EventTarget* relatedTarget,
-    PassRefPtrWillBeRawPtr<AbstractView> abstractView, int detail, const IntPoint& screenLocation,
+    RawPtr<AbstractView> abstractView, int detail, const IntPoint& screenLocation,
     const IntPoint& rootFrameLocation, const IntPoint& movementDelta, PlatformEvent::Modifiers modifiers,
     double platformTimeStamp, PositionType positionType, InputDeviceCapabilities* sourceCapabilities)
     : UIEventWithKeyState(eventType, canBubble, cancelable, relatedTarget, abstractView, detail, modifiers, platformTimeStamp, sourceCapabilities)
diff --git a/third_party/WebKit/Source/core/events/MouseRelatedEvent.h b/third_party/WebKit/Source/core/events/MouseRelatedEvent.h
index 0f0975a..e1cf28e1 100644
--- a/third_party/WebKit/Source/core/events/MouseRelatedEvent.h
+++ b/third_party/WebKit/Source/core/events/MouseRelatedEvent.h
@@ -72,7 +72,7 @@
     // TODO(lanwei): Will make this argument non-optional and all the callers need to provide
     // sourceCapabilities even when it is null, see https://crbug.com/476530.
     MouseRelatedEvent(const AtomicString& type, bool canBubble, bool cancelable, EventTarget* relatedTarget,
-        PassRefPtrWillBeRawPtr<AbstractView>, int detail, const IntPoint& screenLocation,
+        RawPtr<AbstractView>, int detail, const IntPoint& screenLocation,
         const IntPoint& rootFrameLocation, const IntPoint& movementDelta, PlatformEvent::Modifiers,
         double platformTimeStamp, PositionType, InputDeviceCapabilities* sourceCapabilities = nullptr);
 
diff --git a/third_party/WebKit/Source/core/events/MutationEvent.cpp b/third_party/WebKit/Source/core/events/MutationEvent.cpp
index 80fa0e3b..dab65d4 100644
--- a/third_party/WebKit/Source/core/events/MutationEvent.cpp
+++ b/third_party/WebKit/Source/core/events/MutationEvent.cpp
@@ -29,7 +29,7 @@
 {
 }
 
-MutationEvent::MutationEvent(const AtomicString& type, bool canBubble, bool cancelable, PassRefPtrWillBeRawPtr<Node> relatedNode,
+MutationEvent::MutationEvent(const AtomicString& type, bool canBubble, bool cancelable, RawPtr<Node> relatedNode,
                              const String& prevValue, const String& newValue,
                              const String& attrName, unsigned short attrChange)
     : Event(type, canBubble, cancelable)
@@ -45,7 +45,7 @@
 {
 }
 
-void MutationEvent::initMutationEvent(const AtomicString& type, bool canBubble, bool cancelable, PassRefPtrWillBeRawPtr<Node> relatedNode,
+void MutationEvent::initMutationEvent(const AtomicString& type, bool canBubble, bool cancelable, RawPtr<Node> relatedNode,
                                       const String& prevValue, const String& newValue,
                                       const String& attrName, unsigned short attrChange)
 {
diff --git a/third_party/WebKit/Source/core/events/MutationEvent.h b/third_party/WebKit/Source/core/events/MutationEvent.h
index bcff696..b41ae80 100644
--- a/third_party/WebKit/Source/core/events/MutationEvent.h
+++ b/third_party/WebKit/Source/core/events/MutationEvent.h
@@ -40,19 +40,19 @@
         REMOVAL         = 3  // NOLINT
     };
 
-    static PassRefPtrWillBeRawPtr<MutationEvent> create()
+    static RawPtr<MutationEvent> create()
     {
         return adoptRefWillBeNoop(new MutationEvent);
     }
 
-    static PassRefPtrWillBeRawPtr<MutationEvent> create(
-        const AtomicString& type, bool canBubble, PassRefPtrWillBeRawPtr<Node> relatedNode = nullptr,
+    static RawPtr<MutationEvent> create(
+        const AtomicString& type, bool canBubble, RawPtr<Node> relatedNode = nullptr,
         const String& prevValue = String(), const String& newValue = String(), const String& attrName = String(), unsigned short attrChange = 0)
     {
-        return adoptRefWillBeNoop(new MutationEvent(type, canBubble, false, relatedNode, prevValue, newValue, attrName, attrChange));
+        return new MutationEvent(type, canBubble, false, relatedNode, prevValue, newValue, attrName, attrChange);
     }
 
-    void initMutationEvent(const AtomicString& type, bool canBubble, bool cancelable, PassRefPtrWillBeRawPtr<Node> relatedNode, const String& prevValue, const String& newValue, const String& attrName, unsigned short attrChange);
+    void initMutationEvent(const AtomicString& type, bool canBubble, bool cancelable, RawPtr<Node> relatedNode, const String& prevValue, const String& newValue, const String& attrName, unsigned short attrChange);
 
     Node* relatedNode() const { return m_relatedNode.get(); }
     String prevValue() const { return m_prevValue; }
@@ -66,9 +66,9 @@
 
 private:
     MutationEvent();
-    MutationEvent(const AtomicString& type, bool canBubble, bool cancelable, PassRefPtrWillBeRawPtr<Node> relatedNode, const String& prevValue, const String& newValue, const String& attrName, unsigned short attrChange);
+    MutationEvent(const AtomicString& type, bool canBubble, bool cancelable, RawPtr<Node> relatedNode, const String& prevValue, const String& newValue, const String& attrName, unsigned short attrChange);
 
-    RefPtrWillBeMember<Node> m_relatedNode;
+    Member<Node> m_relatedNode;
     String m_prevValue;
     String m_newValue;
     String m_attrName;
diff --git a/third_party/WebKit/Source/core/events/NodeEventContext.cpp b/third_party/WebKit/Source/core/events/NodeEventContext.cpp
index 22c8ba79..f142958 100644
--- a/third_party/WebKit/Source/core/events/NodeEventContext.cpp
+++ b/third_party/WebKit/Source/core/events/NodeEventContext.cpp
@@ -34,9 +34,7 @@
 
 namespace blink {
 
-DEFINE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(NodeEventContext)
-
-NodeEventContext::NodeEventContext(PassRefPtrWillBeRawPtr<Node> node, PassRefPtrWillBeRawPtr<EventTarget> currentTarget)
+NodeEventContext::NodeEventContext(RawPtr<Node> node, RawPtr<EventTarget> currentTarget)
     : m_node(node)
     , m_currentTarget(currentTarget)
 {
diff --git a/third_party/WebKit/Source/core/events/NodeEventContext.h b/third_party/WebKit/Source/core/events/NodeEventContext.h
index b3588cc..29bdf640 100644
--- a/third_party/WebKit/Source/core/events/NodeEventContext.h
+++ b/third_party/WebKit/Source/core/events/NodeEventContext.h
@@ -40,15 +40,14 @@
 
 class CORE_EXPORT NodeEventContext {
     DISALLOW_NEW_EXCEPT_PLACEMENT_NEW();
-    DECLARE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(NodeEventContext);
 public:
     // FIXME: Use ContainerNode instead of Node.
-    NodeEventContext(PassRefPtrWillBeRawPtr<Node>, PassRefPtrWillBeRawPtr<EventTarget> currentTarget);
+    NodeEventContext(RawPtr<Node>, RawPtr<EventTarget> currentTarget);
     DECLARE_TRACE();
 
     Node* node() const { return m_node.get(); }
 
-    void setTreeScopeEventContext(PassRefPtrWillBeRawPtr<TreeScopeEventContext> prpTreeScopeEventContext) { m_treeScopeEventContext = prpTreeScopeEventContext; }
+    void setTreeScopeEventContext(RawPtr<TreeScopeEventContext> prpTreeScopeEventContext) { m_treeScopeEventContext = prpTreeScopeEventContext; }
     TreeScopeEventContext& treeScopeEventContext() { ASSERT(m_treeScopeEventContext); return *m_treeScopeEventContext; }
 
     EventTarget* target() const { return m_treeScopeEventContext->target(); }
@@ -59,9 +58,9 @@
     void handleLocalEvents(Event&) const;
 
 private:
-    RefPtrWillBeMember<Node> m_node;
-    RefPtrWillBeMember<EventTarget> m_currentTarget;
-    RefPtrWillBeMember<TreeScopeEventContext> m_treeScopeEventContext;
+    Member<Node> m_node;
+    Member<EventTarget> m_currentTarget;
+    Member<TreeScopeEventContext> m_treeScopeEventContext;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/events/PageTransitionEvent.h b/third_party/WebKit/Source/core/events/PageTransitionEvent.h
index 2190281..9bf3665 100644
--- a/third_party/WebKit/Source/core/events/PageTransitionEvent.h
+++ b/third_party/WebKit/Source/core/events/PageTransitionEvent.h
@@ -34,17 +34,17 @@
 class PageTransitionEvent final : public Event {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<PageTransitionEvent> create()
+    static RawPtr<PageTransitionEvent> create()
     {
         return adoptRefWillBeNoop(new PageTransitionEvent);
     }
-    static PassRefPtrWillBeRawPtr<PageTransitionEvent> create(const AtomicString& type, bool persisted)
+    static RawPtr<PageTransitionEvent> create(const AtomicString& type, bool persisted)
     {
-        return adoptRefWillBeNoop(new PageTransitionEvent(type, persisted));
+        return new PageTransitionEvent(type, persisted);
     }
-    static PassRefPtrWillBeRawPtr<PageTransitionEvent> create(const AtomicString& type, const PageTransitionEventInit& initializer)
+    static RawPtr<PageTransitionEvent> create(const AtomicString& type, const PageTransitionEventInit& initializer)
     {
-        return adoptRefWillBeNoop(new PageTransitionEvent(type, initializer));
+        return new PageTransitionEvent(type, initializer);
     }
 
     ~PageTransitionEvent() override;
diff --git a/third_party/WebKit/Source/core/events/PointerEvent.cpp b/third_party/WebKit/Source/core/events/PointerEvent.cpp
index 03b6150..c13aaee 100644
--- a/third_party/WebKit/Source/core/events/PointerEvent.cpp
+++ b/third_party/WebKit/Source/core/events/PointerEvent.cpp
@@ -58,7 +58,7 @@
     return true;
 }
 
-PassRefPtrWillBeRawPtr<EventDispatchMediator> PointerEvent::createMediator()
+RawPtr<EventDispatchMediator> PointerEvent::createMediator()
 {
     return PointerEventDispatchMediator::create(this);
 }
@@ -68,12 +68,12 @@
     MouseEvent::trace(visitor);
 }
 
-PassRefPtrWillBeRawPtr<PointerEventDispatchMediator> PointerEventDispatchMediator::create(PassRefPtrWillBeRawPtr<PointerEvent> pointerEvent)
+RawPtr<PointerEventDispatchMediator> PointerEventDispatchMediator::create(RawPtr<PointerEvent> pointerEvent)
 {
-    return adoptRefWillBeNoop(new PointerEventDispatchMediator(pointerEvent));
+    return new PointerEventDispatchMediator(pointerEvent);
 }
 
-PointerEventDispatchMediator::PointerEventDispatchMediator(PassRefPtrWillBeRawPtr<PointerEvent> pointerEvent)
+PointerEventDispatchMediator::PointerEventDispatchMediator(RawPtr<PointerEvent> pointerEvent)
     : EventDispatchMediator(pointerEvent)
 {
 }
diff --git a/third_party/WebKit/Source/core/events/PointerEvent.h b/third_party/WebKit/Source/core/events/PointerEvent.h
index 092aa47..6791fec1 100644
--- a/third_party/WebKit/Source/core/events/PointerEvent.h
+++ b/third_party/WebKit/Source/core/events/PointerEvent.h
@@ -15,14 +15,14 @@
     DEFINE_WRAPPERTYPEINFO();
 
 public:
-    static PassRefPtrWillBeRawPtr<PointerEvent> create()
+    static RawPtr<PointerEvent> create()
     {
         return adoptRefWillBeNoop(new PointerEvent);
     }
 
-    static PassRefPtrWillBeRawPtr<PointerEvent> create(const AtomicString& type, const PointerEventInit& initializer)
+    static RawPtr<PointerEvent> create(const AtomicString& type, const PointerEventInit& initializer)
     {
-        return adoptRefWillBeNoop(new PointerEvent(type, initializer));
+        return new PointerEvent(type, initializer);
     }
 
     int pointerId() const { return m_pointerId; }
@@ -38,7 +38,7 @@
     bool isMouseEvent() const override;
     bool isPointerEvent() const override;
 
-    PassRefPtrWillBeRawPtr<EventDispatchMediator> createMediator() override;
+    RawPtr<EventDispatchMediator> createMediator() override;
 
     DECLARE_VIRTUAL_TRACE();
 
@@ -59,10 +59,10 @@
 
 class PointerEventDispatchMediator final : public EventDispatchMediator {
 public:
-    static PassRefPtrWillBeRawPtr<PointerEventDispatchMediator> create(PassRefPtrWillBeRawPtr<PointerEvent>);
+    static RawPtr<PointerEventDispatchMediator> create(RawPtr<PointerEvent>);
 
 private:
-    explicit PointerEventDispatchMediator(PassRefPtrWillBeRawPtr<PointerEvent>);
+    explicit PointerEventDispatchMediator(RawPtr<PointerEvent>);
     PointerEvent& event() const;
     DispatchEventResult dispatchEvent(EventDispatcher&) const override;
 };
diff --git a/third_party/WebKit/Source/core/events/PointerEventFactory.cpp b/third_party/WebKit/Source/core/events/PointerEventFactory.cpp
index 04490da..b9da846 100644
--- a/third_party/WebKit/Source/core/events/PointerEventFactory.cpp
+++ b/third_party/WebKit/Source/core/events/PointerEventFactory.cpp
@@ -75,10 +75,10 @@
     pointerEventInit.setIsPrimary(isPrimary(pointerId));
 }
 
-PassRefPtrWillBeRawPtr<PointerEvent> PointerEventFactory::create(
+RawPtr<PointerEvent> PointerEventFactory::create(
     const AtomicString& mouseEventName, const PlatformMouseEvent& mouseEvent,
-    PassRefPtrWillBeRawPtr<EventTarget> relatedTarget,
-    PassRefPtrWillBeRawPtr<AbstractView> view)
+    RawPtr<EventTarget> relatedTarget,
+    RawPtr<AbstractView> view)
 {
     AtomicString pointerEventName = pointerEventNameForMouseEventName(mouseEventName);
     unsigned buttons = MouseEvent::platformModifiersToButtons(mouseEvent.getModifiers());
@@ -125,7 +125,7 @@
     return PointerEvent::create(pointerEventName, pointerEventInit);
 }
 
-PassRefPtrWillBeRawPtr<PointerEvent> PointerEventFactory::create(const AtomicString& type,
+RawPtr<PointerEvent> PointerEventFactory::create(const AtomicString& type,
     const PlatformTouchPoint& touchPoint, PlatformEvent::Modifiers modifiers,
     const double width, const double height,
     const double clientX, const double clientY)
@@ -167,7 +167,7 @@
 }
 
 
-PassRefPtrWillBeRawPtr<PointerEvent> PointerEventFactory::createPointerCancelEvent(const PlatformTouchPoint& touchPoint)
+RawPtr<PointerEvent> PointerEventFactory::createPointerCancelEvent(const PlatformTouchPoint& touchPoint)
 {
     PointerEventInit pointerEventInit;
 
@@ -179,8 +179,8 @@
     return PointerEvent::create(EventTypeNames::pointercancel, pointerEventInit);
 }
 
-PassRefPtrWillBeRawPtr<PointerEvent> PointerEventFactory::createPointerCaptureEvent(
-    PassRefPtrWillBeRawPtr<PointerEvent> pointerEvent,
+RawPtr<PointerEvent> PointerEventFactory::createPointerCaptureEvent(
+    RawPtr<PointerEvent> pointerEvent,
     const AtomicString& type)
 {
     ASSERT(type == EventTypeNames::gotpointercapture
@@ -196,10 +196,10 @@
     return PointerEvent::create(type, pointerEventInit);
 }
 
-PassRefPtrWillBeRawPtr<PointerEvent> PointerEventFactory::createPointerTransitionEvent(
-    PassRefPtrWillBeRawPtr<PointerEvent> pointerEvent,
+RawPtr<PointerEvent> PointerEventFactory::createPointerTransitionEvent(
+    RawPtr<PointerEvent> pointerEvent,
     const AtomicString& type,
-    PassRefPtrWillBeRawPtr<EventTarget> relatedTarget)
+    RawPtr<EventTarget> relatedTarget)
 {
     ASSERT(type == EventTypeNames::pointerout
         || type == EventTypeNames::pointerleave
@@ -290,7 +290,7 @@
 }
 
 bool PointerEventFactory::remove(
-    const PassRefPtrWillBeRawPtr<PointerEvent> pointerEvent)
+    const RawPtr<PointerEvent> pointerEvent)
 {
     int mappedId = pointerEvent->pointerId();
     // Do not remove mouse pointer id as it should always be there
diff --git a/third_party/WebKit/Source/core/events/PointerEventFactory.h b/third_party/WebKit/Source/core/events/PointerEventFactory.h
index 26f3042..accfd063 100644
--- a/third_party/WebKit/Source/core/events/PointerEventFactory.h
+++ b/third_party/WebKit/Source/core/events/PointerEventFactory.h
@@ -29,29 +29,29 @@
     PointerEventFactory();
     ~PointerEventFactory();
 
-    PassRefPtrWillBeRawPtr<PointerEvent> create(
+    RawPtr<PointerEvent> create(
         const AtomicString& mouseEventName, const PlatformMouseEvent&,
-        PassRefPtrWillBeRawPtr<EventTarget> relatedTarget,
-        PassRefPtrWillBeRawPtr<AbstractView>);
+        RawPtr<EventTarget> relatedTarget,
+        RawPtr<AbstractView>);
 
-    PassRefPtrWillBeRawPtr<PointerEvent> create(const AtomicString& type,
+    RawPtr<PointerEvent> create(const AtomicString& type,
         const PlatformTouchPoint&, PlatformEvent::Modifiers,
         const double width, const double height,
         const double clientX, const double clientY);
 
-    PassRefPtrWillBeRawPtr<PointerEvent> createPointerCancelEvent(
+    RawPtr<PointerEvent> createPointerCancelEvent(
         const PlatformTouchPoint&);
 
     // For creating capture events (i.e got/lostpointercapture)
-    PassRefPtrWillBeRawPtr<PointerEvent> createPointerCaptureEvent(
-        PassRefPtrWillBeRawPtr<PointerEvent>,
+    RawPtr<PointerEvent> createPointerCaptureEvent(
+        RawPtr<PointerEvent>,
         const AtomicString&);
 
     // For creating transition events (i.e pointerout/leave/over/enter)
-    PassRefPtrWillBeRawPtr<PointerEvent> createPointerTransitionEvent(
-        PassRefPtrWillBeRawPtr<PointerEvent>,
+    RawPtr<PointerEvent> createPointerTransitionEvent(
+        RawPtr<PointerEvent>,
         const AtomicString&,
-        PassRefPtrWillBeRawPtr<EventTarget>);
+        RawPtr<EventTarget>);
 
     // Clear all the existing ids.
     void clear();
@@ -60,7 +60,7 @@
     // particular id is removed that id is considered free even though there
     // might have been other PointerEvents that were generated with the same id
     // before.
-    bool remove(const PassRefPtrWillBeRawPtr<PointerEvent>);
+    bool remove(const RawPtr<PointerEvent>);
 
     // Returns whether a pointer id exists and active
     bool isActive(const int);
diff --git a/third_party/WebKit/Source/core/events/PointerEventFactoryTest.cpp b/third_party/WebKit/Source/core/events/PointerEventFactoryTest.cpp
index bb94a43f..48339d7 100644
--- a/third_party/WebKit/Source/core/events/PointerEventFactoryTest.cpp
+++ b/third_party/WebKit/Source/core/events/PointerEventFactoryTest.cpp
@@ -15,20 +15,20 @@
 class PointerEventFactoryTest : public ::testing::Test {
 protected:
     void SetUp() override;
-    PassRefPtrWillBeRawPtr<PointerEvent> createAndCheckTouchCancel(
+    RawPtr<PointerEvent> createAndCheckTouchCancel(
         WebPointerProperties::PointerType, int rawId,
         int uniqueId, bool isPrimary,
         PlatformTouchPoint::TouchState = PlatformTouchPoint::TouchReleased);
-    PassRefPtrWillBeRawPtr<PointerEvent> createAndCheckTouchEvent(
+    RawPtr<PointerEvent> createAndCheckTouchEvent(
         WebPointerProperties::PointerType, int rawId,
         int uniqueId, bool isPrimary,
         PlatformTouchPoint::TouchState = PlatformTouchPoint::TouchPressed);
-    PassRefPtrWillBeRawPtr<PointerEvent> createAndCheckMouseEvent(
+    RawPtr<PointerEvent> createAndCheckMouseEvent(
         WebPointerProperties::PointerType, int rawId,
         int uniqueId, bool isPrimary,
         PlatformEvent::Modifiers = PlatformEvent::NoModifiers);
     void createAndCheckPointerTransitionEvent(
-        PassRefPtrWillBeRawPtr<PointerEvent>,
+        RawPtr<PointerEvent>,
         const AtomicString&);
 
     PointerEventFactory m_pointerEventFactory;
@@ -73,12 +73,12 @@
     m_modifiers = modifiers;
 }
 
-PassRefPtrWillBeRawPtr<PointerEvent> PointerEventFactoryTest::createAndCheckTouchCancel(
+RawPtr<PointerEvent> PointerEventFactoryTest::createAndCheckTouchCancel(
     WebPointerProperties::PointerType pointerType, int rawId,
     int uniqueId, bool isPrimary,
     PlatformTouchPoint::TouchState state)
 {
-    RefPtrWillBeRawPtr<PointerEvent> pointerEvent = m_pointerEventFactory.createPointerCancelEvent(
+    RawPtr<PointerEvent> pointerEvent = m_pointerEventFactory.createPointerCancelEvent(
         PointerEventFactoryTest::PlatformTouchPointBuilder(pointerType, rawId, state));
     EXPECT_EQ(uniqueId, pointerEvent->pointerId());
     EXPECT_EQ(isPrimary, pointerEvent->isPrimary());
@@ -86,11 +86,11 @@
 }
 
 void PointerEventFactoryTest::createAndCheckPointerTransitionEvent(
-    PassRefPtrWillBeRawPtr<PointerEvent> prpPointerEvent,
+    RawPtr<PointerEvent> prpPointerEvent,
     const AtomicString& type)
 {
-    RefPtrWillBeRawPtr<PointerEvent> pointerEvent = prpPointerEvent;
-    RefPtrWillBeRawPtr<PointerEvent> clonePointerEvent = m_pointerEventFactory.
+    RawPtr<PointerEvent> pointerEvent = prpPointerEvent;
+    RawPtr<PointerEvent> clonePointerEvent = m_pointerEventFactory.
         createPointerTransitionEvent(pointerEvent, type, nullptr);
     EXPECT_EQ(clonePointerEvent->pointerType(), pointerEvent->pointerType());
     EXPECT_EQ(clonePointerEvent->pointerId(), pointerEvent->pointerId());
@@ -98,24 +98,24 @@
     EXPECT_EQ(clonePointerEvent->type(), type);
 }
 
-PassRefPtrWillBeRawPtr<PointerEvent> PointerEventFactoryTest::createAndCheckTouchEvent(
+RawPtr<PointerEvent> PointerEventFactoryTest::createAndCheckTouchEvent(
     WebPointerProperties::PointerType pointerType,
     int rawId, int uniqueId, bool isPrimary,
     PlatformTouchPoint::TouchState state)
 {
-    RefPtrWillBeRawPtr<PointerEvent> pointerEvent = m_pointerEventFactory.create(
+    RawPtr<PointerEvent> pointerEvent = m_pointerEventFactory.create(
         EventTypeNames::pointerdown, PointerEventFactoryTest::PlatformTouchPointBuilder(pointerType, rawId, state), PlatformEvent::NoModifiers, 0, 0, 0, 0);
     EXPECT_EQ(uniqueId, pointerEvent->pointerId());
     EXPECT_EQ(isPrimary, pointerEvent->isPrimary());
     return pointerEvent;
 }
 
-PassRefPtrWillBeRawPtr<PointerEvent> PointerEventFactoryTest::createAndCheckMouseEvent(
+RawPtr<PointerEvent> PointerEventFactoryTest::createAndCheckMouseEvent(
     WebPointerProperties::PointerType pointerType,
     int rawId, int uniqueId, bool isPrimary,
     PlatformEvent::Modifiers modifiers)
 {
-    RefPtrWillBeRawPtr<PointerEvent> pointerEvent = m_pointerEventFactory.create(
+    RawPtr<PointerEvent> pointerEvent = m_pointerEventFactory.create(
         EventTypeNames::mouseenter, PlatformMouseEventBuilder(pointerType, rawId, modifiers), nullptr, nullptr);
     EXPECT_EQ(uniqueId, pointerEvent->pointerId());
     EXPECT_EQ(isPrimary, pointerEvent->isPrimary());
@@ -127,8 +127,8 @@
     EXPECT_TRUE(m_pointerEventFactory.isActive(m_expectedMouseId));
     EXPECT_FALSE(m_pointerEventFactory.isActiveButtonsState(m_expectedMouseId));
 
-    RefPtrWillBeRawPtr<PointerEvent> pointerEvent1 = createAndCheckMouseEvent(WebPointerProperties::PointerType::Mouse, 0, m_expectedMouseId, true);
-    RefPtrWillBeRawPtr<PointerEvent> pointerEvent2 = createAndCheckMouseEvent(WebPointerProperties::PointerType::Mouse, 0, m_expectedMouseId, true, PlatformEvent::LeftButtonDown);
+    RawPtr<PointerEvent> pointerEvent1 = createAndCheckMouseEvent(WebPointerProperties::PointerType::Mouse, 0, m_expectedMouseId, true);
+    RawPtr<PointerEvent> pointerEvent2 = createAndCheckMouseEvent(WebPointerProperties::PointerType::Mouse, 0, m_expectedMouseId, true, PlatformEvent::LeftButtonDown);
 
     createAndCheckPointerTransitionEvent(pointerEvent1, EventTypeNames::pointerout);
 
@@ -155,7 +155,7 @@
 
 TEST_F(PointerEventFactoryTest, TouchPointerPrimaryRemovedWhileAnotherIsThere)
 {
-    RefPtrWillBeRawPtr<PointerEvent> pointerEvent1 = createAndCheckTouchEvent(WebPointerProperties::PointerType::Touch, 0, m_mappedIdStart, true);
+    RawPtr<PointerEvent> pointerEvent1 = createAndCheckTouchEvent(WebPointerProperties::PointerType::Touch, 0, m_mappedIdStart, true);
     createAndCheckTouchEvent(WebPointerProperties::PointerType::Touch, 1, m_mappedIdStart+1, false);
 
     m_pointerEventFactory.remove(pointerEvent1);
@@ -171,8 +171,8 @@
     EXPECT_FALSE(m_pointerEventFactory.isActiveButtonsState(m_mappedIdStart));
     EXPECT_FALSE(m_pointerEventFactory.isActiveButtonsState(m_mappedIdStart+1));
 
-    RefPtrWillBeRawPtr<PointerEvent> pointerEvent1 = createAndCheckTouchEvent(WebPointerProperties::PointerType::Touch, 0, m_mappedIdStart, true);
-    RefPtrWillBeRawPtr<PointerEvent> pointerEvent2 = createAndCheckTouchEvent(WebPointerProperties::PointerType::Touch, 1, m_mappedIdStart+1, false);
+    RawPtr<PointerEvent> pointerEvent1 = createAndCheckTouchEvent(WebPointerProperties::PointerType::Touch, 0, m_mappedIdStart, true);
+    RawPtr<PointerEvent> pointerEvent2 = createAndCheckTouchEvent(WebPointerProperties::PointerType::Touch, 1, m_mappedIdStart+1, false);
 
     createAndCheckPointerTransitionEvent(pointerEvent1, EventTypeNames::pointerleave);
     createAndCheckPointerTransitionEvent(pointerEvent2, EventTypeNames::pointerenter);
@@ -203,8 +203,8 @@
     EXPECT_FALSE(m_pointerEventFactory.isActive(m_mappedIdStart));
     EXPECT_FALSE(m_pointerEventFactory.isActiveButtonsState(m_mappedIdStart));
 
-    RefPtrWillBeRawPtr<PointerEvent> pointerEvent1 = createAndCheckTouchEvent(WebPointerProperties::PointerType::Touch, 0, m_mappedIdStart, true);
-    RefPtrWillBeRawPtr<PointerEvent> pointerEvent2 = createAndCheckTouchEvent(WebPointerProperties::PointerType::Touch, 0, m_mappedIdStart, true);
+    RawPtr<PointerEvent> pointerEvent1 = createAndCheckTouchEvent(WebPointerProperties::PointerType::Touch, 0, m_mappedIdStart, true);
+    RawPtr<PointerEvent> pointerEvent2 = createAndCheckTouchEvent(WebPointerProperties::PointerType::Touch, 0, m_mappedIdStart, true);
 
     EXPECT_TRUE(m_pointerEventFactory.isActive(m_mappedIdStart));
     EXPECT_TRUE(m_pointerEventFactory.isActiveButtonsState(m_mappedIdStart));
@@ -248,11 +248,11 @@
 TEST_F(PointerEventFactoryTest, MouseAndTouchAndPen)
 {
     createAndCheckMouseEvent(WebPointerProperties::PointerType::Mouse, 0, m_expectedMouseId, true);
-    RefPtrWillBeRawPtr<PointerEvent> pointerEvent1 = createAndCheckTouchEvent(WebPointerProperties::PointerType::Touch, 0, m_mappedIdStart, true);
+    RawPtr<PointerEvent> pointerEvent1 = createAndCheckTouchEvent(WebPointerProperties::PointerType::Touch, 0, m_mappedIdStart, true);
     createAndCheckTouchEvent(WebPointerProperties::PointerType::Pen, 0, m_mappedIdStart+1, true);
 
-    RefPtrWillBeRawPtr<PointerEvent> pointerEvent2 = createAndCheckTouchEvent(WebPointerProperties::PointerType::Touch, 1, m_mappedIdStart+2, false);
-    RefPtrWillBeRawPtr<PointerEvent> pointerEvent3 = createAndCheckTouchEvent(WebPointerProperties::PointerType::Touch, 2, m_mappedIdStart+3, false);
+    RawPtr<PointerEvent> pointerEvent2 = createAndCheckTouchEvent(WebPointerProperties::PointerType::Touch, 1, m_mappedIdStart+2, false);
+    RawPtr<PointerEvent> pointerEvent3 = createAndCheckTouchEvent(WebPointerProperties::PointerType::Touch, 2, m_mappedIdStart+3, false);
     createAndCheckTouchEvent(WebPointerProperties::PointerType::Pen, 0, m_mappedIdStart+1, true);
     createAndCheckTouchEvent(WebPointerProperties::PointerType::Pen, 47213, m_mappedIdStart+4, false);
 
@@ -271,7 +271,7 @@
 
 TEST_F(PointerEventFactoryTest, PenAsTouchAndMouseEvent)
 {
-    RefPtrWillBeRawPtr<PointerEvent> pointerEvent1 = createAndCheckMouseEvent(WebPointerProperties::PointerType::Pen, 0, m_mappedIdStart, true);
+    RawPtr<PointerEvent> pointerEvent1 = createAndCheckMouseEvent(WebPointerProperties::PointerType::Pen, 0, m_mappedIdStart, true);
     createAndCheckMouseEvent(WebPointerProperties::PointerType::Pen, 1, m_mappedIdStart+1, false);
     createAndCheckMouseEvent(WebPointerProperties::PointerType::Pen, 2, m_mappedIdStart+2, false);
     createAndCheckMouseEvent(WebPointerProperties::PointerType::Pen, 0, m_mappedIdStart, true);
@@ -298,7 +298,7 @@
 
 TEST_F(PointerEventFactoryTest, OutOfRange)
 {
-    RefPtrWillBeRawPtr<PointerEvent> pointerEvent1 = createAndCheckMouseEvent(WebPointerProperties::PointerType::Unknown, 0, m_mappedIdStart, true);
+    RawPtr<PointerEvent> pointerEvent1 = createAndCheckMouseEvent(WebPointerProperties::PointerType::Unknown, 0, m_mappedIdStart, true);
     createAndCheckMouseEvent(WebPointerProperties::PointerType::Unknown, 1, m_mappedIdStart+1, false);
     createAndCheckMouseEvent(WebPointerProperties::PointerType::Unknown, 2, m_mappedIdStart+2, false);
     createAndCheckTouchEvent(WebPointerProperties::PointerType::Unknown, 0, m_mappedIdStart, true);
diff --git a/third_party/WebKit/Source/core/events/PopStateEvent.cpp b/third_party/WebKit/Source/core/events/PopStateEvent.cpp
index e5c45ef..7f54a4e 100644
--- a/third_party/WebKit/Source/core/events/PopStateEvent.cpp
+++ b/third_party/WebKit/Source/core/events/PopStateEvent.cpp
@@ -57,19 +57,19 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<PopStateEvent> PopStateEvent::create()
+RawPtr<PopStateEvent> PopStateEvent::create()
 {
     return adoptRefWillBeNoop(new PopStateEvent);
 }
 
-PassRefPtrWillBeRawPtr<PopStateEvent> PopStateEvent::create(PassRefPtr<SerializedScriptValue> serializedState, History* history)
+RawPtr<PopStateEvent> PopStateEvent::create(PassRefPtr<SerializedScriptValue> serializedState, History* history)
 {
-    return adoptRefWillBeNoop(new PopStateEvent(serializedState, history));
+    return new PopStateEvent(serializedState, history);
 }
 
-PassRefPtrWillBeRawPtr<PopStateEvent> PopStateEvent::create(const AtomicString& type, const PopStateEventInit& initializer)
+RawPtr<PopStateEvent> PopStateEvent::create(const AtomicString& type, const PopStateEventInit& initializer)
 {
-    return adoptRefWillBeNoop(new PopStateEvent(type, initializer));
+    return new PopStateEvent(type, initializer);
 }
 
 const AtomicString& PopStateEvent::interfaceName() const
diff --git a/third_party/WebKit/Source/core/events/PopStateEvent.h b/third_party/WebKit/Source/core/events/PopStateEvent.h
index 4316bfb..6049251 100644
--- a/third_party/WebKit/Source/core/events/PopStateEvent.h
+++ b/third_party/WebKit/Source/core/events/PopStateEvent.h
@@ -40,9 +40,9 @@
     DEFINE_WRAPPERTYPEINFO();
 public:
     ~PopStateEvent() override;
-    static PassRefPtrWillBeRawPtr<PopStateEvent> create();
-    static PassRefPtrWillBeRawPtr<PopStateEvent> create(PassRefPtr<SerializedScriptValue>, History*);
-    static PassRefPtrWillBeRawPtr<PopStateEvent> create(const AtomicString&, const PopStateEventInit&);
+    static RawPtr<PopStateEvent> create();
+    static RawPtr<PopStateEvent> create(PassRefPtr<SerializedScriptValue>, History*);
+    static RawPtr<PopStateEvent> create(const AtomicString&, const PopStateEventInit&);
 
     ScriptValue state() const { return m_state; }
     SerializedScriptValue* serializedState() const { return m_serializedState.get(); }
@@ -64,7 +64,7 @@
 
     RefPtr<SerializedScriptValue> m_serializedState;
     ScriptValue m_state;
-    PersistentWillBeMember<History> m_history;
+    Member<History> m_history;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/events/ProgressEvent.h b/third_party/WebKit/Source/core/events/ProgressEvent.h
index 241445c18..608b009 100644
--- a/third_party/WebKit/Source/core/events/ProgressEvent.h
+++ b/third_party/WebKit/Source/core/events/ProgressEvent.h
@@ -35,17 +35,17 @@
 class CORE_EXPORT ProgressEvent : public Event {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<ProgressEvent> create()
+    static RawPtr<ProgressEvent> create()
     {
         return adoptRefWillBeNoop(new ProgressEvent);
     }
-    static PassRefPtrWillBeRawPtr<ProgressEvent> create(const AtomicString& type, bool lengthComputable, unsigned long long loaded, unsigned long long total)
+    static RawPtr<ProgressEvent> create(const AtomicString& type, bool lengthComputable, unsigned long long loaded, unsigned long long total)
     {
-        return adoptRefWillBeNoop(new ProgressEvent(type, lengthComputable, loaded, total));
+        return new ProgressEvent(type, lengthComputable, loaded, total);
     }
-    static PassRefPtrWillBeRawPtr<ProgressEvent> create(const AtomicString& type, const ProgressEventInit& initializer)
+    static RawPtr<ProgressEvent> create(const AtomicString& type, const ProgressEventInit& initializer)
     {
-        return adoptRefWillBeNoop(new ProgressEvent(type, initializer));
+        return new ProgressEvent(type, initializer);
     }
 
     bool lengthComputable() const { return m_lengthComputable; }
diff --git a/third_party/WebKit/Source/core/events/PromiseRejectionEvent.h b/third_party/WebKit/Source/core/events/PromiseRejectionEvent.h
index c905ef6..95e67d40 100644
--- a/third_party/WebKit/Source/core/events/PromiseRejectionEvent.h
+++ b/third_party/WebKit/Source/core/events/PromiseRejectionEvent.h
@@ -19,13 +19,13 @@
 class CORE_EXPORT PromiseRejectionEvent final : public Event {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<PromiseRejectionEvent> create()
+    static RawPtr<PromiseRejectionEvent> create()
     {
         return adoptRefWillBeNoop(new PromiseRejectionEvent);
     }
-    static PassRefPtrWillBeRawPtr<PromiseRejectionEvent> create(ScriptState* state, const AtomicString& type, const PromiseRejectionEventInit& initializer)
+    static RawPtr<PromiseRejectionEvent> create(ScriptState* state, const AtomicString& type, const PromiseRejectionEventInit& initializer)
     {
-        return adoptRefWillBeNoop(new PromiseRejectionEvent(state, type, initializer));
+        return new PromiseRejectionEvent(state, type, initializer);
     }
 
     ScriptValue reason(ScriptState*) const;
diff --git a/third_party/WebKit/Source/core/events/RegisteredEventListener.h b/third_party/WebKit/Source/core/events/RegisteredEventListener.h
index 9902730..048779cf 100644
--- a/third_party/WebKit/Source/core/events/RegisteredEventListener.h
+++ b/third_party/WebKit/Source/core/events/RegisteredEventListener.h
@@ -32,7 +32,7 @@
 class RegisteredEventListener {
     DISALLOW_NEW_EXCEPT_PLACEMENT_NEW();
 public:
-    RegisteredEventListener(PassRefPtrWillBeRawPtr<EventListener> listener, const EventListenerOptions& options)
+    RegisteredEventListener(RawPtr<EventListener> listener, const EventListenerOptions& options)
         : listener(listener)
         , useCapture(options.capture())
         , passive(options.passive())
@@ -52,7 +52,7 @@
         return result;
     }
 
-    RefPtrWillBeMember<EventListener> listener;
+    Member<EventListener> listener;
     unsigned useCapture : 1;
     unsigned passive : 1;
 };
diff --git a/third_party/WebKit/Source/core/events/RelatedEvent.cpp b/third_party/WebKit/Source/core/events/RelatedEvent.cpp
index 17f3bb8..5db2386 100644
--- a/third_party/WebKit/Source/core/events/RelatedEvent.cpp
+++ b/third_party/WebKit/Source/core/events/RelatedEvent.cpp
@@ -10,19 +10,19 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<RelatedEvent> RelatedEvent::create()
+RawPtr<RelatedEvent> RelatedEvent::create()
 {
     return adoptRefWillBeNoop(new RelatedEvent);
 }
 
-PassRefPtrWillBeRawPtr<RelatedEvent> RelatedEvent::create(const AtomicString& type, bool canBubble, bool cancelable, EventTarget* relatedTarget)
+RawPtr<RelatedEvent> RelatedEvent::create(const AtomicString& type, bool canBubble, bool cancelable, EventTarget* relatedTarget)
 {
-    return adoptRefWillBeNoop(new RelatedEvent(type, canBubble, cancelable, relatedTarget));
+    return new RelatedEvent(type, canBubble, cancelable, relatedTarget);
 }
 
-PassRefPtrWillBeRawPtr<RelatedEvent> RelatedEvent::create(const AtomicString& type, const RelatedEventInit& initializer)
+RawPtr<RelatedEvent> RelatedEvent::create(const AtomicString& type, const RelatedEventInit& initializer)
 {
-    return adoptRefWillBeNoop(new RelatedEvent(type, initializer));
+    return new RelatedEvent(type, initializer);
 }
 
 RelatedEvent::RelatedEvent()
diff --git a/third_party/WebKit/Source/core/events/RelatedEvent.h b/third_party/WebKit/Source/core/events/RelatedEvent.h
index 8ac371a..eed825c 100644
--- a/third_party/WebKit/Source/core/events/RelatedEvent.h
+++ b/third_party/WebKit/Source/core/events/RelatedEvent.h
@@ -13,9 +13,9 @@
 class RelatedEvent final : public Event {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<RelatedEvent> create();
-    static PassRefPtrWillBeRawPtr<RelatedEvent> create(const AtomicString& type, bool canBubble, bool cancelable, EventTarget* relatedTarget);
-    static PassRefPtrWillBeRawPtr<RelatedEvent> create(const AtomicString& eventType, const RelatedEventInit&);
+    static RawPtr<RelatedEvent> create();
+    static RawPtr<RelatedEvent> create(const AtomicString& type, bool canBubble, bool cancelable, EventTarget* relatedTarget);
+    static RawPtr<RelatedEvent> create(const AtomicString& eventType, const RelatedEventInit&);
 
     ~RelatedEvent() override;
 
@@ -31,7 +31,7 @@
     RelatedEvent(const AtomicString& type, bool canBubble, bool cancelable, EventTarget*);
     RelatedEvent(const AtomicString& type, const RelatedEventInit&);
 
-    RefPtrWillBeMember<EventTarget> m_relatedTarget;
+    Member<EventTarget> m_relatedTarget;
 };
 
 DEFINE_EVENT_TYPE_CASTS(RelatedEvent);
diff --git a/third_party/WebKit/Source/core/events/ResourceProgressEvent.h b/third_party/WebKit/Source/core/events/ResourceProgressEvent.h
index b2db10c..4190016 100644
--- a/third_party/WebKit/Source/core/events/ResourceProgressEvent.h
+++ b/third_party/WebKit/Source/core/events/ResourceProgressEvent.h
@@ -46,13 +46,13 @@
 class CORE_EXPORT ResourceProgressEvent final : public ProgressEvent {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<ResourceProgressEvent> create()
+    static RawPtr<ResourceProgressEvent> create()
     {
         return adoptRefWillBeNoop(new ResourceProgressEvent);
     }
-    static PassRefPtrWillBeRawPtr<ResourceProgressEvent> create(const AtomicString& type, bool lengthComputable, unsigned long long loaded, unsigned long long total, const String& url)
+    static RawPtr<ResourceProgressEvent> create(const AtomicString& type, bool lengthComputable, unsigned long long loaded, unsigned long long total, const String& url)
     {
-        return adoptRefWillBeNoop(new ResourceProgressEvent(type, lengthComputable, loaded, total, url));
+        return new ResourceProgressEvent(type, lengthComputable, loaded, total, url);
     }
 
     const String& url() const;
diff --git a/third_party/WebKit/Source/core/events/ScopedEventQueue.cpp b/third_party/WebKit/Source/core/events/ScopedEventQueue.cpp
index 2c8bfd1c..9f1ce8a5 100644
--- a/third_party/WebKit/Source/core/events/ScopedEventQueue.cpp
+++ b/third_party/WebKit/Source/core/events/ScopedEventQueue.cpp
@@ -58,7 +58,7 @@
     s_instance = instance.leakPtr();
 }
 
-void ScopedEventQueue::enqueueEventDispatchMediator(PassRefPtrWillBeRawPtr<EventDispatchMediator> mediator)
+void ScopedEventQueue::enqueueEventDispatchMediator(RawPtr<EventDispatchMediator> mediator)
 {
     if (shouldQueueEvents())
         m_queuedEventDispatchMediators.append(mediator);
@@ -68,14 +68,14 @@
 
 void ScopedEventQueue::dispatchAllEvents()
 {
-    WillBeHeapVector<RefPtrWillBeMember<EventDispatchMediator>> queuedEventDispatchMediators;
+    HeapVector<Member<EventDispatchMediator>> queuedEventDispatchMediators;
     queuedEventDispatchMediators.swap(m_queuedEventDispatchMediators);
 
     for (size_t i = 0; i < queuedEventDispatchMediators.size(); i++)
         dispatchEvent(queuedEventDispatchMediators[i].release());
 }
 
-void ScopedEventQueue::dispatchEvent(PassRefPtrWillBeRawPtr<EventDispatchMediator> mediator) const
+void ScopedEventQueue::dispatchEvent(RawPtr<EventDispatchMediator> mediator) const
 {
     ASSERT(mediator->event().target());
     Node* node = mediator->event().target()->toNode();
diff --git a/third_party/WebKit/Source/core/events/ScopedEventQueue.h b/third_party/WebKit/Source/core/events/ScopedEventQueue.h
index 466db3d..df33df03 100644
--- a/third_party/WebKit/Source/core/events/ScopedEventQueue.h
+++ b/third_party/WebKit/Source/core/events/ScopedEventQueue.h
@@ -47,7 +47,7 @@
 public:
     ~ScopedEventQueue();
 
-    void enqueueEventDispatchMediator(PassRefPtrWillBeRawPtr<EventDispatchMediator>);
+    void enqueueEventDispatchMediator(RawPtr<EventDispatchMediator>);
     void dispatchAllEvents();
     static ScopedEventQueue* instance();
 
@@ -58,9 +58,9 @@
 private:
     ScopedEventQueue();
     static void initialize();
-    void dispatchEvent(PassRefPtrWillBeRawPtr<EventDispatchMediator>) const;
+    void dispatchEvent(RawPtr<EventDispatchMediator>) const;
 
-    WillBePersistentHeapVector<RefPtrWillBeMember<EventDispatchMediator>> m_queuedEventDispatchMediators;
+    PersistentHeapVector<Member<EventDispatchMediator>> m_queuedEventDispatchMediators;
     unsigned m_scopingLevel;
 
     static ScopedEventQueue* s_instance;
diff --git a/third_party/WebKit/Source/core/events/SecurityPolicyViolationEvent.h b/third_party/WebKit/Source/core/events/SecurityPolicyViolationEvent.h
index 4c42813e..f1d151c 100644
--- a/third_party/WebKit/Source/core/events/SecurityPolicyViolationEvent.h
+++ b/third_party/WebKit/Source/core/events/SecurityPolicyViolationEvent.h
@@ -33,14 +33,14 @@
 class SecurityPolicyViolationEvent final : public Event {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<SecurityPolicyViolationEvent> create()
+    static RawPtr<SecurityPolicyViolationEvent> create()
     {
-        return adoptRefWillBeNoop(new SecurityPolicyViolationEvent());
+        return new SecurityPolicyViolationEvent();
     }
 
-    static PassRefPtrWillBeRawPtr<SecurityPolicyViolationEvent> create(const AtomicString& type, const SecurityPolicyViolationEventInit& initializer)
+    static RawPtr<SecurityPolicyViolationEvent> create(const AtomicString& type, const SecurityPolicyViolationEventInit& initializer)
     {
-        return adoptRefWillBeNoop(new SecurityPolicyViolationEvent(type, initializer));
+        return new SecurityPolicyViolationEvent(type, initializer);
     }
 
     const String& documentURI() const { return m_documentURI; }
diff --git a/third_party/WebKit/Source/core/events/TextEvent.cpp b/third_party/WebKit/Source/core/events/TextEvent.cpp
index f85c56e..9920c60 100644
--- a/third_party/WebKit/Source/core/events/TextEvent.cpp
+++ b/third_party/WebKit/Source/core/events/TextEvent.cpp
@@ -30,29 +30,29 @@
 
 namespace blink {
 
-PassRefPtrWillBeRawPtr<TextEvent> TextEvent::create()
+RawPtr<TextEvent> TextEvent::create()
 {
     return adoptRefWillBeNoop(new TextEvent);
 }
 
-PassRefPtrWillBeRawPtr<TextEvent> TextEvent::create(PassRefPtrWillBeRawPtr<AbstractView> view, const String& data, TextEventInputType inputType)
+RawPtr<TextEvent> TextEvent::create(RawPtr<AbstractView> view, const String& data, TextEventInputType inputType)
 {
-    return adoptRefWillBeNoop(new TextEvent(view, data, inputType));
+    return new TextEvent(view, data, inputType);
 }
 
-PassRefPtrWillBeRawPtr<TextEvent> TextEvent::createForPlainTextPaste(PassRefPtrWillBeRawPtr<AbstractView> view, const String& data, bool shouldSmartReplace)
+RawPtr<TextEvent> TextEvent::createForPlainTextPaste(RawPtr<AbstractView> view, const String& data, bool shouldSmartReplace)
 {
-    return adoptRefWillBeNoop(new TextEvent(view, data, nullptr, shouldSmartReplace, false));
+    return new TextEvent(view, data, nullptr, shouldSmartReplace, false);
 }
 
-PassRefPtrWillBeRawPtr<TextEvent> TextEvent::createForFragmentPaste(PassRefPtrWillBeRawPtr<AbstractView> view, PassRefPtrWillBeRawPtr<DocumentFragment> data, bool shouldSmartReplace, bool shouldMatchStyle)
+RawPtr<TextEvent> TextEvent::createForFragmentPaste(RawPtr<AbstractView> view, RawPtr<DocumentFragment> data, bool shouldSmartReplace, bool shouldMatchStyle)
 {
-    return adoptRefWillBeNoop(new TextEvent(view, "", data, shouldSmartReplace, shouldMatchStyle));
+    return new TextEvent(view, "", data, shouldSmartReplace, shouldMatchStyle);
 }
 
-PassRefPtrWillBeRawPtr<TextEvent> TextEvent::createForDrop(PassRefPtrWillBeRawPtr<AbstractView> view, const String& data)
+RawPtr<TextEvent> TextEvent::createForDrop(RawPtr<AbstractView> view, const String& data)
 {
-    return adoptRefWillBeNoop(new TextEvent(view, data, TextEventInputDrop));
+    return new TextEvent(view, data, TextEventInputDrop);
 }
 
 TextEvent::TextEvent()
@@ -62,7 +62,7 @@
 {
 }
 
-TextEvent::TextEvent(PassRefPtrWillBeRawPtr<AbstractView> view, const String& data, TextEventInputType inputType)
+TextEvent::TextEvent(RawPtr<AbstractView> view, const String& data, TextEventInputType inputType)
     : UIEvent(EventTypeNames::textInput, true, true, view, 0)
     , m_inputType(inputType)
     , m_data(data)
@@ -72,7 +72,7 @@
 {
 }
 
-TextEvent::TextEvent(PassRefPtrWillBeRawPtr<AbstractView> view, const String& data, PassRefPtrWillBeRawPtr<DocumentFragment> pastingFragment,
+TextEvent::TextEvent(RawPtr<AbstractView> view, const String& data, RawPtr<DocumentFragment> pastingFragment,
                      bool shouldSmartReplace, bool shouldMatchStyle)
     : UIEvent(EventTypeNames::textInput, true, true, view, 0)
     , m_inputType(TextEventInputPaste)
@@ -87,7 +87,7 @@
 {
 }
 
-void TextEvent::initTextEvent(const AtomicString& type, bool canBubble, bool cancelable, PassRefPtrWillBeRawPtr<AbstractView> view, const String& data)
+void TextEvent::initTextEvent(const AtomicString& type, bool canBubble, bool cancelable, RawPtr<AbstractView> view, const String& data)
 {
     if (dispatched())
         return;
diff --git a/third_party/WebKit/Source/core/events/TextEvent.h b/third_party/WebKit/Source/core/events/TextEvent.h
index 8b37094..c19dd84 100644
--- a/third_party/WebKit/Source/core/events/TextEvent.h
+++ b/third_party/WebKit/Source/core/events/TextEvent.h
@@ -37,15 +37,15 @@
 class TextEvent final : public UIEvent {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<TextEvent> create();
-    static PassRefPtrWillBeRawPtr<TextEvent> create(PassRefPtrWillBeRawPtr<AbstractView>, const String& data, TextEventInputType = TextEventInputKeyboard);
-    static PassRefPtrWillBeRawPtr<TextEvent> createForPlainTextPaste(PassRefPtrWillBeRawPtr<AbstractView>, const String& data, bool shouldSmartReplace);
-    static PassRefPtrWillBeRawPtr<TextEvent> createForFragmentPaste(PassRefPtrWillBeRawPtr<AbstractView>, PassRefPtrWillBeRawPtr<DocumentFragment> data, bool shouldSmartReplace, bool shouldMatchStyle);
-    static PassRefPtrWillBeRawPtr<TextEvent> createForDrop(PassRefPtrWillBeRawPtr<AbstractView>, const String& data);
+    static RawPtr<TextEvent> create();
+    static RawPtr<TextEvent> create(RawPtr<AbstractView>, const String& data, TextEventInputType = TextEventInputKeyboard);
+    static RawPtr<TextEvent> createForPlainTextPaste(RawPtr<AbstractView>, const String& data, bool shouldSmartReplace);
+    static RawPtr<TextEvent> createForFragmentPaste(RawPtr<AbstractView>, RawPtr<DocumentFragment> data, bool shouldSmartReplace, bool shouldMatchStyle);
+    static RawPtr<TextEvent> createForDrop(RawPtr<AbstractView>, const String& data);
 
     ~TextEvent() override;
 
-    void initTextEvent(const AtomicString& type, bool canBubble, bool cancelable, PassRefPtrWillBeRawPtr<AbstractView>, const String& data);
+    void initTextEvent(const AtomicString& type, bool canBubble, bool cancelable, RawPtr<AbstractView>, const String& data);
 
     String data() const { return m_data; }
 
@@ -65,13 +65,13 @@
 private:
     TextEvent();
 
-    TextEvent(PassRefPtrWillBeRawPtr<AbstractView>, const String& data, TextEventInputType = TextEventInputKeyboard);
-    TextEvent(PassRefPtrWillBeRawPtr<AbstractView>, const String& data, PassRefPtrWillBeRawPtr<DocumentFragment>, bool shouldSmartReplace, bool shouldMatchStyle);
+    TextEvent(RawPtr<AbstractView>, const String& data, TextEventInputType = TextEventInputKeyboard);
+    TextEvent(RawPtr<AbstractView>, const String& data, RawPtr<DocumentFragment>, bool shouldSmartReplace, bool shouldMatchStyle);
 
     TextEventInputType m_inputType;
     String m_data;
 
-    RefPtrWillBeMember<DocumentFragment> m_pastingFragment;
+    Member<DocumentFragment> m_pastingFragment;
     bool m_shouldSmartReplace;
     bool m_shouldMatchStyle;
 };
diff --git a/third_party/WebKit/Source/core/events/TouchEvent.cpp b/third_party/WebKit/Source/core/events/TouchEvent.cpp
index f0cce55..c9efe11 100644
--- a/third_party/WebKit/Source/core/events/TouchEvent.cpp
+++ b/third_party/WebKit/Source/core/events/TouchEvent.cpp
@@ -41,7 +41,7 @@
 
 TouchEvent::TouchEvent(TouchList* touches, TouchList* targetTouches,
     TouchList* changedTouches, const AtomicString& type,
-    PassRefPtrWillBeRawPtr<AbstractView> view,
+    RawPtr<AbstractView> view,
     PlatformEvent::Modifiers modifiers, bool cancelable, bool causesScrollingIfUncanceled,
     double platformTimeStamp)
     // Pass a sourceCapabilities including the ability to fire touchevents when creating this touchevent, which is always created from input device capabilities from EventHandler.
@@ -64,7 +64,7 @@
 
 void TouchEvent::initTouchEvent(ScriptState* scriptState, TouchList* touches, TouchList* targetTouches,
     TouchList* changedTouches, const AtomicString& type,
-    PassRefPtrWillBeRawPtr<AbstractView> view,
+    RawPtr<AbstractView> view,
     int, int, int, int,
     bool ctrlKey, bool altKey, bool shiftKey, bool metaKey)
 {
@@ -109,7 +109,7 @@
     }
 }
 
-PassRefPtrWillBeRawPtr<EventDispatchMediator> TouchEvent::createMediator()
+RawPtr<EventDispatchMediator> TouchEvent::createMediator()
 {
     return TouchEventDispatchMediator::create(this);
 }
@@ -122,12 +122,12 @@
     UIEventWithKeyState::trace(visitor);
 }
 
-PassRefPtrWillBeRawPtr<TouchEventDispatchMediator> TouchEventDispatchMediator::create(PassRefPtrWillBeRawPtr<TouchEvent> touchEvent)
+RawPtr<TouchEventDispatchMediator> TouchEventDispatchMediator::create(RawPtr<TouchEvent> touchEvent)
 {
-    return adoptRefWillBeNoop(new TouchEventDispatchMediator(touchEvent));
+    return new TouchEventDispatchMediator(touchEvent);
 }
 
-TouchEventDispatchMediator::TouchEventDispatchMediator(PassRefPtrWillBeRawPtr<TouchEvent> touchEvent)
+TouchEventDispatchMediator::TouchEventDispatchMediator(RawPtr<TouchEvent> touchEvent)
     : EventDispatchMediator(touchEvent)
 {
 }
diff --git a/third_party/WebKit/Source/core/events/TouchEvent.h b/third_party/WebKit/Source/core/events/TouchEvent.h
index 942aac0c..8cf0297 100644
--- a/third_party/WebKit/Source/core/events/TouchEvent.h
+++ b/third_party/WebKit/Source/core/events/TouchEvent.h
@@ -41,28 +41,28 @@
     ~TouchEvent() override;
 
     // We only initialize sourceCapabilities when we create TouchEvent from EventHandler, null if it is from JavaScript.
-    static PassRefPtrWillBeRawPtr<TouchEvent> create()
+    static RawPtr<TouchEvent> create()
     {
         return adoptRefWillBeNoop(new TouchEvent);
     }
-    static PassRefPtrWillBeRawPtr<TouchEvent> create(TouchList* touches,
+    static RawPtr<TouchEvent> create(TouchList* touches,
         TouchList* targetTouches, TouchList* changedTouches,
-        const AtomicString& type, PassRefPtrWillBeRawPtr<AbstractView> view,
+        const AtomicString& type, RawPtr<AbstractView> view,
         PlatformEvent::Modifiers modifiers, bool cancelable, bool causesScrollingIfUncanceled,
         double platformTimeStamp)
     {
-        return adoptRefWillBeNoop(new TouchEvent(touches, targetTouches, changedTouches, type, view,
-            modifiers, cancelable, causesScrollingIfUncanceled, platformTimeStamp));
+        return new TouchEvent(touches, targetTouches, changedTouches, type, view,
+            modifiers, cancelable, causesScrollingIfUncanceled, platformTimeStamp);
     }
 
-    static PassRefPtrWillBeRawPtr<TouchEvent> create(const AtomicString& type, const TouchEventInit& initializer)
+    static RawPtr<TouchEvent> create(const AtomicString& type, const TouchEventInit& initializer)
     {
-        return adoptRefWillBeNoop(new TouchEvent(type, initializer));
+        return new TouchEvent(type, initializer);
     }
 
     void initTouchEvent(ScriptState*, TouchList* touches, TouchList* targetTouches,
         TouchList* changedTouches, const AtomicString& type,
-        PassRefPtrWillBeRawPtr<AbstractView>,
+        RawPtr<AbstractView>,
         int, int, int, int, // unused useless members of web exposed API
         bool ctrlKey, bool altKey, bool shiftKey, bool metaKey);
 
@@ -70,9 +70,9 @@
     TouchList* targetTouches() const { return m_targetTouches.get(); }
     TouchList* changedTouches() const { return m_changedTouches.get(); }
 
-    void setTouches(PassRefPtrWillBeRawPtr<TouchList> touches) { m_touches = touches; }
-    void setTargetTouches(PassRefPtrWillBeRawPtr<TouchList> targetTouches) { m_targetTouches = targetTouches; }
-    void setChangedTouches(PassRefPtrWillBeRawPtr<TouchList> changedTouches) { m_changedTouches = changedTouches; }
+    void setTouches(RawPtr<TouchList> touches) { m_touches = touches; }
+    void setTargetTouches(RawPtr<TouchList> targetTouches) { m_targetTouches = targetTouches; }
+    void setChangedTouches(RawPtr<TouchList> changedTouches) { m_changedTouches = changedTouches; }
 
     bool causesScrollingIfUncanceled() const { return m_causesScrollingIfUncanceled; }
 
@@ -82,7 +82,7 @@
 
     void preventDefault() override;
 
-    PassRefPtrWillBeRawPtr<EventDispatchMediator> createMediator() override;
+    RawPtr<EventDispatchMediator> createMediator() override;
 
     DECLARE_VIRTUAL_TRACE();
 
@@ -90,23 +90,23 @@
     TouchEvent();
     TouchEvent(TouchList* touches, TouchList* targetTouches,
         TouchList* changedTouches, const AtomicString& type,
-        PassRefPtrWillBeRawPtr<AbstractView>, PlatformEvent::Modifiers,
+        RawPtr<AbstractView>, PlatformEvent::Modifiers,
         bool cancelable, bool causesScrollingIfUncanceled,
         double platformTimeStamp);
     TouchEvent(const AtomicString&, const TouchEventInit&);
 
-    RefPtrWillBeMember<TouchList> m_touches;
-    RefPtrWillBeMember<TouchList> m_targetTouches;
-    RefPtrWillBeMember<TouchList> m_changedTouches;
+    Member<TouchList> m_touches;
+    Member<TouchList> m_targetTouches;
+    Member<TouchList> m_changedTouches;
     bool m_causesScrollingIfUncanceled;
 };
 
 class TouchEventDispatchMediator final : public EventDispatchMediator {
 public:
-    static PassRefPtrWillBeRawPtr<TouchEventDispatchMediator> create(PassRefPtrWillBeRawPtr<TouchEvent>);
+    static RawPtr<TouchEventDispatchMediator> create(RawPtr<TouchEvent>);
 
 private:
-    explicit TouchEventDispatchMediator(PassRefPtrWillBeRawPtr<TouchEvent>);
+    explicit TouchEventDispatchMediator(RawPtr<TouchEvent>);
     TouchEvent& event() const;
     DispatchEventResult dispatchEvent(EventDispatcher&) const override;
 };
diff --git a/third_party/WebKit/Source/core/events/TouchEventContext.cpp b/third_party/WebKit/Source/core/events/TouchEventContext.cpp
index 60564be..916c545d 100644
--- a/third_party/WebKit/Source/core/events/TouchEventContext.cpp
+++ b/third_party/WebKit/Source/core/events/TouchEventContext.cpp
@@ -32,7 +32,7 @@
 
 namespace blink {
 
-PassRefPtrWillBeRawPtr<TouchEventContext> TouchEventContext::create()
+RawPtr<TouchEventContext> TouchEventContext::create()
 {
     return adoptRefWillBeNoop(new TouchEventContext);
 }
@@ -44,8 +44,6 @@
 {
 }
 
-DEFINE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(TouchEventContext)
-
 void TouchEventContext::handleLocalEvents(Event& event) const
 {
     ASSERT(event.isTouchEvent());
diff --git a/third_party/WebKit/Source/core/events/TouchEventContext.h b/third_party/WebKit/Source/core/events/TouchEventContext.h
index d7ebe20..2f0ca07a 100644
--- a/third_party/WebKit/Source/core/events/TouchEventContext.h
+++ b/third_party/WebKit/Source/core/events/TouchEventContext.h
@@ -37,10 +37,9 @@
 class Event;
 class TouchList;
 
-class TouchEventContext : public RefCountedWillBeGarbageCollected<TouchEventContext> {
-    DECLARE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(TouchEventContext);
+class TouchEventContext : public GarbageCollected<TouchEventContext> {
 public:
-    static PassRefPtrWillBeRawPtr<TouchEventContext> create();
+    static RawPtr<TouchEventContext> create();
     void handleLocalEvents(Event&) const;
     TouchList& touches() { return *m_touches; }
     TouchList& targetTouches() { return *m_targetTouches; }
@@ -51,9 +50,9 @@
 private:
     TouchEventContext();
 
-    RefPtrWillBeMember<TouchList> m_touches;
-    RefPtrWillBeMember<TouchList> m_targetTouches;
-    RefPtrWillBeMember<TouchList> m_changedTouches;
+    Member<TouchList> m_touches;
+    Member<TouchList> m_targetTouches;
+    Member<TouchList> m_changedTouches;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/events/TransitionEvent.h b/third_party/WebKit/Source/core/events/TransitionEvent.h
index b7527df7..3fef7f11 100644
--- a/third_party/WebKit/Source/core/events/TransitionEvent.h
+++ b/third_party/WebKit/Source/core/events/TransitionEvent.h
@@ -35,17 +35,17 @@
 class TransitionEvent final : public Event {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<TransitionEvent> create()
+    static RawPtr<TransitionEvent> create()
     {
         return adoptRefWillBeNoop(new TransitionEvent);
     }
-    static PassRefPtrWillBeRawPtr<TransitionEvent> create(const AtomicString& type, const String& propertyName, double elapsedTime, const String& pseudoElement)
+    static RawPtr<TransitionEvent> create(const AtomicString& type, const String& propertyName, double elapsedTime, const String& pseudoElement)
     {
-        return adoptRefWillBeNoop(new TransitionEvent(type, propertyName, elapsedTime, pseudoElement));
+        return new TransitionEvent(type, propertyName, elapsedTime, pseudoElement);
     }
-    static PassRefPtrWillBeRawPtr<TransitionEvent> create(const AtomicString& type, const TransitionEventInit& initializer)
+    static RawPtr<TransitionEvent> create(const AtomicString& type, const TransitionEventInit& initializer)
     {
-        return adoptRefWillBeNoop(new TransitionEvent(type, initializer));
+        return new TransitionEvent(type, initializer);
     }
 
     ~TransitionEvent() override;
diff --git a/third_party/WebKit/Source/core/events/TreeScopeEventContext.cpp b/third_party/WebKit/Source/core/events/TreeScopeEventContext.cpp
index 288119e4d..0f71ae4 100644
--- a/third_party/WebKit/Source/core/events/TreeScopeEventContext.cpp
+++ b/third_party/WebKit/Source/core/events/TreeScopeEventContext.cpp
@@ -56,12 +56,12 @@
     return false;
 }
 
-WillBeHeapVector<RefPtrWillBeMember<EventTarget>>& TreeScopeEventContext::ensureEventPath(EventPath& path)
+HeapVector<Member<EventTarget>>& TreeScopeEventContext::ensureEventPath(EventPath& path)
 {
     if (m_eventPath)
         return *m_eventPath;
 
-    m_eventPath = adoptPtrWillBeNoop(new WillBeHeapVector<RefPtrWillBeMember<EventTarget>>());
+    m_eventPath = new HeapVector<Member<EventTarget>>();
     LocalDOMWindow* window = path.windowEventContext().window();
     m_eventPath->reserveCapacity(path.size() + (window ? 1 : 0));
 
@@ -81,9 +81,9 @@
     return m_touchEventContext.get();
 }
 
-PassRefPtrWillBeRawPtr<TreeScopeEventContext> TreeScopeEventContext::create(TreeScope& treeScope)
+RawPtr<TreeScopeEventContext> TreeScopeEventContext::create(TreeScope& treeScope)
 {
-    return adoptRefWillBeNoop(new TreeScopeEventContext(treeScope));
+    return new TreeScopeEventContext(treeScope);
 }
 
 TreeScopeEventContext::TreeScopeEventContext(TreeScope& treeScope)
@@ -95,8 +95,6 @@
 {
 }
 
-DEFINE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(TreeScopeEventContext)
-
 DEFINE_TRACE(TreeScopeEventContext)
 {
     visitor->trace(m_treeScope);
diff --git a/third_party/WebKit/Source/core/events/TreeScopeEventContext.h b/third_party/WebKit/Source/core/events/TreeScopeEventContext.h
index 1fce6666..bbdfe51 100644
--- a/third_party/WebKit/Source/core/events/TreeScopeEventContext.h
+++ b/third_party/WebKit/Source/core/events/TreeScopeEventContext.h
@@ -45,25 +45,24 @@
 class TouchEventContext;
 class TreeScope;
 
-class CORE_EXPORT TreeScopeEventContext final : public RefCountedWillBeGarbageCollected<TreeScopeEventContext> {
-    DECLARE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(TreeScopeEventContext);
+class CORE_EXPORT TreeScopeEventContext final : public GarbageCollected<TreeScopeEventContext> {
 public:
-    static PassRefPtrWillBeRawPtr<TreeScopeEventContext> create(TreeScope&);
+    static RawPtr<TreeScopeEventContext> create(TreeScope&);
     DECLARE_TRACE();
 
     TreeScope& treeScope() const { return *m_treeScope; }
     Node& rootNode() const { return *m_rootNode; }
 
     EventTarget* target() const { return m_target.get(); }
-    void setTarget(PassRefPtrWillBeRawPtr<EventTarget>);
+    void setTarget(RawPtr<EventTarget>);
 
     EventTarget* relatedTarget() const { return m_relatedTarget.get(); }
-    void setRelatedTarget(PassRefPtrWillBeRawPtr<EventTarget>);
+    void setRelatedTarget(RawPtr<EventTarget>);
 
     TouchEventContext* touchEventContext() const { return m_touchEventContext.get(); }
     TouchEventContext* ensureTouchEventContext();
 
-    WillBeHeapVector<RefPtrWillBeMember<EventTarget>>& ensureEventPath(EventPath&);
+    HeapVector<Member<EventTarget>>& ensureEventPath(EventPath&);
 
     bool isInclusiveAncestorOf(const TreeScopeEventContext&) const;
     bool isDescendantOf(const TreeScopeEventContext&) const;
@@ -87,15 +86,15 @@
 
     bool isUnclosedTreeOf(const TreeScopeEventContext& other);
 
-    RawPtrWillBeMember<TreeScope> m_treeScope;
-    RefPtrWillBeMember<Node> m_rootNode; // Prevents TreeScope from being freed. TreeScope itself isn't RefCounted.
-    RefPtrWillBeMember<EventTarget> m_target;
-    RefPtrWillBeMember<EventTarget> m_relatedTarget;
-    OwnPtrWillBeMember<WillBeHeapVector<RefPtrWillBeMember<EventTarget>>> m_eventPath;
-    RefPtrWillBeMember<TouchEventContext> m_touchEventContext;
-    RawPtrWillBeMember<TreeScopeEventContext> m_containingClosedShadowTree;
+    Member<TreeScope> m_treeScope;
+    Member<Node> m_rootNode; // Prevents TreeScope from being freed. TreeScope itself isn't RefCounted.
+    Member<EventTarget> m_target;
+    Member<EventTarget> m_relatedTarget;
+    Member<HeapVector<Member<EventTarget>>> m_eventPath;
+    Member<TouchEventContext> m_touchEventContext;
+    Member<TreeScopeEventContext> m_containingClosedShadowTree;
 
-    WillBeHeapVector<RawPtrWillBeMember<TreeScopeEventContext>> m_children;
+    HeapVector<Member<TreeScopeEventContext>> m_children;
     int m_preOrder;
     int m_postOrder;
 };
@@ -108,14 +107,14 @@
 }
 #endif
 
-inline void TreeScopeEventContext::setTarget(PassRefPtrWillBeRawPtr<EventTarget> target)
+inline void TreeScopeEventContext::setTarget(RawPtr<EventTarget> target)
 {
     ASSERT(target);
     ASSERT(!isUnreachableNode(*target));
     m_target = target;
 }
 
-inline void TreeScopeEventContext::setRelatedTarget(PassRefPtrWillBeRawPtr<EventTarget> relatedTarget)
+inline void TreeScopeEventContext::setRelatedTarget(RawPtr<EventTarget> relatedTarget)
 {
     ASSERT(relatedTarget);
     ASSERT(!isUnreachableNode(*relatedTarget));
diff --git a/third_party/WebKit/Source/core/events/UIEvent.cpp b/third_party/WebKit/Source/core/events/UIEvent.cpp
index 8f82f489..ff5695c3 100644
--- a/third_party/WebKit/Source/core/events/UIEvent.cpp
+++ b/third_party/WebKit/Source/core/events/UIEvent.cpp
@@ -32,7 +32,7 @@
 }
 
 // TODO(lanwei): Will add sourceCapabilities to all the subclass of UIEvent later, see https://crbug.com/476530.
-UIEvent::UIEvent(const AtomicString& eventType, bool canBubbleArg, bool cancelableArg, PassRefPtrWillBeRawPtr<AbstractView> viewArg, int detailArg, InputDeviceCapabilities* sourceCapabilitiesArg)
+UIEvent::UIEvent(const AtomicString& eventType, bool canBubbleArg, bool cancelableArg, RawPtr<AbstractView> viewArg, int detailArg, InputDeviceCapabilities* sourceCapabilitiesArg)
     : Event(eventType, canBubbleArg, cancelableArg)
     , m_view(viewArg)
     , m_detail(detailArg)
@@ -40,7 +40,7 @@
 {
 }
 
-UIEvent::UIEvent(const AtomicString& eventType, bool canBubbleArg, bool cancelableArg, EventTarget* relatedTarget, PassRefPtrWillBeRawPtr<AbstractView> viewArg, int detailArg, InputDeviceCapabilities* sourceCapabilitiesArg)
+UIEvent::UIEvent(const AtomicString& eventType, bool canBubbleArg, bool cancelableArg, EventTarget* relatedTarget, RawPtr<AbstractView> viewArg, int detailArg, InputDeviceCapabilities* sourceCapabilitiesArg)
     : Event(eventType, canBubbleArg, cancelableArg, relatedTarget)
     , m_view(viewArg)
     , m_detail(detailArg)
@@ -48,7 +48,7 @@
 {
 }
 
-UIEvent::UIEvent(const AtomicString& eventType, bool canBubbleArg, bool cancelableArg, double platformTimeStamp, PassRefPtrWillBeRawPtr<AbstractView> viewArg, int detailArg, InputDeviceCapabilities* sourceCapabilitiesArg)
+UIEvent::UIEvent(const AtomicString& eventType, bool canBubbleArg, bool cancelableArg, double platformTimeStamp, RawPtr<AbstractView> viewArg, int detailArg, InputDeviceCapabilities* sourceCapabilitiesArg)
     : Event(eventType, canBubbleArg, cancelableArg, platformTimeStamp)
     , m_view(viewArg)
     , m_detail(detailArg)
@@ -56,7 +56,7 @@
 {
 }
 
-UIEvent::UIEvent(const AtomicString& eventType, bool canBubbleArg, bool cancelableArg, EventTarget* relatedTarget, double platformTimeStamp, PassRefPtrWillBeRawPtr<AbstractView> viewArg, int detailArg, InputDeviceCapabilities* sourceCapabilitiesArg)
+UIEvent::UIEvent(const AtomicString& eventType, bool canBubbleArg, bool cancelableArg, EventTarget* relatedTarget, double platformTimeStamp, RawPtr<AbstractView> viewArg, int detailArg, InputDeviceCapabilities* sourceCapabilitiesArg)
     : Event(eventType, canBubbleArg, cancelableArg, relatedTarget, platformTimeStamp)
     , m_view(viewArg)
     , m_detail(detailArg)
@@ -76,12 +76,12 @@
 {
 }
 
-void UIEvent::initUIEvent(const AtomicString& typeArg, bool canBubbleArg, bool cancelableArg, PassRefPtrWillBeRawPtr<AbstractView> viewArg, int detailArg)
+void UIEvent::initUIEvent(const AtomicString& typeArg, bool canBubbleArg, bool cancelableArg, RawPtr<AbstractView> viewArg, int detailArg)
 {
     initUIEventInternal(typeArg, canBubbleArg, cancelableArg, nullptr, viewArg, detailArg, nullptr);
 }
 
-void UIEvent::initUIEventInternal(const AtomicString& typeArg, bool canBubbleArg, bool cancelableArg, EventTarget* relatedTarget, PassRefPtrWillBeRawPtr<AbstractView> viewArg, int detailArg, InputDeviceCapabilities* sourceCapabilitiesArg)
+void UIEvent::initUIEventInternal(const AtomicString& typeArg, bool canBubbleArg, bool cancelableArg, EventTarget* relatedTarget, RawPtr<AbstractView> viewArg, int detailArg, InputDeviceCapabilities* sourceCapabilitiesArg)
 {
     if (dispatched())
         return;
diff --git a/third_party/WebKit/Source/core/events/UIEvent.h b/third_party/WebKit/Source/core/events/UIEvent.h
index 2fd908d..61d8bd9 100644
--- a/third_party/WebKit/Source/core/events/UIEvent.h
+++ b/third_party/WebKit/Source/core/events/UIEvent.h
@@ -39,22 +39,22 @@
 class CORE_EXPORT UIEvent : public Event {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<UIEvent> create()
+    static RawPtr<UIEvent> create()
     {
         return adoptRefWillBeNoop(new UIEvent);
     }
-    static PassRefPtrWillBeRawPtr<UIEvent> create(const AtomicString& type, bool canBubble, bool cancelable, PassRefPtrWillBeRawPtr<AbstractView> view, int detail)
+    static RawPtr<UIEvent> create(const AtomicString& type, bool canBubble, bool cancelable, RawPtr<AbstractView> view, int detail)
     {
-        return adoptRefWillBeNoop(new UIEvent(type, canBubble, cancelable, view, detail));
+        return new UIEvent(type, canBubble, cancelable, view, detail);
     }
-    static PassRefPtrWillBeRawPtr<UIEvent> create(const AtomicString& type, const UIEventInit& initializer)
+    static RawPtr<UIEvent> create(const AtomicString& type, const UIEventInit& initializer)
     {
-        return adoptRefWillBeNoop(new UIEvent(type, initializer));
+        return new UIEvent(type, initializer);
     }
     ~UIEvent() override;
 
-    void initUIEvent(const AtomicString& type, bool canBubble, bool cancelable, PassRefPtrWillBeRawPtr<AbstractView>, int detail);
-    void initUIEventInternal(const AtomicString& type, bool canBubble, bool cancelable, EventTarget* relatedTarget, PassRefPtrWillBeRawPtr<AbstractView>, int detail, InputDeviceCapabilities* sourceCapabilities);
+    void initUIEvent(const AtomicString& type, bool canBubble, bool cancelable, RawPtr<AbstractView>, int detail);
+    void initUIEventInternal(const AtomicString& type, bool canBubble, bool cancelable, EventTarget* relatedTarget, RawPtr<AbstractView>, int detail, InputDeviceCapabilities* sourceCapabilities);
 
     AbstractView* view() const { return m_view.get(); }
     int detail() const { return m_detail; }
@@ -70,16 +70,16 @@
 protected:
     UIEvent();
     // TODO(crbug.com/563542): Remove of this ctor in favor of making platformTimeStamp (and perhaps sourceCapabilities) required in all constructions sites
-    UIEvent(const AtomicString& type, bool canBubble, bool cancelable, PassRefPtrWillBeRawPtr<AbstractView>, int detail, InputDeviceCapabilities* sourceCapabilities = nullptr);
-    UIEvent(const AtomicString& type, bool canBubble, bool cancelable, EventTarget* relatedTarget, PassRefPtrWillBeRawPtr<AbstractView>, int detail, InputDeviceCapabilities* sourceCapabilities = nullptr);
-    UIEvent(const AtomicString& type, bool canBubble, bool cancelable, double platformTimeStamp, PassRefPtrWillBeRawPtr<AbstractView>, int detail, InputDeviceCapabilities* sourceCapabilities);
-    UIEvent(const AtomicString& eventType, bool canBubbleArg, bool cancelableArg, EventTarget* relatedTarget, double platformTimeStamp, PassRefPtrWillBeRawPtr<AbstractView> viewArg, int detailArg, InputDeviceCapabilities* sourceCapabilitiesArg);
+    UIEvent(const AtomicString& type, bool canBubble, bool cancelable, RawPtr<AbstractView>, int detail, InputDeviceCapabilities* sourceCapabilities = nullptr);
+    UIEvent(const AtomicString& type, bool canBubble, bool cancelable, EventTarget* relatedTarget, RawPtr<AbstractView>, int detail, InputDeviceCapabilities* sourceCapabilities = nullptr);
+    UIEvent(const AtomicString& type, bool canBubble, bool cancelable, double platformTimeStamp, RawPtr<AbstractView>, int detail, InputDeviceCapabilities* sourceCapabilities);
+    UIEvent(const AtomicString& eventType, bool canBubbleArg, bool cancelableArg, EventTarget* relatedTarget, double platformTimeStamp, RawPtr<AbstractView> viewArg, int detailArg, InputDeviceCapabilities* sourceCapabilitiesArg);
     UIEvent(const AtomicString&, const UIEventInit&);
 
 private:
-    RefPtrWillBeMember<AbstractView> m_view;
+    Member<AbstractView> m_view;
     int m_detail;
-    PersistentWillBeMember<InputDeviceCapabilities> m_sourceCapabilities;
+    Member<InputDeviceCapabilities> m_sourceCapabilities;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/events/UIEventWithKeyState.cpp b/third_party/WebKit/Source/core/events/UIEventWithKeyState.cpp
index 0f6a9a871..ad02a57 100644
--- a/third_party/WebKit/Source/core/events/UIEventWithKeyState.cpp
+++ b/third_party/WebKit/Source/core/events/UIEventWithKeyState.cpp
@@ -22,14 +22,14 @@
 
 namespace blink {
 
-UIEventWithKeyState::UIEventWithKeyState(const AtomicString& type, bool canBubble, bool cancelable, PassRefPtrWillBeRawPtr<AbstractView> view,
+UIEventWithKeyState::UIEventWithKeyState(const AtomicString& type, bool canBubble, bool cancelable, RawPtr<AbstractView> view,
     int detail, PlatformEvent::Modifiers modifiers, double platformTimeStamp, InputDeviceCapabilities* sourceCapabilities)
     : UIEvent(type, canBubble, cancelable, platformTimeStamp, view, detail, sourceCapabilities)
     , m_modifiers(modifiers)
 {
 }
 
-UIEventWithKeyState::UIEventWithKeyState(const AtomicString& type, bool canBubble, bool cancelable, EventTarget* relatedTarget, PassRefPtrWillBeRawPtr<AbstractView> view,
+UIEventWithKeyState::UIEventWithKeyState(const AtomicString& type, bool canBubble, bool cancelable, EventTarget* relatedTarget, RawPtr<AbstractView> view,
     int detail, PlatformEvent::Modifiers modifiers, double platformTimeStamp, InputDeviceCapabilities* sourceCapabilities)
     : UIEvent(type, canBubble, cancelable, relatedTarget, platformTimeStamp, view, detail, sourceCapabilities)
     , m_modifiers(modifiers)
diff --git a/third_party/WebKit/Source/core/events/UIEventWithKeyState.h b/third_party/WebKit/Source/core/events/UIEventWithKeyState.h
index 9c783d23..afbc42b 100644
--- a/third_party/WebKit/Source/core/events/UIEventWithKeyState.h
+++ b/third_party/WebKit/Source/core/events/UIEventWithKeyState.h
@@ -55,9 +55,9 @@
     {
     }
 
-    UIEventWithKeyState(const AtomicString& type, bool canBubble, bool cancelable, PassRefPtrWillBeRawPtr<AbstractView>,
+    UIEventWithKeyState(const AtomicString& type, bool canBubble, bool cancelable, RawPtr<AbstractView>,
         int detail, PlatformEvent::Modifiers, double platformTimeStamp, InputDeviceCapabilities* sourceCapabilities = nullptr);
-    UIEventWithKeyState(const AtomicString& type, bool canBubble, bool cancelable, EventTarget* relatedTarget, PassRefPtrWillBeRawPtr<AbstractView>,
+    UIEventWithKeyState(const AtomicString& type, bool canBubble, bool cancelable, EventTarget* relatedTarget, RawPtr<AbstractView>,
         int detail, PlatformEvent::Modifiers, double platformTimeStamp, InputDeviceCapabilities* sourceCapabilities = nullptr);
     UIEventWithKeyState(const AtomicString& type, const EventModifierInit& initializer);
     void initModifiers(bool ctrlKey, bool altKey, bool shiftKey, bool metaKey);
diff --git a/third_party/WebKit/Source/core/events/WheelEvent.cpp b/third_party/WebKit/Source/core/events/WheelEvent.cpp
index 3f4c15b..0573da8 100644
--- a/third_party/WebKit/Source/core/events/WheelEvent.cpp
+++ b/third_party/WebKit/Source/core/events/WheelEvent.cpp
@@ -34,14 +34,14 @@
     return event.granularity() == ScrollByPageWheelEvent ? WheelEvent::DOM_DELTA_PAGE : WheelEvent::DOM_DELTA_PIXEL;
 }
 
-PassRefPtrWillBeRawPtr<WheelEvent> WheelEvent::create(const PlatformWheelEvent& event, PassRefPtrWillBeRawPtr<AbstractView> view)
+RawPtr<WheelEvent> WheelEvent::create(const PlatformWheelEvent& event, RawPtr<AbstractView> view)
 {
-    return adoptRefWillBeNoop(new WheelEvent(FloatPoint(event.wheelTicksX(), event.wheelTicksY()), FloatPoint(event.deltaX(), event.deltaY()),
+    return new WheelEvent(FloatPoint(event.wheelTicksX(), event.wheelTicksY()), FloatPoint(event.deltaX(), event.deltaY()),
         convertDeltaMode(event), view, event.globalPosition(), event.position(),
         event.getModifiers(),
         MouseEvent::platformModifiersToButtons(event.getModifiers()), event.timestamp(),
         event.canScroll(), event.resendingPluginId(), event.hasPreciseScrollingDeltas(),
-        static_cast<Event::RailsMode>(event.getRailsMode())));
+        static_cast<Event::RailsMode>(event.getRailsMode()));
 }
 
 WheelEvent::WheelEvent()
@@ -71,7 +71,7 @@
 }
 
 WheelEvent::WheelEvent(const FloatPoint& wheelTicks, const FloatPoint& rawDelta, unsigned deltaMode,
-    PassRefPtrWillBeRawPtr<AbstractView> view, const IntPoint& screenLocation, const IntPoint& windowLocation,
+    RawPtr<AbstractView> view, const IntPoint& screenLocation, const IntPoint& windowLocation,
     PlatformEvent::Modifiers modifiers, unsigned short buttons, double platformTimeStamp,
     bool canScroll, int resendingPluginId, bool hasPreciseScrollingDeltas, RailsMode railsMode)
     : MouseEvent(EventTypeNames::wheel, true, true, view, 0, screenLocation.x(), screenLocation.y(),
@@ -107,7 +107,7 @@
     return true;
 }
 
-PassRefPtrWillBeRawPtr<EventDispatchMediator> WheelEvent::createMediator()
+RawPtr<EventDispatchMediator> WheelEvent::createMediator()
 {
     return EventDispatchMediator::create(this);
 }
diff --git a/third_party/WebKit/Source/core/events/WheelEvent.h b/third_party/WebKit/Source/core/events/WheelEvent.h
index ec119aa..5a2d972 100644
--- a/third_party/WebKit/Source/core/events/WheelEvent.h
+++ b/third_party/WebKit/Source/core/events/WheelEvent.h
@@ -45,27 +45,27 @@
         DOM_DELTA_PAGE
     };
 
-    static PassRefPtrWillBeRawPtr<WheelEvent> create()
+    static RawPtr<WheelEvent> create()
     {
         return adoptRefWillBeNoop(new WheelEvent);
     }
 
-    static PassRefPtrWillBeRawPtr<WheelEvent> create(const PlatformWheelEvent& platformEvent, PassRefPtrWillBeRawPtr<AbstractView>);
+    static RawPtr<WheelEvent> create(const PlatformWheelEvent& platformEvent, RawPtr<AbstractView>);
 
-    static PassRefPtrWillBeRawPtr<WheelEvent> create(const AtomicString& type, const WheelEventInit& initializer)
+    static RawPtr<WheelEvent> create(const AtomicString& type, const WheelEventInit& initializer)
     {
-        return adoptRefWillBeNoop(new WheelEvent(type, initializer));
+        return new WheelEvent(type, initializer);
     }
 
-    static PassRefPtrWillBeRawPtr<WheelEvent> create(const FloatPoint& wheelTicks,
-        const FloatPoint& rawDelta, unsigned deltaMode, PassRefPtrWillBeRawPtr<AbstractView> view,
+    static RawPtr<WheelEvent> create(const FloatPoint& wheelTicks,
+        const FloatPoint& rawDelta, unsigned deltaMode, RawPtr<AbstractView> view,
         const IntPoint& screenLocation, const IntPoint& windowLocation,
         PlatformEvent::Modifiers modifiers, unsigned short buttons, double platformTimeStamp,
         bool canScroll, int resendingPluginId, bool hasPreciseScrollingDeltas, RailsMode railsMode)
     {
-        return adoptRefWillBeNoop(new WheelEvent(wheelTicks, rawDelta, deltaMode, view,
+        return new WheelEvent(wheelTicks, rawDelta, deltaMode, view,
             screenLocation, windowLocation, modifiers, buttons, platformTimeStamp,
-            canScroll, resendingPluginId,  hasPreciseScrollingDeltas, railsMode));
+            canScroll, resendingPluginId,  hasPreciseScrollingDeltas, railsMode);
     }
 
     double deltaX() const { return m_deltaX; } // Positive when scrolling right.
@@ -86,7 +86,7 @@
     bool isMouseEvent() const override;
     bool isWheelEvent() const override;
 
-    PassRefPtrWillBeRawPtr<EventDispatchMediator> createMediator() override;
+    RawPtr<EventDispatchMediator> createMediator() override;
 
     DECLARE_VIRTUAL_TRACE();
 
@@ -94,7 +94,7 @@
     WheelEvent();
     WheelEvent(const AtomicString&, const WheelEventInit&);
     WheelEvent(const FloatPoint& wheelTicks, const FloatPoint& rawDelta,
-        unsigned, PassRefPtrWillBeRawPtr<AbstractView>, const IntPoint& screenLocation, const IntPoint& windowLocation,
+        unsigned, RawPtr<AbstractView>, const IntPoint& screenLocation, const IntPoint& windowLocation,
         PlatformEvent::Modifiers, unsigned short buttons, double platformTimeStamp,
         bool canScroll, int resendingPluginId, bool hasPreciseScrollingDeltas, RailsMode);
 
diff --git a/third_party/WebKit/Source/core/events/WindowEventContext.h b/third_party/WebKit/Source/core/events/WindowEventContext.h
index 55109fc6..3f45512c 100644
--- a/third_party/WebKit/Source/core/events/WindowEventContext.h
+++ b/third_party/WebKit/Source/core/events/WindowEventContext.h
@@ -38,8 +38,7 @@
 class Node;
 class NodeEventContext;
 
-class WindowEventContext : public NoBaseWillBeGarbageCollected<WindowEventContext> {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(WindowEventContext);
+class WindowEventContext : public GarbageCollected<WindowEventContext> {
     WTF_MAKE_NONCOPYABLE(WindowEventContext);
 public:
     WindowEventContext(Event&, const NodeEventContext& topNodeEventContext);
@@ -51,8 +50,8 @@
     DECLARE_TRACE();
 
 private:
-    RefPtrWillBeMember<LocalDOMWindow> m_window;
-    RefPtrWillBeMember<EventTarget> m_target;
+    Member<LocalDOMWindow> m_window;
+    Member<EventTarget> m_target;
 };
 
 inline LocalDOMWindow* WindowEventContext::window() const
diff --git a/third_party/WebKit/Source/core/fetch/CSSStyleSheetResource.cpp b/third_party/WebKit/Source/core/fetch/CSSStyleSheetResource.cpp
index 1a38e722..01e60bf 100644
--- a/third_party/WebKit/Source/core/fetch/CSSStyleSheetResource.cpp
+++ b/third_party/WebKit/Source/core/fetch/CSSStyleSheetResource.cpp
@@ -37,16 +37,16 @@
 
 namespace blink {
 
-PassRefPtrWillBeRawPtr<CSSStyleSheetResource> CSSStyleSheetResource::fetch(FetchRequest& request, ResourceFetcher* fetcher)
+RawPtr<CSSStyleSheetResource> CSSStyleSheetResource::fetch(FetchRequest& request, ResourceFetcher* fetcher)
 {
     ASSERT(request.resourceRequest().frameType() == WebURLRequest::FrameTypeNone);
     request.mutableResourceRequest().setRequestContext(WebURLRequest::RequestContextStyle);
     return toCSSStyleSheetResource(fetcher->requestResource(request, CSSStyleSheetResourceFactory()));
 }
 
-PassRefPtrWillBeRawPtr<CSSStyleSheetResource> CSSStyleSheetResource::createForTest(const ResourceRequest& request, const String& charset)
+RawPtr<CSSStyleSheetResource> CSSStyleSheetResource::createForTest(const ResourceRequest& request, const String& charset)
 {
-    return adoptRefWillBeNoop(new CSSStyleSheetResource(request, ResourceLoaderOptions(), charset));
+    return new CSSStyleSheetResource(request, ResourceLoaderOptions(), charset);
 }
 
 CSSStyleSheetResource::CSSStyleSheetResource(const ResourceRequest& resourceRequest, const ResourceLoaderOptions& options, const String& charset)
@@ -150,7 +150,7 @@
     return contentType.isEmpty() || equalIgnoringCase(contentType, "text/css") || equalIgnoringCase(contentType, "application/x-unknown-content-type");
 }
 
-PassRefPtrWillBeRawPtr<StyleSheetContents> CSSStyleSheetResource::restoreParsedStyleSheet(const CSSParserContext& context)
+RawPtr<StyleSheetContents> CSSStyleSheetResource::restoreParsedStyleSheet(const CSSParserContext& context)
 {
     if (!m_parsedStyleSheetCache)
         return nullptr;
@@ -172,7 +172,7 @@
     return m_parsedStyleSheetCache;
 }
 
-void CSSStyleSheetResource::saveParsedStyleSheet(PassRefPtrWillBeRawPtr<StyleSheetContents> sheet)
+void CSSStyleSheetResource::saveParsedStyleSheet(RawPtr<StyleSheetContents> sheet)
 {
     ASSERT(sheet && sheet->isCacheable());
 
diff --git a/third_party/WebKit/Source/core/fetch/CSSStyleSheetResource.h b/third_party/WebKit/Source/core/fetch/CSSStyleSheetResource.h
index e887fcfef..f4913ad5 100644
--- a/third_party/WebKit/Source/core/fetch/CSSStyleSheetResource.h
+++ b/third_party/WebKit/Source/core/fetch/CSSStyleSheetResource.h
@@ -42,8 +42,8 @@
 public:
     enum class MIMETypeCheck { Strict, Lax };
 
-    static PassRefPtrWillBeRawPtr<CSSStyleSheetResource> fetch(FetchRequest&, ResourceFetcher*);
-    static PassRefPtrWillBeRawPtr<CSSStyleSheetResource> createForTest(const ResourceRequest&, const String& charset);
+    static RawPtr<CSSStyleSheetResource> fetch(FetchRequest&, ResourceFetcher*);
+    static RawPtr<CSSStyleSheetResource> createForTest(const ResourceRequest&, const String& charset);
 
     ~CSSStyleSheetResource() override;
     DECLARE_VIRTUAL_TRACE();
@@ -52,8 +52,8 @@
 
     void didAddClient(ResourceClient*) override;
 
-    PassRefPtrWillBeRawPtr<StyleSheetContents> restoreParsedStyleSheet(const CSSParserContext&);
-    void saveParsedStyleSheet(PassRefPtrWillBeRawPtr<StyleSheetContents>);
+    RawPtr<StyleSheetContents> restoreParsedStyleSheet(const CSSParserContext&);
+    void saveParsedStyleSheet(RawPtr<StyleSheetContents>);
 
 protected:
     bool isSafeToUnlock() const override;
@@ -66,9 +66,9 @@
         CSSStyleSheetResourceFactory()
             : ResourceFactory(Resource::CSSStyleSheet) { }
 
-        PassRefPtrWillBeRawPtr<Resource> create(const ResourceRequest& request, const ResourceLoaderOptions& options, const String& charset) const override
+        RawPtr<Resource> create(const ResourceRequest& request, const ResourceLoaderOptions& options, const String& charset) const override
         {
-            return adoptRefWillBeNoop(new CSSStyleSheetResource(request, options, charset));
+            return new CSSStyleSheetResource(request, options, charset);
         }
     };
     CSSStyleSheetResource(const ResourceRequest&, const ResourceLoaderOptions&, const String& charset);
@@ -79,7 +79,7 @@
 
     String m_decodedSheetText;
 
-    RefPtrWillBeMember<StyleSheetContents> m_parsedStyleSheetCache;
+    Member<StyleSheetContents> m_parsedStyleSheetCache;
 };
 
 DEFINE_RESOURCE_TYPE_CASTS(CSSStyleSheet);
diff --git a/third_party/WebKit/Source/core/fetch/CachePolicy.h b/third_party/WebKit/Source/core/fetch/CachePolicy.h
index 86e0fa3..31a17540 100644
--- a/third_party/WebKit/Source/core/fetch/CachePolicy.h
+++ b/third_party/WebKit/Source/core/fetch/CachePolicy.h
@@ -28,6 +28,7 @@
 
 namespace blink {
 
+// TODO(crbug.com/599364): Should be merged with other CachePolicies.
 enum CachePolicy {
     CachePolicyVerify,
     CachePolicyRevalidate,
diff --git a/third_party/WebKit/Source/core/fetch/CachedMetadataHandler.h b/third_party/WebKit/Source/core/fetch/CachedMetadataHandler.h
index 560e9a7..d347d98 100644
--- a/third_party/WebKit/Source/core/fetch/CachedMetadataHandler.h
+++ b/third_party/WebKit/Source/core/fetch/CachedMetadataHandler.h
@@ -13,8 +13,7 @@
 class CachedMetadata;
 
 // Handler class for caching operations.
-class CachedMetadataHandler : public NoBaseWillBeGarbageCollectedFinalized<CachedMetadataHandler> {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(CachedMetadataHandler);
+class CachedMetadataHandler : public GarbageCollectedFinalized<CachedMetadataHandler> {
 public:
     enum CacheType {
         SendToPlatform, // send cache data to blink::Platform::cacheMetadata
diff --git a/third_party/WebKit/Source/core/fetch/CachingCorrectnessTest.cpp b/third_party/WebKit/Source/core/fetch/CachingCorrectnessTest.cpp
index c60a235..7cb62dfe 100644
--- a/third_party/WebKit/Source/core/fetch/CachingCorrectnessTest.cpp
+++ b/third_party/WebKit/Source/core/fetch/CachingCorrectnessTest.cpp
@@ -74,11 +74,11 @@
         s_timeElapsed += seconds;
     }
 
-    PassRefPtrWillBeRawPtr<Resource> resourceFromResourceResponse(ResourceResponse response, Resource::Type type = Resource::Raw)
+    RawPtr<Resource> resourceFromResourceResponse(ResourceResponse response, Resource::Type type = Resource::Raw)
     {
         if (response.url().isNull())
             response.setURL(KURL(ParsedURLString, kResourceURL));
-        RefPtrWillBeRawPtr<Resource> resource = nullptr;
+        RawPtr<Resource> resource = nullptr;
         switch (type) {
         case Resource::Raw:
             resource = Resource::create(ResourceRequest(response.url()), type);
@@ -102,11 +102,11 @@
         return resource;
     }
 
-    PassRefPtrWillBeRawPtr<Resource> resourceFromResourceRequest(ResourceRequest request, Resource::Type type = Resource::Raw)
+    RawPtr<Resource> resourceFromResourceRequest(ResourceRequest request, Resource::Type type = Resource::Raw)
     {
         if (request.url().isNull())
             request.setURL(KURL(ParsedURLString, kResourceURL));
-        RefPtrWillBeRawPtr<Resource> resource =
+        RawPtr<Resource> resource =
             Resource::create(request, type);
         resource->setResponse(ResourceResponse(KURL(ParsedURLString, kResourceURL), "text/html", 0, nullAtom, String()));
         resource->finish();
@@ -115,13 +115,13 @@
         return resource;
     }
 
-    PassRefPtrWillBeRawPtr<Resource> fetch()
+    RawPtr<Resource> fetch()
     {
         FetchRequest fetchRequest(ResourceRequest(KURL(ParsedURLString, kResourceURL)), FetchInitiatorInfo());
         return RawResource::fetchSynchronously(fetchRequest, fetcher());
     }
 
-    PassRefPtrWillBeRawPtr<Resource> fetchImage()
+    RawPtr<Resource> fetchImage()
     {
         FetchRequest fetchRequest(ResourceRequest(KURL(ParsedURLString, kResourceURL)), FetchInitiatorInfo());
         return ImageResource::fetch(fetchRequest, fetcher());
@@ -171,12 +171,12 @@
     fresh200Response.setHTTPHeaderField("Date", kOriginalRequestDateAsString);
     fresh200Response.setHTTPHeaderField("Last-Modified", kOneDayBeforeOriginalRequest);
 
-    RefPtrWillBeRawPtr<Resource> fresh200 = resourceFromResourceResponse(fresh200Response);
+    RawPtr<Resource> fresh200 = resourceFromResourceResponse(fresh200Response);
 
     // Advance the clock within the implicit freshness period of this resource before we make a request.
     advanceClock(600.);
 
-    RefPtrWillBeRawPtr<Resource> fetched = fetch();
+    RawPtr<Resource> fetched = fetch();
     EXPECT_EQ(fresh200, fetched);
 }
 
@@ -187,12 +187,12 @@
     fresh200Response.setHTTPHeaderField("Date", kOriginalRequestDateAsString);
     fresh200Response.setHTTPHeaderField("Expires", kOneDayAfterOriginalRequest);
 
-    RefPtrWillBeRawPtr<Resource> fresh200 = resourceFromResourceResponse(fresh200Response);
+    RawPtr<Resource> fresh200 = resourceFromResourceResponse(fresh200Response);
 
     // Advance the clock within the freshness period of this resource before we make a request.
     advanceClock(24. * 60. * 60. - 15.);
 
-    RefPtrWillBeRawPtr<Resource> fetched = fetch();
+    RawPtr<Resource> fetched = fetch();
     EXPECT_EQ(fresh200, fetched);
 }
 
@@ -203,12 +203,12 @@
     fresh200Response.setHTTPHeaderField("Date", kOriginalRequestDateAsString);
     fresh200Response.setHTTPHeaderField("Cache-Control", "max-age=600");
 
-    RefPtrWillBeRawPtr<Resource> fresh200 = resourceFromResourceResponse(fresh200Response);
+    RawPtr<Resource> fresh200 = resourceFromResourceResponse(fresh200Response);
 
     // Advance the clock within the freshness period of this resource before we make a request.
     advanceClock(500.);
 
-    RefPtrWillBeRawPtr<Resource> fetched = fetch();
+    RawPtr<Resource> fetched = fetch();
     EXPECT_EQ(fresh200, fetched);
 }
 
@@ -220,12 +220,12 @@
     expired200Response.setHTTPHeaderField("Date", kOriginalRequestDateAsString);
     expired200Response.setHTTPHeaderField("Last-Modified", kOneDayBeforeOriginalRequest);
 
-    RefPtrWillBeRawPtr<Resource> expired200 = resourceFromResourceResponse(expired200Response);
+    RawPtr<Resource> expired200 = resourceFromResourceResponse(expired200Response);
 
     // Advance the clock beyond the implicit freshness period.
     advanceClock(24. * 60. * 60. * 0.2);
 
-    RefPtrWillBeRawPtr<Resource> fetched = fetch();
+    RawPtr<Resource> fetched = fetch();
     EXPECT_NE(expired200, fetched);
 }
 
@@ -236,12 +236,12 @@
     expired200Response.setHTTPHeaderField("Date", kOriginalRequestDateAsString);
     expired200Response.setHTTPHeaderField("Expires", kOneDayAfterOriginalRequest);
 
-    RefPtrWillBeRawPtr<Resource> expired200 = resourceFromResourceResponse(expired200Response);
+    RawPtr<Resource> expired200 = resourceFromResourceResponse(expired200Response);
 
     // Advance the clock within the expiredness period of this resource before we make a request.
     advanceClock(24. * 60. * 60. + 15.);
 
-    RefPtrWillBeRawPtr<Resource> fetched = fetch();
+    RawPtr<Resource> fetched = fetch();
     EXPECT_NE(expired200, fetched);
 }
 
@@ -253,12 +253,12 @@
     expired200Response.setHTTPHeaderField("Date", kOriginalRequestDateAsString);
     expired200Response.setHTTPHeaderField("Expires", kOneDayAfterOriginalRequest);
 
-    RefPtrWillBeRawPtr<Resource> expired200 = resourceFromResourceResponse(expired200Response, Resource::Image);
+    RawPtr<Resource> expired200 = resourceFromResourceResponse(expired200Response, Resource::Image);
 
     // Advance the clock within the expiredness period of this resource before we make a request.
     advanceClock(24. * 60. * 60. + 15.);
 
-    RefPtrWillBeRawPtr<Resource> fetched = fetchImage();
+    RawPtr<Resource> fetched = fetchImage();
     EXPECT_NE(expired200, fetched);
 }
 
@@ -271,17 +271,17 @@
     expired200Response.setHTTPHeaderField("Date", kOriginalRequestDateAsString);
     expired200Response.setHTTPHeaderField("Expires", kOneDayAfterOriginalRequest);
 
-    RefPtrWillBeRawPtr<Resource> expired200 = resourceFromResourceResponse(expired200Response, Resource::Image);
+    RawPtr<Resource> expired200 = resourceFromResourceResponse(expired200Response, Resource::Image);
 
     // Advance the clock within the freshness period, and make a request to add this image to the document resources.
     advanceClock(15.);
-    RefPtrWillBeRawPtr<Resource> firstFetched = fetchImage();
+    RawPtr<Resource> firstFetched = fetchImage();
     EXPECT_EQ(expired200, firstFetched);
 
     // Advance the clock within the expiredness period of this resource before we make a request.
     advanceClock(24. * 60. * 60. + 15.);
 
-    RefPtrWillBeRawPtr<Resource> fetched = fetchImage();
+    RawPtr<Resource> fetched = fetchImage();
     EXPECT_EQ(expired200, fetched);
 }
 
@@ -292,12 +292,12 @@
     expired200Response.setHTTPHeaderField("Date", kOriginalRequestDateAsString);
     expired200Response.setHTTPHeaderField("Cache-Control", "max-age=600");
 
-    RefPtrWillBeRawPtr<Resource> expired200 = resourceFromResourceResponse(expired200Response);
+    RawPtr<Resource> expired200 = resourceFromResourceResponse(expired200Response);
 
     // Advance the clock within the expiredness period of this resource before we make a request.
     advanceClock(700.);
 
-    RefPtrWillBeRawPtr<Resource> fetched = fetch();
+    RawPtr<Resource> fetched = fetch();
     EXPECT_NE(expired200, fetched);
 }
 
@@ -309,12 +309,12 @@
     fresh200NocacheResponse.setHTTPHeaderField(HTTPNames::Expires, kOneDayAfterOriginalRequest);
     fresh200NocacheResponse.setHTTPHeaderField(HTTPNames::Cache_Control, "no-cache");
 
-    RefPtrWillBeRawPtr<Resource> fresh200Nocache = resourceFromResourceResponse(fresh200NocacheResponse);
+    RawPtr<Resource> fresh200Nocache = resourceFromResourceResponse(fresh200NocacheResponse);
 
     // Advance the clock within the freshness period of this resource before we make a request.
     advanceClock(24. * 60. * 60. - 15.);
 
-    RefPtrWillBeRawPtr<Resource> fetched = fetch();
+    RawPtr<Resource> fetched = fetch();
     EXPECT_NE(fresh200Nocache, fetched);
 }
 
@@ -322,8 +322,8 @@
 {
     ResourceRequest noCacheRequest;
     noCacheRequest.setHTTPHeaderField(HTTPNames::Cache_Control, "no-cache");
-    RefPtrWillBeRawPtr<Resource> noCacheResource = resourceFromResourceRequest(noCacheRequest);
-    RefPtrWillBeRawPtr<Resource> fetched = fetch();
+    RawPtr<Resource> noCacheResource = resourceFromResourceRequest(noCacheRequest);
+    RawPtr<Resource> fetched = fetch();
     EXPECT_NE(noCacheResource, fetched);
 }
 
@@ -335,12 +335,12 @@
     fresh200NostoreResponse.setHTTPHeaderField(HTTPNames::Expires, kOneDayAfterOriginalRequest);
     fresh200NostoreResponse.setHTTPHeaderField(HTTPNames::Cache_Control, "no-store");
 
-    RefPtrWillBeRawPtr<Resource> fresh200Nostore = resourceFromResourceResponse(fresh200NostoreResponse);
+    RawPtr<Resource> fresh200Nostore = resourceFromResourceResponse(fresh200NostoreResponse);
 
     // Advance the clock within the freshness period of this resource before we make a request.
     advanceClock(24. * 60. * 60. - 15.);
 
-    RefPtrWillBeRawPtr<Resource> fetched = fetch();
+    RawPtr<Resource> fetched = fetch();
     EXPECT_NE(fresh200Nostore, fetched);
 }
 
@@ -348,8 +348,8 @@
 {
     ResourceRequest noStoreRequest;
     noStoreRequest.setHTTPHeaderField(HTTPNames::Cache_Control, "no-store");
-    RefPtrWillBeRawPtr<Resource> noStoreResource = resourceFromResourceRequest(noStoreRequest);
-    RefPtrWillBeRawPtr<Resource> fetched = fetch();
+    RawPtr<Resource> noStoreResource = resourceFromResourceRequest(noStoreRequest);
+    RawPtr<Resource> fetched = fetch();
     EXPECT_NE(noStoreResource, fetched);
 }
 
@@ -363,12 +363,12 @@
     fresh200MustRevalidateResponse.setHTTPHeaderField(HTTPNames::Expires, kOneDayAfterOriginalRequest);
     fresh200MustRevalidateResponse.setHTTPHeaderField(HTTPNames::Cache_Control, "must-revalidate");
 
-    RefPtrWillBeRawPtr<Resource> fresh200MustRevalidate = resourceFromResourceResponse(fresh200MustRevalidateResponse);
+    RawPtr<Resource> fresh200MustRevalidate = resourceFromResourceResponse(fresh200MustRevalidateResponse);
 
     // Advance the clock within the freshness period of this resource before we make a request.
     advanceClock(24. * 60. * 60. - 15.);
 
-    RefPtrWillBeRawPtr<Resource> fetched = fetch();
+    RawPtr<Resource> fetched = fetch();
     EXPECT_NE(fresh200MustRevalidate, fetched);
 }
 
@@ -378,7 +378,7 @@
     const char redirectTargetUrlString[] = "http://redirect-target.com";
     KURL redirectTargetUrl(ParsedURLString, redirectTargetUrlString);
 
-    RefPtrWillBeRawPtr<Resource> firstResource = Resource::create(ResourceRequest(redirectUrl), Resource::Raw);
+    RawPtr<Resource> firstResource = Resource::create(ResourceRequest(redirectUrl), Resource::Raw);
 
     ResourceResponse fresh301Response;
     fresh301Response.setURL(redirectUrl);
@@ -404,7 +404,7 @@
 
     advanceClock(500.);
 
-    RefPtrWillBeRawPtr<Resource> fetched = fetch();
+    RawPtr<Resource> fetched = fetch();
     EXPECT_EQ(firstResource, fetched);
 }
 
@@ -414,7 +414,7 @@
     const char redirectTargetUrlString[] = "http://redirect-target.com";
     KURL redirectTargetUrl(ParsedURLString, redirectTargetUrlString);
 
-    RefPtrWillBeRawPtr<Resource> firstResource = Resource::create(ResourceRequest(redirectUrl), Resource::Raw);
+    RawPtr<Resource> firstResource = Resource::create(ResourceRequest(redirectUrl), Resource::Raw);
 
     ResourceResponse stale301Response;
     stale301Response.setURL(redirectUrl);
@@ -439,7 +439,7 @@
 
     advanceClock(500.);
 
-    RefPtrWillBeRawPtr<Resource> fetched = fetch();
+    RawPtr<Resource> fetched = fetch();
     EXPECT_NE(firstResource, fetched);
 }
 
@@ -447,14 +447,14 @@
 {
     ResourceRequest request1(KURL(ParsedURLString, kResourceURL));
     request1.setHTTPMethod(HTTPNames::POST);
-    RefPtrWillBeRawPtr<Resource> resource1 = Resource::create(ResourceRequest(request1.url()), Resource::Raw);
+    RawPtr<Resource> resource1 = Resource::create(ResourceRequest(request1.url()), Resource::Raw);
     resource1->setStatus(Resource::Pending);
     memoryCache()->add(resource1.get());
 
     ResourceRequest request2(KURL(ParsedURLString, kResourceURL));
     request2.setHTTPMethod(HTTPNames::POST);
     FetchRequest fetch2(request2, FetchInitiatorInfo());
-    RefPtrWillBeRawPtr<Resource> resource2 = RawResource::fetchSynchronously(fetch2, fetcher());
+    RawPtr<Resource> resource2 = RawResource::fetchSynchronously(fetch2, fetcher());
 
     EXPECT_EQ(resource2, memoryCache()->resourceForURL(request2.url()));
     EXPECT_NE(resource1, resource2);
@@ -466,7 +466,7 @@
     const char redirectTargetUrlString[] = "http://redirect-target.com";
     KURL redirectTargetUrl(ParsedURLString, redirectTargetUrlString);
 
-    RefPtrWillBeRawPtr<Resource> firstResource = Resource::create(ResourceRequest(redirectUrl), Resource::Raw);
+    RawPtr<Resource> firstResource = Resource::create(ResourceRequest(redirectUrl), Resource::Raw);
 
     ResourceResponse fresh302Response;
     fresh302Response.setURL(redirectUrl);
@@ -492,7 +492,7 @@
 
     advanceClock(500.);
 
-    RefPtrWillBeRawPtr<Resource> fetched = fetch();
+    RawPtr<Resource> fetched = fetch();
     EXPECT_NE(firstResource, fetched);
 }
 
@@ -502,7 +502,7 @@
     const char redirectTargetUrlString[] = "http://redirect-target.com";
     KURL redirectTargetUrl(ParsedURLString, redirectTargetUrlString);
 
-    RefPtrWillBeRawPtr<Resource> firstResource = Resource::create(ResourceRequest(redirectUrl), Resource::Raw);
+    RawPtr<Resource> firstResource = Resource::create(ResourceRequest(redirectUrl), Resource::Raw);
 
     ResourceResponse fresh302Response;
     fresh302Response.setURL(redirectUrl);
@@ -528,7 +528,7 @@
 
     advanceClock(500.);
 
-    RefPtrWillBeRawPtr<Resource> fetched = fetch();
+    RawPtr<Resource> fetched = fetch();
     EXPECT_EQ(firstResource, fetched);
 }
 
@@ -538,7 +538,7 @@
     const char redirectTargetUrlString[] = "http://redirect-target.com";
     KURL redirectTargetUrl(ParsedURLString, redirectTargetUrlString);
 
-    RefPtrWillBeRawPtr<Resource> firstResource = Resource::create(ResourceRequest(redirectUrl), Resource::Raw);
+    RawPtr<Resource> firstResource = Resource::create(ResourceRequest(redirectUrl), Resource::Raw);
 
     ResourceResponse fresh302Response;
     fresh302Response.setURL(redirectUrl);
@@ -564,7 +564,7 @@
 
     advanceClock(500.);
 
-    RefPtrWillBeRawPtr<Resource> fetched = fetch();
+    RawPtr<Resource> fetched = fetch();
     EXPECT_EQ(firstResource, fetched);
 }
 
diff --git a/third_party/WebKit/Source/core/fetch/DocumentResource.cpp b/third_party/WebKit/Source/core/fetch/DocumentResource.cpp
index d37c7c9..6dd1f64 100644
--- a/third_party/WebKit/Source/core/fetch/DocumentResource.cpp
+++ b/third_party/WebKit/Source/core/fetch/DocumentResource.cpp
@@ -30,7 +30,7 @@
 
 namespace blink {
 
-PassRefPtrWillBeRawPtr<DocumentResource> DocumentResource::fetchSVGDocument(FetchRequest& request, ResourceFetcher* fetcher)
+RawPtr<DocumentResource> DocumentResource::fetchSVGDocument(FetchRequest& request, ResourceFetcher* fetcher)
 {
     ASSERT(request.resourceRequest().frameType() == WebURLRequest::FrameTypeNone);
     request.mutableResourceRequest().setRequestContext(WebURLRequest::RequestContextImage);
@@ -90,7 +90,7 @@
         || mimeType == "application/xhtml+xml";
 }
 
-PassRefPtrWillBeRawPtr<Document> DocumentResource::createDocument(const KURL& url)
+RawPtr<Document> DocumentResource::createDocument(const KURL& url)
 {
     switch (getType()) {
     case SVGDocument:
diff --git a/third_party/WebKit/Source/core/fetch/DocumentResource.h b/third_party/WebKit/Source/core/fetch/DocumentResource.h
index e4315e5..6cf678bc 100644
--- a/third_party/WebKit/Source/core/fetch/DocumentResource.h
+++ b/third_party/WebKit/Source/core/fetch/DocumentResource.h
@@ -37,7 +37,7 @@
 public:
     using ClientType = ResourceClient;
 
-    static PassRefPtrWillBeRawPtr<DocumentResource> fetchSVGDocument(FetchRequest&, ResourceFetcher*);
+    static RawPtr<DocumentResource> fetchSVGDocument(FetchRequest&, ResourceFetcher*);
     ~DocumentResource() override;
     DECLARE_VIRTUAL_TRACE();
 
@@ -53,22 +53,22 @@
         SVGDocumentResourceFactory()
             : ResourceFactory(Resource::SVGDocument) { }
 
-        PassRefPtrWillBeRawPtr<Resource> create(const ResourceRequest& request, const ResourceLoaderOptions& options, const String& charset) const override
+        RawPtr<Resource> create(const ResourceRequest& request, const ResourceLoaderOptions& options, const String& charset) const override
         {
-            return adoptRefWillBeNoop(new DocumentResource(request, Resource::SVGDocument, options));
+            return new DocumentResource(request, Resource::SVGDocument, options);
         }
     };
     DocumentResource(const ResourceRequest&, Type, const ResourceLoaderOptions&);
 
     bool mimeTypeAllowed() const;
-    PassRefPtrWillBeRawPtr<Document> createDocument(const KURL&);
+    RawPtr<Document> createDocument(const KURL&);
 
-    RefPtrWillBeMember<Document> m_document;
+    Member<Document> m_document;
     OwnPtr<TextResourceDecoder> m_decoder;
 };
 
 DEFINE_TYPE_CASTS(DocumentResource, Resource, resource, resource->getType() == Resource::SVGDocument, resource.getType() == Resource::SVGDocument); \
-inline DocumentResource* toDocumentResource(const RefPtrWillBeRawPtr<Resource>& ptr) { return toDocumentResource(ptr.get()); }
+inline DocumentResource* toDocumentResource(const RawPtr<Resource>& ptr) { return toDocumentResource(ptr.get()); }
 
 class CORE_EXPORT DocumentResourceClient : public ResourceClient {
 public:
diff --git a/third_party/WebKit/Source/core/fetch/DocumentResourceReference.h b/third_party/WebKit/Source/core/fetch/DocumentResourceReference.h
index fff7f74..46b28773 100644
--- a/third_party/WebKit/Source/core/fetch/DocumentResourceReference.h
+++ b/third_party/WebKit/Source/core/fetch/DocumentResourceReference.h
@@ -38,7 +38,7 @@
     DocumentResource* document() { return m_document.get(); }
 private:
     String debugName() const override { return "DocumentResourceReference"; }
-    RefPtrWillBePersistent<DocumentResource> m_document;
+    Persistent<DocumentResource> m_document;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/fetch/FontResource.cpp b/third_party/WebKit/Source/core/fetch/FontResource.cpp
index 331c44e..4fa8017c1 100644
--- a/third_party/WebKit/Source/core/fetch/FontResource.cpp
+++ b/third_party/WebKit/Source/core/fetch/FontResource.cpp
@@ -70,7 +70,7 @@
     packageFormatHistogram.count(format);
 }
 
-PassRefPtrWillBeRawPtr<FontResource> FontResource::fetch(FetchRequest& request, ResourceFetcher* fetcher)
+RawPtr<FontResource> FontResource::fetch(FetchRequest& request, ResourceFetcher* fetcher)
 {
     ASSERT(request.resourceRequest().frameType() == WebURLRequest::FrameTypeNone);
     request.mutableResourceRequest().setRequestContext(WebURLRequest::RequestContextFont);
diff --git a/third_party/WebKit/Source/core/fetch/FontResource.h b/third_party/WebKit/Source/core/fetch/FontResource.h
index e2d542f..86e0b2b 100644
--- a/third_party/WebKit/Source/core/fetch/FontResource.h
+++ b/third_party/WebKit/Source/core/fetch/FontResource.h
@@ -44,7 +44,7 @@
 public:
     using ClientType = FontResourceClient;
 
-    static PassRefPtrWillBeRawPtr<FontResource> fetch(FetchRequest&, ResourceFetcher*);
+    static RawPtr<FontResource> fetch(FetchRequest&, ResourceFetcher*);
     ~FontResource() override;
 
     void load(ResourceFetcher*) override;
@@ -74,9 +74,9 @@
         FontResourceFactory()
             : ResourceFactory(Resource::Font) { }
 
-        PassRefPtrWillBeRawPtr<Resource> create(const ResourceRequest& request, const ResourceLoaderOptions& options, const String& charset) const override
+        RawPtr<Resource> create(const ResourceRequest& request, const ResourceLoaderOptions& options, const String& charset) const override
         {
-            return adoptRefWillBeNoop(new FontResource(request, options));
+            return new FontResource(request, options);
         }
     };
     FontResource(const ResourceRequest&, const ResourceLoaderOptions&);
diff --git a/third_party/WebKit/Source/core/fetch/ImageResource.cpp b/third_party/WebKit/Source/core/fetch/ImageResource.cpp
index 1db3eb8..4599b0ee 100644
--- a/third_party/WebKit/Source/core/fetch/ImageResource.cpp
+++ b/third_party/WebKit/Source/core/fetch/ImageResource.cpp
@@ -43,7 +43,7 @@
 
 using ImageResourceObserverWalker = ResourceClientOrObserverWalker<ImageResourceObserver, ImageResourceObserver>;
 
-PassRefPtrWillBeRawPtr<ImageResource> ImageResource::fetch(FetchRequest& request, ResourceFetcher* fetcher)
+RawPtr<ImageResource> ImageResource::fetch(FetchRequest& request, ResourceFetcher* fetcher)
 {
     if (request.resourceRequest().requestContext() == WebURLRequest::RequestContextUnspecified)
         request.mutableResourceRequest().setRequestContext(WebURLRequest::RequestContextImage);
@@ -494,7 +494,7 @@
 {
     if (!m_response.httpHeaderField("chrome-proxy").contains("q=low"))
         return;
-    m_resourceRequest.setCachePolicy(ResourceRequestCachePolicy::ReloadBypassingCache);
+    m_resourceRequest.setCachePolicy(ResourceRequestCachePolicy::BypassingCache);
     m_resourceRequest.setLoFiState(WebURLRequest::LoFiOff);
     error(Resource::LoadError);
     load(fetcher);
diff --git a/third_party/WebKit/Source/core/fetch/ImageResource.h b/third_party/WebKit/Source/core/fetch/ImageResource.h
index 4e79c383..a5b61bd 100644
--- a/third_party/WebKit/Source/core/fetch/ImageResource.h
+++ b/third_party/WebKit/Source/core/fetch/ImageResource.h
@@ -45,21 +45,21 @@
 
 class CORE_EXPORT ImageResource final : public Resource, public ImageObserver, public MultipartImageResourceParser::Client {
     friend class MemoryCache;
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(ImageResource);
+    USING_GARBAGE_COLLECTED_MIXIN(ImageResource);
 public:
     using ClientType = ResourceClient;
 
-    static PassRefPtrWillBeRawPtr<ImageResource> fetch(FetchRequest&, ResourceFetcher*);
+    static RawPtr<ImageResource> fetch(FetchRequest&, ResourceFetcher*);
 
-    static PassRefPtrWillBeRawPtr<ImageResource> create(blink::Image* image)
+    static RawPtr<ImageResource> create(blink::Image* image)
     {
-        return adoptRefWillBeNoop(new ImageResource(image, ResourceLoaderOptions()));
+        return new ImageResource(image, ResourceLoaderOptions());
     }
 
     // Exposed for testing
-    static PassRefPtrWillBeRawPtr<ImageResource> create(const ResourceRequest& request, blink::Image* image)
+    static RawPtr<ImageResource> create(const ResourceRequest& request, blink::Image* image)
     {
-        return adoptRefWillBeNoop(new ImageResource(request, image, ResourceLoaderOptions()));
+        return new ImageResource(request, image, ResourceLoaderOptions());
     }
 
     ~ImageResource() override;
@@ -143,9 +143,9 @@
         ImageResourceFactory()
             : ResourceFactory(Resource::Image) { }
 
-        PassRefPtrWillBeRawPtr<Resource> create(const ResourceRequest& request, const ResourceLoaderOptions& options, const String&) const override
+        RawPtr<Resource> create(const ResourceRequest& request, const ResourceLoaderOptions& options, const String&) const override
         {
-            return adoptRefWillBeNoop(new ImageResource(request, options));
+            return new ImageResource(request, options);
         }
     };
     ImageResource(const ResourceRequest&, const ResourceLoaderOptions&);
@@ -162,7 +162,7 @@
 
     float m_devicePixelRatioHeaderValue;
 
-    PersistentWillBeMember<MultipartImageResourceParser> m_multipartParser;
+    Member<MultipartImageResourceParser> m_multipartParser;
     RefPtr<blink::Image> m_image;
     MultipartParsingState m_multipartParsingState = MultipartParsingState::WaitingForFirstPart;
     bool m_hasDevicePixelRatioHeaderValue;
diff --git a/third_party/WebKit/Source/core/fetch/ImageResourceTest.cpp b/third_party/WebKit/Source/core/fetch/ImageResourceTest.cpp
index 4e7a570..ed914b8 100644
--- a/third_party/WebKit/Source/core/fetch/ImageResourceTest.cpp
+++ b/third_party/WebKit/Source/core/fetch/ImageResourceTest.cpp
@@ -87,7 +87,7 @@
     URLTestHelpers::registerMockedURLLoad(testURL, "cancelTest.html", "text/html");
 
     // Emulate starting a real load, but don't expect any "real" WebURLLoaderClient callbacks.
-    RefPtrWillBeRawPtr<ImageResource> cachedImage = ImageResource::create(ResourceRequest(testURL), nullptr);
+    RawPtr<ImageResource> cachedImage = ImageResource::create(ResourceRequest(testURL), nullptr);
     cachedImage->setIdentifier(createUniqueIdentifier());
     cachedImage->load(fetcher);
     Platform::current()->unitTestSupport()->unregisterMockedURL(testURL);
@@ -151,7 +151,7 @@
     ResourceFetcher* fetcher = ResourceFetcher::create(nullptr);
 
     // Emulate starting a real load.
-    RefPtrWillBeRawPtr<ImageResource> cachedImage = ImageResource::create(ResourceRequest(testURL), nullptr);
+    RawPtr<ImageResource> cachedImage = ImageResource::create(ResourceRequest(testURL), nullptr);
     cachedImage->setIdentifier(createUniqueIdentifier());
 
     cachedImage->load(fetcher);
@@ -175,7 +175,7 @@
 
 TEST(ImageResourceTest, DecodedDataRemainsWhileHasClients)
 {
-    RefPtrWillBeRawPtr<ImageResource> cachedImage = ImageResource::create(ResourceRequest(), nullptr);
+    RawPtr<ImageResource> cachedImage = ImageResource::create(ResourceRequest(), nullptr);
     cachedImage->setStatus(Resource::Pending);
 
     MockImageResourceClient client(cachedImage);
@@ -208,7 +208,7 @@
 
 TEST(ImageResourceTest, UpdateBitmapImages)
 {
-    RefPtrWillBeRawPtr<ImageResource> cachedImage = ImageResource::create(ResourceRequest(), nullptr);
+    RawPtr<ImageResource> cachedImage = ImageResource::create(ResourceRequest(), nullptr);
     cachedImage->setStatus(Resource::Pending);
 
     MockImageResourceClient client(cachedImage);
@@ -230,7 +230,7 @@
 {
     KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html");
     URLTestHelpers::registerMockedURLLoad(testURL, "cancelTest.html", "text/html");
-    RefPtrWillBeRawPtr<ImageResource> cachedImage = ImageResource::create(ResourceRequest(testURL), nullptr);
+    RawPtr<ImageResource> cachedImage = ImageResource::create(ResourceRequest(testURL), nullptr);
     cachedImage->setStatus(Resource::Pending);
 
     MockImageResourceClient client(cachedImage);
diff --git a/third_party/WebKit/Source/core/fetch/LinkFetchResource.cpp b/third_party/WebKit/Source/core/fetch/LinkFetchResource.cpp
index bc4a2af0..7ab6296 100644
--- a/third_party/WebKit/Source/core/fetch/LinkFetchResource.cpp
+++ b/third_party/WebKit/Source/core/fetch/LinkFetchResource.cpp
@@ -10,7 +10,7 @@
 
 namespace blink {
 
-PassRefPtrWillBeRawPtr<Resource> LinkFetchResource::fetch(Resource::Type type, FetchRequest& request, ResourceFetcher* fetcher)
+RawPtr<Resource> LinkFetchResource::fetch(Resource::Type type, FetchRequest& request, ResourceFetcher* fetcher)
 {
     ASSERT(type == LinkPrefetch);
     ASSERT(request.resourceRequest().frameType() == WebURLRequest::FrameTypeNone);
diff --git a/third_party/WebKit/Source/core/fetch/LinkFetchResource.h b/third_party/WebKit/Source/core/fetch/LinkFetchResource.h
index 84d16fb..78cff1a 100644
--- a/third_party/WebKit/Source/core/fetch/LinkFetchResource.h
+++ b/third_party/WebKit/Source/core/fetch/LinkFetchResource.h
@@ -18,7 +18,7 @@
 public:
     using ClientType = ResourceClient;
 
-    static PassRefPtrWillBeRawPtr<Resource> fetch(Resource::Type, FetchRequest&, ResourceFetcher*);
+    static RawPtr<Resource> fetch(Resource::Type, FetchRequest&, ResourceFetcher*);
     ~LinkFetchResource() override;
 
 private:
@@ -27,9 +27,9 @@
         LinkResourceFactory(Resource::Type type)
             : ResourceFactory(type) { }
 
-        PassRefPtrWillBeRawPtr<Resource> create(const ResourceRequest& request, const ResourceLoaderOptions& options, const String& charset) const override
+        RawPtr<Resource> create(const ResourceRequest& request, const ResourceLoaderOptions& options, const String& charset) const override
         {
-            return adoptRefWillBeNoop(new LinkFetchResource(request, type(), options));
+            return new LinkFetchResource(request, type(), options);
         }
     };
     LinkFetchResource(const ResourceRequest&, Type, const ResourceLoaderOptions&);
diff --git a/third_party/WebKit/Source/core/fetch/MemoryCache.cpp b/third_party/WebKit/Source/core/fetch/MemoryCache.cpp
index 059fe31f..035bdcf 100644
--- a/third_party/WebKit/Source/core/fetch/MemoryCache.cpp
+++ b/third_party/WebKit/Source/core/fetch/MemoryCache.cpp
@@ -202,11 +202,11 @@
     return resource;
 }
 
-WillBeHeapVector<RawPtrWillBeMember<Resource>> MemoryCache::resourcesForURL(const KURL& resourceURL)
+HeapVector<Member<Resource>> MemoryCache::resourcesForURL(const KURL& resourceURL)
 {
     ASSERT(WTF::isMainThread());
     KURL url = removeFragmentIdentifierIfNeeded(resourceURL);
-    WillBeHeapVector<RawPtrWillBeMember<Resource>> results;
+    HeapVector<Member<Resource>> results;
     for (const auto& resourceMapIter : m_resourceMaps) {
         if (MemoryCacheEntry* entry = resourceMapIter.value->get(url))
             results.append(entry->m_resource.get());
@@ -570,7 +570,7 @@
 
 void MemoryCache::removeURLFromCache(const KURL& url)
 {
-    WillBeHeapVector<RawPtrWillBeMember<Resource>> resources = resourcesForURL(url);
+    HeapVector<Member<Resource>> resources = resourcesForURL(url);
     for (Resource* resource : resources)
         memoryCache()->remove(resource);
 }
@@ -771,7 +771,7 @@
         printf("\n\nList %d: ", i);
         MemoryCacheEntry* current = m_allResources[i].m_tail;
         while (current) {
-            RefPtrWillBeRawPtr<Resource> currentResource = current->m_resource;
+            RawPtr<Resource> currentResource = current->m_resource;
             if (includeLive || !currentResource->hasClientsOrObservers())
                 printf("(%.1fK, %.1fK, %uA, %dR, %d); ", currentResource->decodedSize() / 1024.0f, (currentResource->encodedSize() + currentResource->overheadSize()) / 1024.0f, current->m_accessCount, currentResource->hasClientsOrObservers(), currentResource->isPurgeable());
 
diff --git a/third_party/WebKit/Source/core/fetch/MemoryCache.h b/third_party/WebKit/Source/core/fetch/MemoryCache.h
index ff43aa9..a1558b0 100644
--- a/third_party/WebKit/Source/core/fetch/MemoryCache.h
+++ b/third_party/WebKit/Source/core/fetch/MemoryCache.h
@@ -75,7 +75,7 @@
     DECLARE_TRACE();
     void dispose();
 
-    RefPtrWillBeMember<Resource> m_resource;
+    Member<Resource> m_resource;
     bool m_inLiveDecodedResourcesList;
     unsigned m_accessCount;
     double m_lastDecodedAccessTime; // Used as a thrash guard
@@ -165,7 +165,7 @@
 
     Resource* resourceForURL(const KURL&);
     Resource* resourceForURL(const KURL&, const String& cacheIdentifier);
-    WillBeHeapVector<RawPtrWillBeMember<Resource>> resourcesForURL(const KURL&);
+    HeapVector<Member<Resource>> resourcesForURL(const KURL&);
 
     void add(Resource*);
     void remove(Resource*);
diff --git a/third_party/WebKit/Source/core/fetch/MemoryCacheTest.cpp b/third_party/WebKit/Source/core/fetch/MemoryCacheTest.cpp
index efd29b4..df97399 100644
--- a/third_party/WebKit/Source/core/fetch/MemoryCacheTest.cpp
+++ b/third_party/WebKit/Source/core/fetch/MemoryCacheTest.cpp
@@ -44,9 +44,9 @@
 public:
     class FakeDecodedResource : public Resource {
     public:
-        static RefPtrWillBeRawPtr<FakeDecodedResource> create(const ResourceRequest& request, Type type)
+        static RawPtr<FakeDecodedResource> create(const ResourceRequest& request, Type type)
         {
-            return adoptRefWillBeNoop(new FakeDecodedResource(request, type, ResourceLoaderOptions()));
+            return new FakeDecodedResource(request, type, ResourceLoaderOptions());
         }
 
         virtual void appendData(const char* data, size_t len)
@@ -69,9 +69,9 @@
 
     class FakeResource : public Resource {
     public:
-        static RefPtrWillBeRawPtr<FakeResource> create(const ResourceRequest& request, Type type)
+        static RawPtr<FakeResource> create(const ResourceRequest& request, Type type)
         {
-            return adoptRefWillBeNoop(new FakeResource(request, type, ResourceLoaderOptions()));
+            return new FakeResource(request, type, ResourceLoaderOptions());
         }
 
         void fakeEncodedSize(size_t size)
@@ -123,7 +123,7 @@
     const size_t resourceSize1 = sizeMax / 16;
     const size_t resourceSize2 = sizeMax / 20;
     memoryCache()->setCapacities(minDeadCapacity, maxDeadCapacity, totalCapacity);
-    RefPtrWillBeRawPtr<FakeResource> cachedResource =
+    RawPtr<FakeResource> cachedResource =
         FakeResource::create(ResourceRequest("http://test/resource"), Resource::Raw);
     cachedResource->fakeEncodedSize(resourceSize1);
 
@@ -180,18 +180,18 @@
 
 TEST_F(MemoryCacheTest, DeadResourceEviction_Basic)
 {
-    RefPtrWillBeRawPtr<Resource> resource1 =
+    RawPtr<Resource> resource1 =
         Resource::create(ResourceRequest("http://test/resource1"), Resource::Raw);
-    RefPtrWillBeRawPtr<Resource> resource2 =
+    RawPtr<Resource> resource2 =
         Resource::create(ResourceRequest("http://test/resource2"), Resource::Raw);
     TestDeadResourceEviction(resource1.get(), resource2.get());
 }
 
 TEST_F(MemoryCacheTest, DeadResourceEviction_MultipleResourceMaps)
 {
-    RefPtrWillBeRawPtr<Resource> resource1 =
+    RawPtr<Resource> resource1 =
         Resource::create(ResourceRequest("http://test/resource1"), Resource::Raw);
-    RefPtrWillBeRawPtr<Resource> resource2 =
+    RawPtr<Resource> resource2 =
         Resource::create(ResourceRequest("http://test/resource2"), Resource::Raw);
     resource2->setCacheIdentifier("foo");
     TestDeadResourceEviction(resource1.get(), resource2.get());
@@ -241,7 +241,7 @@
     cachedLiveResource->appendData(data, 4u);
     cachedLiveResource->finish();
 
-    Platform::current()->currentThread()->getWebTaskRunner()->postTask(BLINK_FROM_HERE, bind(&runTask1, PassRefPtrWillBeRawPtr<Resource>(cachedLiveResource), PassRefPtrWillBeRawPtr<Resource>(cachedDeadResource)));
+    Platform::current()->currentThread()->getWebTaskRunner()->postTask(BLINK_FROM_HERE, bind(&runTask1, RawPtr<Resource>(cachedLiveResource), RawPtr<Resource>(cachedDeadResource)));
     Platform::current()->currentThread()->getWebTaskRunner()->postTask(BLINK_FROM_HERE, bind(&runTask2, cachedLiveResource->encodedSize() + cachedLiveResource->overheadSize()));
     testing::runPendingTasks();
 }
@@ -250,9 +250,9 @@
 // is deferred to the end of the task.
 TEST_F(MemoryCacheTest, LiveResourceEvictionAtEndOfTask_Basic)
 {
-    RefPtrWillBeRawPtr<Resource> cachedDeadResource =
+    RawPtr<Resource> cachedDeadResource =
         Resource::create(ResourceRequest("hhtp://foo"), Resource::Raw);
-    RefPtrWillBeRawPtr<Resource> cachedLiveResource =
+    RawPtr<Resource> cachedLiveResource =
         FakeDecodedResource::create(ResourceRequest("http://test/resource"), Resource::Raw);
     TestLiveResourceEvictionAtEndOfTask(cachedDeadResource.get(), cachedLiveResource.get());
 }
@@ -260,28 +260,28 @@
 TEST_F(MemoryCacheTest, LiveResourceEvictionAtEndOfTask_MultipleResourceMaps)
 {
     {
-        RefPtrWillBeRawPtr<Resource> cachedDeadResource =
+        RawPtr<Resource> cachedDeadResource =
             Resource::create(ResourceRequest("hhtp://foo"), Resource::Raw);
         cachedDeadResource->setCacheIdentifier("foo");
-        RefPtrWillBeRawPtr<Resource> cachedLiveResource =
+        RawPtr<Resource> cachedLiveResource =
             FakeDecodedResource::create(ResourceRequest("http://test/resource"), Resource::Raw);
         TestLiveResourceEvictionAtEndOfTask(cachedDeadResource.get(), cachedLiveResource.get());
         memoryCache()->evictResources();
     }
     {
-        RefPtrWillBeRawPtr<Resource> cachedDeadResource =
+        RawPtr<Resource> cachedDeadResource =
             Resource::create(ResourceRequest("hhtp://foo"), Resource::Raw);
-        RefPtrWillBeRawPtr<Resource> cachedLiveResource =
+        RawPtr<Resource> cachedLiveResource =
             FakeDecodedResource::create(ResourceRequest("http://test/resource"), Resource::Raw);
         cachedLiveResource->setCacheIdentifier("foo");
         TestLiveResourceEvictionAtEndOfTask(cachedDeadResource.get(), cachedLiveResource.get());
         memoryCache()->evictResources();
     }
     {
-        RefPtrWillBeRawPtr<Resource> cachedDeadResource =
+        RawPtr<Resource> cachedDeadResource =
             Resource::create(ResourceRequest("hhtp://test/resource"), Resource::Raw);
         cachedDeadResource->setCacheIdentifier("foo");
-        RefPtrWillBeRawPtr<Resource> cachedLiveResource =
+        RawPtr<Resource> cachedLiveResource =
             FakeDecodedResource::create(ResourceRequest("http://test/resource"), Resource::Raw);
         cachedLiveResource->setCacheIdentifier("bar");
         TestLiveResourceEvictionAtEndOfTask(cachedDeadResource.get(), cachedLiveResource.get());
@@ -336,9 +336,9 @@
 
 TEST_F(MemoryCacheTest, ClientRemoval_Basic)
 {
-    RefPtrWillBeRawPtr<Resource> resource1 =
+    RawPtr<Resource> resource1 =
         FakeDecodedResource::create(ResourceRequest("http://foo.com"), Resource::Raw);
-    RefPtrWillBeRawPtr<Resource> resource2 =
+    RawPtr<Resource> resource2 =
         FakeDecodedResource::create(ResourceRequest("http://test/resource"), Resource::Raw);
     TestClientRemoval(resource1.get(), resource2.get());
 }
@@ -346,28 +346,28 @@
 TEST_F(MemoryCacheTest, ClientRemoval_MultipleResourceMaps)
 {
     {
-        RefPtrWillBeRawPtr<Resource> resource1 =
+        RawPtr<Resource> resource1 =
             FakeDecodedResource::create(ResourceRequest("http://foo.com"), Resource::Raw);
         resource1->setCacheIdentifier("foo");
-        RefPtrWillBeRawPtr<Resource> resource2 =
+        RawPtr<Resource> resource2 =
             FakeDecodedResource::create(ResourceRequest("http://test/resource"), Resource::Raw);
         TestClientRemoval(resource1.get(), resource2.get());
         memoryCache()->evictResources();
     }
     {
-        RefPtrWillBeRawPtr<Resource> resource1 =
+        RawPtr<Resource> resource1 =
             FakeDecodedResource::create(ResourceRequest("http://foo.com"), Resource::Raw);
-        RefPtrWillBeRawPtr<Resource> resource2 =
+        RawPtr<Resource> resource2 =
             FakeDecodedResource::create(ResourceRequest("http://test/resource"), Resource::Raw);
         resource2->setCacheIdentifier("foo");
         TestClientRemoval(resource1.get(), resource2.get());
         memoryCache()->evictResources();
     }
     {
-        RefPtrWillBeRawPtr<Resource> resource1 =
+        RawPtr<Resource> resource1 =
             FakeDecodedResource::create(ResourceRequest("http://test/resource"), Resource::Raw);
         resource1->setCacheIdentifier("foo");
-        RefPtrWillBeRawPtr<Resource> resource2 =
+        RawPtr<Resource> resource2 =
             FakeDecodedResource::create(ResourceRequest("http://test/resource"), Resource::Raw);
         resource2->setCacheIdentifier("bar");
         TestClientRemoval(resource1.get(), resource2.get());
@@ -377,16 +377,16 @@
 
 TEST_F(MemoryCacheTest, RemoveDuringRevalidation)
 {
-    RefPtrWillBeRawPtr<FakeResource> resource1 = FakeResource::create(ResourceRequest("http://test/resource"), Resource::Raw);
+    RawPtr<FakeResource> resource1 = FakeResource::create(ResourceRequest("http://test/resource"), Resource::Raw);
     memoryCache()->add(resource1.get());
 
-    RefPtrWillBeRawPtr<FakeResource> resource2 = FakeResource::create(ResourceRequest("http://test/resource"), Resource::Raw);
+    RawPtr<FakeResource> resource2 = FakeResource::create(ResourceRequest("http://test/resource"), Resource::Raw);
     memoryCache()->remove(resource1.get());
     memoryCache()->add(resource2.get());
     EXPECT_TRUE(memoryCache()->contains(resource2.get()));
     EXPECT_FALSE(memoryCache()->contains(resource1.get()));
 
-    RefPtrWillBeRawPtr<FakeResource> resource3 = FakeResource::create(ResourceRequest("http://test/resource"), Resource::Raw);
+    RawPtr<FakeResource> resource3 = FakeResource::create(ResourceRequest("http://test/resource"), Resource::Raw);
     memoryCache()->remove(resource2.get());
     memoryCache()->add(resource3.get());
     EXPECT_TRUE(memoryCache()->contains(resource3.get()));
@@ -395,10 +395,10 @@
 
 TEST_F(MemoryCacheTest, ResourceMapIsolation)
 {
-    RefPtrWillBeRawPtr<FakeResource> resource1 = FakeResource::create(ResourceRequest("http://test/resource"), Resource::Raw);
+    RawPtr<FakeResource> resource1 = FakeResource::create(ResourceRequest("http://test/resource"), Resource::Raw);
     memoryCache()->add(resource1.get());
 
-    RefPtrWillBeRawPtr<FakeResource> resource2 = FakeResource::create(ResourceRequest("http://test/resource"), Resource::Raw);
+    RawPtr<FakeResource> resource2 = FakeResource::create(ResourceRequest("http://test/resource"), Resource::Raw);
     resource2->setCacheIdentifier("foo");
     memoryCache()->add(resource2.get());
     EXPECT_TRUE(memoryCache()->contains(resource1.get()));
@@ -410,7 +410,7 @@
     EXPECT_EQ(resource2.get(), memoryCache()->resourceForURL(url, "foo"));
     EXPECT_EQ(0, memoryCache()->resourceForURL(KURL()));
 
-    RefPtrWillBeRawPtr<FakeResource> resource3 = FakeResource::create(ResourceRequest("http://test/resource"), Resource::Raw);
+    RawPtr<FakeResource> resource3 = FakeResource::create(ResourceRequest("http://test/resource"), Resource::Raw);
     resource3->setCacheIdentifier("foo");
     memoryCache()->remove(resource2.get());
     memoryCache()->add(resource3.get());
@@ -418,7 +418,7 @@
     EXPECT_FALSE(memoryCache()->contains(resource2.get()));
     EXPECT_TRUE(memoryCache()->contains(resource3.get()));
 
-    WillBeHeapVector<RawPtrWillBeMember<Resource>> resources = memoryCache()->resourcesForURL(url);
+    HeapVector<Member<Resource>> resources = memoryCache()->resourcesForURL(url);
     EXPECT_EQ(2u, resources.size());
 
     memoryCache()->evictResources();
diff --git a/third_party/WebKit/Source/core/fetch/MockResourceClients.cpp b/third_party/WebKit/Source/core/fetch/MockResourceClients.cpp
index f735e58..e2ad472d 100644
--- a/third_party/WebKit/Source/core/fetch/MockResourceClients.cpp
+++ b/third_party/WebKit/Source/core/fetch/MockResourceClients.cpp
@@ -9,7 +9,7 @@
 
 namespace blink {
 
-MockResourceClient::MockResourceClient(PassRefPtrWillBeRawPtr<Resource> resource)
+MockResourceClient::MockResourceClient(RawPtr<Resource> resource)
     : m_resource(resource.get())
     , m_notifyFinishedCalled(false)
 {
@@ -33,7 +33,7 @@
     m_resource = nullptr;
 }
 
-MockImageResourceClient::MockImageResourceClient(PassRefPtrWillBeRawPtr<ImageResource> resource)
+MockImageResourceClient::MockImageResourceClient(RawPtr<ImageResource> resource)
     : MockResourceClient(resource)
     , m_imageChangedCount(0)
     , m_imageNotifyFinishedCount(0)
diff --git a/third_party/WebKit/Source/core/fetch/MockResourceClients.h b/third_party/WebKit/Source/core/fetch/MockResourceClients.h
index d71b21f..0807b64 100644
--- a/third_party/WebKit/Source/core/fetch/MockResourceClients.h
+++ b/third_party/WebKit/Source/core/fetch/MockResourceClients.h
@@ -40,7 +40,7 @@
 
 class MockResourceClient : public ResourceClient {
 public:
-    explicit MockResourceClient(const PassRefPtrWillBeRawPtr<Resource>);
+    explicit MockResourceClient(const RawPtr<Resource>);
     ~MockResourceClient() override;
 
     void notifyFinished(Resource*) override;
@@ -51,13 +51,13 @@
 
 protected:
     // TODO(Oilpan): properly trace when ResourceClient is on the heap.
-    RawPtrWillBeUntracedMember<Resource> m_resource;
+    UntracedMember<Resource> m_resource;
     bool m_notifyFinishedCalled;
 };
 
 class MockImageResourceClient final : public MockResourceClient, public ImageResourceObserver {
 public:
-    explicit MockImageResourceClient(const PassRefPtrWillBeRawPtr<ImageResource>);
+    explicit MockImageResourceClient(const RawPtr<ImageResource>);
     ~MockImageResourceClient() override;
 
     void imageNotifyFinished(ImageResource*) override;
diff --git a/third_party/WebKit/Source/core/fetch/MultipartImageResourceParser.h b/third_party/WebKit/Source/core/fetch/MultipartImageResourceParser.h
index 6b39fdef..06eb6f7f 100644
--- a/third_party/WebKit/Source/core/fetch/MultipartImageResourceParser.h
+++ b/third_party/WebKit/Source/core/fetch/MultipartImageResourceParser.h
@@ -52,7 +52,7 @@
 class CORE_EXPORT MultipartImageResourceParser final : public GarbageCollectedFinalized<MultipartImageResourceParser> {
     WTF_MAKE_NONCOPYABLE(MultipartImageResourceParser);
 public:
-    class CORE_EXPORT Client : public WillBeGarbageCollectedMixin {
+    class CORE_EXPORT Client : public GarbageCollectedMixin {
     public:
         virtual ~Client() = default;
         virtual void onePartInMultipartReceived(const ResourceResponse&) = 0;
@@ -79,7 +79,7 @@
 
     const ResourceResponse m_originalResponse;
     Vector<char> m_boundary;
-    RawPtrWillBeMember<Client> m_client;
+    Member<Client> m_client;
 
     Vector<char> m_data;
     bool m_isParsingTop = true;
diff --git a/third_party/WebKit/Source/core/fetch/MultipartImageResourceParserTest.cpp b/third_party/WebKit/Source/core/fetch/MultipartImageResourceParserTest.cpp
index 93c1974..6512ee43 100644
--- a/third_party/WebKit/Source/core/fetch/MultipartImageResourceParserTest.cpp
+++ b/third_party/WebKit/Source/core/fetch/MultipartImageResourceParserTest.cpp
@@ -25,8 +25,8 @@
     return String(data.data(), data.size());
 }
 
-class MockClient final : public NoBaseWillBeGarbageCollectedFinalized<MockClient>, public MultipartImageResourceParser::Client {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(MockClient);
+class MockClient final : public GarbageCollectedFinalized<MockClient>, public MultipartImageResourceParser::Client {
+    USING_GARBAGE_COLLECTED_MIXIN(MockClient);
 
 public:
     void onePartInMultipartReceived(const ResourceResponse& response) override
diff --git a/third_party/WebKit/Source/core/fetch/RawResource.cpp b/third_party/WebKit/Source/core/fetch/RawResource.cpp
index a2f924d..8f9173c 100644
--- a/third_party/WebKit/Source/core/fetch/RawResource.cpp
+++ b/third_party/WebKit/Source/core/fetch/RawResource.cpp
@@ -33,7 +33,7 @@
 
 namespace blink {
 
-PassRefPtrWillBeRawPtr<Resource> RawResource::fetchSynchronously(FetchRequest& request, ResourceFetcher* fetcher)
+RawPtr<Resource> RawResource::fetchSynchronously(FetchRequest& request, ResourceFetcher* fetcher)
 {
     request.mutableResourceRequest().setTimeoutInterval(10);
     ResourceLoaderOptions options(request.options());
@@ -42,21 +42,21 @@
     return fetcher->requestResource(request, RawResourceFactory(Resource::Raw));
 }
 
-PassRefPtrWillBeRawPtr<RawResource> RawResource::fetchImport(FetchRequest& request, ResourceFetcher* fetcher)
+RawPtr<RawResource> RawResource::fetchImport(FetchRequest& request, ResourceFetcher* fetcher)
 {
     ASSERT(request.resourceRequest().frameType() == WebURLRequest::FrameTypeNone);
     request.mutableResourceRequest().setRequestContext(WebURLRequest::RequestContextImport);
     return toRawResource(fetcher->requestResource(request, RawResourceFactory(Resource::ImportResource)));
 }
 
-PassRefPtrWillBeRawPtr<RawResource> RawResource::fetch(FetchRequest& request, ResourceFetcher* fetcher)
+RawPtr<RawResource> RawResource::fetch(FetchRequest& request, ResourceFetcher* fetcher)
 {
     ASSERT(request.resourceRequest().frameType() == WebURLRequest::FrameTypeNone);
     ASSERT(request.resourceRequest().requestContext() != WebURLRequest::RequestContextUnspecified);
     return toRawResource(fetcher->requestResource(request, RawResourceFactory(Resource::Raw)));
 }
 
-PassRefPtrWillBeRawPtr<RawResource> RawResource::fetchMainResource(FetchRequest& request, ResourceFetcher* fetcher, const SubstituteData& substituteData)
+RawPtr<RawResource> RawResource::fetchMainResource(FetchRequest& request, ResourceFetcher* fetcher, const SubstituteData& substituteData)
 {
     ASSERT(request.resourceRequest().frameType() != WebURLRequest::FrameTypeNone);
     ASSERT(request.resourceRequest().requestContext() == WebURLRequest::RequestContextForm || request.resourceRequest().requestContext() == WebURLRequest::RequestContextFrame || request.resourceRequest().requestContext() == WebURLRequest::RequestContextHyperlink || request.resourceRequest().requestContext() == WebURLRequest::RequestContextIframe || request.resourceRequest().requestContext() == WebURLRequest::RequestContextInternal || request.resourceRequest().requestContext() == WebURLRequest::RequestContextLocation);
@@ -64,21 +64,21 @@
     return toRawResource(fetcher->requestResource(request, RawResourceFactory(Resource::MainResource), substituteData));
 }
 
-PassRefPtrWillBeRawPtr<RawResource> RawResource::fetchMedia(FetchRequest& request, ResourceFetcher* fetcher)
+RawPtr<RawResource> RawResource::fetchMedia(FetchRequest& request, ResourceFetcher* fetcher)
 {
     ASSERT(request.resourceRequest().frameType() == WebURLRequest::FrameTypeNone);
     ASSERT(request.resourceRequest().requestContext() == WebURLRequest::RequestContextAudio || request.resourceRequest().requestContext() == WebURLRequest::RequestContextVideo);
     return toRawResource(fetcher->requestResource(request, RawResourceFactory(Resource::Media)));
 }
 
-PassRefPtrWillBeRawPtr<RawResource> RawResource::fetchTextTrack(FetchRequest& request, ResourceFetcher* fetcher)
+RawPtr<RawResource> RawResource::fetchTextTrack(FetchRequest& request, ResourceFetcher* fetcher)
 {
     ASSERT(request.resourceRequest().frameType() == WebURLRequest::FrameTypeNone);
     request.mutableResourceRequest().setRequestContext(WebURLRequest::RequestContextTrack);
     return toRawResource(fetcher->requestResource(request, RawResourceFactory(Resource::TextTrack)));
 }
 
-PassRefPtrWillBeRawPtr<RawResource> RawResource::fetchManifest(FetchRequest& request, ResourceFetcher* fetcher)
+RawPtr<RawResource> RawResource::fetchManifest(FetchRequest& request, ResourceFetcher* fetcher)
 {
     ASSERT(request.resourceRequest().frameType() == WebURLRequest::FrameTypeNone);
     ASSERT(request.resourceRequest().requestContext() == WebURLRequest::RequestContextManifest);
@@ -94,7 +94,7 @@
 {
     Resource::appendData(data, length);
 
-    RefPtrWillBeRawPtr<RawResource> protect(this);
+    RawPtr<RawResource> protect(this);
     ResourceClientWalker<RawResourceClient> w(m_clients);
     while (RawResourceClient* c = w.next())
         c->dataReceived(this, data, length);
@@ -107,7 +107,7 @@
     // The calls to the client can result in events running, potentially causing
     // this resource to be evicted from the cache and all clients to be removed,
     // so a protector is necessary.
-    RefPtrWillBeRawPtr<RawResource> protect(this);
+    RawPtr<RawResource> protect(this);
     ASSERT(RawResourceClient::isExpectedType(c));
     RawResourceClient* client = static_cast<RawResourceClient*>(c);
     for (const auto& redirect : redirectChain()) {
@@ -132,7 +132,7 @@
 {
     Resource::willFollowRedirect(newRequest, redirectResponse);
 
-    RefPtrWillBeRawPtr<RawResource> protect(this);
+    RawPtr<RawResource> protect(this);
     ASSERT(!redirectResponse.isNull());
     ResourceClientWalker<RawResourceClient> w(m_clients);
     while (RawResourceClient* c = w.next())
@@ -141,7 +141,7 @@
 
 void RawResource::responseReceived(const ResourceResponse& response, PassOwnPtr<WebDataConsumerHandle> handle)
 {
-    RefPtrWillBeRawPtr<RawResource> protect(this);
+    RawPtr<RawResource> protect(this);
 
     bool isSuccessfulRevalidation = isCacheValidator() && response.httpStatusCode() == 304;
     Resource::responseReceived(response, nullptr);
@@ -167,7 +167,7 @@
 
 void RawResource::setSerializedCachedMetadata(const char* data, size_t size)
 {
-    RefPtrWillBeRawPtr<RawResource> protect(this);
+    RawPtr<RawResource> protect(this);
     Resource::setSerializedCachedMetadata(data, size);
     ResourceClientWalker<RawResourceClient> w(m_clients);
     while (RawResourceClient* c = w.next())
@@ -176,7 +176,7 @@
 
 void RawResource::didSendData(unsigned long long bytesSent, unsigned long long totalBytesToBeSent)
 {
-    RefPtrWillBeRawPtr<RawResource> protect(this);
+    RawPtr<RawResource> protect(this);
     ResourceClientWalker<RawResourceClient> w(m_clients);
     while (RawResourceClient* c = w.next())
         c->dataSent(this, bytesSent, totalBytesToBeSent);
@@ -184,7 +184,7 @@
 
 void RawResource::didDownloadData(int dataLength)
 {
-    RefPtrWillBeRawPtr<RawResource> protect(this);
+    RawPtr<RawResource> protect(this);
     ResourceClientWalker<RawResourceClient> w(m_clients);
     while (RawResourceClient* c = w.next())
         c->dataDownloaded(this, dataLength);
diff --git a/third_party/WebKit/Source/core/fetch/RawResource.h b/third_party/WebKit/Source/core/fetch/RawResource.h
index eb19b90..87d9db4 100644
--- a/third_party/WebKit/Source/core/fetch/RawResource.h
+++ b/third_party/WebKit/Source/core/fetch/RawResource.h
@@ -39,18 +39,18 @@
 public:
     using ClientType = RawResourceClient;
 
-    static PassRefPtrWillBeRawPtr<Resource> fetchSynchronously(FetchRequest&, ResourceFetcher*);
-    static PassRefPtrWillBeRawPtr<RawResource> fetch(FetchRequest&, ResourceFetcher*);
-    static PassRefPtrWillBeRawPtr<RawResource> fetchMainResource(FetchRequest&, ResourceFetcher*, const SubstituteData&);
-    static PassRefPtrWillBeRawPtr<RawResource> fetchImport(FetchRequest&, ResourceFetcher*);
-    static PassRefPtrWillBeRawPtr<RawResource> fetchMedia(FetchRequest&, ResourceFetcher*);
-    static PassRefPtrWillBeRawPtr<RawResource> fetchTextTrack(FetchRequest&, ResourceFetcher*);
-    static PassRefPtrWillBeRawPtr<RawResource> fetchManifest(FetchRequest&, ResourceFetcher*);
+    static RawPtr<Resource> fetchSynchronously(FetchRequest&, ResourceFetcher*);
+    static RawPtr<RawResource> fetch(FetchRequest&, ResourceFetcher*);
+    static RawPtr<RawResource> fetchMainResource(FetchRequest&, ResourceFetcher*, const SubstituteData&);
+    static RawPtr<RawResource> fetchImport(FetchRequest&, ResourceFetcher*);
+    static RawPtr<RawResource> fetchMedia(FetchRequest&, ResourceFetcher*);
+    static RawPtr<RawResource> fetchTextTrack(FetchRequest&, ResourceFetcher*);
+    static RawPtr<RawResource> fetchManifest(FetchRequest&, ResourceFetcher*);
 
     // Exposed for testing
-    static RefPtrWillBeRawPtr<RawResource> create(const ResourceRequest& request, Type type)
+    static RawPtr<RawResource> create(const ResourceRequest& request, Type type)
     {
-        return adoptRefWillBeNoop(new RawResource(request, type, ResourceLoaderOptions()));
+        return new RawResource(request, type, ResourceLoaderOptions());
     }
 
     // FIXME: AssociatedURLLoader shouldn't be a DocumentThreadableLoader and therefore shouldn't
@@ -66,9 +66,9 @@
         RawResourceFactory(Resource::Type type)
             : ResourceFactory(type) { }
 
-        PassRefPtrWillBeRawPtr<Resource> create(const ResourceRequest& request, const ResourceLoaderOptions& options, const String& charset) const override
+        RawPtr<Resource> create(const ResourceRequest& request, const ResourceLoaderOptions& options, const String& charset) const override
         {
-            return adoptRefWillBeNoop(new RawResource(request, m_type, options));
+            return new RawResource(request, m_type, options);
         }
     };
 
@@ -94,7 +94,7 @@
     return type == Resource::MainResource || type == Resource::Raw || type == Resource::TextTrack || type == Resource::Media || type == Resource::Manifest || type == Resource::ImportResource;
 }
 #endif
-inline PassRefPtrWillBeRawPtr<RawResource> toRawResource(const PassRefPtrWillBeRawPtr<Resource>& resource)
+inline RawPtr<RawResource> toRawResource(const RawPtr<Resource>& resource)
 {
     ASSERT_WITH_SECURITY_IMPLICATION(!resource || isRawResource(*resource.get()));
     return static_cast<RawResource*>(resource.get());
diff --git a/third_party/WebKit/Source/core/fetch/RawResourceTest.cpp b/third_party/WebKit/Source/core/fetch/RawResourceTest.cpp
index 1b7aab2..1bea2c2d 100644
--- a/third_party/WebKit/Source/core/fetch/RawResourceTest.cpp
+++ b/third_party/WebKit/Source/core/fetch/RawResourceTest.cpp
@@ -47,7 +47,7 @@
     ResourceRequest jpegRequest;
     jpegRequest.setHTTPAccept("image/jpeg");
 
-    RefPtrWillBeRawPtr<RawResource> jpegResource(RawResource::create(jpegRequest, Resource::Raw));
+    RawPtr<RawResource> jpegResource(RawResource::create(jpegRequest, Resource::Raw));
 
     ResourceRequest pngRequest;
     pngRequest.setHTTPAccept("image/png");
@@ -105,13 +105,13 @@
     }
 private:
     DummyClient* m_dummyClient;
-    RefPtrWillBePersistent<Resource> m_resource;
+    Persistent<Resource> m_resource;
     Timer<AddingClient> m_removeClientTimer;
 };
 
 TEST(RawResourceTest, RevalidationSucceeded)
 {
-    RefPtrWillBeRawPtr<Resource> resource = RawResource::create(ResourceRequest("data:text/html,"), Resource::Raw);
+    RawPtr<Resource> resource = RawResource::create(ResourceRequest("data:text/html,"), Resource::Raw);
     ResourceResponse response;
     response.setHTTPStatusCode(200);
     resource->responseReceived(response, nullptr);
@@ -143,7 +143,7 @@
 
 TEST(RawResourceTest, RevalidationSucceededForResourceWithoutBody)
 {
-    RefPtrWillBeRawPtr<Resource> resource = RawResource::create(ResourceRequest("data:text/html,"), Resource::Raw);
+    RawPtr<Resource> resource = RawResource::create(ResourceRequest("data:text/html,"), Resource::Raw);
     ResourceResponse response;
     response.setHTTPStatusCode(200);
     resource->responseReceived(response, nullptr);
@@ -171,9 +171,72 @@
     EXPECT_EQ(0u, client->data().size());
 }
 
+TEST(RawResourceTest, RevalidationSucceededUpdateHeaders)
+{
+    RefPtrWillBeRawPtr<Resource> resource = RawResource::create(ResourceRequest("data:text/html,"), Resource::Raw);
+    ResourceResponse response;
+    response.setHTTPStatusCode(200);
+    response.addHTTPHeaderField("keep-alive", "keep-alive value");
+    response.addHTTPHeaderField("expires", "expires value");
+    response.addHTTPHeaderField("last-modified", "last-modified value");
+    response.addHTTPHeaderField("proxy-authenticate", "proxy-authenticate value");
+    response.addHTTPHeaderField("proxy-connection", "proxy-connection value");
+    response.addHTTPHeaderField("x-custom", "custom value");
+    resource->responseReceived(response, nullptr);
+    resource->finish();
+    memoryCache()->add(resource.get());
+
+    // Simulate a successful revalidation.
+    resource->setRevalidatingRequest(ResourceRequest("data:text/html,"));
+
+    // Validate that these headers pre-update.
+    EXPECT_EQ("keep-alive value", resource->response().httpHeaderField("keep-alive"));
+    EXPECT_EQ("expires value", resource->response().httpHeaderField("expires"));
+    EXPECT_EQ("last-modified value", resource->response().httpHeaderField("last-modified"));
+    EXPECT_EQ("proxy-authenticate value", resource->response().httpHeaderField("proxy-authenticate"));
+    EXPECT_EQ("proxy-authenticate value", resource->response().httpHeaderField("proxy-authenticate"));
+    EXPECT_EQ("proxy-connection value", resource->response().httpHeaderField("proxy-connection"));
+    EXPECT_EQ("custom value", resource->response().httpHeaderField("x-custom"));
+
+    OwnPtr<DummyClient> client = adoptPtr(new DummyClient);
+    resource->addClient(client.get());
+
+    // Perform a revalidation step.
+    ResourceResponse revalidatingResponse;
+    revalidatingResponse.setHTTPStatusCode(304);
+    // Headers that aren't copied with an 304 code.
+    revalidatingResponse.addHTTPHeaderField("keep-alive", "garbage");
+    revalidatingResponse.addHTTPHeaderField("expires", "garbage");
+    revalidatingResponse.addHTTPHeaderField("last-modified", "garbage");
+    revalidatingResponse.addHTTPHeaderField("proxy-authenticate", "garbage");
+    revalidatingResponse.addHTTPHeaderField("proxy-connection", "garbage");
+    // Header that is updated with 304 code.
+    revalidatingResponse.addHTTPHeaderField("x-custom", "updated");
+    resource->responseReceived(revalidatingResponse, nullptr);
+
+    // Validate the original response.
+    EXPECT_EQ(200, resource->response().httpStatusCode());
+
+    // Validate that these headers are not updated.
+    EXPECT_EQ("keep-alive value", resource->response().httpHeaderField("keep-alive"));
+    EXPECT_EQ("expires value", resource->response().httpHeaderField("expires"));
+    EXPECT_EQ("last-modified value", resource->response().httpHeaderField("last-modified"));
+    EXPECT_EQ("proxy-authenticate value", resource->response().httpHeaderField("proxy-authenticate"));
+    EXPECT_EQ("proxy-authenticate value", resource->response().httpHeaderField("proxy-authenticate"));
+    EXPECT_EQ("proxy-connection value", resource->response().httpHeaderField("proxy-connection"));
+    EXPECT_EQ("updated", resource->response().httpHeaderField("x-custom"));
+
+    memoryCache()->remove(resource.get());
+
+    resource->removeClient(client.get());
+    EXPECT_FALSE(resource->hasClientsOrObservers());
+    EXPECT_FALSE(client->called());
+    EXPECT_EQ(0u, client->data().size());
+}
+
 TEST(RawResourceTest, AddClientDuringCallback)
 {
-    RefPtrWillBeRawPtr<Resource> raw = RawResource::create(ResourceRequest("data:text/html,"), Resource::Raw);
+    RawPtr<Resource> raw = RawResource::create(ResourceRequest("data:text/html,"), Resource::Raw);
 
     // Create a non-null response.
     ResourceResponse response = raw->response();
@@ -212,7 +275,7 @@
 
 TEST(RawResourceTest, RemoveClientDuringCallback)
 {
-    RefPtrWillBeRawPtr<Resource> raw = RawResource::create(ResourceRequest("data:text/html,"), Resource::Raw);
+    RawPtr<Resource> raw = RawResource::create(ResourceRequest("data:text/html,"), Resource::Raw);
 
     // Create a non-null response.
     ResourceResponse response = raw->response();
diff --git a/third_party/WebKit/Source/core/fetch/Resource.cpp b/third_party/WebKit/Source/core/fetch/Resource.cpp
index 97ec43a..b80847b 100644
--- a/third_party/WebKit/Source/core/fetch/Resource.cpp
+++ b/third_party/WebKit/Source/core/fetch/Resource.cpp
@@ -60,7 +60,7 @@
     "etag",
     "expires",
     "keep-alive",
-    "last-modified"
+    "last-modified",
     "proxy-authenticate",
     "proxy-connection",
     "trailer",
@@ -95,9 +95,9 @@
 
 class Resource::CacheHandler : public CachedMetadataHandler {
 public:
-    static PassOwnPtrWillBeRawPtr<CacheHandler> create(Resource* resource)
+    static RawPtr<CacheHandler> create(Resource* resource)
     {
-        return adoptPtrWillBeNoop(new CacheHandler(resource));
+        return new CacheHandler(resource);
     }
     ~CacheHandler() override { }
     DECLARE_VIRTUAL_TRACE();
@@ -108,7 +108,7 @@
 
 private:
     explicit CacheHandler(Resource*);
-    RawPtrWillBeMember<Resource> m_resource;
+    Member<Resource> m_resource;
 };
 
 Resource::CacheHandler::CacheHandler(Resource* resource)
@@ -495,7 +495,7 @@
         Platform::current()->cacheMetadata(m_response.url(), m_response.responseTime(), 0, 0);
 }
 
-WeakPtrWillBeRawPtr<Resource> Resource::asWeakPtr()
+RawPtr<Resource> Resource::asWeakPtr()
 {
 #if ENABLE(OILPAN)
     return this;
@@ -638,7 +638,7 @@
 void Resource::didRemoveClientOrObserver()
 {
     if (!hasClientsOrObservers()) {
-        RefPtrWillBeRawPtr<Resource> protect(this);
+        RawPtr<Resource> protect(this);
         memoryCache()->makeDead(this);
         allClientsAndObserversRemoved();
 
@@ -673,7 +673,7 @@
     ASSERT_UNUSED(timer, timer == &m_cancelTimer);
     if (hasClientsOrObservers() || !m_loader)
         return;
-    RefPtrWillBeRawPtr<Resource> protect(this);
+    RawPtr<Resource> protect(this);
     m_loader->cancelIfNotFinishing();
     memoryCache()->remove(this);
 }
@@ -920,7 +920,7 @@
     //
     // Keep it out of LSan's reach instead.
     LEAK_SANITIZER_DISABLED_SCOPE;
-    DEFINE_STATIC_LOCAL(OwnPtrWillBePersistent<ResourceCallback>, callbackHandler, (adoptPtrWillBeNoop(new ResourceCallback)));
+    DEFINE_STATIC_LOCAL(Persistent<ResourceCallback>, callbackHandler, (adoptPtrWillBeNoop(new ResourceCallback)));
     return callbackHandler.get();
 }
 
@@ -957,8 +957,8 @@
 
 void Resource::ResourceCallback::runTask()
 {
-    WillBeHeapVector<RefPtrWillBeMember<Resource>> resources;
-    for (const RefPtrWillBeMember<Resource>& resource : m_resourcesWithPendingClients)
+    HeapVector<Member<Resource>> resources;
+    for (const Member<Resource>& resource : m_resourcesWithPendingClients)
         resources.append(resource.get());
     m_resourcesWithPendingClients.clear();
 
diff --git a/third_party/WebKit/Source/core/fetch/Resource.h b/third_party/WebKit/Source/core/fetch/Resource.h
index 2ac16e51..9242658 100644
--- a/third_party/WebKit/Source/core/fetch/Resource.h
+++ b/third_party/WebKit/Source/core/fetch/Resource.h
@@ -55,9 +55,8 @@
 // A resource that is held in the cache. Classes who want to use this object should derive
 // from ResourceClient, to get the function calls in case the requested data has arrived.
 // This class also does the actual communication with the loader to obtain the resource from the network.
-class CORE_EXPORT Resource : public RefCountedWillBeGarbageCollectedFinalized<Resource> {
+class CORE_EXPORT Resource : public GarbageCollectedFinalized<Resource> {
     WTF_MAKE_NONCOPYABLE(Resource);
-    USING_FAST_MALLOC_WITH_TYPE_NAME_WILL_BE_REMOVED(blink::Resource);
 public:
     enum Type {
         MainResource,
@@ -86,9 +85,9 @@
     };
 
     // Exposed for testing.
-    static PassRefPtrWillBeRawPtr<Resource> create(const ResourceRequest& request, Type type, const ResourceLoaderOptions& options = ResourceLoaderOptions())
+    static RawPtr<Resource> create(const ResourceRequest& request, Type type, const ResourceLoaderOptions& options = ResourceLoaderOptions())
     {
-        return adoptRefWillBeNoop(new Resource(request, type, options));
+        return new Resource(request, type, options);
     }
     virtual ~Resource();
 
@@ -247,7 +246,7 @@
     static const char* resourceTypeName(Type);
 
     // TODO(japhet): Remove once oilpan ships, it doesn't need the WeakPtr.
-    WeakPtrWillBeRawPtr<Resource> asWeakPtr();
+    RawPtr<Resource> asWeakPtr();
 
 protected:
     Resource(const ResourceRequest&, Type, const ResourceLoaderOptions&);
@@ -273,7 +272,7 @@
     HashCountedSet<ResourceClient*> m_clientsAwaitingCallback;
     HashCountedSet<ResourceClient*> m_finishedClients;
 
-    class ResourceCallback : public NoBaseWillBeGarbageCollectedFinalized<ResourceCallback> {
+    class ResourceCallback : public GarbageCollectedFinalized<ResourceCallback> {
     public:
         static ResourceCallback* callbackHandler();
         DECLARE_TRACE();
@@ -284,7 +283,7 @@
         ResourceCallback();
         void runTask();
         OwnPtr<CancellableTaskFactory> m_callbackTaskFactory;
-        WillBeHeapHashSet<RefPtrWillBeMember<Resource>> m_resourcesWithPendingClients;
+        HeapHashSet<Member<Resource>> m_resourcesWithPendingClients;
     };
 
     bool hasClient(ResourceClient* client) { return m_clients.contains(client) || m_clientsAwaitingCallback.contains(client) || m_finishedClients.contains(client); }
@@ -314,7 +313,7 @@
     ResourceRequest m_resourceRequest;
     ResourceRequest m_revalidatingRequest;
     AtomicString m_accept;
-    PersistentWillBeMember<ResourceLoader> m_loader;
+    Member<ResourceLoader> m_loader;
     ResourceLoaderOptions m_options;
 
     ResourceResponse m_response;
@@ -345,7 +344,7 @@
 #endif
 
     RefPtr<CachedMetadata> m_cachedMetadata;
-    OwnPtrWillBeMember<CacheHandler> m_cacheHandler;
+    Member<CacheHandler> m_cacheHandler;
 
     ResourceError m_error;
 
@@ -380,7 +379,7 @@
 class ResourceFactory {
     STACK_ALLOCATED();
 public:
-    virtual PassRefPtrWillBeRawPtr<Resource> create(const ResourceRequest&, const ResourceLoaderOptions&, const String&) const = 0;
+    virtual RawPtr<Resource> create(const ResourceRequest&, const ResourceLoaderOptions&, const String&) const = 0;
     Resource::Type type() const { return m_type; }
 
 protected:
@@ -391,7 +390,7 @@
 
 #define DEFINE_RESOURCE_TYPE_CASTS(typeName) \
     DEFINE_TYPE_CASTS(typeName##Resource, Resource, resource, resource->getType() == Resource::typeName, resource.getType() == Resource::typeName); \
-    inline typeName##Resource* to##typeName##Resource(const RefPtrWillBeRawPtr<Resource>& ptr) { return to##typeName##Resource(ptr.get()); }
+    inline typeName##Resource* to##typeName##Resource(const RawPtr<Resource>& ptr) { return to##typeName##Resource(ptr.get()); }
 
 } // namespace blink
 
diff --git a/third_party/WebKit/Source/core/fetch/ResourceFetcher.cpp b/third_party/WebKit/Source/core/fetch/ResourceFetcher.cpp
index c971327..77af0621 100644
--- a/third_party/WebKit/Source/core/fetch/ResourceFetcher.cpp
+++ b/third_party/WebKit/Source/core/fetch/ResourceFetcher.cpp
@@ -225,7 +225,7 @@
 Resource* ResourceFetcher::cachedResource(const KURL& resourceURL) const
 {
     KURL url = MemoryCache::removeFragmentIdentifierIfNeeded(resourceURL);
-    const WeakPtrWillBeWeakMember<Resource>& resource = m_documentResources.get(url);
+    const WeakMember<Resource>& resource = m_documentResources.get(url);
     return resource.get();
 }
 
@@ -302,7 +302,7 @@
     return value.release();
 }
 
-PassRefPtrWillBeRawPtr<Resource> ResourceFetcher::resourceForStaticData(const FetchRequest& request, const ResourceFactory& factory, const SubstituteData& substituteData)
+RawPtr<Resource> ResourceFetcher::resourceForStaticData(const FetchRequest& request, const ResourceFactory& factory, const SubstituteData& substituteData)
 {
     const KURL& url = request.resourceRequest().url();
     ASSERT(url.protocolIsData() || substituteData.isValid() || m_archive);
@@ -347,7 +347,7 @@
     response.setHTTPStatusCode(200);
     response.setHTTPStatusText("OK");
 
-    RefPtrWillBeRawPtr<Resource> resource = factory.create(request.resourceRequest(), request.options(), request.charset());
+    RawPtr<Resource> resource = factory.create(request.resourceRequest(), request.options(), request.charset());
     resource->setNeedsSynchronousCacheHit(substituteData.forceSynchronousLoad());
     // FIXME: We should provide a body stream here.
     resource->responseReceived(response, nullptr);
@@ -396,7 +396,7 @@
     }
 }
 
-PassRefPtrWillBeRawPtr<Resource> ResourceFetcher::requestResource(FetchRequest& request, const ResourceFactory& factory, const SubstituteData& substituteData)
+RawPtr<Resource> ResourceFetcher::requestResource(FetchRequest& request, const ResourceFactory& factory, const SubstituteData& substituteData)
 {
     ASSERT(request.options().synchronousPolicy == RequestAsynchronously || factory.type() == Resource::Raw || factory.type() == Resource::XSLStyleSheet);
 
@@ -434,7 +434,7 @@
     }
 
     bool isStaticData = request.resourceRequest().url().protocolIsData() || substituteData.isValid() || m_archive;
-    RefPtrWillBeRawPtr<Resource> resource(nullptr);
+    RawPtr<Resource> resource(nullptr);
     if (isStaticData)
         resource = resourceForStaticData(request, factory, substituteData);
     if (!resource)
@@ -570,14 +570,14 @@
     resource->setRevalidatingRequest(revalidatingRequest);
 }
 
-PassRefPtrWillBeRawPtr<Resource> ResourceFetcher::createResourceForLoading(FetchRequest& request, const String& charset, const ResourceFactory& factory)
+RawPtr<Resource> ResourceFetcher::createResourceForLoading(FetchRequest& request, const String& charset, const ResourceFactory& factory)
 {
     const String cacheIdentifier = getCacheIdentifier();
     ASSERT(!memoryCache()->resourceForURL(request.resourceRequest().url(), cacheIdentifier));
 
     WTF_LOG(ResourceLoading, "Loading Resource for '%s'.", request.resourceRequest().url().elidedString().latin1().data());
 
-    RefPtrWillBeRawPtr<Resource> resource = factory.create(request.resourceRequest(), request.options(), charset);
+    RawPtr<Resource> resource = factory.create(request.resourceRequest(), request.options(), charset);
     resource->setLinkPreload(request.isLinkPreload());
     resource->setCacheIdentifier(cacheIdentifier);
 
@@ -696,7 +696,7 @@
     if (m_allowStaleResources)
         return Use;
 
-    if (request.getCachePolicy() == ResourceRequestCachePolicy::ReloadBypassingCache)
+    if (request.getCachePolicy() == ResourceRequestCachePolicy::BypassingCache)
         return Reload;
 
     if (!fetchRequest.options().canReuseRequest(existingResource->options()))
@@ -854,7 +854,7 @@
     resource->increasePreloadCount();
 
     if (!m_preloads)
-        m_preloads = adoptPtrWillBeNoop(new WillBeHeapListHashSet<RefPtrWillBeMember<Resource>>);
+        m_preloads = adoptPtrWillBeNoop(new HeapListHashSet<Member<Resource>>);
     m_preloads->add(resource);
 
 #if PRELOAD_DEBUG
diff --git a/third_party/WebKit/Source/core/fetch/ResourceFetcher.h b/third_party/WebKit/Source/core/fetch/ResourceFetcher.h
index 97c9db7..397d5b9 100644
--- a/third_party/WebKit/Source/core/fetch/ResourceFetcher.h
+++ b/third_party/WebKit/Source/core/fetch/ResourceFetcher.h
@@ -67,17 +67,17 @@
 // alive past detach if scripts still reference the Document.
 class CORE_EXPORT ResourceFetcher : public GarbageCollectedFinalized<ResourceFetcher> {
     WTF_MAKE_NONCOPYABLE(ResourceFetcher);
-    WILL_BE_USING_PRE_FINALIZER(ResourceFetcher, clearPreloads);
+    USING_PRE_FINALIZER(ResourceFetcher, clearPreloads);
 public:
     static ResourceFetcher* create(FetchContext* context) { return new ResourceFetcher(context); }
     virtual ~ResourceFetcher();
     DECLARE_VIRTUAL_TRACE();
 
-    PassRefPtrWillBeRawPtr<Resource> requestResource(FetchRequest&, const ResourceFactory&, const SubstituteData& = SubstituteData());
+    RawPtr<Resource> requestResource(FetchRequest&, const ResourceFactory&, const SubstituteData& = SubstituteData());
 
     Resource* cachedResource(const KURL&) const;
 
-    using DocumentResourceMap = WillBeHeapHashMap<String, WeakPtrWillBeWeakMember<Resource>>;
+    using DocumentResourceMap = HeapHashMap<String, WeakMember<Resource>>;
     const DocumentResourceMap& allResources() const { return m_documentResources; }
 
     void setAutoLoadImages(bool);
@@ -146,7 +146,7 @@
     void reloadLoFiImages();
 
     // This is only exposed for testing purposes.
-    WillBeHeapListHashSet<RefPtrWillBeMember<Resource>>* preloads() { return m_preloads.get(); }
+    HeapListHashSet<Member<Resource>>* preloads() { return m_preloads.get(); }
 
 private:
     friend class ResourceCacheValidationSuppressor;
@@ -154,10 +154,10 @@
     explicit ResourceFetcher(FetchContext*);
 
     void initializeRevalidation(const FetchRequest&, Resource*);
-    PassRefPtrWillBeRawPtr<Resource> createResourceForLoading(FetchRequest&, const String& charset, const ResourceFactory&);
+    RawPtr<Resource> createResourceForLoading(FetchRequest&, const String& charset, const ResourceFactory&);
     void storeResourceTimingInitiatorInformation(Resource*);
 
-    PassRefPtrWillBeRawPtr<Resource> resourceForStaticData(const FetchRequest&, const ResourceFactory&, const SubstituteData&);
+    RawPtr<Resource> resourceForStaticData(const FetchRequest&, const ResourceFactory&, const SubstituteData&);
 
     // RevalidationPolicy enum values are used in UMAs https://crbug.com/579496.
     enum RevalidationPolicy { Use, Revalidate, Reload, Load };
@@ -181,12 +181,12 @@
     HashSet<String> m_validatedURLs;
     mutable DocumentResourceMap m_documentResources;
 
-    OwnPtrWillBeMember<WillBeHeapListHashSet<RefPtrWillBeMember<Resource>>> m_preloads;
-    RefPtrWillBeMember<MHTMLArchive> m_archive;
+    Member<HeapListHashSet<Member<Resource>>> m_preloads;
+    Member<MHTMLArchive> m_archive;
 
     Timer<ResourceFetcher> m_resourceTimingReportTimer;
 
-    using ResourceTimingInfoMap = WillBeHeapHashMap<RawPtrWillBeMember<Resource>, OwnPtr<ResourceTimingInfo>>;
+    using ResourceTimingInfoMap = HeapHashMap<Member<Resource>, OwnPtr<ResourceTimingInfo>>;
     ResourceTimingInfoMap m_resourceTimingInfoMap;
 
     Vector<OwnPtr<ResourceTimingInfo>> m_scheduledResourceTimingReports;
diff --git a/third_party/WebKit/Source/core/fetch/ResourceFetcherTest.cpp b/third_party/WebKit/Source/core/fetch/ResourceFetcherTest.cpp
index da6ee3c..cc438ab9 100644
--- a/third_party/WebKit/Source/core/fetch/ResourceFetcherTest.cpp
+++ b/third_party/WebKit/Source/core/fetch/ResourceFetcherTest.cpp
@@ -80,7 +80,7 @@
     TestResourceFactory(Resource::Type type = Resource::Raw)
         : ResourceFactory(type) { }
 
-    PassRefPtrWillBeRawPtr<Resource> create(const ResourceRequest& request, const ResourceLoaderOptions& options, const String& charset) const override
+    RawPtr<Resource> create(const ResourceRequest& request, const ResourceLoaderOptions& options, const String& charset) const override
     {
         return Resource::create(request, type(), options);
     }
@@ -93,7 +93,7 @@
     // and no resource should be present in the cache.
     ResourceFetcher* fetcher = ResourceFetcher::create(nullptr);
     FetchRequest fetchRequest = FetchRequest(ResourceRequest(secureURL), FetchInitiatorInfo());
-    RefPtrWillBeRawPtr<Resource> resource = fetcher->requestResource(fetchRequest, TestResourceFactory());
+    RawPtr<Resource> resource = fetcher->requestResource(fetchRequest, TestResourceFactory());
     EXPECT_EQ(resource.get(), static_cast<Resource*>(nullptr));
     EXPECT_EQ(memoryCache()->resourceForURL(secureURL), static_cast<Resource*>(nullptr));
 }
@@ -103,7 +103,7 @@
     ResourceFetcher* fetcher = ResourceFetcher::create(ResourceFetcherTestMockFetchContext::create());
 
     KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.html");
-    RefPtrWillBeRawPtr<Resource> resource = Resource::create(url, Resource::Image);
+    RawPtr<Resource> resource = Resource::create(url, Resource::Image);
     memoryCache()->add(resource.get());
     ResourceResponse response;
     response.setURL(url);
@@ -113,7 +113,7 @@
     resource->finish();
 
     FetchRequest fetchRequest = FetchRequest(url, FetchInitiatorInfo());
-    RefPtrWillBeRawPtr<Resource> newResource = fetcher->requestResource(fetchRequest, TestResourceFactory(Resource::Image));
+    RawPtr<Resource> newResource = fetcher->requestResource(fetchRequest, TestResourceFactory(Resource::Image));
     EXPECT_EQ(resource, newResource);
     memoryCache()->remove(resource.get());
 }
@@ -121,7 +121,7 @@
 TEST_F(ResourceFetcherTest, Vary)
 {
     KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.html");
-    RefPtrWillBeRawPtr<Resource> resource = Resource::create(url, Resource::Raw);
+    RawPtr<Resource> resource = Resource::create(url, Resource::Raw);
     memoryCache()->add(resource.get());
     ResourceResponse response;
     response.setURL(url);
@@ -135,7 +135,7 @@
     ResourceFetcher* fetcher = ResourceFetcher::create(ResourceFetcherTestMockFetchContext::create());
     FetchRequest fetchRequest = FetchRequest(url, FetchInitiatorInfo());
     Platform::current()->unitTestSupport()->registerMockedURL(url, WebURLResponse(), "");
-    RefPtrWillBeRawPtr<Resource> newResource = fetcher->requestResource(fetchRequest, TestResourceFactory());
+    RawPtr<Resource> newResource = fetcher->requestResource(fetchRequest, TestResourceFactory());
     EXPECT_NE(resource, newResource);
     newResource->loader()->cancel();
     memoryCache()->remove(newResource.get());
@@ -151,7 +151,7 @@
     ResourceFetcher* fetcher = ResourceFetcher::create(context);
 
     KURL url(ParsedURLString, "http://127.0.0.1:8000/foo.html");
-    RefPtrWillBeRawPtr<Resource> resource = Resource::create(url, Resource::Raw);
+    RawPtr<Resource> resource = Resource::create(url, Resource::Raw);
     memoryCache()->add(resource.get());
     ResourceResponse response;
     response.setURL(url);
@@ -163,7 +163,7 @@
     ASSERT_TRUE(resource->hasVaryHeader());
 
     FetchRequest fetchRequest = FetchRequest(url, FetchInitiatorInfo());
-    RefPtrWillBeRawPtr<Resource> newResource = fetcher->requestResource(fetchRequest, TestResourceFactory());
+    RawPtr<Resource> newResource = fetcher->requestResource(fetchRequest, TestResourceFactory());
     EXPECT_EQ(resource, newResource);
 
     memoryCache()->remove(newResource.get());
@@ -182,13 +182,13 @@
     URLTestHelpers::registerMockedURLLoadWithCustomResponse(url, "white-1x1.png", WebString::fromUTF8(""), WrappedResourceResponse(response));
 
     FetchRequest fetchRequestOriginal = FetchRequest(url, FetchInitiatorInfo());
-    RefPtrWillBeRawPtr<Resource> resource = fetcher->requestResource(fetchRequestOriginal, TestResourceFactory(Resource::Image));
+    RawPtr<Resource> resource = fetcher->requestResource(fetchRequestOriginal, TestResourceFactory(Resource::Image));
     ASSERT_TRUE(resource.get());
     Platform::current()->unitTestSupport()->serveAsynchronousMockedRequests();
     ASSERT_TRUE(resource->hasVaryHeader());
 
     FetchRequest fetchRequest = FetchRequest(url, FetchInitiatorInfo());
-    RefPtrWillBeRawPtr<Resource> newResource = fetcher->requestResource(fetchRequest, TestResourceFactory(Resource::Image));
+    RawPtr<Resource> newResource = fetcher->requestResource(fetchRequest, TestResourceFactory(Resource::Image));
     EXPECT_EQ(resource, newResource);
 
     memoryCache()->remove(newResource.get());
@@ -204,7 +204,7 @@
     ResourceRequest request1(url);
     request1.setHTTPHeaderField(HTTPNames::Cache_Control, "no-cache");
     FetchRequest fetchRequest1 = FetchRequest(request1, FetchInitiatorInfo());
-    RefPtrWillBeRawPtr<Resource> resource1 = fetcher1->requestResource(fetchRequest1, TestResourceFactory(Resource::Image));
+    RawPtr<Resource> resource1 = fetcher1->requestResource(fetchRequest1, TestResourceFactory(Resource::Image));
     ResourceResponse response;
     response.setURL(url);
     response.setHTTPStatusCode(200);
@@ -217,7 +217,7 @@
     context->setCachePolicy(CachePolicyRevalidate);
     ResourceFetcher* fetcher2 = ResourceFetcher::create(context);
     FetchRequest fetchRequest2(url, FetchInitiatorInfo());
-    RefPtrWillBeRawPtr<Resource> resource2 = fetcher2->requestResource(fetchRequest2, TestResourceFactory(Resource::Image));
+    RawPtr<Resource> resource2 = fetcher2->requestResource(fetchRequest2, TestResourceFactory(Resource::Image));
     EXPECT_EQ(resource1, resource2);
 
     // Tidily(?) shut down the ResourceLoader.
@@ -232,8 +232,8 @@
     ResourceLoaderOptions options;
     options.dataBufferingPolicy = DoNotBufferData;
     FetchRequest fetchRequest = FetchRequest(request, FetchInitiatorTypeNames::internal, options);
-    RefPtrWillBeRawPtr<Resource> resource1 = fetcher->requestResource(fetchRequest, TestResourceFactory(Resource::Media));
-    RefPtrWillBeRawPtr<Resource> resource2 = fetcher->requestResource(fetchRequest, TestResourceFactory(Resource::Media));
+    RawPtr<Resource> resource1 = fetcher->requestResource(fetchRequest, TestResourceFactory(Resource::Media));
+    RawPtr<Resource> resource2 = fetcher->requestResource(fetchRequest, TestResourceFactory(Resource::Media));
     EXPECT_NE(resource1.get(), resource2.get());
     memoryCache()->remove(resource2.get());
 }
@@ -273,7 +273,7 @@
 
     ResourceFetcher* fetcher = ResourceFetcher::create(ResourceFetcherTestMockFetchContext::create());
     FetchRequest fetchRequest = FetchRequest(url, FetchInitiatorInfo());
-    RefPtrWillBeRawPtr<Resource> resource = fetcher->requestResource(fetchRequest, TestResourceFactory(Resource::Raw));
+    RawPtr<Resource> resource = fetcher->requestResource(fetchRequest, TestResourceFactory(Resource::Raw));
     ServeRequestsOnCompleteClient client;
     resource->addClient(&client);
     resource->loader()->cancel();
diff --git a/third_party/WebKit/Source/core/fetch/ResourceLoader.cpp b/third_party/WebKit/Source/core/fetch/ResourceLoader.cpp
index e1c79423..38bba96 100644
--- a/third_party/WebKit/Source/core/fetch/ResourceLoader.cpp
+++ b/third_party/WebKit/Source/core/fetch/ResourceLoader.cpp
@@ -328,7 +328,7 @@
     m_state = ConnectionStateFinishedLoading;
     WTF_LOG(ResourceLoading, "Received '%s'.", m_resource->url().getString().latin1().data());
 
-    RefPtrWillBeRawPtr<Resource> protectResource(m_resource.get());
+    RawPtr<Resource> protectResource(m_resource.get());
     m_resource->setLoadFinishTime(finishTime);
     didFinishLoadingOnePart(finishTime, encodedDataLength);
     if (m_state == ConnectionStateReleased)
@@ -349,7 +349,7 @@
     m_state = ConnectionStateFailed;
     WTF_LOG(ResourceLoading, "Failed to load '%s'.\n", m_resource->url().getString().latin1().data());
 
-    RefPtrWillBeRawPtr<Resource> protectResource(m_resource.get());
+    RawPtr<Resource> protectResource(m_resource.get());
     m_resource->setResourceError(error);
 
     if (!m_notifiedLoadComplete) {
@@ -381,7 +381,7 @@
         return;
     }
 
-    RefPtrWillBeRawPtr<Resource> protectResource(m_resource.get());
+    RawPtr<Resource> protectResource(m_resource.get());
     WrappedResourceRequest requestIn(request);
     WebURLResponse responseOut;
     responseOut.initialize();
diff --git a/third_party/WebKit/Source/core/fetch/ResourceLoader.h b/third_party/WebKit/Source/core/fetch/ResourceLoader.h
index 53fb31c..34538272 100644
--- a/third_party/WebKit/Source/core/fetch/ResourceLoader.h
+++ b/third_party/WebKit/Source/core/fetch/ResourceLoader.h
@@ -106,7 +106,7 @@
     };
     bool isFinishing() { return m_state >= ConnectionStateFinishedLoading && m_state <= ConnectionStateFailed; }
 
-    RefPtrWillBeMember<Resource> m_resource;
+    Member<Resource> m_resource;
 
     // Used for sanity checking to make sure we don't experience illegal state
     // transitions.
diff --git a/third_party/WebKit/Source/core/fetch/ResourceOwner.h b/third_party/WebKit/Source/core/fetch/ResourceOwner.h
index 2fb6fe5..1b16c88 100644
--- a/third_party/WebKit/Source/core/fetch/ResourceOwner.h
+++ b/third_party/WebKit/Source/core/fetch/ResourceOwner.h
@@ -36,8 +36,8 @@
 namespace blink {
 
 template<class R, class C = typename R::ClientType>
-class ResourceOwner : public WillBeGarbageCollectedMixin, public C {
-    WILL_BE_USING_PRE_FINALIZER(ResourceOwner, clearResource);
+class ResourceOwner : public GarbageCollectedMixin, public C {
+    USING_PRE_FINALIZER(ResourceOwner, clearResource);
 public:
     using ResourceType = R;
 
@@ -49,11 +49,11 @@
 protected:
     ResourceOwner();
 
-    void setResource(const PassRefPtrWillBeRawPtr<ResourceType>&);
+    void setResource(const RawPtr<ResourceType>&);
     void clearResource() { setResource(nullptr); }
 
 private:
-    RefPtrWillBeMember<ResourceType> m_resource;
+    Member<ResourceType> m_resource;
 };
 
 template<class R, class C>
@@ -73,14 +73,14 @@
 }
 
 template<class R, class C>
-inline void ResourceOwner<R, C>::setResource(const PassRefPtrWillBeRawPtr<R>& newResource)
+inline void ResourceOwner<R, C>::setResource(const RawPtr<R>& newResource)
 {
     if (newResource == m_resource)
         return;
 
     // Some ResourceClient implementations reenter this so
     // we need to prevent double removal.
-    if (RefPtrWillBeRawPtr<ResourceType> oldResource = m_resource.release())
+    if (RawPtr<ResourceType> oldResource = m_resource.release())
         oldResource->removeClient(this);
 
     if (newResource) {
diff --git a/third_party/WebKit/Source/core/fetch/ResourceTest.cpp b/third_party/WebKit/Source/core/fetch/ResourceTest.cpp
index b25bb3a..d007b46 100644
--- a/third_party/WebKit/Source/core/fetch/ResourceTest.cpp
+++ b/third_party/WebKit/Source/core/fetch/ResourceTest.cpp
@@ -20,9 +20,9 @@
 
 class UnlockableResource : public Resource {
 public:
-    static RefPtrWillBeRawPtr<UnlockableResource> create(const KURL& url)
+    static RawPtr<UnlockableResource> create(const KURL& url)
     {
-        return adoptRefWillBeNoop(new UnlockableResource(ResourceRequest(url), Resource::Raw));
+        return new UnlockableResource(ResourceRequest(url), Resource::Raw);
     }
 
 private:
@@ -65,7 +65,7 @@
 void createTestResourceAndSetCachedMetadata(const ResourceResponse& response)
 {
     const char testData[] = "test data";
-    RefPtrWillBeRawPtr<Resource> resource = Resource::create(ResourceRequest(response.url()), Resource::Raw);
+    RawPtr<Resource> resource = Resource::create(ResourceRequest(response.url()), Resource::Raw);
     resource->setResponse(response);
     resource->cacheHandler()->setCachedMetadata(100, testData, sizeof(testData), CachedMetadataHandler::SendToPlatform);
     return;
@@ -93,7 +93,7 @@
 TEST(ResourceTest, LockFailureNoCrash)
 {
     ResourceResponse response(createTestResourceResponse());
-    RefPtrWillBeRawPtr<UnlockableResource> resource = UnlockableResource::create(response.url());
+    RawPtr<UnlockableResource> resource = UnlockableResource::create(response.url());
     memoryCache()->add(resource.get());
     resource->setResponse(response);
 
diff --git a/third_party/WebKit/Source/core/fetch/ScriptResource.cpp b/third_party/WebKit/Source/core/fetch/ScriptResource.cpp
index 937a9d5c..b2100cc 100644
--- a/third_party/WebKit/Source/core/fetch/ScriptResource.cpp
+++ b/third_party/WebKit/Source/core/fetch/ScriptResource.cpp
@@ -36,11 +36,11 @@
 
 namespace blink {
 
-PassRefPtrWillBeRawPtr<ScriptResource> ScriptResource::fetch(FetchRequest& request, ResourceFetcher* fetcher)
+RawPtr<ScriptResource> ScriptResource::fetch(FetchRequest& request, ResourceFetcher* fetcher)
 {
     ASSERT(request.resourceRequest().frameType() == WebURLRequest::FrameTypeNone);
     request.mutableResourceRequest().setRequestContext(WebURLRequest::RequestContextScript);
-    RefPtrWillBeRawPtr<ScriptResource> resource = toScriptResource(fetcher->requestResource(request, ScriptResourceFactory()));
+    RawPtr<ScriptResource> resource = toScriptResource(fetcher->requestResource(request, ScriptResourceFactory()));
     if (resource && !request.integrityMetadata().isEmpty())
         resource->setIntegrityMetadata(request.integrityMetadata());
     return resource.release();
diff --git a/third_party/WebKit/Source/core/fetch/ScriptResource.h b/third_party/WebKit/Source/core/fetch/ScriptResource.h
index c3c5c3c..b431352 100644
--- a/third_party/WebKit/Source/core/fetch/ScriptResource.h
+++ b/third_party/WebKit/Source/core/fetch/ScriptResource.h
@@ -55,12 +55,12 @@
 class CORE_EXPORT ScriptResource final : public TextResource {
 public:
     using ClientType = ScriptResourceClient;
-    static PassRefPtrWillBeRawPtr<ScriptResource> fetch(FetchRequest&, ResourceFetcher*);
+    static RawPtr<ScriptResource> fetch(FetchRequest&, ResourceFetcher*);
 
     // Public for testing
-    static PassRefPtrWillBeRawPtr<ScriptResource> create(const ResourceRequest& request, const String& charset)
+    static RawPtr<ScriptResource> create(const ResourceRequest& request, const String& charset)
     {
-        return adoptRefWillBeNoop(new ScriptResource(request, ResourceLoaderOptions(), charset));
+        return new ScriptResource(request, ResourceLoaderOptions(), charset);
     }
 
     ~ScriptResource() override;
@@ -89,9 +89,9 @@
         ScriptResourceFactory()
             : ResourceFactory(Resource::Script) { }
 
-        PassRefPtrWillBeRawPtr<Resource> create(const ResourceRequest& request, const ResourceLoaderOptions& options, const String& charset) const override
+        RawPtr<Resource> create(const ResourceRequest& request, const ResourceLoaderOptions& options, const String& charset) const override
         {
-            return adoptRefWillBeNoop(new ScriptResource(request, options, charset));
+            return new ScriptResource(request, options, charset);
         }
     };
 
diff --git a/third_party/WebKit/Source/core/fetch/XSLStyleSheetResource.cpp b/third_party/WebKit/Source/core/fetch/XSLStyleSheetResource.cpp
index bc34167b..11eb8e2 100644
--- a/third_party/WebKit/Source/core/fetch/XSLStyleSheetResource.cpp
+++ b/third_party/WebKit/Source/core/fetch/XSLStyleSheetResource.cpp
@@ -35,20 +35,20 @@
 
 namespace blink {
 
-PassRefPtrWillBeRawPtr<XSLStyleSheetResource> XSLStyleSheetResource::fetchSynchronously(FetchRequest& request, ResourceFetcher* fetcher)
+RawPtr<XSLStyleSheetResource> XSLStyleSheetResource::fetchSynchronously(FetchRequest& request, ResourceFetcher* fetcher)
 {
     request.mutableResourceRequest().setTimeoutInterval(10);
     request.mutableResourceRequest().setRequestContext(WebURLRequest::RequestContextXSLT);
     ResourceLoaderOptions options(request.options());
     options.synchronousPolicy = RequestSynchronously;
     request.setOptions(options);
-    RefPtrWillBeRawPtr<XSLStyleSheetResource> resource = toXSLStyleSheetResource(fetcher->requestResource(request, XSLStyleSheetResourceFactory()));
+    RawPtr<XSLStyleSheetResource> resource = toXSLStyleSheetResource(fetcher->requestResource(request, XSLStyleSheetResourceFactory()));
     if (resource && resource->m_data)
         resource->m_sheet = resource->decodedText();
     return resource;
 }
 
-PassRefPtrWillBeRawPtr<XSLStyleSheetResource> XSLStyleSheetResource::fetch(FetchRequest& request, ResourceFetcher* fetcher)
+RawPtr<XSLStyleSheetResource> XSLStyleSheetResource::fetch(FetchRequest& request, ResourceFetcher* fetcher)
 {
     ASSERT(RuntimeEnabledFeatures::xsltEnabled());
     request.mutableResourceRequest().setRequestContext(WebURLRequest::RequestContextXSLT);
diff --git a/third_party/WebKit/Source/core/fetch/XSLStyleSheetResource.h b/third_party/WebKit/Source/core/fetch/XSLStyleSheetResource.h
index 744abd2..9abd312 100644
--- a/third_party/WebKit/Source/core/fetch/XSLStyleSheetResource.h
+++ b/third_party/WebKit/Source/core/fetch/XSLStyleSheetResource.h
@@ -35,8 +35,8 @@
 
 class XSLStyleSheetResource final : public StyleSheetResource {
 public:
-    static PassRefPtrWillBeRawPtr<XSLStyleSheetResource> fetchSynchronously(FetchRequest&, ResourceFetcher*);
-    static PassRefPtrWillBeRawPtr<XSLStyleSheetResource> fetch(FetchRequest&, ResourceFetcher*);
+    static RawPtr<XSLStyleSheetResource> fetchSynchronously(FetchRequest&, ResourceFetcher*);
+    static RawPtr<XSLStyleSheetResource> fetch(FetchRequest&, ResourceFetcher*);
 
     const String& sheet() const { return m_sheet; }
 
@@ -48,9 +48,9 @@
         XSLStyleSheetResourceFactory()
             : ResourceFactory(Resource::XSLStyleSheet) { }
 
-        PassRefPtrWillBeRawPtr<Resource> create(const ResourceRequest& request, const ResourceLoaderOptions& options, const String& charset) const override
+        RawPtr<Resource> create(const ResourceRequest& request, const ResourceLoaderOptions& options, const String& charset) const override
         {
-            return adoptRefWillBeNoop(new XSLStyleSheetResource(request, options, charset));
+            return new XSLStyleSheetResource(request, options, charset);
         }
     };
     XSLStyleSheetResource(const ResourceRequest&, const ResourceLoaderOptions&, const String& charset);
diff --git a/third_party/WebKit/Source/core/frame/BarProp.h b/third_party/WebKit/Source/core/frame/BarProp.h
index 221fa10..13152c6 100644
--- a/third_party/WebKit/Source/core/frame/BarProp.h
+++ b/third_party/WebKit/Source/core/frame/BarProp.h
@@ -39,15 +39,15 @@
 
 class LocalFrame;
 
-class BarProp final : public RefCountedWillBeGarbageCollected<BarProp>, public ScriptWrappable, public DOMWindowProperty {
+class BarProp final : public GarbageCollected<BarProp>, public ScriptWrappable, public DOMWindowProperty {
     DEFINE_WRAPPERTYPEINFO();
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(BarProp);
+    USING_GARBAGE_COLLECTED_MIXIN(BarProp);
 public:
     enum Type { Locationbar, Menubar, Personalbar, Scrollbars, Statusbar, Toolbar };
 
-    static PassRefPtrWillBeRawPtr<BarProp> create(LocalFrame* frame, Type type)
+    static RawPtr<BarProp> create(LocalFrame* frame, Type type)
     {
-        return adoptRefWillBeNoop(new BarProp(frame, type));
+        return new BarProp(frame, type);
     }
 
     bool visible() const;
diff --git a/third_party/WebKit/Source/core/frame/Console.cpp b/third_party/WebKit/Source/core/frame/Console.cpp
index f6f139b8..56b1228 100644
--- a/third_party/WebKit/Source/core/frame/Console.cpp
+++ b/third_party/WebKit/Source/core/frame/Console.cpp
@@ -66,7 +66,7 @@
     return frame()->document();
 }
 
-void Console::reportMessageToConsole(PassRefPtrWillBeRawPtr<ConsoleMessage> consoleMessage)
+void Console::reportMessageToConsole(RawPtr<ConsoleMessage> consoleMessage)
 {
     if (!frame())
         return;
diff --git a/third_party/WebKit/Source/core/frame/Console.h b/third_party/WebKit/Source/core/frame/Console.h
index 17aadc9..e8f1bf0 100644
--- a/third_party/WebKit/Source/core/frame/Console.h
+++ b/third_party/WebKit/Source/core/frame/Console.h
@@ -55,7 +55,7 @@
 
 protected:
     ExecutionContext* context() override;
-    void reportMessageToConsole(PassRefPtrWillBeRawPtr<ConsoleMessage>) override;
+    void reportMessageToConsole(RawPtr<ConsoleMessage>) override;
 
 private:
     explicit Console(LocalFrame*);
diff --git a/third_party/WebKit/Source/core/frame/ConsoleBase.cpp b/third_party/WebKit/Source/core/frame/ConsoleBase.cpp
index 72372acb..d41e61f 100644
--- a/third_party/WebKit/Source/core/frame/ConsoleBase.cpp
+++ b/third_party/WebKit/Source/core/frame/ConsoleBase.cpp
@@ -43,57 +43,57 @@
 {
 }
 
-void ConsoleBase::debug(ScriptState* scriptState, PassRefPtrWillBeRawPtr<ScriptArguments> arguments)
+void ConsoleBase::debug(ScriptState* scriptState, RawPtr<ScriptArguments> arguments)
 {
     internalAddMessage(LogMessageType, DebugMessageLevel, scriptState, arguments);
 }
 
-void ConsoleBase::error(ScriptState* scriptState, PassRefPtrWillBeRawPtr<ScriptArguments> arguments)
+void ConsoleBase::error(ScriptState* scriptState, RawPtr<ScriptArguments> arguments)
 {
     internalAddMessage(LogMessageType, ErrorMessageLevel, scriptState, arguments, false);
 }
 
-void ConsoleBase::info(ScriptState* scriptState, PassRefPtrWillBeRawPtr<ScriptArguments> arguments)
+void ConsoleBase::info(ScriptState* scriptState, RawPtr<ScriptArguments> arguments)
 {
     internalAddMessage(LogMessageType, InfoMessageLevel, scriptState, arguments);
 }
 
-void ConsoleBase::log(ScriptState* scriptState, PassRefPtrWillBeRawPtr<ScriptArguments> arguments)
+void ConsoleBase::log(ScriptState* scriptState, RawPtr<ScriptArguments> arguments)
 {
     internalAddMessage(LogMessageType, LogMessageLevel, scriptState, arguments);
 }
 
-void ConsoleBase::warn(ScriptState* scriptState, PassRefPtrWillBeRawPtr<ScriptArguments> arguments)
+void ConsoleBase::warn(ScriptState* scriptState, RawPtr<ScriptArguments> arguments)
 {
     internalAddMessage(LogMessageType, WarningMessageLevel, scriptState, arguments);
 }
 
-void ConsoleBase::dir(ScriptState* scriptState, PassRefPtrWillBeRawPtr<ScriptArguments> arguments)
+void ConsoleBase::dir(ScriptState* scriptState, RawPtr<ScriptArguments> arguments)
 {
     internalAddMessage(DirMessageType, LogMessageLevel, scriptState, arguments);
 }
 
-void ConsoleBase::dirxml(ScriptState* scriptState, PassRefPtrWillBeRawPtr<ScriptArguments> arguments)
+void ConsoleBase::dirxml(ScriptState* scriptState, RawPtr<ScriptArguments> arguments)
 {
     internalAddMessage(DirXMLMessageType, LogMessageLevel, scriptState, arguments);
 }
 
-void ConsoleBase::table(ScriptState* scriptState, PassRefPtrWillBeRawPtr<ScriptArguments> arguments)
+void ConsoleBase::table(ScriptState* scriptState, RawPtr<ScriptArguments> arguments)
 {
     internalAddMessage(TableMessageType, LogMessageLevel, scriptState, arguments);
 }
 
-void ConsoleBase::clear(ScriptState* scriptState, PassRefPtrWillBeRawPtr<ScriptArguments> arguments)
+void ConsoleBase::clear(ScriptState* scriptState, RawPtr<ScriptArguments> arguments)
 {
     internalAddMessage(ClearMessageType, LogMessageLevel, scriptState, arguments, true);
 }
 
-void ConsoleBase::trace(ScriptState* scriptState, PassRefPtrWillBeRawPtr<ScriptArguments> arguments)
+void ConsoleBase::trace(ScriptState* scriptState, RawPtr<ScriptArguments> arguments)
 {
     internalAddMessage(TraceMessageType, LogMessageLevel, scriptState, arguments, true);
 }
 
-void ConsoleBase::assertCondition(ScriptState* scriptState, PassRefPtrWillBeRawPtr<ScriptArguments> arguments, bool condition)
+void ConsoleBase::assertCondition(ScriptState* scriptState, RawPtr<ScriptArguments> arguments, bool condition)
 {
     if (condition)
         return;
@@ -101,7 +101,7 @@
     internalAddMessage(AssertMessageType, ErrorMessageLevel, scriptState, arguments, true);
 }
 
-void ConsoleBase::count(ScriptState* scriptState, PassRefPtrWillBeRawPtr<ScriptArguments> arguments)
+void ConsoleBase::count(ScriptState* scriptState, RawPtr<ScriptArguments> arguments)
 {
     RefPtr<ScriptCallStack> callStack(ScriptCallStack::capture(1));
     // Follow Firebug's behavior of counting with null and undefined title in
@@ -114,7 +114,7 @@
     HashCountedSet<String>::AddResult result = m_counts.add(identifier);
     String message = title + ": " + String::number(result.storedValue->value);
 
-    RefPtrWillBeRawPtr<ConsoleMessage> consoleMessage = ConsoleMessage::create(ConsoleAPIMessageSource, DebugMessageLevel, message);
+    RawPtr<ConsoleMessage> consoleMessage = ConsoleMessage::create(ConsoleAPIMessageSource, DebugMessageLevel, message);
     consoleMessage->setType(CountMessageType);
     consoleMessage->setScriptState(scriptState);
     consoleMessage->setCallStack(callStack.release());
@@ -165,7 +165,7 @@
     double elapsed = monotonicallyIncreasingTime() - startTime;
     String message = title + String::format(": %.3fms", elapsed * 1000);
 
-    RefPtrWillBeRawPtr<ConsoleMessage> consoleMessage = ConsoleMessage::create(ConsoleAPIMessageSource, DebugMessageLevel, message);
+    RawPtr<ConsoleMessage> consoleMessage = ConsoleMessage::create(ConsoleAPIMessageSource, DebugMessageLevel, message);
     consoleMessage->setType(TimeEndMessageType);
     consoleMessage->setScriptState(scriptState);
     consoleMessage->setCallStack(ScriptCallStack::capture(1));
@@ -192,12 +192,12 @@
     TRACE_EVENT_COPY_ASYNC_END0("blink.console", formatTimelineTitle(title).utf8().data(), this);
 }
 
-void ConsoleBase::group(ScriptState* scriptState, PassRefPtrWillBeRawPtr<ScriptArguments> arguments)
+void ConsoleBase::group(ScriptState* scriptState, RawPtr<ScriptArguments> arguments)
 {
     internalAddMessage(StartGroupMessageType, LogMessageLevel, scriptState, arguments, true);
 }
 
-void ConsoleBase::groupCollapsed(ScriptState* scriptState, PassRefPtrWillBeRawPtr<ScriptArguments> arguments)
+void ConsoleBase::groupCollapsed(ScriptState* scriptState, RawPtr<ScriptArguments> arguments)
 {
     internalAddMessage(StartGroupCollapsedMessageType, LogMessageLevel, scriptState, arguments, true);
 }
@@ -207,9 +207,9 @@
     internalAddMessage(EndGroupMessageType, LogMessageLevel, nullptr, nullptr, true);
 }
 
-void ConsoleBase::internalAddMessage(MessageType type, MessageLevel level, ScriptState* scriptState, PassRefPtrWillBeRawPtr<ScriptArguments> scriptArguments, bool acceptNoArguments)
+void ConsoleBase::internalAddMessage(MessageType type, MessageLevel level, ScriptState* scriptState, RawPtr<ScriptArguments> scriptArguments, bool acceptNoArguments)
 {
-    RefPtrWillBeRawPtr<ScriptArguments> arguments = scriptArguments;
+    RawPtr<ScriptArguments> arguments = scriptArguments;
     if (!acceptNoArguments && (!arguments || !arguments->argumentCount()))
         return;
 
@@ -219,7 +219,7 @@
     if (arguments)
         arguments->getFirstArgumentAsString(message);
 
-    RefPtrWillBeRawPtr<ConsoleMessage> consoleMessage = ConsoleMessage::create(ConsoleAPIMessageSource, level, message);
+    RawPtr<ConsoleMessage> consoleMessage = ConsoleMessage::create(ConsoleAPIMessageSource, level, message);
     consoleMessage->setType(type);
     consoleMessage->setScriptState(scriptState);
     consoleMessage->setScriptArguments(arguments);
diff --git a/third_party/WebKit/Source/core/frame/ConsoleBase.h b/third_party/WebKit/Source/core/frame/ConsoleBase.h
index 3d0e0205..6ea355d 100644
--- a/third_party/WebKit/Source/core/frame/ConsoleBase.h
+++ b/third_party/WebKit/Source/core/frame/ConsoleBase.h
@@ -47,18 +47,18 @@
 class CORE_EXPORT ConsoleBase : public GarbageCollectedFinalized<ConsoleBase>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    void debug(ScriptState*, PassRefPtrWillBeRawPtr<ScriptArguments>);
-    void error(ScriptState*, PassRefPtrWillBeRawPtr<ScriptArguments>);
-    void info(ScriptState*, PassRefPtrWillBeRawPtr<ScriptArguments>);
-    void log(ScriptState*, PassRefPtrWillBeRawPtr<ScriptArguments>);
-    void clear(ScriptState*, PassRefPtrWillBeRawPtr<ScriptArguments>);
-    void warn(ScriptState*, PassRefPtrWillBeRawPtr<ScriptArguments>);
-    void dir(ScriptState*, PassRefPtrWillBeRawPtr<ScriptArguments>);
-    void dirxml(ScriptState*, PassRefPtrWillBeRawPtr<ScriptArguments>);
-    void table(ScriptState*, PassRefPtrWillBeRawPtr<ScriptArguments>);
-    void trace(ScriptState*, PassRefPtrWillBeRawPtr<ScriptArguments>);
-    void assertCondition(ScriptState*, PassRefPtrWillBeRawPtr<ScriptArguments>, bool condition);
-    void count(ScriptState*, PassRefPtrWillBeRawPtr<ScriptArguments>);
+    void debug(ScriptState*, RawPtr<ScriptArguments>);
+    void error(ScriptState*, RawPtr<ScriptArguments>);
+    void info(ScriptState*, RawPtr<ScriptArguments>);
+    void log(ScriptState*, RawPtr<ScriptArguments>);
+    void clear(ScriptState*, RawPtr<ScriptArguments>);
+    void warn(ScriptState*, RawPtr<ScriptArguments>);
+    void dir(ScriptState*, RawPtr<ScriptArguments>);
+    void dirxml(ScriptState*, RawPtr<ScriptArguments>);
+    void table(ScriptState*, RawPtr<ScriptArguments>);
+    void trace(ScriptState*, RawPtr<ScriptArguments>);
+    void assertCondition(ScriptState*, RawPtr<ScriptArguments>, bool condition);
+    void count(ScriptState*, RawPtr<ScriptArguments>);
     void markTimeline(const String&);
     void profile(const String&);
     void profileEnd(const String&);
@@ -67,8 +67,8 @@
     void timeStamp(const String&);
     void timeline(ScriptState*, const String&);
     void timelineEnd(ScriptState*, const String&);
-    void group(ScriptState*, PassRefPtrWillBeRawPtr<ScriptArguments>);
-    void groupCollapsed(ScriptState*, PassRefPtrWillBeRawPtr<ScriptArguments>);
+    void group(ScriptState*, RawPtr<ScriptArguments>);
+    void groupCollapsed(ScriptState*, RawPtr<ScriptArguments>);
     void groupEnd();
 
     DEFINE_INLINE_VIRTUAL_TRACE() { }
@@ -77,10 +77,10 @@
 
 protected:
     virtual ExecutionContext* context() = 0;
-    virtual void reportMessageToConsole(PassRefPtrWillBeRawPtr<ConsoleMessage>) = 0;
+    virtual void reportMessageToConsole(RawPtr<ConsoleMessage>) = 0;
 
 private:
-    void internalAddMessage(MessageType, MessageLevel, ScriptState*, PassRefPtrWillBeRawPtr<ScriptArguments>, bool acceptNoArguments = false);
+    void internalAddMessage(MessageType, MessageLevel, ScriptState*, RawPtr<ScriptArguments>, bool acceptNoArguments = false);
 
     HashCountedSet<String> m_counts;
     HashMap<String, double> m_times;
diff --git a/third_party/WebKit/Source/core/frame/DOMTimer.cpp b/third_party/WebKit/Source/core/frame/DOMTimer.cpp
index 513d725..2b82589 100644
--- a/third_party/WebKit/Source/core/frame/DOMTimer.cpp
+++ b/third_party/WebKit/Source/core/frame/DOMTimer.cpp
@@ -51,7 +51,7 @@
         && nestingLevel == 1; // Gestures should not be forwarded to nested timers.
 }
 
-int DOMTimer::install(ExecutionContext* context, PassOwnPtrWillBeRawPtr<ScheduledAction> action, int timeout, bool singleShot)
+int DOMTimer::install(ExecutionContext* context, RawPtr<ScheduledAction> action, int timeout, bool singleShot)
 {
     int timeoutID = context->timers()->installNewTimeout(context, action, timeout, singleShot);
     TRACE_EVENT_INSTANT1("devtools.timeline", "TimerInstall", TRACE_EVENT_SCOPE_THREAD, "data", InspectorTimerInstallEvent::data(context, timeoutID, timeout, singleShot));
@@ -66,7 +66,7 @@
     InspectorInstrumentation::didRemoveTimer(context, timeoutID);
 }
 
-DOMTimer::DOMTimer(ExecutionContext* context, PassOwnPtrWillBeRawPtr<ScheduledAction> action, int interval, bool singleShot, int timeoutID)
+DOMTimer::DOMTimer(ExecutionContext* context, RawPtr<ScheduledAction> action, int interval, bool singleShot, int timeoutID)
     : SuspendableTimer(context)
     , m_timeoutID(timeoutID)
     , m_nestingLevel(context->timers()->timerNestingLevel() + 1)
@@ -124,11 +124,11 @@
         return;
     }
 
-    RefPtrWillBeRawPtr<DOMTimer> protect(this);
+    RawPtr<DOMTimer> protect(this);
 
     // Unregister the timer from ExecutionContext before executing the action
     // for one-shot timers.
-    OwnPtrWillBeRawPtr<ScheduledAction> action = m_action.release();
+    RawPtr<ScheduledAction> action = m_action.release();
     context->timers()->removeTimeoutByID(m_timeoutID);
 
     action->execute(context);
diff --git a/third_party/WebKit/Source/core/frame/DOMTimer.h b/third_party/WebKit/Source/core/frame/DOMTimer.h
index 2ae8eb4c..a38d65f 100644
--- a/third_party/WebKit/Source/core/frame/DOMTimer.h
+++ b/third_party/WebKit/Source/core/frame/DOMTimer.h
@@ -40,11 +40,11 @@
 
 class ExecutionContext;
 
-class CORE_EXPORT DOMTimer final : public RefCountedWillBeGarbageCollectedFinalized<DOMTimer>, public SuspendableTimer {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(DOMTimer);
+class CORE_EXPORT DOMTimer final : public GarbageCollectedFinalized<DOMTimer>, public SuspendableTimer {
+    USING_GARBAGE_COLLECTED_MIXIN(DOMTimer);
 public:
     // Creates a new timer owned by the ExecutionContext, starts it and returns its ID.
-    static int install(ExecutionContext*, PassOwnPtrWillBeRawPtr<ScheduledAction>, int timeout, bool singleShot);
+    static int install(ExecutionContext*, RawPtr<ScheduledAction>, int timeout, bool singleShot);
     static void removeByID(ExecutionContext*, int timeoutID);
 
     ~DOMTimer() override;
@@ -64,19 +64,19 @@
 private:
     friend class DOMTimerCoordinator; // For create().
 
-    static PassRefPtrWillBeRawPtr<DOMTimer> create(ExecutionContext* context, PassOwnPtrWillBeRawPtr<ScheduledAction> action, int timeout, bool singleShot, int timeoutID)
+    static RawPtr<DOMTimer> create(ExecutionContext* context, RawPtr<ScheduledAction> action, int timeout, bool singleShot, int timeoutID)
     {
-        return adoptRefWillBeNoop(new DOMTimer(context, action, timeout, singleShot, timeoutID));
+        return new DOMTimer(context, action, timeout, singleShot, timeoutID);
     }
 
-    DOMTimer(ExecutionContext*, PassOwnPtrWillBeRawPtr<ScheduledAction>, int interval, bool singleShot, int timeoutID);
+    DOMTimer(ExecutionContext*, RawPtr<ScheduledAction>, int interval, bool singleShot, int timeoutID);
     void fired() override;
 
     WebTaskRunner* timerTaskRunner() const override;
 
     int m_timeoutID;
     int m_nestingLevel;
-    OwnPtrWillBeMember<ScheduledAction> m_action;
+    Member<ScheduledAction> m_action;
     RefPtr<UserGestureToken> m_userGestureToken;
 };
 
diff --git a/third_party/WebKit/Source/core/frame/DOMTimerCoordinator.cpp b/third_party/WebKit/Source/core/frame/DOMTimerCoordinator.cpp
index f8c8cb32..dd916ce4 100644
--- a/third_party/WebKit/Source/core/frame/DOMTimerCoordinator.cpp
+++ b/third_party/WebKit/Source/core/frame/DOMTimerCoordinator.cpp
@@ -17,7 +17,7 @@
 {
 }
 
-int DOMTimerCoordinator::installNewTimeout(ExecutionContext* context, PassOwnPtrWillBeRawPtr<ScheduledAction> action, int timeout, bool singleShot)
+int DOMTimerCoordinator::installNewTimeout(ExecutionContext* context, RawPtr<ScheduledAction> action, int timeout, bool singleShot)
 {
     // FIXME: DOMTimers depends heavily on ExecutionContext. Decouple them.
     ASSERT(context->timers() == this);
diff --git a/third_party/WebKit/Source/core/frame/DOMTimerCoordinator.h b/third_party/WebKit/Source/core/frame/DOMTimerCoordinator.h
index 2c7f0cde4..ebe02147 100644
--- a/third_party/WebKit/Source/core/frame/DOMTimerCoordinator.h
+++ b/third_party/WebKit/Source/core/frame/DOMTimerCoordinator.h
@@ -28,7 +28,7 @@
     explicit DOMTimerCoordinator(PassOwnPtr<WebTaskRunner>);
 
     // Creates and installs a new timer. Returns the assigned ID.
-    int installNewTimeout(ExecutionContext*, PassOwnPtrWillBeRawPtr<ScheduledAction>, int timeout, bool singleShot);
+    int installNewTimeout(ExecutionContext*, RawPtr<ScheduledAction>, int timeout, bool singleShot);
 
     // Removes and disposes the timer with the specified ID, if any. This may
     // destroy the timer.
@@ -54,7 +54,7 @@
 private:
     int nextID();
 
-    using TimeoutMap = WillBeHeapHashMap<int, RefPtrWillBeMember<DOMTimer>>;
+    using TimeoutMap = HeapHashMap<int, Member<DOMTimer>>;
     TimeoutMap m_timers;
 
     int m_circularSequentialID;
diff --git a/third_party/WebKit/Source/core/frame/DOMWindow.cpp b/third_party/WebKit/Source/core/frame/DOMWindow.cpp
index e4c603b..c5781fad 100644
--- a/third_party/WebKit/Source/core/frame/DOMWindow.cpp
+++ b/third_party/WebKit/Source/core/frame/DOMWindow.cpp
@@ -214,7 +214,7 @@
     else if (MixedContentChecker::isMixedContent(frame()->securityContext()->getSecurityOrigin(), sourceDocument->url()))
         UseCounter::count(frame(), UseCounter::PostMessageFromInsecureToSecure);
 
-    RefPtrWillBeRawPtr<MessageEvent> event = MessageEvent::create(channels.release(), message, sourceOrigin, String(), source, sourceSuborigin);
+    RawPtr<MessageEvent> event = MessageEvent::create(channels.release(), message, sourceOrigin, String(), source, sourceSuborigin);
     // Give the embedder a chance to intercept this postMessage.  If the
     // target is a remote frame, the message will be forwarded through the
     // browser process.
diff --git a/third_party/WebKit/Source/core/frame/DOMWindow.h b/third_party/WebKit/Source/core/frame/DOMWindow.h
index e587927d..7f66a804 100644
--- a/third_party/WebKit/Source/core/frame/DOMWindow.h
+++ b/third_party/WebKit/Source/core/frame/DOMWindow.h
@@ -41,13 +41,13 @@
 
 typedef HeapVector<Member<MessagePort>, 1> MessagePortArray;
 
-class CORE_EXPORT DOMWindow : public EventTargetWithInlineData, public RefCountedWillBeNoBase<DOMWindow>, public DOMWindowBase64 {
+class CORE_EXPORT DOMWindow : public EventTargetWithInlineData, public DOMWindowBase64 {
     DEFINE_WRAPPERTYPEINFO();
     REFCOUNTED_EVENT_TARGET(DOMWindow);
 public:
     ~DOMWindow() override;
 
-    // RefCountedWillBeGarbageCollectedFinalized overrides:
+    // GarbageCollectedFinalized overrides:
     DECLARE_VIRTUAL_TRACE();
 
     virtual bool isLocalDOMWindow() const { return false; }
@@ -157,13 +157,13 @@
     virtual void resizeBy(int x, int y) const = 0;
     virtual void resizeTo(int width, int height) const = 0;
 
-    virtual PassRefPtrWillBeRawPtr<MediaQueryList> matchMedia(const String&) = 0;
+    virtual RawPtr<MediaQueryList> matchMedia(const String&) = 0;
 
     // DOM Level 2 Style Interface
-    virtual PassRefPtrWillBeRawPtr<CSSStyleDeclaration> getComputedStyle(Element*, const String& pseudoElt) const = 0;
+    virtual RawPtr<CSSStyleDeclaration> getComputedStyle(Element*, const String& pseudoElt) const = 0;
 
     // WebKit extensions
-    virtual PassRefPtrWillBeRawPtr<CSSRuleList> getMatchedCSSRules(Element*, const String& pseudoElt) const = 0;
+    virtual RawPtr<CSSRuleList> getMatchedCSSRules(Element*, const String& pseudoElt) const = 0;
 
     // WebKit animation extensions
     virtual int requestAnimationFrame(FrameRequestCallback*) = 0;
@@ -224,7 +224,7 @@
     bool m_windowIsClosing;
 
 private:
-    mutable RefPtrWillBeMember<Location> m_location;
+    mutable Member<Location> m_location;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/frame/DOMWindowProperty.h b/third_party/WebKit/Source/core/frame/DOMWindowProperty.h
index 327c4694..8da6260 100644
--- a/third_party/WebKit/Source/core/frame/DOMWindowProperty.h
+++ b/third_party/WebKit/Source/core/frame/DOMWindowProperty.h
@@ -34,7 +34,7 @@
 class LocalDOMWindow;
 class LocalFrame;
 
-class CORE_EXPORT DOMWindowProperty : public WillBeGarbageCollectedMixin {
+class CORE_EXPORT DOMWindowProperty : public GarbageCollectedMixin {
 public:
     explicit DOMWindowProperty(LocalFrame*);
 
@@ -43,7 +43,6 @@
 
     LocalFrame* frame() const { return m_frame; }
 
-    EAGERLY_FINALIZE_WILL_BE_REMOVED();
     DECLARE_VIRTUAL_TRACE();
 
 protected:
@@ -53,7 +52,7 @@
     virtual ~DOMWindowProperty();
 #endif
 
-    RawPtrWillBeMember<LocalFrame> m_frame;
+    Member<LocalFrame> m_frame;
 
 #if !ENABLE(OILPAN)
 private:
diff --git a/third_party/WebKit/Source/core/frame/DOMWindowTimers.cpp b/third_party/WebKit/Source/core/frame/DOMWindowTimers.cpp
index d2c6c6e..24e1ee3 100644
--- a/third_party/WebKit/Source/core/frame/DOMWindowTimers.cpp
+++ b/third_party/WebKit/Source/core/frame/DOMWindowTimers.cpp
@@ -75,7 +75,7 @@
         // be done using the scheduler instead.
         V8GCForContextDispose::instance().notifyIdle();
     }
-    OwnPtrWillBeRawPtr<ScheduledAction> action = ScheduledAction::create(scriptState, handler, arguments);
+    RawPtr<ScheduledAction> action = ScheduledAction::create(scriptState, handler, arguments);
     return DOMTimer::install(executionContext, action.release(), timeout, true);
 }
 
@@ -93,7 +93,7 @@
         // be done using the scheduler instead.
         V8GCForContextDispose::instance().notifyIdle();
     }
-    OwnPtrWillBeRawPtr<ScheduledAction> action = ScheduledAction::create(scriptState, handler);
+    RawPtr<ScheduledAction> action = ScheduledAction::create(scriptState, handler);
     return DOMTimer::install(executionContext, action.release(), timeout, true);
 }
 
@@ -102,7 +102,7 @@
     ExecutionContext* executionContext = eventTarget.getExecutionContext();
     if (!isAllowed(scriptState, executionContext, false))
         return 0;
-    OwnPtrWillBeRawPtr<ScheduledAction> action = ScheduledAction::create(scriptState, handler, arguments);
+    RawPtr<ScheduledAction> action = ScheduledAction::create(scriptState, handler, arguments);
     return DOMTimer::install(executionContext, action.release(), timeout, false);
 }
 
@@ -115,7 +115,7 @@
     // perfomance issue.
     if (handler.isEmpty())
         return 0;
-    OwnPtrWillBeRawPtr<ScheduledAction> action = ScheduledAction::create(scriptState, handler);
+    RawPtr<ScheduledAction> action = ScheduledAction::create(scriptState, handler);
     return DOMTimer::install(executionContext, action.release(), timeout, false);
 }
 
diff --git a/third_party/WebKit/Source/core/frame/DeviceSingleWindowEventController.cpp b/third_party/WebKit/Source/core/frame/DeviceSingleWindowEventController.cpp
index b9686e94..954cc88 100644
--- a/third_party/WebKit/Source/core/frame/DeviceSingleWindowEventController.cpp
+++ b/third_party/WebKit/Source/core/frame/DeviceSingleWindowEventController.cpp
@@ -28,12 +28,12 @@
     dispatchDeviceEvent(lastEvent());
 }
 
-void DeviceSingleWindowEventController::dispatchDeviceEvent(PassRefPtrWillBeRawPtr<Event> prpEvent)
+void DeviceSingleWindowEventController::dispatchDeviceEvent(RawPtr<Event> prpEvent)
 {
     if (!document().domWindow() || document().activeDOMObjectsAreSuspended() || document().activeDOMObjectsAreStopped())
         return;
 
-    RefPtrWillBeRawPtr<Event> event = prpEvent;
+    RawPtr<Event> event = prpEvent;
     document().domWindow()->dispatchEvent(event);
 
     if (m_needsCheckingNullEvents) {
diff --git a/third_party/WebKit/Source/core/frame/DeviceSingleWindowEventController.h b/third_party/WebKit/Source/core/frame/DeviceSingleWindowEventController.h
index 301a5d4..041c75d 100644
--- a/third_party/WebKit/Source/core/frame/DeviceSingleWindowEventController.h
+++ b/third_party/WebKit/Source/core/frame/DeviceSingleWindowEventController.h
@@ -15,8 +15,7 @@
 class Document;
 class Event;
 
-class CORE_EXPORT DeviceSingleWindowEventController : public NoBaseWillBeGarbageCollectedFinalized<DeviceSingleWindowEventController>, public PlatformEventController, public DOMWindowLifecycleObserver {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(DeviceSingleWindowEventController);
+class CORE_EXPORT DeviceSingleWindowEventController : public GarbageCollectedFinalized<DeviceSingleWindowEventController>, public PlatformEventController, public DOMWindowLifecycleObserver {
 public:
     virtual ~DeviceSingleWindowEventController();
 
@@ -34,15 +33,15 @@
 
     Document& document() const { return *m_document; }
 
-    void dispatchDeviceEvent(const PassRefPtrWillBeRawPtr<Event>);
+    void dispatchDeviceEvent(const RawPtr<Event>);
 
-    virtual PassRefPtrWillBeRawPtr<Event> lastEvent() const = 0;
+    virtual RawPtr<Event> lastEvent() const = 0;
     virtual const AtomicString& eventTypeName() const = 0;
     virtual bool isNullEvent(Event*) const = 0;
 
 private:
     bool m_needsCheckingNullEvents;
-    RawPtrWillBeMember<Document> m_document;
+    Member<Document> m_document;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/frame/EventHandlerRegistry.cpp b/third_party/WebKit/Source/core/frame/EventHandlerRegistry.cpp
index 1e8a73b8..5bf13bd2 100644
--- a/third_party/WebKit/Source/core/frame/EventHandlerRegistry.cpp
+++ b/third_party/WebKit/Source/core/frame/EventHandlerRegistry.cpp
@@ -248,7 +248,7 @@
 
 void EventHandlerRegistry::clearWeakMembers(Visitor* visitor)
 {
-    Vector<RawPtrWillBeUntracedMember<EventTarget>> deadTargets;
+    Vector<UntracedMember<EventTarget>> deadTargets;
     for (size_t i = 0; i < EventHandlerClassCount; ++i) {
         EventHandlerClass handlerClass = static_cast<EventHandlerClass>(i);
         const EventTargetSet* targets = &m_targets[handlerClass];
@@ -271,7 +271,7 @@
     // Remove all event targets under the detached document.
     for (size_t handlerClassIndex = 0; handlerClassIndex < EventHandlerClassCount; ++handlerClassIndex) {
         EventHandlerClass handlerClass = static_cast<EventHandlerClass>(handlerClassIndex);
-        Vector<RawPtrWillBeUntracedMember<EventTarget>> targetsToRemove;
+        Vector<UntracedMember<EventTarget>> targetsToRemove;
         const EventTargetSet* targets = &m_targets[handlerClass];
         for (const auto& eventTarget : *targets) {
             if (Node* node = eventTarget.key->toNode()) {
diff --git a/third_party/WebKit/Source/core/frame/EventHandlerRegistry.h b/third_party/WebKit/Source/core/frame/EventHandlerRegistry.h
index 38a8e95..4d1dd088 100644
--- a/third_party/WebKit/Source/core/frame/EventHandlerRegistry.h
+++ b/third_party/WebKit/Source/core/frame/EventHandlerRegistry.h
@@ -15,13 +15,12 @@
 class EventListenerOptions;
 class EventTarget;
 
-typedef HashCountedSet<RawPtrWillBeUntracedMember<EventTarget>> EventTargetSet;
+typedef HashCountedSet<UntracedMember<EventTarget>> EventTargetSet;
 
 // Registry for keeping track of event handlers. Note that only handlers on
 // documents that can be rendered or can receive input (i.e., are attached to a
 // FrameHost) are registered here.
-class CORE_EXPORT EventHandlerRegistry final : public NoBaseWillBeGarbageCollectedFinalized<EventHandlerRegistry> {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(EventHandlerRegistry);
+class CORE_EXPORT EventHandlerRegistry final : public GarbageCollectedFinalized<EventHandlerRegistry> {
 public:
     explicit EventHandlerRegistry(FrameHost&);
     virtual ~EventHandlerRegistry();
@@ -102,7 +101,7 @@
 
     void checkConsistency() const;
 
-    RawPtrWillBeMember<FrameHost> m_frameHost;
+    Member<FrameHost> m_frameHost;
     EventTargetSet m_targets[EventHandlerClassCount];
 };
 
diff --git a/third_party/WebKit/Source/core/frame/Frame.cpp b/third_party/WebKit/Source/core/frame/Frame.cpp
index f89aeca2..a7bda7e6 100644
--- a/third_party/WebKit/Source/core/frame/Frame.cpp
+++ b/third_party/WebKit/Source/core/frame/Frame.cpp
@@ -102,7 +102,7 @@
 
 void Frame::detachChildren()
 {
-    typedef WillBeHeapVector<RefPtrWillBeMember<Frame>> FrameVector;
+    typedef HeapVector<Member<Frame>> FrameVector;
     FrameVector childrenToDetach;
     childrenToDetach.reserveCapacity(tree().childCount());
     for (Frame* child = tree().firstChild(); child; child = child->tree().nextSibling())
@@ -154,7 +154,7 @@
 
 static ChromeClient& emptyChromeClient()
 {
-    DEFINE_STATIC_LOCAL(OwnPtrWillBePersistent<EmptyChromeClient>, client, (EmptyChromeClient::create()));
+    DEFINE_STATIC_LOCAL(Persistent<EmptyChromeClient>, client, (EmptyChromeClient::create()));
     return *client;
 }
 
diff --git a/third_party/WebKit/Source/core/frame/Frame.h b/third_party/WebKit/Source/core/frame/Frame.h
index 6b75165..d65708a1 100644
--- a/third_party/WebKit/Source/core/frame/Frame.h
+++ b/third_party/WebKit/Source/core/frame/Frame.h
@@ -63,7 +63,7 @@
 // Frame is the base class of LocalFrame and RemoteFrame and should only contain
 // functionality shared between both. In particular, any method related to
 // input, layout, or painting probably belongs on LocalFrame.
-class CORE_EXPORT Frame : public RefCountedWillBeGarbageCollectedFinalized<Frame> {
+class CORE_EXPORT Frame : public GarbageCollectedFinalized<Frame> {
 public:
     virtual ~Frame();
 
@@ -138,11 +138,11 @@
 
     mutable FrameTree m_treeNode;
 
-    RawPtrWillBeMember<FrameHost> m_host;
-    RawPtrWillBeMember<FrameOwner> m_owner;
+    Member<FrameHost> m_host;
+    Member<FrameOwner> m_owner;
 
 private:
-    RawPtrWillBeMember<FrameClient> m_client;
+    Member<FrameClient> m_client;
     // Needed to identify Frame Timing requests.
     int64_t m_frameID;
     bool m_isLoading;
diff --git a/third_party/WebKit/Source/core/frame/FrameClient.h b/third_party/WebKit/Source/core/frame/FrameClient.h
index 9f1fa98..31497e1 100644
--- a/third_party/WebKit/Source/core/frame/FrameClient.h
+++ b/third_party/WebKit/Source/core/frame/FrameClient.h
@@ -17,8 +17,7 @@
 class SecurityOrigin;
 enum class FrameDetachType;
 
-class CORE_EXPORT FrameClient : public NoBaseWillBeGarbageCollectedFinalized<FrameClient> {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(FrameClient);
+class CORE_EXPORT FrameClient : public GarbageCollectedFinalized<FrameClient> {
 public:
     virtual bool inShadowTree() const = 0;
 
diff --git a/third_party/WebKit/Source/core/frame/FrameConsole.cpp b/third_party/WebKit/Source/core/frame/FrameConsole.cpp
index aee8e46..cd96bf14 100644
--- a/third_party/WebKit/Source/core/frame/FrameConsole.cpp
+++ b/third_party/WebKit/Source/core/frame/FrameConsole.cpp
@@ -69,11 +69,9 @@
 {
 }
 
-DEFINE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(FrameConsole);
-
-void FrameConsole::addMessage(PassRefPtrWillBeRawPtr<ConsoleMessage> prpConsoleMessage)
+void FrameConsole::addMessage(RawPtr<ConsoleMessage> prpConsoleMessage)
 {
-    RefPtrWillBeRawPtr<ConsoleMessage> consoleMessage = prpConsoleMessage;
+    RawPtr<ConsoleMessage> consoleMessage = prpConsoleMessage;
     if (muteCount && consoleMessage->source() != ConsoleAPIMessageSource)
         return;
 
@@ -130,7 +128,7 @@
     if (response.wasFallbackRequiredByServiceWorker())
         return;
     String message = "Failed to load resource: the server responded with a status of " + String::number(response.httpStatusCode()) + " (" + response.httpStatusText() + ')';
-    RefPtrWillBeRawPtr<ConsoleMessage> consoleMessage = ConsoleMessage::create(NetworkMessageSource, ErrorMessageLevel, message, response.url().getString());
+    RawPtr<ConsoleMessage> consoleMessage = ConsoleMessage::create(NetworkMessageSource, ErrorMessageLevel, message, response.url().getString());
     consoleMessage->setRequestIdentifier(requestIdentifier);
     addMessage(consoleMessage.release());
 }
@@ -180,7 +178,7 @@
         message.appendLiteral(": ");
         message.append(error.localizedDescription());
     }
-    RefPtrWillBeRawPtr<ConsoleMessage> consoleMessage = ConsoleMessage::create(NetworkMessageSource, ErrorMessageLevel, message.toString(), error.failingURL());
+    RawPtr<ConsoleMessage> consoleMessage = ConsoleMessage::create(NetworkMessageSource, ErrorMessageLevel, message.toString(), error.failingURL());
     consoleMessage->setRequestIdentifier(requestIdentifier);
     storage->reportMessage(m_frame->document(), consoleMessage.release());
 }
diff --git a/third_party/WebKit/Source/core/frame/FrameConsole.h b/third_party/WebKit/Source/core/frame/FrameConsole.h
index 6b524e61..19e52b7e 100644
--- a/third_party/WebKit/Source/core/frame/FrameConsole.h
+++ b/third_party/WebKit/Source/core/frame/FrameConsole.h
@@ -48,16 +48,14 @@
 
 // FrameConsole takes per-frame console messages and routes them up through the FrameHost to the ChromeClient and Inspector.
 // It's meant as an abstraction around ChromeClient calls and the way that Blink core/ can add messages to the console.
-class CORE_EXPORT FrameConsole final : public NoBaseWillBeGarbageCollected<FrameConsole> {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(FrameConsole);
-    DECLARE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(FrameConsole);
+class CORE_EXPORT FrameConsole final : public GarbageCollected<FrameConsole> {
 public:
-    static PassOwnPtrWillBeRawPtr<FrameConsole> create(LocalFrame& frame)
+    static RawPtr<FrameConsole> create(LocalFrame& frame)
     {
-        return adoptPtrWillBeNoop(new FrameConsole(frame));
+        return new FrameConsole(frame);
     }
 
-    void addMessage(PassRefPtrWillBeRawPtr<ConsoleMessage>);
+    void addMessage(RawPtr<ConsoleMessage>);
     void adoptWorkerMessagesAfterTermination(WorkerInspectorProxy*);
 
     void reportResourceResponseReceived(DocumentLoader*, unsigned long requestIdentifier, const ResourceResponse&);
@@ -82,7 +80,7 @@
 
     ConsoleMessageStorage* messageStorage();
 
-    RawPtrWillBeMember<LocalFrame> m_frame;
+    Member<LocalFrame> m_frame;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/frame/FrameHost.cpp b/third_party/WebKit/Source/core/frame/FrameHost.cpp
index c51afee0..52ccca43 100644
--- a/third_party/WebKit/Source/core/frame/FrameHost.cpp
+++ b/third_party/WebKit/Source/core/frame/FrameHost.cpp
@@ -40,9 +40,9 @@
 
 namespace blink {
 
-PassOwnPtrWillBeRawPtr<FrameHost> FrameHost::create(Page& page)
+RawPtr<FrameHost> FrameHost::create(Page& page)
 {
-    return adoptPtrWillBeNoop(new FrameHost(page));
+    return new FrameHost(page);
 }
 
 FrameHost::FrameHost(Page& page)
@@ -50,7 +50,7 @@
     , m_topControls(TopControls::create(*this))
     , m_pageScaleConstraintsSet(PageScaleConstraintsSet::create())
     , m_visualViewport(VisualViewport::create(*this))
-    , m_eventHandlerRegistry(adoptPtrWillBeNoop(new EventHandlerRegistry(*this)))
+    , m_eventHandlerRegistry(new EventHandlerRegistry(*this))
     , m_consoleMessageStorage(ConsoleMessageStorage::create())
     , m_subframeCount(0)
 {
diff --git a/third_party/WebKit/Source/core/frame/FrameHost.h b/third_party/WebKit/Source/core/frame/FrameHost.h
index 1780acdb..838ec18 100644
--- a/third_party/WebKit/Source/core/frame/FrameHost.h
+++ b/third_party/WebKit/Source/core/frame/FrameHost.h
@@ -62,10 +62,10 @@
 // browser-level concept and Blink core/ only knows about its LocalFrame (and FrameHost).
 // Separating Page from the rest of core/ through this indirection
 // allows us to slowly refactor Page without breaking the rest of core.
-class CORE_EXPORT FrameHost final : public NoBaseWillBeGarbageCollectedFinalized<FrameHost> {
-    WTF_MAKE_NONCOPYABLE(FrameHost); USING_FAST_MALLOC_WILL_BE_REMOVED(FrameHost);
+class CORE_EXPORT FrameHost final : public GarbageCollectedFinalized<FrameHost> {
+    WTF_MAKE_NONCOPYABLE(FrameHost);
 public:
-    static PassOwnPtrWillBeRawPtr<FrameHost> create(Page&);
+    static RawPtr<FrameHost> create(Page&);
     ~FrameHost();
 
     // Careful: This function will eventually be removed.
@@ -107,12 +107,12 @@
 private:
     explicit FrameHost(Page&);
 
-    RawPtrWillBeMember<Page> m_page;
-    const OwnPtrWillBeMember<TopControls> m_topControls;
+    Member<Page> m_page;
+    const Member<TopControls> m_topControls;
     const OwnPtr<PageScaleConstraintsSet> m_pageScaleConstraintsSet;
-    const OwnPtrWillBeMember<VisualViewport> m_visualViewport;
-    const OwnPtrWillBeMember<EventHandlerRegistry> m_eventHandlerRegistry;
-    const OwnPtrWillBeMember<ConsoleMessageStorage> m_consoleMessageStorage;
+    const Member<VisualViewport> m_visualViewport;
+    const Member<EventHandlerRegistry> m_eventHandlerRegistry;
+    const Member<ConsoleMessageStorage> m_consoleMessageStorage;
 
     AtomicString m_overrideEncoding;
     int m_subframeCount;
diff --git a/third_party/WebKit/Source/core/frame/FrameOwner.h b/third_party/WebKit/Source/core/frame/FrameOwner.h
index c48bfbe..95fe6e0 100644
--- a/third_party/WebKit/Source/core/frame/FrameOwner.h
+++ b/third_party/WebKit/Source/core/frame/FrameOwner.h
@@ -17,7 +17,7 @@
 // Oilpan: all FrameOwner instances are GCed objects. FrameOwner additionally
 // derives from GarbageCollectedMixin so that Member<FrameOwner> references can
 // be kept (e.g., Frame::m_owner.)
-class CORE_EXPORT FrameOwner : public WillBeGarbageCollectedMixin {
+class CORE_EXPORT FrameOwner : public GarbageCollectedMixin {
 public:
     virtual ~FrameOwner() { }
     DEFINE_INLINE_VIRTUAL_TRACE() { }
@@ -40,10 +40,10 @@
     virtual int marginHeight() const = 0;
 };
 
-class CORE_EXPORT DummyFrameOwner : public NoBaseWillBeGarbageCollectedFinalized<DummyFrameOwner>, public FrameOwner {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(DummyFrameOwner);
+class CORE_EXPORT DummyFrameOwner : public GarbageCollectedFinalized<DummyFrameOwner>, public FrameOwner {
+    USING_GARBAGE_COLLECTED_MIXIN(DummyFrameOwner);
 public:
-    static PassOwnPtrWillBeRawPtr<DummyFrameOwner> create()
+    static RawPtr<DummyFrameOwner> create()
     {
         return adoptPtrWillBeNoop(new DummyFrameOwner);
     }
diff --git a/third_party/WebKit/Source/core/frame/FrameSerializer.cpp b/third_party/WebKit/Source/core/frame/FrameSerializer.cpp
index 38196345..a944291 100644
--- a/third_party/WebKit/Source/core/frame/FrameSerializer.cpp
+++ b/third_party/WebKit/Source/core/frame/FrameSerializer.cpp
@@ -83,7 +83,7 @@
 class SerializerMarkupAccumulator : public MarkupAccumulator {
     STACK_ALLOCATED();
 public:
-    SerializerMarkupAccumulator(FrameSerializer::Delegate&, const Document&, WillBeHeapVector<RawPtrWillBeMember<Node>>&);
+    SerializerMarkupAccumulator(FrameSerializer::Delegate&, const Document&, HeapVector<Member<Node>>&);
     ~SerializerMarkupAccumulator() override;
 
 protected:
@@ -103,19 +103,19 @@
         const String& attributeValue);
 
     FrameSerializer::Delegate& m_delegate;
-    RawPtrWillBeMember<const Document> m_document;
+    Member<const Document> m_document;
 
     // FIXME: |FrameSerializer| uses |m_nodes| for collecting nodes in document
     // included into serialized text then extracts image, object, etc. The size
     // of this vector isn't small for large document. It is better to use
     // callback like functionality.
-    WillBeHeapVector<RawPtrWillBeMember<Node>>& m_nodes;
+    HeapVector<Member<Node>>& m_nodes;
 
     // Elements with links rewritten via appendAttribute method.
-    WillBeHeapHashSet<RawPtrWillBeMember<const Element>> m_elementsWithRewrittenLinks;
+    HeapHashSet<Member<const Element>> m_elementsWithRewrittenLinks;
 };
 
-SerializerMarkupAccumulator::SerializerMarkupAccumulator(FrameSerializer::Delegate& delegate, const Document& document, WillBeHeapVector<RawPtrWillBeMember<Node>>& nodes)
+SerializerMarkupAccumulator::SerializerMarkupAccumulator(FrameSerializer::Delegate& delegate, const Document& document, HeapVector<Member<Node>>& nodes)
     : MarkupAccumulator(ResolveAllURLs)
     , m_delegate(delegate)
     , m_document(&document)
@@ -260,7 +260,7 @@
         return;
     }
 
-    WillBeHeapVector<RawPtrWillBeMember<Node>> serializedNodes;
+    HeapVector<Member<Node>> serializedNodes;
     SerializerMarkupAccumulator accumulator(m_delegate, document, serializedNodes);
     String text = serializeNodes<EditingStrategy>(accumulator, document, IncludeNode);
 
@@ -430,7 +430,7 @@
     // image properties there might be.
     unsigned propertyCount = styleDeclaration->propertyCount();
     for (unsigned i = 0; i < propertyCount; ++i) {
-        RefPtrWillBeRawPtr<CSSValue> cssValue = styleDeclaration->propertyAt(i).value();
+        RawPtr<CSSValue> cssValue = styleDeclaration->propertyAt(i).value();
         retrieveResourcesForCSSValue(cssValue.get(), document);
     }
 }
diff --git a/third_party/WebKit/Source/core/frame/FrameView.cpp b/third_party/WebKit/Source/core/frame/FrameView.cpp
index 87231c2..bfe3fce 100644
--- a/third_party/WebKit/Source/core/frame/FrameView.cpp
+++ b/third_party/WebKit/Source/core/frame/FrameView.cpp
@@ -163,16 +163,16 @@
     init();
 }
 
-PassRefPtrWillBeRawPtr<FrameView> FrameView::create(LocalFrame* frame)
+RawPtr<FrameView> FrameView::create(LocalFrame* frame)
 {
-    RefPtrWillBeRawPtr<FrameView> view = adoptRefWillBeNoop(new FrameView(frame));
+    RawPtr<FrameView> view = new FrameView(frame);
     view->show();
     return view.release();
 }
 
-PassRefPtrWillBeRawPtr<FrameView> FrameView::create(LocalFrame* frame, const IntSize& initialSize)
+RawPtr<FrameView> FrameView::create(LocalFrame* frame, const IntSize& initialSize)
 {
-    RefPtrWillBeRawPtr<FrameView> view = adoptRefWillBeNoop(new FrameView(frame));
+    RawPtr<FrameView> view = new FrameView(frame);
     view->Widget::setFrameRect(IntRect(view->location(), initialSize));
     view->setLayoutSizeInternal(initialSize);
 
@@ -347,7 +347,7 @@
     bool usesWindowInactiveSelector = m_frame->document()->styleEngine().usesWindowInactiveSelector();
 
     const ChildrenWidgetSet* viewChildren = children();
-    for (const RefPtrWillBeMember<Widget>& child : *viewChildren) {
+    for (const Member<Widget>& child : *viewChildren) {
         Widget* widget = child.get();
         if (widget->isFrameView())
             toFrameView(widget)->invalidateAllCustomScrollbarsOnActiveChanged();
@@ -496,7 +496,7 @@
     return false;
 }
 
-PassRefPtrWillBeRawPtr<Scrollbar> FrameView::createScrollbar(ScrollbarOrientation orientation)
+RawPtr<Scrollbar> FrameView::createScrollbar(ScrollbarOrientation orientation)
 {
     Element* customScrollbarElement = nullptr;
     LocalFrame* customScrollbarFrame = nullptr;
@@ -757,7 +757,7 @@
     // FrameView for a layout. After that the LayoutEmbeddedObject (ownerLayoutObject) carries the
     // correct size, which LayoutSVGRoot::computeReplacedLogicalWidth/Height rely on, when laying
     // out for the first time, or when the LayoutSVGRoot size has changed dynamically (eg. via <script>).
-    RefPtrWillBeRawPtr<FrameView> frameView = ownerLayoutObject->frame()->view();
+    RawPtr<FrameView> frameView = ownerLayoutObject->frame()->view();
 
     // Mark the owner layoutObject as needing layout.
     ownerLayoutObject->setNeedsLayoutAndPrefWidthsRecalcAndFullPaintInvalidation(LayoutInvalidationReason::Unknown);
@@ -927,7 +927,7 @@
     TRACE_EVENT_SCOPED_SAMPLING_STATE("blink", "Layout");
 
     // Protect the view from being deleted during layout (in recalcStyle)
-    RefPtrWillBeRawPtr<FrameView> protector(this);
+    RawPtr<FrameView> protector(this);
 
     if (m_autoSizeInfo)
         m_autoSizeInfo->autoSizeIfNeeded();
@@ -1611,7 +1611,7 @@
     if (!hasViewportConstrainedObjects())
         return;
 
-    RefPtrWillBeRawPtr<FrameView> protect(this);
+    RawPtr<FrameView> protect(this);
 
     // If there fixed position elements, scrolling may cause compositing layers to change.
     // Update widget and layer positions after scrolling, but only if we're not inside of
@@ -1907,7 +1907,7 @@
 
 void FrameView::scrollToFragmentAnchor()
 {
-    RefPtrWillBeRawPtr<Node> anchorNode = m_fragmentAnchor;
+    RawPtr<Node> anchorNode = m_fragmentAnchor;
     if (!anchorNode)
         return;
 
@@ -1925,7 +1925,7 @@
                 rect = documentElement->boundingBox();
         }
 
-        RefPtrWillBeRawPtr<Frame> boundaryFrame = m_frame->findUnsafeParentScrollPropagationBoundary();
+        RawPtr<Frame> boundaryFrame = m_frame->findUnsafeParentScrollPropagationBoundary();
 
         // FIXME: Handle RemoteFrames
         if (boundaryFrame && boundaryFrame->isLocalFrame())
@@ -1989,7 +1989,7 @@
 void FrameView::updateWidgetsTimerFired(Timer<FrameView>*)
 {
     ASSERT(!isInPerformLayout());
-    RefPtrWillBeRawPtr<FrameView> protect(this);
+    RawPtr<FrameView> protect(this);
     m_updateWidgetsTimer.stop();
     for (unsigned i = 0; i < maxUpdateWidgetsIterations; ++i) {
         if (updateWidgets())
@@ -2022,7 +2022,7 @@
     // We should ASSERT(isActive()); or at least return early if we can!
     ASSERT(!isInPerformLayout()); // Always before or after performLayout(), part of the highest-level layout() call.
     TRACE_EVENT0("blink,benchmark", "FrameView::performPostLayoutTasks");
-    RefPtrWillBeRawPtr<FrameView> protect(this);
+    RawPtr<FrameView> protect(this);
 
     m_postLayoutTasksTimer.stop();
 
@@ -2415,7 +2415,7 @@
     ASSERT(m_frame->isLocalRoot());
 
     // Updating layout can run script, which can tear down the FrameView.
-    RefPtrWillBeRawPtr<FrameView> protector(this);
+    RawPtr<FrameView> protector(this);
 
     if (shouldThrottleRendering()) {
         updateViewportIntersectionsForSubtree(std::min(phases, OnlyUpToCompositingCleanPlusScrolling));
@@ -2599,7 +2599,7 @@
     // should have a way to only run these other Documents to the same lifecycle stage
     // as this frame.
     const ChildrenWidgetSet* viewChildren = children();
-    for (const RefPtrWillBeMember<Widget>& child : *viewChildren) {
+    for (const Member<Widget>& child : *viewChildren) {
         if ((*child).isPluginContainer())
             toPluginView(child.get())->updateAllLifecyclePhases();
     }
@@ -2608,7 +2608,7 @@
 
     // FIXME: Calling layout() shouldn't trigger script execution or have any
     // observable effects on the frame tree but we're not quite there yet.
-    WillBeHeapVector<RefPtrWillBeMember<FrameView>> frameViews;
+    HeapVector<Member<FrameView>> frameViews;
     for (Frame* child = m_frame->tree().firstChild(); child; child = child->tree().nextSibling()) {
         if (!child->isLocalFrame())
             continue;
@@ -3053,7 +3053,7 @@
     return maximumPosition.expandedTo(minimumScrollPosition());
 }
 
-void FrameView::addChild(PassRefPtrWillBeRawPtr<Widget> prpChild)
+void FrameView::addChild(RawPtr<Widget> prpChild)
 {
     Widget* child = prpChild.get();
     ASSERT(child != this && !child->parent());
diff --git a/third_party/WebKit/Source/core/frame/FrameView.h b/third_party/WebKit/Source/core/frame/FrameView.h
index 9af4a9a..2aaeb9b 100644
--- a/third_party/WebKit/Source/core/frame/FrameView.h
+++ b/third_party/WebKit/Source/core/frame/FrameView.h
@@ -84,15 +84,15 @@
 typedef unsigned long long DOMTimeStamp;
 
 class CORE_EXPORT FrameView final : public Widget, public PaintInvalidationCapableScrollableArea {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(FrameView);
+    USING_GARBAGE_COLLECTED_MIXIN(FrameView);
 
     friend class PaintControllerPaintTestBase;
     friend class Internals;
     friend class LayoutPart; // for invalidateTreeIfNeeded
 
 public:
-    static PassRefPtrWillBeRawPtr<FrameView> create(LocalFrame*);
-    static PassRefPtrWillBeRawPtr<FrameView> create(LocalFrame*, const IntSize& initialSize);
+    static RawPtr<FrameView> create(LocalFrame*);
+    static RawPtr<FrameView> create(LocalFrame*, const IntSize& initialSize);
 
     ~FrameView() override;
 
@@ -111,7 +111,7 @@
 
     void setCanHaveScrollbars(bool);
 
-    PassRefPtrWillBeRawPtr<Scrollbar> createScrollbar(ScrollbarOrientation);
+    RawPtr<Scrollbar> createScrollbar(ScrollbarOrientation);
 
     void setContentsSize(const IntSize&);
 
@@ -312,7 +312,7 @@
     bool isTrackingPaintInvalidations() const { return m_isTrackingPaintInvalidations; }
     void resetTrackedPaintInvalidations();
 
-    using ScrollableAreaSet = WillBeHeapHashSet<RawPtrWillBeMember<ScrollableArea>>;
+    using ScrollableAreaSet = HeapHashSet<Member<ScrollableArea>>;
     void addScrollableArea(ScrollableArea*);
     void removeScrollableArea(ScrollableArea*);
     const ScrollableAreaSet* scrollableAreas() const { return m_scrollableAreas.get(); }
@@ -391,12 +391,12 @@
     // Returns a clip rect in host window coordinates. Used to clip the blit on a scroll.
     IntRect windowClipRect(IncludeScrollbarsInRect = ExcludeScrollbars) const;
 
-    typedef WillBeHeapHashSet<RefPtrWillBeMember<Widget>> ChildrenWidgetSet;
+    typedef HeapHashSet<Member<Widget>> ChildrenWidgetSet;
 
     // Functions for child manipulation and inspection.
     void setParent(Widget*) override;
     void removeChild(Widget*);
-    void addChild(PassRefPtrWillBeRawPtr<Widget>);
+    void addChild(RawPtr<Widget>);
     const ChildrenWidgetSet* children() const { return &m_children; }
 
     // If the scroll view does not use a native widget, then it will have cross-platform Scrollbars. These functions
@@ -767,7 +767,7 @@
     typedef HashSet<RefPtr<LayoutEmbeddedObject>> EmbeddedObjectSet;
     EmbeddedObjectSet m_partUpdateSet;
 
-    // FIXME: These are just "children" of the FrameView and should be RefPtrWillBeMember<Widget> instead.
+    // FIXME: These are just "children" of the FrameView and should be Member<Widget> instead.
     HashSet<RefPtr<LayoutPart>> m_parts;
 
     // The RefPtr cycle between LocalFrame and FrameView is broken
@@ -777,7 +777,7 @@
     // For Oilpan, Member reference cycles pose no problem, but
     // LocalFrame's FrameView is also cleared by that setView(), so as to
     // keep the observable lifespan of LocalFrame::view() identical.
-    RefPtrWillBeMember<LocalFrame> m_frame;
+    Member<LocalFrame> m_frame;
 
     WebDisplayMode m_displayMode;
 
@@ -817,17 +817,17 @@
     unsigned m_visuallyNonEmptyPixelCount;
     bool m_isVisuallyNonEmpty;
 
-    RefPtrWillBeMember<Node> m_fragmentAnchor;
+    Member<Node> m_fragmentAnchor;
 
     // layoutObject to hold our custom scroll corner.
     LayoutScrollbarPart* m_scrollCorner;
 
-    OwnPtrWillBeMember<ScrollableAreaSet> m_scrollableAreas;
-    OwnPtrWillBeMember<ScrollableAreaSet> m_animatingScrollableAreas;
+    Member<ScrollableAreaSet> m_scrollableAreas;
+    Member<ScrollableAreaSet> m_animatingScrollableAreas;
     OwnPtr<ResizerAreaSet> m_resizerAreas;
     OwnPtr<ViewportConstrainedObjectSet> m_viewportConstrainedObjects;
     ViewportConstrainedObjectSet m_backgroundAttachmentFixedObjects;
-    OwnPtrWillBeMember<FrameViewAutoSizeInfo> m_autoSizeInfo;
+    Member<FrameViewAutoSizeInfo> m_autoSizeInfo;
 
     IntSize m_inputEventsOffsetForEmulation;
     float m_inputEventsScaleFactorForEmulation;
@@ -850,8 +850,8 @@
     bool m_hasBeenDisposed;
 #endif
 
-    RefPtrWillBeMember<Scrollbar> m_horizontalScrollbar;
-    RefPtrWillBeMember<Scrollbar> m_verticalScrollbar;
+    Member<Scrollbar> m_horizontalScrollbar;
+    Member<Scrollbar> m_verticalScrollbar;
     ScrollbarMode m_horizontalScrollbarMode;
     ScrollbarMode m_verticalScrollbarMode;
 
@@ -878,7 +878,7 @@
     // Exists only on root frame.
     // TODO(bokan): crbug.com/484188. We should specialize FrameView for the
     // main frame.
-    OwnPtrWillBeMember<ScrollableArea> m_viewportScrollableArea;
+    Member<ScrollableArea> m_viewportScrollableArea;
 
     // This frame's bounds in the root frame's content coordinates, clipped
     // recursively through every ancestor view.
diff --git a/third_party/WebKit/Source/core/frame/FrameViewAutoSizeInfo.cpp b/third_party/WebKit/Source/core/frame/FrameViewAutoSizeInfo.cpp
index 04c6131af..b714c0e0 100644
--- a/third_party/WebKit/Source/core/frame/FrameViewAutoSizeInfo.cpp
+++ b/third_party/WebKit/Source/core/frame/FrameViewAutoSizeInfo.cpp
@@ -19,8 +19,6 @@
     ASSERT(m_frameView);
 }
 
-DEFINE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(FrameViewAutoSizeInfo);
-
 DEFINE_TRACE(FrameViewAutoSizeInfo)
 {
     visitor->trace(m_frameView);
@@ -86,7 +84,7 @@
         // Since the dimensions are only for the view rectangle, once a
         // dimension exceeds the maximum, there is no need to increase it further.
         if (newSize.width() > m_maxAutoSize.width()) {
-            RefPtrWillBeRawPtr<Scrollbar> localHorizontalScrollbar = m_frameView->horizontalScrollbar();
+            RawPtr<Scrollbar> localHorizontalScrollbar = m_frameView->horizontalScrollbar();
             if (!localHorizontalScrollbar)
                 localHorizontalScrollbar = m_frameView->createScrollbar(HorizontalScrollbar);
             if (!localHorizontalScrollbar->isOverlayScrollbar())
@@ -95,7 +93,7 @@
             // Don't bother checking for a vertical scrollbar because the width is at
             // already greater the maximum.
         } else if (newSize.height() > m_maxAutoSize.height()) {
-            RefPtrWillBeRawPtr<Scrollbar> localVerticalScrollbar = m_frameView->verticalScrollbar();
+            RawPtr<Scrollbar> localVerticalScrollbar = m_frameView->verticalScrollbar();
             if (!localVerticalScrollbar)
                 localVerticalScrollbar = m_frameView->createScrollbar(VerticalScrollbar);
             if (!localVerticalScrollbar->isOverlayScrollbar())
diff --git a/third_party/WebKit/Source/core/frame/FrameViewAutoSizeInfo.h b/third_party/WebKit/Source/core/frame/FrameViewAutoSizeInfo.h
index bd63596..efe9e11 100644
--- a/third_party/WebKit/Source/core/frame/FrameViewAutoSizeInfo.h
+++ b/third_party/WebKit/Source/core/frame/FrameViewAutoSizeInfo.h
@@ -15,14 +15,12 @@
 
 class FrameView;
 
-class FrameViewAutoSizeInfo final : public NoBaseWillBeGarbageCollected<FrameViewAutoSizeInfo> {
+class FrameViewAutoSizeInfo final : public GarbageCollected<FrameViewAutoSizeInfo> {
     WTF_MAKE_NONCOPYABLE(FrameViewAutoSizeInfo);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(FrameViewAutoSizeInfo);
-    DECLARE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(FrameViewAutoSizeInfo);
 public:
-    static PassOwnPtrWillBeRawPtr<FrameViewAutoSizeInfo> create(FrameView* frameView)
+    static RawPtr<FrameViewAutoSizeInfo> create(FrameView* frameView)
     {
-        return adoptPtrWillBeNoop(new FrameViewAutoSizeInfo(frameView));
+        return new FrameViewAutoSizeInfo(frameView);
     }
 
     void configureAutoSizeMode(const IntSize& minSize, const IntSize& maxSize);
@@ -33,7 +31,7 @@
 private:
     explicit FrameViewAutoSizeInfo(FrameView*);
 
-    RawPtrWillBeMember<FrameView> m_frameView;
+    Member<FrameView> m_frameView;
 
     // The lower bound on the size when autosizing.
     IntSize m_minAutoSize;
diff --git a/third_party/WebKit/Source/core/frame/FrameViewTest.cpp b/third_party/WebKit/Source/core/frame/FrameViewTest.cpp
index a7d6f12..31350b9 100644
--- a/third_party/WebKit/Source/core/frame/FrameViewTest.cpp
+++ b/third_party/WebKit/Source/core/frame/FrameViewTest.cpp
@@ -62,7 +62,7 @@
     MockChromeClient& chromeClient() { return *m_chromeClient; }
 
 private:
-    OwnPtrWillBePersistent<MockChromeClient> m_chromeClient;
+    Persistent<MockChromeClient> m_chromeClient;
     OwnPtr<DummyPageHolder> m_pageHolder;
 };
 
diff --git a/third_party/WebKit/Source/core/frame/History.h b/third_party/WebKit/Source/core/frame/History.h
index 4b63ba51..d1729fc 100644
--- a/third_party/WebKit/Source/core/frame/History.h
+++ b/third_party/WebKit/Source/core/frame/History.h
@@ -44,7 +44,7 @@
 
 class CORE_EXPORT History final : public GarbageCollectedFinalized<History>, public ScriptWrappable, public DOMWindowProperty {
     DEFINE_WRAPPERTYPEINFO();
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(History);
+    USING_GARBAGE_COLLECTED_MIXIN(History);
 public:
     static History* create(LocalFrame* frame)
     {
diff --git a/third_party/WebKit/Source/core/frame/ImageBitmap.cpp b/third_party/WebKit/Source/core/frame/ImageBitmap.cpp
index 694ed0c..9ba029c 100644
--- a/third_party/WebKit/Source/core/frame/ImageBitmap.cpp
+++ b/third_party/WebKit/Source/core/frame/ImageBitmap.cpp
@@ -344,45 +344,45 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<ImageBitmap> ImageBitmap::create(HTMLImageElement* image, const IntRect& cropRect, Document* document, const ImageBitmapOptions& options)
+RawPtr<ImageBitmap> ImageBitmap::create(HTMLImageElement* image, const IntRect& cropRect, Document* document, const ImageBitmapOptions& options)
 {
     IntRect normalizedCropRect = normalizeRect(cropRect);
-    return adoptRefWillBeNoop(new ImageBitmap(image, normalizedCropRect, document, options));
+    return new ImageBitmap(image, normalizedCropRect, document, options);
 }
 
-PassRefPtrWillBeRawPtr<ImageBitmap> ImageBitmap::create(HTMLVideoElement* video, const IntRect& cropRect, Document* document, const ImageBitmapOptions& options)
+RawPtr<ImageBitmap> ImageBitmap::create(HTMLVideoElement* video, const IntRect& cropRect, Document* document, const ImageBitmapOptions& options)
 {
     IntRect normalizedCropRect = normalizeRect(cropRect);
-    return adoptRefWillBeNoop(new ImageBitmap(video, normalizedCropRect, document, options));
+    return new ImageBitmap(video, normalizedCropRect, document, options);
 }
 
-PassRefPtrWillBeRawPtr<ImageBitmap> ImageBitmap::create(HTMLCanvasElement* canvas, const IntRect& cropRect, const ImageBitmapOptions& options)
+RawPtr<ImageBitmap> ImageBitmap::create(HTMLCanvasElement* canvas, const IntRect& cropRect, const ImageBitmapOptions& options)
 {
     IntRect normalizedCropRect = normalizeRect(cropRect);
-    return adoptRefWillBeNoop(new ImageBitmap(canvas, normalizedCropRect, options));
+    return new ImageBitmap(canvas, normalizedCropRect, options);
 }
 
-PassRefPtrWillBeRawPtr<ImageBitmap> ImageBitmap::create(ImageData* data, const IntRect& cropRect, const ImageBitmapOptions& options)
+RawPtr<ImageBitmap> ImageBitmap::create(ImageData* data, const IntRect& cropRect, const ImageBitmapOptions& options)
 {
     IntRect normalizedCropRect = normalizeRect(cropRect);
-    return adoptRefWillBeNoop(new ImageBitmap(data, normalizedCropRect, options));
+    return new ImageBitmap(data, normalizedCropRect, options);
 }
 
-PassRefPtrWillBeRawPtr<ImageBitmap> ImageBitmap::create(ImageBitmap* bitmap, const IntRect& cropRect, const ImageBitmapOptions& options)
+RawPtr<ImageBitmap> ImageBitmap::create(ImageBitmap* bitmap, const IntRect& cropRect, const ImageBitmapOptions& options)
 {
     IntRect normalizedCropRect = normalizeRect(cropRect);
-    return adoptRefWillBeNoop(new ImageBitmap(bitmap, normalizedCropRect, options));
+    return new ImageBitmap(bitmap, normalizedCropRect, options);
 }
 
-PassRefPtrWillBeRawPtr<ImageBitmap> ImageBitmap::create(PassRefPtr<StaticBitmapImage> image, const IntRect& cropRect, const ImageBitmapOptions& options)
+RawPtr<ImageBitmap> ImageBitmap::create(PassRefPtr<StaticBitmapImage> image, const IntRect& cropRect, const ImageBitmapOptions& options)
 {
     IntRect normalizedCropRect = normalizeRect(cropRect);
-    return adoptRefWillBeNoop(new ImageBitmap(image, normalizedCropRect, options));
+    return new ImageBitmap(image, normalizedCropRect, options);
 }
 
-PassRefPtrWillBeRawPtr<ImageBitmap> ImageBitmap::create(PassRefPtr<StaticBitmapImage> image)
+RawPtr<ImageBitmap> ImageBitmap::create(PassRefPtr<StaticBitmapImage> image)
 {
-    return adoptRefWillBeNoop(new ImageBitmap(image));
+    return new ImageBitmap(image);
 }
 
 void ImageBitmap::close()
diff --git a/third_party/WebKit/Source/core/frame/ImageBitmap.h b/third_party/WebKit/Source/core/frame/ImageBitmap.h
index f4805a9..56eabc8 100644
--- a/third_party/WebKit/Source/core/frame/ImageBitmap.h
+++ b/third_party/WebKit/Source/core/frame/ImageBitmap.h
@@ -31,16 +31,16 @@
     DontPremultiplyAlpha,
 };
 
-class CORE_EXPORT ImageBitmap final : public RefCountedWillBeGarbageCollectedFinalized<ImageBitmap>, public ScriptWrappable, public CanvasImageSource, public ImageBitmapSource {
+class CORE_EXPORT ImageBitmap final : public GarbageCollectedFinalized<ImageBitmap>, public ScriptWrappable, public CanvasImageSource, public ImageBitmapSource {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<ImageBitmap> create(HTMLImageElement*, const IntRect&, Document*, const ImageBitmapOptions& = ImageBitmapOptions());
-    static PassRefPtrWillBeRawPtr<ImageBitmap> create(HTMLVideoElement*, const IntRect&, Document*, const ImageBitmapOptions& = ImageBitmapOptions());
-    static PassRefPtrWillBeRawPtr<ImageBitmap> create(HTMLCanvasElement*, const IntRect&, const ImageBitmapOptions& = ImageBitmapOptions());
-    static PassRefPtrWillBeRawPtr<ImageBitmap> create(ImageData*, const IntRect&, const ImageBitmapOptions& = ImageBitmapOptions());
-    static PassRefPtrWillBeRawPtr<ImageBitmap> create(ImageBitmap*, const IntRect&, const ImageBitmapOptions& = ImageBitmapOptions());
-    static PassRefPtrWillBeRawPtr<ImageBitmap> create(PassRefPtr<StaticBitmapImage>);
-    static PassRefPtrWillBeRawPtr<ImageBitmap> create(PassRefPtr<StaticBitmapImage>, const IntRect&, const ImageBitmapOptions& = ImageBitmapOptions());
+    static RawPtr<ImageBitmap> create(HTMLImageElement*, const IntRect&, Document*, const ImageBitmapOptions& = ImageBitmapOptions());
+    static RawPtr<ImageBitmap> create(HTMLVideoElement*, const IntRect&, Document*, const ImageBitmapOptions& = ImageBitmapOptions());
+    static RawPtr<ImageBitmap> create(HTMLCanvasElement*, const IntRect&, const ImageBitmapOptions& = ImageBitmapOptions());
+    static RawPtr<ImageBitmap> create(ImageData*, const IntRect&, const ImageBitmapOptions& = ImageBitmapOptions());
+    static RawPtr<ImageBitmap> create(ImageBitmap*, const IntRect&, const ImageBitmapOptions& = ImageBitmapOptions());
+    static RawPtr<ImageBitmap> create(PassRefPtr<StaticBitmapImage>);
+    static RawPtr<ImageBitmap> create(PassRefPtr<StaticBitmapImage>, const IntRect&, const ImageBitmapOptions& = ImageBitmapOptions());
     static PassRefPtr<SkImage> getSkImageFromDecoder(PassOwnPtr<ImageDecoder>);
 
     StaticBitmapImage* bitmapImage() const { return (m_image) ? m_image.get() : nullptr; }
diff --git a/third_party/WebKit/Source/core/frame/ImageBitmapTest.cpp b/third_party/WebKit/Source/core/frame/ImageBitmapTest.cpp
index 68c9f93..72194afc 100644
--- a/third_party/WebKit/Source/core/frame/ImageBitmapTest.cpp
+++ b/third_party/WebKit/Source/core/frame/ImageBitmapTest.cpp
@@ -81,20 +81,20 @@
 TEST_F(ImageBitmapTest, ImageResourceConsistency)
 {
     const ImageBitmapOptions defaultOptions;
-    RefPtrWillBeRawPtr<HTMLImageElement> imageElement = HTMLImageElement::create(*Document::create().get());
-    RefPtrWillBeRawPtr<ImageResource> image = ImageResource::create(StaticBitmapImage::create(m_image).get());
+    RawPtr<HTMLImageElement> imageElement = HTMLImageElement::create(*Document::create().get());
+    RawPtr<ImageResource> image = ImageResource::create(StaticBitmapImage::create(m_image).get());
     imageElement->setImageResource(image.get());
 
-    RefPtrWillBeRawPtr<ImageBitmap> imageBitmapNoCrop = ImageBitmap::create(imageElement.get(),
+    RawPtr<ImageBitmap> imageBitmapNoCrop = ImageBitmap::create(imageElement.get(),
         IntRect(0, 0, m_image->width(), m_image->height()),
         &(imageElement->document()), defaultOptions);
-    RefPtrWillBeRawPtr<ImageBitmap> imageBitmapInteriorCrop = ImageBitmap::create(imageElement.get(),
+    RawPtr<ImageBitmap> imageBitmapInteriorCrop = ImageBitmap::create(imageElement.get(),
         IntRect(m_image->width() / 2, m_image->height() / 2, m_image->width() / 2, m_image->height() / 2),
         &(imageElement->document()), defaultOptions);
-    RefPtrWillBeRawPtr<ImageBitmap> imageBitmapExteriorCrop = ImageBitmap::create(imageElement.get(),
+    RawPtr<ImageBitmap> imageBitmapExteriorCrop = ImageBitmap::create(imageElement.get(),
         IntRect(-m_image->width() / 2, -m_image->height() / 2, m_image->width(), m_image->height()),
         &(imageElement->document()), defaultOptions);
-    RefPtrWillBeRawPtr<ImageBitmap> imageBitmapOutsideCrop = ImageBitmap::create(imageElement.get(),
+    RawPtr<ImageBitmap> imageBitmapOutsideCrop = ImageBitmap::create(imageElement.get(),
         IntRect(-m_image->width(), -m_image->height(), m_image->width(), m_image->height()),
         &(imageElement->document()), defaultOptions);
 
@@ -109,18 +109,18 @@
 // Verifies that ImageBitmaps constructed from HTMLImageElements hold a reference to the original Image if the HTMLImageElement src is changed.
 TEST_F(ImageBitmapTest, ImageBitmapSourceChanged)
 {
-    RefPtrWillBeRawPtr<HTMLImageElement> image = HTMLImageElement::create(*Document::create().get());
-    RefPtrWillBeRawPtr<ImageResource> originalImageResource = ImageResource::create(
+    RawPtr<HTMLImageElement> image = HTMLImageElement::create(*Document::create().get());
+    RawPtr<ImageResource> originalImageResource = ImageResource::create(
         StaticBitmapImage::create(m_image).get());
     image->setImageResource(originalImageResource.get());
 
     const ImageBitmapOptions defaultOptions;
-    RefPtrWillBeRawPtr<ImageBitmap> imageBitmap = ImageBitmap::create(image.get(),
+    RawPtr<ImageBitmap> imageBitmap = ImageBitmap::create(image.get(),
         IntRect(0, 0, m_image->width(), m_image->height()),
         &(image->document()), defaultOptions);
     ASSERT_EQ(imageBitmap->bitmapImage()->imageForCurrentFrame(), originalImageResource->getImage()->imageForCurrentFrame());
 
-    RefPtrWillBeRawPtr<ImageResource> newImageResource = ImageResource::create(
+    RawPtr<ImageResource> newImageResource = ImageResource::create(
         StaticBitmapImage::create(m_image2).get());
     image->setImageResource(newImageResource.get());
 
diff --git a/third_party/WebKit/Source/core/frame/LocalDOMWindow.cpp b/third_party/WebKit/Source/core/frame/LocalDOMWindow.cpp
index 6a0cff94..d17b5ac 100644
--- a/third_party/WebKit/Source/core/frame/LocalDOMWindow.cpp
+++ b/third_party/WebKit/Source/core/frame/LocalDOMWindow.cpp
@@ -85,9 +85,9 @@
 {
 }
 
-PassOwnPtrWillBeRawPtr<LocalDOMWindow::WindowFrameObserver> LocalDOMWindow::WindowFrameObserver::create(LocalDOMWindow* window, LocalFrame& frame)
+RawPtr<LocalDOMWindow::WindowFrameObserver> LocalDOMWindow::WindowFrameObserver::create(LocalDOMWindow* window, LocalFrame& frame)
 {
-    return adoptPtrWillBeNoop(new WindowFrameObserver(window, frame));
+    return new WindowFrameObserver(window, frame);
 }
 
 #if !ENABLE(OILPAN)
@@ -113,10 +113,10 @@
     LocalFrameLifecycleObserver::contextDestroyed();
 }
 
-class PostMessageTimer final : public NoBaseWillBeGarbageCollectedFinalized<PostMessageTimer>, public SuspendableTimer {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(PostMessageTimer);
+class PostMessageTimer final : public GarbageCollectedFinalized<PostMessageTimer>, public SuspendableTimer {
+    USING_GARBAGE_COLLECTED_MIXIN(PostMessageTimer);
 public:
-    PostMessageTimer(LocalDOMWindow& window, PassRefPtrWillBeRawPtr<MessageEvent> event, SecurityOrigin* targetOrigin, PassRefPtr<ScriptCallStack> stackTrace, UserGestureToken* userGestureToken)
+    PostMessageTimer(LocalDOMWindow& window, RawPtr<MessageEvent> event, SecurityOrigin* targetOrigin, PassRefPtr<ScriptCallStack> stackTrace, UserGestureToken* userGestureToken)
         : SuspendableTimer(window.document())
         , m_event(event)
         , m_window(&window)
@@ -128,7 +128,7 @@
         m_asyncOperationId = InspectorInstrumentation::traceAsyncOperationStarting(getExecutionContext(), "postMessage");
     }
 
-    PassRefPtrWillBeRawPtr<MessageEvent> event() const { return m_event.get(); }
+    RawPtr<MessageEvent> event() const { return m_event.get(); }
     SecurityOrigin* targetOrigin() const { return m_targetOrigin.get(); }
     ScriptCallStack* stackTrace() const { return m_stackTrace.get(); }
     UserGestureToken* userGestureToken() const { return m_userGestureToken.get(); }
@@ -171,8 +171,8 @@
         m_window->removePostMessageTimer(this);
     }
 
-    RefPtrWillBeMember<MessageEvent> m_event;
-    RawPtrWillBeMember<LocalDOMWindow> m_window;
+    Member<MessageEvent> m_event;
+    Member<LocalDOMWindow> m_window;
     RefPtr<SecurityOrigin> m_targetOrigin;
     RefPtr<ScriptCallStack> m_stackTrace;
     RefPtr<UserGestureToken> m_userGestureToken;
@@ -187,7 +187,7 @@
         domWindow->frame()->loader().client()->suddenTerminationDisablerChanged(addedListener, disablerType);
 }
 
-using DOMWindowSet = WillBePersistentHeapHashCountedSet<RawPtrWillBeWeakMember<LocalDOMWindow>>;
+using DOMWindowSet = PersistentHeapHashCountedSet<WeakMember<LocalDOMWindow>>;
 
 static DOMWindowSet& windowsWithUnloadEventListeners()
 {
@@ -333,9 +333,9 @@
     dispatchEvent(Event::create(EventTypeNames::languagechange));
 }
 
-PassRefPtrWillBeRawPtr<Document> LocalDOMWindow::createDocument(const String& mimeType, const DocumentInit& init, bool forceXHTML)
+RawPtr<Document> LocalDOMWindow::createDocument(const String& mimeType, const DocumentInit& init, bool forceXHTML)
 {
-    RefPtrWillBeRawPtr<Document> document = nullptr;
+    RawPtr<Document> document = nullptr;
     if (forceXHTML) {
         // This is a hack for XSLTProcessor. See XSLTProcessor::createDocumentFromSource().
         document = Document::create(init);
@@ -348,7 +348,7 @@
     return document.release();
 }
 
-PassRefPtrWillBeRawPtr<Document> LocalDOMWindow::installNewDocument(const String& mimeType, const DocumentInit& init, bool forceXHTML)
+RawPtr<Document> LocalDOMWindow::installNewDocument(const String& mimeType, const DocumentInit& init, bool forceXHTML)
 {
     ASSERT(init.frame() == frame());
 
@@ -381,7 +381,7 @@
     return m_eventQueue.get();
 }
 
-void LocalDOMWindow::enqueueWindowEvent(PassRefPtrWillBeRawPtr<Event> event)
+void LocalDOMWindow::enqueueWindowEvent(RawPtr<Event> event)
 {
     if (!m_eventQueue)
         return;
@@ -389,7 +389,7 @@
     m_eventQueue->enqueueEvent(event);
 }
 
-void LocalDOMWindow::enqueueDocumentEvent(PassRefPtrWillBeRawPtr<Event> event)
+void LocalDOMWindow::enqueueDocumentEvent(RawPtr<Event> event)
 {
     if (!m_eventQueue)
         return;
@@ -404,7 +404,7 @@
     // workaround to avoid Editing code crashes.  We should always dispatch
     // 'load' event asynchronously.  crbug.com/569511.
     if (ScopedEventQueue::instance()->shouldQueueEvents() && m_document) {
-        m_document->postTask(BLINK_FROM_HERE, createSameThreadTask(&LocalDOMWindow::dispatchLoadEvent, PassRefPtrWillBeRawPtr<LocalDOMWindow>(this)));
+        m_document->postTask(BLINK_FROM_HERE, createSameThreadTask(&LocalDOMWindow::dispatchLoadEvent, RawPtr<LocalDOMWindow>(this)));
         return;
     }
     dispatchLoadEvent();
@@ -495,7 +495,7 @@
     return this;
 }
 
-PassRefPtrWillBeRawPtr<MediaQueryList> LocalDOMWindow::matchMedia(const String& media)
+RawPtr<MediaQueryList> LocalDOMWindow::matchMedia(const String& media)
 {
     return document() ? document()->mediaQueryMatcher().matchMedia(media) : nullptr;
 }
@@ -568,7 +568,7 @@
     // Before dispatching the event, build a list of all frames in the page
     // to send the event to, to mitigate side effects from event handlers
     // potentially interfering with others.
-    WillBeHeapVector<RefPtrWillBeMember<Frame>> frames;
+    HeapVector<Member<Frame>> frames;
     for (Frame* f = frame(); f; f = f->tree().traverseNext())
         frames.append(f);
 
@@ -681,14 +681,14 @@
     return m_navigator.get();
 }
 
-void LocalDOMWindow::schedulePostMessage(PassRefPtrWillBeRawPtr<MessageEvent> event, SecurityOrigin* target, PassRefPtr<ScriptCallStack> stackTrace)
+void LocalDOMWindow::schedulePostMessage(RawPtr<MessageEvent> event, SecurityOrigin* target, PassRefPtr<ScriptCallStack> stackTrace)
 {
     // Allowing unbounded amounts of messages to build up for a suspended context
     // is problematic; consider imposing a limit or other restriction if this
     // surfaces often as a problem (see crbug.com/587012).
 
     // Schedule the message.
-    OwnPtrWillBeRawPtr<PostMessageTimer> timer = adoptPtrWillBeNoop(new PostMessageTimer(*this, event, target, stackTrace, UserGestureIndicator::currentToken()));
+    RawPtr<PostMessageTimer> timer = new PostMessageTimer(*this, event, target, stackTrace, UserGestureIndicator::currentToken());
     timer->startOneShot(0, BLINK_FROM_HERE);
     timer->suspendIfNeeded();
     m_postMessageTimers.add(timer.release());
@@ -699,7 +699,7 @@
     if (!isCurrentlyDisplayedInFrame())
         return;
 
-    RefPtrWillBeRawPtr<MessageEvent> event = timer->event();
+    RawPtr<MessageEvent> event = timer->event();
 
     UserGestureIndicator gestureIndicator(timer->userGestureToken());
 
@@ -712,7 +712,7 @@
     m_postMessageTimers.remove(timer);
 }
 
-void LocalDOMWindow::dispatchMessageEventWithOriginCheck(SecurityOrigin* intendedTargetOrigin, PassRefPtrWillBeRawPtr<Event> event, PassRefPtr<ScriptCallStack> stackTrace)
+void LocalDOMWindow::dispatchMessageEventWithOriginCheck(SecurityOrigin* intendedTargetOrigin, RawPtr<Event> event, PassRefPtr<ScriptCallStack> stackTrace)
 {
     if (intendedTargetOrigin) {
         // Check target origin now since the target document may have changed since the timer was scheduled.
@@ -723,7 +723,7 @@
 
         if (!validTarget) {
             String message = ExceptionMessages::failedToExecute("postMessage", "DOMWindow", "The target origin provided ('" + intendedTargetOrigin->toString() + "') does not match the recipient window's origin ('" + document()->getSecurityOrigin()->toString() + "').");
-            RefPtrWillBeRawPtr<ConsoleMessage> consoleMessage = ConsoleMessage::create(SecurityMessageSource, ErrorMessageLevel, message);
+            RawPtr<ConsoleMessage> consoleMessage = ConsoleMessage::create(SecurityMessageSource, ErrorMessageLevel, message);
             consoleMessage->setCallStack(stackTrace);
             frameConsole()->addMessage(consoleMessage.release());
             return;
@@ -862,7 +862,7 @@
 
     // |frame()| can be destructed during |Editor::findString()| via
     // |Document::updateLayout()|, e.g. event handler removes a frame.
-    RefPtrWillBeRawPtr<LocalFrame> protectFrame(frame());
+    RawPtr<LocalFrame> protectFrame(frame());
 
     // FIXME (13016): Support searchInFrames and showDialog
     FindOptions options = (backwards ? Backwards : 0) | (caseSensitive ? 0 : CaseInsensitive) | (wrap ? WrapAround : 0) | (wholeWord ? WholeWord | AtWordStarts : 0);
@@ -1076,13 +1076,13 @@
     return m_media.get();
 }
 
-PassRefPtrWillBeRawPtr<CSSStyleDeclaration> LocalDOMWindow::getComputedStyle(Element* elt, const String& pseudoElt) const
+RawPtr<CSSStyleDeclaration> LocalDOMWindow::getComputedStyle(Element* elt, const String& pseudoElt) const
 {
     ASSERT(elt);
     return CSSComputedStyleDeclaration::create(elt, false, pseudoElt);
 }
 
-PassRefPtrWillBeRawPtr<CSSRuleList> LocalDOMWindow::getMatchedCSSRules(Element* element, const String& pseudoElement) const
+RawPtr<CSSRuleList> LocalDOMWindow::getMatchedCSSRules(Element* element, const String& pseudoElement) const
 {
     if (!element)
         return nullptr;
@@ -1312,9 +1312,9 @@
         document->cancelIdleCallback(id);
 }
 
-bool LocalDOMWindow::addEventListenerInternal(const AtomicString& eventType, PassRefPtrWillBeRawPtr<EventListener> prpListener, const EventListenerOptions& options)
+bool LocalDOMWindow::addEventListenerInternal(const AtomicString& eventType, RawPtr<EventListener> prpListener, const EventListenerOptions& options)
 {
-    RefPtrWillBeRawPtr<EventListener> listener = prpListener;
+    RawPtr<EventListener> listener = prpListener;
     if (!EventTarget::addEventListenerInternal(eventType, listener, options))
         return false;
 
@@ -1346,7 +1346,7 @@
     return true;
 }
 
-bool LocalDOMWindow::removeEventListenerInternal(const AtomicString& eventType, PassRefPtrWillBeRawPtr<EventListener> listener, const EventListenerOptions& options)
+bool LocalDOMWindow::removeEventListenerInternal(const AtomicString& eventType, RawPtr<EventListener> listener, const EventListenerOptions& options)
 {
     if (!EventTarget::removeEventListenerInternal(eventType, listener, options))
         return false;
@@ -1367,11 +1367,11 @@
 
 void LocalDOMWindow::dispatchLoadEvent()
 {
-    RefPtrWillBeRawPtr<Event> loadEvent(Event::create(EventTypeNames::load));
+    RawPtr<Event> loadEvent(Event::create(EventTypeNames::load));
     if (frame() && frame()->loader().documentLoader() && !frame()->loader().documentLoader()->timing().loadEventStart()) {
         // The DocumentLoader (and thus its DocumentLoadTiming) might get destroyed while dispatching
         // the event, so protect it to prevent writing the end time into freed memory.
-        RefPtrWillBeRawPtr<DocumentLoader> documentLoader = frame()->loader().documentLoader();
+        RawPtr<DocumentLoader> documentLoader = frame()->loader().documentLoader();
         DocumentLoadTiming& timing = documentLoader->timing();
         timing.markLoadEventStart();
         dispatchEvent(loadEvent, document());
@@ -1391,12 +1391,12 @@
     InspectorInstrumentation::loadEventFired(frame());
 }
 
-DispatchEventResult LocalDOMWindow::dispatchEvent(PassRefPtrWillBeRawPtr<Event> prpEvent, PassRefPtrWillBeRawPtr<EventTarget> prpTarget)
+DispatchEventResult LocalDOMWindow::dispatchEvent(RawPtr<Event> prpEvent, RawPtr<EventTarget> prpTarget)
 {
     ASSERT(!EventDispatchForbiddenScope::isEventDispatchForbidden());
 
-    RefPtrWillBeRawPtr<EventTarget> protect(this);
-    RefPtrWillBeRawPtr<Event> event = prpEvent;
+    RawPtr<EventTarget> protect(this);
+    RawPtr<Event> event = prpEvent;
 
     event->setTrusted(true);
     event->setTarget(prpTarget ? prpTarget : this);
@@ -1438,7 +1438,7 @@
     frameConsole()->addMessage(ConsoleMessage::create(JSMessageSource, ErrorMessageLevel, message));
 }
 
-PassRefPtrWillBeRawPtr<DOMWindow> LocalDOMWindow::open(const String& urlString, const AtomicString& frameName, const String& windowFeaturesString,
+RawPtr<DOMWindow> LocalDOMWindow::open(const String& urlString, const AtomicString& frameName, const String& windowFeaturesString,
     LocalDOMWindow* callingWindow, LocalDOMWindow* enteredWindow)
 {
     if (!isCurrentlyDisplayedInFrame())
@@ -1492,7 +1492,7 @@
     }
 
     WindowFeatures features(windowFeaturesString);
-    RefPtrWillBeRawPtr<DOMWindow> newWindow = createWindow(urlString, frameName, features, *callingWindow, *firstFrame, *frame());
+    RawPtr<DOMWindow> newWindow = createWindow(urlString, frameName, features, *callingWindow, *firstFrame, *frame());
     return features.noopener ? nullptr : newWindow;
 }
 
diff --git a/third_party/WebKit/Source/core/frame/LocalDOMWindow.h b/third_party/WebKit/Source/core/frame/LocalDOMWindow.h
index 246acb9..8ce40c9 100644
--- a/third_party/WebKit/Source/core/frame/LocalDOMWindow.h
+++ b/third_party/WebKit/Source/core/frame/LocalDOMWindow.h
@@ -63,21 +63,21 @@
 
 // Note: if you're thinking of returning something DOM-related by reference,
 // please ping dcheng@chromium.org first. You probably don't want to do that.
-class CORE_EXPORT LocalDOMWindow final : public DOMWindow, public WillBeHeapSupplementable<LocalDOMWindow>, public DOMWindowLifecycleNotifier {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(LocalDOMWindow);
-    WILL_BE_USING_PRE_FINALIZER(LocalDOMWindow, dispose);
+class CORE_EXPORT LocalDOMWindow final : public DOMWindow, public HeapSupplementable<LocalDOMWindow>, public DOMWindowLifecycleNotifier {
+    USING_GARBAGE_COLLECTED_MIXIN(LocalDOMWindow);
+    USING_PRE_FINALIZER(LocalDOMWindow, dispose);
 public:
-    static PassRefPtrWillBeRawPtr<Document> createDocument(const String& mimeType, const DocumentInit&, bool forceXHTML);
-    static PassRefPtrWillBeRawPtr<LocalDOMWindow> create(LocalFrame& frame)
+    static RawPtr<Document> createDocument(const String& mimeType, const DocumentInit&, bool forceXHTML);
+    static RawPtr<LocalDOMWindow> create(LocalFrame& frame)
     {
-        return adoptRefWillBeNoop(new LocalDOMWindow(frame));
+        return new LocalDOMWindow(frame);
     }
 
     ~LocalDOMWindow() override;
 
     DECLARE_VIRTUAL_TRACE();
 
-    PassRefPtrWillBeRawPtr<Document> installNewDocument(const String& mimeType, const DocumentInit&, bool forceXHTML = false);
+    RawPtr<Document> installNewDocument(const String& mimeType, const DocumentInit&, bool forceXHTML = false);
 
     // EventTarget overrides:
     ExecutionContext* getExecutionContext() const override;
@@ -137,15 +137,15 @@
     void moveTo(int x, int y) const override;
     void resizeBy(int x, int y) const override;
     void resizeTo(int width, int height) const override;
-    PassRefPtrWillBeRawPtr<MediaQueryList> matchMedia(const String&) override;
-    PassRefPtrWillBeRawPtr<CSSStyleDeclaration> getComputedStyle(Element*, const String& pseudoElt) const override;
-    PassRefPtrWillBeRawPtr<CSSRuleList> getMatchedCSSRules(Element*, const String& pseudoElt) const override;
+    RawPtr<MediaQueryList> matchMedia(const String&) override;
+    RawPtr<CSSStyleDeclaration> getComputedStyle(Element*, const String& pseudoElt) const override;
+    RawPtr<CSSRuleList> getMatchedCSSRules(Element*, const String& pseudoElt) const override;
     int requestAnimationFrame(FrameRequestCallback*) override;
     int webkitRequestAnimationFrame(FrameRequestCallback*) override;
     void cancelAnimationFrame(int id) override;
     int requestIdleCallback(IdleRequestCallback*, const IdleRequestOptions&) override;
     void cancelIdleCallback(int id) override;
-    void schedulePostMessage(PassRefPtrWillBeRawPtr<MessageEvent>, SecurityOrigin* target, PassRefPtr<ScriptCallStack>);
+    void schedulePostMessage(RawPtr<MessageEvent>, SecurityOrigin* target, PassRefPtr<ScriptCallStack>);
 
     void registerProperty(DOMWindowProperty*);
     void unregisterProperty(DOMWindowProperty*);
@@ -159,7 +159,7 @@
 
     Element* frameElement() const;
 
-    PassRefPtrWillBeRawPtr<DOMWindow> open(const String& urlString, const AtomicString& frameName, const String& windowFeaturesString,
+    RawPtr<DOMWindow> open(const String& urlString, const AtomicString& frameName, const String& windowFeaturesString,
         LocalDOMWindow* callingWindow, LocalDOMWindow* enteredWindow);
 
     FrameConsole* frameConsole() const;
@@ -168,14 +168,14 @@
 
     void postMessageTimerFired(PostMessageTimer*);
     void removePostMessageTimer(PostMessageTimer*);
-    void dispatchMessageEventWithOriginCheck(SecurityOrigin* intendedTargetOrigin, PassRefPtrWillBeRawPtr<Event>, PassRefPtr<ScriptCallStack>);
+    void dispatchMessageEventWithOriginCheck(SecurityOrigin* intendedTargetOrigin, RawPtr<Event>, PassRefPtr<ScriptCallStack>);
 
     // Events
     // EventTarget API
     void removeAllEventListeners() override;
 
     using EventTarget::dispatchEvent;
-    DispatchEventResult dispatchEvent(PassRefPtrWillBeRawPtr<Event> prpEvent, PassRefPtrWillBeRawPtr<EventTarget> prpTarget);
+    DispatchEventResult dispatchEvent(RawPtr<Event> prpEvent, RawPtr<EventTarget> prpTarget);
 
     void finishedLoading();
 
@@ -186,8 +186,8 @@
     void willDetachDocumentFromFrame();
 
     EventQueue* getEventQueue() const;
-    void enqueueWindowEvent(PassRefPtrWillBeRawPtr<Event>);
-    void enqueueDocumentEvent(PassRefPtrWillBeRawPtr<Event>);
+    void enqueueWindowEvent(RawPtr<Event>);
+    void enqueueDocumentEvent(RawPtr<Event>);
     void enqueuePageshowEvent(PageshowEventPersistence);
     void enqueueHashchangeEvent(const String& oldURL, const String& newURL);
     void enqueuePopstateEvent(PassRefPtr<SerializedScriptValue>);
@@ -202,8 +202,8 @@
 
 protected:
     // EventTarget overrides.
-    bool addEventListenerInternal(const AtomicString& eventType, PassRefPtrWillBeRawPtr<EventListener>, const EventListenerOptions&) override;
-    bool removeEventListenerInternal(const AtomicString& eventType, PassRefPtrWillBeRawPtr<EventListener>, const EventListenerOptions&) override;
+    bool addEventListenerInternal(const AtomicString& eventType, RawPtr<EventListener>, const EventListenerOptions&) override;
+    bool removeEventListenerInternal(const AtomicString& eventType, RawPtr<EventListener>, const EventListenerOptions&) override;
 
 private:
     // Rather than simply inheriting LocalFrameLifecycleObserver like most other
@@ -212,12 +212,10 @@
     // has a frame() accessor that returns Frame* for bindings code, and
     // LocalFrameLifecycleObserver, which has a frame() accessor that returns a
     // LocalFrame*.
-    class WindowFrameObserver final : public NoBaseWillBeGarbageCollected<WindowFrameObserver>, public LocalFrameLifecycleObserver {
-        USING_FAST_MALLOC_WILL_BE_REMOVED(WindowFrameObserver);
-        WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(WindowFrameObserver);
-        DECLARE_EMPTY_VIRTUAL_DESTRUCTOR_WILL_BE_REMOVED(WindowFrameObserver);
+    class WindowFrameObserver final : public GarbageCollected<WindowFrameObserver>, public LocalFrameLifecycleObserver {
+        USING_GARBAGE_COLLECTED_MIXIN(WindowFrameObserver);
     public:
-        static PassOwnPtrWillBeRawPtr<WindowFrameObserver> create(LocalDOMWindow*, LocalFrame&);
+        static RawPtr<WindowFrameObserver> create(LocalDOMWindow*, LocalFrame&);
 
         DECLARE_VIRTUAL_TRACE();
 
@@ -228,7 +226,7 @@
     private:
         WindowFrameObserver(LocalDOMWindow*, LocalFrame&);
 
-        RawPtrWillBeMember<LocalDOMWindow> m_window;
+        Member<LocalDOMWindow> m_window;
     };
     friend WTF::OwnedPtrDeleter<WindowFrameObserver>;
 
@@ -242,37 +240,37 @@
     void willDetachFrameHost();
     void frameDestroyed();
 
-    OwnPtrWillBeMember<WindowFrameObserver> m_frameObserver;
-    RefPtrWillBeMember<Document> m_document;
+    Member<WindowFrameObserver> m_frameObserver;
+    Member<Document> m_document;
 
     bool m_shouldPrintWhenFinishedLoading;
 #if ENABLE(ASSERT)
     bool m_hasBeenReset;
 #endif
 
-    WillBeHeapHashSet<RawPtrWillBeWeakMember<DOMWindowProperty>> m_properties;
+    HeapHashSet<WeakMember<DOMWindowProperty>> m_properties;
 
-    mutable PersistentWillBeMember<Screen> m_screen;
-    mutable PersistentWillBeMember<History> m_history;
-    mutable RefPtrWillBeMember<BarProp> m_locationbar;
-    mutable RefPtrWillBeMember<BarProp> m_menubar;
-    mutable RefPtrWillBeMember<BarProp> m_personalbar;
-    mutable RefPtrWillBeMember<BarProp> m_scrollbars;
-    mutable RefPtrWillBeMember<BarProp> m_statusbar;
-    mutable RefPtrWillBeMember<BarProp> m_toolbar;
-    mutable PersistentWillBeMember<Console> m_console;
-    mutable PersistentWillBeMember<Navigator> m_navigator;
-    mutable RefPtrWillBeMember<StyleMedia> m_media;
+    mutable Member<Screen> m_screen;
+    mutable Member<History> m_history;
+    mutable Member<BarProp> m_locationbar;
+    mutable Member<BarProp> m_menubar;
+    mutable Member<BarProp> m_personalbar;
+    mutable Member<BarProp> m_scrollbars;
+    mutable Member<BarProp> m_statusbar;
+    mutable Member<BarProp> m_toolbar;
+    mutable Member<Console> m_console;
+    mutable Member<Navigator> m_navigator;
+    mutable Member<StyleMedia> m_media;
 
     String m_status;
     String m_defaultStatus;
 
-    mutable PersistentWillBeMember<ApplicationCache> m_applicationCache;
+    mutable Member<ApplicationCache> m_applicationCache;
 
-    RefPtrWillBeMember<DOMWindowEventQueue> m_eventQueue;
+    Member<DOMWindowEventQueue> m_eventQueue;
     RefPtr<SerializedScriptValue> m_pendingStateObject;
 
-    WillBeHeapHashSet<OwnPtrWillBeMember<PostMessageTimer>> m_postMessageTimers;
+    HeapHashSet<Member<PostMessageTimer>> m_postMessageTimers;
 };
 
 DEFINE_TYPE_CASTS(LocalDOMWindow, DOMWindow, x, x->isLocalDOMWindow(), x.isLocalDOMWindow());
diff --git a/third_party/WebKit/Source/core/frame/LocalFrame.cpp b/third_party/WebKit/Source/core/frame/LocalFrame.cpp
index 734c6c38..b8e3f6c 100644
--- a/third_party/WebKit/Source/core/frame/LocalFrame.cpp
+++ b/third_party/WebKit/Source/core/frame/LocalFrame.cpp
@@ -140,8 +140,8 @@
     }
 
 private:
-    RawPtrWillBeMember<const LocalFrame> m_localFrame;
-    RawPtrWillBeMember<Node> m_draggedNode;
+    Member<const LocalFrame> m_localFrame;
+    Member<Node> m_draggedNode;
     FloatRect m_bounds;
     float m_opacity;
     OwnPtr<SkPictureBuilder> m_pictureBuilder;
@@ -165,14 +165,14 @@
 
 } // namespace
 
-PassRefPtrWillBeRawPtr<LocalFrame> LocalFrame::create(FrameLoaderClient* client, FrameHost* host, FrameOwner* owner)
+RawPtr<LocalFrame> LocalFrame::create(FrameLoaderClient* client, FrameHost* host, FrameOwner* owner)
 {
-    RefPtrWillBeRawPtr<LocalFrame> frame = adoptRefWillBeNoop(new LocalFrame(client, host, owner));
+    RawPtr<LocalFrame> frame = new LocalFrame(client, host, owner);
     InspectorInstrumentation::frameAttachedToParent(frame.get());
     return frame.release();
 }
 
-void LocalFrame::setView(PassRefPtrWillBeRawPtr<FrameView> view)
+void LocalFrame::setView(RawPtr<FrameView> view)
 {
     ASSERT(!m_view || m_view != view);
     ASSERT(!document() || !document()->isActive());
@@ -196,7 +196,7 @@
 
     setView(nullptr);
 
-    RefPtrWillBeRawPtr<FrameView> frameView = nullptr;
+    RawPtr<FrameView> frameView = nullptr;
     if (isLocalRoot) {
         frameView = FrameView::create(this, viewportSize);
 
@@ -301,7 +301,7 @@
 
 void LocalFrame::reload(FrameLoadType loadType, ClientRedirectPolicy clientRedirectPolicy)
 {
-    ASSERT(loadType == FrameLoadTypeReload || loadType == FrameLoadTypeReloadFromOrigin);
+    ASSERT(loadType == FrameLoadTypeReload || loadType == FrameLoadTypeReloadBypassingCache);
     ASSERT(clientRedirectPolicy == NotClientRedirect || loadType == FrameLoadTypeReload);
     if (clientRedirectPolicy == NotClientRedirect) {
         if (!m_loader.currentItem())
@@ -320,7 +320,7 @@
     PluginScriptForbiddenScope forbidPluginDestructorScripting;
     // A lot of the following steps can result in the current frame being
     // detached, so protect a reference to it.
-    RefPtrWillBeRawPtr<LocalFrame> protect(this);
+    RawPtr<LocalFrame> protect(this);
     m_loader.stopAllLoaders();
     // Don't allow any new child frames to load in this frame: attaching a new
     // child frame during or after detaching children results in an attached
@@ -410,7 +410,7 @@
         page()->scrollingCoordinator()->willDestroyScrollableArea(m_view.get());
 }
 
-void LocalFrame::setDOMWindow(PassRefPtrWillBeRawPtr<LocalDOMWindow> domWindow)
+void LocalFrame::setDOMWindow(RawPtr<LocalDOMWindow> domWindow)
 {
     // Oilpan: setDOMWindow() cannot be used when finalizing. Which
     // is acceptable as its actions are either not needed or handled
@@ -461,7 +461,7 @@
     if (document())
         document()->didChangeVisibilityState();
 
-    WillBeHeapVector<RefPtrWillBeMember<LocalFrame>> childFrames;
+    HeapVector<Member<LocalFrame>> childFrames;
     for (Frame* child = tree().firstChild(); child; child = child->tree().nextSibling()) {
         if (child->isLocalFrame())
             childFrames.append(toLocalFrame(child));
@@ -523,7 +523,7 @@
     }
 
     // Subframes of the one we're printing don't lay out to the page size.
-    for (RefPtrWillBeRawPtr<Frame> child = tree().firstChild(); child; child = child->tree().nextSibling()) {
+    for (RawPtr<Frame> child = tree().firstChild(); child; child = child->tree().nextSibling()) {
         if (child->isLocalFrame())
             toLocalFrame(child.get())->setPrinting(printing, FloatSize(), FloatSize(), 0);
     }
@@ -600,7 +600,7 @@
     m_pageZoomFactor = pageZoomFactor;
     m_textZoomFactor = textZoomFactor;
 
-    for (RefPtrWillBeRawPtr<Frame> child = tree().firstChild(); child; child = child->tree().nextSibling()) {
+    for (RawPtr<Frame> child = tree().firstChild(); child; child = child->tree().nextSibling()) {
         if (child->isLocalFrame())
             toLocalFrame(child.get())->setPageAndTextZoomFactors(m_pageZoomFactor, m_textZoomFactor);
     }
@@ -612,7 +612,7 @@
 void LocalFrame::deviceScaleFactorChanged()
 {
     document()->mediaQueryAffectingValueChanged();
-    for (RefPtrWillBeRawPtr<Frame> child = tree().firstChild(); child; child = child->tree().nextSibling()) {
+    for (RawPtr<Frame> child = tree().firstChild(); child; child = child->tree().nextSibling()) {
         if (child->isLocalFrame())
             toLocalFrame(child.get())->deviceScaleFactorChanged();
     }
@@ -831,7 +831,7 @@
     , m_editor(Editor::create(*this))
     , m_spellChecker(SpellChecker::create(*this))
     , m_selection(FrameSelection::create(this))
-    , m_eventHandler(adoptPtrWillBeNoop(new EventHandler(this)))
+    , m_eventHandler(new EventHandler(this))
     , m_console(FrameConsole::create(*this))
     , m_inputMethodController(InputMethodController::create(*this))
     , m_navigationDisableCount(0)
diff --git a/third_party/WebKit/Source/core/frame/LocalFrame.h b/third_party/WebKit/Source/core/frame/LocalFrame.h
index 4e488c8..32a5f51 100644
--- a/third_party/WebKit/Source/core/frame/LocalFrame.h
+++ b/third_party/WebKit/Source/core/frame/LocalFrame.h
@@ -77,13 +77,13 @@
 class WebFrameScheduler;
 template <typename Strategy> class PositionWithAffinityTemplate;
 
-class CORE_EXPORT LocalFrame : public Frame, public LocalFrameLifecycleNotifier, public WillBeHeapSupplementable<LocalFrame>, public DisplayItemClient {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(LocalFrame);
+class CORE_EXPORT LocalFrame : public Frame, public LocalFrameLifecycleNotifier, public HeapSupplementable<LocalFrame>, public DisplayItemClient {
+    USING_GARBAGE_COLLECTED_MIXIN(LocalFrame);
 public:
-    static PassRefPtrWillBeRawPtr<LocalFrame> create(FrameLoaderClient*, FrameHost*, FrameOwner*);
+    static RawPtr<LocalFrame> create(FrameLoaderClient*, FrameHost*, FrameOwner*);
 
     void init();
-    void setView(PassRefPtrWillBeRawPtr<FrameView>);
+    void setView(RawPtr<FrameView>);
     void createView(const IntSize&, const Color&, bool,
         ScrollbarMode = ScrollbarAuto, bool horizontalLock = false,
         ScrollbarMode = ScrollbarAuto, bool verticalLock = false);
@@ -106,7 +106,7 @@
     void willDetachFrameHost();
 
     LocalDOMWindow* localDOMWindow() const;
-    void setDOMWindow(PassRefPtrWillBeRawPtr<LocalDOMWindow>);
+    void setDOMWindow(RawPtr<LocalDOMWindow>);
     FrameView* view() const;
     Document* document() const;
     void setPagePopupOwner(Element&);
@@ -205,20 +205,20 @@
     void disableNavigation() { ++m_navigationDisableCount; }
 
     mutable FrameLoader m_loader;
-    OwnPtrWillBeMember<NavigationScheduler> m_navigationScheduler;
+    Member<NavigationScheduler> m_navigationScheduler;
 
-    RefPtrWillBeMember<FrameView> m_view;
-    RefPtrWillBeMember<LocalDOMWindow> m_domWindow;
+    Member<FrameView> m_view;
+    Member<LocalDOMWindow> m_domWindow;
     // Usually 0. Non-null if this is the top frame of PagePopup.
-    RefPtrWillBeMember<Element> m_pagePopupOwner;
+    Member<Element> m_pagePopupOwner;
 
-    const OwnPtrWillBeMember<ScriptController> m_script;
-    const OwnPtrWillBeMember<Editor> m_editor;
-    const OwnPtrWillBeMember<SpellChecker> m_spellChecker;
-    const OwnPtrWillBeMember<FrameSelection> m_selection;
-    const OwnPtrWillBeMember<EventHandler> m_eventHandler;
-    const OwnPtrWillBeMember<FrameConsole> m_console;
-    const OwnPtrWillBeMember<InputMethodController> m_inputMethodController;
+    const Member<ScriptController> m_script;
+    const Member<Editor> m_editor;
+    const Member<SpellChecker> m_spellChecker;
+    const Member<FrameSelection> m_selection;
+    const Member<EventHandler> m_eventHandler;
+    const Member<FrameConsole> m_console;
+    const Member<InputMethodController> m_inputMethodController;
     OwnPtr<WebFrameScheduler> m_frameScheduler;
 
     int m_navigationDisableCount;
@@ -228,7 +228,7 @@
 
     bool m_inViewSourceMode;
 
-    RefPtrWillBeMember<InstrumentingAgents> m_instrumentingAgents;
+    Member<InstrumentingAgents> m_instrumentingAgents;
 };
 
 inline void LocalFrame::init()
@@ -315,7 +315,7 @@
     ~FrameNavigationDisabler();
 
 private:
-    RawPtrWillBeMember<LocalFrame> m_frame;
+    Member<LocalFrame> m_frame;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/frame/Location.cpp b/third_party/WebKit/Source/core/frame/Location.cpp
index 5a4b03d..60e290bb 100644
--- a/third_party/WebKit/Source/core/frame/Location.cpp
+++ b/third_party/WebKit/Source/core/frame/Location.cpp
@@ -117,9 +117,9 @@
     return DOMURLUtilsReadOnly::origin(url());
 }
 
-PassRefPtrWillBeRawPtr<DOMStringList> Location::ancestorOrigins() const
+RawPtr<DOMStringList> Location::ancestorOrigins() const
 {
-    RefPtrWillBeRawPtr<DOMStringList> origins = DOMStringList::create(DOMStringList::Location);
+    RawPtr<DOMStringList> origins = DOMStringList::create(DOMStringList::Location);
     if (!m_frame)
         return origins.release();
     for (Frame* frame = m_frame->tree().parent(); frame; frame = frame->tree().parent())
diff --git a/third_party/WebKit/Source/core/frame/Location.h b/third_party/WebKit/Source/core/frame/Location.h
index 57e3938..ba568d73 100644
--- a/third_party/WebKit/Source/core/frame/Location.h
+++ b/third_party/WebKit/Source/core/frame/Location.h
@@ -49,12 +49,12 @@
 // in a RemoteFrame. Rather than making DOMWindowProperty support RemoteFrames and generating a lot
 // code churn, Location is implemented as a one-off with some custom lifetime management code. Namely,
 // it needs a manual call to reset() from DOMWindow::reset() to ensure it doesn't retain a stale Frame pointer.
-class CORE_EXPORT Location final : public RefCountedWillBeGarbageCollected<Location>, public ScriptWrappable {
+class CORE_EXPORT Location final : public GarbageCollected<Location>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<Location> create(Frame* frame)
+    static RawPtr<Location> create(Frame* frame)
     {
-        return adoptRefWillBeNoop(new Location(frame));
+        return new Location(frame);
     }
 
     Frame* frame() const { return m_frame.get(); }
@@ -83,7 +83,7 @@
     String hash() const;
     String origin() const;
 
-    PassRefPtrWillBeRawPtr<DOMStringList> ancestorOrigins() const;
+    RawPtr<DOMStringList> ancestorOrigins() const;
 
     // Just return the |this| object the way the normal valueOf function on the Object prototype would.
     // The valueOf function is only added to make sure that it cannot be overwritten on location
@@ -100,7 +100,7 @@
 
     const KURL& url() const;
 
-    RawPtrWillBeMember<Frame> m_frame;
+    Member<Frame> m_frame;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/frame/PlatformEventDispatcher.cpp b/third_party/WebKit/Source/core/frame/PlatformEventDispatcher.cpp
index 47426dfc..eacf116c 100644
--- a/third_party/WebKit/Source/core/frame/PlatformEventDispatcher.cpp
+++ b/third_party/WebKit/Source/core/frame/PlatformEventDispatcher.cpp
@@ -51,7 +51,7 @@
         TemporaryChange<bool> changeIsDispatching(m_isDispatching, true);
         // HashSet m_controllers can be updated during an iteration, and it stops the iteration.
         // Thus we store it into a Vector to access all elements.
-        WillBeHeapVector<RawPtrWillBeMember<PlatformEventController>> snapshotVector;
+        HeapVector<Member<PlatformEventController>> snapshotVector;
         copyToVector(m_controllers, snapshotVector);
         for (PlatformEventController* controller : snapshotVector) {
             if (m_controllers.contains(controller))
diff --git a/third_party/WebKit/Source/core/frame/PlatformEventDispatcher.h b/third_party/WebKit/Source/core/frame/PlatformEventDispatcher.h
index 462d4b1..f4e7e24 100644
--- a/third_party/WebKit/Source/core/frame/PlatformEventDispatcher.h
+++ b/third_party/WebKit/Source/core/frame/PlatformEventDispatcher.h
@@ -30,7 +30,7 @@
 private:
     void purgeControllers();
 
-    WillBeHeapHashSet<RawPtrWillBeWeakMember<PlatformEventController>> m_controllers;
+    HeapHashSet<WeakMember<PlatformEventController>> m_controllers;
     bool m_isDispatching;
     bool m_isListening;
 };
diff --git a/third_party/WebKit/Source/core/frame/RemoteDOMWindow.cpp b/third_party/WebKit/Source/core/frame/RemoteDOMWindow.cpp
index a85da55..83c5c704 100644
--- a/third_party/WebKit/Source/core/frame/RemoteDOMWindow.cpp
+++ b/third_party/WebKit/Source/core/frame/RemoteDOMWindow.cpp
@@ -287,19 +287,19 @@
     ASSERT_NOT_REACHED();
 }
 
-PassRefPtrWillBeRawPtr<MediaQueryList> RemoteDOMWindow::matchMedia(const String&)
+RawPtr<MediaQueryList> RemoteDOMWindow::matchMedia(const String&)
 {
     ASSERT_NOT_REACHED();
     return nullptr;
 }
 
-PassRefPtrWillBeRawPtr<CSSStyleDeclaration> RemoteDOMWindow::getComputedStyle(Element*, const String& pseudoElt) const
+RawPtr<CSSStyleDeclaration> RemoteDOMWindow::getComputedStyle(Element*, const String& pseudoElt) const
 {
     ASSERT_NOT_REACHED();
     return nullptr;
 }
 
-PassRefPtrWillBeRawPtr<CSSRuleList> RemoteDOMWindow::getMatchedCSSRules(Element*, const String& pseudoElt) const
+RawPtr<CSSRuleList> RemoteDOMWindow::getMatchedCSSRules(Element*, const String& pseudoElt) const
 {
     ASSERT_NOT_REACHED();
     return nullptr;
diff --git a/third_party/WebKit/Source/core/frame/RemoteDOMWindow.h b/third_party/WebKit/Source/core/frame/RemoteDOMWindow.h
index 73e91131..8760e48 100644
--- a/third_party/WebKit/Source/core/frame/RemoteDOMWindow.h
+++ b/third_party/WebKit/Source/core/frame/RemoteDOMWindow.h
@@ -12,9 +12,9 @@
 
 class RemoteDOMWindow final : public DOMWindow {
 public:
-    static PassRefPtrWillBeRawPtr<RemoteDOMWindow> create(RemoteFrame& frame)
+    static RawPtr<RemoteDOMWindow> create(RemoteFrame& frame)
     {
-        return adoptRefWillBeNoop(new RemoteDOMWindow(frame));
+        return new RemoteDOMWindow(frame);
     }
 
     // EventTarget overrides:
@@ -70,9 +70,9 @@
     void moveTo(int x, int y) const override;
     void resizeBy(int x, int y) const override;
     void resizeTo(int width, int height) const override;
-    PassRefPtrWillBeRawPtr<MediaQueryList> matchMedia(const String&) override;
-    PassRefPtrWillBeRawPtr<CSSStyleDeclaration> getComputedStyle(Element*, const String& pseudoElt) const override;
-    PassRefPtrWillBeRawPtr<CSSRuleList> getMatchedCSSRules(Element*, const String& pseudoElt) const override;
+    RawPtr<MediaQueryList> matchMedia(const String&) override;
+    RawPtr<CSSStyleDeclaration> getComputedStyle(Element*, const String& pseudoElt) const override;
+    RawPtr<CSSRuleList> getMatchedCSSRules(Element*, const String& pseudoElt) const override;
     int requestAnimationFrame(FrameRequestCallback*) override;
     int webkitRequestAnimationFrame(FrameRequestCallback*) override;
     void cancelAnimationFrame(int id) override;
@@ -84,7 +84,7 @@
 private:
     explicit RemoteDOMWindow(RemoteFrame&);
 
-    RawPtrWillBeMember<RemoteFrame> m_frame;
+    Member<RemoteFrame> m_frame;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/frame/RemoteFrame.cpp b/third_party/WebKit/Source/core/frame/RemoteFrame.cpp
index 5ac0489..6ffa31b 100644
--- a/third_party/WebKit/Source/core/frame/RemoteFrame.cpp
+++ b/third_party/WebKit/Source/core/frame/RemoteFrame.cpp
@@ -33,9 +33,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<RemoteFrame> RemoteFrame::create(RemoteFrameClient* client, FrameHost* host, FrameOwner* owner)
+RawPtr<RemoteFrame> RemoteFrame::create(RemoteFrameClient* client, FrameHost* host, FrameOwner* owner)
 {
-    return adoptRefWillBeNoop(new RemoteFrame(client, host, owner));
+    return new RemoteFrame(client, host, owner);
 }
 
 RemoteFrame::~RemoteFrame()
@@ -92,7 +92,7 @@
     // Frame::detach() requires the caller to keep a reference to this, since
     // otherwise it may clear the last reference to this, causing it to be
     // deleted, which can cause a use-after-free.
-    RefPtrWillBeRawPtr<RemoteFrame> protect(this);
+    RawPtr<RemoteFrame> protect(this);
     detachChildren();
     if (!client())
         return;
@@ -143,7 +143,7 @@
         remoteFrameClient()->visibilityChanged(visible);
 }
 
-void RemoteFrame::setView(PassRefPtrWillBeRawPtr<RemoteFrameView> view)
+void RemoteFrame::setView(RawPtr<RemoteFrameView> view)
 {
     // Oilpan: as RemoteFrameView performs no finalization actions,
     // no explicit dispose() of it needed here. (cf. FrameView::dispose().)
diff --git a/third_party/WebKit/Source/core/frame/RemoteFrame.h b/third_party/WebKit/Source/core/frame/RemoteFrame.h
index f7d23fbb..994a1745 100644
--- a/third_party/WebKit/Source/core/frame/RemoteFrame.h
+++ b/third_party/WebKit/Source/core/frame/RemoteFrame.h
@@ -24,7 +24,7 @@
 
 class CORE_EXPORT RemoteFrame: public Frame {
 public:
-    static PassRefPtrWillBeRawPtr<RemoteFrame> create(RemoteFrameClient*, FrameHost*, FrameOwner*);
+    static RawPtr<RemoteFrame> create(RemoteFrameClient*, FrameHost*, FrameOwner*);
 
     ~RemoteFrame() override;
 
@@ -55,7 +55,7 @@
 
     void advanceFocus(WebFocusType, LocalFrame* source);
 
-    void setView(PassRefPtrWillBeRawPtr<RemoteFrameView>);
+    void setView(RawPtr<RemoteFrameView>);
     void createView();
 
     RemoteFrameView* view() const;
@@ -68,10 +68,10 @@
 
     RemoteFrameClient* remoteFrameClient() const;
 
-    RefPtrWillBeMember<RemoteFrameView> m_view;
-    RefPtrWillBeMember<RemoteSecurityContext> m_securityContext;
-    RefPtrWillBeMember<RemoteDOMWindow> m_domWindow;
-    OwnPtrWillBeMember<WindowProxyManager> m_windowProxyManager;
+    Member<RemoteFrameView> m_view;
+    Member<RemoteSecurityContext> m_securityContext;
+    Member<RemoteDOMWindow> m_domWindow;
+    Member<WindowProxyManager> m_windowProxyManager;
     WebLayer* m_remotePlatformLayer;
 };
 
diff --git a/third_party/WebKit/Source/core/frame/RemoteFrameView.cpp b/third_party/WebKit/Source/core/frame/RemoteFrameView.cpp
index 6df7d7c9..719b436 100644
--- a/third_party/WebKit/Source/core/frame/RemoteFrameView.cpp
+++ b/third_party/WebKit/Source/core/frame/RemoteFrameView.cpp
@@ -20,9 +20,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<RemoteFrameView> RemoteFrameView::create(RemoteFrame* remoteFrame)
+RawPtr<RemoteFrameView> RemoteFrameView::create(RemoteFrame* remoteFrame)
 {
-    RefPtrWillBeRawPtr<RemoteFrameView> view = adoptRefWillBeNoop(new RemoteFrameView(remoteFrame));
+    RawPtr<RemoteFrameView> view = new RemoteFrameView(remoteFrame);
     view->show();
     return view.release();
 }
diff --git a/third_party/WebKit/Source/core/frame/RemoteFrameView.h b/third_party/WebKit/Source/core/frame/RemoteFrameView.h
index 70e7148..21548333 100644
--- a/third_party/WebKit/Source/core/frame/RemoteFrameView.h
+++ b/third_party/WebKit/Source/core/frame/RemoteFrameView.h
@@ -15,7 +15,7 @@
 
 class RemoteFrameView final : public Widget {
 public:
-    static PassRefPtrWillBeRawPtr<RemoteFrameView> create(RemoteFrame*);
+    static RawPtr<RemoteFrameView> create(RemoteFrame*);
 
     ~RemoteFrameView() override;
 
@@ -49,7 +49,7 @@
     // and its RemoteFrameView corresponds to that between LocalFrame
     // and FrameView. Please see the FrameView::m_frame comment for
     // details.
-    RefPtrWillBeMember<RemoteFrame> m_remoteFrame;
+    Member<RemoteFrame> m_remoteFrame;
 };
 
 DEFINE_TYPE_CASTS(RemoteFrameView, Widget, widget, widget->isRemoteFrameView(), widget.isRemoteFrameView());
diff --git a/third_party/WebKit/Source/core/frame/RootFrameViewport.h b/third_party/WebKit/Source/core/frame/RootFrameViewport.h
index ef99f10..a2888c4 100644
--- a/third_party/WebKit/Source/core/frame/RootFrameViewport.h
+++ b/third_party/WebKit/Source/core/frame/RootFrameViewport.h
@@ -21,13 +21,12 @@
 // APIs that don't make sense on the combined viewport, the call is delegated to
 // the layout viewport. Thus, we could say this class is a decorator on the
 // FrameView scrollable area that adds pinch-zoom semantics to scrolling.
-class CORE_EXPORT RootFrameViewport final : public NoBaseWillBeGarbageCollectedFinalized<RootFrameViewport>, public ScrollableArea {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(RootFrameViewport);
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(RootFrameViewport);
+class CORE_EXPORT RootFrameViewport final : public GarbageCollectedFinalized<RootFrameViewport>, public ScrollableArea {
+    USING_GARBAGE_COLLECTED_MIXIN(RootFrameViewport);
 public:
-    static PassOwnPtrWillBeRawPtr<RootFrameViewport> create(ScrollableArea& visualViewport, ScrollableArea& layoutViewport)
+    static RawPtr<RootFrameViewport> create(ScrollableArea& visualViewport, ScrollableArea& layoutViewport)
     {
-        return adoptPtrWillBeNoop(new RootFrameViewport(visualViewport, layoutViewport));
+        return new RootFrameViewport(visualViewport, layoutViewport);
     }
 
     DECLARE_VIRTUAL_TRACE();
@@ -88,8 +87,8 @@
     ScrollableArea& visualViewport() const { ASSERT(m_visualViewport); return *m_visualViewport; }
     ScrollableArea& layoutViewport() const { ASSERT(m_layoutViewport); return *m_layoutViewport; }
 
-    RawPtrWillBeMember<ScrollableArea> m_visualViewport;
-    RawPtrWillBeMember<ScrollableArea> m_layoutViewport;
+    Member<ScrollableArea> m_visualViewport;
+    Member<ScrollableArea> m_layoutViewport;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/frame/RootFrameViewportTest.cpp b/third_party/WebKit/Source/core/frame/RootFrameViewportTest.cpp
index e020046b..219693ef 100644
--- a/third_party/WebKit/Source/core/frame/RootFrameViewportTest.cpp
+++ b/third_party/WebKit/Source/core/frame/RootFrameViewportTest.cpp
@@ -23,12 +23,12 @@
 
 namespace blink {
 
-class ScrollableAreaStub : public NoBaseWillBeGarbageCollectedFinalized<ScrollableAreaStub>, public ScrollableArea {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(ScrollableAreaStub);
+class ScrollableAreaStub : public GarbageCollectedFinalized<ScrollableAreaStub>, public ScrollableArea {
+    USING_GARBAGE_COLLECTED_MIXIN(ScrollableAreaStub);
 public:
-    static PassOwnPtrWillBeRawPtr<ScrollableAreaStub> create(const IntSize& viewportSize, const IntSize& contentsSize)
+    static RawPtr<ScrollableAreaStub> create(const IntSize& viewportSize, const IntSize& contentsSize)
     {
-        return adoptPtrWillBeNoop(new ScrollableAreaStub(viewportSize, contentsSize));
+        return new ScrollableAreaStub(viewportSize, contentsSize);
     }
 
     void setViewportSize(const IntSize& viewportSize)
@@ -113,9 +113,9 @@
 
 class RootFrameViewStub : public ScrollableAreaStub {
 public:
-    static PassOwnPtrWillBeRawPtr<RootFrameViewStub> create(const IntSize& viewportSize, const IntSize& contentsSize)
+    static RawPtr<RootFrameViewStub> create(const IntSize& viewportSize, const IntSize& contentsSize)
     {
-        return adoptPtrWillBeNoop(new RootFrameViewStub(viewportSize, contentsSize));
+        return new RootFrameViewStub(viewportSize, contentsSize);
     }
 
     DoublePoint maximumScrollPositionDouble() const override
@@ -135,9 +135,9 @@
 
 class VisualViewportStub : public ScrollableAreaStub {
 public:
-    static PassOwnPtrWillBeRawPtr<VisualViewportStub> create(const IntSize& viewportSize, const IntSize& contentsSize)
+    static RawPtr<VisualViewportStub> create(const IntSize& viewportSize, const IntSize& contentsSize)
     {
-        return adoptPtrWillBeNoop(new VisualViewportStub(viewportSize, contentsSize));
+        return new VisualViewportStub(viewportSize, contentsSize);
     }
 
     DoublePoint maximumScrollPositionDouble() const override
@@ -189,10 +189,10 @@
 TEST_F(RootFrameViewportTest, UserInputScrollable)
 {
     IntSize viewportSize(100, 150);
-    OwnPtrWillBeRawPtr<RootFrameViewStub> layoutViewport = RootFrameViewStub::create(viewportSize, IntSize(200, 300));
-    OwnPtrWillBeRawPtr<VisualViewportStub> visualViewport = VisualViewportStub::create(viewportSize, viewportSize);
+    RawPtr<RootFrameViewStub> layoutViewport = RootFrameViewStub::create(viewportSize, IntSize(200, 300));
+    RawPtr<VisualViewportStub> visualViewport = VisualViewportStub::create(viewportSize, viewportSize);
 
-    OwnPtrWillBeRawPtr<ScrollableArea> rootFrameViewport = RootFrameViewport::create(*visualViewport.get(), *layoutViewport.get());
+    RawPtr<ScrollableArea> rootFrameViewport = RootFrameViewport::create(*visualViewport.get(), *layoutViewport.get());
 
     visualViewport->setScale(2);
 
@@ -250,10 +250,10 @@
 TEST_F(RootFrameViewportTest, TestScrollAnimatorUpdatedBeforeScroll)
 {
     IntSize viewportSize(100, 150);
-    OwnPtrWillBeRawPtr<RootFrameViewStub> layoutViewport = RootFrameViewStub::create(viewportSize, IntSize(200, 300));
-    OwnPtrWillBeRawPtr<VisualViewportStub> visualViewport = VisualViewportStub::create(viewportSize, viewportSize);
+    RawPtr<RootFrameViewStub> layoutViewport = RootFrameViewStub::create(viewportSize, IntSize(200, 300));
+    RawPtr<VisualViewportStub> visualViewport = VisualViewportStub::create(viewportSize, viewportSize);
 
-    OwnPtrWillBeRawPtr<ScrollableArea> rootFrameViewport = RootFrameViewport::create(*visualViewport.get(), *layoutViewport.get());
+    RawPtr<ScrollableArea> rootFrameViewport = RootFrameViewport::create(*visualViewport.get(), *layoutViewport.get());
 
     visualViewport->setScale(2);
 
@@ -289,10 +289,10 @@
 TEST_F(RootFrameViewportTest, ScrollIntoView)
 {
     IntSize viewportSize(100, 150);
-    OwnPtrWillBeRawPtr<RootFrameViewStub> layoutViewport = RootFrameViewStub::create(viewportSize, IntSize(200, 300));
-    OwnPtrWillBeRawPtr<VisualViewportStub> visualViewport = VisualViewportStub::create(viewportSize, viewportSize);
+    RawPtr<RootFrameViewStub> layoutViewport = RootFrameViewStub::create(viewportSize, IntSize(200, 300));
+    RawPtr<VisualViewportStub> visualViewport = VisualViewportStub::create(viewportSize, viewportSize);
 
-    OwnPtrWillBeRawPtr<ScrollableArea> rootFrameViewport = RootFrameViewport::create(*visualViewport.get(), *layoutViewport.get());
+    RawPtr<ScrollableArea> rootFrameViewport = RootFrameViewport::create(*visualViewport.get(), *layoutViewport.get());
 
     // Test that the visual viewport is scrolled if the viewport has been
     // resized (as is the case when the ChromeOS keyboard comes up) but not
@@ -364,10 +364,10 @@
 TEST_F(RootFrameViewportTest, SetScrollPosition)
 {
     IntSize viewportSize(500, 500);
-    OwnPtrWillBeRawPtr<RootFrameViewStub> layoutViewport = RootFrameViewStub::create(viewportSize, IntSize(1000, 2000));
-    OwnPtrWillBeRawPtr<VisualViewportStub> visualViewport = VisualViewportStub::create(viewportSize, viewportSize);
+    RawPtr<RootFrameViewStub> layoutViewport = RootFrameViewStub::create(viewportSize, IntSize(1000, 2000));
+    RawPtr<VisualViewportStub> visualViewport = VisualViewportStub::create(viewportSize, viewportSize);
 
-    OwnPtrWillBeRawPtr<ScrollableArea> rootFrameViewport = RootFrameViewport::create(*visualViewport.get(), *layoutViewport.get());
+    RawPtr<ScrollableArea> rootFrameViewport = RootFrameViewport::create(*visualViewport.get(), *layoutViewport.get());
 
     visualViewport->setScale(2);
 
@@ -399,10 +399,10 @@
 TEST_F(RootFrameViewportTest, VisibleContentRect)
 {
     IntSize viewportSize(500, 401);
-    OwnPtrWillBeRawPtr<RootFrameViewStub> layoutViewport = RootFrameViewStub::create(viewportSize, IntSize(1000, 2000));
-    OwnPtrWillBeRawPtr<VisualViewportStub> visualViewport = VisualViewportStub::create(viewportSize, viewportSize);
+    RawPtr<RootFrameViewStub> layoutViewport = RootFrameViewStub::create(viewportSize, IntSize(1000, 2000));
+    RawPtr<VisualViewportStub> visualViewport = VisualViewportStub::create(viewportSize, viewportSize);
 
-    OwnPtrWillBeRawPtr<ScrollableArea> rootFrameViewport = RootFrameViewport::create(*visualViewport.get(), *layoutViewport.get());
+    RawPtr<ScrollableArea> rootFrameViewport = RootFrameViewport::create(*visualViewport.get(), *layoutViewport.get());
 
     rootFrameViewport->setScrollPosition(DoublePoint(100, 75), ProgrammaticScroll);
 
@@ -424,10 +424,10 @@
 TEST_F(RootFrameViewportTest, ViewportScrollOrder)
 {
     IntSize viewportSize(100, 100);
-    OwnPtrWillBeRawPtr<RootFrameViewStub> layoutViewport = RootFrameViewStub::create(viewportSize, IntSize(200, 300));
-    OwnPtrWillBeRawPtr<VisualViewportStub> visualViewport = VisualViewportStub::create(viewportSize, viewportSize);
+    RawPtr<RootFrameViewStub> layoutViewport = RootFrameViewStub::create(viewportSize, IntSize(200, 300));
+    RawPtr<VisualViewportStub> visualViewport = VisualViewportStub::create(viewportSize, viewportSize);
 
-    OwnPtrWillBeRawPtr<ScrollableArea> rootFrameViewport =
+    RawPtr<ScrollableArea> rootFrameViewport =
         RootFrameViewport::create(*visualViewport.get(), *layoutViewport.get());
 
     visualViewport->setScale(2);
diff --git a/third_party/WebKit/Source/core/frame/SmartClip.cpp b/third_party/WebKit/Source/core/frame/SmartClip.cpp
index db6f02a1..e4edf18e 100644
--- a/third_party/WebKit/Source/core/frame/SmartClip.cpp
+++ b/third_party/WebKit/Source/core/frame/SmartClip.cpp
@@ -69,7 +69,7 @@
     return m_string;
 }
 
-SmartClip::SmartClip(PassRefPtrWillBeRawPtr<LocalFrame> frame)
+SmartClip::SmartClip(RawPtr<LocalFrame> frame)
     : m_frame(frame)
 {
 }
@@ -86,7 +86,7 @@
             bestNode = bestNodeInFrame;
     }
 
-    WillBeHeapVector<RawPtrWillBeMember<Node>> hitNodes;
+    HeapVector<Member<Node>> hitNodes;
     collectOverlappingChildNodes(bestNode, cropRectInViewport, hitNodes);
 
     if (hitNodes.isEmpty() || hitNodes.size() == bestNode->countChildren()) {
@@ -214,7 +214,7 @@
     return false;
 }
 
-void SmartClip::collectOverlappingChildNodes(Node* parentNode, const IntRect& cropRectInViewport, WillBeHeapVector<RawPtrWillBeMember<Node>>& hitNodes)
+void SmartClip::collectOverlappingChildNodes(Node* parentNode, const IntRect& cropRectInViewport, HeapVector<Member<Node>>& hitNodes)
 {
     if (!parentNode)
         return;
diff --git a/third_party/WebKit/Source/core/frame/SmartClip.h b/third_party/WebKit/Source/core/frame/SmartClip.h
index 48da0cfd..c6417c8 100644
--- a/third_party/WebKit/Source/core/frame/SmartClip.h
+++ b/third_party/WebKit/Source/core/frame/SmartClip.h
@@ -70,7 +70,7 @@
 class CORE_EXPORT SmartClip {
     STACK_ALLOCATED();
 public:
-    explicit SmartClip(PassRefPtrWillBeRawPtr<LocalFrame>);
+    explicit SmartClip(RawPtr<LocalFrame>);
 
     SmartClipData dataForRect(const IntRect&);
 
@@ -80,10 +80,10 @@
     Node* minNodeContainsNodes(Node* minNode, Node* newNode);
     Node* findBestOverlappingNode(Node*, const IntRect& cropRectInViewport);
     bool shouldSkipBackgroundImage(Node*);
-    void collectOverlappingChildNodes(Node* parentNode, const IntRect& cropRectInViewport, WillBeHeapVector<RawPtrWillBeMember<Node>>& overlappingNodeInfoTable);
+    void collectOverlappingChildNodes(Node* parentNode, const IntRect& cropRectInViewport, HeapVector<Member<Node>>& overlappingNodeInfoTable);
     String extractTextFromNode(Node*);
 
-    RefPtrWillBeMember<LocalFrame> m_frame;
+    Member<LocalFrame> m_frame;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/frame/SubresourceIntegrityTest.cpp b/third_party/WebKit/Source/core/frame/SubresourceIntegrityTest.cpp
index c7c1f87..970e0bde 100644
--- a/third_party/WebKit/Source/core/frame/SubresourceIntegrityTest.cpp
+++ b/third_party/WebKit/Source/core/frame/SubresourceIntegrityTest.cpp
@@ -159,7 +159,7 @@
         EXPECT_FALSE(SubresourceIntegrity::CheckSubresourceIntegrity(*scriptElement, script, size, url, *createTestResource(url, requestorUrl, corsStatus).get()));
     }
 
-    PassRefPtrWillBeRawPtr<Resource> createTestResource(const KURL& url, const KURL& allowOriginUrl, CorsStatus corsStatus)
+    RawPtr<Resource> createTestResource(const KURL& url, const KURL& allowOriginUrl, CorsStatus corsStatus)
     {
         ResourceResponse response;
         response.setURL(url);
@@ -168,7 +168,7 @@
             response.setHTTPHeaderField("access-control-allow-origin", SecurityOrigin::create(allowOriginUrl)->toAtomicString());
             response.setHTTPHeaderField("access-control-allow-credentials", "true");
         }
-        RefPtrWillBeRawPtr<Resource> resource = Resource::create(ResourceRequest(response.url()), Resource::Raw);
+        RawPtr<Resource> resource = Resource::create(ResourceRequest(response.url()), Resource::Raw);
         resource->setResponse(response);
         return resource;
     }
@@ -178,8 +178,8 @@
     RefPtr<SecurityOrigin> secureOrigin;
     RefPtr<SecurityOrigin> insecureOrigin;
 
-    RefPtrWillBePersistent<Document> document;
-    RefPtrWillBePersistent<HTMLScriptElement> scriptElement;
+    Persistent<Document> document;
+    Persistent<HTMLScriptElement> scriptElement;
 };
 
 TEST_F(SubresourceIntegrityTest, Prioritization)
diff --git a/third_party/WebKit/Source/core/frame/TopControls.h b/third_party/WebKit/Source/core/frame/TopControls.h
index 57039a2..7236585 100644
--- a/third_party/WebKit/Source/core/frame/TopControls.h
+++ b/third_party/WebKit/Source/core/frame/TopControls.h
@@ -19,12 +19,11 @@
 // duplicating cc::TopControlsManager behaviour.  Top controls' self-animation
 // to completion is still handled by compositor and kicks in when scrolling is
 // complete (i.e, upon ScrollEnd or FlingEnd).
-class CORE_EXPORT TopControls final : public NoBaseWillBeGarbageCollectedFinalized<TopControls> {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(TopControls);
+class CORE_EXPORT TopControls final : public GarbageCollectedFinalized<TopControls> {
 public:
-    static PassOwnPtrWillBeRawPtr<TopControls> create(const FrameHost& host)
+    static RawPtr<TopControls> create(const FrameHost& host)
     {
-        return adoptPtrWillBeNoop(new TopControls(host));
+        return new TopControls(host);
     }
 
     ~TopControls();
@@ -55,7 +54,7 @@
     explicit TopControls(const FrameHost&);
     void resetBaseline();
 
-    RawPtrWillBeMember<const FrameHost> m_frameHost;
+    Member<const FrameHost> m_frameHost;
 
     // The top controls height regardless of whether it is visible or not.
     float m_height;
diff --git a/third_party/WebKit/Source/core/frame/VisualViewport.h b/third_party/WebKit/Source/core/frame/VisualViewport.h
index 0fa9a66..749c3a2 100644
--- a/third_party/WebKit/Source/core/frame/VisualViewport.h
+++ b/third_party/WebKit/Source/core/frame/VisualViewport.h
@@ -61,12 +61,12 @@
 // offset is set through the GraphicsLayer <-> CC sync mechanisms. Its contents is the page's
 // main FrameView, which corresponds to the outer viewport. The inner viewport is always contained
 // in the outer viewport and can pan within it.
-class CORE_EXPORT VisualViewport final : public NoBaseWillBeGarbageCollectedFinalized<VisualViewport>, public GraphicsLayerClient, public ScrollableArea {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(VisualViewport);
+class CORE_EXPORT VisualViewport final : public GarbageCollectedFinalized<VisualViewport>, public GraphicsLayerClient, public ScrollableArea {
+    USING_GARBAGE_COLLECTED_MIXIN(VisualViewport);
 public:
-    static PassOwnPtrWillBeRawPtr<VisualViewport> create(FrameHost& host)
+    static RawPtr<VisualViewport> create(FrameHost& host)
     {
-        return adoptPtrWillBeNoop(new VisualViewport(host));
+        return new VisualViewport(host);
     }
     ~VisualViewport() override;
 
@@ -228,7 +228,7 @@
         return *m_frameHost;
     }
 
-    RawPtrWillBeMember<FrameHost> m_frameHost;
+    Member<FrameHost> m_frameHost;
     OwnPtr<GraphicsLayer> m_rootTransformLayer;
     OwnPtr<GraphicsLayer> m_innerViewportContainerLayer;
     OwnPtr<GraphicsLayer> m_overscrollElasticityLayer;
diff --git a/third_party/WebKit/Source/core/frame/csp/CSPDirective.h b/third_party/WebKit/Source/core/frame/csp/CSPDirective.h
index e8a1cfb..3ec8d343 100644
--- a/third_party/WebKit/Source/core/frame/csp/CSPDirective.h
+++ b/third_party/WebKit/Source/core/frame/csp/CSPDirective.h
@@ -12,8 +12,7 @@
 
 class ContentSecurityPolicy;
 
-class CSPDirective : public NoBaseWillBeGarbageCollectedFinalized<CSPDirective> {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(CSPDirective);
+class CSPDirective : public GarbageCollectedFinalized<CSPDirective> {
     WTF_MAKE_NONCOPYABLE(CSPDirective);
 public:
     CSPDirective(const String& name, const String& value, ContentSecurityPolicy* policy)
@@ -33,7 +32,7 @@
 private:
     String m_name;
     String m_text;
-    RawPtrWillBeMember<ContentSecurityPolicy> m_policy;
+    Member<ContentSecurityPolicy> m_policy;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/frame/csp/CSPDirectiveList.cpp b/third_party/WebKit/Source/core/frame/csp/CSPDirectiveList.cpp
index 4c0e50ec..1fcf8b49f 100644
--- a/third_party/WebKit/Source/core/frame/csp/CSPDirectiveList.cpp
+++ b/third_party/WebKit/Source/core/frame/csp/CSPDirectiveList.cpp
@@ -57,9 +57,9 @@
     m_reportOnly = type == ContentSecurityPolicyHeaderTypeReport;
 }
 
-PassOwnPtrWillBeRawPtr<CSPDirectiveList> CSPDirectiveList::create(ContentSecurityPolicy* policy, const UChar* begin, const UChar* end, ContentSecurityPolicyHeaderType type, ContentSecurityPolicyHeaderSource source)
+RawPtr<CSPDirectiveList> CSPDirectiveList::create(ContentSecurityPolicy* policy, const UChar* begin, const UChar* end, ContentSecurityPolicyHeaderType type, ContentSecurityPolicyHeaderSource source)
 {
-    OwnPtrWillBeRawPtr<CSPDirectiveList> directives = adoptPtrWillBeNoop(new CSPDirectiveList(policy, type, source));
+    RawPtr<CSPDirectiveList> directives = new CSPDirectiveList(policy, type, source);
     directives->parse(begin, end);
 
     if (!directives->checkEval(directives->operativeDirective(directives->m_scriptSrc.get()))) {
@@ -102,7 +102,7 @@
     // never get thrown in report-only mode because the caller won't see
     // a violation.)
     if (m_reportOnly || exceptionStatus == ContentSecurityPolicy::WillNotThrowException) {
-        RefPtrWillBeRawPtr<ConsoleMessage> consoleMessage = ConsoleMessage::create(SecurityMessageSource, ErrorMessageLevel, reportMessage);
+        RawPtr<ConsoleMessage> consoleMessage = ConsoleMessage::create(SecurityMessageSource, ErrorMessageLevel, reportMessage);
         consoleMessage->setScriptState(scriptState);
         m_policy->logToConsole(consoleMessage.release());
     }
@@ -562,13 +562,13 @@
 
 
 template<class CSPDirectiveType>
-void CSPDirectiveList::setCSPDirective(const String& name, const String& value, OwnPtrWillBeMember<CSPDirectiveType>& directive)
+void CSPDirectiveList::setCSPDirective(const String& name, const String& value, Member<CSPDirectiveType>& directive)
 {
     if (directive) {
         m_policy->reportDuplicateDirective(name);
         return;
     }
-    directive = adoptPtrWillBeNoop(new CSPDirectiveType(name, value, m_policy));
+    directive = new CSPDirectiveType(name, value, m_policy);
 }
 
 void CSPDirectiveList::applySandboxPolicy(const String& name, const String& sandboxPolicy)
diff --git a/third_party/WebKit/Source/core/frame/csp/CSPDirectiveList.h b/third_party/WebKit/Source/core/frame/csp/CSPDirectiveList.h
index d8c1400..db5ccdf8 100644
--- a/third_party/WebKit/Source/core/frame/csp/CSPDirectiveList.h
+++ b/third_party/WebKit/Source/core/frame/csp/CSPDirectiveList.h
@@ -22,11 +22,10 @@
 
 class ContentSecurityPolicy;
 
-class CSPDirectiveList : public NoBaseWillBeGarbageCollectedFinalized<CSPDirectiveList> {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(CSPDirectiveList);
+class CSPDirectiveList : public GarbageCollectedFinalized<CSPDirectiveList> {
     WTF_MAKE_NONCOPYABLE(CSPDirectiveList);
 public:
-    static PassOwnPtrWillBeRawPtr<CSPDirectiveList> create(ContentSecurityPolicy*, const UChar* begin, const UChar* end, ContentSecurityPolicyHeaderType, ContentSecurityPolicyHeaderSource);
+    static RawPtr<CSPDirectiveList> create(ContentSecurityPolicy*, const UChar* begin, const UChar* end, ContentSecurityPolicyHeaderType, ContentSecurityPolicyHeaderSource);
 
     void parse(const UChar* begin, const UChar* end);
 
@@ -98,7 +97,7 @@
     void treatAsPublicAddress(const String& name, const String& value);
 
     template <class CSPDirectiveType>
-    void setCSPDirective(const String& name, const String& value, OwnPtrWillBeMember<CSPDirectiveType>&);
+    void setCSPDirective(const String& name, const String& value, Member<CSPDirectiveType>&);
 
     SourceListDirective* operativeDirective(SourceListDirective*) const;
     SourceListDirective* operativeDirective(SourceListDirective*, SourceListDirective* override) const;
@@ -127,7 +126,7 @@
 
     bool denyIfEnforcingPolicy() const { return m_reportOnly; }
 
-    RawPtrWillBeMember<ContentSecurityPolicy> m_policy;
+    Member<ContentSecurityPolicy> m_policy;
 
     String m_header;
     ContentSecurityPolicyHeaderType m_headerType;
@@ -145,21 +144,21 @@
     bool m_upgradeInsecureRequests;
     bool m_treatAsPublicAddress;
 
-    OwnPtrWillBeMember<MediaListDirective> m_pluginTypes;
-    OwnPtrWillBeMember<SourceListDirective> m_baseURI;
-    OwnPtrWillBeMember<SourceListDirective> m_childSrc;
-    OwnPtrWillBeMember<SourceListDirective> m_connectSrc;
-    OwnPtrWillBeMember<SourceListDirective> m_defaultSrc;
-    OwnPtrWillBeMember<SourceListDirective> m_fontSrc;
-    OwnPtrWillBeMember<SourceListDirective> m_formAction;
-    OwnPtrWillBeMember<SourceListDirective> m_frameAncestors;
-    OwnPtrWillBeMember<SourceListDirective> m_frameSrc;
-    OwnPtrWillBeMember<SourceListDirective> m_imgSrc;
-    OwnPtrWillBeMember<SourceListDirective> m_mediaSrc;
-    OwnPtrWillBeMember<SourceListDirective> m_manifestSrc;
-    OwnPtrWillBeMember<SourceListDirective> m_objectSrc;
-    OwnPtrWillBeMember<SourceListDirective> m_scriptSrc;
-    OwnPtrWillBeMember<SourceListDirective> m_styleSrc;
+    Member<MediaListDirective> m_pluginTypes;
+    Member<SourceListDirective> m_baseURI;
+    Member<SourceListDirective> m_childSrc;
+    Member<SourceListDirective> m_connectSrc;
+    Member<SourceListDirective> m_defaultSrc;
+    Member<SourceListDirective> m_fontSrc;
+    Member<SourceListDirective> m_formAction;
+    Member<SourceListDirective> m_frameAncestors;
+    Member<SourceListDirective> m_frameSrc;
+    Member<SourceListDirective> m_imgSrc;
+    Member<SourceListDirective> m_mediaSrc;
+    Member<SourceListDirective> m_manifestSrc;
+    Member<SourceListDirective> m_objectSrc;
+    Member<SourceListDirective> m_scriptSrc;
+    Member<SourceListDirective> m_styleSrc;
 
     Vector<String> m_reportEndpoints;
 
diff --git a/third_party/WebKit/Source/core/frame/csp/CSPSource.h b/third_party/WebKit/Source/core/frame/csp/CSPSource.h
index 60589ea..4da4c9c 100644
--- a/third_party/WebKit/Source/core/frame/csp/CSPSource.h
+++ b/third_party/WebKit/Source/core/frame/csp/CSPSource.h
@@ -16,8 +16,7 @@
 class ContentSecurityPolicy;
 class KURL;
 
-class CORE_EXPORT CSPSource : public NoBaseWillBeGarbageCollectedFinalized<CSPSource> {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(CSPSource);
+class CORE_EXPORT CSPSource : public GarbageCollectedFinalized<CSPSource> {
 public:
     enum WildcardDisposition {
         HasWildcard,
@@ -36,7 +35,7 @@
     bool portMatches(const KURL&) const;
     bool isSchemeOnly() const;
 
-    RawPtrWillBeMember<ContentSecurityPolicy> m_policy;
+    Member<ContentSecurityPolicy> m_policy;
     String m_scheme;
     String m_host;
     int m_port;
diff --git a/third_party/WebKit/Source/core/frame/csp/CSPSourceList.cpp b/third_party/WebKit/Source/core/frame/csp/CSPSourceList.cpp
index 1fafc3d..42d4c08 100644
--- a/third_party/WebKit/Source/core/frame/csp/CSPSourceList.cpp
+++ b/third_party/WebKit/Source/core/frame/csp/CSPSourceList.cpp
@@ -130,7 +130,7 @@
                 continue;
             if (m_policy->isDirectiveName(host))
                 m_policy->reportDirectiveAsSourceExpression(m_directiveName, host);
-            m_list.append(adoptPtrWillBeNoop(new CSPSource(m_policy, scheme, host, port, path, hostWildcard, portWildcard)));
+            m_list.append(new CSPSource(m_policy, scheme, host, port, path, hostWildcard, portWildcard));
         } else {
             m_policy->reportInvalidSourceExpression(m_directiveName, String(beginSource, position - beginSource));
         }
diff --git a/third_party/WebKit/Source/core/frame/csp/CSPSourceList.h b/third_party/WebKit/Source/core/frame/csp/CSPSourceList.h
index 9d2822f..4850102 100644
--- a/third_party/WebKit/Source/core/frame/csp/CSPSourceList.h
+++ b/third_party/WebKit/Source/core/frame/csp/CSPSourceList.h
@@ -56,8 +56,8 @@
 
     bool hasSourceMatchInList(const KURL&, ContentSecurityPolicy::RedirectStatus) const;
 
-    RawPtrWillBeMember<ContentSecurityPolicy> m_policy;
-    WillBeHeapVector<OwnPtrWillBeMember<CSPSource>> m_list;
+    Member<ContentSecurityPolicy> m_policy;
+    HeapVector<Member<CSPSource>> m_list;
     String m_directiveName;
     bool m_allowSelf;
     bool m_allowStar;
diff --git a/third_party/WebKit/Source/core/frame/csp/CSPSourceListTest.cpp b/third_party/WebKit/Source/core/frame/csp/CSPSourceListTest.cpp
index 73b05a00..4b5a81d 100644
--- a/third_party/WebKit/Source/core/frame/csp/CSPSourceListTest.cpp
+++ b/third_party/WebKit/Source/core/frame/csp/CSPSourceListTest.cpp
@@ -31,8 +31,8 @@
         csp->bindToExecutionContext(document.get());
     }
 
-    RefPtrWillBePersistent<ContentSecurityPolicy> csp;
-    RefPtrWillBePersistent<Document> document;
+    Persistent<ContentSecurityPolicy> csp;
+    Persistent<Document> document;
 };
 
 static void parseSourceList(CSPSourceList& sourceList, String& sources)
diff --git a/third_party/WebKit/Source/core/frame/csp/CSPSourceTest.cpp b/third_party/WebKit/Source/core/frame/csp/CSPSourceTest.cpp
index 53c4e46..97f21be 100644
--- a/third_party/WebKit/Source/core/frame/csp/CSPSourceTest.cpp
+++ b/third_party/WebKit/Source/core/frame/csp/CSPSourceTest.cpp
@@ -20,7 +20,7 @@
     }
 
 protected:
-    RefPtrWillBePersistent<ContentSecurityPolicy> csp;
+    Persistent<ContentSecurityPolicy> csp;
 };
 
 TEST_F(CSPSourceTest, BasicMatching)
diff --git a/third_party/WebKit/Source/core/frame/csp/ContentSecurityPolicy.cpp b/third_party/WebKit/Source/core/frame/csp/ContentSecurityPolicy.cpp
index 9b2e67a..d4f207b 100644
--- a/third_party/WebKit/Source/core/frame/csp/ContentSecurityPolicy.cpp
+++ b/third_party/WebKit/Source/core/frame/csp/ContentSecurityPolicy.cpp
@@ -163,7 +163,7 @@
     ASSERT(getSecurityOrigin());
     // Ensure that 'self' processes correctly.
     m_selfProtocol = getSecurityOrigin()->protocol();
-    m_selfSource = adoptPtrWillBeNoop(new CSPSource(this, m_selfProtocol, getSecurityOrigin()->host(), getSecurityOrigin()->port(), String(), CSPSource::NoWildcard, CSPSource::NoWildcard));
+    m_selfSource = new CSPSource(this, m_selfProtocol, getSecurityOrigin()->host(), getSecurityOrigin()->port(), String(), CSPSource::NoWildcard, CSPSource::NoWildcard);
 
     if (didSetReferrerPolicy())
         m_executionContext->setReferrerPolicy(m_referrerPolicy);
@@ -278,7 +278,7 @@
 
         // header1,header2 OR header1
         //        ^                  ^
-        OwnPtrWillBeMember<CSPDirectiveList> policy = CSPDirectiveList::create(this, begin, position, type, source);
+        Member<CSPDirectiveList> policy = CSPDirectiveList::create(this, begin, position, type, source);
 
         // When a referrer policy has already been set, the most recent
         // one takes precedence.
@@ -309,7 +309,7 @@
     // be overwritten when we bind this object to an execution context.
     RefPtr<SecurityOrigin> origin = SecurityOrigin::create(url);
     m_selfProtocol = origin->protocol();
-    m_selfSource = adoptPtrWillBeNoop(new CSPSource(this, m_selfProtocol, origin->host(), origin->port(), String(), CSPSource::NoWildcard, CSPSource::NoWildcard));
+    m_selfSource = new CSPSource(this, m_selfProtocol, origin->host(), origin->port(), String(), CSPSource::NoWildcard, CSPSource::NoWildcard);
 }
 
 const PassOwnPtr<Vector<CSPHeaderAndType>> ContentSecurityPolicy::headers() const
@@ -995,7 +995,7 @@
     logToConsole(ConsoleMessage::create(SecurityMessageSource, level, message));
 }
 
-void ContentSecurityPolicy::logToConsole(PassRefPtrWillBeRawPtr<ConsoleMessage> consoleMessage, LocalFrame* frame)
+void ContentSecurityPolicy::logToConsole(RawPtr<ConsoleMessage> consoleMessage, LocalFrame* frame)
 {
     if (frame)
         frame->document()->addConsoleMessage(consoleMessage);
diff --git a/third_party/WebKit/Source/core/frame/csp/ContentSecurityPolicy.h b/third_party/WebKit/Source/core/frame/csp/ContentSecurityPolicy.h
index 1df39f2..89982dd 100644
--- a/third_party/WebKit/Source/core/frame/csp/ContentSecurityPolicy.h
+++ b/third_party/WebKit/Source/core/frame/csp/ContentSecurityPolicy.h
@@ -62,12 +62,11 @@
 class SecurityOrigin;
 
 typedef int SandboxFlags;
-typedef WillBeHeapVector<OwnPtrWillBeMember<CSPDirectiveList>> CSPDirectiveListVector;
-typedef WillBeHeapVector<RefPtrWillBeMember<ConsoleMessage>> ConsoleMessageVector;
+typedef HeapVector<Member<CSPDirectiveList>> CSPDirectiveListVector;
+typedef HeapVector<Member<ConsoleMessage>> ConsoleMessageVector;
 typedef std::pair<String, ContentSecurityPolicyHeaderType> CSPHeaderAndType;
 
-class CORE_EXPORT ContentSecurityPolicy : public RefCountedWillBeGarbageCollectedFinalized<ContentSecurityPolicy> {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(ContentSecurityPolicy);
+class CORE_EXPORT ContentSecurityPolicy : public GarbageCollectedFinalized<ContentSecurityPolicy> {
 public:
     // CSP Level 1 Directives
     static const char ConnectSrc[];
@@ -132,9 +131,9 @@
         URLViolation
     };
 
-    static PassRefPtrWillBeRawPtr<ContentSecurityPolicy> create()
+    static RawPtr<ContentSecurityPolicy> create()
     {
-        return adoptRefWillBeNoop(new ContentSecurityPolicy());
+        return new ContentSecurityPolicy();
     }
     ~ContentSecurityPolicy();
     DECLARE_TRACE();
@@ -215,7 +214,7 @@
 
     // If a frame is passed in, the message will be logged to its active document's console.
     // Otherwise, the message will be logged to this object's |m_executionContext|.
-    void logToConsole(PassRefPtrWillBeRawPtr<ConsoleMessage>, LocalFrame* = nullptr);
+    void logToConsole(RawPtr<ConsoleMessage>, LocalFrame* = nullptr);
 
     void reportDirectiveAsSourceExpression(const String& directiveName, const String& sourceExpression);
     void reportDuplicateDirective(const String&);
@@ -286,7 +285,7 @@
     bool shouldSendViolationReport(const String&) const;
     void didSendViolationReport(const String&);
 
-    RawPtrWillBeMember<ExecutionContext> m_executionContext;
+    Member<ExecutionContext> m_executionContext;
     bool m_overrideInlineStyleAllowed;
     CSPDirectiveListVector m_policies;
     ConsoleMessageVector m_consoleMessages;
@@ -307,7 +306,7 @@
     String m_disableEvalErrorMessage;
     SecurityContext::InsecureRequestsPolicy m_insecureRequestsPolicy;
 
-    OwnPtrWillBeMember<CSPSource> m_selfSource;
+    Member<CSPSource> m_selfSource;
     String m_selfProtocol;
 };
 
diff --git a/third_party/WebKit/Source/core/frame/csp/ContentSecurityPolicyTest.cpp b/third_party/WebKit/Source/core/frame/csp/ContentSecurityPolicyTest.cpp
index b3f5d81d9..5b5ceec 100644
--- a/third_party/WebKit/Source/core/frame/csp/ContentSecurityPolicyTest.cpp
+++ b/third_party/WebKit/Source/core/frame/csp/ContentSecurityPolicyTest.cpp
@@ -32,10 +32,10 @@
         document->setSecurityOrigin(secureOrigin);
     }
 
-    RefPtrWillBePersistent<ContentSecurityPolicy> csp;
+    Persistent<ContentSecurityPolicy> csp;
     KURL secureURL;
     RefPtr<SecurityOrigin> secureOrigin;
-    RefPtrWillBePersistent<Document> document;
+    Persistent<Document> document;
 };
 
 TEST_F(ContentSecurityPolicyTest, ParseUpgradeInsecureRequestsEnabled)
@@ -88,7 +88,7 @@
     KURL exampleUrl(KURL(), "http://example.com");
     KURL notExampleUrl(KURL(), "http://not-example.com");
 
-    RefPtrWillBeRawPtr<ContentSecurityPolicy> csp2 = ContentSecurityPolicy::create();
+    RawPtr<ContentSecurityPolicy> csp2 = ContentSecurityPolicy::create();
     csp2->copyStateFrom(csp.get());
     EXPECT_FALSE(csp2->allowScriptFromSource(exampleUrl, ContentSecurityPolicy::DidNotRedirect, ContentSecurityPolicy::SuppressReport));
     EXPECT_TRUE(csp2->allowPluginType("application/x-type-1", "application/x-type-1", exampleUrl, ContentSecurityPolicy::SuppressReport));
@@ -105,7 +105,7 @@
     KURL exampleUrl(KURL(), "http://example.com");
     KURL notExampleUrl(KURL(), "http://not-example.com");
 
-    RefPtrWillBeRawPtr<ContentSecurityPolicy> csp2 = ContentSecurityPolicy::create();
+    RawPtr<ContentSecurityPolicy> csp2 = ContentSecurityPolicy::create();
     csp2->copyPluginTypesFrom(csp.get());
     EXPECT_TRUE(csp2->allowScriptFromSource(exampleUrl, ContentSecurityPolicy::DidNotRedirect, ContentSecurityPolicy::SuppressReport));
     EXPECT_TRUE(csp2->allowPluginType("application/x-type-1", "application/x-type-1", exampleUrl, ContentSecurityPolicy::SuppressReport));
diff --git a/third_party/WebKit/Source/core/html/AutoplayExperimentHelper.h b/third_party/WebKit/Source/core/html/AutoplayExperimentHelper.h
index 8db55f9..a4089fc 100644
--- a/third_party/WebKit/Source/core/html/AutoplayExperimentHelper.h
+++ b/third_party/WebKit/Source/core/html/AutoplayExperimentHelper.h
@@ -96,12 +96,12 @@
 };
 
 class CORE_EXPORT AutoplayExperimentHelper final :
-    public NoBaseWillBeGarbageCollectedFinalized<AutoplayExperimentHelper> {
+    public GarbageCollectedFinalized<AutoplayExperimentHelper> {
     friend class AutoplayExperimentTest;
 
 public:
     // For easier testing, collect all the things we care about here.
-    class Client : public NoBaseWillBeGarbageCollectedFinalized<Client> {
+    class Client : public GarbageCollectedFinalized<Client> {
     public:
         virtual ~Client() {}
 
@@ -131,9 +131,9 @@
         DEFINE_INLINE_VIRTUAL_TRACE() { }
     };
 
-    static PassOwnPtrWillBeRawPtr<AutoplayExperimentHelper> create(Client* client)
+    static RawPtr<AutoplayExperimentHelper> create(Client* client)
     {
-        return adoptPtrWillBeNoop(new AutoplayExperimentHelper(client));
+        return new AutoplayExperimentHelper(client);
     }
 
     ~AutoplayExperimentHelper();
@@ -250,7 +250,7 @@
     // (as in, "The user really didn't want to play this").
     bool isBailout() const;
 
-    RawPtrWillBeMember<Client> m_client;
+    Member<Client> m_client;
 
     Mode m_mode;
 
diff --git a/third_party/WebKit/Source/core/html/AutoplayExperimentTest.cpp b/third_party/WebKit/Source/core/html/AutoplayExperimentTest.cpp
index 5614a0f..0349e43 100644
--- a/third_party/WebKit/Source/core/html/AutoplayExperimentTest.cpp
+++ b/third_party/WebKit/Source/core/html/AutoplayExperimentTest.cpp
@@ -104,7 +104,7 @@
         return m_helper->isEligible();
     }
 
-    void setInterface(PassOwnPtrWillBeRawPtr<MockAutoplayClient> client)
+    void setInterface(RawPtr<MockAutoplayClient> client)
     {
         m_client = client;
 
@@ -129,8 +129,8 @@
     }
 #endif
 
-    OwnPtrWillBePersistent<MockAutoplayClient> m_client;
-    OwnPtrWillBePersistent<AutoplayExperimentHelper> m_helper;
+    Persistent<MockAutoplayClient> m_client;
+    Persistent<AutoplayExperimentHelper> m_helper;
 
     // Mirror updatePlayState to transition to play.
     void startPlayback()
@@ -227,27 +227,27 @@
 
 TEST_F(AutoplayExperimentTest, IsNotEligibleWithEmptyMode)
 {
-    setInterface(adoptPtrWillBeNoop(new NiceMock<MockAutoplayClient>("", MockAutoplayClient::Video)));
+    setInterface(new NiceMock<MockAutoplayClient>("", MockAutoplayClient::Video));
     EXPECT_FALSE(isEligible());
 }
 
 TEST_F(AutoplayExperimentTest, IsVideoEligibleForVideoMode)
 {
     // Video should be eligible in "forvideo" mode.
-    setInterface(adoptPtrWillBeNoop(new NiceMock<MockAutoplayClient>("enabled-forvideo", MockAutoplayClient::Video)));
+    setInterface(new NiceMock<MockAutoplayClient>("enabled-forvideo", MockAutoplayClient::Video));
     EXPECT_TRUE(isEligible());
 }
 
 TEST_F(AutoplayExperimentTest, IsAudioNotEligibleForVideoMode)
 {
     // Audio should not be eligible for video mode.
-    setInterface(adoptPtrWillBeNoop(new NiceMock<MockAutoplayClient>("enabled-forvideo", MockAutoplayClient::Audio)));
+    setInterface(new NiceMock<MockAutoplayClient>("enabled-forvideo", MockAutoplayClient::Audio));
     EXPECT_FALSE(isEligible());
 }
 
 TEST_F(AutoplayExperimentTest, IsEligibleRequiresUserGesture)
 {
-    setInterface(adoptPtrWillBeNoop(new NiceMock<MockAutoplayClient>("enabled-forvideo", MockAutoplayClient::Video)));
+    setInterface(new NiceMock<MockAutoplayClient>("enabled-forvideo", MockAutoplayClient::Video));
     // If a user gesture is not required, then we're not eligible.
     ON_CALL(*m_client, isUserGestureRequiredForPlay())
         .WillByDefault(Return(false));
@@ -256,7 +256,7 @@
 
 TEST_F(AutoplayExperimentTest, IsEligibleRequiresShouldAutoplay)
 {
-    setInterface(adoptPtrWillBeNoop(new NiceMock<MockAutoplayClient>("enabled-forvideo", MockAutoplayClient::Video)));
+    setInterface(new NiceMock<MockAutoplayClient>("enabled-forvideo", MockAutoplayClient::Video));
     // If we shouldn't autoplay, then we're not eligible.
     ON_CALL(*m_client, shouldAutoplay())
         .WillByDefault(Return(false));
@@ -265,13 +265,13 @@
 
 TEST_F(AutoplayExperimentTest, IsAudioEligibleForAudioMode)
 {
-    setInterface(adoptPtrWillBeNoop(new NiceMock<MockAutoplayClient>("enabled-foraudio", MockAutoplayClient::Audio)));
+    setInterface(new NiceMock<MockAutoplayClient>("enabled-foraudio", MockAutoplayClient::Audio));
     EXPECT_TRUE(isEligible());
 }
 
 TEST_F(AutoplayExperimentTest, EligibleIfOptimizedForMobile)
 {
-    setInterface(adoptPtrWillBeNoop(new NiceMock<MockAutoplayClient>("enabled-forvideo-ifmobile", MockAutoplayClient::Video)));
+    setInterface(new NiceMock<MockAutoplayClient>("enabled-forvideo-ifmobile", MockAutoplayClient::Video));
     // Should not be eligible with our default of "not mobile".
     EXPECT_FALSE(isEligible());
 
@@ -282,7 +282,7 @@
 
 TEST_F(AutoplayExperimentTest, EligibleIfMuted)
 {
-    setInterface(adoptPtrWillBeNoop(new NiceMock<MockAutoplayClient>("enabled-forvideo-ifmuted", MockAutoplayClient::Video)));
+    setInterface(new NiceMock<MockAutoplayClient>("enabled-forvideo-ifmuted", MockAutoplayClient::Video));
     // Should not be eligible with our default of "not muted".
     EXPECT_FALSE(isEligible());
 
@@ -293,7 +293,7 @@
 
 TEST_F(AutoplayExperimentTest, BecameReadyAutoplayThenBailout)
 {
-    setInterface(adoptPtrWillBeNoop(new NiceMock<MockAutoplayClient>("enabled-forvideo", MockAutoplayClient::Video)));
+    setInterface(new NiceMock<MockAutoplayClient>("enabled-forvideo", MockAutoplayClient::Video));
 
     EXPECT_CALL(*m_client, removeUserGestureRequirement())
         .Times(1);
@@ -310,7 +310,7 @@
 
 TEST_F(AutoplayExperimentTest, BecameReadyAutoplayThenPause)
 {
-    setInterface(adoptPtrWillBeNoop(new NiceMock<MockAutoplayClient>("enabled-forvideo", MockAutoplayClient::Video)));
+    setInterface(new NiceMock<MockAutoplayClient>("enabled-forvideo", MockAutoplayClient::Video));
 
     EXPECT_CALL(*m_client, removeUserGestureRequirement())
         .Times(1);
@@ -327,7 +327,7 @@
 
 TEST_F(AutoplayExperimentTest, BecameReadyAutoplayThenComplete)
 {
-    setInterface(adoptPtrWillBeNoop(new NiceMock<MockAutoplayClient>("enabled-forvideo", MockAutoplayClient::Video)));
+    setInterface(new NiceMock<MockAutoplayClient>("enabled-forvideo", MockAutoplayClient::Video));
 
     EXPECT_CALL(*m_client, removeUserGestureRequirement())
         .Times(1);
@@ -346,7 +346,7 @@
 TEST_F(AutoplayExperimentTest, NoUserGestureNeededShouldNotOverride)
 {
     // Make sure that we don't override the user gesture if it isn't needed.
-    setInterface(adoptPtrWillBeNoop(new NiceMock<MockAutoplayClient>("enabled-forvideo", MockAutoplayClient::Video)));
+    setInterface(new NiceMock<MockAutoplayClient>("enabled-forvideo", MockAutoplayClient::Video));
     setUserGestureRequiredForPlay(false);
 
     // It is still autoplay media, though.
@@ -363,7 +363,7 @@
 {
     // If playback is started while processing a user gesture, then nothing
     // should be overridden or logged about autoplay.
-    setInterface(adoptPtrWillBeNoop(new NiceMock<MockAutoplayClient>("enabled-forvideo", MockAutoplayClient::Video)));
+    setInterface(new NiceMock<MockAutoplayClient>("enabled-forvideo", MockAutoplayClient::Video));
     setUserGestureRequiredForPlay(false);
     setShouldAutoplay(false);
     startPlaybackWithUserGesture();
@@ -374,7 +374,7 @@
 
 TEST_F(AutoplayExperimentTest, PlayMethodThenBailout)
 {
-    setInterface(adoptPtrWillBeNoop(new NiceMock<MockAutoplayClient>("enabled-forvideo", MockAutoplayClient::Video)));
+    setInterface(new NiceMock<MockAutoplayClient>("enabled-forvideo", MockAutoplayClient::Video));
     setShouldAutoplay(false); // No autoplay attribute.
 
     EXPECT_CALL(*m_client, removeUserGestureRequirement())
@@ -392,7 +392,7 @@
 
 TEST_F(AutoplayExperimentTest, DeferAutoplayUntilMuted)
 {
-    setInterface(adoptPtrWillBeNoop(new NiceMock<MockAutoplayClient>("enabled-forvideo-ifmuted", MockAutoplayClient::Video)));
+    setInterface(new NiceMock<MockAutoplayClient>("enabled-forvideo-ifmuted", MockAutoplayClient::Video));
 
     // Should not override the gesture requirement yet.
     EXPECT_CALL(*m_client, recordAutoplayMetric(AutoplayMediaFound))
@@ -416,7 +416,7 @@
 
 TEST_F(AutoplayExperimentTest, DeferPlaybackUntilInViewport)
 {
-    setInterface(adoptPtrWillBeNoop(new NiceMock<MockAutoplayClient>("enabled-forvideo-ifviewport", MockAutoplayClient::Video)));
+    setInterface(new NiceMock<MockAutoplayClient>("enabled-forvideo-ifviewport", MockAutoplayClient::Video));
 
     // Should not override the gesture requirement yet.
     EXPECT_CALL(*m_client, recordAutoplayMetric(AutoplayMediaFound))
diff --git a/third_party/WebKit/Source/core/html/ClassList.h b/third_party/WebKit/Source/core/html/ClassList.h
index e4c16618..7452c55 100644
--- a/third_party/WebKit/Source/core/html/ClassList.h
+++ b/third_party/WebKit/Source/core/html/ClassList.h
@@ -39,9 +39,9 @@
 
 class ClassList final : public DOMTokenList {
 public:
-    static PassRefPtrWillBeRawPtr<ClassList> create(Element* element)
+    static RawPtr<ClassList> create(Element* element)
     {
-        return adoptRefWillBeNoop(new ClassList(element));
+        return new ClassList(element);
     }
 
 #if !ENABLE(OILPAN)
@@ -68,7 +68,7 @@
     const AtomicString& value() const override { return m_element->getAttribute(HTMLNames::classAttr); }
     void setValue(const AtomicString& value) override { m_element->setAttribute(HTMLNames::classAttr, value); }
 
-    RawPtrWillBeMember<Element> m_element;
+    Member<Element> m_element;
     mutable OwnPtr<SpaceSplitString> m_classNamesForQuirksMode;
 };
 
diff --git a/third_party/WebKit/Source/core/html/CollectionIndexCache.h b/third_party/WebKit/Source/core/html/CollectionIndexCache.h
index 104cbde..a75e367 100644
--- a/third_party/WebKit/Source/core/html/CollectionIndexCache.h
+++ b/third_party/WebKit/Source/core/html/CollectionIndexCache.h
@@ -89,7 +89,7 @@
     NodeType* nodeBeforeCachedNode(const Collection&, unsigned index);
     NodeType* nodeAfterCachedNode(const Collection&, unsigned index);
 
-    RawPtrWillBeMember<NodeType> m_currentNode;
+    Member<NodeType> m_currentNode;
     unsigned m_cachedNodeCount;
     unsigned m_cachedNodeIndex : 31;
     unsigned m_isLengthCacheValid : 1;
diff --git a/third_party/WebKit/Source/core/html/CollectionItemsCache.h b/third_party/WebKit/Source/core/html/CollectionItemsCache.h
index 50b74cf..994ca459 100644
--- a/third_party/WebKit/Source/core/html/CollectionItemsCache.h
+++ b/third_party/WebKit/Source/core/html/CollectionItemsCache.h
@@ -59,7 +59,7 @@
 
 private:
     bool m_listValid;
-    WillBeHeapVector<RawPtrWillBeMember<NodeType>> m_cachedList;
+    HeapVector<Member<NodeType>> m_cachedList;
 };
 
 template <typename Collection, typename NodeType>
diff --git a/third_party/WebKit/Source/core/html/DocumentNameCollection.h b/third_party/WebKit/Source/core/html/DocumentNameCollection.h
index 43b3f7e7..f3bd836 100644
--- a/third_party/WebKit/Source/core/html/DocumentNameCollection.h
+++ b/third_party/WebKit/Source/core/html/DocumentNameCollection.h
@@ -12,10 +12,10 @@
 
 class DocumentNameCollection final : public HTMLNameCollection {
 public:
-    static PassRefPtrWillBeRawPtr<DocumentNameCollection> create(ContainerNode& document, CollectionType type, const AtomicString& name)
+    static RawPtr<DocumentNameCollection> create(ContainerNode& document, CollectionType type, const AtomicString& name)
     {
         ASSERT_UNUSED(type, type == DocumentNamedItems);
-        return adoptRefWillBeNoop(new DocumentNameCollection(document, name));
+        return new DocumentNameCollection(document, name);
     }
 
     HTMLElement* item(unsigned offset) const { return toHTMLElement(HTMLNameCollection::item(offset)); }
diff --git a/third_party/WebKit/Source/core/html/FormAssociatedElement.cpp b/third_party/WebKit/Source/core/html/FormAssociatedElement.cpp
index 3598c72..d012dc1 100644
--- a/third_party/WebKit/Source/core/html/FormAssociatedElement.cpp
+++ b/third_party/WebKit/Source/core/html/FormAssociatedElement.cpp
@@ -38,16 +38,15 @@
 using namespace HTMLNames;
 
 class FormAttributeTargetObserver : public IdTargetObserver {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(FormAttributeTargetObserver);
 public:
-    static PassOwnPtrWillBeRawPtr<FormAttributeTargetObserver> create(const AtomicString& id, FormAssociatedElement*);
+    static RawPtr<FormAttributeTargetObserver> create(const AtomicString& id, FormAssociatedElement*);
     DECLARE_VIRTUAL_TRACE();
     void idTargetChanged() override;
 
 private:
     FormAttributeTargetObserver(const AtomicString& id, FormAssociatedElement*);
 
-    RawPtrWillBeMember<FormAssociatedElement> m_element;
+    Member<FormAssociatedElement> m_element;
 };
 
 FormAssociatedElement::FormAssociatedElement()
@@ -279,7 +278,7 @@
     m_customValidationMessage = error;
 }
 
-void FormAssociatedElement::setFormAttributeTargetObserver(PassOwnPtrWillBeRawPtr<FormAttributeTargetObserver> newObserver)
+void FormAssociatedElement::setFormAttributeTargetObserver(RawPtr<FormAttributeTargetObserver> newObserver)
 {
     if (m_formAttributeTargetObserver)
         m_formAttributeTargetObserver->unregister();
@@ -337,9 +336,9 @@
     return const_cast<HTMLElement&>(toHTMLElement(static_cast<const FormAssociatedElement&>(associatedElement)));
 }
 
-PassOwnPtrWillBeRawPtr<FormAttributeTargetObserver> FormAttributeTargetObserver::create(const AtomicString& id, FormAssociatedElement* element)
+RawPtr<FormAttributeTargetObserver> FormAttributeTargetObserver::create(const AtomicString& id, FormAssociatedElement* element)
 {
-    return adoptPtrWillBeNoop(new FormAttributeTargetObserver(id, element));
+    return new FormAttributeTargetObserver(id, element);
 }
 
 FormAttributeTargetObserver::FormAttributeTargetObserver(const AtomicString& id, FormAssociatedElement* element)
diff --git a/third_party/WebKit/Source/core/html/FormAssociatedElement.h b/third_party/WebKit/Source/core/html/FormAssociatedElement.h
index 5e95de7..246954c 100644
--- a/third_party/WebKit/Source/core/html/FormAssociatedElement.h
+++ b/third_party/WebKit/Source/core/html/FormAssociatedElement.h
@@ -40,7 +40,7 @@
 class Node;
 class ValidityState;
 
-class CORE_EXPORT FormAssociatedElement : public WillBeGarbageCollectedMixin {
+class CORE_EXPORT FormAssociatedElement : public GarbageCollectedMixin {
 public:
     virtual ~FormAssociatedElement();
 
@@ -92,7 +92,7 @@
 
     void formAttributeTargetChanged();
 
-    typedef WillBeHeapVector<RawPtrWillBeMember<FormAssociatedElement>> List;
+    typedef HeapVector<Member<FormAssociatedElement>> List;
 
     DECLARE_VIRTUAL_TRACE();
 
@@ -123,12 +123,12 @@
     virtual void derefFormAssociatedElement() = 0;
 #endif
 
-    void setFormAttributeTargetObserver(PassOwnPtrWillBeRawPtr<FormAttributeTargetObserver>);
+    void setFormAttributeTargetObserver(RawPtr<FormAttributeTargetObserver>);
     void resetFormAttributeTargetObserver();
 
-    OwnPtrWillBeMember<FormAttributeTargetObserver> m_formAttributeTargetObserver;
-    WeakPtrWillBeMember<HTMLFormElement> m_form;
-    OwnPtrWillBeMember<ValidityState> m_validityState;
+    Member<FormAttributeTargetObserver> m_formAttributeTargetObserver;
+    Member<HTMLFormElement> m_form;
+    Member<ValidityState> m_validityState;
     String m_customValidationMessage;
     // Non-Oilpan: Even if m_formWasSetByParser is true, m_form can be null
     // because parentNode is not a strong reference and |this| and m_form don't
@@ -137,10 +137,10 @@
     bool m_formWasSetByParser;
 };
 
-HTMLElement* toHTMLElement(FormAssociatedElement*);
-HTMLElement& toHTMLElement(FormAssociatedElement&);
-const HTMLElement* toHTMLElement(const FormAssociatedElement*);
-const HTMLElement& toHTMLElement(const FormAssociatedElement&);
+CORE_EXPORT HTMLElement* toHTMLElement(FormAssociatedElement*);
+CORE_EXPORT HTMLElement& toHTMLElement(FormAssociatedElement&);
+CORE_EXPORT const HTMLElement* toHTMLElement(const FormAssociatedElement*);
+CORE_EXPORT const HTMLElement& toHTMLElement(const FormAssociatedElement&);
 
 } // namespace blink
 
diff --git a/third_party/WebKit/Source/core/html/HTMLAllCollection.cpp b/third_party/WebKit/Source/core/html/HTMLAllCollection.cpp
index 834bfb9..b4d3b79 100644
--- a/third_party/WebKit/Source/core/html/HTMLAllCollection.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLAllCollection.cpp
@@ -31,10 +31,10 @@
 
 namespace blink {
 
-PassRefPtrWillBeRawPtr<HTMLAllCollection> HTMLAllCollection::create(ContainerNode& node, CollectionType type)
+RawPtr<HTMLAllCollection> HTMLAllCollection::create(ContainerNode& node, CollectionType type)
 {
     ASSERT_UNUSED(type, type == DocAll);
-    return adoptRefWillBeNoop(new HTMLAllCollection(node));
+    return new HTMLAllCollection(node);
 }
 
 HTMLAllCollection::HTMLAllCollection(ContainerNode& node)
@@ -51,13 +51,13 @@
     updateIdNameCache();
 
     const NamedItemCache& cache = namedItemCache();
-    if (WillBeHeapVector<RawPtrWillBeMember<Element>>* elements = cache.getElementsById(name)) {
+    if (HeapVector<Member<Element>>* elements = cache.getElementsById(name)) {
         if (index < elements->size())
             return elements->at(index);
         index -= elements->size();
     }
 
-    if (WillBeHeapVector<RawPtrWillBeMember<Element>>* elements = cache.getElementsByName(name)) {
+    if (HeapVector<Member<Element>>* elements = cache.getElementsByName(name)) {
         if (index < elements->size())
             return elements->at(index);
     }
@@ -67,7 +67,7 @@
 
 void HTMLAllCollection::namedGetter(const AtomicString& name, NodeListOrElement& returnValue)
 {
-    WillBeHeapVector<RefPtrWillBeMember<Element>> namedItems;
+    HeapVector<Member<Element>> namedItems;
     this->namedItems(name, namedItems);
 
     if (!namedItems.size())
diff --git a/third_party/WebKit/Source/core/html/HTMLAllCollection.h b/third_party/WebKit/Source/core/html/HTMLAllCollection.h
index 6d3d6fd..71921e3 100644
--- a/third_party/WebKit/Source/core/html/HTMLAllCollection.h
+++ b/third_party/WebKit/Source/core/html/HTMLAllCollection.h
@@ -35,7 +35,7 @@
 class HTMLAllCollection final : public HTMLCollection {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<HTMLAllCollection> create(ContainerNode&, CollectionType);
+    static RawPtr<HTMLAllCollection> create(ContainerNode&, CollectionType);
     ~HTMLAllCollection() override;
 
     Element* namedItemWithIndex(const AtomicString& name, unsigned index) const;
diff --git a/third_party/WebKit/Source/core/html/HTMLAnchorElement.cpp b/third_party/WebKit/Source/core/html/HTMLAnchorElement.cpp
index f858f4ff..83266a0 100644
--- a/third_party/WebKit/Source/core/html/HTMLAnchorElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLAnchorElement.cpp
@@ -50,9 +50,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<HTMLAnchorElement> HTMLAnchorElement::create(Document& document)
+RawPtr<HTMLAnchorElement> HTMLAnchorElement::create(Document& document)
 {
-    return adoptRefWillBeNoop(new HTMLAnchorElement(aTag, document));
+    return new HTMLAnchorElement(aTag, document);
 }
 
 HTMLAnchorElement::~HTMLAnchorElement()
diff --git a/third_party/WebKit/Source/core/html/HTMLAnchorElement.h b/third_party/WebKit/Source/core/html/HTMLAnchorElement.h
index e489810..4d06bb7 100644
--- a/third_party/WebKit/Source/core/html/HTMLAnchorElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLAnchorElement.h
@@ -60,7 +60,7 @@
 class CORE_EXPORT HTMLAnchorElement : public HTMLElement, public DOMURLUtils {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<HTMLAnchorElement> create(Document&);
+    static RawPtr<HTMLAnchorElement> create(Document&);
 
     ~HTMLAnchorElement() override;
 
diff --git a/third_party/WebKit/Source/core/html/HTMLAudioElement.cpp b/third_party/WebKit/Source/core/html/HTMLAudioElement.cpp
index b9007bc..feb8d9f 100644
--- a/third_party/WebKit/Source/core/html/HTMLAudioElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLAudioElement.cpp
@@ -37,17 +37,17 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<HTMLAudioElement> HTMLAudioElement::create(Document& document)
+RawPtr<HTMLAudioElement> HTMLAudioElement::create(Document& document)
 {
-    RefPtrWillBeRawPtr<HTMLAudioElement> audio = adoptRefWillBeNoop(new HTMLAudioElement(document));
+    RawPtr<HTMLAudioElement> audio = new HTMLAudioElement(document);
     audio->ensureUserAgentShadowRoot();
     audio->suspendIfNeeded();
     return audio.release();
 }
 
-PassRefPtrWillBeRawPtr<HTMLAudioElement> HTMLAudioElement::createForJSConstructor(Document& document, const AtomicString& src)
+RawPtr<HTMLAudioElement> HTMLAudioElement::createForJSConstructor(Document& document, const AtomicString& src)
 {
-    RefPtrWillBeRawPtr<HTMLAudioElement> audio = adoptRefWillBeNoop(new HTMLAudioElement(document));
+    RawPtr<HTMLAudioElement> audio = new HTMLAudioElement(document);
     audio->ensureUserAgentShadowRoot();
     audio->setPreload(AtomicString("auto"));
     if (!src.isNull())
diff --git a/third_party/WebKit/Source/core/html/HTMLAudioElement.h b/third_party/WebKit/Source/core/html/HTMLAudioElement.h
index b57784a..8ce7825c 100644
--- a/third_party/WebKit/Source/core/html/HTMLAudioElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLAudioElement.h
@@ -36,8 +36,8 @@
 class HTMLAudioElement final : public HTMLMediaElement {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<HTMLAudioElement> create(Document&);
-    static PassRefPtrWillBeRawPtr<HTMLAudioElement> createForJSConstructor(Document&, const AtomicString& src);
+    static RawPtr<HTMLAudioElement> create(Document&);
+    static RawPtr<HTMLAudioElement> createForJSConstructor(Document&, const AtomicString& src);
 
     bool isHTMLAudioElement() const override { return true; }
 
diff --git a/third_party/WebKit/Source/core/html/HTMLBodyElement.cpp b/third_party/WebKit/Source/core/html/HTMLBodyElement.cpp
index dc72be85e..64b3ca6 100644
--- a/third_party/WebKit/Source/core/html/HTMLBodyElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLBodyElement.cpp
@@ -62,7 +62,7 @@
     if (name == backgroundAttr) {
         String url = stripLeadingAndTrailingHTMLSpaces(value);
         if (!url.isEmpty()) {
-            RefPtrWillBeRawPtr<CSSImageValue> imageValue = CSSImageValue::create(url, document().completeURL(url));
+            RawPtr<CSSImageValue> imageValue = CSSImageValue::create(url, document().completeURL(url));
             imageValue->setInitiator(localName());
             imageValue->setReferrer(Referrer(document().outgoingReferrer(), document().getReferrerPolicy()));
             style->setProperty(CSSProperty(CSSPropertyBackgroundImage, imageValue.release()));
diff --git a/third_party/WebKit/Source/core/html/HTMLButtonElement.cpp b/third_party/WebKit/Source/core/html/HTMLButtonElement.cpp
index 2e500c1..c73efb4 100644
--- a/third_party/WebKit/Source/core/html/HTMLButtonElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLButtonElement.cpp
@@ -44,9 +44,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<HTMLButtonElement> HTMLButtonElement::create(Document& document, HTMLFormElement* form)
+RawPtr<HTMLButtonElement> HTMLButtonElement::create(Document& document, HTMLFormElement* form)
 {
-    return adoptRefWillBeNoop(new HTMLButtonElement(document, form));
+    return new HTMLButtonElement(document, form);
 }
 
 void HTMLButtonElement::setType(const AtomicString& type)
diff --git a/third_party/WebKit/Source/core/html/HTMLButtonElement.h b/third_party/WebKit/Source/core/html/HTMLButtonElement.h
index 21f3731e6..eb48326 100644
--- a/third_party/WebKit/Source/core/html/HTMLButtonElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLButtonElement.h
@@ -31,7 +31,7 @@
 class HTMLButtonElement final : public HTMLFormControlElement {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<HTMLButtonElement> create(Document&, HTMLFormElement*);
+    static RawPtr<HTMLButtonElement> create(Document&, HTMLFormElement*);
 
     void setType(const AtomicString&);
 
diff --git a/third_party/WebKit/Source/core/html/HTMLCanvasElement.h b/third_party/WebKit/Source/core/html/HTMLCanvasElement.h
index 6c8a155..d52462a 100644
--- a/third_party/WebKit/Source/core/html/HTMLCanvasElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLCanvasElement.h
@@ -68,7 +68,7 @@
 
 class CORE_EXPORT HTMLCanvasElement final : public HTMLElement, public DocumentVisibilityObserver, public CanvasImageSource, public ImageBufferClient, public ImageBitmapSource {
     DEFINE_WRAPPERTYPEINFO();
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(HTMLCanvasElement);
+    USING_GARBAGE_COLLECTED_MIXIN(HTMLCanvasElement);
 public:
     DECLARE_NODE_FACTORY(HTMLCanvasElement);
     ~HTMLCanvasElement() override;
@@ -123,7 +123,7 @@
     void disableDeferral(DisableDeferralReason) const;
     SkCanvas* existingDrawingCanvas() const;
 
-    void setRenderingContext(PassOwnPtrWillBeRawPtr<CanvasRenderingContext>);
+    void setRenderingContext(RawPtr<CanvasRenderingContext>);
     CanvasRenderingContext* renderingContext() const { return m_context.get(); }
 
     void ensureUnacceleratedImageBuffer();
@@ -219,11 +219,11 @@
 
     String toDataURLInternal(const String& mimeType, const double& quality, SourceDrawingBuffer) const;
 
-    PersistentHeapHashSetWillBeHeapHashSet<WeakMember<CanvasDrawListener>> m_listeners;
+    HeapHashSet<WeakMember<CanvasDrawListener>> m_listeners;
 
     IntSize m_size;
 
-    OwnPtrWillBeMember<CanvasRenderingContext> m_context;
+    Member<CanvasRenderingContext> m_context;
 
     bool m_ignoreReset;
     FloatRect m_dirtyRect;
diff --git a/third_party/WebKit/Source/core/html/HTMLCollection.cpp b/third_party/WebKit/Source/core/html/HTMLCollection.cpp
index 194ae8e..eb3b6a3 100644
--- a/third_party/WebKit/Source/core/html/HTMLCollection.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLCollection.cpp
@@ -169,9 +169,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<HTMLCollection> HTMLCollection::create(ContainerNode& base, CollectionType type)
+RawPtr<HTMLCollection> HTMLCollection::create(ContainerNode& base, CollectionType type)
 {
-    return adoptRefWillBeNoop(new HTMLCollection(base, type, DoesNotOverrideItemAfter));
+    return new HTMLCollection(base, type, DoesNotOverrideItemAfter);
 }
 
 HTMLCollection::~HTMLCollection()
@@ -290,7 +290,7 @@
     }
 
 private:
-    RawPtrWillBeMember<const HTMLCollectionType> m_list;
+    Member<const HTMLCollectionType> m_list;
 };
 
 } // namespace
@@ -399,11 +399,11 @@
     updateIdNameCache();
 
     const NamedItemCache& cache = namedItemCache();
-    WillBeHeapVector<RawPtrWillBeMember<Element>>* idResults = cache.getElementsById(name);
+    HeapVector<Member<Element>>* idResults = cache.getElementsById(name);
     if (idResults && !idResults->isEmpty())
         return idResults->first();
 
-    WillBeHeapVector<RawPtrWillBeMember<Element>>* nameResults = cache.getElementsByName(name);
+    HeapVector<Member<Element>>* nameResults = cache.getElementsByName(name);
     if (nameResults && !nameResults->isEmpty())
         return nameResults->first();
 
@@ -456,7 +456,7 @@
     if (hasValidIdNameCache())
         return;
 
-    OwnPtrWillBeRawPtr<NamedItemCache> cache = NamedItemCache::create();
+    RawPtr<NamedItemCache> cache = NamedItemCache::create();
     unsigned length = this->length();
     for (unsigned i = 0; i < length; ++i) {
         Element* element = item(i);
@@ -473,7 +473,7 @@
     setNamedItemCache(cache.release());
 }
 
-void HTMLCollection::namedItems(const AtomicString& name, WillBeHeapVector<RefPtrWillBeMember<Element>>& result) const
+void HTMLCollection::namedItems(const AtomicString& name, HeapVector<Member<Element>>& result) const
 {
     ASSERT(result.isEmpty());
     if (name.isEmpty())
@@ -482,11 +482,11 @@
     updateIdNameCache();
 
     const NamedItemCache& cache = namedItemCache();
-    if (WillBeHeapVector<RawPtrWillBeMember<Element>>* idResults = cache.getElementsById(name)) {
+    if (HeapVector<Member<Element>>* idResults = cache.getElementsById(name)) {
         for (unsigned i = 0; i < idResults->size(); ++i)
             result.append(idResults->at(i));
     }
-    if (WillBeHeapVector<RawPtrWillBeMember<Element>>* nameResults = cache.getElementsByName(name)) {
+    if (HeapVector<Member<Element>>* nameResults = cache.getElementsByName(name)) {
         for (unsigned i = 0; i < nameResults->size(); ++i)
             result.append(nameResults->at(i));
     }
diff --git a/third_party/WebKit/Source/core/html/HTMLCollection.h b/third_party/WebKit/Source/core/html/HTMLCollection.h
index 8ea1e4446..36fb4354 100644
--- a/third_party/WebKit/Source/core/html/HTMLCollection.h
+++ b/third_party/WebKit/Source/core/html/HTMLCollection.h
@@ -32,16 +32,16 @@
 
 namespace blink {
 
-class CORE_EXPORT HTMLCollection : public RefCountedWillBeGarbageCollectedFinalized<HTMLCollection>, public ScriptWrappable, public LiveNodeListBase {
+class CORE_EXPORT HTMLCollection : public GarbageCollectedFinalized<HTMLCollection>, public ScriptWrappable, public LiveNodeListBase {
     DEFINE_WRAPPERTYPEINFO();
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(HTMLCollection);
+    USING_GARBAGE_COLLECTED_MIXIN(HTMLCollection);
 public:
     enum ItemAfterOverrideType {
         OverridesItemAfter,
         DoesNotOverrideItemAfter,
     };
 
-    static PassRefPtrWillBeRawPtr<HTMLCollection> create(ContainerNode& base, CollectionType);
+    static RawPtr<HTMLCollection> create(ContainerNode& base, CollectionType);
     virtual ~HTMLCollection();
     void invalidateCache(Document* oldDocument = 0) const override;
     void invalidateCacheForAttribute(const QualifiedName*) const;
@@ -54,7 +54,7 @@
     void namedPropertyEnumerator(Vector<String>& names, ExceptionState&);
 
     // Non-DOM API
-    void namedItems(const AtomicString& name, WillBeHeapVector<RefPtrWillBeMember<Element>>&) const;
+    void namedItems(const AtomicString& name, HeapVector<Member<Element>>&) const;
     bool isEmpty() const { return m_collectionItemsCache.isEmpty(*this); }
     bool hasExactlyOneItem() const { return m_collectionItemsCache.hasExactlyOneNode(*this); }
     bool elementMatches(const Element&) const;
@@ -71,15 +71,15 @@
 protected:
     HTMLCollection(ContainerNode& base, CollectionType, ItemAfterOverrideType);
 
-    class NamedItemCache final : public NoBaseWillBeGarbageCollected<NamedItemCache> {
+    class NamedItemCache final : public GarbageCollected<NamedItemCache> {
     public:
-        static PassOwnPtrWillBeRawPtr<NamedItemCache> create()
+        static RawPtr<NamedItemCache> create()
         {
             return adoptPtrWillBeNoop(new NamedItemCache);
         }
 
-        WillBeHeapVector<RawPtrWillBeMember<Element>>* getElementsById(const AtomicString& id) const { return m_idCache.get(id.impl()); }
-        WillBeHeapVector<RawPtrWillBeMember<Element>>* getElementsByName(const AtomicString& name) const { return m_nameCache.get(name.impl()); }
+        HeapVector<Member<Element>>* getElementsById(const AtomicString& id) const { return m_idCache.get(id.impl()); }
+        HeapVector<Member<Element>>* getElementsByName(const AtomicString& name) const { return m_nameCache.get(name.impl()); }
         void addElementWithId(const AtomicString& id, Element* element) { addElementToMap(m_idCache, id, element); }
         void addElementWithName(const AtomicString& name, Element* element) { addElementToMap(m_nameCache, name, element); }
 
@@ -93,12 +93,12 @@
 
     private:
         NamedItemCache();
-        typedef WillBeHeapHashMap<StringImpl*, OwnPtrWillBeMember<WillBeHeapVector<RawPtrWillBeMember<Element>>>> StringToElementsMap;
+        typedef HeapHashMap<StringImpl*, Member<HeapVector<Member<Element>>>> StringToElementsMap;
         static void addElementToMap(StringToElementsMap& map, const AtomicString& key, Element* element)
         {
-            OwnPtrWillBeMember<WillBeHeapVector<RawPtrWillBeMember<Element>>>& vector = map.add(key.impl(), nullptr).storedValue->value;
+            Member<HeapVector<Member<Element>>>& vector = map.add(key.impl(), nullptr).storedValue->value;
             if (!vector)
-                vector = adoptPtrWillBeNoop(new WillBeHeapVector<RawPtrWillBeMember<Element>>);
+                vector = adoptPtrWillBeNoop(new HeapVector<Member<Element>>);
             vector->append(element);
         }
 
@@ -114,7 +114,7 @@
     virtual void updateIdNameCache() const;
     bool hasValidIdNameCache() const { return m_namedItemCache; }
 
-    void setNamedItemCache(PassOwnPtrWillBeRawPtr<NamedItemCache> cache) const
+    void setNamedItemCache(RawPtr<NamedItemCache> cache) const
     {
         ASSERT(!m_namedItemCache);
         // Do not repeat registration for the same invalidation type.
@@ -153,7 +153,7 @@
 
     const unsigned m_overridesItemAfter : 1;
     const unsigned m_shouldOnlyIncludeDirectChildren : 1;
-    mutable OwnPtrWillBeMember<NamedItemCache> m_namedItemCache;
+    mutable Member<NamedItemCache> m_namedItemCache;
     mutable CollectionItemsCache<HTMLCollection, Element> m_collectionItemsCache;
 };
 
diff --git a/third_party/WebKit/Source/core/html/HTMLContentElement.cpp b/third_party/WebKit/Source/core/html/HTMLContentElement.cpp
index e080d413..baef05e 100644
--- a/third_party/WebKit/Source/core/html/HTMLContentElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLContentElement.cpp
@@ -38,12 +38,12 @@
 
 using namespace HTMLNames;
 
-PassRefPtrWillBeRawPtr<HTMLContentElement> HTMLContentElement::create(Document& document, PassOwnPtrWillBeRawPtr<HTMLContentSelectFilter> filter)
+RawPtr<HTMLContentElement> HTMLContentElement::create(Document& document, RawPtr<HTMLContentSelectFilter> filter)
 {
-    return adoptRefWillBeNoop(new HTMLContentElement(document, filter));
+    return new HTMLContentElement(document, filter);
 }
 
-inline HTMLContentElement::HTMLContentElement(Document& document, PassOwnPtrWillBeRawPtr<HTMLContentSelectFilter> filter)
+inline HTMLContentElement::HTMLContentElement(Document& document, RawPtr<HTMLContentSelectFilter> filter)
     : InsertionPoint(contentTag, document)
     , m_shouldParseSelect(false)
     , m_isValidSelector(true)
diff --git a/third_party/WebKit/Source/core/html/HTMLContentElement.h b/third_party/WebKit/Source/core/html/HTMLContentElement.h
index db1a63f..3af43aa 100644
--- a/third_party/WebKit/Source/core/html/HTMLContentElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLContentElement.h
@@ -38,11 +38,10 @@
 
 namespace blink {
 
-class HTMLContentSelectFilter : public NoBaseWillBeGarbageCollectedFinalized<HTMLContentSelectFilter> {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(HTMLContentSelectFilter);
+class HTMLContentSelectFilter : public GarbageCollectedFinalized<HTMLContentSelectFilter> {
 public:
     virtual ~HTMLContentSelectFilter() { }
-    virtual bool canSelectNode(const WillBeHeapVector<RawPtrWillBeMember<Node>, 32>& siblings, int nth) const = 0;
+    virtual bool canSelectNode(const HeapVector<Member<Node>, 32>& siblings, int nth) const = 0;
 
     DEFINE_INLINE_VIRTUAL_TRACE() { }
 };
@@ -50,12 +49,12 @@
 class CORE_EXPORT HTMLContentElement final : public InsertionPoint {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<HTMLContentElement> create(Document&, PassOwnPtrWillBeRawPtr<HTMLContentSelectFilter> = nullptr);
+    static RawPtr<HTMLContentElement> create(Document&, RawPtr<HTMLContentSelectFilter> = nullptr);
     ~HTMLContentElement() override;
 
     bool canAffectSelector() const override { return true; }
 
-    bool canSelectNode(const WillBeHeapVector<RawPtrWillBeMember<Node>, 32>& siblings, int nth) const;
+    bool canSelectNode(const HeapVector<Member<Node>, 32>& siblings, int nth) const;
 
     const CSSSelectorList& selectorList() const;
     bool isSelectValid() const;
@@ -63,7 +62,7 @@
     DECLARE_VIRTUAL_TRACE();
 
 private:
-    HTMLContentElement(Document&, PassOwnPtrWillBeRawPtr<HTMLContentSelectFilter>);
+    HTMLContentElement(Document&, RawPtr<HTMLContentSelectFilter>);
 
     void parseAttribute(const QualifiedName&, const AtomicString&, const AtomicString&) override;
 
@@ -76,7 +75,7 @@
     bool m_isValidSelector;
     AtomicString m_select;
     CSSSelectorList m_selectorList;
-    OwnPtrWillBeMember<HTMLContentSelectFilter> m_filter;
+    Member<HTMLContentSelectFilter> m_filter;
 };
 
 inline const CSSSelectorList& HTMLContentElement::selectorList() const
@@ -93,7 +92,7 @@
     return m_isValidSelector;
 }
 
-inline bool HTMLContentElement::canSelectNode(const WillBeHeapVector<RawPtrWillBeMember<Node>, 32>& siblings, int nth) const
+inline bool HTMLContentElement::canSelectNode(const HeapVector<Member<Node>, 32>& siblings, int nth) const
 {
     if (m_filter)
         return m_filter->canSelectNode(siblings, nth);
diff --git a/third_party/WebKit/Source/core/html/HTMLDataListElement.cpp b/third_party/WebKit/Source/core/html/HTMLDataListElement.cpp
index ff510b7..be69362 100644
--- a/third_party/WebKit/Source/core/html/HTMLDataListElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLDataListElement.cpp
@@ -44,13 +44,13 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<HTMLDataListElement> HTMLDataListElement::create(Document& document)
+RawPtr<HTMLDataListElement> HTMLDataListElement::create(Document& document)
 {
     UseCounter::count(document, UseCounter::DataListElement);
-    return adoptRefWillBeNoop(new HTMLDataListElement(document));
+    return new HTMLDataListElement(document);
 }
 
-PassRefPtrWillBeRawPtr<HTMLDataListOptionsCollection> HTMLDataListElement::options()
+RawPtr<HTMLDataListOptionsCollection> HTMLDataListElement::options()
 {
     return ensureCachedCollection<HTMLDataListOptionsCollection>(DataListOptions);
 }
diff --git a/third_party/WebKit/Source/core/html/HTMLDataListElement.h b/third_party/WebKit/Source/core/html/HTMLDataListElement.h
index b3776e0..85020de34 100644
--- a/third_party/WebKit/Source/core/html/HTMLDataListElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLDataListElement.h
@@ -41,9 +41,9 @@
 class CORE_EXPORT HTMLDataListElement final : public HTMLElement {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<HTMLDataListElement> create(Document&);
+    static RawPtr<HTMLDataListElement> create(Document&);
 
-    PassRefPtrWillBeRawPtr<HTMLDataListOptionsCollection> options();
+    RawPtr<HTMLDataListOptionsCollection> options();
 
     void optionElementChildrenChanged();
 
diff --git a/third_party/WebKit/Source/core/html/HTMLDataListOptionsCollection.h b/third_party/WebKit/Source/core/html/HTMLDataListOptionsCollection.h
index ccb9c57..ed82419 100644
--- a/third_party/WebKit/Source/core/html/HTMLDataListOptionsCollection.h
+++ b/third_party/WebKit/Source/core/html/HTMLDataListOptionsCollection.h
@@ -12,10 +12,10 @@
 
 class HTMLDataListOptionsCollection : public HTMLCollection {
 public:
-    static PassRefPtrWillBeRawPtr<HTMLDataListOptionsCollection> create(ContainerNode& ownerNode, CollectionType type)
+    static RawPtr<HTMLDataListOptionsCollection> create(ContainerNode& ownerNode, CollectionType type)
     {
         ASSERT_UNUSED(type, type == DataListOptions);
-        return adoptRefWillBeNoop(new HTMLDataListOptionsCollection(ownerNode));
+        return new HTMLDataListOptionsCollection(ownerNode);
     }
 
     HTMLOptionElement* item(unsigned offset) const { return toHTMLOptionElement(HTMLCollection::item(offset)); }
diff --git a/third_party/WebKit/Source/core/html/HTMLDetailsElement.cpp b/third_party/WebKit/Source/core/html/HTMLDetailsElement.cpp
index d40975c2..a61f912 100644
--- a/third_party/WebKit/Source/core/html/HTMLDetailsElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLDetailsElement.cpp
@@ -46,12 +46,12 @@
 public:
     virtual ~FirstSummarySelectFilter() { }
 
-    static PassOwnPtrWillBeRawPtr<FirstSummarySelectFilter> create()
+    static RawPtr<FirstSummarySelectFilter> create()
     {
-        return adoptPtrWillBeNoop(new FirstSummarySelectFilter());
+        return new FirstSummarySelectFilter();
     }
 
-    bool canSelectNode(const WillBeHeapVector<RawPtrWillBeMember<Node>, 32>& siblings, int nth) const override
+    bool canSelectNode(const HeapVector<Member<Node>, 32>& siblings, int nth) const override
     {
         if (!siblings[nth]->hasTagName(HTMLNames::summaryTag))
             return false;
@@ -73,13 +73,13 @@
 
 static DetailsEventSender& detailsToggleEventSender()
 {
-    DEFINE_STATIC_LOCAL(OwnPtrWillBePersistent<DetailsEventSender>, sharedToggleEventSender, (DetailsEventSender::create(EventTypeNames::toggle)));
+    DEFINE_STATIC_LOCAL(Persistent<DetailsEventSender>, sharedToggleEventSender, (DetailsEventSender::create(EventTypeNames::toggle)));
     return *sharedToggleEventSender;
 }
 
-PassRefPtrWillBeRawPtr<HTMLDetailsElement> HTMLDetailsElement::create(Document& document)
+RawPtr<HTMLDetailsElement> HTMLDetailsElement::create(Document& document)
 {
-    RefPtrWillBeRawPtr<HTMLDetailsElement> details = adoptRefWillBeNoop(new HTMLDetailsElement(document));
+    RawPtr<HTMLDetailsElement> details = new HTMLDetailsElement(document);
     details->ensureUserAgentShadowRoot();
     return details.release();
 }
@@ -112,15 +112,15 @@
 
 void HTMLDetailsElement::didAddUserAgentShadowRoot(ShadowRoot& root)
 {
-    RefPtrWillBeRawPtr<HTMLSummaryElement> defaultSummary = HTMLSummaryElement::create(document());
+    RawPtr<HTMLSummaryElement> defaultSummary = HTMLSummaryElement::create(document());
     defaultSummary->appendChild(Text::create(document(), locale().queryString(WebLocalizedString::DetailsLabel)));
 
-    RefPtrWillBeRawPtr<HTMLContentElement> summary = HTMLContentElement::create(document(), FirstSummarySelectFilter::create());
+    RawPtr<HTMLContentElement> summary = HTMLContentElement::create(document(), FirstSummarySelectFilter::create());
     summary->setIdAttribute(ShadowElementNames::detailsSummary());
     summary->appendChild(defaultSummary);
     root.appendChild(summary.release());
 
-    RefPtrWillBeRawPtr<HTMLDivElement> content = HTMLDivElement::create(document());
+    RawPtr<HTMLDivElement> content = HTMLDivElement::create(document());
     content->setIdAttribute(ShadowElementNames::detailsContent());
     content->appendChild(HTMLContentElement::create(document()));
     content->setInlineStyleProperty(CSSPropertyDisplay, CSSValueNone);
diff --git a/third_party/WebKit/Source/core/html/HTMLDetailsElement.h b/third_party/WebKit/Source/core/html/HTMLDetailsElement.h
index c606c2c..b7a1502 100644
--- a/third_party/WebKit/Source/core/html/HTMLDetailsElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLDetailsElement.h
@@ -31,7 +31,7 @@
 class HTMLDetailsElement final : public HTMLElement {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<HTMLDetailsElement> create(Document&);
+    static RawPtr<HTMLDetailsElement> create(Document&);
     void toggleOpen();
     ~HTMLDetailsElement() override;
 
diff --git a/third_party/WebKit/Source/core/html/HTMLDocument.cpp b/third_party/WebKit/Source/core/html/HTMLDocument.cpp
index 1309a826f..ef27952 100644
--- a/third_party/WebKit/Source/core/html/HTMLDocument.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLDocument.cpp
@@ -156,7 +156,7 @@
     setBodyAttribute(vlinkAttr, value);
 }
 
-PassRefPtrWillBeRawPtr<Document> HTMLDocument::cloneDocumentWithoutChildren()
+RawPtr<Document> HTMLDocument::cloneDocumentWithoutChildren()
 {
     return create(DocumentInit(url()).withRegistrationContext(registrationContext()));
 }
diff --git a/third_party/WebKit/Source/core/html/HTMLDocument.h b/third_party/WebKit/Source/core/html/HTMLDocument.h
index 1b9304f..c0453ea 100644
--- a/third_party/WebKit/Source/core/html/HTMLDocument.h
+++ b/third_party/WebKit/Source/core/html/HTMLDocument.h
@@ -34,9 +34,9 @@
 class CORE_EXPORT HTMLDocument : public Document {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<HTMLDocument> create(const DocumentInit& initializer = DocumentInit())
+    static RawPtr<HTMLDocument> create(const DocumentInit& initializer = DocumentInit())
     {
-        return adoptRefWillBeNoop(new HTMLDocument(initializer));
+        return new HTMLDocument(initializer);
     }
     ~HTMLDocument() override;
 
@@ -66,7 +66,7 @@
 
     static bool isCaseSensitiveAttribute(const QualifiedName&);
 
-    PassRefPtrWillBeRawPtr<Document> cloneDocumentWithoutChildren() final;
+    RawPtr<Document> cloneDocumentWithoutChildren() final;
 
 protected:
     HTMLDocument(const DocumentInit&, DocumentClassFlags extendedDocumentClasses = DefaultDocumentClass);
diff --git a/third_party/WebKit/Source/core/html/HTMLElement.cpp b/third_party/WebKit/Source/core/html/HTMLElement.cpp
index a50741c8..ed8e98d1 100644
--- a/third_party/WebKit/Source/core/html/HTMLElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLElement.cpp
@@ -379,9 +379,9 @@
     }
 }
 
-PassRefPtrWillBeRawPtr<DocumentFragment> HTMLElement::textToFragment(const String& text, ExceptionState& exceptionState)
+RawPtr<DocumentFragment> HTMLElement::textToFragment(const String& text, ExceptionState& exceptionState)
 {
-    RefPtrWillBeRawPtr<DocumentFragment> fragment = DocumentFragment::create(document());
+    RawPtr<DocumentFragment> fragment = DocumentFragment::create(document());
     unsigned i, length = text.length();
     UChar c = 0;
     for (unsigned start = 0; start < length; ) {
@@ -465,7 +465,7 @@
     }
 
     // Add text nodes and <br> elements.
-    RefPtrWillBeRawPtr<DocumentFragment> fragment = textToFragment(text, exceptionState);
+    RawPtr<DocumentFragment> fragment = textToFragment(text, exceptionState);
     if (!exceptionState.hadException())
         replaceChildrenWithFragment(this, fragment.release(), exceptionState);
 }
@@ -487,9 +487,9 @@
         return;
     }
 
-    RefPtrWillBeRawPtr<Node> prev = previousSibling();
-    RefPtrWillBeRawPtr<Node> next = nextSibling();
-    RefPtrWillBeRawPtr<Node> newChild = nullptr;
+    RawPtr<Node> prev = previousSibling();
+    RawPtr<Node> next = nextSibling();
+    RawPtr<Node> newChild = nullptr;
 
     // Convert text to fragment with <br> tags instead of linebreaks if needed.
     if (text.contains('\r') || text.contains('\n'))
@@ -506,7 +506,7 @@
 
     parent->replaceChild(newChild.release(), this, exceptionState);
 
-    RefPtrWillBeRawPtr<Node> node = next ? next->previousSibling() : nullptr;
+    RawPtr<Node> node = next ? next->previousSibling() : nullptr;
     if (!exceptionState.hadException() && node && node->isTextNode())
         mergeWithNextTextNode(toText(node.get()), exceptionState);
 
diff --git a/third_party/WebKit/Source/core/html/HTMLElement.h b/third_party/WebKit/Source/core/html/HTMLElement.h
index 78f597e..a33e15c0 100644
--- a/third_party/WebKit/Source/core/html/HTMLElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLElement.h
@@ -129,7 +129,7 @@
 
     void mapLanguageAttributeToLocale(const AtomicString&, MutableStylePropertySet*);
 
-    PassRefPtrWillBeRawPtr<DocumentFragment> textToFragment(const String&, ExceptionState&);
+    RawPtr<DocumentFragment> textToFragment(const String&, ExceptionState&);
 
     bool selfOrAncestorHasDirAutoAttribute() const;
     void dirAttributeChanged(const AtomicString&);
diff --git a/third_party/WebKit/Source/core/html/HTMLEmbedElement.cpp b/third_party/WebKit/Source/core/html/HTMLEmbedElement.cpp
index e203648..57f1f86 100644
--- a/third_party/WebKit/Source/core/html/HTMLEmbedElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLEmbedElement.cpp
@@ -44,9 +44,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<HTMLEmbedElement> HTMLEmbedElement::create(Document& document, bool createdByParser)
+RawPtr<HTMLEmbedElement> HTMLEmbedElement::create(Document& document, bool createdByParser)
 {
-    RefPtrWillBeRawPtr<HTMLEmbedElement> element = adoptRefWillBeNoop(new HTMLEmbedElement(document, createdByParser));
+    RawPtr<HTMLEmbedElement> element = new HTMLEmbedElement(document, createdByParser);
     element->ensureUserAgentShadowRoot();
     return element.release();
 }
@@ -143,7 +143,7 @@
     Vector<String> paramValues;
     parametersForPlugin(paramNames, paramValues);
 
-    RefPtrWillBeRawPtr<HTMLEmbedElement> protect(this); // Loading the plugin might remove us from the document.
+    RawPtr<HTMLEmbedElement> protect(this); // Loading the plugin might remove us from the document.
 
     // FIXME: Can we not have layoutObject here now that beforeload events are gone?
     if (!layoutObject())
diff --git a/third_party/WebKit/Source/core/html/HTMLEmbedElement.h b/third_party/WebKit/Source/core/html/HTMLEmbedElement.h
index 76610b8..61b662b 100644
--- a/third_party/WebKit/Source/core/html/HTMLEmbedElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLEmbedElement.h
@@ -30,7 +30,7 @@
 class HTMLEmbedElement final : public HTMLPlugInElement {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<HTMLEmbedElement> create(Document&, bool createdByParser = false);
+    static RawPtr<HTMLEmbedElement> create(Document&, bool createdByParser = false);
 
     bool isExposed() const;
 
diff --git a/third_party/WebKit/Source/core/html/HTMLFieldSetElement.cpp b/third_party/WebKit/Source/core/html/HTMLFieldSetElement.cpp
index 8fab4fd4..61b1b50 100644
--- a/third_party/WebKit/Source/core/html/HTMLFieldSetElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLFieldSetElement.cpp
@@ -44,9 +44,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<HTMLFieldSetElement> HTMLFieldSetElement::create(Document& document, HTMLFormElement* form)
+RawPtr<HTMLFieldSetElement> HTMLFieldSetElement::create(Document& document, HTMLFormElement* form)
 {
-    return adoptRefWillBeNoop(new HTMLFieldSetElement(document, form));
+    return new HTMLFieldSetElement(document, form);
 }
 
 DEFINE_TRACE(HTMLFieldSetElement)
@@ -121,7 +121,7 @@
     return Traversal<HTMLLegendElement>::firstChild(*this);
 }
 
-PassRefPtrWillBeRawPtr<HTMLFormControlsCollection> HTMLFieldSetElement::elements()
+RawPtr<HTMLFormControlsCollection> HTMLFieldSetElement::elements()
 {
     return ensureCachedCollection<HTMLFormControlsCollection>(FormControls);
 }
diff --git a/third_party/WebKit/Source/core/html/HTMLFieldSetElement.h b/third_party/WebKit/Source/core/html/HTMLFieldSetElement.h
index 8dce944..e56c796 100644
--- a/third_party/WebKit/Source/core/html/HTMLFieldSetElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLFieldSetElement.h
@@ -34,11 +34,11 @@
 class CORE_EXPORT HTMLFieldSetElement final : public HTMLFormControlElement {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<HTMLFieldSetElement> create(Document&, HTMLFormElement*);
+    static RawPtr<HTMLFieldSetElement> create(Document&, HTMLFormElement*);
     DECLARE_VIRTUAL_TRACE();
     HTMLLegendElement* legend() const;
 
-    PassRefPtrWillBeRawPtr<HTMLFormControlsCollection> elements();
+    RawPtr<HTMLFormControlsCollection> elements();
 
     const FormAssociatedElement::List& associatedElements() const;
 
diff --git a/third_party/WebKit/Source/core/html/HTMLFontElement.cpp b/third_party/WebKit/Source/core/html/HTMLFontElement.cpp
index a53824f70..a1bb973 100644
--- a/third_party/WebKit/Source/core/html/HTMLFontElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLFontElement.cpp
@@ -188,7 +188,7 @@
     } else if (name == colorAttr) {
         addHTMLColorToStyle(style, CSSPropertyColor, value);
     } else if (name == faceAttr && !value.isEmpty()) {
-        if (RefPtrWillBeRawPtr<CSSValueList> fontFaceValue = cssValuePool().createFontFaceValue(value))
+        if (RawPtr<CSSValueList> fontFaceValue = cssValuePool().createFontFaceValue(value))
             style->setProperty(CSSProperty(CSSPropertyFontFamily, fontFaceValue.release()));
     } else {
         HTMLElement::collectStyleForPresentationAttribute(name, value, style);
diff --git a/third_party/WebKit/Source/core/html/HTMLFormControlElement.cpp b/third_party/WebKit/Source/core/html/HTMLFormControlElement.cpp
index 65729e11..5c439f7 100644
--- a/third_party/WebKit/Source/core/html/HTMLFormControlElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLFormControlElement.cpp
@@ -534,15 +534,15 @@
     return &page->validationMessageClient();
 }
 
-bool HTMLFormControlElement::checkValidity(WillBeHeapVector<RefPtrWillBeMember<HTMLFormControlElement>>* unhandledInvalidControls, CheckValidityEventBehavior eventBehavior)
+bool HTMLFormControlElement::checkValidity(HeapVector<Member<HTMLFormControlElement>>* unhandledInvalidControls, CheckValidityEventBehavior eventBehavior)
 {
     if (isValidElement())
         return true;
     if (eventBehavior != CheckValidityDispatchInvalidEvent)
         return false;
     // An event handler can deref this object.
-    RefPtrWillBeRawPtr<HTMLFormControlElement> protector(this);
-    RefPtrWillBeRawPtr<Document> originalDocument(document());
+    RawPtr<HTMLFormControlElement> protector(this);
+    RawPtr<Document> originalDocument(document());
     DispatchEventResult dispatchResult = dispatchEvent(Event::createCancelable(EventTypeNames::invalid));
     if (dispatchResult == DispatchEventResult::NotCanceled && unhandledInvalidControls && inDocument() && originalDocument == document())
         unhandledInvalidControls->append(this);
@@ -552,14 +552,14 @@
 void HTMLFormControlElement::showValidationMessage()
 {
     scrollIntoViewIfNeeded(false);
-    RefPtrWillBeRawPtr<HTMLFormControlElement> protector(this);
+    RawPtr<HTMLFormControlElement> protector(this);
     focus();
     updateVisibleValidationMessage();
 }
 
 bool HTMLFormControlElement::reportValidity()
 {
-    WillBeHeapVector<RefPtrWillBeMember<HTMLFormControlElement>> unhandledInvalidControls;
+    HeapVector<Member<HTMLFormControlElement>> unhandledInvalidControls;
     bool isValid = checkValidity(&unhandledInvalidControls, CheckValidityDispatchInvalidEvent);
     if (isValid || unhandledInvalidControls.isEmpty())
         return isValid;
diff --git a/third_party/WebKit/Source/core/html/HTMLFormControlElement.h b/third_party/WebKit/Source/core/html/HTMLFormControlElement.h
index b29083d..3677256b 100644
--- a/third_party/WebKit/Source/core/html/HTMLFormControlElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLFormControlElement.h
@@ -39,7 +39,7 @@
 // and form-associated element implementations should use HTMLFormControlElement
 // unless there is a special reason.
 class CORE_EXPORT HTMLFormControlElement : public LabelableElement, public FormAssociatedElement {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(HTMLFormControlElement);
+    USING_GARBAGE_COLLECTED_MIXIN(HTMLFormControlElement);
 
 public:
     ~HTMLFormControlElement() override;
@@ -96,7 +96,7 @@
 
     void updateVisibleValidationMessage();
     void hideVisibleValidationMessage();
-    bool checkValidity(WillBeHeapVector<RefPtrWillBeMember<HTMLFormControlElement>>* unhandledInvalidControls = 0, CheckValidityEventBehavior = CheckValidityDispatchInvalidEvent);
+    bool checkValidity(HeapVector<Member<HTMLFormControlElement>>* unhandledInvalidControls = 0, CheckValidityEventBehavior = CheckValidityDispatchInvalidEvent);
     bool reportValidity();
     // This must be called only after the caller check the element is focusable.
     void showValidationMessage();
diff --git a/third_party/WebKit/Source/core/html/HTMLFormControlElementTest.cpp b/third_party/WebKit/Source/core/html/HTMLFormControlElementTest.cpp
index 7f9d552..f4c621c 100644
--- a/third_party/WebKit/Source/core/html/HTMLFormControlElementTest.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLFormControlElementTest.cpp
@@ -23,7 +23,7 @@
 
 private:
     OwnPtr<DummyPageHolder> m_dummyPageHolder;
-    RefPtrWillBePersistent<HTMLDocument> m_document;
+    Persistent<HTMLDocument> m_document;
 };
 
 void HTMLFormControlElementTest::SetUp()
diff --git a/third_party/WebKit/Source/core/html/HTMLFormControlsCollection.cpp b/third_party/WebKit/Source/core/html/HTMLFormControlsCollection.cpp
index 4b48cff..916c35b 100644
--- a/third_party/WebKit/Source/core/html/HTMLFormControlsCollection.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLFormControlsCollection.cpp
@@ -46,10 +46,10 @@
     ASSERT(isHTMLFormElement(ownerNode) || isHTMLFieldSetElement(ownerNode));
 }
 
-PassRefPtrWillBeRawPtr<HTMLFormControlsCollection> HTMLFormControlsCollection::create(ContainerNode& ownerNode, CollectionType type)
+RawPtr<HTMLFormControlsCollection> HTMLFormControlsCollection::create(ContainerNode& ownerNode, CollectionType type)
 {
     ASSERT_UNUSED(type, type == FormControls);
-    return adoptRefWillBeNoop(new HTMLFormControlsCollection(ownerNode));
+    return new HTMLFormControlsCollection(ownerNode);
 }
 
 HTMLFormControlsCollection::~HTMLFormControlsCollection()
@@ -64,7 +64,7 @@
     return toHTMLFieldSetElement(ownerNode()).associatedElements();
 }
 
-const WillBeHeapVector<RawPtrWillBeMember<HTMLImageElement>>& HTMLFormControlsCollection::formImageElements() const
+const HeapVector<Member<HTMLImageElement>>& HTMLFormControlsCollection::formImageElements() const
 {
     return toHTMLFormElement(ownerNode()).imageElements();
 }
@@ -138,7 +138,7 @@
     if (hasValidIdNameCache())
         return;
 
-    OwnPtrWillBeRawPtr<NamedItemCache> cache = NamedItemCache::create();
+    RawPtr<NamedItemCache> cache = NamedItemCache::create();
     HashSet<StringImpl*> foundInputElements;
 
     const FormAssociatedElement::List& elementsArray = formControlElements();
@@ -164,7 +164,7 @@
         // HTMLFormControlsCollection doesn't support named getter for IMG
         // elements. However we still need to handle IMG elements here because
         // HTMLFormElement named getter relies on this.
-        const WillBeHeapVector<RawPtrWillBeMember<HTMLImageElement>>& imageElementsArray = formImageElements();
+        const HeapVector<Member<HTMLImageElement>>& imageElementsArray = formImageElements();
         for (unsigned i = 0; i < imageElementsArray.size(); ++i) {
             HTMLImageElement* element = imageElementsArray[i];
             const AtomicString& idAttrVal = element->getIdAttribute();
@@ -182,7 +182,7 @@
 
 void HTMLFormControlsCollection::namedGetter(const AtomicString& name, RadioNodeListOrElement& returnValue)
 {
-    WillBeHeapVector<RefPtrWillBeMember<Element>> namedItems;
+    HeapVector<Member<Element>> namedItems;
     this->namedItems(name, namedItems);
 
     if (namedItems.isEmpty())
diff --git a/third_party/WebKit/Source/core/html/HTMLFormControlsCollection.h b/third_party/WebKit/Source/core/html/HTMLFormControlsCollection.h
index eedb414..2d202d7 100644
--- a/third_party/WebKit/Source/core/html/HTMLFormControlsCollection.h
+++ b/third_party/WebKit/Source/core/html/HTMLFormControlsCollection.h
@@ -40,7 +40,7 @@
 class HTMLFormControlsCollection final : public HTMLCollection {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<HTMLFormControlsCollection> create(ContainerNode&, CollectionType);
+    static RawPtr<HTMLFormControlsCollection> create(ContainerNode&, CollectionType);
 
     ~HTMLFormControlsCollection() override;
 
@@ -58,11 +58,11 @@
     void supportedPropertyNames(Vector<String>& names) override;
 
     const FormAssociatedElement::List& formControlElements() const;
-    const WillBeHeapVector<RawPtrWillBeMember<HTMLImageElement>>& formImageElements() const;
+    const HeapVector<Member<HTMLImageElement>>& formImageElements() const;
     HTMLElement* virtualItemAfter(Element*) const override;
     void invalidateCache(Document* oldDocument = 0) const override;
 
-    mutable RawPtrWillBeMember<HTMLElement> m_cachedElement;
+    mutable Member<HTMLElement> m_cachedElement;
     mutable unsigned m_cachedElementOffsetInArray;
 };
 DEFINE_TYPE_CASTS(HTMLFormControlsCollection, LiveNodeListBase, collection, collection->type() == FormControls, collection.type() == FormControls);
diff --git a/third_party/WebKit/Source/core/html/HTMLFormElement.cpp b/third_party/WebKit/Source/core/html/HTMLFormElement.cpp
index fcb3f89..574e933d 100644
--- a/third_party/WebKit/Source/core/html/HTMLFormElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLFormElement.cpp
@@ -80,10 +80,10 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<HTMLFormElement> HTMLFormElement::create(Document& document)
+RawPtr<HTMLFormElement> HTMLFormElement::create(Document& document)
 {
     UseCounter::count(document, UseCounter::FormElement);
-    return adoptRefWillBeNoop(new HTMLFormElement(document));
+    return new HTMLFormElement(document);
 }
 
 HTMLFormElement::~HTMLFormElement()
@@ -181,10 +181,10 @@
         }
 
         if (!m_imageElementsAreDirty) {
-            WillBeHeapVector<RawPtrWillBeMember<HTMLImageElement>> images(imageElements());
+            HeapVector<Member<HTMLImageElement>> images(imageElements());
             notifyFormRemovedFromTree(images, root);
         } else {
-            WillBeHeapVector<RawPtrWillBeMember<HTMLImageElement>> images;
+            HeapVector<Member<HTMLImageElement>> images;
             collectImageElements(NodeTraversal::highestAncestorOrSelf(*insertionPoint), images);
             notifyFormRemovedFromTree(images, root);
             collectImageElements(root, images);
@@ -270,7 +270,7 @@
             toHTMLFormControlElement(elements[i])->hideVisibleValidationMessage();
     }
 
-    WillBeHeapVector<RefPtrWillBeMember<HTMLFormControlElement>> unhandledInvalidControls;
+    HeapVector<Member<HTMLFormControlElement>> unhandledInvalidControls;
     if (!checkInvalidControlsAndCollectUnhandled(&unhandledInvalidControls, CheckValidityDispatchInvalidEvent))
         return true;
     // Because the form has invalid controls, we abort the form submission and
@@ -280,7 +280,7 @@
     // has !layoutObject()->needsLayout() assertion.
     document().updateLayoutIgnorePendingStylesheets();
 
-    RefPtrWillBeRawPtr<HTMLFormElement> protector(this);
+    RawPtr<HTMLFormElement> protector(this);
     // Focus on the first focusable control and show a validation message.
     for (unsigned i = 0; i < unhandledInvalidControls.size(); ++i) {
         HTMLFormControlElement* unhandled = unhandledInvalidControls[i].get();
@@ -305,7 +305,7 @@
 
 void HTMLFormElement::prepareForSubmission(Event* event)
 {
-    RefPtrWillBeRawPtr<HTMLFormElement> protector(this);
+    RawPtr<HTMLFormElement> protector(this);
     LocalFrame* frame = document().frame();
     if (!frame || m_isSubmittingOrInUserJSSubmitEvent)
         return;
@@ -339,7 +339,7 @@
     submit(0, false);
 }
 
-void HTMLFormElement::submitDialog(PassRefPtrWillBeRawPtr<FormSubmission> formSubmission)
+void HTMLFormElement::submitDialog(RawPtr<FormSubmission> formSubmission)
 {
     for (Node* node = this; node; node = node->parentOrShadowHostNode()) {
         if (isHTMLDialogElement(*node)) {
@@ -363,7 +363,7 @@
 
     m_isSubmittingOrInUserJSSubmitEvent = true;
 
-    RefPtrWillBeRawPtr<HTMLFormControlElement> firstSuccessfulSubmitButton = nullptr;
+    RawPtr<HTMLFormControlElement> firstSuccessfulSubmitButton = nullptr;
     bool needButtonActivation = activateSubmitButton; // do we need to activate a submit button?
 
     const FormAssociatedElement::List& elements = associatedElements();
@@ -383,7 +383,7 @@
     if (needButtonActivation && firstSuccessfulSubmitButton)
         firstSuccessfulSubmitButton->setActivatedSubmit(true);
 
-    RefPtrWillBeRawPtr<FormSubmission> formSubmission = FormSubmission::create(this, m_attributes, event);
+    RawPtr<FormSubmission> formSubmission = FormSubmission::create(this, m_attributes, event);
     EventQueueScope scopeForDialogClose; // Delay dispatching 'close' to dialog until done submitting.
     if (formSubmission->method() == FormSubmission::DialogMethod)
         submitDialog(formSubmission.release());
@@ -397,7 +397,7 @@
     m_isSubmittingOrInUserJSSubmitEvent = false;
 }
 
-void HTMLFormElement::scheduleFormSubmission(PassRefPtrWillBeRawPtr<FormSubmission> submission)
+void HTMLFormElement::scheduleFormSubmission(RawPtr<FormSubmission> submission)
 {
     ASSERT(submission->method() == FormSubmission::PostMethod || submission->method() == FormSubmission::GetMethod);
     ASSERT(submission->data());
@@ -480,7 +480,7 @@
 
 void HTMLFormElement::finishRequestAutocomplete(AutocompleteResult result)
 {
-    RefPtrWillBeRawPtr<Event> event = nullptr;
+    RawPtr<Event> event = nullptr;
     if (result == AutocompleteResultSuccess)
         event = Event::createBubble(EventTypeNames::autocomplete);
     else if (result == AutocompleteResultErrorDisabled)
@@ -576,7 +576,7 @@
     UseCounter::count(document(), UseCounter::FormAssociationByParser);
 }
 
-PassRefPtrWillBeRawPtr<HTMLFormControlsCollection> HTMLFormElement::elements()
+RawPtr<HTMLFormControlsCollection> HTMLFormElement::elements()
 {
     return ensureCachedCollection<HTMLFormControlsCollection>(FormControls);
 }
@@ -615,7 +615,7 @@
     return m_associatedElements;
 }
 
-void HTMLFormElement::collectImageElements(Node& root, WillBeHeapVector<RawPtrWillBeMember<HTMLImageElement>>& elements)
+void HTMLFormElement::collectImageElements(Node& root, HeapVector<Member<HTMLImageElement>>& elements)
 {
     elements.clear();
     for (HTMLImageElement& image : Traversal<HTMLImageElement>::startsAfter(root)) {
@@ -624,7 +624,7 @@
     }
 }
 
-const WillBeHeapVector<RawPtrWillBeMember<HTMLImageElement>>& HTMLFormElement::imageElements()
+const HeapVector<Member<HTMLImageElement>>& HTMLFormElement::imageElements()
 {
     if (!m_imageElementsAreDirty)
         return m_imageElements;
@@ -683,13 +683,13 @@
     return !checkInvalidControlsAndCollectUnhandled(0, CheckValidityDispatchInvalidEvent);
 }
 
-bool HTMLFormElement::checkInvalidControlsAndCollectUnhandled(WillBeHeapVector<RefPtrWillBeMember<HTMLFormControlElement>>* unhandledInvalidControls, CheckValidityEventBehavior eventBehavior)
+bool HTMLFormElement::checkInvalidControlsAndCollectUnhandled(HeapVector<Member<HTMLFormControlElement>>* unhandledInvalidControls, CheckValidityEventBehavior eventBehavior)
 {
-    RefPtrWillBeRawPtr<HTMLFormElement> protector(this);
+    RawPtr<HTMLFormElement> protector(this);
     // Copy associatedElements because event handlers called from
     // HTMLFormControlElement::checkValidity() might change associatedElements.
     const FormAssociatedElement::List& associatedElements = this->associatedElements();
-    WillBeHeapVector<RefPtrWillBeMember<FormAssociatedElement>> elements;
+    HeapVector<Member<FormAssociatedElement>> elements;
     elements.reserveCapacity(associatedElements.size());
     for (unsigned i = 0; i < associatedElements.size(); ++i)
         elements.append(associatedElements[i]);
@@ -753,7 +753,7 @@
     }
 }
 
-void HTMLFormElement::getNamedElements(const AtomicString& name, WillBeHeapVector<RefPtrWillBeMember<Element>>& namedItems)
+void HTMLFormElement::getNamedElements(const AtomicString& name, HeapVector<Member<Element>>& namedItems)
 {
     // http://www.whatwg.org/specs/web-apps/current-work/multipage/forms.html#dom-form-nameditem
     elements()->namedItems(name, namedItems);
@@ -791,7 +791,7 @@
     // and let HTMLFormElement update its cache.
     // See issue: 867404
     {
-        WillBeHeapVector<RefPtrWillBeMember<Element>> elements;
+        HeapVector<Member<Element>> elements;
         getNamedElements(name, elements);
         if (elements.isEmpty())
             return;
@@ -799,7 +799,7 @@
 
     // Second call may return different results from the first call,
     // but if the first the size cannot be zero.
-    WillBeHeapVector<RefPtrWillBeMember<Element>> elements;
+    HeapVector<Member<Element>> elements;
     getNamedElements(name, elements);
     ASSERT(!elements.isEmpty());
 
diff --git a/third_party/WebKit/Source/core/html/HTMLFormElement.h b/third_party/WebKit/Source/core/html/HTMLFormElement.h
index a9cbccc..055ec8fc 100644
--- a/third_party/WebKit/Source/core/html/HTMLFormElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLFormElement.h
@@ -45,12 +45,12 @@
 class CORE_EXPORT HTMLFormElement final : public HTMLElement {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<HTMLFormElement> create(Document&);
+    static RawPtr<HTMLFormElement> create(Document&);
     ~HTMLFormElement() override;
     DECLARE_VIRTUAL_TRACE();
 
-    PassRefPtrWillBeRawPtr<HTMLFormControlsCollection> elements();
-    void getNamedElements(const AtomicString&, WillBeHeapVector<RefPtrWillBeMember<Element>>&);
+    RawPtr<HTMLFormControlsCollection> elements();
+    void getNamedElements(const AtomicString&, HeapVector<Member<Element>>&);
 
     unsigned length() const;
     HTMLElement* item(unsigned index);
@@ -114,7 +114,7 @@
     RadioButtonGroupScope& radioButtonGroupScope() { return m_radioButtonGroupScope; }
 
     const FormAssociatedElement::List& associatedElements() const;
-    const WillBeHeapVector<RawPtrWillBeMember<HTMLImageElement>>& imageElements();
+    const HeapVector<Member<HTMLImageElement>>& imageElements();
 
     void anonymousNamedGetter(const AtomicString& name, RadioNodeListOrElement&);
     void invalidateDefaultButtonStyle() const;
@@ -137,13 +137,13 @@
 
     void copyNonAttributePropertiesFromElement(const Element&) override;
 
-    void submitDialog(PassRefPtrWillBeRawPtr<FormSubmission>);
+    void submitDialog(RawPtr<FormSubmission>);
     void submit(Event*, bool activateSubmitButton);
 
-    void scheduleFormSubmission(PassRefPtrWillBeRawPtr<FormSubmission>);
+    void scheduleFormSubmission(RawPtr<FormSubmission>);
 
     void collectAssociatedElements(Node& root, FormAssociatedElement::List&) const;
-    void collectImageElements(Node& root, WillBeHeapVector<RawPtrWillBeMember<HTMLImageElement>>&);
+    void collectImageElements(Node& root, HeapVector<Member<HTMLImageElement>>&);
 
     // Returns true if the submission should proceed.
     bool validateInteractively();
@@ -151,23 +151,23 @@
     // Validates each of the controls, and stores controls of which 'invalid'
     // event was not canceled to the specified vector. Returns true if there
     // are any invalid controls in this form.
-    bool checkInvalidControlsAndCollectUnhandled(WillBeHeapVector<RefPtrWillBeMember<HTMLFormControlElement>>*, CheckValidityEventBehavior);
+    bool checkInvalidControlsAndCollectUnhandled(HeapVector<Member<HTMLFormControlElement>>*, CheckValidityEventBehavior);
 
     Element* elementFromPastNamesMap(const AtomicString&);
     void addToPastNamesMap(Element*, const AtomicString& pastName);
     void removeFromPastNamesMap(HTMLElement&);
 
-    typedef WillBeHeapHashMap<AtomicString, RawPtrWillBeMember<Element>> PastNamesMap;
+    typedef HeapHashMap<AtomicString, Member<Element>> PastNamesMap;
 
     FormSubmission::Attributes m_attributes;
-    OwnPtrWillBeMember<PastNamesMap> m_pastNamesMap;
+    Member<PastNamesMap> m_pastNamesMap;
 
     RadioButtonGroupScope m_radioButtonGroupScope;
 
     // Do not access m_associatedElements directly. Use associatedElements() instead.
     FormAssociatedElement::List m_associatedElements;
     // Do not access m_imageElements directly. Use imageElements() instead.
-    WillBeHeapVector<RawPtrWillBeMember<HTMLImageElement>> m_imageElements;
+    HeapVector<Member<HTMLImageElement>> m_imageElements;
 #if !ENABLE(OILPAN)
     WeakPtrFactory<HTMLFormElement> m_weakPtrFactory;
 #endif
@@ -184,7 +184,7 @@
 
     bool m_wasDemoted : 1;
 
-    OwnPtrWillBeMember<GenericEventQueue> m_pendingAutocompleteEventsQueue;
+    Member<GenericEventQueue> m_pendingAutocompleteEventsQueue;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/html/HTMLFrameOwnerElement.cpp b/third_party/WebKit/Source/core/html/HTMLFrameOwnerElement.cpp
index ca61f54..03cc78f 100644
--- a/third_party/WebKit/Source/core/html/HTMLFrameOwnerElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLFrameOwnerElement.cpp
@@ -38,25 +38,25 @@
 
 namespace blink {
 
-typedef WillBeHeapHashMap<RefPtrWillBeMember<Widget>, RawPtrWillBeMember<FrameView>> WidgetToParentMap;
+typedef HeapHashMap<Member<Widget>, Member<FrameView>> WidgetToParentMap;
 static WidgetToParentMap& widgetNewParentMap()
 {
-    DEFINE_STATIC_LOCAL(OwnPtrWillBePersistent<WidgetToParentMap>, map, (adoptPtrWillBeNoop(new WidgetToParentMap())));
+    DEFINE_STATIC_LOCAL(Persistent<WidgetToParentMap>, map, (new WidgetToParentMap()));
     return *map;
 }
 
-typedef WillBeHeapHashSet<RefPtrWillBeMember<Widget>> WidgetSet;
+typedef HeapHashSet<Member<Widget>> WidgetSet;
 static WidgetSet& widgetsPendingTemporaryRemovalFromParent()
 {
     // Widgets in this set will not leak because it will be cleared in
     // HTMLFrameOwnerElement::UpdateSuspendScope::performDeferredWidgetTreeOperations.
-    DEFINE_STATIC_LOCAL(OwnPtrWillBePersistent<WidgetSet>, set, (adoptPtrWillBeNoop(new WidgetSet())));
+    DEFINE_STATIC_LOCAL(Persistent<WidgetSet>, set, (new WidgetSet()));
     return *set;
 }
 
-WillBeHeapHashCountedSet<RawPtrWillBeMember<Node>>& SubframeLoadingDisabler::disabledSubtreeRoots()
+HeapHashCountedSet<Member<Node>>& SubframeLoadingDisabler::disabledSubtreeRoots()
 {
-    DEFINE_STATIC_LOCAL(OwnPtrWillBePersistent<WillBeHeapHashCountedSet<RawPtrWillBeMember<Node>>>, nodes, (adoptPtrWillBeNoop(new WillBeHeapHashCountedSet<RawPtrWillBeMember<Node>>())));
+    DEFINE_STATIC_LOCAL(Persistent<HeapHashCountedSet<Member<Node>>>, nodes, (new HeapHashCountedSet<Member<Node>>()));
     return *nodes;
 }
 
@@ -178,7 +178,7 @@
     // unload event in the subframe which could execute script that could then
     // reach up into this document and then attempt to look back down. We should
     // see if this behavior is really needed as Gecko does not allow this.
-    if (RefPtrWillBeRawPtr<Frame> frame = contentFrame()) {
+    if (RawPtr<Frame> frame = contentFrame()) {
         frame->detach(FrameDetachType::Remove);
     }
 }
@@ -227,7 +227,7 @@
     return nullptr;
 }
 
-void HTMLFrameOwnerElement::setWidget(PassRefPtrWillBeRawPtr<Widget> widget)
+void HTMLFrameOwnerElement::setWidget(RawPtr<Widget> widget)
 {
     if (widget == m_widget)
         return;
@@ -257,7 +257,7 @@
         cache->childrenChanged(layoutPart);
 }
 
-PassRefPtrWillBeRawPtr<Widget> HTMLFrameOwnerElement::releaseWidget()
+RawPtr<Widget> HTMLFrameOwnerElement::releaseWidget()
 {
     if (!m_widget)
         return nullptr;
@@ -278,7 +278,7 @@
 
 bool HTMLFrameOwnerElement::loadOrRedirectSubframe(const KURL& url, const AtomicString& frameName, bool replaceCurrentItem)
 {
-    RefPtrWillBeRawPtr<LocalFrame> parentFrame = document().frame();
+    RawPtr<LocalFrame> parentFrame = document().frame();
     if (contentFrame()) {
         contentFrame()->navigate(document(), url, replaceCurrentItem, UserGestureStatus::None);
         return true;
diff --git a/third_party/WebKit/Source/core/html/HTMLFrameOwnerElement.h b/third_party/WebKit/Source/core/html/HTMLFrameOwnerElement.h
index a562da2..499a9f2 100644
--- a/third_party/WebKit/Source/core/html/HTMLFrameOwnerElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLFrameOwnerElement.h
@@ -39,7 +39,7 @@
 class Widget;
 
 class CORE_EXPORT HTMLFrameOwnerElement : public HTMLElement, public FrameOwner {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(HTMLFrameOwnerElement);
+    USING_GARBAGE_COLLECTED_MIXIN(HTMLFrameOwnerElement);
 public:
     ~HTMLFrameOwnerElement() override;
 
@@ -59,8 +59,8 @@
     virtual bool loadedNonEmptyDocument() const { return false; }
     virtual void didLoadNonEmptyDocument() { }
 
-    void setWidget(PassRefPtrWillBeRawPtr<Widget>);
-    PassRefPtrWillBeRawPtr<Widget> releaseWidget();
+    void setWidget(RawPtr<Widget>);
+    RawPtr<Widget> releaseWidget();
     Widget* ownedWidget() const;
 
     class UpdateSuspendScope {
@@ -99,8 +99,8 @@
 
     virtual ReferrerPolicy referrerPolicyAttribute() { return ReferrerPolicyDefault; }
 
-    RawPtrWillBeMember<Frame> m_contentFrame;
-    RefPtrWillBeMember<Widget> m_widget;
+    Member<Frame> m_contentFrame;
+    Member<Widget> m_widget;
     SandboxFlags m_sandboxFlags;
 };
 
@@ -136,9 +136,9 @@
     }
 
 private:
-    CORE_EXPORT static WillBeHeapHashCountedSet<RawPtrWillBeMember<Node>>& disabledSubtreeRoots();
+    CORE_EXPORT static HeapHashCountedSet<Member<Node>>& disabledSubtreeRoots();
 
-    RawPtrWillBeMember<Node> m_root;
+    Member<Node> m_root;
 };
 
 DEFINE_TYPE_CASTS(HTMLFrameOwnerElement, FrameOwner, owner, owner->isLocal(), owner.isLocal());
diff --git a/third_party/WebKit/Source/core/html/HTMLHRElement.cpp b/third_party/WebKit/Source/core/html/HTMLHRElement.cpp
index 0ee0134c..afb5386 100644
--- a/third_party/WebKit/Source/core/html/HTMLHRElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLHRElement.cpp
@@ -74,7 +74,7 @@
         if (!hasAttribute(colorAttr)) {
             addPropertyToPresentationAttributeStyle(style, CSSPropertyBorderStyle, CSSValueSolid);
 
-            RefPtrWillBeRawPtr<CSSColorValue> darkGrayValue = cssValuePool().createColorValue(Color::darkGray);
+            RawPtr<CSSColorValue> darkGrayValue = cssValuePool().createColorValue(Color::darkGray);
             style->setProperty(CSSPropertyBorderColor, darkGrayValue);
             style->setProperty(CSSPropertyBackgroundColor, darkGrayValue);
         }
diff --git a/third_party/WebKit/Source/core/html/HTMLIFrameElement.h b/third_party/WebKit/Source/core/html/HTMLIFrameElement.h
index 28608d8..9b2ac57 100644
--- a/third_party/WebKit/Source/core/html/HTMLIFrameElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLIFrameElement.h
@@ -31,7 +31,7 @@
 
 class HTMLIFrameElement final : public HTMLFrameElementBase, public DOMTokenListObserver {
     DEFINE_WRAPPERTYPEINFO();
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(HTMLIFrameElement);
+    USING_GARBAGE_COLLECTED_MIXIN(HTMLIFrameElement);
 public:
     DECLARE_NODE_FACTORY(HTMLIFrameElement);
     DECLARE_VIRTUAL_TRACE();
@@ -61,7 +61,7 @@
 
     AtomicString m_name;
     bool m_didLoadNonEmptyDocument;
-    RefPtrWillBeMember<HTMLIFrameElementSandbox> m_sandbox;
+    Member<HTMLIFrameElementSandbox> m_sandbox;
 
     ReferrerPolicy m_referrerPolicy;
 };
diff --git a/third_party/WebKit/Source/core/html/HTMLIFrameElementSandbox.h b/third_party/WebKit/Source/core/html/HTMLIFrameElementSandbox.h
index ca3f92b..21863bf 100644
--- a/third_party/WebKit/Source/core/html/HTMLIFrameElementSandbox.h
+++ b/third_party/WebKit/Source/core/html/HTMLIFrameElementSandbox.h
@@ -11,9 +11,9 @@
 
 class HTMLIFrameElementSandbox final : public DOMTokenList {
 public:
-    static PassRefPtrWillBeRawPtr<HTMLIFrameElementSandbox> create(DOMTokenListObserver* observer = nullptr)
+    static RawPtr<HTMLIFrameElementSandbox> create(DOMTokenListObserver* observer = nullptr)
     {
-        return adoptRefWillBeNoop(new HTMLIFrameElementSandbox(observer));
+        return new HTMLIFrameElementSandbox(observer);
     }
 
     ~HTMLIFrameElementSandbox() override;
diff --git a/third_party/WebKit/Source/core/html/HTMLImageElement.cpp b/third_party/WebKit/Source/core/html/HTMLImageElement.cpp
index 5cc4178..084a218 100644
--- a/third_party/WebKit/Source/core/html/HTMLImageElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLImageElement.cpp
@@ -61,9 +61,9 @@
 
 class HTMLImageElement::ViewportChangeListener final : public MediaQueryListListener {
 public:
-    static RefPtrWillBeRawPtr<ViewportChangeListener> create(HTMLImageElement* element)
+    static RawPtr<ViewportChangeListener> create(HTMLImageElement* element)
     {
-        return adoptRefWillBeNoop(new ViewportChangeListener(element));
+        return new ViewportChangeListener(element);
     }
 
     void notifyMediaQueryChanged() override
@@ -82,7 +82,7 @@
     }
 private:
     explicit ViewportChangeListener(HTMLImageElement* element) : m_element(element) { }
-    RawPtrWillBeMember<HTMLImageElement> m_element;
+    Member<HTMLImageElement> m_element;
 };
 
 HTMLImageElement::HTMLImageElement(Document& document, HTMLFormElement* form, bool createdByParser)
@@ -110,14 +110,14 @@
     }
 }
 
-PassRefPtrWillBeRawPtr<HTMLImageElement> HTMLImageElement::create(Document& document)
+RawPtr<HTMLImageElement> HTMLImageElement::create(Document& document)
 {
-    return adoptRefWillBeNoop(new HTMLImageElement(document));
+    return new HTMLImageElement(document);
 }
 
-PassRefPtrWillBeRawPtr<HTMLImageElement> HTMLImageElement::create(Document& document, HTMLFormElement* form, bool createdByParser)
+RawPtr<HTMLImageElement> HTMLImageElement::create(Document& document, HTMLFormElement* form, bool createdByParser)
 {
-    return adoptRefWillBeNoop(new HTMLImageElement(document, form, createdByParser));
+    return new HTMLImageElement(document, form, createdByParser);
 }
 
 HTMLImageElement::~HTMLImageElement()
@@ -149,24 +149,24 @@
     selectSourceURL(ImageLoader::UpdateSizeChanged);
 }
 
-PassRefPtrWillBeRawPtr<HTMLImageElement> HTMLImageElement::createForJSConstructor(Document& document)
+RawPtr<HTMLImageElement> HTMLImageElement::createForJSConstructor(Document& document)
 {
-    RefPtrWillBeRawPtr<HTMLImageElement> image = adoptRefWillBeNoop(new HTMLImageElement(document));
+    RawPtr<HTMLImageElement> image = new HTMLImageElement(document);
     image->m_elementCreatedByParser = false;
     return image.release();
 }
 
-PassRefPtrWillBeRawPtr<HTMLImageElement> HTMLImageElement::createForJSConstructor(Document& document, int width)
+RawPtr<HTMLImageElement> HTMLImageElement::createForJSConstructor(Document& document, int width)
 {
-    RefPtrWillBeRawPtr<HTMLImageElement> image = adoptRefWillBeNoop(new HTMLImageElement(document));
+    RawPtr<HTMLImageElement> image = new HTMLImageElement(document);
     image->setWidth(width);
     image->m_elementCreatedByParser = false;
     return image.release();
 }
 
-PassRefPtrWillBeRawPtr<HTMLImageElement> HTMLImageElement::createForJSConstructor(Document& document, int width, int height)
+RawPtr<HTMLImageElement> HTMLImageElement::createForJSConstructor(Document& document, int width, int height)
 {
-    RefPtrWillBeRawPtr<HTMLImageElement> image = adoptRefWillBeNoop(new HTMLImageElement(document));
+    RawPtr<HTMLImageElement> image = new HTMLImageElement(document);
     image->setWidth(width);
     image->setHeight(height);
     image->m_elementCreatedByParser = false;
@@ -381,7 +381,7 @@
         if (m_isFallbackImage) {
             float deviceScaleFactor = blink::deviceScaleFactor(layoutImage->frame());
             std::pair<Image*, float> brokenImageAndImageScaleFactor = ImageResource::brokenImage(deviceScaleFactor);
-            RefPtrWillBeRawPtr<ImageResource> newImageResource = ImageResource::create(brokenImageAndImageScaleFactor.first);
+            RawPtr<ImageResource> newImageResource = ImageResource::create(brokenImageAndImageScaleFactor.first);
             layoutImage->imageResource()->setImageResource(newImageResource.get());
         }
         if (layoutImageResource->hasImage())
diff --git a/third_party/WebKit/Source/core/html/HTMLImageElement.h b/third_party/WebKit/Source/core/html/HTMLImageElement.h
index 3f5e7dc1..53c755f 100644
--- a/third_party/WebKit/Source/core/html/HTMLImageElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLImageElement.h
@@ -47,11 +47,11 @@
 public:
     class ViewportChangeListener;
 
-    static PassRefPtrWillBeRawPtr<HTMLImageElement> create(Document&);
-    static PassRefPtrWillBeRawPtr<HTMLImageElement> create(Document&, HTMLFormElement*, bool createdByParser);
-    static PassRefPtrWillBeRawPtr<HTMLImageElement> createForJSConstructor(Document&);
-    static PassRefPtrWillBeRawPtr<HTMLImageElement> createForJSConstructor(Document&, int width);
-    static PassRefPtrWillBeRawPtr<HTMLImageElement> createForJSConstructor(Document&, int width, int height);
+    static RawPtr<HTMLImageElement> create(Document&);
+    static RawPtr<HTMLImageElement> create(Document&, HTMLFormElement*, bool createdByParser);
+    static RawPtr<HTMLImageElement> createForJSConstructor(Document&);
+    static RawPtr<HTMLImageElement> createForJSConstructor(Document&, int width);
+    static RawPtr<HTMLImageElement> createForJSConstructor(Document&, int width, int height);
 
     ~HTMLImageElement() override;
     DECLARE_VIRTUAL_TRACE();
@@ -160,12 +160,12 @@
     void notifyViewportChanged();
     void createMediaQueryListIfDoesNotExist();
 
-    OwnPtrWillBeMember<HTMLImageLoader> m_imageLoader;
-    RefPtrWillBeMember<ViewportChangeListener> m_listener;
-    WeakPtrWillBeMember<HTMLFormElement> m_form;
+    Member<HTMLImageLoader> m_imageLoader;
+    Member<ViewportChangeListener> m_listener;
+    Member<HTMLFormElement> m_form;
     AtomicString m_bestFitImageURL;
     float m_imageDevicePixelRatio;
-    RefPtrWillBeMember<HTMLSourceElement> m_source;
+    Member<HTMLSourceElement> m_source;
     unsigned m_formWasSetByParser : 1;
     unsigned m_elementCreatedByParser : 1;
     unsigned m_useFallbackContent : 1;
diff --git a/third_party/WebKit/Source/core/html/HTMLImageElementTest.cpp b/third_party/WebKit/Source/core/html/HTMLImageElementTest.cpp
index 99ae9dd..99ef202 100644
--- a/third_party/WebKit/Source/core/html/HTMLImageElementTest.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLImageElementTest.cpp
@@ -25,7 +25,7 @@
 
 TEST_F(HTMLImageElementTest, width)
 {
-    RefPtrWillBeRawPtr<HTMLImageElement> image = HTMLImageElement::create(m_dummyPageHolder->document(), nullptr, /* createdByParser */ false);
+    RawPtr<HTMLImageElement> image = HTMLImageElement::create(m_dummyPageHolder->document(), nullptr, /* createdByParser */ false);
     image->setAttribute(HTMLNames::widthAttr, "400");
     // TODO(yoav): `width` does not impact resourceWidth until we resolve https://github.com/ResponsiveImagesCG/picture-element/issues/268
     EXPECT_EQ(500, image->getResourceWidth().width);
@@ -35,7 +35,7 @@
 
 TEST_F(HTMLImageElementTest, sourceSize)
 {
-    RefPtrWillBeRawPtr<HTMLImageElement> image = HTMLImageElement::create(m_dummyPageHolder->document(), nullptr, /* createdByParser */ false);
+    RawPtr<HTMLImageElement> image = HTMLImageElement::create(m_dummyPageHolder->document(), nullptr, /* createdByParser */ false);
     image->setAttribute(HTMLNames::widthAttr, "400");
     EXPECT_EQ(viewportWidth, image->sourceSize(*image));
     image->setAttribute(HTMLNames::sizesAttr, "50vw");
diff --git a/third_party/WebKit/Source/core/html/HTMLImageFallbackHelper.cpp b/third_party/WebKit/Source/core/html/HTMLImageFallbackHelper.cpp
index 9391995..5f7fc8a 100644
--- a/third_party/WebKit/Source/core/html/HTMLImageFallbackHelper.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLImageFallbackHelper.cpp
@@ -34,7 +34,7 @@
 {
     ShadowRoot& root = element.ensureUserAgentShadowRoot();
 
-    RefPtrWillBeRawPtr<HTMLDivElement> container = HTMLDivElement::create(element.document());
+    RawPtr<HTMLDivElement> container = HTMLDivElement::create(element.document());
     root.appendChild(container);
     container->setAttribute(idAttr, AtomicString("alttext-container"));
     container->setInlineStyleProperty(CSSPropertyOverflow, CSSValueHidden);
@@ -45,7 +45,7 @@
     container->setInlineStyleProperty(CSSPropertyBoxSizing, CSSValueBorderBox);
     container->setInlineStyleProperty(CSSPropertyPadding, 1, CSSPrimitiveValue::UnitType::Pixels);
 
-    RefPtrWillBeRawPtr<HTMLImageElement> brokenImage = HTMLImageElement::create(element.document());
+    RawPtr<HTMLImageElement> brokenImage = HTMLImageElement::create(element.document());
     container->appendChild(brokenImage);
     brokenImage->setIsFallbackImage();
     brokenImage->setAttribute(idAttr, AtomicString("alttext-image"));
@@ -54,13 +54,13 @@
     brokenImage->setAttribute(alignAttr, AtomicString("left"));
     brokenImage->setInlineStyleProperty(CSSPropertyMargin, 0, CSSPrimitiveValue::UnitType::Pixels);
 
-    RefPtrWillBeRawPtr<HTMLDivElement> altText = HTMLDivElement::create(element.document());
+    RawPtr<HTMLDivElement> altText = HTMLDivElement::create(element.document());
     container->appendChild(altText);
     altText->setAttribute(idAttr, AtomicString("alttext"));
     altText->setInlineStyleProperty(CSSPropertyOverflow, CSSValueHidden);
     altText->setInlineStyleProperty(CSSPropertyDisplay, CSSValueBlock);
 
-    RefPtrWillBeRawPtr<Text> text = Text::create(element.document(), toHTMLElement(element).altText());
+    RawPtr<Text> text = Text::create(element.document(), toHTMLElement(element).altText());
     altText->appendChild(text);
 }
 
diff --git a/third_party/WebKit/Source/core/html/HTMLImageLoader.cpp b/third_party/WebKit/Source/core/html/HTMLImageLoader.cpp
index 48aa832..87959f8 100644
--- a/third_party/WebKit/Source/core/html/HTMLImageLoader.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLImageLoader.cpp
@@ -76,7 +76,7 @@
 void HTMLImageLoader::notifyFinished(Resource*)
 {
     ImageResource* cachedImage = image();
-    RefPtrWillBeRawPtr<Element> element = this->element();
+    RawPtr<Element> element = this->element();
     ImageLoader::notifyFinished(cachedImage);
 
     bool loadError = cachedImage->errorOccurred();
diff --git a/third_party/WebKit/Source/core/html/HTMLImageLoader.h b/third_party/WebKit/Source/core/html/HTMLImageLoader.h
index 59f3bfe6..84681638 100644
--- a/third_party/WebKit/Source/core/html/HTMLImageLoader.h
+++ b/third_party/WebKit/Source/core/html/HTMLImageLoader.h
@@ -30,9 +30,9 @@
 
 class CORE_EXPORT HTMLImageLoader final : public ImageLoader {
 public:
-    static PassOwnPtrWillBeRawPtr<HTMLImageLoader> create(Element* element)
+    static RawPtr<HTMLImageLoader> create(Element* element)
     {
-        return adoptPtrWillBeNoop(new HTMLImageLoader(element));
+        return new HTMLImageLoader(element);
     }
     ~HTMLImageLoader() override;
 
diff --git a/third_party/WebKit/Source/core/html/HTMLInputElement.cpp b/third_party/WebKit/Source/core/html/HTMLInputElement.cpp
index 8553d664..29cd418 100644
--- a/third_party/WebKit/Source/core/html/HTMLInputElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLInputElement.cpp
@@ -81,16 +81,15 @@
 using namespace HTMLNames;
 
 class ListAttributeTargetObserver : public IdTargetObserver {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(ListAttributeTargetObserver);
 public:
-    static PassOwnPtrWillBeRawPtr<ListAttributeTargetObserver> create(const AtomicString& id, HTMLInputElement*);
+    static RawPtr<ListAttributeTargetObserver> create(const AtomicString& id, HTMLInputElement*);
     DECLARE_VIRTUAL_TRACE();
     void idTargetChanged() override;
 
 private:
     ListAttributeTargetObserver(const AtomicString& id, HTMLInputElement*);
 
-    RawPtrWillBeMember<HTMLInputElement> m_element;
+    Member<HTMLInputElement> m_element;
 };
 
 // FIXME: According to HTML4, the length attribute's value can be arbitrarily
@@ -131,9 +130,9 @@
     setHasCustomStyleCallbacks();
 }
 
-PassRefPtrWillBeRawPtr<HTMLInputElement> HTMLInputElement::create(Document& document, HTMLFormElement* form, bool createdByParser)
+RawPtr<HTMLInputElement> HTMLInputElement::create(Document& document, HTMLFormElement* form, bool createdByParser)
 {
-    RefPtrWillBeRawPtr<HTMLInputElement> inputElement = adoptRefWillBeNoop(new HTMLInputElement(document, form, createdByParser));
+    RawPtr<HTMLInputElement> inputElement = new HTMLInputElement(document, form, createdByParser);
     if (!createdByParser)
         inputElement->ensureUserAgentShadowRoot();
     return inputElement.release();
@@ -470,7 +469,7 @@
     if (m_inputType->formControlType() == newTypeName)
         return;
 
-    RefPtrWillBeRawPtr<InputType> newType = InputType::create(*this, newTypeName);
+    RawPtr<InputType> newType = InputType::create(*this, newTypeName);
     removeFromRadioButtonGroup();
 
     bool didStoreValue = m_inputType->storesValueSeparateFromAttribute();
@@ -921,7 +920,7 @@
     if (checked() == nowChecked)
         return;
 
-    RefPtrWillBeRawPtr<HTMLInputElement> protector(this);
+    RawPtr<HTMLInputElement> protector(this);
     m_reflectsCheckedAttribute = false;
     m_isChecked = nowChecked;
 
@@ -1078,7 +1077,7 @@
     if (!m_inputType->canSetValue(value))
         return;
 
-    RefPtrWillBeRawPtr<HTMLInputElement> protector(this);
+    RawPtr<HTMLInputElement> protector(this);
     EventQueueScope scope;
     String sanitizedValue = sanitizeValue(value);
     bool valueChanged = sanitizedValue != this->value();
@@ -1187,11 +1186,11 @@
 
 void HTMLInputElement::postDispatchEventHandler(Event* event, void* dataFromPreDispatch)
 {
-    OwnPtrWillBeRawPtr<ClickHandlingState> state = adoptPtrWillBeNoop(static_cast<ClickHandlingState*>(dataFromPreDispatch));
+    RawPtr<ClickHandlingState> state = static_cast<ClickHandlingState*>(dataFromPreDispatch);
     if (!state)
         return;
     // m_inputTypeView could be freed if the type attribute is modified through a change event handler.
-    RefPtrWillBeRawPtr<InputTypeView> protect(m_inputTypeView.get());
+    RawPtr<InputTypeView> protect(m_inputTypeView.get());
     m_inputTypeView->didDispatchClick(event, *state);
 }
 
@@ -1251,13 +1250,13 @@
     if (m_inputTypeView->shouldSubmitImplicitly(evt)) {
         // FIXME: Remove type check.
         if (type() == InputTypeNames::search)
-            document().postTask(BLINK_FROM_HERE, createSameThreadTask(&HTMLInputElement::onSearch, PassRefPtrWillBeRawPtr<HTMLInputElement>(this)));
+            document().postTask(BLINK_FROM_HERE, createSameThreadTask(&HTMLInputElement::onSearch, RawPtr<HTMLInputElement>(this)));
         // Form submission finishes editing, just as loss of focus does.
         // If there was a change, send the event now.
         if (wasChangedSinceLastFormControlChangeEvent())
             dispatchFormControlChangeEvent();
 
-        RefPtrWillBeRawPtr<HTMLFormElement> formForSubmission = m_inputTypeView->formForSubmission();
+        RawPtr<HTMLFormElement> formForSubmission = m_inputTypeView->formForSubmission();
         // Form may never have been present, or may have been destroyed by code responding to the change event.
         if (formForSubmission)
             formForSubmission->submitImplicitly(evt, canTriggerImplicitSubmission());
@@ -1611,7 +1610,7 @@
     HTMLDataListElement* dataList = this->dataList();
     if (!dataList)
         return false;
-    RefPtrWillBeRawPtr<HTMLDataListOptionsCollection> options = dataList->options();
+    RawPtr<HTMLDataListOptionsCollection> options = dataList->options();
     for (unsigned i = 0; HTMLOptionElement* option = options->item(i); ++i) {
         if (isValidValue(option->value()))
             return true;
@@ -1619,7 +1618,7 @@
     return false;
 }
 
-void HTMLInputElement::setListAttributeTargetObserver(PassOwnPtrWillBeRawPtr<ListAttributeTargetObserver> newObserver)
+void HTMLInputElement::setListAttributeTargetObserver(RawPtr<ListAttributeTargetObserver> newObserver)
 {
     if (m_listAttributeTargetObserver)
         m_listAttributeTargetObserver->unregister();
@@ -1805,9 +1804,9 @@
     setUnsignedIntegralAttribute(widthAttr, width);
 }
 
-PassOwnPtrWillBeRawPtr<ListAttributeTargetObserver> ListAttributeTargetObserver::create(const AtomicString& id, HTMLInputElement* element)
+RawPtr<ListAttributeTargetObserver> ListAttributeTargetObserver::create(const AtomicString& id, HTMLInputElement* element)
 {
-    return adoptPtrWillBeNoop(new ListAttributeTargetObserver(id, element));
+    return new ListAttributeTargetObserver(id, element);
 }
 
 ListAttributeTargetObserver::ListAttributeTargetObserver(const AtomicString& id, HTMLInputElement* element)
@@ -1878,7 +1877,7 @@
     parameters.doubleValue = m_inputType->valueAsDouble();
     parameters.isAnchorElementRTL = m_inputType->computedTextDirection() == RTL;
     if (HTMLDataListElement* dataList = this->dataList()) {
-        RefPtrWillBeRawPtr<HTMLDataListOptionsCollection> options = dataList->options();
+        RawPtr<HTMLDataListOptionsCollection> options = dataList->options();
         for (unsigned i = 0; HTMLOptionElement* option = options->item(i); ++i) {
             if (!isValidValue(option->value()))
                 continue;
diff --git a/third_party/WebKit/Source/core/html/HTMLInputElement.h b/third_party/WebKit/Source/core/html/HTMLInputElement.h
index a94aece..eafa95a 100644
--- a/third_party/WebKit/Source/core/html/HTMLInputElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLInputElement.h
@@ -48,7 +48,7 @@
 class CORE_EXPORT HTMLInputElement : public HTMLTextFormControlElement {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<HTMLInputElement> create(Document&, HTMLFormElement*, bool createdByParser);
+    static RawPtr<HTMLInputElement> create(Document&, HTMLFormElement*, bool createdByParser);
     ~HTMLInputElement() override;
     DECLARE_VIRTUAL_TRACE();
 
@@ -361,7 +361,7 @@
 
     void subtreeHasChanged() final;
 
-    void setListAttributeTargetObserver(PassOwnPtrWillBeRawPtr<ListAttributeTargetObserver>);
+    void setListAttributeTargetObserver(RawPtr<ListAttributeTargetObserver>);
     void resetListAttributeTargetObserver();
     void parseMaxLengthAttribute(const AtomicString&);
     void parseMinLengthAttribute(const AtomicString&);
@@ -396,13 +396,13 @@
     unsigned m_shouldRevealPassword : 1;
     unsigned m_needsToUpdateViewValue : 1;
     unsigned m_isPlaceholderVisible : 1;
-    RefPtrWillBeMember<InputType> m_inputType;
-    RefPtrWillBeMember<InputTypeView> m_inputTypeView;
+    Member<InputType> m_inputType;
+    Member<InputTypeView> m_inputTypeView;
     // The ImageLoader must be owned by this element because the loader code assumes
     // that it lives as long as its owning element lives. If we move the loader into
     // the ImageInput object we may delete the loader while this element lives on.
-    OwnPtrWillBeMember<HTMLImageLoader> m_imageLoader;
-    OwnPtrWillBeMember<ListAttributeTargetObserver> m_listAttributeTargetObserver;
+    Member<HTMLImageLoader> m_imageLoader;
+    Member<ListAttributeTargetObserver> m_listAttributeTargetObserver;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/html/HTMLInputElementTest.cpp b/third_party/WebKit/Source/core/html/HTMLInputElementTest.cpp
index d08fff37..b02e9975 100644
--- a/third_party/WebKit/Source/core/html/HTMLInputElementTest.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLInputElementTest.cpp
@@ -15,8 +15,8 @@
 
 TEST(HTMLInputElementTest, create)
 {
-    const RefPtrWillBeRawPtr<Document> document = Document::create();
-    RefPtrWillBeRawPtr<HTMLInputElement> input = HTMLInputElement::create(*document, nullptr, /* createdByParser */ false);
+    const RawPtr<Document> document = Document::create();
+    RawPtr<HTMLInputElement> input = HTMLInputElement::create(*document, nullptr, /* createdByParser */ false);
     EXPECT_NE(nullptr, input->userAgentShadowRoot());
 
     input = HTMLInputElement::create(*document, nullptr, /* createdByParser */ true);
@@ -27,9 +27,9 @@
 
 TEST(HTMLInputElementTest, NoAssertWhenMovedInNewDocument)
 {
-    const RefPtrWillBeRawPtr<Document> documentWithoutFrame = Document::create();
+    const RawPtr<Document> documentWithoutFrame = Document::create();
     EXPECT_EQ(nullptr, documentWithoutFrame->frameHost());
-    RefPtrWillBeRawPtr<HTMLHtmlElement> html = HTMLHtmlElement::create(*documentWithoutFrame);
+    RawPtr<HTMLHtmlElement> html = HTMLHtmlElement::create(*documentWithoutFrame);
     html->appendChild(HTMLBodyElement::create(*documentWithoutFrame));
 
     // Create an input element with type "range" inside a document without frame.
@@ -50,18 +50,18 @@
 
 TEST(HTMLInputElementTest, DefaultToolTip)
 {
-    RefPtrWillBeRawPtr<Document> document = Document::create();
-    RefPtrWillBeRawPtr<HTMLHtmlElement> html = HTMLHtmlElement::create(*document);
+    RawPtr<Document> document = Document::create();
+    RawPtr<HTMLHtmlElement> html = HTMLHtmlElement::create(*document);
     html->appendChild(HTMLBodyElement::create(*document));
-    RefPtrWillBeRawPtr<HTMLInputElement> inputWithoutForm = HTMLInputElement::create(*document, nullptr, false);
+    RawPtr<HTMLInputElement> inputWithoutForm = HTMLInputElement::create(*document, nullptr, false);
     inputWithoutForm->setBooleanAttribute(HTMLNames::requiredAttr, true);
     toHTMLBodyElement(html->firstChild())->appendChild(inputWithoutForm.get());
     document->appendChild(html.release());
     EXPECT_EQ("<<ValidationValueMissing>>", inputWithoutForm->defaultToolTip());
 
-    RefPtrWillBeRawPtr<HTMLFormElement> form = HTMLFormElement::create(*document);
+    RawPtr<HTMLFormElement> form = HTMLFormElement::create(*document);
     document->body()->appendChild(form.get());
-    RefPtrWillBeRawPtr<HTMLInputElement> inputWithForm = HTMLInputElement::create(*document, nullptr, false);
+    RawPtr<HTMLInputElement> inputWithForm = HTMLInputElement::create(*document, nullptr, false);
     inputWithForm->setBooleanAttribute(HTMLNames::requiredAttr, true);
     form->appendChild(inputWithForm.get());
     EXPECT_EQ("<<ValidationValueMissing>>", inputWithForm->defaultToolTip());
@@ -73,8 +73,8 @@
 // crbug.com/589838
 TEST(HTMLInputElementTest, ImageTypeCrash)
 {
-    RefPtrWillBeRawPtr<Document> document = Document::create();
-    RefPtrWillBeRawPtr<HTMLInputElement> input = HTMLInputElement::create(*document, nullptr, false);
+    RawPtr<Document> document = Document::create();
+    RawPtr<HTMLInputElement> input = HTMLInputElement::create(*document, nullptr, false);
     input->setAttribute(HTMLNames::typeAttr, "image");
     input->ensureFallbackContent();
     // Make sure ensurePrimaryContent() recreates UA shadow tree, and updating
diff --git a/third_party/WebKit/Source/core/html/HTMLKeygenElement.cpp b/third_party/WebKit/Source/core/html/HTMLKeygenElement.cpp
index 4667cb99..29b22423 100644
--- a/third_party/WebKit/Source/core/html/HTMLKeygenElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLKeygenElement.cpp
@@ -54,9 +54,9 @@
         document.frame()->loader().client()->didUseKeygen();
 }
 
-PassRefPtrWillBeRawPtr<HTMLKeygenElement> HTMLKeygenElement::create(Document& document, HTMLFormElement* form)
+RawPtr<HTMLKeygenElement> HTMLKeygenElement::create(Document& document, HTMLFormElement* form)
 {
-    RefPtrWillBeRawPtr<HTMLKeygenElement> keygen = adoptRefWillBeNoop(new HTMLKeygenElement(document, form));
+    RawPtr<HTMLKeygenElement> keygen = new HTMLKeygenElement(document, form);
     keygen->ensureUserAgentShadowRoot();
     return keygen.release();
 }
@@ -79,10 +79,10 @@
     keys.append(locale().queryString(WebLocalizedString::KeygenMenuMediumGradeKeySize));
 
     // Create a select element with one option element for each key size.
-    RefPtrWillBeRawPtr<HTMLSelectElement> select = HTMLSelectElement::create(document());
+    RawPtr<HTMLSelectElement> select = HTMLSelectElement::create(document());
     select->setShadowPseudoId(keygenSelectPseudoId);
     for (const String& key : keys) {
-        RefPtrWillBeRawPtr<HTMLOptionElement> option = HTMLOptionElement::create(document());
+        RawPtr<HTMLOptionElement> option = HTMLOptionElement::create(document());
         option->appendChild(Text::create(document(), key));
         select->appendChild(option);
     }
diff --git a/third_party/WebKit/Source/core/html/HTMLKeygenElement.h b/third_party/WebKit/Source/core/html/HTMLKeygenElement.h
index bd4cd26..2f69fbfe 100644
--- a/third_party/WebKit/Source/core/html/HTMLKeygenElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLKeygenElement.h
@@ -33,7 +33,7 @@
 class HTMLKeygenElement final : public HTMLFormControlElementWithState {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<HTMLKeygenElement> create(Document&, HTMLFormElement*);
+    static RawPtr<HTMLKeygenElement> create(Document&, HTMLFormElement*);
 
     bool willValidate() const override { return false; }
 
diff --git a/third_party/WebKit/Source/core/html/HTMLLabelElement.cpp b/third_party/WebKit/Source/core/html/HTMLLabelElement.cpp
index 95712d3b..6d182e7 100644
--- a/third_party/WebKit/Source/core/html/HTMLLabelElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLLabelElement.cpp
@@ -49,9 +49,9 @@
     FormAssociatedElement::associateByParser(form);
 }
 
-PassRefPtrWillBeRawPtr<HTMLLabelElement> HTMLLabelElement::create(Document& document, HTMLFormElement* form)
+RawPtr<HTMLLabelElement> HTMLLabelElement::create(Document& document, HTMLFormElement* form)
 {
-    RefPtrWillBeRawPtr<HTMLLabelElement> labelElement = adoptRefWillBeNoop(new HTMLLabelElement(document, form));
+    RawPtr<HTMLLabelElement> labelElement = new HTMLLabelElement(document, form);
     return labelElement.release();
 }
 
@@ -149,7 +149,7 @@
 void HTMLLabelElement::defaultEventHandler(Event* evt)
 {
     if (evt->type() == EventTypeNames::click && !m_processingClick) {
-        RefPtrWillBeRawPtr<HTMLElement> element = control();
+        RawPtr<HTMLElement> element = control();
 
         // If we can't find a control or if the control received the click
         // event, then there's no need for us to do anything.
diff --git a/third_party/WebKit/Source/core/html/HTMLLabelElement.h b/third_party/WebKit/Source/core/html/HTMLLabelElement.h
index f01fbb3b..7655155 100644
--- a/third_party/WebKit/Source/core/html/HTMLLabelElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLLabelElement.h
@@ -33,9 +33,9 @@
 
 class CORE_EXPORT HTMLLabelElement final : public HTMLElement, public FormAssociatedElement {
     DEFINE_WRAPPERTYPEINFO();
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(HTMLLabelElement);
+    USING_GARBAGE_COLLECTED_MIXIN(HTMLLabelElement);
 public:
-    static PassRefPtrWillBeRawPtr<HTMLLabelElement> create(Document&, HTMLFormElement*);
+    static RawPtr<HTMLLabelElement> create(Document&, HTMLFormElement*);
     LabelableElement* control() const;
 
     bool willRespondToMouseClickEvents() override;
diff --git a/third_party/WebKit/Source/core/html/HTMLLinkElement.cpp b/third_party/WebKit/Source/core/html/HTMLLinkElement.cpp
index 0b3d1845..9c5c7735 100644
--- a/third_party/WebKit/Source/core/html/HTMLLinkElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLLinkElement.cpp
@@ -124,7 +124,7 @@
 
 static LinkEventSender& linkLoadEventSender()
 {
-    DEFINE_STATIC_LOCAL(OwnPtrWillBePersistent<LinkEventSender>, sharedLoadEventSender, (LinkEventSender::create(EventTypeNames::load)));
+    DEFINE_STATIC_LOCAL(Persistent<LinkEventSender>, sharedLoadEventSender, (LinkEventSender::create(EventTypeNames::load)));
     return *sharedLoadEventSender;
 }
 
@@ -155,9 +155,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<HTMLLinkElement> HTMLLinkElement::create(Document& document, bool createdByParser)
+RawPtr<HTMLLinkElement> HTMLLinkElement::create(Document& document, bool createdByParser)
 {
-    return adoptRefWillBeNoop(new HTMLLinkElement(document, createdByParser));
+    return new HTMLLinkElement(document, createdByParser);
 }
 
 HTMLLinkElement::~HTMLLinkElement()
@@ -237,7 +237,7 @@
             if (document().frame())
                 m_link = document().frame()->loader().client()->createServiceWorkerLinkResource(this);
         } else {
-            OwnPtrWillBeRawPtr<LinkStyle> link = LinkStyle::create(this);
+            RawPtr<LinkStyle> link = LinkStyle::create(this);
             if (fastHasAttribute(disabledAttr)) {
                 UseCounter::count(document(), UseCounter::HTMLLinkElementDisabled);
                 link->setDisabledState(true);
@@ -314,7 +314,7 @@
     }
     document().styleEngine().removeStyleSheetCandidateNode(this);
 
-    RefPtrWillBeRawPtr<StyleSheet> removedSheet = sheet();
+    RawPtr<StyleSheet> removedSheet = sheet();
 
     if (m_link)
         m_link->ownerRemoved();
@@ -476,9 +476,9 @@
     DOMTokenListObserver::trace(visitor);
 }
 
-PassOwnPtrWillBeRawPtr<LinkStyle> LinkStyle::create(HTMLLinkElement* owner)
+RawPtr<LinkStyle> LinkStyle::create(HTMLLinkElement* owner)
 {
-    return adoptPtrWillBeNoop(new LinkStyle(owner));
+    return new LinkStyle(owner);
 }
 
 LinkStyle::LinkStyle(HTMLLinkElement* owner)
@@ -537,14 +537,14 @@
         return;
     }
     // Completing the sheet load may cause scripts to execute.
-    RefPtrWillBeRawPtr<Node> protector(m_owner.get());
+    RawPtr<Node> protector(m_owner.get());
 
     CSSParserContext parserContext(m_owner->document(), 0, baseURL, charset);
 
     DEFINE_STATIC_LOCAL(EnumerationHistogram, restoredCachedStyleSheetHistogram, ("Blink.RestoredCachedStyleSheet", 2));
     DEFINE_STATIC_LOCAL(EnumerationHistogram, restoredCachedStyleSheet2Histogram, ("Blink.RestoredCachedStyleSheet2", StyleSheetCacheStatusCount));
 
-    if (RefPtrWillBeRawPtr<StyleSheetContents> restoredSheet = const_cast<CSSStyleSheetResource*>(cachedStyleSheet)->restoreParsedStyleSheet(parserContext)) {
+    if (RawPtr<StyleSheetContents> restoredSheet = const_cast<CSSStyleSheetResource*>(cachedStyleSheet)->restoreParsedStyleSheet(parserContext)) {
         ASSERT(restoredSheet->isCacheable());
         ASSERT(!restoredSheet->isLoading());
 
@@ -566,7 +566,7 @@
     StyleSheetCacheStatus cacheStatus = cachedStyleSheet->response().wasCached() ? StyleSheetInDiskCache : StyleSheetNewEntry;
     restoredCachedStyleSheet2Histogram.count(cacheStatus);
 
-    RefPtrWillBeRawPtr<StyleSheetContents> styleSheet = StyleSheetContents::create(href, parserContext);
+    RawPtr<StyleSheetContents> styleSheet = StyleSheetContents::create(href, parserContext);
 
     if (m_sheet)
         clearSheet();
@@ -741,7 +741,7 @@
         LocalFrame* frame = loadingFrame();
         if (!m_owner->media().isEmpty() && frame && frame->document()) {
             RefPtr<ComputedStyle> documentStyle = StyleResolver::styleForDocument(*frame->document());
-            RefPtrWillBeRawPtr<MediaQuerySet> media = MediaQuerySet::create(m_owner->media());
+            RawPtr<MediaQuerySet> media = MediaQuerySet::create(m_owner->media());
             MediaQueryEvaluator evaluator(frame);
             mediaQueryMatches = evaluator.eval(media.get());
         }
@@ -771,7 +771,7 @@
         }
     } else if (m_sheet) {
         // we no longer contain a stylesheet, e.g. perhaps rel or type was changed
-        RefPtrWillBeRawPtr<StyleSheet> removedSheet = m_sheet.get();
+        RawPtr<StyleSheet> removedSheet = m_sheet.get();
         clearSheet();
         document().styleEngine().setNeedsActiveStyleUpdate(removedSheet.get(), FullStyleUpdate);
     }
diff --git a/third_party/WebKit/Source/core/html/HTMLLinkElement.h b/third_party/WebKit/Source/core/html/HTMLLinkElement.h
index f6d5338c..95230e5 100644
--- a/third_party/WebKit/Source/core/html/HTMLLinkElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLLinkElement.h
@@ -57,10 +57,9 @@
 // sticking current way so far.
 //
 class LinkStyle final : public LinkResource, ResourceOwner<StyleSheetResource> {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(LinkStyle);
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(LinkStyle);
+    USING_GARBAGE_COLLECTED_MIXIN(LinkStyle);
 public:
-    static PassOwnPtrWillBeRawPtr<LinkStyle> create(HTMLLinkElement* owner);
+    static RawPtr<LinkStyle> create(HTMLLinkElement* owner);
 
     explicit LinkStyle(HTMLLinkElement* owner);
     ~LinkStyle() override;
@@ -119,7 +118,7 @@
         m_fetchFollowingCORS = false;
     }
 
-    RefPtrWillBeMember<CSSStyleSheet> m_sheet;
+    Member<CSSStyleSheet> m_sheet;
     DisabledState m_disabledState;
     PendingSheetType m_pendingSheetType;
     bool m_loading;
@@ -131,9 +130,9 @@
 
 class CORE_EXPORT HTMLLinkElement final : public HTMLElement, public LinkLoaderClient, private DOMTokenListObserver {
     DEFINE_WRAPPERTYPEINFO();
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(HTMLLinkElement);
+    USING_GARBAGE_COLLECTED_MIXIN(HTMLLinkElement);
 public:
-    static PassRefPtrWillBeRawPtr<HTMLLinkElement> create(Document&, bool createdByParser);
+    static RawPtr<HTMLLinkElement> create(Document&, bool createdByParser);
     ~HTMLLinkElement() override;
 
     KURL href() const;
@@ -218,15 +217,15 @@
     // From DOMTokenListObserver
     void valueWasSet() final;
 
-    OwnPtrWillBeMember<LinkResource> m_link;
-    OwnPtrWillBeMember<LinkLoader> m_linkLoader;
+    Member<LinkResource> m_link;
+    Member<LinkLoader> m_linkLoader;
 
     String m_type;
     String m_as;
     String m_media;
-    RefPtrWillBeMember<DOMTokenList> m_sizes;
+    Member<DOMTokenList> m_sizes;
     Vector<IntSize> m_iconSizes;
-    RawPtrWillBeMember<RelList> m_relList;
+    Member<RelList> m_relList;
     LinkRelAttribute m_relAttribute;
     String m_scope;
 
diff --git a/third_party/WebKit/Source/core/html/HTMLLinkElementSizesAttributeTest.cpp b/third_party/WebKit/Source/core/html/HTMLLinkElementSizesAttributeTest.cpp
index 1f6072f..7b7f9eb 100644
--- a/third_party/WebKit/Source/core/html/HTMLLinkElementSizesAttributeTest.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLLinkElementSizesAttributeTest.cpp
@@ -76,9 +76,9 @@
 
 TEST(HTMLLinkElementSizesAttributeTest, setSizesPropertyValue_updatesAttribute)
 {
-    RefPtrWillBeRawPtr<Document> document = Document::create();
-    RefPtrWillBeRawPtr<HTMLLinkElement> link = HTMLLinkElement::create(*document, /* createdByParser: */ false);
-    RefPtrWillBeRawPtr<DOMTokenList> sizes = link->sizes();
+    RawPtr<Document> document = Document::create();
+    RawPtr<HTMLLinkElement> link = HTMLLinkElement::create(*document, /* createdByParser: */ false);
+    RawPtr<DOMTokenList> sizes = link->sizes();
     EXPECT_EQ(nullAtom, sizes->value());
     sizes->setValue("   a b  c ");
     EXPECT_EQ("   a b  c ", link->getAttribute(HTMLNames::sizesAttr));
@@ -87,9 +87,9 @@
 
 TEST(HTMLLinkElementSizesAttributeTest, setSizesAttribute_updatesSizesPropertyValue)
 {
-    RefPtrWillBeRawPtr<Document> document = Document::create();
-    RefPtrWillBeRawPtr<HTMLLinkElement> link = HTMLLinkElement::create(*document, /* createdByParser: */ false);
-    RefPtrWillBeRawPtr<DOMTokenList> sizes = link->sizes();
+    RawPtr<Document> document = Document::create();
+    RawPtr<HTMLLinkElement> link = HTMLLinkElement::create(*document, /* createdByParser: */ false);
+    RawPtr<DOMTokenList> sizes = link->sizes();
     EXPECT_EQ(nullAtom, sizes->value());
     link->setAttribute(HTMLNames::sizesAttr, "y  x ");
     EXPECT_EQ("y  x ", sizes->value());
diff --git a/third_party/WebKit/Source/core/html/HTMLMapElement.cpp b/third_party/WebKit/Source/core/html/HTMLMapElement.cpp
index a9c7cad..e462d77fe 100644
--- a/third_party/WebKit/Source/core/html/HTMLMapElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLMapElement.cpp
@@ -62,7 +62,7 @@
 
 HTMLImageElement* HTMLMapElement::imageElement()
 {
-    RefPtrWillBeRawPtr<HTMLCollection> images = document().images();
+    RawPtr<HTMLCollection> images = document().images();
     for (unsigned i = 0; Element* curr = images->item(i); ++i) {
         ASSERT(isHTMLImageElement(curr));
 
@@ -104,7 +104,7 @@
     HTMLElement::parseAttribute(name, oldValue, value);
 }
 
-PassRefPtrWillBeRawPtr<HTMLCollection> HTMLMapElement::areas()
+RawPtr<HTMLCollection> HTMLMapElement::areas()
 {
     return ensureCachedCollection<HTMLCollection>(MapAreas);
 }
diff --git a/third_party/WebKit/Source/core/html/HTMLMapElement.h b/third_party/WebKit/Source/core/html/HTMLMapElement.h
index 9afd66b0..46118928 100644
--- a/third_party/WebKit/Source/core/html/HTMLMapElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLMapElement.h
@@ -42,7 +42,7 @@
     HTMLAreaElement* areaForPoint(LayoutPoint, const LayoutSize& containerSize);
 
     HTMLImageElement* imageElement();
-    PassRefPtrWillBeRawPtr<HTMLCollection> areas();
+    RawPtr<HTMLCollection> areas();
 
 private:
     explicit HTMLMapElement(Document&);
diff --git a/third_party/WebKit/Source/core/html/HTMLMarqueeElement.cpp b/third_party/WebKit/Source/core/html/HTMLMarqueeElement.cpp
index 8317dac0..ac089c6 100644
--- a/third_party/WebKit/Source/core/html/HTMLMarqueeElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLMarqueeElement.cpp
@@ -40,9 +40,9 @@
     UseCounter::count(document, UseCounter::HTMLMarqueeElement);
 }
 
-PassRefPtrWillBeRawPtr<HTMLMarqueeElement> HTMLMarqueeElement::create(Document& document)
+RawPtr<HTMLMarqueeElement> HTMLMarqueeElement::create(Document& document)
 {
-    RefPtrWillBeRawPtr<HTMLMarqueeElement> marqueeElement(adoptRefWillBeNoop(new HTMLMarqueeElement(document)));
+    RawPtr<HTMLMarqueeElement> marqueeElement(new HTMLMarqueeElement(document));
     V8HTMLMarqueeElement::PrivateScript::createdCallbackMethod(document.frame(), marqueeElement.get());
     return marqueeElement.release();
 }
diff --git a/third_party/WebKit/Source/core/html/HTMLMarqueeElement.h b/third_party/WebKit/Source/core/html/HTMLMarqueeElement.h
index 8446b08..7ec0cc4 100644
--- a/third_party/WebKit/Source/core/html/HTMLMarqueeElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLMarqueeElement.h
@@ -30,7 +30,7 @@
 class HTMLMarqueeElement final : public HTMLElement {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<HTMLMarqueeElement> create(Document&);
+    static RawPtr<HTMLMarqueeElement> create(Document&);
 
     void attributeChanged(const QualifiedName&, const AtomicString& oldValue, const AtomicString& newValue, AttributeModificationReason) final;
     InsertionNotificationRequest insertedInto(ContainerNode*) final;
diff --git a/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp b/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp
index e6e83de..1c3684d2 100644
--- a/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp
@@ -106,8 +106,8 @@
 
 using namespace HTMLNames;
 
-using WeakMediaElementSet = WillBeHeapHashSet<RawPtrWillBeWeakMember<HTMLMediaElement>>;
-using DocumentElementSetMap = WillBeHeapHashMap<RawPtrWillBeWeakMember<Document>, WeakMediaElementSet>;
+using WeakMediaElementSet = HeapHashSet<WeakMember<HTMLMediaElement>>;
+using DocumentElementSetMap = HeapHashMap<WeakMember<Document>, WeakMediaElementSet>;
 
 namespace {
 
@@ -140,7 +140,7 @@
 
 DocumentElementSetMap& documentToElementSetMap()
 {
-    DEFINE_STATIC_LOCAL(OwnPtrWillBePersistent<DocumentElementSetMap>, map, (adoptPtrWillBeNoop(new DocumentElementSetMap())));
+    DEFINE_STATIC_LOCAL(Persistent<DocumentElementSetMap>, map, (new DocumentElementSetMap()));
     return *map;
 }
 
@@ -275,9 +275,9 @@
     public AutoplayExperimentHelper::Client {
 
 public:
-    static PassOwnPtrWillBeRawPtr<AutoplayHelperClientImpl> create(HTMLMediaElement* element)
+    static RawPtr<AutoplayHelperClientImpl> create(HTMLMediaElement* element)
     {
-        return adoptPtrWillBeNoop(new AutoplayHelperClientImpl(element));
+        return new AutoplayHelperClientImpl(element);
     }
 
     virtual ~AutoplayHelperClientImpl();
@@ -318,7 +318,7 @@
 private:
     AutoplayHelperClientImpl(HTMLMediaElement* element) : m_element(element) {}
 
-    RawPtrWillBeMember<HTMLMediaElement> m_element;
+    Member<HTMLMediaElement> m_element;
 };
 
 
@@ -685,7 +685,7 @@
     scheduleEvent(Event::createCancelable(eventName));
 }
 
-void HTMLMediaElement::scheduleEvent(PassRefPtrWillBeRawPtr<Event> event)
+void HTMLMediaElement::scheduleEvent(RawPtr<Event> event)
 {
 #if LOG_MEDIA_EVENTS
     WTF_LOG(Media, "HTMLMediaElement::scheduleEvent(%p) - scheduling '%s'", this, event->type().ascii().data());
@@ -2619,8 +2619,8 @@
 {
     // Stash the current <source> node and next nodes so we can restore them after checking
     // to see there is another potential.
-    RefPtrWillBeRawPtr<HTMLSourceElement> currentSourceNode = m_currentSourceNode;
-    RefPtrWillBeRawPtr<Node> nextNode = m_nextChildNodeToConsider;
+    RawPtr<HTMLSourceElement> currentSourceNode = m_currentSourceNode;
+    RawPtr<Node> nextNode = m_nextChildNodeToConsider;
 
     KURL nextURL = selectNextSourceChild(0, DoNothing);
 
@@ -3305,7 +3305,7 @@
     if (firstChild && firstChild->isTextTrackContainer())
         return toTextTrackContainer(*firstChild);
 
-    RefPtrWillBeRawPtr<TextTrackContainer> textTrackContainer = TextTrackContainer::create(document());
+    RawPtr<TextTrackContainer> textTrackContainer = TextTrackContainer::create(document());
 
     // The text track container should be inserted before the media controls,
     // so that they are rendered behind them.
@@ -3447,7 +3447,7 @@
     if (mediaControls())
         return;
 
-    RefPtrWillBeRawPtr<MediaControls> mediaControls = MediaControls::create(*this);
+    RawPtr<MediaControls> mediaControls = MediaControls::create(*this);
 
     mediaControls->reset();
     if (isFullscreen())
@@ -3486,7 +3486,7 @@
 CueTimeline& HTMLMediaElement::cueTimeline()
 {
     if (!m_cueTimeline)
-        m_cueTimeline = adoptPtrWillBeNoop(new CueTimeline(*this));
+        m_cueTimeline = new CueTimeline(*this);
     return *m_cueTimeline;
 }
 
diff --git a/third_party/WebKit/Source/core/html/HTMLMediaElement.h b/third_party/WebKit/Source/core/html/HTMLMediaElement.h
index 9870b06..dc921222 100644
--- a/third_party/WebKit/Source/core/html/HTMLMediaElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLMediaElement.h
@@ -70,10 +70,10 @@
 class WebLayer;
 class WebRemotePlaybackClient;
 
-class CORE_EXPORT HTMLMediaElement : public HTMLElement, public WillBeHeapSupplementable<HTMLMediaElement>, public ActiveScriptWrappable, public ActiveDOMObject, private WebMediaPlayerClient {
+class CORE_EXPORT HTMLMediaElement : public HTMLElement, public HeapSupplementable<HTMLMediaElement>, public ActiveScriptWrappable, public ActiveDOMObject, private WebMediaPlayerClient {
     DEFINE_WRAPPERTYPEINFO();
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(HTMLMediaElement);
-    WILL_BE_USING_PRE_FINALIZER(HTMLMediaElement, dispose);
+    USING_GARBAGE_COLLECTED_MIXIN(HTMLMediaElement);
+    USING_PRE_FINALIZER(HTMLMediaElement, dispose);
 public:
     static WebMimeRegistry::SupportsType supportsType(const ContentType&);
 
@@ -252,7 +252,7 @@
     // specified origin.
     bool isMediaDataCORSSameOrigin(SecurityOrigin*) const;
 
-    void scheduleEvent(PassRefPtrWillBeRawPtr<Event>);
+    void scheduleEvent(RawPtr<Event>);
     void scheduleTimeupdateEvent(bool periodicEvent);
 
     // Returns the "effective media volume" value as specified in the HTML5 spec.
@@ -478,8 +478,8 @@
     UnthrottledTimer<HTMLMediaElement> m_progressEventTimer;
     UnthrottledTimer<HTMLMediaElement> m_playbackProgressTimer;
     UnthrottledTimer<HTMLMediaElement> m_audioTracksTimer;
-    PersistentWillBeMember<TimeRanges> m_playedTimeRanges;
-    OwnPtrWillBeMember<GenericEventQueue> m_asyncEventQueue;
+    Member<TimeRanges> m_playedTimeRanges;
+    Member<GenericEventQueue> m_asyncEventQueue;
 
     double m_playbackRate;
     double m_defaultPlaybackRate;
@@ -488,7 +488,7 @@
     ReadyState m_readyStateMaximum;
     KURL m_currentSrc;
 
-    PersistentWillBeMember<MediaError> m_error;
+    Member<MediaError> m_error;
 
     double m_volume;
     double m_lastSeekTime;
@@ -510,8 +510,8 @@
     // Loading state.
     enum LoadState { WaitingForSource, LoadingFromSrcAttr, LoadingFromSourceElement };
     LoadState m_loadState;
-    RefPtrWillBeMember<HTMLSourceElement> m_currentSourceNode;
-    RefPtrWillBeMember<Node> m_nextChildNodeToConsider;
+    Member<HTMLSourceElement> m_currentSourceNode;
+    Member<Node> m_nextChildNodeToConsider;
 
     // "Deferred loading" state (for preload=none).
     enum DeferredLoadState {
@@ -534,7 +534,7 @@
 
     DisplayMode m_displayMode;
 
-    RefPtrWillBeMember<HTMLMediaSource> m_mediaSource;
+    Member<HTMLMediaSource> m_mediaSource;
 
     // Cached time value. Only valid when ready state is HAVE_METADATA or
     // higher, otherwise the current time is assumed to be zero.
@@ -572,14 +572,14 @@
     // Whether this element is in overlay fullscreen mode.
     bool m_inOverlayFullscreenVideo : 1;
 
-    PersistentWillBeMember<AudioTrackList> m_audioTracks;
-    PersistentWillBeMember<VideoTrackList> m_videoTracks;
-    PersistentWillBeMember<TextTrackList> m_textTracks;
-    PersistentHeapVectorWillBeHeapVector<Member<TextTrack>> m_textTracksWhenResourceSelectionBegan;
+    Member<AudioTrackList> m_audioTracks;
+    Member<VideoTrackList> m_videoTracks;
+    Member<TextTrackList> m_textTracks;
+    HeapVector<Member<TextTrack>> m_textTracksWhenResourceSelectionBegan;
 
-    OwnPtrWillBeMember<CueTimeline> m_cueTimeline;
+    Member<CueTimeline> m_cueTimeline;
 
-    PersistentHeapVectorWillBeHeapVector<Member<ScriptPromiseResolver>> m_playResolvers;
+    HeapVector<Member<ScriptPromiseResolver>> m_playResolvers;
     OwnPtr<CancellableTaskFactory> m_playPromiseResolveTask;
     OwnPtr<CancellableTaskFactory> m_playPromiseRejectTask;
     ExceptionCode m_playPromiseErrorCode;
@@ -587,7 +587,7 @@
     // This is a weak reference, since m_audioSourceNode holds a reference to us.
     // FIXME: Oilpan: Consider making this a strongly traced pointer with oilpan where strong cycles are not a problem.
     GC_PLUGIN_IGNORE("http://crbug.com/404577")
-    RawPtrWillBeWeakMember<AudioSourceProviderClient> m_audioSourceNode;
+    WeakMember<AudioSourceProviderClient> m_audioSourceNode;
 
     // AudioClientImpl wraps an AudioSourceProviderClient.
     // When the audio format is known, Chromium calls setFormat().
@@ -632,7 +632,7 @@
 
     private:
         WebAudioSourceProvider* m_webAudioSourceProvider;
-        PersistentWillBeMember<AudioClientImpl> m_client;
+        Member<AudioClientImpl> m_client;
         Mutex provideInputLock;
     };
 
@@ -645,8 +645,8 @@
     friend class AutoplayExperimentHelper;
     friend class MediaControlsTest;
 
-    OwnPtrWillBeMember<AutoplayExperimentHelper::Client> m_autoplayHelperClient;
-    OwnPtrWillBeMember<AutoplayExperimentHelper> m_autoplayHelper;
+    Member<AutoplayExperimentHelper::Client> m_autoplayHelperClient;
+    Member<AutoplayExperimentHelper> m_autoplayHelper;
 
     WebRemotePlaybackClient* m_remotePlaybackClient;
 
diff --git a/third_party/WebKit/Source/core/html/HTMLMediaSource.h b/third_party/WebKit/Source/core/html/HTMLMediaSource.h
index bd5473aa..0af2921 100644
--- a/third_party/WebKit/Source/core/html/HTMLMediaSource.h
+++ b/third_party/WebKit/Source/core/html/HTMLMediaSource.h
@@ -42,7 +42,7 @@
 class HTMLMediaElement;
 class TimeRanges;
 
-class CORE_EXPORT HTMLMediaSource : public URLRegistrable, public WillBeGarbageCollectedMixin {
+class CORE_EXPORT HTMLMediaSource : public URLRegistrable, public GarbageCollectedMixin {
 public:
     static void setRegistry(URLRegistry*);
     static HTMLMediaSource* lookup(const String& url) { return s_registry ? static_cast<HTMLMediaSource*>(s_registry->lookup(url)) : 0; }
diff --git a/third_party/WebKit/Source/core/html/HTMLMeterElement.cpp b/third_party/WebKit/Source/core/html/HTMLMeterElement.cpp
index f205a63..46a7b375 100644
--- a/third_party/WebKit/Source/core/html/HTMLMeterElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLMeterElement.cpp
@@ -46,9 +46,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<HTMLMeterElement> HTMLMeterElement::create(Document& document)
+RawPtr<HTMLMeterElement> HTMLMeterElement::create(Document& document)
 {
-    RefPtrWillBeRawPtr<HTMLMeterElement> meter = adoptRefWillBeNoop(new HTMLMeterElement(document));
+    RawPtr<HTMLMeterElement> meter = new HTMLMeterElement(document);
     meter->ensureUserAgentShadowRoot();
     return meter.release();
 }
@@ -193,11 +193,11 @@
 {
     ASSERT(!m_value);
 
-    RefPtrWillBeRawPtr<HTMLDivElement> inner = HTMLDivElement::create(document());
+    RawPtr<HTMLDivElement> inner = HTMLDivElement::create(document());
     inner->setShadowPseudoId(AtomicString("-webkit-meter-inner-element"));
     root.appendChild(inner);
 
-    RefPtrWillBeRawPtr<HTMLDivElement> bar = HTMLDivElement::create(document());
+    RawPtr<HTMLDivElement> bar = HTMLDivElement::create(document());
     bar->setShadowPseudoId(AtomicString("-webkit-meter-bar"));
 
     m_value = HTMLDivElement::create(document());
diff --git a/third_party/WebKit/Source/core/html/HTMLMeterElement.h b/third_party/WebKit/Source/core/html/HTMLMeterElement.h
index 9fddbb2..8b21380 100644
--- a/third_party/WebKit/Source/core/html/HTMLMeterElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLMeterElement.h
@@ -31,7 +31,7 @@
 class CORE_EXPORT HTMLMeterElement final : public LabelableElement {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<HTMLMeterElement> create(Document&);
+    static RawPtr<HTMLMeterElement> create(Document&);
 
     enum GaugeRegion {
         GaugeRegionOptimum,
@@ -79,7 +79,7 @@
     void updateValueAppearance(double percentage);
     void didAddUserAgentShadowRoot(ShadowRoot&) override;
 
-    RefPtrWillBeMember<HTMLDivElement> m_value;
+    Member<HTMLDivElement> m_value;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/html/HTMLObjectElement.cpp b/third_party/WebKit/Source/core/html/HTMLObjectElement.cpp
index 28ffcd9..e57dd59 100644
--- a/third_party/WebKit/Source/core/html/HTMLObjectElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLObjectElement.cpp
@@ -61,9 +61,9 @@
 #endif
 }
 
-PassRefPtrWillBeRawPtr<HTMLObjectElement> HTMLObjectElement::create(Document& document, HTMLFormElement* form, bool createdByParser)
+RawPtr<HTMLObjectElement> HTMLObjectElement::create(Document& document, HTMLFormElement* form, bool createdByParser)
 {
-    RefPtrWillBeRawPtr<HTMLObjectElement> element = adoptRefWillBeNoop(new HTMLObjectElement(document, form, createdByParser));
+    RawPtr<HTMLObjectElement> element = new HTMLObjectElement(document, form, createdByParser);
     element->ensureUserAgentShadowRoot();
     return element.release();
 }
@@ -421,19 +421,6 @@
     HTMLPlugInElement::didMoveToNewDocument(oldDocument);
 }
 
-void HTMLObjectElement::appendToFormData(FormData& formData)
-{
-    if (name().isEmpty())
-        return;
-
-    Widget* widget = pluginWidget();
-    if (!widget || !widget->isPluginView())
-        return;
-    String value;
-    if (toPluginView(widget)->getFormValue(value))
-        formData.append(name(), value);
-}
-
 HTMLFormElement* HTMLObjectElement::formOwner() const
 {
     return FormAssociatedElement::form();
diff --git a/third_party/WebKit/Source/core/html/HTMLObjectElement.h b/third_party/WebKit/Source/core/html/HTMLObjectElement.h
index 1a7970a..0b30db54 100644
--- a/third_party/WebKit/Source/core/html/HTMLObjectElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLObjectElement.h
@@ -33,9 +33,9 @@
 
 class CORE_EXPORT HTMLObjectElement final : public HTMLPlugInElement, public FormAssociatedElement {
     DEFINE_WRAPPERTYPEINFO();
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(HTMLObjectElement);
+    USING_GARBAGE_COLLECTED_MIXIN(HTMLObjectElement);
 public:
-    static PassRefPtrWillBeRawPtr<HTMLObjectElement> create(Document&, HTMLFormElement*, bool createdByParser);
+    static RawPtr<HTMLObjectElement> create(Document&, HTMLFormElement*, bool createdByParser);
     ~HTMLObjectElement() override;
     DECLARE_VIRTUAL_TRACE();
 
@@ -53,7 +53,6 @@
 
     bool isEnumeratable() const override { return true; }
     bool isInteractiveContent() const override;
-    void appendToFormData(FormData&) override;
 
     // Implementations of constraint validation API.
     // Note that the object elements are always barred from constraint validation.
diff --git a/third_party/WebKit/Source/core/html/HTMLOptGroupElement.cpp b/third_party/WebKit/Source/core/html/HTMLOptGroupElement.cpp
index d092b59..57ae47a 100644
--- a/third_party/WebKit/Source/core/html/HTMLOptGroupElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLOptGroupElement.cpp
@@ -45,9 +45,9 @@
     setHasCustomStyleCallbacks();
 }
 
-PassRefPtrWillBeRawPtr<HTMLOptGroupElement> HTMLOptGroupElement::create(Document& document)
+RawPtr<HTMLOptGroupElement> HTMLOptGroupElement::create(Document& document)
 {
-    RefPtrWillBeRawPtr<HTMLOptGroupElement> optGroupElement = adoptRefWillBeNoop(new HTMLOptGroupElement(document));
+    RawPtr<HTMLOptGroupElement> optGroupElement = new HTMLOptGroupElement(document);
     optGroupElement->ensureUserAgentShadowRoot();
     return optGroupElement.release();
 }
@@ -100,7 +100,7 @@
 
 bool HTMLOptGroupElement::supportsFocus() const
 {
-    RefPtrWillBeRawPtr<HTMLSelectElement> select = ownerSelectElement();
+    RawPtr<HTMLSelectElement> select = ownerSelectElement();
     if (select && select->usesMenuList())
         return false;
     return HTMLElement::supportsFocus();
@@ -163,7 +163,7 @@
 {
     DEFINE_STATIC_LOCAL(AtomicString, labelPadding, ("0 2px 1px 2px"));
     DEFINE_STATIC_LOCAL(AtomicString, labelMinHeight, ("1.2em"));
-    RefPtrWillBeRawPtr<HTMLDivElement> label = HTMLDivElement::create(document());
+    RawPtr<HTMLDivElement> label = HTMLDivElement::create(document());
     label->setAttribute(roleAttr, AtomicString("group"));
     label->setAttribute(aria_labelAttr, AtomicString());
     label->setInlineStyleProperty(CSSPropertyPadding, labelPadding);
@@ -171,7 +171,7 @@
     label->setIdAttribute(ShadowElementNames::optGroupLabel());
     root.appendChild(label);
 
-    RefPtrWillBeRawPtr<HTMLContentElement> content = HTMLContentElement::create(document());
+    RawPtr<HTMLContentElement> content = HTMLContentElement::create(document());
     content->setAttribute(selectAttr, "option,hr");
     root.appendChild(content);
 }
diff --git a/third_party/WebKit/Source/core/html/HTMLOptGroupElement.h b/third_party/WebKit/Source/core/html/HTMLOptGroupElement.h
index de9ec7f..e204d73 100644
--- a/third_party/WebKit/Source/core/html/HTMLOptGroupElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLOptGroupElement.h
@@ -36,7 +36,7 @@
 class CORE_EXPORT HTMLOptGroupElement final : public HTMLElement {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<HTMLOptGroupElement> create(Document&);
+    static RawPtr<HTMLOptGroupElement> create(Document&);
 
     bool isDisabledFormControl() const override;
     String defaultToolTip() const override;
diff --git a/third_party/WebKit/Source/core/html/HTMLOptionElement.cpp b/third_party/WebKit/Source/core/html/HTMLOptionElement.cpp
index 63919f9..7814883 100644
--- a/third_party/WebKit/Source/core/html/HTMLOptionElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLOptionElement.cpp
@@ -63,17 +63,17 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<HTMLOptionElement> HTMLOptionElement::create(Document& document)
+RawPtr<HTMLOptionElement> HTMLOptionElement::create(Document& document)
 {
-    RefPtrWillBeRawPtr<HTMLOptionElement> option = adoptRefWillBeNoop(new HTMLOptionElement(document));
+    RawPtr<HTMLOptionElement> option = new HTMLOptionElement(document);
     option->ensureUserAgentShadowRoot();
     return option.release();
 }
 
-PassRefPtrWillBeRawPtr<HTMLOptionElement> HTMLOptionElement::createForJSConstructor(Document& document, const String& data, const AtomicString& value,
+RawPtr<HTMLOptionElement> HTMLOptionElement::createForJSConstructor(Document& document, const String& data, const AtomicString& value,
     bool defaultSelected, bool selected, ExceptionState& exceptionState)
 {
-    RefPtrWillBeRawPtr<HTMLOptionElement> element = adoptRefWillBeNoop(new HTMLOptionElement(document));
+    RawPtr<HTMLOptionElement> element = new HTMLOptionElement(document);
     element->ensureUserAgentShadowRoot();
     element->appendChild(Text::create(document, data.isNull() ? "" : data), exceptionState);
     if (exceptionState.hadException())
@@ -109,7 +109,7 @@
 
 bool HTMLOptionElement::supportsFocus() const
 {
-    RefPtrWillBeRawPtr<HTMLSelectElement> select = ownerSelectElement();
+    RawPtr<HTMLSelectElement> select = ownerSelectElement();
     if (select && select->usesMenuList())
         return false;
     return HTMLElement::supportsFocus();
@@ -145,12 +145,12 @@
 
 void HTMLOptionElement::setText(const String &text, ExceptionState& exceptionState)
 {
-    RefPtrWillBeRawPtr<Node> protectFromMutationEvents(this);
+    RawPtr<Node> protectFromMutationEvents(this);
 
     // Changing the text causes a recalc of a select's items, which will reset the selected
     // index to the first item if the select is single selection with a menu list. We attempt to
     // preserve the selected item.
-    RefPtrWillBeRawPtr<HTMLSelectElement> select = ownerSelectElement();
+    RawPtr<HTMLSelectElement> select = ownerSelectElement();
     bool selectIsMenuList = select && select->usesMenuList();
     int oldSelectedIndex = selectIsMenuList ? select->selectedIndex() : -1;
 
@@ -181,7 +181,7 @@
 
     int optionIndex = 0;
 
-    const WillBeHeapVector<RawPtrWillBeMember<HTMLElement>>& items = selectElement->listItems();
+    const HeapVector<Member<HTMLElement>>& items = selectElement->listItems();
     size_t length = items.size();
     for (size_t i = 0; i < length; ++i) {
         if (!isHTMLOptionElement(*items[i]))
diff --git a/third_party/WebKit/Source/core/html/HTMLOptionElement.h b/third_party/WebKit/Source/core/html/HTMLOptionElement.h
index edf7cd7..550da26 100644
--- a/third_party/WebKit/Source/core/html/HTMLOptionElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLOptionElement.h
@@ -38,8 +38,8 @@
 class CORE_EXPORT HTMLOptionElement final : public HTMLElement {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<HTMLOptionElement> create(Document&);
-    static PassRefPtrWillBeRawPtr<HTMLOptionElement> createForJSConstructor(Document&, const String& data, const AtomicString& value,
+    static RawPtr<HTMLOptionElement> create(Document&);
+    static RawPtr<HTMLOptionElement> createForJSConstructor(Document&, const String& data, const AtomicString& value,
         bool defaultSelected, bool selected, ExceptionState&);
 
     // A text to be shown to users.  The difference from |label()| is |label()|
diff --git a/third_party/WebKit/Source/core/html/HTMLOptionsCollection.cpp b/third_party/WebKit/Source/core/html/HTMLOptionsCollection.cpp
index 1ab0fb1..e126586 100644
--- a/third_party/WebKit/Source/core/html/HTMLOptionsCollection.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLOptionsCollection.cpp
@@ -63,9 +63,9 @@
     }
 }
 
-PassRefPtrWillBeRawPtr<HTMLOptionsCollection> HTMLOptionsCollection::create(ContainerNode& select, CollectionType)
+RawPtr<HTMLOptionsCollection> HTMLOptionsCollection::create(ContainerNode& select, CollectionType)
 {
-    return adoptRefWillBeNoop(new HTMLOptionsCollection(select));
+    return new HTMLOptionsCollection(select);
 }
 
 void HTMLOptionsCollection::add(const HTMLOptionElementOrHTMLOptGroupElement& element, const HTMLElementOrLong& before, ExceptionState& exceptionState)
@@ -95,7 +95,7 @@
 
 void HTMLOptionsCollection::namedGetter(const AtomicString& name, NodeListOrElement& returnValue)
 {
-    WillBeHeapVector<RefPtrWillBeMember<Element>> namedItems;
+    HeapVector<Member<Element>> namedItems;
     this->namedItems(name, namedItems);
 
     if (!namedItems.size())
@@ -110,7 +110,7 @@
     returnValue.setNodeList(StaticElementList::adopt(namedItems));
 }
 
-bool HTMLOptionsCollection::anonymousIndexedSetter(unsigned index, PassRefPtrWillBeRawPtr<HTMLOptionElement> value, ExceptionState& exceptionState)
+bool HTMLOptionsCollection::anonymousIndexedSetter(unsigned index, RawPtr<HTMLOptionElement> value, ExceptionState& exceptionState)
 {
     HTMLSelectElement& base = toHTMLSelectElement(ownerNode());
     if (!value) { // undefined or null
diff --git a/third_party/WebKit/Source/core/html/HTMLOptionsCollection.h b/third_party/WebKit/Source/core/html/HTMLOptionsCollection.h
index a83dacc..45e24d1 100644
--- a/third_party/WebKit/Source/core/html/HTMLOptionsCollection.h
+++ b/third_party/WebKit/Source/core/html/HTMLOptionsCollection.h
@@ -37,7 +37,7 @@
 class HTMLOptionsCollection final : public HTMLCollection {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<HTMLOptionsCollection> create(ContainerNode&, CollectionType);
+    static RawPtr<HTMLOptionsCollection> create(ContainerNode&, CollectionType);
 
     HTMLOptionElement* item(unsigned offset) const { return toHTMLOptionElement(HTMLCollection::item(offset)); }
 
@@ -49,7 +49,7 @@
 
     void setLength(unsigned, ExceptionState&);
     void namedGetter(const AtomicString& name, NodeListOrElement&);
-    bool anonymousIndexedSetter(unsigned, PassRefPtrWillBeRawPtr<HTMLOptionElement>, ExceptionState&);
+    bool anonymousIndexedSetter(unsigned, RawPtr<HTMLOptionElement>, ExceptionState&);
 
     bool elementMatches(const HTMLElement&) const;
 
diff --git a/third_party/WebKit/Source/core/html/HTMLOutputElement.cpp b/third_party/WebKit/Source/core/html/HTMLOutputElement.cpp
index a774b7b..505da17 100644
--- a/third_party/WebKit/Source/core/html/HTMLOutputElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLOutputElement.cpp
@@ -50,9 +50,9 @@
 #endif
 }
 
-PassRefPtrWillBeRawPtr<HTMLOutputElement> HTMLOutputElement::create(Document& document, HTMLFormElement* form)
+RawPtr<HTMLOutputElement> HTMLOutputElement::create(Document& document, HTMLFormElement* form)
 {
-    return adoptRefWillBeNoop(new HTMLOutputElement(document, form));
+    return new HTMLOutputElement(document, form);
 }
 
 const AtomicString& HTMLOutputElement::formControlType() const
diff --git a/third_party/WebKit/Source/core/html/HTMLOutputElement.h b/third_party/WebKit/Source/core/html/HTMLOutputElement.h
index 0936998..95d5106 100644
--- a/third_party/WebKit/Source/core/html/HTMLOutputElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLOutputElement.h
@@ -38,9 +38,9 @@
 
 class CORE_EXPORT HTMLOutputElement final : public HTMLFormControlElement, private DOMTokenListObserver {
     DEFINE_WRAPPERTYPEINFO();
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(HTMLOutputElement);
+    USING_GARBAGE_COLLECTED_MIXIN(HTMLOutputElement);
 public:
-    static PassRefPtrWillBeRawPtr<HTMLOutputElement> create(Document&, HTMLFormElement*);
+    static RawPtr<HTMLOutputElement> create(Document&, HTMLFormElement*);
     ~HTMLOutputElement() override;
 
     bool willValidate() const override { return false; }
@@ -72,7 +72,7 @@
 
     bool m_isDefaultValueMode;
     String m_defaultValue;
-    RefPtrWillBeMember<DOMTokenList> m_tokens;
+    Member<DOMTokenList> m_tokens;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/html/HTMLOutputElementTest.cpp b/third_party/WebKit/Source/core/html/HTMLOutputElementTest.cpp
index 09ca7c1..813d69c 100644
--- a/third_party/WebKit/Source/core/html/HTMLOutputElementTest.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLOutputElementTest.cpp
@@ -13,8 +13,8 @@
 
 TEST(HTMLLinkElementSizesAttributeTest, setHTMLForProperty_updatesForAttribute)
 {
-    RefPtrWillBeRawPtr<Document> document = Document::create();
-    RefPtrWillBeRawPtr<HTMLOutputElement> element = HTMLOutputElement::create(*document, /* form: */ nullptr);
+    RawPtr<Document> document = Document::create();
+    RawPtr<HTMLOutputElement> element = HTMLOutputElement::create(*document, /* form: */ nullptr);
     EXPECT_EQ(nullAtom, element->getAttribute(HTMLNames::forAttr));
     element->htmlFor()->setValue("  strawberry ");
     EXPECT_EQ("  strawberry ", element->getAttribute(HTMLNames::forAttr));
@@ -22,9 +22,9 @@
 
 TEST(HTMLOutputElementTest, setForAttribute_updatesHTMLForPropertyValue)
 {
-    RefPtrWillBeRawPtr<Document> document = Document::create();
-    RefPtrWillBeRawPtr<HTMLOutputElement> element = HTMLOutputElement::create(*document, nullptr);
-    RefPtrWillBeRawPtr<DOMTokenList> forTokens = element->htmlFor();
+    RawPtr<Document> document = Document::create();
+    RawPtr<HTMLOutputElement> element = HTMLOutputElement::create(*document, nullptr);
+    RawPtr<DOMTokenList> forTokens = element->htmlFor();
     EXPECT_EQ(nullAtom, forTokens->value());
     element->setAttribute(HTMLNames::forAttr, "orange grape");
     EXPECT_EQ("orange grape", forTokens->value());
diff --git a/third_party/WebKit/Source/core/html/HTMLPlugInElement.cpp b/third_party/WebKit/Source/core/html/HTMLPlugInElement.cpp
index 5aa28df..9e0614f 100644
--- a/third_party/WebKit/Source/core/html/HTMLPlugInElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLPlugInElement.cpp
@@ -159,7 +159,7 @@
 
 void HTMLPlugInElement::updateWidget()
 {
-    RefPtrWillBeRawPtr<HTMLPlugInElement> protector(this);
+    RawPtr<HTMLPlugInElement> protector(this);
     updateWidgetInternal();
     if (m_isDelayingLoadEvent) {
         m_isDelayingLoadEvent = false;
@@ -353,7 +353,7 @@
         if (LayoutEmbeddedItem(toLayoutEmbeddedObject(r)).showsUnavailablePluginIndicator())
             return;
     }
-    RefPtrWillBeRawPtr<Widget> widget = toLayoutPart(r)->widget();
+    RawPtr<Widget> widget = toLayoutPart(r)->widget();
     if (!widget)
         return;
     widget->handleEvent(event);
@@ -489,7 +489,7 @@
     } else {
         bool loadManually = document().isPluginDocument() && !document().containsPlugins();
         FrameLoaderClient::DetachedPluginPolicy policy = requireLayoutObject ? FrameLoaderClient::FailOnDetachedPlugin : FrameLoaderClient::AllowDetachedPlugin;
-        RefPtrWillBeRawPtr<Widget> widget = frame->loader().client()->createPlugin(this, url, paramNames, paramValues, mimeType, loadManually, policy);
+        RawPtr<Widget> widget = frame->loader().client()->createPlugin(this, url, paramNames, paramValues, mimeType, loadManually, policy);
         if (!widget) {
             if (!layoutItem.isNull() && !layoutItem.showsUnavailablePluginIndicator())
                 layoutItem.setPluginUnavailabilityReason(LayoutEmbeddedObject::PluginMissing);
diff --git a/third_party/WebKit/Source/core/html/HTMLPlugInElement.h b/third_party/WebKit/Source/core/html/HTMLPlugInElement.h
index 3a3deb5e..4e62d31 100644
--- a/third_party/WebKit/Source/core/html/HTMLPlugInElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLPlugInElement.h
@@ -95,7 +95,7 @@
     String m_serviceType;
     String m_url;
     KURL m_loadedUrl;
-    OwnPtrWillBeMember<HTMLImageLoader> m_imageLoader;
+    Member<HTMLImageLoader> m_imageLoader;
     bool m_isDelayingLoadEvent;
 
 private:
@@ -146,7 +146,7 @@
     // prevent confusing code which may assume that widget() != null
     // means the frame is active, we save off m_widget here while
     // the plugin is persisting but not being displayed.
-    RefPtrWillBeMember<Widget> m_persistedPluginWidget;
+    Member<Widget> m_persistedPluginWidget;
 };
 
 inline bool isHTMLPlugInElement(const HTMLElement& element)
diff --git a/third_party/WebKit/Source/core/html/HTMLProgressElement.cpp b/third_party/WebKit/Source/core/html/HTMLProgressElement.cpp
index dc0b4c9..34d120b1 100644
--- a/third_party/WebKit/Source/core/html/HTMLProgressElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLProgressElement.cpp
@@ -50,9 +50,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<HTMLProgressElement> HTMLProgressElement::create(Document& document)
+RawPtr<HTMLProgressElement> HTMLProgressElement::create(Document& document)
 {
-    RefPtrWillBeRawPtr<HTMLProgressElement> progress = adoptRefWillBeNoop(new HTMLProgressElement(document));
+    RawPtr<HTMLProgressElement> progress = new HTMLProgressElement(document);
     progress->ensureUserAgentShadowRoot();
     return progress.release();
 }
@@ -149,13 +149,13 @@
 {
     ASSERT(!m_value);
 
-    RefPtrWillBeRawPtr<ProgressInnerElement> inner = ProgressInnerElement::create(document());
+    RawPtr<ProgressInnerElement> inner = ProgressInnerElement::create(document());
     inner->setShadowPseudoId(AtomicString("-webkit-progress-inner-element"));
     root.appendChild(inner);
 
-    RefPtrWillBeRawPtr<ProgressBarElement> bar = ProgressBarElement::create(document());
+    RawPtr<ProgressBarElement> bar = ProgressBarElement::create(document());
     bar->setShadowPseudoId(AtomicString("-webkit-progress-bar"));
-    RefPtrWillBeRawPtr<ProgressValueElement> value = ProgressValueElement::create(document());
+    RawPtr<ProgressValueElement> value = ProgressValueElement::create(document());
     m_value = value.get();
     m_value->setShadowPseudoId(AtomicString("-webkit-progress-value"));
     m_value->setWidthPercentage(HTMLProgressElement::IndeterminatePosition * 100);
diff --git a/third_party/WebKit/Source/core/html/HTMLProgressElement.h b/third_party/WebKit/Source/core/html/HTMLProgressElement.h
index 6fafe32..35618ad 100644
--- a/third_party/WebKit/Source/core/html/HTMLProgressElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLProgressElement.h
@@ -35,7 +35,7 @@
     static const double IndeterminatePosition;
     static const double InvalidPosition;
 
-    static PassRefPtrWillBeRawPtr<HTMLProgressElement> create(Document&);
+    static RawPtr<HTMLProgressElement> create(Document&);
 
     double value() const;
     void setValue(double);
@@ -68,7 +68,7 @@
     void didAddUserAgentShadowRoot(ShadowRoot&) override;
     bool isDeterminate() const;
 
-    RawPtrWillBeMember<ProgressValueElement> m_value;
+    Member<ProgressValueElement> m_value;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/html/HTMLScriptElement.cpp b/third_party/WebKit/Source/core/html/HTMLScriptElement.cpp
index 97edeeac..d61560f5 100644
--- a/third_party/WebKit/Source/core/html/HTMLScriptElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLScriptElement.cpp
@@ -43,9 +43,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<HTMLScriptElement> HTMLScriptElement::create(Document& document, bool wasInsertedByParser, bool alreadyStarted)
+RawPtr<HTMLScriptElement> HTMLScriptElement::create(Document& document, bool wasInsertedByParser, bool alreadyStarted)
 {
-    return adoptRefWillBeNoop(new HTMLScriptElement(document, wasInsertedByParser, alreadyStarted));
+    return new HTMLScriptElement(document, wasInsertedByParser, alreadyStarted);
 }
 
 bool HTMLScriptElement::isURLAttribute(const Attribute& attribute) const
@@ -174,9 +174,9 @@
     dispatchEvent(Event::create(EventTypeNames::load));
 }
 
-PassRefPtrWillBeRawPtr<Element> HTMLScriptElement::cloneElementWithoutAttributesAndChildren()
+RawPtr<Element> HTMLScriptElement::cloneElementWithoutAttributesAndChildren()
 {
-    return adoptRefWillBeNoop(new HTMLScriptElement(document(), false, m_loader->alreadyStarted()));
+    return new HTMLScriptElement(document(), false, m_loader->alreadyStarted());
 }
 
 DEFINE_TRACE(HTMLScriptElement)
diff --git a/third_party/WebKit/Source/core/html/HTMLScriptElement.h b/third_party/WebKit/Source/core/html/HTMLScriptElement.h
index 75d1177..1d1dcae 100644
--- a/third_party/WebKit/Source/core/html/HTMLScriptElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLScriptElement.h
@@ -34,7 +34,7 @@
 class CORE_EXPORT HTMLScriptElement final : public HTMLElement, public ScriptLoaderClient {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<HTMLScriptElement> create(Document&, bool wasInsertedByParser, bool alreadyStarted = false);
+    static RawPtr<HTMLScriptElement> create(Document&, bool wasInsertedByParser, bool alreadyStarted = false);
 
     String text() { return textFromChildren(); }
     void setText(const String&);
@@ -73,9 +73,9 @@
 
     void dispatchLoadEvent() override;
 
-    PassRefPtrWillBeRawPtr<Element> cloneElementWithoutAttributesAndChildren() override;
+    RawPtr<Element> cloneElementWithoutAttributesAndChildren() override;
 
-    OwnPtrWillBeMember<ScriptLoader> m_loader;
+    Member<ScriptLoader> m_loader;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/html/HTMLSelectElement.cpp b/third_party/WebKit/Source/core/html/HTMLSelectElement.cpp
index 989397a..9182cce 100644
--- a/third_party/WebKit/Source/core/html/HTMLSelectElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLSelectElement.cpp
@@ -96,16 +96,16 @@
     setHasCustomStyleCallbacks();
 }
 
-PassRefPtrWillBeRawPtr<HTMLSelectElement> HTMLSelectElement::create(Document& document)
+RawPtr<HTMLSelectElement> HTMLSelectElement::create(Document& document)
 {
-    RefPtrWillBeRawPtr<HTMLSelectElement> select = adoptRefWillBeNoop(new HTMLSelectElement(document, 0));
+    RawPtr<HTMLSelectElement> select = new HTMLSelectElement(document, 0);
     select->ensureUserAgentShadowRoot();
     return select.release();
 }
 
-PassRefPtrWillBeRawPtr<HTMLSelectElement> HTMLSelectElement::create(Document& document, HTMLFormElement* form)
+RawPtr<HTMLSelectElement> HTMLSelectElement::create(Document& document, HTMLFormElement* form)
 {
-    RefPtrWillBeRawPtr<HTMLSelectElement> select = adoptRefWillBeNoop(new HTMLSelectElement(document, form));
+    RawPtr<HTMLSelectElement> select = new HTMLSelectElement(document, form);
     select->ensureUserAgentShadowRoot();
     return select.release();
 }
@@ -243,14 +243,14 @@
 
 void HTMLSelectElement::add(const HTMLOptionElementOrHTMLOptGroupElement& element, const HTMLElementOrLong& before, ExceptionState& exceptionState)
 {
-    RefPtrWillBeRawPtr<HTMLElement> elementToInsert;
+    RawPtr<HTMLElement> elementToInsert;
     ASSERT(!element.isNull());
     if (element.isHTMLOptionElement())
         elementToInsert = element.getAsHTMLOptionElement();
     else
         elementToInsert = element.getAsHTMLOptGroupElement();
 
-    RefPtrWillBeRawPtr<HTMLElement> beforeElement;
+    RawPtr<HTMLElement> beforeElement;
     if (before.isHTMLElement())
         beforeElement = before.getAsHTMLElement();
     else if (before.isLong())
@@ -408,12 +408,12 @@
     return new LayoutListBox(this);
 }
 
-PassRefPtrWillBeRawPtr<HTMLCollection> HTMLSelectElement::selectedOptions()
+RawPtr<HTMLCollection> HTMLSelectElement::selectedOptions()
 {
     return ensureCachedCollection<HTMLCollection>(SelectedOptions);
 }
 
-PassRefPtrWillBeRawPtr<HTMLOptionsCollection> HTMLSelectElement::options()
+RawPtr<HTMLOptionsCollection> HTMLSelectElement::options()
 {
     return ensureCachedCollection<HTMLOptionsCollection>(SelectOptions);
 }
@@ -507,7 +507,7 @@
         // Removing children fires mutation events, which might mutate the DOM
         // further, so we first copy out a list of elements that we intend to
         // remove then attempt to remove them one at a time.
-        WillBeHeapVector<RefPtrWillBeMember<Element>> itemsToRemove;
+        HeapVector<Member<Element>> itemsToRemove;
         size_t optionIndex = 0;
         for (auto& item : listItems()) {
             if (isHTMLOptionElement(item) && optionIndex++ >= newLen) {
@@ -718,7 +718,7 @@
     }
 
     if (fireOnChange) {
-        RefPtrWillBeRawPtr<HTMLSelectElement> protector(this);
+        RawPtr<HTMLSelectElement> protector(this);
         dispatchInputEvent();
         dispatchFormControlChangeEvent();
     }
@@ -731,7 +731,7 @@
     HTMLOptionElement* selectedOption = this->selectedOption();
     if (m_lastOnChangeOption.get() != selectedOption) {
         m_lastOnChangeOption = selectedOption;
-        RefPtrWillBeRawPtr<HTMLSelectElement> protector(this);
+        RawPtr<HTMLSelectElement> protector(this);
         dispatchInputEvent();
         dispatchFormControlChangeEvent();
     }
@@ -762,7 +762,7 @@
         recalcListItems();
     } else {
 #if ENABLE(ASSERT)
-        WillBeHeapVector<RawPtrWillBeMember<HTMLElement>> items = m_listItems;
+        HeapVector<Member<HTMLElement>> items = m_listItems;
         recalcListItems();
         ASSERT(items == m_listItems);
 #endif
@@ -940,12 +940,12 @@
     // inserted before executing scrollToOptionTask().
     m_optionToScrollTo = option;
     if (!hasPendingTask)
-        document().postTask(BLINK_FROM_HERE, createSameThreadTask(&HTMLSelectElement::scrollToOptionTask, PassRefPtrWillBeRawPtr<HTMLSelectElement>(this)));
+        document().postTask(BLINK_FROM_HERE, createSameThreadTask(&HTMLSelectElement::scrollToOptionTask, RawPtr<HTMLSelectElement>(this)));
 }
 
 void HTMLSelectElement::scrollToOptionTask()
 {
-    RefPtrWillBeRawPtr<HTMLOptionElement> option = m_optionToScrollTo.release();
+    RawPtr<HTMLOptionElement> option = m_optionToScrollTo.release();
     if (!option || !inDocument())
         return;
     // optionRemoved() makes sure m_optionToScrollTo doesn't have an option with
@@ -1794,7 +1794,7 @@
         cache->listboxActiveIndexChanged(this);
 }
 
-bool HTMLSelectElement::anonymousIndexedSetter(unsigned index, PassRefPtrWillBeRawPtr<HTMLOptionElement> value, ExceptionState& exceptionState)
+bool HTMLSelectElement::anonymousIndexedSetter(unsigned index, RawPtr<HTMLOptionElement> value, ExceptionState& exceptionState)
 {
     if (!value) { // undefined or null
         remove(index);
@@ -1834,7 +1834,7 @@
 
 void HTMLSelectElement::didAddUserAgentShadowRoot(ShadowRoot& root)
 {
-    RefPtrWillBeRawPtr<HTMLContentElement> content = HTMLContentElement::create(document());
+    RawPtr<HTMLContentElement> content = HTMLContentElement::create(document());
     content->setAttribute(selectAttr, "option,optgroup,hr");
     root.appendChild(content);
 }
diff --git a/third_party/WebKit/Source/core/html/HTMLSelectElement.h b/third_party/WebKit/Source/core/html/HTMLSelectElement.h
index fd69ee8d..19ae08d8 100644
--- a/third_party/WebKit/Source/core/html/HTMLSelectElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLSelectElement.h
@@ -46,8 +46,8 @@
 class CORE_EXPORT HTMLSelectElement final : public HTMLFormControlElementWithState, private TypeAheadDataSource {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<HTMLSelectElement> create(Document&);
-    static PassRefPtrWillBeRawPtr<HTMLSelectElement> create(Document&, HTMLFormElement*);
+    static RawPtr<HTMLSelectElement> create(Document&);
+    static RawPtr<HTMLSelectElement> create(Document&, HTMLFormElement*);
     ~HTMLSelectElement() override;
 
     int selectedIndex() const;
@@ -83,15 +83,15 @@
     String suggestedValue() const;
     void setSuggestedValue(const String&);
 
-    PassRefPtrWillBeRawPtr<HTMLOptionsCollection> options();
-    PassRefPtrWillBeRawPtr<HTMLCollection> selectedOptions();
+    RawPtr<HTMLOptionsCollection> options();
+    RawPtr<HTMLCollection> selectedOptions();
 
     void optionElementChildrenChanged();
 
     void setRecalcListItems();
     void invalidateSelectedItems();
 
-    using ListItems = WillBeHeapVector<RawPtrWillBeMember<HTMLElement>>;
+    using ListItems = HeapVector<Member<HTMLElement>>;
     const ListItems& listItems() const;
 
     void accessKeyAction(bool sendMouseEvents) override;
@@ -121,7 +121,7 @@
     void optionSelectionStateChanged(HTMLOptionElement*, bool optionIsSelected);
     void optionInserted(HTMLOptionElement&, bool optionIsSelected);
     void optionRemoved(const HTMLOptionElement&);
-    bool anonymousIndexedSetter(unsigned, PassRefPtrWillBeRawPtr<HTMLOptionElement>, ExceptionState&);
+    bool anonymousIndexedSetter(unsigned, RawPtr<HTMLOptionElement>, ExceptionState&);
 
     void updateListOnLayoutObject();
 
@@ -256,17 +256,17 @@
     Vector<bool> m_cachedStateForActiveSelection;
     TypeAhead m_typeAhead;
     unsigned m_size;
-    RefPtrWillBeMember<HTMLOptionElement> m_lastOnChangeOption;
-    RefPtrWillBeMember<HTMLOptionElement> m_activeSelectionAnchor;
-    RefPtrWillBeMember<HTMLOptionElement> m_activeSelectionEnd;
-    RefPtrWillBeMember<HTMLOptionElement> m_optionToScrollTo;
+    Member<HTMLOptionElement> m_lastOnChangeOption;
+    Member<HTMLOptionElement> m_activeSelectionAnchor;
+    Member<HTMLOptionElement> m_activeSelectionEnd;
+    Member<HTMLOptionElement> m_optionToScrollTo;
     bool m_multiple;
     bool m_activeSelectionState;
     mutable bool m_shouldRecalcListItems;
     int m_suggestedIndex;
     bool m_isAutofilledByPreview;
 
-    RefPtrWillBeMember<PopupMenu> m_popup;
+    Member<PopupMenu> m_popup;
     int m_indexToSelectOnCancel;
     bool m_popupIsVisible;
 
diff --git a/third_party/WebKit/Source/core/html/HTMLSelectElementTest.cpp b/third_party/WebKit/Source/core/html/HTMLSelectElementTest.cpp
index 78ea99c..4c7987ad 100644
--- a/third_party/WebKit/Source/core/html/HTMLSelectElementTest.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLSelectElementTest.cpp
@@ -21,7 +21,7 @@
 
 private:
     OwnPtr<DummyPageHolder> m_dummyPageHolder;
-    RefPtrWillBePersistent<HTMLDocument> m_document;
+    Persistent<HTMLDocument> m_document;
 };
 
 void HTMLSelectElementTest::SetUp()
@@ -297,7 +297,7 @@
     document().documentElement()->setInnerHTML("<select><optgroup><option selected>o1</option></optgroup></select>", ASSERT_NO_EXCEPTION);
     document().view()->updateAllLifecyclePhases();
     HTMLSelectElement* select = toHTMLSelectElement(document().body()->firstChild());
-    RefPtrWillBeRawPtr<HTMLOptionElement> option = toHTMLOptionElement(select->firstChild()->firstChild());
+    RawPtr<HTMLOptionElement> option = toHTMLOptionElement(select->firstChild()->firstChild());
     EXPECT_EQ(1, select->activeSelectionEndListIndex());
     select->firstChild()->removeChild(option, ASSERT_NO_EXCEPTION);
     EXPECT_EQ(-1, select->activeSelectionEndListIndex());
@@ -310,8 +310,8 @@
     document().documentElement()->setInnerHTML("<select size=4><option value="">Placeholder</option><optgroup><option>o2</option></optgroup></select>", ASSERT_NO_EXCEPTION);
     document().view()->updateAllLifecyclePhases();
     HTMLSelectElement* select = toHTMLSelectElement(document().body()->firstChild());
-    RefPtrWillBeRawPtr<Element> option = toElement(select->firstChild());
-    RefPtrWillBeRawPtr<Element> optgroup = toElement(option->nextSibling());
+    RawPtr<Element> option = toElement(select->firstChild());
+    RawPtr<Element> optgroup = toElement(option->nextSibling());
 
     EXPECT_EQ(String(), select->defaultToolTip()) << "defaultToolTip for SELECT without FORM and without required attribute should return null string.";
     EXPECT_EQ(select->defaultToolTip(), option->defaultToolTip());
@@ -322,7 +322,7 @@
     EXPECT_EQ(select->defaultToolTip(), option->defaultToolTip());
     EXPECT_EQ(select->defaultToolTip(), optgroup->defaultToolTip());
 
-    RefPtrWillBeRawPtr<HTMLFormElement> form = HTMLFormElement::create(document());
+    RawPtr<HTMLFormElement> form = HTMLFormElement::create(document());
     document().body()->appendChild(form.get());
     form->appendChild(select);
     EXPECT_EQ("<<ValidationValueMissingForSelect>>", select->defaultToolTip()) << "defaultToolTip for SELECT with FORM and required attribute should return a valueMissing message.";
diff --git a/third_party/WebKit/Source/core/html/HTMLSlotElement.cpp b/third_party/WebKit/Source/core/html/HTMLSlotElement.cpp
index 2779b52..6f25704 100644
--- a/third_party/WebKit/Source/core/html/HTMLSlotElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLSlotElement.cpp
@@ -52,7 +52,7 @@
 
 DEFINE_NODE_FACTORY(HTMLSlotElement);
 
-const WillBeHeapVector<RefPtrWillBeMember<Node>> HTMLSlotElement::getAssignedNodesForBinding(const AssignedNodesOptions& options)
+const HeapVector<Member<Node>> HTMLSlotElement::getAssignedNodesForBinding(const AssignedNodesOptions& options)
 {
     updateDistribution();
     if (options.hasFlatten() && options.flatten())
@@ -60,7 +60,7 @@
     return m_assignedNodes;
 }
 
-const WillBeHeapVector<RefPtrWillBeMember<Node>>& HTMLSlotElement::getDistributedNodes()
+const HeapVector<Member<Node>>& HTMLSlotElement::getDistributedNodes()
 {
     ASSERT(!needsDistributionRecalc());
     if (isInShadowTree())
@@ -124,7 +124,7 @@
 
 void HTMLSlotElement::dispatchSlotChangeEvent()
 {
-    RefPtrWillBeRawPtr<Event> event = Event::create(EventTypeNames::slotchange);
+    RawPtr<Event> event = Event::create(EventTypeNames::slotchange);
     event->setTarget(this);
     dispatchScopedEvent(event);
 }
@@ -269,7 +269,7 @@
     }
     if (hasSlotChangeEventListener() && distributionChanged()) {
         // TODO(hayato): Do not enqueue a slotchange event for the same slot twice in the microtask queue
-        Microtask::enqueueMicrotask(WTF::bind(&HTMLSlotElement::dispatchSlotChangeEvent, PassRefPtrWillBeRawPtr<HTMLSlotElement>(this)));
+        Microtask::enqueueMicrotask(WTF::bind(&HTMLSlotElement::dispatchSlotChangeEvent, RawPtr<HTMLSlotElement>(this)));
     }
 }
 
@@ -279,6 +279,11 @@
     didUpdateDistribution();
 }
 
+short HTMLSlotElement::tabIndex() const
+{
+    return Element::tabIndex();
+}
+
 DEFINE_TRACE(HTMLSlotElement)
 {
 #if ENABLE(OILPAN)
diff --git a/third_party/WebKit/Source/core/html/HTMLSlotElement.h b/third_party/WebKit/Source/core/html/HTMLSlotElement.h
index 8280999..3e23a8e 100644
--- a/third_party/WebKit/Source/core/html/HTMLSlotElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLSlotElement.h
@@ -43,9 +43,9 @@
 public:
     DECLARE_NODE_FACTORY(HTMLSlotElement);
 
-    const WillBeHeapVector<RefPtrWillBeMember<Node>>& getAssignedNodes() const { ASSERT(!needsDistributionRecalc()); return m_assignedNodes; }
-    const WillBeHeapVector<RefPtrWillBeMember<Node>>& getDistributedNodes();
-    const WillBeHeapVector<RefPtrWillBeMember<Node>> getAssignedNodesForBinding(const AssignedNodesOptions&);
+    const HeapVector<Member<Node>>& getAssignedNodes() const { ASSERT(!needsDistributionRecalc()); return m_assignedNodes; }
+    const HeapVector<Member<Node>>& getDistributedNodes();
+    const HeapVector<Member<Node>> getAssignedNodesForBinding(const AssignedNodesOptions&);
 
     Node* firstDistributedNode() const { return m_distributedNodes.isEmpty() ? nullptr : m_distributedNodes.first().get(); }
     Node* lastDistributedNode() const { return m_distributedNodes.isEmpty() ? nullptr : m_distributedNodes.last().get(); }
@@ -68,6 +68,8 @@
 
     void attributeChanged(const QualifiedName&, const AtomicString& oldValue, const AtomicString& newValue, AttributeModificationReason = ModifiedDirectly) final;
 
+    short tabIndex() const override;
+
     DECLARE_VIRTUAL_TRACE();
 
 private:
@@ -89,11 +91,11 @@
     void dispatchSlotChangeEvent();
     bool distributionChanged();
 
-    WillBeHeapVector<RefPtrWillBeMember<Node>> m_assignedNodes;
-    WillBeHeapVector<RefPtrWillBeMember<Node>> m_distributedNodes;
-    WillBeHeapHashMap<RawPtrWillBeMember<const Node>, size_t> m_distributedIndices;
+    HeapVector<Member<Node>> m_assignedNodes;
+    HeapVector<Member<Node>> m_distributedNodes;
+    HeapHashMap<Member<const Node>, size_t> m_distributedIndices;
     // TODO(hayato): Remove m_oldDistibutedNodes and make SlotAssignment check the diffirence between old and new distributed nodes for each slot to save the memories.
-    WillBeHeapVector<RefPtrWillBeMember<Node>> m_oldDistributedNodes;
+    HeapVector<Member<Node>> m_oldDistributedNodes;
     DistributionState m_distributionState;
 };
 
diff --git a/third_party/WebKit/Source/core/html/HTMLSourceElement.cpp b/third_party/WebKit/Source/core/html/HTMLSourceElement.cpp
index c91abd3b..a84c285 100644
--- a/third_party/WebKit/Source/core/html/HTMLSourceElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLSourceElement.cpp
@@ -42,7 +42,7 @@
 
 static SourceEventSender& sourceErrorEventSender()
 {
-    DEFINE_STATIC_LOCAL(OwnPtrWillBePersistent<SourceEventSender>, sharedErrorEventSender, (SourceEventSender::create(EventTypeNames::error)));
+    DEFINE_STATIC_LOCAL(Persistent<SourceEventSender>, sharedErrorEventSender, (SourceEventSender::create(EventTypeNames::error)));
     return *sharedErrorEventSender;
 }
 
@@ -62,12 +62,12 @@
         MediaQueryListListener::trace(visitor);
     }
 private:
-    RawPtrWillBeMember<HTMLSourceElement> m_element;
+    Member<HTMLSourceElement> m_element;
 };
 
 inline HTMLSourceElement::HTMLSourceElement(Document& document)
     : HTMLElement(sourceTag, document)
-    , m_listener(adoptRefWillBeNoop(new Listener(this)))
+    , m_listener(new Listener(this))
 {
     WTF_LOG(Media, "HTMLSourceElement::HTMLSourceElement - %p", this);
 }
@@ -89,7 +89,7 @@
 
     if (m_mediaQueryList)
         m_mediaQueryList->removeListener(m_listener);
-    RefPtrWillBeRawPtr<MediaQuerySet> set = MediaQuerySet::create(media);
+    RawPtr<MediaQuerySet> set = MediaQuerySet::create(media);
     m_mediaQueryList = MediaQueryList::create(&document(), &document().mediaQueryMatcher(), set.release());
     m_mediaQueryList->addListener(m_listener);
 }
diff --git a/third_party/WebKit/Source/core/html/HTMLSourceElement.h b/third_party/WebKit/Source/core/html/HTMLSourceElement.h
index a80defe..7607add 100644
--- a/third_party/WebKit/Source/core/html/HTMLSourceElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLSourceElement.h
@@ -69,8 +69,8 @@
     void notifyMediaQueryChanged();
     void createMediaQueryList(const AtomicString& media);
 
-    RefPtrWillBeMember<MediaQueryList> m_mediaQueryList;
-    RefPtrWillBeMember<Listener> m_listener;
+    Member<MediaQueryList> m_mediaQueryList;
+    Member<Listener> m_listener;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/html/HTMLStyleElement.cpp b/third_party/WebKit/Source/core/html/HTMLStyleElement.cpp
index d17c0e0..030990a 100644
--- a/third_party/WebKit/Source/core/html/HTMLStyleElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLStyleElement.cpp
@@ -37,7 +37,7 @@
 
 static StyleEventSender& styleLoadEventSender()
 {
-    DEFINE_STATIC_LOCAL(OwnPtrWillBePersistent<StyleEventSender>, sharedLoadEventSender, (StyleEventSender::create(EventTypeNames::load)));
+    DEFINE_STATIC_LOCAL(Persistent<StyleEventSender>, sharedLoadEventSender, (StyleEventSender::create(EventTypeNames::load)));
     return *sharedLoadEventSender;
 }
 
@@ -58,9 +58,9 @@
 #endif
 }
 
-PassRefPtrWillBeRawPtr<HTMLStyleElement> HTMLStyleElement::create(Document& document, bool createdByParser)
+RawPtr<HTMLStyleElement> HTMLStyleElement::create(Document& document, bool createdByParser)
 {
-    return adoptRefWillBeNoop(new HTMLStyleElement(document, createdByParser));
+    return new HTMLStyleElement(document, createdByParser);
 }
 
 void HTMLStyleElement::parseAttribute(const QualifiedName& name, const AtomicString& oldValue, const AtomicString& value)
diff --git a/third_party/WebKit/Source/core/html/HTMLStyleElement.h b/third_party/WebKit/Source/core/html/HTMLStyleElement.h
index 6ceae7a..9644c19 100644
--- a/third_party/WebKit/Source/core/html/HTMLStyleElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLStyleElement.h
@@ -35,9 +35,9 @@
 
 class HTMLStyleElement final : public HTMLElement, private StyleElement {
     DEFINE_WRAPPERTYPEINFO();
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(HTMLStyleElement);
+    USING_GARBAGE_COLLECTED_MIXIN(HTMLStyleElement);
 public:
-    static PassRefPtrWillBeRawPtr<HTMLStyleElement> create(Document&, bool createdByParser);
+    static RawPtr<HTMLStyleElement> create(Document&, bool createdByParser);
     ~HTMLStyleElement() override;
 
     using StyleElement::sheet;
diff --git a/third_party/WebKit/Source/core/html/HTMLSummaryElement.cpp b/third_party/WebKit/Source/core/html/HTMLSummaryElement.cpp
index 5a7a5b9..7439e45 100644
--- a/third_party/WebKit/Source/core/html/HTMLSummaryElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLSummaryElement.cpp
@@ -35,9 +35,9 @@
 
 using namespace HTMLNames;
 
-PassRefPtrWillBeRawPtr<HTMLSummaryElement> HTMLSummaryElement::create(Document& document)
+RawPtr<HTMLSummaryElement> HTMLSummaryElement::create(Document& document)
 {
-    RefPtrWillBeRawPtr<HTMLSummaryElement> summary = adoptRefWillBeNoop(new HTMLSummaryElement(document));
+    RawPtr<HTMLSummaryElement> summary = new HTMLSummaryElement(document);
     summary->ensureUserAgentShadowRoot();
     return summary.release();
 }
@@ -54,7 +54,7 @@
 
 void HTMLSummaryElement::didAddUserAgentShadowRoot(ShadowRoot& root)
 {
-    RefPtrWillBeRawPtr<DetailsMarkerControl> markerControl = DetailsMarkerControl::create(document());
+    RawPtr<DetailsMarkerControl> markerControl = DetailsMarkerControl::create(document());
     markerControl->setIdAttribute(ShadowElementNames::detailsMarker());
     root.appendChild(markerControl);
     root.appendChild(HTMLContentElement::create(document()));
diff --git a/third_party/WebKit/Source/core/html/HTMLSummaryElement.h b/third_party/WebKit/Source/core/html/HTMLSummaryElement.h
index cbbf0b3..9a0fccaf 100644
--- a/third_party/WebKit/Source/core/html/HTMLSummaryElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLSummaryElement.h
@@ -29,7 +29,7 @@
 
 class HTMLSummaryElement final : public HTMLElement {
 public:
-    static PassRefPtrWillBeRawPtr<HTMLSummaryElement> create(Document&);
+    static RawPtr<HTMLSummaryElement> create(Document&);
     bool isMainSummary() const;
     bool willRespondToMouseClickEvents() override;
 
diff --git a/third_party/WebKit/Source/core/html/HTMLTableElement.cpp b/third_party/WebKit/Source/core/html/HTMLTableElement.cpp
index 9a78b0c8..95f52894 100644
--- a/third_party/WebKit/Source/core/html/HTMLTableElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLTableElement.cpp
@@ -75,7 +75,7 @@
     return Traversal<HTMLTableCaptionElement>::firstChild(*this);
 }
 
-void HTMLTableElement::setCaption(PassRefPtrWillBeRawPtr<HTMLTableCaptionElement> newCaption, ExceptionState& exceptionState)
+void HTMLTableElement::setCaption(RawPtr<HTMLTableCaptionElement> newCaption, ExceptionState& exceptionState)
 {
     deleteCaption();
     insertBefore(newCaption, firstChild(), exceptionState);
@@ -86,7 +86,7 @@
     return toHTMLTableSectionElement(Traversal<HTMLElement>::firstChild(*this, HasHTMLTagName(theadTag)));
 }
 
-void HTMLTableElement::setTHead(PassRefPtrWillBeRawPtr<HTMLTableSectionElement> newHead, ExceptionState& exceptionState)
+void HTMLTableElement::setTHead(RawPtr<HTMLTableSectionElement> newHead, ExceptionState& exceptionState)
 {
     deleteTHead();
 
@@ -104,7 +104,7 @@
     return toHTMLTableSectionElement(Traversal<HTMLElement>::firstChild(*this, HasHTMLTagName(tfootTag)));
 }
 
-void HTMLTableElement::setTFoot(PassRefPtrWillBeRawPtr<HTMLTableSectionElement> newFoot, ExceptionState& exceptionState)
+void HTMLTableElement::setTFoot(RawPtr<HTMLTableSectionElement> newFoot, ExceptionState& exceptionState)
 {
     deleteTFoot();
 
@@ -117,11 +117,11 @@
     insertBefore(newFoot, child, exceptionState);
 }
 
-PassRefPtrWillBeRawPtr<HTMLTableSectionElement> HTMLTableElement::createTHead()
+RawPtr<HTMLTableSectionElement> HTMLTableElement::createTHead()
 {
     if (HTMLTableSectionElement* existingHead = tHead())
         return existingHead;
-    RefPtrWillBeRawPtr<HTMLTableSectionElement> head = HTMLTableSectionElement::create(theadTag, document());
+    RawPtr<HTMLTableSectionElement> head = HTMLTableSectionElement::create(theadTag, document());
     setTHead(head, IGNORE_EXCEPTION);
     return head.release();
 }
@@ -131,11 +131,11 @@
     removeChild(tHead(), IGNORE_EXCEPTION);
 }
 
-PassRefPtrWillBeRawPtr<HTMLTableSectionElement> HTMLTableElement::createTFoot()
+RawPtr<HTMLTableSectionElement> HTMLTableElement::createTFoot()
 {
     if (HTMLTableSectionElement* existingFoot = tFoot())
         return existingFoot;
-    RefPtrWillBeRawPtr<HTMLTableSectionElement> foot = HTMLTableSectionElement::create(tfootTag, document());
+    RawPtr<HTMLTableSectionElement> foot = HTMLTableSectionElement::create(tfootTag, document());
     setTFoot(foot, IGNORE_EXCEPTION);
     return foot.release();
 }
@@ -145,20 +145,20 @@
     removeChild(tFoot(), IGNORE_EXCEPTION);
 }
 
-PassRefPtrWillBeRawPtr<HTMLTableSectionElement> HTMLTableElement::createTBody()
+RawPtr<HTMLTableSectionElement> HTMLTableElement::createTBody()
 {
-    RefPtrWillBeRawPtr<HTMLTableSectionElement> body = HTMLTableSectionElement::create(tbodyTag, document());
+    RawPtr<HTMLTableSectionElement> body = HTMLTableSectionElement::create(tbodyTag, document());
     Node* referenceElement = lastBody() ? lastBody()->nextSibling() : 0;
 
     insertBefore(body, referenceElement);
     return body.release();
 }
 
-PassRefPtrWillBeRawPtr<HTMLTableCaptionElement> HTMLTableElement::createCaption()
+RawPtr<HTMLTableCaptionElement> HTMLTableElement::createCaption()
 {
     if (HTMLTableCaptionElement* existingCaption = caption())
         return existingCaption;
-    RefPtrWillBeRawPtr<HTMLTableCaptionElement> caption = HTMLTableCaptionElement::create(document());
+    RawPtr<HTMLTableCaptionElement> caption = HTMLTableCaptionElement::create(document());
     setCaption(caption, IGNORE_EXCEPTION);
     return caption.release();
 }
@@ -173,17 +173,17 @@
     return toHTMLTableSectionElement(Traversal<HTMLElement>::lastChild(*this, HasHTMLTagName(tbodyTag)));
 }
 
-PassRefPtrWillBeRawPtr<HTMLTableRowElement> HTMLTableElement::insertRow(int index, ExceptionState& exceptionState)
+RawPtr<HTMLTableRowElement> HTMLTableElement::insertRow(int index, ExceptionState& exceptionState)
 {
     if (index < -1) {
         exceptionState.throwDOMException(IndexSizeError, "The index provided (" + String::number(index) + ") is less than -1.");
         return nullptr;
     }
 
-    RefPtrWillBeRawPtr<Node> protectFromMutationEvents(this);
+    RawPtr<Node> protectFromMutationEvents(this);
 
-    RefPtrWillBeRawPtr<HTMLTableRowElement> lastRow = nullptr;
-    RefPtrWillBeRawPtr<HTMLTableRowElement> row = nullptr;
+    RawPtr<HTMLTableRowElement> lastRow = nullptr;
+    RawPtr<HTMLTableRowElement> row = nullptr;
     if (index == -1) {
         lastRow = HTMLTableRowsCollection::lastRow(*this);
     } else {
@@ -200,21 +200,21 @@
         }
     }
 
-    RefPtrWillBeRawPtr<ContainerNode> parent;
+    RawPtr<ContainerNode> parent;
     if (lastRow) {
         parent = row ? row->parentNode() : lastRow->parentNode();
     } else {
         parent = lastBody();
         if (!parent) {
-            RefPtrWillBeRawPtr<HTMLTableSectionElement> newBody = HTMLTableSectionElement::create(tbodyTag, document());
-            RefPtrWillBeRawPtr<HTMLTableRowElement> newRow = HTMLTableRowElement::create(document());
+            RawPtr<HTMLTableSectionElement> newBody = HTMLTableSectionElement::create(tbodyTag, document());
+            RawPtr<HTMLTableRowElement> newRow = HTMLTableRowElement::create(document());
             newBody->appendChild(newRow, exceptionState);
             appendChild(newBody.release(), exceptionState);
             return newRow.release();
         }
     }
 
-    RefPtrWillBeRawPtr<HTMLTableRowElement> newRow = HTMLTableRowElement::create(document());
+    RawPtr<HTMLTableRowElement> newRow = HTMLTableRowElement::create(document());
     parent->insertBefore(newRow, row.get(), exceptionState);
     return newRow.release();
 }
@@ -298,7 +298,7 @@
     } else if (name == backgroundAttr) {
         String url = stripLeadingAndTrailingHTMLSpaces(value);
         if (!url.isEmpty()) {
-            RefPtrWillBeRawPtr<CSSImageValue> imageValue = CSSImageValue::create(url, document().completeURL(url));
+            RawPtr<CSSImageValue> imageValue = CSSImageValue::create(url, document().completeURL(url));
             imageValue->setReferrer(Referrer(document().outgoingReferrer(), document().getReferrerPolicy()));
             style->setProperty(CSSProperty(CSSPropertyBackgroundImage, imageValue.release()));
         }
@@ -391,9 +391,9 @@
     }
 }
 
-static PassRefPtrWillBeRawPtr<StylePropertySet> createBorderStyle(CSSValueID value)
+static RawPtr<StylePropertySet> createBorderStyle(CSSValueID value)
 {
-    RefPtrWillBeRawPtr<MutableStylePropertySet> style = MutableStylePropertySet::create(HTMLQuirksMode);
+    RawPtr<MutableStylePropertySet> style = MutableStylePropertySet::create(HTMLQuirksMode);
     style->setProperty(CSSPropertyBorderTopStyle, value);
     style->setProperty(CSSPropertyBorderBottomStyle, value);
     style->setProperty(CSSPropertyBorderLeftStyle, value);
@@ -447,9 +447,9 @@
     return NoBorders;
 }
 
-PassRefPtrWillBeRawPtr<StylePropertySet> HTMLTableElement::createSharedCellStyle()
+RawPtr<StylePropertySet> HTMLTableElement::createSharedCellStyle()
 {
-    RefPtrWillBeRawPtr<MutableStylePropertySet> style = MutableStylePropertySet::create(HTMLQuirksMode);
+    RawPtr<MutableStylePropertySet> style = MutableStylePropertySet::create(HTMLQuirksMode);
 
     switch (getCellBorders()) {
     case SolidBordersColsOnly:
@@ -494,9 +494,9 @@
     return m_sharedCellStyle.get();
 }
 
-static PassRefPtrWillBeRawPtr<StylePropertySet> createGroupBorderStyle(int rows)
+static RawPtr<StylePropertySet> createGroupBorderStyle(int rows)
 {
-    RefPtrWillBeRawPtr<MutableStylePropertySet> style = MutableStylePropertySet::create(HTMLQuirksMode);
+    RawPtr<MutableStylePropertySet> style = MutableStylePropertySet::create(HTMLQuirksMode);
     if (rows) {
         style->setProperty(CSSPropertyBorderTopWidth, CSSValueThin);
         style->setProperty(CSSPropertyBorderBottomWidth, CSSValueThin);
@@ -539,12 +539,12 @@
     return backgroundAttr;
 }
 
-PassRefPtrWillBeRawPtr<HTMLTableRowsCollection> HTMLTableElement::rows()
+RawPtr<HTMLTableRowsCollection> HTMLTableElement::rows()
 {
     return ensureCachedCollection<HTMLTableRowsCollection>(TableRows);
 }
 
-PassRefPtrWillBeRawPtr<HTMLCollection> HTMLTableElement::tBodies()
+RawPtr<HTMLCollection> HTMLTableElement::tBodies()
 {
     return ensureCachedCollection<HTMLCollection>(TableTBodies);
 }
diff --git a/third_party/WebKit/Source/core/html/HTMLTableElement.h b/third_party/WebKit/Source/core/html/HTMLTableElement.h
index 4c0c9ed..cb72a35 100644
--- a/third_party/WebKit/Source/core/html/HTMLTableElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLTableElement.h
@@ -43,26 +43,26 @@
     DECLARE_NODE_FACTORY(HTMLTableElement);
 
     HTMLTableCaptionElement* caption() const;
-    void setCaption(PassRefPtrWillBeRawPtr<HTMLTableCaptionElement>, ExceptionState&);
+    void setCaption(RawPtr<HTMLTableCaptionElement>, ExceptionState&);
 
     HTMLTableSectionElement* tHead() const;
-    void setTHead(PassRefPtrWillBeRawPtr<HTMLTableSectionElement>, ExceptionState&);
+    void setTHead(RawPtr<HTMLTableSectionElement>, ExceptionState&);
 
     HTMLTableSectionElement* tFoot() const;
-    void setTFoot(PassRefPtrWillBeRawPtr<HTMLTableSectionElement>, ExceptionState&);
+    void setTFoot(RawPtr<HTMLTableSectionElement>, ExceptionState&);
 
-    PassRefPtrWillBeRawPtr<HTMLTableSectionElement> createTHead();
+    RawPtr<HTMLTableSectionElement> createTHead();
     void deleteTHead();
-    PassRefPtrWillBeRawPtr<HTMLTableSectionElement> createTFoot();
+    RawPtr<HTMLTableSectionElement> createTFoot();
     void deleteTFoot();
-    PassRefPtrWillBeRawPtr<HTMLTableSectionElement> createTBody();
-    PassRefPtrWillBeRawPtr<HTMLTableCaptionElement> createCaption();
+    RawPtr<HTMLTableSectionElement> createTBody();
+    RawPtr<HTMLTableCaptionElement> createCaption();
     void deleteCaption();
-    PassRefPtrWillBeRawPtr<HTMLTableRowElement> insertRow(int index, ExceptionState&);
+    RawPtr<HTMLTableRowElement> insertRow(int index, ExceptionState&);
     void deleteRow(int index, ExceptionState&);
 
-    PassRefPtrWillBeRawPtr<HTMLTableRowsCollection> rows();
-    PassRefPtrWillBeRawPtr<HTMLCollection> tBodies();
+    RawPtr<HTMLTableRowsCollection> rows();
+    RawPtr<HTMLCollection> tBodies();
 
     const AtomicString& rules() const;
     const AtomicString& summary() const;
@@ -91,7 +91,7 @@
 
     CellBorders getCellBorders() const;
 
-    PassRefPtrWillBeRawPtr<StylePropertySet> createSharedCellStyle();
+    RawPtr<StylePropertySet> createSharedCellStyle();
 
     HTMLTableSectionElement* lastBody() const;
 
@@ -104,7 +104,7 @@
                                 // are present, to none otherwise).
 
     unsigned short m_padding;
-    RefPtrWillBeMember<StylePropertySet> m_sharedCellStyle;
+    Member<StylePropertySet> m_sharedCellStyle;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/html/HTMLTablePartElement.cpp b/third_party/WebKit/Source/core/html/HTMLTablePartElement.cpp
index d05e193..0e6a768 100644
--- a/third_party/WebKit/Source/core/html/HTMLTablePartElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLTablePartElement.cpp
@@ -53,7 +53,7 @@
     } else if (name == backgroundAttr) {
         String url = stripLeadingAndTrailingHTMLSpaces(value);
         if (!url.isEmpty()) {
-            RefPtrWillBeRawPtr<CSSImageValue> imageValue = CSSImageValue::create(url, document().completeURL(url));
+            RawPtr<CSSImageValue> imageValue = CSSImageValue::create(url, document().completeURL(url));
             imageValue->setReferrer(Referrer(document().outgoingReferrer(), document().getReferrerPolicy()));
             style->setProperty(CSSProperty(CSSPropertyBackgroundImage, imageValue.release()));
         }
diff --git a/third_party/WebKit/Source/core/html/HTMLTableRowElement.cpp b/third_party/WebKit/Source/core/html/HTMLTableRowElement.cpp
index 9bbcd09f..87ffe7c 100644
--- a/third_party/WebKit/Source/core/html/HTMLTableRowElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLTableRowElement.cpp
@@ -66,7 +66,7 @@
     if (!(maybeTable && isHTMLTableElement(maybeTable)))
         return -1;
 
-    RefPtrWillBeRawPtr<HTMLTableRowsCollection> rows =
+    RawPtr<HTMLTableRowsCollection> rows =
         toHTMLTableElement(maybeTable)->rows();
     HTMLTableRowElement* candidate = rows->item(0);
     for (int i = 0; candidate; i++, candidate = rows->item(i)) {
@@ -90,16 +90,16 @@
     return rIndex;
 }
 
-PassRefPtrWillBeRawPtr<HTMLElement> HTMLTableRowElement::insertCell(int index, ExceptionState& exceptionState)
+RawPtr<HTMLElement> HTMLTableRowElement::insertCell(int index, ExceptionState& exceptionState)
 {
-    RefPtrWillBeRawPtr<HTMLCollection> children = cells();
+    RawPtr<HTMLCollection> children = cells();
     int numCells = children ? children->length() : 0;
     if (index < -1 || index > numCells) {
         exceptionState.throwDOMException(IndexSizeError, "The value provided (" + String::number(index) + ") is outside the range [-1, " + String::number(numCells) + "].");
         return nullptr;
     }
 
-    RefPtrWillBeRawPtr<HTMLTableCellElement> cell = HTMLTableCellElement::create(tdTag, document());
+    RawPtr<HTMLTableCellElement> cell = HTMLTableCellElement::create(tdTag, document());
     if (numCells == index || index == -1)
         appendChild(cell, exceptionState);
     else
@@ -109,19 +109,19 @@
 
 void HTMLTableRowElement::deleteCell(int index, ExceptionState& exceptionState)
 {
-    RefPtrWillBeRawPtr<HTMLCollection> children = cells();
+    RawPtr<HTMLCollection> children = cells();
     int numCells = children ? children->length() : 0;
     if (index == -1)
         index = numCells-1;
     if (index >= 0 && index < numCells) {
-        RefPtrWillBeRawPtr<Element> cell = children->item(index);
+        RawPtr<Element> cell = children->item(index);
         HTMLElement::removeChild(cell.get(), exceptionState);
     } else {
         exceptionState.throwDOMException(IndexSizeError, "The value provided (" + String::number(index) + ") is outside the range [0, " + String::number(numCells) + ").");
     }
 }
 
-PassRefPtrWillBeRawPtr<HTMLCollection> HTMLTableRowElement::cells()
+RawPtr<HTMLCollection> HTMLTableRowElement::cells()
 {
     return ensureCachedCollection<HTMLCollection>(TRCells);
 }
diff --git a/third_party/WebKit/Source/core/html/HTMLTableRowElement.h b/third_party/WebKit/Source/core/html/HTMLTableRowElement.h
index 98136aa..ba1794a 100644
--- a/third_party/WebKit/Source/core/html/HTMLTableRowElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLTableRowElement.h
@@ -42,10 +42,10 @@
 
     int sectionRowIndex() const;
 
-    PassRefPtrWillBeRawPtr<HTMLElement> insertCell(int index, ExceptionState&);
+    RawPtr<HTMLElement> insertCell(int index, ExceptionState&);
     void deleteCell(int index, ExceptionState&);
 
-    PassRefPtrWillBeRawPtr<HTMLCollection> cells();
+    RawPtr<HTMLCollection> cells();
 
 private:
     explicit HTMLTableRowElement(Document&);
diff --git a/third_party/WebKit/Source/core/html/HTMLTableRowElementTest.cpp b/third_party/WebKit/Source/core/html/HTMLTableRowElementTest.cpp
index d6d661ee..29026f7 100644
--- a/third_party/WebKit/Source/core/html/HTMLTableRowElementTest.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLTableRowElementTest.cpp
@@ -18,8 +18,8 @@
 
 TEST(HTMLTableRowElementTest, rowIndex_notInTable)
 {
-    RefPtrWillBeRawPtr<Document> document = Document::create();
-    RefPtrWillBeRawPtr<HTMLTableRowElement> row =
+    RawPtr<Document> document = Document::create();
+    RawPtr<HTMLTableRowElement> row =
         HTMLTableRowElement::create(*document);
     EXPECT_EQ(-1, row->rowIndex())
         << "rows not in tables should have row index -1";
@@ -27,10 +27,10 @@
 
 TEST(HTMLTableRowElementTest, rowIndex_directChildOfTable)
 {
-    RefPtrWillBeRawPtr<Document> document = Document::create();
-    RefPtrWillBeRawPtr<HTMLTableElement> table =
+    RawPtr<Document> document = Document::create();
+    RawPtr<HTMLTableElement> table =
         HTMLTableElement::create(*document);
-    RefPtrWillBeRawPtr<HTMLTableRowElement> row =
+    RawPtr<HTMLTableRowElement> row =
         HTMLTableRowElement::create(*document);
     table->appendChild(row);
     EXPECT_EQ(0, row->rowIndex())
@@ -39,14 +39,14 @@
 
 TEST(HTMLTableRowElementTest, rowIndex_inUnrelatedElementInTable)
 {
-    RefPtrWillBeRawPtr<Document> document = Document::create();
-    RefPtrWillBeRawPtr<HTMLTableElement> table =
+    RawPtr<Document> document = Document::create();
+    RawPtr<HTMLTableElement> table =
         HTMLTableElement::create(*document);
     // Almost any element will do; what's pertinent is that this is not
     // THEAD, TBODY or TFOOT.
-    RefPtrWillBeRawPtr<HTMLParagraphElement> paragraph =
+    RawPtr<HTMLParagraphElement> paragraph =
         HTMLParagraphElement::create(*document);
-    RefPtrWillBeRawPtr<HTMLTableRowElement> row =
+    RawPtr<HTMLTableRowElement> row =
         HTMLTableRowElement::create(*document);
     table->appendChild(paragraph);
     paragraph->appendChild(row);
diff --git a/third_party/WebKit/Source/core/html/HTMLTableRowsCollection.cpp b/third_party/WebKit/Source/core/html/HTMLTableRowsCollection.cpp
index 0180ab3..cb22737 100644
--- a/third_party/WebKit/Source/core/html/HTMLTableRowsCollection.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLTableRowsCollection.cpp
@@ -130,10 +130,10 @@
     ASSERT(isHTMLTableElement(table));
 }
 
-PassRefPtrWillBeRawPtr<HTMLTableRowsCollection> HTMLTableRowsCollection::create(ContainerNode& table, CollectionType type)
+RawPtr<HTMLTableRowsCollection> HTMLTableRowsCollection::create(ContainerNode& table, CollectionType type)
 {
     ASSERT_UNUSED(type, type == TableRows);
-    return adoptRefWillBeNoop(new HTMLTableRowsCollection(table));
+    return new HTMLTableRowsCollection(table);
 }
 
 Element* HTMLTableRowsCollection::virtualItemAfter(Element* previous) const
diff --git a/third_party/WebKit/Source/core/html/HTMLTableRowsCollection.h b/third_party/WebKit/Source/core/html/HTMLTableRowsCollection.h
index 3b89dda..3ab55fd 100644
--- a/third_party/WebKit/Source/core/html/HTMLTableRowsCollection.h
+++ b/third_party/WebKit/Source/core/html/HTMLTableRowsCollection.h
@@ -39,7 +39,7 @@
 
 class HTMLTableRowsCollection final : public HTMLCollection {
 public:
-    static PassRefPtrWillBeRawPtr<HTMLTableRowsCollection> create(ContainerNode&, CollectionType);
+    static RawPtr<HTMLTableRowsCollection> create(ContainerNode&, CollectionType);
 
     HTMLTableRowElement* item(unsigned offset) const { return toHTMLTableRowElement(HTMLCollection::item(offset)); }
 
diff --git a/third_party/WebKit/Source/core/html/HTMLTableSectionElement.cpp b/third_party/WebKit/Source/core/html/HTMLTableSectionElement.cpp
index 89198c3..c3b7310 100644
--- a/third_party/WebKit/Source/core/html/HTMLTableSectionElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLTableSectionElement.cpp
@@ -53,16 +53,16 @@
 
 // these functions are rather slow, since we need to get the row at
 // the index... but they aren't used during usual HTML parsing anyway
-PassRefPtrWillBeRawPtr<HTMLElement> HTMLTableSectionElement::insertRow(int index, ExceptionState& exceptionState)
+RawPtr<HTMLElement> HTMLTableSectionElement::insertRow(int index, ExceptionState& exceptionState)
 {
-    RefPtrWillBeRawPtr<HTMLCollection> children = rows();
+    RawPtr<HTMLCollection> children = rows();
     int numRows = children ? static_cast<int>(children->length()) : 0;
     if (index < -1 || index > numRows) {
         exceptionState.throwDOMException(IndexSizeError, "The provided index (" + String::number(index) + " is outside the range [-1, " + String::number(numRows) + "].");
         return nullptr;
     }
 
-    RefPtrWillBeRawPtr<HTMLTableRowElement> row = HTMLTableRowElement::create(document());
+    RawPtr<HTMLTableRowElement> row = HTMLTableRowElement::create(document());
     if (numRows == index || index == -1)
         appendChild(row, exceptionState);
     else
@@ -72,7 +72,7 @@
 
 void HTMLTableSectionElement::deleteRow(int index, ExceptionState& exceptionState)
 {
-    RefPtrWillBeRawPtr<HTMLCollection> children = rows();
+    RawPtr<HTMLCollection> children = rows();
     int numRows = children ? (int)children->length() : 0;
     if (index == -1) {
         if (!numRows)
@@ -80,14 +80,14 @@
         index = numRows - 1;
     }
     if (index >= 0 && index < numRows) {
-        RefPtrWillBeRawPtr<Element> row = children->item(index);
+        RawPtr<Element> row = children->item(index);
         HTMLElement::removeChild(row.get(), exceptionState);
     } else {
         exceptionState.throwDOMException(IndexSizeError, "The provided index (" + String::number(index) + " is outside the range [-1, " + String::number(numRows) + "].");
     }
 }
 
-PassRefPtrWillBeRawPtr<HTMLCollection> HTMLTableSectionElement::rows()
+RawPtr<HTMLCollection> HTMLTableSectionElement::rows()
 {
     return ensureCachedCollection<HTMLCollection>(TSectionRows);
 }
diff --git a/third_party/WebKit/Source/core/html/HTMLTableSectionElement.h b/third_party/WebKit/Source/core/html/HTMLTableSectionElement.h
index 7ba5d53..aec5fdfb 100644
--- a/third_party/WebKit/Source/core/html/HTMLTableSectionElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLTableSectionElement.h
@@ -37,10 +37,10 @@
 public:
     DECLARE_ELEMENT_FACTORY_WITH_TAGNAME(HTMLTableSectionElement);
 
-    PassRefPtrWillBeRawPtr<HTMLElement> insertRow(int index, ExceptionState&);
+    RawPtr<HTMLElement> insertRow(int index, ExceptionState&);
     void deleteRow(int index, ExceptionState&);
 
-    PassRefPtrWillBeRawPtr<HTMLCollection> rows();
+    RawPtr<HTMLCollection> rows();
 
 private:
     HTMLTableSectionElement(const QualifiedName& tagName, Document&);
diff --git a/third_party/WebKit/Source/core/html/HTMLTagCollection.h b/third_party/WebKit/Source/core/html/HTMLTagCollection.h
index e42d78a..b7a56ea0 100644
--- a/third_party/WebKit/Source/core/html/HTMLTagCollection.h
+++ b/third_party/WebKit/Source/core/html/HTMLTagCollection.h
@@ -33,10 +33,10 @@
 // Collection that limits to a particular tag and whose rootNode is in an HTMLDocument.
 class HTMLTagCollection final : public TagCollection {
 public:
-    static PassRefPtrWillBeRawPtr<HTMLTagCollection> create(ContainerNode& rootNode, CollectionType type, const AtomicString& localName)
+    static RawPtr<HTMLTagCollection> create(ContainerNode& rootNode, CollectionType type, const AtomicString& localName)
     {
         ASSERT_UNUSED(type, type == HTMLTagCollectionType);
-        return adoptRefWillBeNoop(new HTMLTagCollection(rootNode, localName));
+        return new HTMLTagCollection(rootNode, localName);
     }
 
     bool elementMatches(const Element&) const;
diff --git a/third_party/WebKit/Source/core/html/HTMLTemplateElement.cpp b/third_party/WebKit/Source/core/html/HTMLTemplateElement.cpp
index 91ab92b..91070f6f 100644
--- a/third_party/WebKit/Source/core/html/HTMLTemplateElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLTemplateElement.cpp
@@ -61,12 +61,12 @@
     return m_content.get();
 }
 
-PassRefPtrWillBeRawPtr<Node> HTMLTemplateElement::cloneNode(bool deep)
+RawPtr<Node> HTMLTemplateElement::cloneNode(bool deep)
 {
     if (!deep)
         return cloneElementWithoutChildren();
 
-    RefPtrWillBeRawPtr<Node> clone = cloneElementWithChildren();
+    RawPtr<Node> clone = cloneElementWithChildren();
     if (m_content)
         content()->cloneChildNodes(toHTMLTemplateElement(clone.get())->content());
     return clone.release();
diff --git a/third_party/WebKit/Source/core/html/HTMLTemplateElement.h b/third_party/WebKit/Source/core/html/HTMLTemplateElement.h
index 2574ec1..5de1c4a 100644
--- a/third_party/WebKit/Source/core/html/HTMLTemplateElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLTemplateElement.h
@@ -48,12 +48,12 @@
     DocumentFragment* content() const;
 
 private:
-    PassRefPtrWillBeRawPtr<Node> cloneNode(bool deep) override;
+    RawPtr<Node> cloneNode(bool deep) override;
     void didMoveToNewDocument(Document& oldDocument) override;
 
     explicit HTMLTemplateElement(Document&);
 
-    mutable RefPtrWillBeMember<TemplateContentDocumentFragment> m_content;
+    mutable Member<TemplateContentDocumentFragment> m_content;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/html/HTMLTextAreaElement.cpp b/third_party/WebKit/Source/core/html/HTMLTextAreaElement.cpp
index e63808a4..2dcb395e 100644
--- a/third_party/WebKit/Source/core/html/HTMLTextAreaElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLTextAreaElement.cpp
@@ -88,9 +88,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<HTMLTextAreaElement> HTMLTextAreaElement::create(Document& document, HTMLFormElement* form)
+RawPtr<HTMLTextAreaElement> HTMLTextAreaElement::create(Document& document, HTMLFormElement* form)
 {
-    RefPtrWillBeRawPtr<HTMLTextAreaElement> textArea = adoptRefWillBeNoop(new HTMLTextAreaElement(document, form));
+    RawPtr<HTMLTextAreaElement> textArea = new HTMLTextAreaElement(document, form);
     textArea->ensureUserAgentShadowRoot();
     return textArea.release();
 }
@@ -333,9 +333,20 @@
 
 String HTMLTextAreaElement::sanitizeUserInputValue(const String& proposedValue, unsigned maxLength)
 {
-    if (maxLength > 0 && U16_IS_LEAD(proposedValue[maxLength - 1]))
-        --maxLength;
-    return proposedValue.left(maxLength);
+    unsigned submissionLength = 0;
+    unsigned i = 0;
+    for (; i < proposedValue.length(); ++i) {
+        submissionLength += proposedValue[i] == '\n' ? 2 : 1;
+        if (submissionLength == maxLength) {
+            ++i;
+            break;
+        }
+        if (submissionLength > maxLength)
+            break;
+    }
+    if (i > 0 && U16_IS_LEAD(proposedValue[i - 1]))
+        --i;
+    return proposedValue.left(i);
 }
 
 void HTMLTextAreaElement::updateValue() const
@@ -358,7 +369,7 @@
 
 void HTMLTextAreaElement::setValue(const String& value, TextFieldEventBehavior eventBehavior)
 {
-    RefPtrWillBeRawPtr<HTMLTextAreaElement> protector(this);
+    RawPtr<HTMLTextAreaElement> protector(this);
     setValueCommon(value, eventBehavior);
     m_isDirty = true;
     if (document().focusedElement() == this)
@@ -440,10 +451,10 @@
 
 void HTMLTextAreaElement::setDefaultValue(const String& defaultValue)
 {
-    RefPtrWillBeRawPtr<Node> protectFromMutationEvents(this);
+    RawPtr<Node> protectFromMutationEvents(this);
 
     // To preserve comments, remove only the text nodes, then add a single text node.
-    WillBeHeapVector<RefPtrWillBeMember<Node>> textNodes;
+    HeapVector<Member<Node>> textNodes;
     for (Node* n = firstChild(); n; n = n->nextSibling()) {
         if (n->isTextNode())
             textNodes.append(n);
@@ -634,7 +645,7 @@
         return;
     }
     if (!placeholder) {
-        RefPtrWillBeRawPtr<HTMLDivElement> newElement = HTMLDivElement::create(document());
+        RawPtr<HTMLDivElement> newElement = HTMLDivElement::create(document());
         placeholder = newElement.get();
         placeholder->setShadowPseudoId(AtomicString("-webkit-input-placeholder"));
         placeholder->setAttribute(idAttr, ShadowElementNames::placeholder());
diff --git a/third_party/WebKit/Source/core/html/HTMLTextAreaElement.h b/third_party/WebKit/Source/core/html/HTMLTextAreaElement.h
index 1bbd246f..b024456f 100644
--- a/third_party/WebKit/Source/core/html/HTMLTextAreaElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLTextAreaElement.h
@@ -24,6 +24,7 @@
 #ifndef HTMLTextAreaElement_h
 #define HTMLTextAreaElement_h
 
+#include "base/gtest_prod_util.h"
 #include "core/CoreExport.h"
 #include "core/html/HTMLTextFormControlElement.h"
 
@@ -35,7 +36,7 @@
 class CORE_EXPORT HTMLTextAreaElement final : public HTMLTextFormControlElement {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<HTMLTextAreaElement> create(Document&, HTMLFormElement*);
+    static RawPtr<HTMLTextAreaElement> create(Document&, HTMLFormElement*);
 
     unsigned cols() const { return m_cols; }
     unsigned rows() const { return m_rows; }
@@ -66,6 +67,7 @@
     void setRows(unsigned);
 
 private:
+    FRIEND_TEST_ALL_PREFIXES(HTMLTextAreaElementTest, SanitizeUserInputValue);
     HTMLTextAreaElement(Document&, HTMLFormElement*);
 
     enum WrapMethod { NoWrap, SoftWrap, HardWrap };
diff --git a/third_party/WebKit/Source/core/html/HTMLTextAreaElementTest.cpp b/third_party/WebKit/Source/core/html/HTMLTextAreaElementTest.cpp
new file mode 100644
index 0000000..c475bb9
--- /dev/null
+++ b/third_party/WebKit/Source/core/html/HTMLTextAreaElementTest.cpp
@@ -0,0 +1,32 @@
+// Copyright 2016 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 "core/html/HTMLTextAreaElement.h"
+
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace blink {
+
+TEST(HTMLTextAreaElementTest, SanitizeUserInputValue)
+{
+    UChar kLeadSurrogate = 0xD800;
+    EXPECT_EQ("", HTMLTextAreaElement::sanitizeUserInputValue("", 0));
+    EXPECT_EQ("", HTMLTextAreaElement::sanitizeUserInputValue("a", 0));
+    EXPECT_EQ("", HTMLTextAreaElement::sanitizeUserInputValue("\n", 0));
+    StringBuilder builder;
+    builder.append(kLeadSurrogate);
+    String leadSurrogate = builder.toString();
+    EXPECT_EQ("", HTMLTextAreaElement::sanitizeUserInputValue(leadSurrogate, 0));
+
+    EXPECT_EQ("", HTMLTextAreaElement::sanitizeUserInputValue("", 1));
+    EXPECT_EQ("", HTMLTextAreaElement::sanitizeUserInputValue(leadSurrogate, 1));
+    EXPECT_EQ("a", HTMLTextAreaElement::sanitizeUserInputValue("a", 1));
+    EXPECT_EQ("", HTMLTextAreaElement::sanitizeUserInputValue("\n", 1));
+    EXPECT_EQ("\n", HTMLTextAreaElement::sanitizeUserInputValue("\n", 2));
+
+    EXPECT_EQ("abc", HTMLTextAreaElement::sanitizeUserInputValue(String("abc") + leadSurrogate, 4));
+    EXPECT_EQ("a\nc", HTMLTextAreaElement::sanitizeUserInputValue("a\ncdef", 4));
+}
+
+} // namespace blink
diff --git a/third_party/WebKit/Source/core/html/HTMLTextFormControlElement.cpp b/third_party/WebKit/Source/core/html/HTMLTextFormControlElement.cpp
index 470ffe8..469e536 100644
--- a/third_party/WebKit/Source/core/html/HTMLTextFormControlElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLTextFormControlElement.cpp
@@ -409,7 +409,7 @@
     if (enclosingTextFormControl(indexPosition) != this)
         return 0;
     ASSERT(indexPosition.document());
-    RefPtrWillBeRawPtr<Range> range = Range::create(*indexPosition.document());
+    RawPtr<Range> range = Range::create(*indexPosition.document());
     range->setStart(innerEditorElement(), 0, ASSERT_NO_EXCEPTION);
     range->setEnd(indexPosition.computeContainerNode(), indexPosition.offsetInContainerNode(), ASSERT_NO_EXCEPTION);
     return TextIterator::rangeLength(range->startPosition(), range->endPosition());
@@ -505,7 +505,7 @@
     }
 }
 
-PassRefPtrWillBeRawPtr<Range> HTMLTextFormControlElement::selection() const
+RawPtr<Range> HTMLTextFormControlElement::selection() const
 {
     if (!layoutObject() || !isTextFormControl())
         return nullptr;
@@ -594,7 +594,7 @@
 
 void HTMLTextFormControlElement::scheduleSelectEvent()
 {
-    RefPtrWillBeRawPtr<Event> event = Event::createBubble(EventTypeNames::select);
+    RawPtr<Event> event = Event::createBubble(EventTypeNames::select);
     event->setTarget(this);
     document().enqueueUniqueAnimationFrameEvent(event.release());
 }
@@ -620,7 +620,7 @@
     return m_lastChangeWasUserEdit;
 }
 
-PassRefPtrWillBeRawPtr<Node> HTMLTextFormControlElement::createPlaceholderBreakElement() const
+RawPtr<Node> HTMLTextFormControlElement::createPlaceholderBreakElement() const
 {
     return HTMLBRElement::create(document());
 }
@@ -799,7 +799,7 @@
     ASSERT(!innerPosition.isAfterAnchor());
     HTMLElement* element = toHTMLElement(innerPosition.anchorNode());
     ASSERT(element);
-    RefPtrWillBeRawPtr<NodeList> childNodes = element->childNodes();
+    RawPtr<NodeList> childNodes = element->childNodes();
     if (!childNodes->length())
         return Position(element, 0);
 
@@ -829,7 +829,7 @@
 {
     StringBuilder concatTexts;
     Vector<unsigned> lengthList;
-    WillBeHeapVector<RawPtrWillBeMember<Text>> textList;
+    HeapVector<Member<Text>> textList;
 
     if (startPosition.anchorNode()->isTextNode())
         ASSERT(startPosition.isOffsetInAnchor());
diff --git a/third_party/WebKit/Source/core/html/HTMLTextFormControlElement.h b/third_party/WebKit/Source/core/html/HTMLTextFormControlElement.h
index 38627890..ef99a7e 100644
--- a/third_party/WebKit/Source/core/html/HTMLTextFormControlElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLTextFormControlElement.h
@@ -79,7 +79,7 @@
     virtual void setRangeText(const String& replacement, unsigned start, unsigned end, const String& selectionMode, ExceptionState&);
     void setSelectionRange(int start, int end, const String& direction);
     void setSelectionRange(int start, int end, TextFieldSelectionDirection = SelectionHasNoDirection, NeedToDispatchSelectEvent = DispatchSelectEvent, SelectionOption = ChangeSelection);
-    PassRefPtrWillBeRawPtr<Range> selection() const;
+    RawPtr<Range> selection() const;
 
     virtual bool supportsAutocapitalize() const = 0;
     virtual const AtomicString& defaultAutocapitalize() const = 0;
@@ -97,7 +97,7 @@
     bool lastChangeWasUserEdit() const;
     virtual void setInnerEditorValue(const String&);
     String innerEditorValue() const;
-    PassRefPtrWillBeRawPtr<Node> createPlaceholderBreakElement() const;
+    RawPtr<Node> createPlaceholderBreakElement() const;
 
     String directionForFormData() const;
 
diff --git a/third_party/WebKit/Source/core/html/HTMLTextFormControlElementTest.cpp b/third_party/WebKit/Source/core/html/HTMLTextFormControlElementTest.cpp
index f2ad8b4..93529b68 100644
--- a/third_party/WebKit/Source/core/html/HTMLTextFormControlElementTest.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLTextFormControlElementTest.cpp
@@ -41,9 +41,9 @@
     OwnPtr<SpellCheckerClient> m_spellCheckerClient;
     OwnPtr<DummyPageHolder> m_dummyPageHolder;
 
-    RefPtrWillBePersistent<HTMLDocument> m_document;
-    RefPtrWillBePersistent<HTMLTextFormControlElement> m_textControl;
-    RefPtrWillBePersistent<HTMLInputElement> m_input;
+    Persistent<HTMLDocument> m_document;
+    Persistent<HTMLTextFormControlElement> m_textControl;
+    Persistent<HTMLInputElement> m_input;
 };
 
 class DummySpellCheckerClient : public EmptySpellCheckerClient {
@@ -207,7 +207,7 @@
     document().frame()->selection().setSelection(newSelection, FrameSelection::CloseTyping | FrameSelection::ClearTypingStyle | FrameSelection::DoNotUpdateAppearance);
     ASSERT_EQ(3, input->selectionStart());
 
-    OwnPtrWillBePersistent<SpellChecker> spellChecker(SpellChecker::create(page().frame()));
+    Persistent<SpellChecker> spellChecker(SpellChecker::create(page().frame()));
     forceLayoutFlag();
     int startCount = layoutCount();
     spellChecker->respondToChangedSelection(oldSelection, FrameSelection::CloseTyping | FrameSelection::ClearTypingStyle);
diff --git a/third_party/WebKit/Source/core/html/HTMLTitleElement.cpp b/third_party/WebKit/Source/core/html/HTMLTitleElement.cpp
index e6d5b560..4466142 100644
--- a/third_party/WebKit/Source/core/html/HTMLTitleElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLTitleElement.cpp
@@ -79,7 +79,7 @@
 
 void HTMLTitleElement::setText(const String &value)
 {
-    RefPtrWillBeRawPtr<Node> protectFromMutationEvents(this);
+    RawPtr<Node> protectFromMutationEvents(this);
     ChildListMutationScope mutation(*this);
 
     {
diff --git a/third_party/WebKit/Source/core/html/HTMLTrackElement.h b/third_party/WebKit/Source/core/html/HTMLTrackElement.h
index 0d3d01b..5485a97 100644
--- a/third_party/WebKit/Source/core/html/HTMLTrackElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLTrackElement.h
@@ -89,8 +89,8 @@
 
     LoadableTextTrack* ensureTrack();
 
-    PersistentWillBeMember<LoadableTextTrack> m_track;
-    OwnPtrWillBeMember<TextTrackLoader> m_loader;
+    Member<LoadableTextTrack> m_track;
+    Member<TextTrackLoader> m_loader;
     Timer<HTMLTrackElement> m_loadTimer;
     KURL m_url;
 };
diff --git a/third_party/WebKit/Source/core/html/HTMLUnknownElement.h b/third_party/WebKit/Source/core/html/HTMLUnknownElement.h
index c9c1523..f181bbe 100644
--- a/third_party/WebKit/Source/core/html/HTMLUnknownElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLUnknownElement.h
@@ -37,9 +37,9 @@
 class HTMLUnknownElement final : public HTMLElement {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<HTMLUnknownElement> create(const QualifiedName& tagName, Document& document)
+    static RawPtr<HTMLUnknownElement> create(const QualifiedName& tagName, Document& document)
     {
-        return adoptRefWillBeNoop(new HTMLUnknownElement(tagName, document));
+        return new HTMLUnknownElement(tagName, document);
     }
 
 private:
diff --git a/third_party/WebKit/Source/core/html/HTMLVideoElement.cpp b/third_party/WebKit/Source/core/html/HTMLVideoElement.cpp
index 29533bc9..930f0884 100644
--- a/third_party/WebKit/Source/core/html/HTMLVideoElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLVideoElement.cpp
@@ -58,9 +58,9 @@
         m_defaultPosterURL = AtomicString(document.settings()->defaultVideoPosterURL());
 }
 
-PassRefPtrWillBeRawPtr<HTMLVideoElement> HTMLVideoElement::create(Document& document)
+RawPtr<HTMLVideoElement> HTMLVideoElement::create(Document& document)
 {
-    RefPtrWillBeRawPtr<HTMLVideoElement> video = adoptRefWillBeNoop(new HTMLVideoElement(document));
+    RawPtr<HTMLVideoElement> video = new HTMLVideoElement(document);
     video->ensureUserAgentShadowRoot();
     video->suspendIfNeeded();
     return video.release();
diff --git a/third_party/WebKit/Source/core/html/HTMLVideoElement.h b/third_party/WebKit/Source/core/html/HTMLVideoElement.h
index 64e664d3..f88b023 100644
--- a/third_party/WebKit/Source/core/html/HTMLVideoElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLVideoElement.h
@@ -55,7 +55,7 @@
 class CORE_EXPORT HTMLVideoElement final : public HTMLMediaElement, public CanvasImageSource, public ImageBitmapSource {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<HTMLVideoElement> create(Document&);
+    static RawPtr<HTMLVideoElement> create(Document&);
     DECLARE_VIRTUAL_TRACE();
 
     unsigned videoWidth() const;
@@ -114,7 +114,7 @@
     void didMoveToNewDocument(Document& oldDocument) override;
     void setDisplayMode(DisplayMode) override;
 
-    OwnPtrWillBeMember<HTMLImageLoader> m_imageLoader;
+    Member<HTMLImageLoader> m_imageLoader;
 
     AtomicString m_defaultPosterURL;
 };
diff --git a/third_party/WebKit/Source/core/html/HTMLVideoElementTest.cpp b/third_party/WebKit/Source/core/html/HTMLVideoElementTest.cpp
index 70a4498..deaabb85 100644
--- a/third_party/WebKit/Source/core/html/HTMLVideoElementTest.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLVideoElementTest.cpp
@@ -58,7 +58,7 @@
 
 class StubFrameLoaderClient : public EmptyFrameLoaderClient {
 public:
-    static PassOwnPtrWillBeRawPtr<StubFrameLoaderClient> create()
+    static RawPtr<StubFrameLoaderClient> create()
     {
         return adoptPtrWillBeNoop(new StubFrameLoaderClient);
     }
@@ -93,7 +93,7 @@
     }
 
     OwnPtr<DummyPageHolder> m_dummyPageHolder;
-    RefPtrWillBePersistent<HTMLVideoElement> m_video;
+    Persistent<HTMLVideoElement> m_video;
 };
 
 TEST_F(HTMLVideoElementTest, setBufferingStrategy_NonUserPause)
diff --git a/third_party/WebKit/Source/core/html/HTMLViewSourceDocument.cpp b/third_party/WebKit/Source/core/html/HTMLViewSourceDocument.cpp
index f543507..61670ce4 100644
--- a/third_party/WebKit/Source/core/html/HTMLViewSourceDocument.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLViewSourceDocument.cpp
@@ -60,27 +60,27 @@
     lockCompatibilityMode();
 }
 
-PassRefPtrWillBeRawPtr<DocumentParser> HTMLViewSourceDocument::createParser()
+RawPtr<DocumentParser> HTMLViewSourceDocument::createParser()
 {
     return HTMLViewSourceParser::create(*this, m_type);
 }
 
 void HTMLViewSourceDocument::createContainingTable()
 {
-    RefPtrWillBeRawPtr<HTMLHtmlElement> html = HTMLHtmlElement::create(*this);
+    RawPtr<HTMLHtmlElement> html = HTMLHtmlElement::create(*this);
     parserAppendChild(html);
-    RefPtrWillBeRawPtr<HTMLHeadElement> head = HTMLHeadElement::create(*this);
+    RawPtr<HTMLHeadElement> head = HTMLHeadElement::create(*this);
     html->parserAppendChild(head);
-    RefPtrWillBeRawPtr<HTMLBodyElement> body = HTMLBodyElement::create(*this);
+    RawPtr<HTMLBodyElement> body = HTMLBodyElement::create(*this);
     html->parserAppendChild(body);
 
     // Create a line gutter div that can be used to make sure the gutter extends down the height of the whole
     // document.
-    RefPtrWillBeRawPtr<HTMLDivElement> div = HTMLDivElement::create(*this);
+    RawPtr<HTMLDivElement> div = HTMLDivElement::create(*this);
     div->setAttribute(classAttr, "line-gutter-backdrop");
     body->parserAppendChild(div);
 
-    RefPtrWillBeRawPtr<HTMLTableElement> table = HTMLTableElement::create(*this);
+    RawPtr<HTMLTableElement> table = HTMLTableElement::create(*this);
     body->parserAppendChild(table);
     m_tbody = HTMLTableSectionElement::create(tbodyTag, *this);
     table->parserAppendChild(m_tbody);
@@ -178,14 +178,14 @@
     addText(source, "", annotation);
 }
 
-PassRefPtrWillBeRawPtr<Element> HTMLViewSourceDocument::addSpanWithClassName(const AtomicString& className)
+RawPtr<Element> HTMLViewSourceDocument::addSpanWithClassName(const AtomicString& className)
 {
     if (m_current == m_tbody) {
         addLine(className);
         return m_current;
     }
 
-    RefPtrWillBeRawPtr<HTMLSpanElement> span = HTMLSpanElement::create(*this);
+    RawPtr<HTMLSpanElement> span = HTMLSpanElement::create(*this);
     span->setAttribute(classAttr, className);
     m_current->parserAppendChild(span);
     return span.release();
@@ -194,11 +194,11 @@
 void HTMLViewSourceDocument::addLine(const AtomicString& className)
 {
     // Create a table row.
-    RefPtrWillBeRawPtr<HTMLTableRowElement> trow = HTMLTableRowElement::create(*this);
+    RawPtr<HTMLTableRowElement> trow = HTMLTableRowElement::create(*this);
     m_tbody->parserAppendChild(trow);
 
     // Create a cell that will hold the line number (it is generated in the stylesheet using counters).
-    RefPtrWillBeRawPtr<HTMLTableCellElement> td = HTMLTableCellElement::create(tdTag, *this);
+    RawPtr<HTMLTableCellElement> td = HTMLTableCellElement::create(tdTag, *this);
     td->setAttribute(classAttr, "line-number");
     td->setIntegralAttribute(valueAttr, ++m_lineNumber);
     trow->parserAppendChild(td);
@@ -220,7 +220,7 @@
 void HTMLViewSourceDocument::finishLine()
 {
     if (!m_current->hasChildren()) {
-        RefPtrWillBeRawPtr<HTMLBRElement> br = HTMLBRElement::create(*this);
+        RawPtr<HTMLBRElement> br = HTMLBRElement::create(*this);
         m_current->parserAppendChild(br);
     }
     m_current = m_tbody;
@@ -245,7 +245,7 @@
             finishLine();
             continue;
         }
-        RefPtrWillBeRawPtr<Element> oldElement = m_current;
+        RawPtr<Element> oldElement = m_current;
         maybeAddSpanForAnnotation(annotation);
         m_current->parserAppendChild(Text::create(*this, substring));
         m_current = oldElement;
@@ -273,21 +273,21 @@
     return end;
 }
 
-PassRefPtrWillBeRawPtr<Element> HTMLViewSourceDocument::addBase(const AtomicString& href)
+RawPtr<Element> HTMLViewSourceDocument::addBase(const AtomicString& href)
 {
-    RefPtrWillBeRawPtr<HTMLBaseElement> base = HTMLBaseElement::create(*this);
+    RawPtr<HTMLBaseElement> base = HTMLBaseElement::create(*this);
     base->setAttribute(hrefAttr, href);
     m_current->parserAppendChild(base);
     return base.release();
 }
 
-PassRefPtrWillBeRawPtr<Element> HTMLViewSourceDocument::addLink(const AtomicString& url, bool isAnchor)
+RawPtr<Element> HTMLViewSourceDocument::addLink(const AtomicString& url, bool isAnchor)
 {
     if (m_current == m_tbody)
         addLine("html-tag");
 
     // Now create a link for the attribute value instead of a span.
-    RefPtrWillBeRawPtr<HTMLAnchorElement> anchor = HTMLAnchorElement::create(*this);
+    RawPtr<HTMLAnchorElement> anchor = HTMLAnchorElement::create(*this);
     const char* classValue;
     if (isAnchor)
         classValue = "html-attribute-value html-external-link";
diff --git a/third_party/WebKit/Source/core/html/HTMLViewSourceDocument.h b/third_party/WebKit/Source/core/html/HTMLViewSourceDocument.h
index a088030b..8bce32af 100644
--- a/third_party/WebKit/Source/core/html/HTMLViewSourceDocument.h
+++ b/third_party/WebKit/Source/core/html/HTMLViewSourceDocument.h
@@ -40,9 +40,9 @@
         AnnotateSourceAsXSS
     };
 
-    static PassRefPtrWillBeRawPtr<HTMLViewSourceDocument> create(const DocumentInit& initializer, const String& mimeType)
+    static RawPtr<HTMLViewSourceDocument> create(const DocumentInit& initializer, const String& mimeType)
     {
-        return adoptRefWillBeNoop(new HTMLViewSourceDocument(initializer, mimeType));
+        return new HTMLViewSourceDocument(initializer, mimeType);
     }
 
     void addSource(const String&, HTMLToken&, SourceAnnotation);
@@ -56,7 +56,7 @@
 private:
     HTMLViewSourceDocument(const DocumentInit&, const String& mimeType);
 
-    PassRefPtrWillBeRawPtr<DocumentParser> createParser() override;
+    RawPtr<DocumentParser> createParser() override;
 
     void processDoctypeToken(const String& source, HTMLToken&);
     void processEndOfFileToken(const String& source, HTMLToken&);
@@ -65,20 +65,20 @@
     void processCharacterToken(const String& source, HTMLToken&, SourceAnnotation);
 
     void createContainingTable();
-    PassRefPtrWillBeRawPtr<Element> addSpanWithClassName(const AtomicString&);
+    RawPtr<Element> addSpanWithClassName(const AtomicString&);
     void addLine(const AtomicString& className);
     void finishLine();
     void addText(const String& text, const AtomicString& className, SourceAnnotation = AnnotateSourceAsSafe);
     int addRange(const String& source, int start, int end, const AtomicString& className, bool isLink = false, bool isAnchor = false, const AtomicString& link = nullAtom);
     void maybeAddSpanForAnnotation(SourceAnnotation);
 
-    PassRefPtrWillBeRawPtr<Element> addLink(const AtomicString& url, bool isAnchor);
-    PassRefPtrWillBeRawPtr<Element> addBase(const AtomicString& href);
+    RawPtr<Element> addLink(const AtomicString& url, bool isAnchor);
+    RawPtr<Element> addBase(const AtomicString& href);
 
     String m_type;
-    RefPtrWillBeMember<Element> m_current;
-    RefPtrWillBeMember<HTMLTableSectionElement> m_tbody;
-    RefPtrWillBeMember<HTMLTableCellElement> m_td;
+    Member<Element> m_current;
+    Member<HTMLTableSectionElement> m_tbody;
+    Member<HTMLTableCellElement> m_td;
     int m_lineNumber;
 };
 
diff --git a/third_party/WebKit/Source/core/html/ImageDocument.cpp b/third_party/WebKit/Source/core/html/ImageDocument.cpp
index daf22dc..80c96402 100644
--- a/third_party/WebKit/Source/core/html/ImageDocument.cpp
+++ b/third_party/WebKit/Source/core/html/ImageDocument.cpp
@@ -57,9 +57,9 @@
 
 class ImageEventListener : public EventListener {
 public:
-    static PassRefPtrWillBeRawPtr<ImageEventListener> create(ImageDocument* document)
+    static RawPtr<ImageEventListener> create(ImageDocument* document)
     {
-        return adoptRefWillBeNoop(new ImageEventListener(document));
+        return new ImageEventListener(document);
     }
     static const ImageEventListener* cast(const EventListener* listener)
     {
@@ -85,14 +85,14 @@
 
     virtual void handleEvent(ExecutionContext*, Event*);
 
-    RawPtrWillBeMember<ImageDocument> m_doc;
+    Member<ImageDocument> m_doc;
 };
 
 class ImageDocumentParser : public RawDataDocumentParser {
 public:
-    static PassRefPtrWillBeRawPtr<ImageDocumentParser> create(ImageDocument* document)
+    static RawPtr<ImageDocumentParser> create(ImageDocument* document)
     {
-        return adoptRefWillBeNoop(new ImageDocumentParser(document));
+        return new ImageDocumentParser(document);
     }
 
     ImageDocument* document() const
@@ -196,14 +196,14 @@
     lockCompatibilityMode();
 }
 
-PassRefPtrWillBeRawPtr<DocumentParser> ImageDocument::createParser()
+RawPtr<DocumentParser> ImageDocument::createParser()
 {
     return ImageDocumentParser::create(this);
 }
 
 void ImageDocument::createDocumentStructure()
 {
-    RefPtrWillBeRawPtr<HTMLHtmlElement> rootElement = HTMLHtmlElement::create(*this);
+    RawPtr<HTMLHtmlElement> rootElement = HTMLHtmlElement::create(*this);
     appendChild(rootElement);
     rootElement->insertedByParser();
 
@@ -212,13 +212,13 @@
     if (isStopped())
         return; // runScriptsAtDocumentElementAvailable can detach the frame.
 
-    RefPtrWillBeRawPtr<HTMLHeadElement> head = HTMLHeadElement::create(*this);
-    RefPtrWillBeRawPtr<HTMLMetaElement> meta = HTMLMetaElement::create(*this);
+    RawPtr<HTMLHeadElement> head = HTMLHeadElement::create(*this);
+    RawPtr<HTMLMetaElement> meta = HTMLMetaElement::create(*this);
     meta->setAttribute(nameAttr, "viewport");
     meta->setAttribute(contentAttr, "width=device-width, minimum-scale=0.1");
     head->appendChild(meta);
 
-    RefPtrWillBeRawPtr<HTMLBodyElement> body = HTMLBodyElement::create(*this);
+    RawPtr<HTMLBodyElement> body = HTMLBodyElement::create(*this);
     body->setAttribute(styleAttr, "margin: 0px;");
 
     frame()->loader().client()->dispatchWillInsertBody();
@@ -233,7 +233,7 @@
 
     if (shouldShrinkToFit()) {
         // Add event listeners
-        RefPtrWillBeRawPtr<EventListener> listener = ImageEventListener::create(this);
+        RawPtr<EventListener> listener = ImageEventListener::create(this);
         if (LocalDOMWindow* domWindow = this->domWindow())
             domWindow->addEventListener("resize", listener, false);
         if (m_shrinkToFitMode == Desktop)
diff --git a/third_party/WebKit/Source/core/html/ImageDocument.h b/third_party/WebKit/Source/core/html/ImageDocument.h
index da28cd1c..b42aaec 100644
--- a/third_party/WebKit/Source/core/html/ImageDocument.h
+++ b/third_party/WebKit/Source/core/html/ImageDocument.h
@@ -35,9 +35,9 @@
 
 class CORE_EXPORT ImageDocument final : public HTMLDocument {
 public:
-    static PassRefPtrWillBeRawPtr<ImageDocument> create(const DocumentInit& initializer = DocumentInit())
+    static RawPtr<ImageDocument> create(const DocumentInit& initializer = DocumentInit())
     {
-        return adoptRefWillBeNoop(new ImageDocument(initializer));
+        return new ImageDocument(initializer);
     }
 
     enum ScaleType {
@@ -57,7 +57,7 @@
 private:
     explicit ImageDocument(const DocumentInit&);
 
-    PassRefPtrWillBeRawPtr<DocumentParser> createParser() override;
+    RawPtr<DocumentParser> createParser() override;
 #if !ENABLE(OILPAN)
     void dispose() override;
 #endif
@@ -71,7 +71,7 @@
     bool shouldShrinkToFit() const;
     float scale() const;
 
-    RefPtrWillBeMember<HTMLImageElement> m_imageElement;
+    Member<HTMLImageElement> m_imageElement;
 
     // Whether enough of the image has been loaded to determine its size
     bool m_imageSizeIsKnown;
diff --git a/third_party/WebKit/Source/core/html/LabelableElement.cpp b/third_party/WebKit/Source/core/html/LabelableElement.cpp
index 48678edd..b56577d5 100644
--- a/third_party/WebKit/Source/core/html/LabelableElement.cpp
+++ b/third_party/WebKit/Source/core/html/LabelableElement.cpp
@@ -38,7 +38,7 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<LabelsNodeList> LabelableElement::labels()
+RawPtr<LabelsNodeList> LabelableElement::labels()
 {
     if (!supportLabels())
         return nullptr;
diff --git a/third_party/WebKit/Source/core/html/LabelableElement.h b/third_party/WebKit/Source/core/html/LabelableElement.h
index 175d2779..92854ba0 100644
--- a/third_party/WebKit/Source/core/html/LabelableElement.h
+++ b/third_party/WebKit/Source/core/html/LabelableElement.h
@@ -43,7 +43,7 @@
 class CORE_EXPORT LabelableElement : public HTMLElement {
 public:
     ~LabelableElement() override;
-    PassRefPtrWillBeRawPtr<LabelsNodeList> labels();
+    RawPtr<LabelsNodeList> labels();
     virtual bool supportLabels() const { return false; }
 
     DECLARE_VIRTUAL_TRACE();
diff --git a/third_party/WebKit/Source/core/html/LabelsNodeList.h b/third_party/WebKit/Source/core/html/LabelsNodeList.h
index 1999159..630f65cb 100644
--- a/third_party/WebKit/Source/core/html/LabelsNodeList.h
+++ b/third_party/WebKit/Source/core/html/LabelsNodeList.h
@@ -32,10 +32,10 @@
 
 class LabelsNodeList final : public LiveNodeList {
 public:
-    static PassRefPtrWillBeRawPtr<LabelsNodeList> create(ContainerNode& ownerNode, CollectionType type)
+    static RawPtr<LabelsNodeList> create(ContainerNode& ownerNode, CollectionType type)
     {
         ASSERT_UNUSED(type, type == LabelsNodeListType);
-        return adoptRefWillBeNoop(new LabelsNodeList(ownerNode));
+        return new LabelsNodeList(ownerNode);
     }
 
     virtual ~LabelsNodeList();
diff --git a/third_party/WebKit/Source/core/html/LinkManifest.cpp b/third_party/WebKit/Source/core/html/LinkManifest.cpp
index 2e80c5c..2cbe2a4c 100644
--- a/third_party/WebKit/Source/core/html/LinkManifest.cpp
+++ b/third_party/WebKit/Source/core/html/LinkManifest.cpp
@@ -11,9 +11,9 @@
 
 namespace blink {
 
-PassOwnPtrWillBeRawPtr<LinkManifest> LinkManifest::create(HTMLLinkElement* owner)
+RawPtr<LinkManifest> LinkManifest::create(HTMLLinkElement* owner)
 {
-    return adoptPtrWillBeNoop(new LinkManifest(owner));
+    return new LinkManifest(owner);
 }
 
 LinkManifest::LinkManifest(HTMLLinkElement* owner)
diff --git a/third_party/WebKit/Source/core/html/LinkManifest.h b/third_party/WebKit/Source/core/html/LinkManifest.h
index 1b0a70b..7b1ddcb 100644
--- a/third_party/WebKit/Source/core/html/LinkManifest.h
+++ b/third_party/WebKit/Source/core/html/LinkManifest.h
@@ -15,10 +15,9 @@
 class HTMLLinkElement;
 
 class LinkManifest final : public LinkResource {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(LinkManifest);
 public:
 
-    static PassOwnPtrWillBeRawPtr<LinkManifest> create(HTMLLinkElement* owner);
+    static RawPtr<LinkManifest> create(HTMLLinkElement* owner);
 
     ~LinkManifest() override;
 
diff --git a/third_party/WebKit/Source/core/html/LinkResource.h b/third_party/WebKit/Source/core/html/LinkResource.h
index 07c983c..2be43aa 100644
--- a/third_party/WebKit/Source/core/html/LinkResource.h
+++ b/third_party/WebKit/Source/core/html/LinkResource.h
@@ -42,8 +42,8 @@
 class HTMLLinkElement;
 class LocalFrame;
 
-class CORE_EXPORT LinkResource : public NoBaseWillBeGarbageCollectedFinalized<LinkResource>  {
-    WTF_MAKE_NONCOPYABLE(LinkResource); USING_FAST_MALLOC_WILL_BE_REMOVED(LinkResource);
+class CORE_EXPORT LinkResource : public GarbageCollectedFinalized<LinkResource>  {
+    WTF_MAKE_NONCOPYABLE(LinkResource);
 public:
     enum LinkResourceType {
         Style,
@@ -67,7 +67,7 @@
     DECLARE_VIRTUAL_TRACE();
 
 protected:
-    RawPtrWillBeMember<HTMLLinkElement> m_owner;
+    Member<HTMLLinkElement> m_owner;
 };
 
 class LinkRequestBuilder {
@@ -81,7 +81,7 @@
     FetchRequest build(bool lowPriority) const;
 
 private:
-    RawPtrWillBeMember<HTMLLinkElement> m_owner;
+    Member<HTMLLinkElement> m_owner;
     KURL m_url;
     AtomicString m_charset;
 };
diff --git a/third_party/WebKit/Source/core/html/MediaDocument.cpp b/third_party/WebKit/Source/core/html/MediaDocument.cpp
index 3435ebd..f5e4963 100644
--- a/third_party/WebKit/Source/core/html/MediaDocument.cpp
+++ b/third_party/WebKit/Source/core/html/MediaDocument.cpp
@@ -49,9 +49,9 @@
 // FIXME: Share more code with PluginDocumentParser.
 class MediaDocumentParser : public RawDataDocumentParser {
 public:
-    static PassRefPtrWillBeRawPtr<MediaDocumentParser> create(MediaDocument* document)
+    static RawPtr<MediaDocumentParser> create(MediaDocument* document)
     {
-        return adoptRefWillBeNoop(new MediaDocumentParser(document));
+        return new MediaDocumentParser(document);
     }
 
 private:
@@ -71,7 +71,7 @@
 void MediaDocumentParser::createDocumentStructure()
 {
     ASSERT(document());
-    RefPtrWillBeRawPtr<HTMLHtmlElement> rootElement = HTMLHtmlElement::create(*document());
+    RawPtr<HTMLHtmlElement> rootElement = HTMLHtmlElement::create(*document());
     rootElement->insertedByParser();
     document()->appendChild(rootElement);
 
@@ -80,18 +80,18 @@
     if (isDetached())
         return; // runScriptsAtDocumentElementAvailable can detach the frame.
 
-    RefPtrWillBeRawPtr<HTMLHeadElement> head = HTMLHeadElement::create(*document());
-    RefPtrWillBeRawPtr<HTMLMetaElement> meta = HTMLMetaElement::create(*document());
+    RawPtr<HTMLHeadElement> head = HTMLHeadElement::create(*document());
+    RawPtr<HTMLMetaElement> meta = HTMLMetaElement::create(*document());
     meta->setAttribute(nameAttr, "viewport");
     meta->setAttribute(contentAttr, "width=device-width");
     head->appendChild(meta.release());
 
-    RefPtrWillBeRawPtr<HTMLVideoElement> media = HTMLVideoElement::create(*document());
+    RawPtr<HTMLVideoElement> media = HTMLVideoElement::create(*document());
     media->setAttribute(controlsAttr, "");
     media->setAttribute(autoplayAttr, "");
     media->setAttribute(nameAttr, "media");
 
-    RefPtrWillBeRawPtr<HTMLSourceElement> source = HTMLSourceElement::create(*document());
+    RawPtr<HTMLSourceElement> source = HTMLSourceElement::create(*document());
     source->setSrc(document()->url());
 
     if (DocumentLoader* loader = document()->loader())
@@ -99,7 +99,7 @@
 
     media->appendChild(source.release());
 
-    RefPtrWillBeRawPtr<HTMLBodyElement> body = HTMLBodyElement::create(*document());
+    RawPtr<HTMLBodyElement> body = HTMLBodyElement::create(*document());
     body->appendChild(media.release());
 
     rootElement->appendChild(head.release());
@@ -128,7 +128,7 @@
     lockCompatibilityMode();
 }
 
-PassRefPtrWillBeRawPtr<DocumentParser> MediaDocument::createParser()
+RawPtr<DocumentParser> MediaDocument::createParser()
 {
     return MediaDocumentParser::create(this);
 }
diff --git a/third_party/WebKit/Source/core/html/MediaDocument.h b/third_party/WebKit/Source/core/html/MediaDocument.h
index 4d6700e9..75ace73 100644
--- a/third_party/WebKit/Source/core/html/MediaDocument.h
+++ b/third_party/WebKit/Source/core/html/MediaDocument.h
@@ -32,15 +32,15 @@
 
 class MediaDocument final : public HTMLDocument {
 public:
-    static PassRefPtrWillBeRawPtr<MediaDocument> create(const DocumentInit& initializer = DocumentInit())
+    static RawPtr<MediaDocument> create(const DocumentInit& initializer = DocumentInit())
     {
-        return adoptRefWillBeNoop(new MediaDocument(initializer));
+        return new MediaDocument(initializer);
     }
 
 private:
     MediaDocument(const DocumentInit&);
 
-    PassRefPtrWillBeRawPtr<DocumentParser> createParser() override;
+    RawPtr<DocumentParser> createParser() override;
 
     void defaultEventHandler(Event*) override;
 };
diff --git a/third_party/WebKit/Source/core/html/PluginDocument.cpp b/third_party/WebKit/Source/core/html/PluginDocument.cpp
index 4dc2ec5..9041b93 100644
--- a/third_party/WebKit/Source/core/html/PluginDocument.cpp
+++ b/third_party/WebKit/Source/core/html/PluginDocument.cpp
@@ -45,9 +45,9 @@
 // FIXME: Share more code with MediaDocumentParser.
 class PluginDocumentParser : public RawDataDocumentParser {
 public:
-    static PassRefPtrWillBeRawPtr<PluginDocumentParser> create(PluginDocument* document)
+    static RawPtr<PluginDocumentParser> create(PluginDocument* document)
     {
-        return adoptRefWillBeNoop(new PluginDocumentParser(document));
+        return new PluginDocumentParser(document);
     }
 
     DEFINE_INLINE_VIRTUAL_TRACE()
@@ -71,7 +71,7 @@
 
     PluginView* pluginView() const;
 
-    RefPtrWillBeMember<HTMLEmbedElement> m_embedElement;
+    Member<HTMLEmbedElement> m_embedElement;
 };
 
 void PluginDocumentParser::createDocumentStructure()
@@ -89,7 +89,7 @@
     if (!frame->settings() || !frame->loader().allowPlugins(NotAboutToInstantiatePlugin))
         return;
 
-    RefPtrWillBeRawPtr<HTMLHtmlElement> rootElement = HTMLHtmlElement::create(*document());
+    RawPtr<HTMLHtmlElement> rootElement = HTMLHtmlElement::create(*document());
     rootElement->insertedByParser();
     document()->appendChild(rootElement);
     frame->loader().dispatchDocumentElementAvailable();
@@ -97,7 +97,7 @@
     if (isStopped())
         return; // runScriptsAtDocumentElementAvailable can detach the frame.
 
-    RefPtrWillBeRawPtr<HTMLBodyElement> body = HTMLBodyElement::create(*document());
+    RawPtr<HTMLBodyElement> body = HTMLBodyElement::create(*document());
     body->setAttribute(styleAttr, "background-color: rgb(38,38,38); height: 100%; width: 100%; overflow: hidden; margin: 0");
     rootElement->appendChild(body);
     if (isStopped())
@@ -168,7 +168,7 @@
     lockCompatibilityMode();
 }
 
-PassRefPtrWillBeRawPtr<DocumentParser> PluginDocument::createParser()
+RawPtr<DocumentParser> PluginDocument::createParser()
 {
     return PluginDocumentParser::create(this);
 }
diff --git a/third_party/WebKit/Source/core/html/PluginDocument.h b/third_party/WebKit/Source/core/html/PluginDocument.h
index 174d000..5deb9dc 100644
--- a/third_party/WebKit/Source/core/html/PluginDocument.h
+++ b/third_party/WebKit/Source/core/html/PluginDocument.h
@@ -35,9 +35,9 @@
 
 class CORE_EXPORT PluginDocument final : public HTMLDocument {
 public:
-    static PassRefPtrWillBeRawPtr<PluginDocument> create(const DocumentInit& initializer = DocumentInit())
+    static RawPtr<PluginDocument> create(const DocumentInit& initializer = DocumentInit())
     {
-        return adoptRefWillBeNoop(new PluginDocument(initializer));
+        return new PluginDocument(initializer);
     }
 
     void setPluginNode(Node* pluginNode) { m_pluginNode = pluginNode; }
@@ -52,9 +52,9 @@
 private:
     explicit PluginDocument(const DocumentInit&);
 
-    PassRefPtrWillBeRawPtr<DocumentParser> createParser() override;
+    RawPtr<DocumentParser> createParser() override;
 
-    RefPtrWillBeMember<Node> m_pluginNode;
+    Member<Node> m_pluginNode;
 };
 
 DEFINE_DOCUMENT_TYPE_CASTS(PluginDocument);
diff --git a/third_party/WebKit/Source/core/html/PublicURLManager.cpp b/third_party/WebKit/Source/core/html/PublicURLManager.cpp
index bd5524e03..eb15fe0 100644
--- a/third_party/WebKit/Source/core/html/PublicURLManager.cpp
+++ b/third_party/WebKit/Source/core/html/PublicURLManager.cpp
@@ -34,9 +34,9 @@
 
 namespace blink {
 
-PassOwnPtrWillBeRawPtr<PublicURLManager> PublicURLManager::create(ExecutionContext* context)
+RawPtr<PublicURLManager> PublicURLManager::create(ExecutionContext* context)
 {
-    OwnPtrWillBeRawPtr<PublicURLManager> publicURLManager = adoptPtrWillBeNoop(new PublicURLManager(context));
+    RawPtr<PublicURLManager> publicURLManager = new PublicURLManager(context);
     publicURLManager->suspendIfNeeded();
     return publicURLManager.release();
 }
diff --git a/third_party/WebKit/Source/core/html/PublicURLManager.h b/third_party/WebKit/Source/core/html/PublicURLManager.h
index 5203217e..fa87c834 100644
--- a/third_party/WebKit/Source/core/html/PublicURLManager.h
+++ b/third_party/WebKit/Source/core/html/PublicURLManager.h
@@ -41,11 +41,10 @@
 class URLRegistry;
 class URLRegistrable;
 
-class PublicURLManager final : public NoBaseWillBeGarbageCollectedFinalized<PublicURLManager>, public ActiveDOMObject {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(PublicURLManager);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(PublicURLManager);
+class PublicURLManager final : public GarbageCollectedFinalized<PublicURLManager>, public ActiveDOMObject {
+    USING_GARBAGE_COLLECTED_MIXIN(PublicURLManager);
 public:
-    static PassOwnPtrWillBeRawPtr<PublicURLManager> create(ExecutionContext*);
+    static RawPtr<PublicURLManager> create(ExecutionContext*);
 
     void registerURL(SecurityOrigin*, const KURL&, URLRegistrable*, const String& uuid = String());
     void revoke(const KURL&);
diff --git a/third_party/WebKit/Source/core/html/RadioNodeList.h b/third_party/WebKit/Source/core/html/RadioNodeList.h
index 1485e215..58f4f82 100644
--- a/third_party/WebKit/Source/core/html/RadioNodeList.h
+++ b/third_party/WebKit/Source/core/html/RadioNodeList.h
@@ -35,10 +35,10 @@
 class RadioNodeList final : public LiveNodeList {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<RadioNodeList> create(ContainerNode& ownerNode, CollectionType type, const AtomicString& name)
+    static RawPtr<RadioNodeList> create(ContainerNode& ownerNode, CollectionType type, const AtomicString& name)
     {
         ASSERT_UNUSED(type, type == RadioNodeListType || type == RadioImgNodeListType);
-        return adoptRefWillBeNoop(new RadioNodeList(ownerNode, name, type));
+        return new RadioNodeList(ownerNode, name, type);
     }
 
     virtual ~RadioNodeList();
diff --git a/third_party/WebKit/Source/core/html/RelList.h b/third_party/WebKit/Source/core/html/RelList.h
index a34a18e..87fcd89 100644
--- a/third_party/WebKit/Source/core/html/RelList.h
+++ b/third_party/WebKit/Source/core/html/RelList.h
@@ -14,9 +14,9 @@
 
 class RelList final : public DOMTokenList {
 public:
-    static PassRefPtrWillBeRawPtr<RelList> create(Element* element)
+    static RawPtr<RelList> create(Element* element)
     {
-        return adoptRefWillBeNoop(new RelList(element));
+        return new RelList(element);
     }
 
 #if !ENABLE(OILPAN)
@@ -44,7 +44,7 @@
 
     bool validateTokenValue(const AtomicString&, ExceptionState&) const override;
 
-    RawPtrWillBeMember<Element> m_element;
+    Member<Element> m_element;
     SpaceSplitString m_relValues;
 };
 
diff --git a/third_party/WebKit/Source/core/html/TextDocument.cpp b/third_party/WebKit/Source/core/html/TextDocument.cpp
index 561b323..91a9988 100644
--- a/third_party/WebKit/Source/core/html/TextDocument.cpp
+++ b/third_party/WebKit/Source/core/html/TextDocument.cpp
@@ -35,7 +35,7 @@
     lockCompatibilityMode();
 }
 
-PassRefPtrWillBeRawPtr<DocumentParser> TextDocument::createParser()
+RawPtr<DocumentParser> TextDocument::createParser()
 {
     return TextDocumentParser::create(*this, getParserSynchronizationPolicy());
 }
diff --git a/third_party/WebKit/Source/core/html/TextDocument.h b/third_party/WebKit/Source/core/html/TextDocument.h
index 4bede545..f16325ba 100644
--- a/third_party/WebKit/Source/core/html/TextDocument.h
+++ b/third_party/WebKit/Source/core/html/TextDocument.h
@@ -31,15 +31,15 @@
 
 class TextDocument final : public HTMLDocument {
 public:
-    static PassRefPtrWillBeRawPtr<TextDocument> create(const DocumentInit& initializer = DocumentInit())
+    static RawPtr<TextDocument> create(const DocumentInit& initializer = DocumentInit())
     {
-        return adoptRefWillBeNoop(new TextDocument(initializer));
+        return new TextDocument(initializer);
     }
 
 private:
     TextDocument(const DocumentInit&);
 
-    PassRefPtrWillBeRawPtr<DocumentParser> createParser() override;
+    RawPtr<DocumentParser> createParser() override;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/html/ValidityState.h b/third_party/WebKit/Source/core/html/ValidityState.h
index 23ff220..38b9a7ff 100644
--- a/third_party/WebKit/Source/core/html/ValidityState.h
+++ b/third_party/WebKit/Source/core/html/ValidityState.h
@@ -30,14 +30,13 @@
 
 namespace blink {
 
-class ValidityState final : public NoBaseWillBeGarbageCollectedFinalized<ValidityState>, public ScriptWrappable {
+class ValidityState final : public GarbageCollectedFinalized<ValidityState>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
-    USING_FAST_MALLOC_WILL_BE_REMOVED(ValidityState);
     WTF_MAKE_NONCOPYABLE(ValidityState);
 public:
-    static PassOwnPtrWillBeRawPtr<ValidityState> create(FormAssociatedElement* control)
+    static RawPtr<ValidityState> create(FormAssociatedElement* control)
     {
-        return adoptPtrWillBeNoop(new ValidityState(control));
+        return new ValidityState(control);
     }
     DEFINE_INLINE_TRACE() { visitor->trace(m_control); }
 
@@ -66,7 +65,7 @@
     explicit ValidityState(FormAssociatedElement* control)
         : m_control(control) { }
 
-    RawPtrWillBeMember<FormAssociatedElement> m_control;
+    Member<FormAssociatedElement> m_control;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/html/WindowNameCollection.h b/third_party/WebKit/Source/core/html/WindowNameCollection.h
index 4513690..cafe6b0e 100644
--- a/third_party/WebKit/Source/core/html/WindowNameCollection.h
+++ b/third_party/WebKit/Source/core/html/WindowNameCollection.h
@@ -11,10 +11,10 @@
 
 class WindowNameCollection final : public HTMLNameCollection {
 public:
-    static PassRefPtrWillBeRawPtr<WindowNameCollection> create(ContainerNode& document, CollectionType type, const AtomicString& name)
+    static RawPtr<WindowNameCollection> create(ContainerNode& document, CollectionType type, const AtomicString& name)
     {
         ASSERT_UNUSED(type, type == WindowNamedItems);
-        return adoptRefWillBeNoop(new WindowNameCollection(document, name));
+        return new WindowNameCollection(document, name);
     }
 
     bool elementMatches(const Element&) const;
diff --git a/third_party/WebKit/Source/core/html/canvas/CanvasFontCache.cpp b/third_party/WebKit/Source/core/html/canvas/CanvasFontCache.cpp
index e0a3182..dcd35037c 100644
--- a/third_party/WebKit/Source/core/html/canvas/CanvasFontCache.cpp
+++ b/third_party/WebKit/Source/core/html/canvas/CanvasFontCache.cpp
@@ -81,7 +81,7 @@
 
 MutableStylePropertySet* CanvasFontCache::parseFont(const String& fontString)
 {
-    RefPtrWillBeRawPtr<MutableStylePropertySet> parsedStyle;
+    RawPtr<MutableStylePropertySet> parsedStyle;
     MutableStylePropertyMap::iterator i = m_fetchedFonts.find(fontString);
     if (i != m_fetchedFonts.end()) {
         ASSERT(m_fontLRUList.contains(fontString));
@@ -95,7 +95,7 @@
             return nullptr;
         // According to http://lists.w3.org/Archives/Public/public-html/2009Jul/0947.html,
         // the "inherit" and "initial" values must be ignored.
-        RefPtrWillBeRawPtr<CSSValue> fontValue = parsedStyle->getPropertyCSSValue(CSSPropertyFontSize);
+        RawPtr<CSSValue> fontValue = parsedStyle->getPropertyCSSValue(CSSPropertyFontSize);
         if (fontValue && (fontValue->isInitialValue() || fontValue->isInheritedValue()))
             return nullptr;
         m_fetchedFonts.add(fontString, parsedStyle);
diff --git a/third_party/WebKit/Source/core/html/canvas/CanvasFontCache.h b/third_party/WebKit/Source/core/html/canvas/CanvasFontCache.h
index 60889e5..47fc912 100644
--- a/third_party/WebKit/Source/core/html/canvas/CanvasFontCache.h
+++ b/third_party/WebKit/Source/core/html/canvas/CanvasFontCache.h
@@ -50,13 +50,13 @@
 private:
     explicit CanvasFontCache(Document&);
     void schedulePruningIfNeeded();
-    typedef WillBeHeapHashMap<String, RefPtrWillBeMember<MutableStylePropertySet>> MutableStylePropertyMap;
+    typedef HeapHashMap<String, Member<MutableStylePropertySet>> MutableStylePropertyMap;
 
     HashMap<String, Font> m_fontsResolvedUsingDefaultStyle;
     MutableStylePropertyMap m_fetchedFonts;
     ListHashSet<String> m_fontLRUList;
     OwnPtr<FontCachePurgePreventer> m_mainCachePurgePreventer;
-    RawPtrWillBeMember<Document> m_document;
+    Member<Document> m_document;
     RefPtr<ComputedStyle> m_defaultFontStyle;
     bool m_pruningScheduled;
 };
diff --git a/third_party/WebKit/Source/core/html/canvas/CanvasFontCacheTest.cpp b/third_party/WebKit/Source/core/html/canvas/CanvasFontCacheTest.cpp
index e643b44..462df0e 100644
--- a/third_party/WebKit/Source/core/html/canvas/CanvasFontCacheTest.cpp
+++ b/third_party/WebKit/Source/core/html/canvas/CanvasFontCacheTest.cpp
@@ -31,8 +31,8 @@
 
 private:
     OwnPtr<DummyPageHolder> m_dummyPageHolder;
-    RefPtrWillBePersistent<HTMLDocument> m_document;
-    RefPtrWillBePersistent<HTMLCanvasElement> m_canvasElement;
+    Persistent<HTMLDocument> m_document;
+    Persistent<HTMLCanvasElement> m_canvasElement;
 };
 
 CanvasFontCacheTest::CanvasFontCacheTest()
diff --git a/third_party/WebKit/Source/core/html/canvas/CanvasRenderingContext.h b/third_party/WebKit/Source/core/html/canvas/CanvasRenderingContext.h
index 1a07d60..71688ee 100644
--- a/third_party/WebKit/Source/core/html/canvas/CanvasRenderingContext.h
+++ b/third_party/WebKit/Source/core/html/canvas/CanvasRenderingContext.h
@@ -42,9 +42,8 @@
 class HTMLCanvasElement;
 class ImageData;
 
-class CORE_EXPORT CanvasRenderingContext : public NoBaseWillBeGarbageCollectedFinalized<CanvasRenderingContext>, public ScriptWrappable {
+class CORE_EXPORT CanvasRenderingContext : public GarbageCollectedFinalized<CanvasRenderingContext>, public ScriptWrappable {
     WTF_MAKE_NONCOPYABLE(CanvasRenderingContext);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(CanvasRenderingContext);
 public:
     virtual ~CanvasRenderingContext() { }
 
@@ -130,7 +129,7 @@
     virtual void stop() = 0;
 
 private:
-    RawPtrWillBeMember<HTMLCanvasElement> m_canvas;
+    Member<HTMLCanvasElement> m_canvas;
     HashSet<String> m_cleanURLs;
     HashSet<String> m_dirtyURLs;
 };
diff --git a/third_party/WebKit/Source/core/html/canvas/CanvasRenderingContextFactory.h b/third_party/WebKit/Source/core/html/canvas/CanvasRenderingContextFactory.h
index 95640d7..9e6c439 100644
--- a/third_party/WebKit/Source/core/html/canvas/CanvasRenderingContextFactory.h
+++ b/third_party/WebKit/Source/core/html/canvas/CanvasRenderingContextFactory.h
@@ -23,7 +23,7 @@
     CanvasRenderingContextFactory() = default;
     virtual ~CanvasRenderingContextFactory() { }
 
-    virtual PassOwnPtrWillBeRawPtr<CanvasRenderingContext> create(HTMLCanvasElement*, const CanvasContextCreationAttributes&, Document&) = 0;
+    virtual RawPtr<CanvasRenderingContext> create(HTMLCanvasElement*, const CanvasContextCreationAttributes&, Document&) = 0;
     virtual CanvasRenderingContext::ContextType getContextType() const = 0;
     virtual void onError(HTMLCanvasElement*, const String& error) = 0;
 };
diff --git a/third_party/WebKit/Source/core/html/forms/BaseChooserOnlyDateAndTimeInputType.cpp b/third_party/WebKit/Source/core/html/forms/BaseChooserOnlyDateAndTimeInputType.cpp
index fbef160f..542d8db 100644
--- a/third_party/WebKit/Source/core/html/forms/BaseChooserOnlyDateAndTimeInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/BaseChooserOnlyDateAndTimeInputType.cpp
@@ -79,7 +79,7 @@
 {
     DEFINE_STATIC_LOCAL(AtomicString, valueContainerPseudo, ("-webkit-date-and-time-value"));
 
-    RefPtrWillBeRawPtr<HTMLDivElement> valueContainer = HTMLDivElement::create(element().document());
+    RawPtr<HTMLDivElement> valueContainer = HTMLDivElement::create(element().document());
     valueContainer->setShadowPseudoId(valueContainerPseudo);
     element().userAgentShadowRoot()->appendChild(valueContainer.get());
     updateView();
diff --git a/third_party/WebKit/Source/core/html/forms/BaseChooserOnlyDateAndTimeInputType.h b/third_party/WebKit/Source/core/html/forms/BaseChooserOnlyDateAndTimeInputType.h
index 552d1d1..822f781 100644
--- a/third_party/WebKit/Source/core/html/forms/BaseChooserOnlyDateAndTimeInputType.h
+++ b/third_party/WebKit/Source/core/html/forms/BaseChooserOnlyDateAndTimeInputType.h
@@ -38,8 +38,8 @@
 namespace blink {
 
 class BaseChooserOnlyDateAndTimeInputType : public BaseDateAndTimeInputType, public DateTimeChooserClient {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(BaseChooserOnlyDateAndTimeInputType);
-    WILL_BE_USING_PRE_FINALIZER(BaseChooserOnlyDateAndTimeInputType, closeDateTimeChooser);
+    USING_GARBAGE_COLLECTED_MIXIN(BaseChooserOnlyDateAndTimeInputType);
+    USING_PRE_FINALIZER(BaseChooserOnlyDateAndTimeInputType, closeDateTimeChooser);
 protected:
     BaseChooserOnlyDateAndTimeInputType(HTMLInputElement&);
     ~BaseChooserOnlyDateAndTimeInputType() override;
@@ -66,7 +66,7 @@
     void didChooseValue(double) override;
     void didEndChooser() override;
 
-    RefPtrWillBeMember<DateTimeChooser> m_dateTimeChooser;
+    Member<DateTimeChooser> m_dateTimeChooser;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/html/forms/BaseMultipleFieldsDateAndTimeInputType.cpp b/third_party/WebKit/Source/core/html/forms/BaseMultipleFieldsDateAndTimeInputType.cpp
index 42597c2..6d44006 100644
--- a/third_party/WebKit/Source/core/html/forms/BaseMultipleFieldsDateAndTimeInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/BaseMultipleFieldsDateAndTimeInputType.cpp
@@ -160,7 +160,7 @@
     if (containsFocusedShadowElement())
         return;
     EventQueueScope scope;
-    RefPtrWillBeRawPtr<HTMLInputElement> protector(element());
+    RawPtr<HTMLInputElement> protector(element());
     // Remove focus ring by CSS "focus" pseudo class.
     element().setFocus(false);
     if (SpinButtonElement *spinButton = spinButtonElement())
@@ -181,7 +181,7 @@
 
 void BaseMultipleFieldsDateAndTimeInputType::editControlValueChanged()
 {
-    RefPtrWillBeRawPtr<HTMLInputElement> input(element());
+    RawPtr<HTMLInputElement> input(element());
     String oldValue = input->value();
     String newValue = sanitizeValue(dateTimeEditElement()->value());
     // Even if oldValue is null and newValue is "", we should assume they are same.
@@ -600,7 +600,7 @@
 
 void BaseMultipleFieldsDateAndTimeInputType::clearValue()
 {
-    RefPtrWillBeRawPtr<HTMLInputElement> input(element());
+    RawPtr<HTMLInputElement> input(element());
     input->setValue("", DispatchInputAndChangeEvent);
     input->updateClearButtonVisibility();
 }
diff --git a/third_party/WebKit/Source/core/html/forms/BaseMultipleFieldsDateAndTimeInputType.h b/third_party/WebKit/Source/core/html/forms/BaseMultipleFieldsDateAndTimeInputType.h
index 21df580..a392adc 100644
--- a/third_party/WebKit/Source/core/html/forms/BaseMultipleFieldsDateAndTimeInputType.h
+++ b/third_party/WebKit/Source/core/html/forms/BaseMultipleFieldsDateAndTimeInputType.h
@@ -50,7 +50,7 @@
     , protected PickerIndicatorElement::PickerIndicatorOwner
     , protected SpinButtonElement::SpinButtonOwner
     , protected ClearButtonElement::ClearButtonOwner {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(BaseMultipleFieldsDateAndTimeInputType);
+    USING_GARBAGE_COLLECTED_MIXIN(BaseMultipleFieldsDateAndTimeInputType);
 
 public:
     virtual bool isValidFormat(bool hasYear, bool hasMonth, bool hasWeek, bool hasDay, bool hasAMPM, bool hasHour, bool hasMinute, bool hasSecond) const = 0;
diff --git a/third_party/WebKit/Source/core/html/forms/ButtonInputType.cpp b/third_party/WebKit/Source/core/html/forms/ButtonInputType.cpp
index dfea82d7..4f8d02ae 100644
--- a/third_party/WebKit/Source/core/html/forms/ButtonInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/ButtonInputType.cpp
@@ -35,9 +35,9 @@
 
 namespace blink {
 
-PassRefPtrWillBeRawPtr<InputType> ButtonInputType::create(HTMLInputElement& element)
+RawPtr<InputType> ButtonInputType::create(HTMLInputElement& element)
 {
-    return adoptRefWillBeNoop(new ButtonInputType(element));
+    return new ButtonInputType(element);
 }
 
 const AtomicString& ButtonInputType::formControlType() const
diff --git a/third_party/WebKit/Source/core/html/forms/ButtonInputType.h b/third_party/WebKit/Source/core/html/forms/ButtonInputType.h
index 2b007db..1245972 100644
--- a/third_party/WebKit/Source/core/html/forms/ButtonInputType.h
+++ b/third_party/WebKit/Source/core/html/forms/ButtonInputType.h
@@ -37,7 +37,7 @@
 
 class ButtonInputType final : public BaseButtonInputType {
 public:
-    static PassRefPtrWillBeRawPtr<InputType> create(HTMLInputElement&);
+    static RawPtr<InputType> create(HTMLInputElement&);
 
 private:
     ButtonInputType(HTMLInputElement& element) : BaseButtonInputType(element) { }
diff --git a/third_party/WebKit/Source/core/html/forms/CheckboxInputType.cpp b/third_party/WebKit/Source/core/html/forms/CheckboxInputType.cpp
index fee27cc..795a4d8 100644
--- a/third_party/WebKit/Source/core/html/forms/CheckboxInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/CheckboxInputType.cpp
@@ -39,9 +39,9 @@
 
 namespace blink {
 
-PassRefPtrWillBeRawPtr<InputType> CheckboxInputType::create(HTMLInputElement& element)
+RawPtr<InputType> CheckboxInputType::create(HTMLInputElement& element)
 {
-    return adoptRefWillBeNoop(new CheckboxInputType(element));
+    return new CheckboxInputType(element);
 }
 
 const AtomicString& CheckboxInputType::formControlType() const
@@ -67,12 +67,12 @@
     dispatchSimulatedClickIfActive(event);
 }
 
-PassOwnPtrWillBeRawPtr<ClickHandlingState> CheckboxInputType::willDispatchClick()
+RawPtr<ClickHandlingState> CheckboxInputType::willDispatchClick()
 {
     // An event handler can use preventDefault or "return false" to reverse the checking we do here.
     // The ClickHandlingState object contains what we need to undo what we did here in didDispatchClick.
 
-    OwnPtrWillBeRawPtr<ClickHandlingState> state = adoptPtrWillBeNoop(new ClickHandlingState);
+    RawPtr<ClickHandlingState> state = adoptPtrWillBeNoop(new ClickHandlingState);
 
     state->checked = element().checked();
     state->indeterminate = element().indeterminate();
diff --git a/third_party/WebKit/Source/core/html/forms/CheckboxInputType.h b/third_party/WebKit/Source/core/html/forms/CheckboxInputType.h
index 69044b0..101a9de 100644
--- a/third_party/WebKit/Source/core/html/forms/CheckboxInputType.h
+++ b/third_party/WebKit/Source/core/html/forms/CheckboxInputType.h
@@ -37,7 +37,7 @@
 
 class CheckboxInputType final : public BaseCheckableInputType {
 public:
-    static PassRefPtrWillBeRawPtr<InputType> create(HTMLInputElement&);
+    static RawPtr<InputType> create(HTMLInputElement&);
 
 private:
     CheckboxInputType(HTMLInputElement& element) : BaseCheckableInputType(element) { }
@@ -45,7 +45,7 @@
     bool valueMissing(const String&) const override;
     String valueMissingText() const override;
     void handleKeyupEvent(KeyboardEvent*) override;
-    PassOwnPtrWillBeRawPtr<ClickHandlingState> willDispatchClick() override;
+    RawPtr<ClickHandlingState> willDispatchClick() override;
     void didDispatchClick(Event*, const ClickHandlingState&) override;
     bool shouldAppearIndeterminate() const override;
 };
diff --git a/third_party/WebKit/Source/core/html/forms/ColorChooser.h b/third_party/WebKit/Source/core/html/forms/ColorChooser.h
index 95d3b01..14fef8b 100644
--- a/third_party/WebKit/Source/core/html/forms/ColorChooser.h
+++ b/third_party/WebKit/Source/core/html/forms/ColorChooser.h
@@ -38,7 +38,7 @@
 class AXObject;
 class Color;
 
-class CORE_EXPORT ColorChooser : public WillBeGarbageCollectedMixin {
+class CORE_EXPORT ColorChooser : public GarbageCollectedMixin {
 public:
     ColorChooser();
     virtual ~ColorChooser();
diff --git a/third_party/WebKit/Source/core/html/forms/ColorChooserClient.h b/third_party/WebKit/Source/core/html/forms/ColorChooserClient.h
index 736a4c0..f6398e70 100644
--- a/third_party/WebKit/Source/core/html/forms/ColorChooserClient.h
+++ b/third_party/WebKit/Source/core/html/forms/ColorChooserClient.h
@@ -40,7 +40,7 @@
 
 class Element;
 
-class ColorChooserClient : public WillBeGarbageCollectedMixin {
+class ColorChooserClient : public GarbageCollectedMixin {
 public:
     virtual ~ColorChooserClient();
     DEFINE_INLINE_VIRTUAL_TRACE() { }
diff --git a/third_party/WebKit/Source/core/html/forms/ColorInputType.cpp b/third_party/WebKit/Source/core/html/forms/ColorInputType.cpp
index 90176340..d03c6931 100644
--- a/third_party/WebKit/Source/core/html/forms/ColorInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/ColorInputType.cpp
@@ -76,9 +76,9 @@
     return color.setFromString(value) && !color.hasAlpha();
 }
 
-PassRefPtrWillBeRawPtr<InputType> ColorInputType::create(HTMLInputElement& element)
+RawPtr<InputType> ColorInputType::create(HTMLInputElement& element)
 {
-    return adoptRefWillBeNoop(new ColorInputType(element));
+    return new ColorInputType(element);
 }
 
 ColorInputType::~ColorInputType()
@@ -133,9 +133,9 @@
     ASSERT(element().shadow());
 
     Document& document = element().document();
-    RefPtrWillBeRawPtr<HTMLDivElement> wrapperElement = HTMLDivElement::create(document);
+    RawPtr<HTMLDivElement> wrapperElement = HTMLDivElement::create(document);
     wrapperElement->setShadowPseudoId(AtomicString("-webkit-color-swatch-wrapper"));
-    RefPtrWillBeRawPtr<HTMLDivElement> colorSwatch = HTMLDivElement::create(document);
+    RawPtr<HTMLDivElement> colorSwatch = HTMLDivElement::create(document);
     colorSwatch->setShadowPseudoId(AtomicString("-webkit-color-swatch"));
     wrapperElement->appendChild(colorSwatch.release());
     element().userAgentShadowRoot()->appendChild(wrapperElement.release());
@@ -262,7 +262,7 @@
     Vector<ColorSuggestion> suggestions;
     HTMLDataListElement* dataList = element().dataList();
     if (dataList) {
-        RefPtrWillBeRawPtr<HTMLDataListOptionsCollection> options = dataList->options();
+        RawPtr<HTMLDataListOptionsCollection> options = dataList->options();
         for (unsigned i = 0; HTMLOptionElement* option = options->item(i); i++) {
             if (!element().isValidValue(option->value()))
                 continue;
diff --git a/third_party/WebKit/Source/core/html/forms/ColorInputType.h b/third_party/WebKit/Source/core/html/forms/ColorInputType.h
index c4f81a5..e6bf55c 100644
--- a/third_party/WebKit/Source/core/html/forms/ColorInputType.h
+++ b/third_party/WebKit/Source/core/html/forms/ColorInputType.h
@@ -39,9 +39,9 @@
 class ColorChooser;
 
 class ColorInputType final : public BaseClickableWithKeyInputType, public ColorChooserClient {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(ColorInputType);
+    USING_GARBAGE_COLLECTED_MIXIN(ColorInputType);
 public:
-    static PassRefPtrWillBeRawPtr<InputType> create(HTMLInputElement&);
+    static RawPtr<InputType> create(HTMLInputElement&);
     ~ColorInputType() override;
     DECLARE_VIRTUAL_TRACE();
 
@@ -77,7 +77,7 @@
     void endColorChooser();
     HTMLElement* shadowColorSwatch() const;
 
-    OwnPtrWillBeMember<ColorChooser> m_chooser;
+    Member<ColorChooser> m_chooser;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/html/forms/DateInputType.cpp b/third_party/WebKit/Source/core/html/forms/DateInputType.cpp
index f2359ba..6bc5a19 100644
--- a/third_party/WebKit/Source/core/html/forms/DateInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/DateInputType.cpp
@@ -53,9 +53,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<InputType> DateInputType::create(HTMLInputElement& element)
+RawPtr<InputType> DateInputType::create(HTMLInputElement& element)
 {
-    return adoptRefWillBeNoop(new DateInputType(element));
+    return new DateInputType(element);
 }
 
 void DateInputType::countUsage()
diff --git a/third_party/WebKit/Source/core/html/forms/DateInputType.h b/third_party/WebKit/Source/core/html/forms/DateInputType.h
index 6229b6ad..2bde2409 100644
--- a/third_party/WebKit/Source/core/html/forms/DateInputType.h
+++ b/third_party/WebKit/Source/core/html/forms/DateInputType.h
@@ -44,7 +44,7 @@
 
 class DateInputType final : public BaseDateInputType {
 public:
-    static PassRefPtrWillBeRawPtr<InputType> create(HTMLInputElement&);
+    static RawPtr<InputType> create(HTMLInputElement&);
 
 private:
     explicit DateInputType(HTMLInputElement&);
diff --git a/third_party/WebKit/Source/core/html/forms/DateTimeChooser.h b/third_party/WebKit/Source/core/html/forms/DateTimeChooser.h
index 8a14fe3..d8e3e15 100644
--- a/third_party/WebKit/Source/core/html/forms/DateTimeChooser.h
+++ b/third_party/WebKit/Source/core/html/forms/DateTimeChooser.h
@@ -71,7 +71,7 @@
 };
 
 // For pickers like color pickers and date pickers.
-class CORE_EXPORT DateTimeChooser : public RefCountedWillBeGarbageCollectedFinalized<DateTimeChooser> {
+class CORE_EXPORT DateTimeChooser : public GarbageCollectedFinalized<DateTimeChooser> {
 public:
     virtual ~DateTimeChooser();
 
diff --git a/third_party/WebKit/Source/core/html/forms/DateTimeChooserClient.h b/third_party/WebKit/Source/core/html/forms/DateTimeChooserClient.h
index 9f8c1e9..ce91d4a 100644
--- a/third_party/WebKit/Source/core/html/forms/DateTimeChooserClient.h
+++ b/third_party/WebKit/Source/core/html/forms/DateTimeChooserClient.h
@@ -38,7 +38,7 @@
 
 class Element;
 
-class DateTimeChooserClient : public WillBeGarbageCollectedMixin {
+class DateTimeChooserClient : public GarbageCollectedMixin {
 public:
     virtual ~DateTimeChooserClient();
     DEFINE_INLINE_VIRTUAL_TRACE() { }
diff --git a/third_party/WebKit/Source/core/html/forms/DateTimeLocalInputType.cpp b/third_party/WebKit/Source/core/html/forms/DateTimeLocalInputType.cpp
index 536df801..b00d5a16 100644
--- a/third_party/WebKit/Source/core/html/forms/DateTimeLocalInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/DateTimeLocalInputType.cpp
@@ -49,9 +49,9 @@
 static const int dateTimeLocalDefaultStepBase = 0;
 static const int dateTimeLocalStepScaleFactor = 1000;
 
-PassRefPtrWillBeRawPtr<InputType> DateTimeLocalInputType::create(HTMLInputElement& element)
+RawPtr<InputType> DateTimeLocalInputType::create(HTMLInputElement& element)
 {
-    return adoptRefWillBeNoop(new DateTimeLocalInputType(element));
+    return new DateTimeLocalInputType(element);
 }
 
 void DateTimeLocalInputType::countUsage()
diff --git a/third_party/WebKit/Source/core/html/forms/DateTimeLocalInputType.h b/third_party/WebKit/Source/core/html/forms/DateTimeLocalInputType.h
index 806023fd..999433ec 100644
--- a/third_party/WebKit/Source/core/html/forms/DateTimeLocalInputType.h
+++ b/third_party/WebKit/Source/core/html/forms/DateTimeLocalInputType.h
@@ -46,7 +46,7 @@
 
 class DateTimeLocalInputType final : public BaseDateTimeLocalInputType {
 public:
-    static PassRefPtrWillBeRawPtr<InputType> create(HTMLInputElement&);
+    static RawPtr<InputType> create(HTMLInputElement&);
 
 private:
     explicit DateTimeLocalInputType(HTMLInputElement& element) : BaseDateTimeLocalInputType(element) { }
diff --git a/third_party/WebKit/Source/core/html/forms/EmailInputType.cpp b/third_party/WebKit/Source/core/html/forms/EmailInputType.cpp
index d7f2754d..2706f77 100644
--- a/third_party/WebKit/Source/core/html/forms/EmailInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/EmailInputType.cpp
@@ -147,9 +147,9 @@
     return !matchOffset && matchLength == addressLength;
 }
 
-PassRefPtrWillBeRawPtr<InputType> EmailInputType::create(HTMLInputElement& element)
+RawPtr<InputType> EmailInputType::create(HTMLInputElement& element)
 {
-    return adoptRefWillBeNoop(new EmailInputType(element));
+    return new EmailInputType(element);
 }
 
 void EmailInputType::countUsage()
diff --git a/third_party/WebKit/Source/core/html/forms/EmailInputType.h b/third_party/WebKit/Source/core/html/forms/EmailInputType.h
index 76a8d022..b64ffe31 100644
--- a/third_party/WebKit/Source/core/html/forms/EmailInputType.h
+++ b/third_party/WebKit/Source/core/html/forms/EmailInputType.h
@@ -37,7 +37,7 @@
 
 class EmailInputType final : public BaseTextInputType {
 public:
-    static PassRefPtrWillBeRawPtr<InputType> create(HTMLInputElement&);
+    static RawPtr<InputType> create(HTMLInputElement&);
 
     // They are public for unit testing.
     CORE_EXPORT static String convertEmailAddressToASCII(const String&);
diff --git a/third_party/WebKit/Source/core/html/forms/FileInputType.cpp b/third_party/WebKit/Source/core/html/forms/FileInputType.cpp
index f25cacd4..e90afbb 100644
--- a/third_party/WebKit/Source/core/html/forms/FileInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/FileInputType.cpp
@@ -55,9 +55,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<InputType> FileInputType::create(HTMLInputElement& element)
+RawPtr<InputType> FileInputType::create(HTMLInputElement& element)
 {
-    return adoptRefWillBeNoop(new FileInputType(element));
+    return new FileInputType(element);
 }
 
 DEFINE_TRACE(FileInputType)
@@ -252,7 +252,7 @@
 void FileInputType::createShadowSubtree()
 {
     ASSERT(element().shadow());
-    RefPtrWillBeRawPtr<HTMLInputElement> button = HTMLInputElement::create(element().document(), 0, false);
+    RawPtr<HTMLInputElement> button = HTMLInputElement::create(element().document(), 0, false);
     button->setType(InputTypeNames::button);
     button->setAttribute(valueAttr, AtomicString(locale().queryString(element().multiple() ? WebLocalizedString::FileButtonChooseMultipleFilesLabel : WebLocalizedString::FileButtonChooseFileLabel)));
     button->setShadowPseudoId(AtomicString("-webkit-file-upload-button"));
@@ -278,7 +278,7 @@
     if (!files)
         return;
 
-    RefPtrWillBeRawPtr<HTMLInputElement> input(element());
+    RawPtr<HTMLInputElement> input(element());
 
     bool filesChanged = false;
     if (files->length() != m_fileList->length()) {
diff --git a/third_party/WebKit/Source/core/html/forms/FileInputType.h b/third_party/WebKit/Source/core/html/forms/FileInputType.h
index a7b9a20..607f9592 100644
--- a/third_party/WebKit/Source/core/html/forms/FileInputType.h
+++ b/third_party/WebKit/Source/core/html/forms/FileInputType.h
@@ -45,7 +45,7 @@
 
 class CORE_EXPORT FileInputType final : public BaseClickableWithKeyInputType, private FileChooserClient {
 public:
-    static PassRefPtrWillBeRawPtr<InputType> create(HTMLInputElement&);
+    static RawPtr<InputType> create(HTMLInputElement&);
     DECLARE_VIRTUAL_TRACE();
     static Vector<FileChooserFileInfo> filesFromFormControlState(const FormControlState&);
     static FileList* createFileList(const Vector<FileChooserFileInfo>& files, bool hasWebkitDirectoryAttr);
@@ -80,7 +80,7 @@
 
     void receiveDropForDirectoryUpload(const Vector<String>&);
 
-    PersistentWillBeMember<FileList> m_fileList;
+    Member<FileList> m_fileList;
     String m_droppedFileSystemId;
 };
 
diff --git a/third_party/WebKit/Source/core/html/forms/FileInputTypeTest.cpp b/third_party/WebKit/Source/core/html/forms/FileInputTypeTest.cpp
index f0b540e..f558d00 100644
--- a/third_party/WebKit/Source/core/html/forms/FileInputTypeTest.cpp
+++ b/third_party/WebKit/Source/core/html/forms/FileInputTypeTest.cpp
@@ -46,10 +46,10 @@
 
 TEST(FileInputTypeTest, ignoreDroppedNonNativeFiles)
 {
-    const RefPtrWillBeRawPtr<Document> document = Document::create();
-    const RefPtrWillBeRawPtr<HTMLInputElement> input =
+    const RawPtr<Document> document = Document::create();
+    const RawPtr<HTMLInputElement> input =
         HTMLInputElement::create(*document, nullptr, false);
-    const RefPtrWillBeRawPtr<InputType> fileInput = FileInputType::create(*input);
+    const RawPtr<InputType> fileInput = FileInputType::create(*input);
 
     DataObject* nativeFileRawDragData = DataObject::create();
     const DragData nativeFileDragData(nativeFileRawDragData, IntPoint(), IntPoint(), DragOperationCopy);
diff --git a/third_party/WebKit/Source/core/html/forms/FormController.cpp b/third_party/WebKit/Source/core/html/forms/FormController.cpp
index 6892916..82e1a45 100644
--- a/third_party/WebKit/Source/core/html/forms/FormController.cpp
+++ b/third_party/WebKit/Source/core/html/forms/FormController.cpp
@@ -287,12 +287,10 @@
 
 // ----------------------------------------------------------------------------
 
-class FormKeyGenerator final : public NoBaseWillBeGarbageCollectedFinalized<FormKeyGenerator> {
+class FormKeyGenerator final : public GarbageCollectedFinalized<FormKeyGenerator> {
     WTF_MAKE_NONCOPYABLE(FormKeyGenerator);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(FormKeyGenerator);
-
 public:
-    static PassOwnPtrWillBeRawPtr<FormKeyGenerator> create() { return adoptPtrWillBeNoop(new FormKeyGenerator); }
+    static RawPtr<FormKeyGenerator> create() { return adoptPtrWillBeNoop(new FormKeyGenerator); }
     DEFINE_INLINE_TRACE()
     {
 #if ENABLE(OILPAN)
@@ -305,7 +303,7 @@
 private:
     FormKeyGenerator() { }
 
-    using FormToKeyMap = WillBeHeapHashMap<RawPtrWillBeMember<HTMLFormElement>, AtomicString>;
+    using FormToKeyMap = HeapHashMap<Member<HTMLFormElement>, AtomicString>;
     using FormSignatureToNextIndexMap = HashMap<String, unsigned>;
     FormToKeyMap m_formToKeyMap;
     FormSignatureToNextIndexMap m_formSignatureToNextIndexMap;
@@ -381,13 +379,11 @@
 
 // ----------------------------------------------------------------------------
 
-PassRefPtrWillBeRawPtr<DocumentState> DocumentState::create()
+RawPtr<DocumentState> DocumentState::create()
 {
     return adoptRefWillBeNoop(new DocumentState);
 }
 
-DEFINE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(DocumentState)
-
 DEFINE_TRACE(DocumentState)
 {
 #if ENABLE(OILPAN)
@@ -418,7 +414,7 @@
 
 Vector<String> DocumentState::toStateVector()
 {
-    OwnPtrWillBeRawPtr<FormKeyGenerator> keyGenerator = FormKeyGenerator::create();
+    RawPtr<FormKeyGenerator> keyGenerator = FormKeyGenerator::create();
     OwnPtr<SavedFormStateMap> stateMap = adoptPtr(new SavedFormStateMap);
     for (const auto& formControl : m_formControls) {
         HTMLFormControlElementWithState* control = formControl.get();
diff --git a/third_party/WebKit/Source/core/html/forms/FormController.h b/third_party/WebKit/Source/core/html/forms/FormController.h
index d877b5f..ca6884d 100644
--- a/third_party/WebKit/Source/core/html/forms/FormController.h
+++ b/third_party/WebKit/Source/core/html/forms/FormController.h
@@ -74,10 +74,9 @@
 
 using SavedFormStateMap = HashMap<AtomicString, OwnPtr<SavedFormState>>;
 
-class DocumentState final : public RefCountedWillBeGarbageCollected<DocumentState> {
-    DECLARE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(DocumentState);
+class DocumentState final : public GarbageCollected<DocumentState> {
 public:
-    static PassRefPtrWillBeRawPtr<DocumentState> create();
+    static RawPtr<DocumentState> create();
     DECLARE_TRACE();
 
     void addControl(HTMLFormControlElementWithState*);
@@ -85,14 +84,13 @@
     Vector<String> toStateVector();
 
 private:
-    using FormElementListHashSet = WillBeHeapListHashSet<RefPtrWillBeMember<HTMLFormControlElementWithState>, 64>;
+    using FormElementListHashSet = HeapListHashSet<Member<HTMLFormControlElementWithState>, 64>;
     FormElementListHashSet m_formControls;
 };
 
-class FormController final : public NoBaseWillBeGarbageCollectedFinalized<FormController> {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(FormController);
+class FormController final : public GarbageCollectedFinalized<FormController> {
 public:
-    static PassOwnPtrWillBeRawPtr<FormController> create()
+    static RawPtr<FormController> create()
     {
         return adoptPtrWillBeNoop(new FormController);
     }
@@ -116,9 +114,9 @@
     FormControlState takeStateForFormElement(const HTMLFormControlElementWithState&);
     static void formStatesFromStateVector(const Vector<String>&, SavedFormStateMap&);
 
-    RefPtrWillBeMember<DocumentState> m_documentState;
+    Member<DocumentState> m_documentState;
     SavedFormStateMap m_savedFormStateMap;
-    OwnPtrWillBeMember<FormKeyGenerator> m_formKeyGenerator;
+    Member<FormKeyGenerator> m_formKeyGenerator;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/html/forms/HiddenInputType.cpp b/third_party/WebKit/Source/core/html/forms/HiddenInputType.cpp
index b81b5cd..f56f766 100644
--- a/third_party/WebKit/Source/core/html/forms/HiddenInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/HiddenInputType.cpp
@@ -42,9 +42,9 @@
 
 using namespace HTMLNames;
 
-PassRefPtrWillBeRawPtr<InputType> HiddenInputType::create(HTMLInputElement& element)
+RawPtr<InputType> HiddenInputType::create(HTMLInputElement& element)
 {
-    return adoptRefWillBeNoop(new HiddenInputType(element));
+    return new HiddenInputType(element);
 }
 
 const AtomicString& HiddenInputType::formControlType() const
diff --git a/third_party/WebKit/Source/core/html/forms/HiddenInputType.h b/third_party/WebKit/Source/core/html/forms/HiddenInputType.h
index c14a0a1..5de645f5 100644
--- a/third_party/WebKit/Source/core/html/forms/HiddenInputType.h
+++ b/third_party/WebKit/Source/core/html/forms/HiddenInputType.h
@@ -37,7 +37,7 @@
 
 class HiddenInputType final : public InputType {
 public:
-    static PassRefPtrWillBeRawPtr<InputType> create(HTMLInputElement&);
+    static RawPtr<InputType> create(HTMLInputElement&);
 
 private:
     HiddenInputType(HTMLInputElement& element) : InputType(element) { }
diff --git a/third_party/WebKit/Source/core/html/forms/ImageInputType.cpp b/third_party/WebKit/Source/core/html/forms/ImageInputType.cpp
index 80470e1..ab1fdeb 100644
--- a/third_party/WebKit/Source/core/html/forms/ImageInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/ImageInputType.cpp
@@ -48,9 +48,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<InputType> ImageInputType::create(HTMLInputElement& element)
+RawPtr<InputType> ImageInputType::create(HTMLInputElement& element)
 {
-    return adoptRefWillBeNoop(new ImageInputType(element));
+    return new ImageInputType(element);
 }
 
 const AtomicString& ImageInputType::formControlType() const
@@ -109,7 +109,7 @@
 
 void ImageInputType::handleDOMActivateEvent(Event* event)
 {
-    RefPtrWillBeRawPtr<HTMLInputElement> element(this->element());
+    RawPtr<HTMLInputElement> element(this->element());
     if (element->isDisabledFormControl() || !element->form())
         return;
     element->setActivatedSubmit(true);
@@ -189,7 +189,7 @@
 
 unsigned ImageInputType::height() const
 {
-    RefPtrWillBeRawPtr<HTMLInputElement> element(this->element());
+    RawPtr<HTMLInputElement> element(this->element());
 
     if (!element->layoutObject()) {
         // Check the attribute first for an explicit pixel value.
@@ -211,7 +211,7 @@
 
 unsigned ImageInputType::width() const
 {
-    RefPtrWillBeRawPtr<HTMLInputElement> element(this->element());
+    RawPtr<HTMLInputElement> element(this->element());
 
     if (!element->layoutObject()) {
         // Check the attribute first for an explicit pixel value.
diff --git a/third_party/WebKit/Source/core/html/forms/ImageInputType.h b/third_party/WebKit/Source/core/html/forms/ImageInputType.h
index 026d6ea..d28e64f6 100644
--- a/third_party/WebKit/Source/core/html/forms/ImageInputType.h
+++ b/third_party/WebKit/Source/core/html/forms/ImageInputType.h
@@ -40,7 +40,7 @@
 
 class ImageInputType final : public BaseButtonInputType {
 public:
-    static PassRefPtrWillBeRawPtr<InputType> create(HTMLInputElement&);
+    static RawPtr<InputType> create(HTMLInputElement&);
     virtual PassRefPtr<ComputedStyle> customStyleForLayoutObject(PassRefPtr<ComputedStyle>);
 
 private:
diff --git a/third_party/WebKit/Source/core/html/forms/InputType.cpp b/third_party/WebKit/Source/core/html/forms/InputType.cpp
index a85c3ec6..6969224f 100644
--- a/third_party/WebKit/Source/core/html/forms/InputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/InputType.cpp
@@ -78,7 +78,7 @@
 using blink::WebLocalizedString;
 using namespace HTMLNames;
 
-using InputTypeFactoryFunction = PassRefPtrWillBeRawPtr<InputType> (*)(HTMLInputElement&);
+using InputTypeFactoryFunction = RawPtr<InputType> (*)(HTMLInputElement&);
 using InputTypeFactoryMap = HashMap<AtomicString, InputTypeFactoryFunction, CaseFoldingHash>;
 
 static PassOwnPtr<InputTypeFactoryMap> createInputTypeFactoryMap()
@@ -115,7 +115,7 @@
     return factoryMap;
 }
 
-PassRefPtrWillBeRawPtr<InputType> InputType::create(HTMLInputElement& element, const AtomicString& typeName)
+RawPtr<InputType> InputType::create(HTMLInputElement& element, const AtomicString& typeName)
 {
     InputTypeFactoryFunction factory = typeName.isEmpty() ? 0 : factoryMap()->get(typeName);
     if (!factory)
@@ -123,7 +123,7 @@
     return factory(element);
 }
 
-PassRefPtrWillBeRawPtr<InputType> InputType::createText(HTMLInputElement& element)
+RawPtr<InputType> InputType::createText(HTMLInputElement& element)
 {
     return TextInputType::create(element);
 }
diff --git a/third_party/WebKit/Source/core/html/forms/InputType.h b/third_party/WebKit/Source/core/html/forms/InputType.h
index b30cfef..3a0fd544 100644
--- a/third_party/WebKit/Source/core/html/forms/InputType.h
+++ b/third_party/WebKit/Source/core/html/forms/InputType.h
@@ -54,11 +54,9 @@
 // FIXME: InputType should not inherit InputTypeView. It's conceptually wrong.
 class CORE_EXPORT InputType : public InputTypeView {
     WTF_MAKE_NONCOPYABLE(InputType);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(InputType);
-
 public:
-    static PassRefPtrWillBeRawPtr<InputType> create(HTMLInputElement&, const AtomicString&);
-    static PassRefPtrWillBeRawPtr<InputType> createText(HTMLInputElement&);
+    static RawPtr<InputType> create(HTMLInputElement&, const AtomicString&);
+    static RawPtr<InputType> createText(HTMLInputElement&);
     static const AtomicString& normalizeTypeName(const AtomicString&);
     ~InputType() override;
 
diff --git a/third_party/WebKit/Source/core/html/forms/InputTypeView.cpp b/third_party/WebKit/Source/core/html/forms/InputTypeView.cpp
index 9fba1e2..083dbf5 100644
--- a/third_party/WebKit/Source/core/html/forms/InputTypeView.cpp
+++ b/third_party/WebKit/Source/core/html/forms/InputTypeView.cpp
@@ -34,9 +34,9 @@
 
 namespace blink {
 
-PassRefPtrWillBeRawPtr<InputTypeView> InputTypeView::create(HTMLInputElement& input)
+RawPtr<InputTypeView> InputTypeView::create(HTMLInputElement& input)
 {
-    return adoptRefWillBeNoop(new InputTypeView(input));
+    return new InputTypeView(input);
 }
 
 InputTypeView::~InputTypeView()
@@ -91,7 +91,7 @@
     return false;
 }
 
-PassRefPtrWillBeRawPtr<HTMLFormElement> InputTypeView::formForSubmission() const
+RawPtr<HTMLFormElement> InputTypeView::formForSubmission() const
 {
     return element().form();
 }
@@ -162,7 +162,7 @@
 {
 }
 
-PassOwnPtrWillBeRawPtr<ClickHandlingState> InputTypeView::willDispatchClick()
+RawPtr<ClickHandlingState> InputTypeView::willDispatchClick()
 {
     return nullptr;
 }
diff --git a/third_party/WebKit/Source/core/html/forms/InputTypeView.h b/third_party/WebKit/Source/core/html/forms/InputTypeView.h
index 86948c1..8b366422 100644
--- a/third_party/WebKit/Source/core/html/forms/InputTypeView.h
+++ b/third_party/WebKit/Source/core/html/forms/InputTypeView.h
@@ -56,33 +56,29 @@
 class ComputedStyle;
 class TouchEvent;
 
-struct ClickHandlingState final : public NoBaseWillBeGarbageCollected<ClickHandlingState> {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(ClickHandlingState);
-
+struct ClickHandlingState final : public GarbageCollected<ClickHandlingState> {
 public:
     DECLARE_TRACE();
 
     bool checked;
     bool indeterminate;
-    RefPtrWillBeMember<HTMLInputElement> checkedRadioButton;
+    Member<HTMLInputElement> checkedRadioButton;
 };
 
 // An InputTypeView object represents the UI-specific part of an
 // HTMLInputElement. Do not expose instances of InputTypeView and classes
 // derived from it to classes other than HTMLInputElement.
-class CORE_EXPORT InputTypeView : public RefCountedWillBeGarbageCollectedFinalized<InputTypeView> {
+class CORE_EXPORT InputTypeView : public GarbageCollectedFinalized<InputTypeView> {
     WTF_MAKE_NONCOPYABLE(InputTypeView);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(InputTypeView);
-
 public:
-    static PassRefPtrWillBeRawPtr<InputTypeView> create(HTMLInputElement&);
+    static RawPtr<InputTypeView> create(HTMLInputElement&);
     virtual ~InputTypeView();
     DECLARE_VIRTUAL_TRACE();
 
     virtual bool sizeShouldIncludeDecoration(int defaultSize, int& preferredSize) const;
     virtual void handleClickEvent(MouseEvent*);
     virtual void handleMouseDownEvent(MouseEvent*);
-    virtual PassOwnPtrWillBeRawPtr<ClickHandlingState> willDispatchClick();
+    virtual RawPtr<ClickHandlingState> willDispatchClick();
     virtual void didDispatchClick(Event*, const ClickHandlingState&);
     virtual void handleKeydownEvent(KeyboardEvent*);
     virtual void handleKeypressEvent(KeyboardEvent*);
@@ -91,7 +87,7 @@
     virtual void handleTouchEvent(TouchEvent*);
     virtual void forwardEvent(Event*);
     virtual bool shouldSubmitImplicitly(Event*);
-    virtual PassRefPtrWillBeRawPtr<HTMLFormElement> formForSubmission() const;
+    virtual RawPtr<HTMLFormElement> formForSubmission() const;
     virtual bool hasCustomFocusLogic() const;
     virtual void handleFocusEvent(Element* oldFocusedElement, WebFocusType);
     virtual void handleFocusInEvent(Element* oldFocusedElement, WebFocusType);
@@ -131,7 +127,7 @@
 private:
     // Not a RefPtr because the HTMLInputElement object owns this InputTypeView
     // object.
-    RawPtrWillBeMember<HTMLInputElement> m_element;
+    Member<HTMLInputElement> m_element;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/html/forms/MonthInputType.cpp b/third_party/WebKit/Source/core/html/forms/MonthInputType.cpp
index 37c8503..d0abccfa 100644
--- a/third_party/WebKit/Source/core/html/forms/MonthInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/MonthInputType.cpp
@@ -50,9 +50,9 @@
 static const int monthDefaultStepBase = 0;
 static const int monthStepScaleFactor = 1;
 
-PassRefPtrWillBeRawPtr<InputType> MonthInputType::create(HTMLInputElement& element)
+RawPtr<InputType> MonthInputType::create(HTMLInputElement& element)
 {
-    return adoptRefWillBeNoop(new MonthInputType(element));
+    return new MonthInputType(element);
 }
 
 void MonthInputType::countUsage()
diff --git a/third_party/WebKit/Source/core/html/forms/MonthInputType.h b/third_party/WebKit/Source/core/html/forms/MonthInputType.h
index cb455f3..f3dc6fee 100644
--- a/third_party/WebKit/Source/core/html/forms/MonthInputType.h
+++ b/third_party/WebKit/Source/core/html/forms/MonthInputType.h
@@ -44,7 +44,7 @@
 
 class MonthInputType final : public BaseMonthInputType {
 public:
-    static PassRefPtrWillBeRawPtr<InputType> create(HTMLInputElement&);
+    static RawPtr<InputType> create(HTMLInputElement&);
 
 private:
     explicit MonthInputType(HTMLInputElement& element) : BaseMonthInputType(element) { }
diff --git a/third_party/WebKit/Source/core/html/forms/NumberInputType.cpp b/third_party/WebKit/Source/core/html/forms/NumberInputType.cpp
index 63dffff..f49479a 100644
--- a/third_party/WebKit/Source/core/html/forms/NumberInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/NumberInputType.cpp
@@ -95,9 +95,9 @@
     return RealNumberRenderSize(sizeOfSign + sizeOfZero , numberOfZeroAfterDecimalPoint + sizeOfDigits);
 }
 
-PassRefPtrWillBeRawPtr<InputType> NumberInputType::create(HTMLInputElement& element)
+RawPtr<InputType> NumberInputType::create(HTMLInputElement& element)
 {
-    return adoptRefWillBeNoop(new NumberInputType(element));
+    return new NumberInputType(element);
 }
 
 void NumberInputType::countUsage()
diff --git a/third_party/WebKit/Source/core/html/forms/NumberInputType.h b/third_party/WebKit/Source/core/html/forms/NumberInputType.h
index 253172f..81ed345 100644
--- a/third_party/WebKit/Source/core/html/forms/NumberInputType.h
+++ b/third_party/WebKit/Source/core/html/forms/NumberInputType.h
@@ -39,7 +39,7 @@
 
 class NumberInputType final : public TextFieldInputType {
 public:
-    static PassRefPtrWillBeRawPtr<InputType> create(HTMLInputElement&);
+    static RawPtr<InputType> create(HTMLInputElement&);
 
 private:
     NumberInputType(HTMLInputElement& element) : TextFieldInputType(element) { }
diff --git a/third_party/WebKit/Source/core/html/forms/PasswordInputType.cpp b/third_party/WebKit/Source/core/html/forms/PasswordInputType.cpp
index 5f67434f..7db5f6d 100644
--- a/third_party/WebKit/Source/core/html/forms/PasswordInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/PasswordInputType.cpp
@@ -40,9 +40,9 @@
 
 namespace blink {
 
-PassRefPtrWillBeRawPtr<InputType> PasswordInputType::create(HTMLInputElement& element)
+RawPtr<InputType> PasswordInputType::create(HTMLInputElement& element)
 {
-    return adoptRefWillBeNoop(new PasswordInputType(element));
+    return new PasswordInputType(element);
 }
 
 void PasswordInputType::countUsage()
diff --git a/third_party/WebKit/Source/core/html/forms/PasswordInputType.h b/third_party/WebKit/Source/core/html/forms/PasswordInputType.h
index b648850..372adfc 100644
--- a/third_party/WebKit/Source/core/html/forms/PasswordInputType.h
+++ b/third_party/WebKit/Source/core/html/forms/PasswordInputType.h
@@ -37,7 +37,7 @@
 
 class PasswordInputType final : public BaseTextInputType {
 public:
-    static PassRefPtrWillBeRawPtr<InputType> create(HTMLInputElement&);
+    static RawPtr<InputType> create(HTMLInputElement&);
 
 private:
     PasswordInputType(HTMLInputElement& element) : BaseTextInputType(element) { }
diff --git a/third_party/WebKit/Source/core/html/forms/RadioButtonGroupScope.cpp b/third_party/WebKit/Source/core/html/forms/RadioButtonGroupScope.cpp
index c60402ae..66c7e17 100644
--- a/third_party/WebKit/Source/core/html/forms/RadioButtonGroupScope.cpp
+++ b/third_party/WebKit/Source/core/html/forms/RadioButtonGroupScope.cpp
@@ -26,10 +26,9 @@
 
 namespace blink {
 
-class RadioButtonGroup : public NoBaseWillBeGarbageCollected<RadioButtonGroup> {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(RadioButtonGroup);
+class RadioButtonGroup : public GarbageCollected<RadioButtonGroup> {
 public:
-    static PassOwnPtrWillBeRawPtr<RadioButtonGroup> create();
+    static RawPtr<RadioButtonGroup> create();
     bool isEmpty() const { return m_members.isEmpty(); }
     bool isRequired() const { return m_requiredCount; }
     HTMLInputElement* checkedButton() const { return m_checkedButton; }
@@ -49,7 +48,7 @@
     void setCheckedButton(HTMLInputElement*);
 
     // The map records the 'required' state of each (button) element.
-    using Members = WillBeHeapHashMap<RawPtrWillBeMember<HTMLInputElement>, bool>;
+    using Members = HeapHashMap<Member<HTMLInputElement>, bool>;
 
 #if ENABLE(OILPAN)
     using MemberKeyValue = WTF::KeyValuePair<Member<HTMLInputElement>, bool>;
@@ -60,7 +59,7 @@
     void updateRequiredButton(MemberKeyValue&, bool isRequired);
 
     Members m_members;
-    RawPtrWillBeMember<HTMLInputElement> m_checkedButton;
+    Member<HTMLInputElement> m_checkedButton;
     size_t m_requiredCount;
 };
 
@@ -70,7 +69,7 @@
 {
 }
 
-PassOwnPtrWillBeRawPtr<RadioButtonGroup> RadioButtonGroup::create()
+RawPtr<RadioButtonGroup> RadioButtonGroup::create()
 {
     return adoptPtrWillBeNoop(new RadioButtonGroup);
 }
@@ -239,7 +238,7 @@
     if (!m_nameToGroupMap)
         m_nameToGroupMap = adoptPtrWillBeNoop(new NameToGroupMap);
 
-    OwnPtrWillBeMember<RadioButtonGroup>& group = m_nameToGroupMap->add(element->name(), nullptr).storedValue->value;
+    Member<RadioButtonGroup>& group = m_nameToGroupMap->add(element->name(), nullptr).storedValue->value;
     if (!group)
         group = RadioButtonGroup::create();
     group->add(element);
diff --git a/third_party/WebKit/Source/core/html/forms/RadioButtonGroupScope.h b/third_party/WebKit/Source/core/html/forms/RadioButtonGroupScope.h
index 845b489..bdc28630 100644
--- a/third_party/WebKit/Source/core/html/forms/RadioButtonGroupScope.h
+++ b/third_party/WebKit/Source/core/html/forms/RadioButtonGroupScope.h
@@ -47,8 +47,8 @@
     unsigned groupSizeFor(const HTMLInputElement*) const;
 
 private:
-    using NameToGroupMap = WillBeHeapHashMap<AtomicString, OwnPtrWillBeMember<RadioButtonGroup>, CaseFoldingHash>;
-    OwnPtrWillBeMember<NameToGroupMap> m_nameToGroupMap;
+    using NameToGroupMap = HeapHashMap<AtomicString, Member<RadioButtonGroup>, CaseFoldingHash>;
+    Member<NameToGroupMap> m_nameToGroupMap;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/html/forms/RadioInputType.cpp b/third_party/WebKit/Source/core/html/forms/RadioInputType.cpp
index 7cb71b6..63eebd8 100644
--- a/third_party/WebKit/Source/core/html/forms/RadioInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/RadioInputType.cpp
@@ -46,9 +46,9 @@
 
 using namespace HTMLNames;
 
-PassRefPtrWillBeRawPtr<InputType> RadioInputType::create(HTMLInputElement& element)
+RawPtr<InputType> RadioInputType::create(HTMLInputElement& element)
 {
-    return adoptRefWillBeNoop(new RadioInputType(element));
+    return new RadioInputType(element);
 }
 
 const AtomicString& RadioInputType::formControlType() const
@@ -116,7 +116,7 @@
         }
     }
     if (inputElement) {
-        RefPtrWillBeRawPtr<HTMLInputElement> protector(inputElement);
+        RawPtr<HTMLInputElement> protector(inputElement);
         document.setFocusedElement(inputElement, FocusParams(SelectionBehaviorOnFocus::None, WebFocusTypeNone, nullptr));
         inputElement->dispatchSimulatedClick(event, SendNoEvents);
         event->setDefaultHandled();
@@ -165,7 +165,7 @@
     return element().checked();
 }
 
-PassOwnPtrWillBeRawPtr<ClickHandlingState> RadioInputType::willDispatchClick()
+RawPtr<ClickHandlingState> RadioInputType::willDispatchClick()
 {
     // An event handler can use preventDefault or "return false" to reverse the selection we do here.
     // The ClickHandlingState object contains what we need to undo what we did here in didDispatchClick.
@@ -174,7 +174,7 @@
     // Therefore if nothing is currently selected, we won't allow the upcoming action to be "undone", since
     // we want some object in the radio group to actually get selected.
 
-    OwnPtrWillBeRawPtr<ClickHandlingState> state = adoptPtrWillBeNoop(new ClickHandlingState);
+    RawPtr<ClickHandlingState> state = adoptPtrWillBeNoop(new ClickHandlingState);
 
     state->checked = element().checked();
     state->checkedRadioButton = element().checkedRadioButtonForGroup();
diff --git a/third_party/WebKit/Source/core/html/forms/RadioInputType.h b/third_party/WebKit/Source/core/html/forms/RadioInputType.h
index 4c89d704..d2bd4c5 100644
--- a/third_party/WebKit/Source/core/html/forms/RadioInputType.h
+++ b/third_party/WebKit/Source/core/html/forms/RadioInputType.h
@@ -38,7 +38,7 @@
 
 class RadioInputType final : public BaseCheckableInputType {
 public:
-    static PassRefPtrWillBeRawPtr<InputType> create(HTMLInputElement&);
+    static RawPtr<InputType> create(HTMLInputElement&);
     CORE_EXPORT static HTMLInputElement* nextRadioButtonInGroup(HTMLInputElement* , bool forward);
 
 private:
@@ -51,7 +51,7 @@
     void handleKeyupEvent(KeyboardEvent*) override;
     bool isKeyboardFocusable() const override;
     bool shouldSendChangeEventAfterCheckedChanged() override;
-    PassOwnPtrWillBeRawPtr<ClickHandlingState> willDispatchClick() override;
+    RawPtr<ClickHandlingState> willDispatchClick() override;
     void didDispatchClick(Event*, const ClickHandlingState&) override;
     bool shouldAppearIndeterminate() const override;
 
diff --git a/third_party/WebKit/Source/core/html/forms/RangeInputType.cpp b/third_party/WebKit/Source/core/html/forms/RangeInputType.cpp
index e73d6e7..eaa525d0 100644
--- a/third_party/WebKit/Source/core/html/forms/RangeInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/RangeInputType.cpp
@@ -74,9 +74,9 @@
     return proposedValue >= minimum ? proposedValue : std::max(minimum, fallbackValue);
 }
 
-PassRefPtrWillBeRawPtr<InputType> RangeInputType::create(HTMLInputElement& element)
+RawPtr<InputType> RangeInputType::create(HTMLInputElement& element)
 {
-    return adoptRefWillBeNoop(new RangeInputType(element));
+    return new RangeInputType(element);
 }
 
 RangeInputType::RangeInputType(HTMLInputElement& element)
@@ -241,11 +241,11 @@
     ASSERT(element().shadow());
 
     Document& document = element().document();
-    RefPtrWillBeRawPtr<HTMLDivElement> track = HTMLDivElement::create(document);
+    RawPtr<HTMLDivElement> track = HTMLDivElement::create(document);
     track->setShadowPseudoId(AtomicString("-webkit-slider-runnable-track"));
     track->setAttribute(idAttr, ShadowElementNames::sliderTrack());
     track->appendChild(SliderThumbElement::create(document));
-    RefPtrWillBeRawPtr<HTMLElement> container = SliderContainerElement::create(document);
+    RawPtr<HTMLElement> container = SliderContainerElement::create(document);
     container->appendChild(track.release());
     element().userAgentShadowRoot()->appendChild(container.release());
 }
@@ -357,7 +357,7 @@
     HTMLDataListElement* dataList = element().dataList();
     if (!dataList)
         return;
-    RefPtrWillBeRawPtr<HTMLDataListOptionsCollection> options = dataList->options();
+    RawPtr<HTMLDataListOptionsCollection> options = dataList->options();
     m_tickMarkValues.reserveCapacity(options->length());
     for (unsigned i = 0; i < options->length(); ++i) {
         HTMLOptionElement* optionElement = options->item(i);
diff --git a/third_party/WebKit/Source/core/html/forms/RangeInputType.h b/third_party/WebKit/Source/core/html/forms/RangeInputType.h
index 9f74243..9380179 100644
--- a/third_party/WebKit/Source/core/html/forms/RangeInputType.h
+++ b/third_party/WebKit/Source/core/html/forms/RangeInputType.h
@@ -40,7 +40,7 @@
 
 class RangeInputType final : public InputType {
 public:
-    static PassRefPtrWillBeRawPtr<InputType> create(HTMLInputElement&);
+    static RawPtr<InputType> create(HTMLInputElement&);
 
 private:
     RangeInputType(HTMLInputElement&);
diff --git a/third_party/WebKit/Source/core/html/forms/ResetInputType.cpp b/third_party/WebKit/Source/core/html/forms/ResetInputType.cpp
index 142a130..ccd1d5f 100644
--- a/third_party/WebKit/Source/core/html/forms/ResetInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/ResetInputType.cpp
@@ -40,9 +40,9 @@
 
 namespace blink {
 
-PassRefPtrWillBeRawPtr<InputType> ResetInputType::create(HTMLInputElement& element)
+RawPtr<InputType> ResetInputType::create(HTMLInputElement& element)
 {
-    return adoptRefWillBeNoop(new ResetInputType(element));
+    return new ResetInputType(element);
 }
 
 const AtomicString& ResetInputType::formControlType() const
diff --git a/third_party/WebKit/Source/core/html/forms/ResetInputType.h b/third_party/WebKit/Source/core/html/forms/ResetInputType.h
index e1dfce5..17fc920 100644
--- a/third_party/WebKit/Source/core/html/forms/ResetInputType.h
+++ b/third_party/WebKit/Source/core/html/forms/ResetInputType.h
@@ -37,7 +37,7 @@
 
 class ResetInputType final : public BaseButtonInputType {
 public:
-    static PassRefPtrWillBeRawPtr<InputType> create(HTMLInputElement&);
+    static RawPtr<InputType> create(HTMLInputElement&);
 
 private:
     ResetInputType(HTMLInputElement& element) : BaseButtonInputType(element) { }
diff --git a/third_party/WebKit/Source/core/html/forms/SearchInputType.cpp b/third_party/WebKit/Source/core/html/forms/SearchInputType.cpp
index 044a1fa..0f25477 100644
--- a/third_party/WebKit/Source/core/html/forms/SearchInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/SearchInputType.cpp
@@ -52,9 +52,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<InputType> SearchInputType::create(HTMLInputElement& element)
+RawPtr<InputType> SearchInputType::create(HTMLInputElement& element)
 {
-    return adoptRefWillBeNoop(new SearchInputType(element));
+    return new SearchInputType(element);
 }
 
 void SearchInputType::countUsage()
@@ -98,7 +98,7 @@
 
     const String& key = event->keyIdentifier();
     if (key == "U+001B") {
-        RefPtrWillBeRawPtr<HTMLInputElement> input(element());
+        RawPtr<HTMLInputElement> input(element());
         input->setValueForUser("");
         input->onSearch();
         event->setDefaultHandled();
@@ -114,7 +114,7 @@
 
     if (!length) {
         m_searchEventTimer.stop();
-        element().document().postTask(BLINK_FROM_HERE, createSameThreadTask(&HTMLInputElement::onSearch, PassRefPtrWillBeRawPtr<HTMLInputElement>(&element())));
+        element().document().postTask(BLINK_FROM_HERE, createSameThreadTask(&HTMLInputElement::onSearch, RawPtr<HTMLInputElement>(&element())));
         return;
     }
 
diff --git a/third_party/WebKit/Source/core/html/forms/SearchInputType.h b/third_party/WebKit/Source/core/html/forms/SearchInputType.h
index db36fe2..6ca07239 100644
--- a/third_party/WebKit/Source/core/html/forms/SearchInputType.h
+++ b/third_party/WebKit/Source/core/html/forms/SearchInputType.h
@@ -38,7 +38,7 @@
 
 class SearchInputType final : public BaseTextInputType {
 public:
-    static PassRefPtrWillBeRawPtr<InputType> create(HTMLInputElement&);
+    static RawPtr<InputType> create(HTMLInputElement&);
 
 private:
     SearchInputType(HTMLInputElement&);
diff --git a/third_party/WebKit/Source/core/html/forms/SubmitInputType.cpp b/third_party/WebKit/Source/core/html/forms/SubmitInputType.cpp
index 756c662..663b70b3d 100644
--- a/third_party/WebKit/Source/core/html/forms/SubmitInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/SubmitInputType.cpp
@@ -41,10 +41,10 @@
 
 namespace blink {
 
-PassRefPtrWillBeRawPtr<InputType> SubmitInputType::create(HTMLInputElement& element)
+RawPtr<InputType> SubmitInputType::create(HTMLInputElement& element)
 {
     UseCounter::count(element.document(), UseCounter::InputTypeSubmit);
-    return adoptRefWillBeNoop(new SubmitInputType(element));
+    return new SubmitInputType(element);
 }
 
 const AtomicString& SubmitInputType::formControlType() const
@@ -65,7 +65,7 @@
 
 void SubmitInputType::handleDOMActivateEvent(Event* event)
 {
-    RefPtrWillBeRawPtr<HTMLInputElement> element(this->element());
+    RawPtr<HTMLInputElement> element(this->element());
     if (element->isDisabledFormControl() || !element->form())
         return;
     element->setActivatedSubmit(true);
diff --git a/third_party/WebKit/Source/core/html/forms/SubmitInputType.h b/third_party/WebKit/Source/core/html/forms/SubmitInputType.h
index 1c5cdb9..d41e43d 100644
--- a/third_party/WebKit/Source/core/html/forms/SubmitInputType.h
+++ b/third_party/WebKit/Source/core/html/forms/SubmitInputType.h
@@ -37,7 +37,7 @@
 
 class SubmitInputType final : public BaseButtonInputType {
 public:
-    static PassRefPtrWillBeRawPtr<InputType> create(HTMLInputElement&);
+    static RawPtr<InputType> create(HTMLInputElement&);
 
 private:
     SubmitInputType(HTMLInputElement& element) : BaseButtonInputType(element) { }
diff --git a/third_party/WebKit/Source/core/html/forms/TelephoneInputType.cpp b/third_party/WebKit/Source/core/html/forms/TelephoneInputType.cpp
index 6e5cc61..b5380a40 100644
--- a/third_party/WebKit/Source/core/html/forms/TelephoneInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/TelephoneInputType.cpp
@@ -35,9 +35,9 @@
 
 namespace blink {
 
-PassRefPtrWillBeRawPtr<InputType> TelephoneInputType::create(HTMLInputElement& element)
+RawPtr<InputType> TelephoneInputType::create(HTMLInputElement& element)
 {
-    return adoptRefWillBeNoop(new TelephoneInputType(element));
+    return new TelephoneInputType(element);
 }
 
 void TelephoneInputType::countUsage()
diff --git a/third_party/WebKit/Source/core/html/forms/TelephoneInputType.h b/third_party/WebKit/Source/core/html/forms/TelephoneInputType.h
index e78e541..6d92583 100644
--- a/third_party/WebKit/Source/core/html/forms/TelephoneInputType.h
+++ b/third_party/WebKit/Source/core/html/forms/TelephoneInputType.h
@@ -37,7 +37,7 @@
 
 class TelephoneInputType final : public BaseTextInputType {
 public:
-    static PassRefPtrWillBeRawPtr<InputType> create(HTMLInputElement&);
+    static RawPtr<InputType> create(HTMLInputElement&);
 
 private:
     TelephoneInputType(HTMLInputElement& element) : BaseTextInputType(element) { }
diff --git a/third_party/WebKit/Source/core/html/forms/TextFieldInputType.cpp b/third_party/WebKit/Source/core/html/forms/TextFieldInputType.cpp
index bc1c7126..e98f886 100644
--- a/third_party/WebKit/Source/core/html/forms/TextFieldInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/TextFieldInputType.cpp
@@ -97,9 +97,9 @@
     }
 
 public:
-    static PassRefPtrWillBeRawPtr<DataListIndicatorElement> create(Document& document)
+    static RawPtr<DataListIndicatorElement> create(Document& document)
     {
-        RefPtrWillBeRawPtr<DataListIndicatorElement> element = adoptRefWillBeNoop(new DataListIndicatorElement(document));
+        RawPtr<DataListIndicatorElement> element = new DataListIndicatorElement(document);
         element->setShadowPseudoId(AtomicString("-webkit-calendar-picker-indicator"));
         element->setAttribute(idAttr, ShadowElementNames::pickerIndicator());
         return element.release();
@@ -149,7 +149,7 @@
 {
     // Grab this input element to keep reference even if JS event handler
     // changes input type.
-    RefPtrWillBeRawPtr<HTMLInputElement> input(element());
+    RawPtr<HTMLInputElement> input(element());
 
     // We don't ask InputType::setValue to dispatch events because
     // TextFieldInputType dispatches events different way from InputType.
@@ -287,17 +287,17 @@
     bool shouldHaveDataListIndicator = element().hasValidDataListOptions();
     bool createsContainer = shouldHaveSpinButton || shouldHaveDataListIndicator || needsContainer();
 
-    RefPtrWillBeRawPtr<TextControlInnerEditorElement> innerEditor = TextControlInnerEditorElement::create(document);
+    RawPtr<TextControlInnerEditorElement> innerEditor = TextControlInnerEditorElement::create(document);
     if (!createsContainer) {
         shadowRoot->appendChild(innerEditor.release());
         return;
     }
 
-    RefPtrWillBeRawPtr<TextControlInnerContainer> container = TextControlInnerContainer::create(document);
+    RawPtr<TextControlInnerContainer> container = TextControlInnerContainer::create(document);
     container->setShadowPseudoId(AtomicString("-webkit-textfield-decoration-container"));
     shadowRoot->appendChild(container);
 
-    RefPtrWillBeRawPtr<EditingViewPortElement> editingViewPort = EditingViewPortElement::create(document);
+    RawPtr<EditingViewPortElement> editingViewPort = EditingViewPortElement::create(document);
     editingViewPort->appendChild(innerEditor.release());
     container->appendChild(editingViewPort.release());
 
@@ -342,11 +342,11 @@
             // FIXME: The following code is similar to createShadowSubtree(),
             // but they are different. We should simplify the code by making
             // containerElement mandatory.
-            RefPtrWillBeRawPtr<Element> rpContainer = TextControlInnerContainer::create(document);
+            RawPtr<Element> rpContainer = TextControlInnerContainer::create(document);
             rpContainer->setShadowPseudoId(AtomicString("-webkit-textfield-decoration-container"));
-            RefPtrWillBeRawPtr<Element> innerEditor = element().innerEditorElement();
+            RawPtr<Element> innerEditor = element().innerEditorElement();
             innerEditor->parentNode()->replaceChild(rpContainer.get(), innerEditor.get());
-            RefPtrWillBeRawPtr<Element> editingViewPort = EditingViewPortElement::create(document);
+            RawPtr<Element> editingViewPort = EditingViewPortElement::create(document);
             editingViewPort->appendChild(innerEditor.release());
             rpContainer->appendChild(editingViewPort.release());
             rpContainer->appendChild(DataListIndicatorElement::create(document));
@@ -457,7 +457,7 @@
         return;
     }
     if (!placeholder) {
-        RefPtrWillBeRawPtr<HTMLElement> newElement = HTMLDivElement::create(element().document());
+        RawPtr<HTMLElement> newElement = HTMLDivElement::create(element().document());
         placeholder = newElement.get();
         placeholder->setShadowPseudoId(AtomicString("-webkit-input-placeholder"));
         placeholder->setInlineStyleProperty(CSSPropertyDisplay, element().isPlaceholderVisible() ? CSSValueBlock : CSSValueNone, true);
@@ -533,7 +533,7 @@
 
 void TextFieldInputType::focusAndSelectSpinButtonOwner()
 {
-    RefPtrWillBeRawPtr<HTMLInputElement> input(element());
+    RawPtr<HTMLInputElement> input(element());
     input->focus();
     input->select(NotDispatchSelectEvent);
 }
diff --git a/third_party/WebKit/Source/core/html/forms/TextFieldInputType.h b/third_party/WebKit/Source/core/html/forms/TextFieldInputType.h
index b1b761c..61cb5887b 100644
--- a/third_party/WebKit/Source/core/html/forms/TextFieldInputType.h
+++ b/third_party/WebKit/Source/core/html/forms/TextFieldInputType.h
@@ -41,7 +41,7 @@
 // The class represents types of which UI contain text fields.
 // It supports not only the types for BaseTextInputType but also type=number.
 class TextFieldInputType : public InputType, protected SpinButtonElement::SpinButtonOwner {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(TextFieldInputType);
+    USING_GARBAGE_COLLECTED_MIXIN(TextFieldInputType);
 public:
     DEFINE_INLINE_VIRTUAL_TRACE() { InputType::trace(visitor); }
 
diff --git a/third_party/WebKit/Source/core/html/forms/TextInputType.cpp b/third_party/WebKit/Source/core/html/forms/TextInputType.cpp
index 6152df58..bb29ee8 100644
--- a/third_party/WebKit/Source/core/html/forms/TextInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/TextInputType.cpp
@@ -38,9 +38,9 @@
 
 using namespace HTMLNames;
 
-PassRefPtrWillBeRawPtr<InputType> TextInputType::create(HTMLInputElement& element)
+RawPtr<InputType> TextInputType::create(HTMLInputElement& element)
 {
-    return adoptRefWillBeNoop(new TextInputType(element));
+    return new TextInputType(element);
 }
 
 void TextInputType::countUsage()
diff --git a/third_party/WebKit/Source/core/html/forms/TextInputType.h b/third_party/WebKit/Source/core/html/forms/TextInputType.h
index f09aa9e..5d7dbc6 100644
--- a/third_party/WebKit/Source/core/html/forms/TextInputType.h
+++ b/third_party/WebKit/Source/core/html/forms/TextInputType.h
@@ -37,7 +37,7 @@
 
 class TextInputType final : public BaseTextInputType {
 public:
-    static PassRefPtrWillBeRawPtr<InputType> create(HTMLInputElement&);
+    static RawPtr<InputType> create(HTMLInputElement&);
 
 private:
     TextInputType(HTMLInputElement& element) : BaseTextInputType(element) { }
diff --git a/third_party/WebKit/Source/core/html/forms/TimeInputType.cpp b/third_party/WebKit/Source/core/html/forms/TimeInputType.cpp
index cbdfbf1..221378c 100644
--- a/third_party/WebKit/Source/core/html/forms/TimeInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/TimeInputType.cpp
@@ -57,9 +57,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<InputType> TimeInputType::create(HTMLInputElement& element)
+RawPtr<InputType> TimeInputType::create(HTMLInputElement& element)
 {
-    return adoptRefWillBeNoop(new TimeInputType(element));
+    return new TimeInputType(element);
 }
 
 void TimeInputType::countUsage()
diff --git a/third_party/WebKit/Source/core/html/forms/TimeInputType.h b/third_party/WebKit/Source/core/html/forms/TimeInputType.h
index 85ac111..c5f5acb9d 100644
--- a/third_party/WebKit/Source/core/html/forms/TimeInputType.h
+++ b/third_party/WebKit/Source/core/html/forms/TimeInputType.h
@@ -44,7 +44,7 @@
 
 class TimeInputType final : public BaseTimeInputType {
 public:
-    static PassRefPtrWillBeRawPtr<InputType> create(HTMLInputElement&);
+    static RawPtr<InputType> create(HTMLInputElement&);
 
 private:
     explicit TimeInputType(HTMLInputElement&);
diff --git a/third_party/WebKit/Source/core/html/forms/URLInputType.cpp b/third_party/WebKit/Source/core/html/forms/URLInputType.cpp
index d1c45fa..bc276e3 100644
--- a/third_party/WebKit/Source/core/html/forms/URLInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/URLInputType.cpp
@@ -38,9 +38,9 @@
 
 namespace blink {
 
-PassRefPtrWillBeRawPtr<InputType> URLInputType::create(HTMLInputElement& element)
+RawPtr<InputType> URLInputType::create(HTMLInputElement& element)
 {
-    return adoptRefWillBeNoop(new URLInputType(element));
+    return new URLInputType(element);
 }
 
 void URLInputType::countUsage()
diff --git a/third_party/WebKit/Source/core/html/forms/URLInputType.h b/third_party/WebKit/Source/core/html/forms/URLInputType.h
index a228028..0e6c5543 100644
--- a/third_party/WebKit/Source/core/html/forms/URLInputType.h
+++ b/third_party/WebKit/Source/core/html/forms/URLInputType.h
@@ -37,7 +37,7 @@
 
 class URLInputType final : public BaseTextInputType {
 public:
-    static PassRefPtrWillBeRawPtr<InputType> create(HTMLInputElement&);
+    static RawPtr<InputType> create(HTMLInputElement&);
 
 private:
     URLInputType(HTMLInputElement& element) : BaseTextInputType(element) { }
diff --git a/third_party/WebKit/Source/core/html/forms/WeekInputType.cpp b/third_party/WebKit/Source/core/html/forms/WeekInputType.cpp
index 8acd1e3..591fd74 100644
--- a/third_party/WebKit/Source/core/html/forms/WeekInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/WeekInputType.cpp
@@ -47,9 +47,9 @@
 static const int weekDefaultStep = 1;
 static const int weekStepScaleFactor = 604800000;
 
-PassRefPtrWillBeRawPtr<InputType> WeekInputType::create(HTMLInputElement& element)
+RawPtr<InputType> WeekInputType::create(HTMLInputElement& element)
 {
-    return adoptRefWillBeNoop(new WeekInputType(element));
+    return new WeekInputType(element);
 }
 
 void WeekInputType::countUsage()
diff --git a/third_party/WebKit/Source/core/html/forms/WeekInputType.h b/third_party/WebKit/Source/core/html/forms/WeekInputType.h
index 04a1bc90..12ff423 100644
--- a/third_party/WebKit/Source/core/html/forms/WeekInputType.h
+++ b/third_party/WebKit/Source/core/html/forms/WeekInputType.h
@@ -44,7 +44,7 @@
 
 class WeekInputType final : public BaseWeekInputType {
 public:
-    static PassRefPtrWillBeRawPtr<InputType> create(HTMLInputElement&);
+    static RawPtr<InputType> create(HTMLInputElement&);
 
 private:
     explicit WeekInputType(HTMLInputElement& element) : BaseWeekInputType(element) { }
diff --git a/third_party/WebKit/Source/core/html/imports/HTMLImport.cpp b/third_party/WebKit/Source/core/html/imports/HTMLImport.cpp
index ab5e786..7287a06 100644
--- a/third_party/WebKit/Source/core/html/imports/HTMLImport.cpp
+++ b/third_party/WebKit/Source/core/html/imports/HTMLImport.cpp
@@ -87,8 +87,8 @@
 
 void HTMLImport::recalcTreeState(HTMLImport* root)
 {
-    WillBeHeapHashMap<RawPtrWillBeMember<HTMLImport>, HTMLImportState> snapshot;
-    WillBeHeapVector<RawPtrWillBeMember<HTMLImport>> updated;
+    HeapHashMap<Member<HTMLImport>, HTMLImportState> snapshot;
+    HeapVector<Member<HTMLImport>> updated;
 
     for (HTMLImport* i = root; i; i = traverseNext(i)) {
         snapshot.add(i, i->state());
diff --git a/third_party/WebKit/Source/core/html/imports/HTMLImport.h b/third_party/WebKit/Source/core/html/imports/HTMLImport.h
index cd68791..17f71b75 100644
--- a/third_party/WebKit/Source/core/html/imports/HTMLImport.h
+++ b/third_party/WebKit/Source/core/html/imports/HTMLImport.h
@@ -91,8 +91,7 @@
 
 // The superclass of HTMLImportTreeRoot and HTMLImportChild
 // This represents the import tree data structure.
-class HTMLImport : public NoBaseWillBeGarbageCollectedFinalized<HTMLImport>, public TreeNode<HTMLImport> {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(HTMLImport);
+class HTMLImport : public GarbageCollectedFinalized<HTMLImport>, public TreeNode<HTMLImport> {
 public:
     enum SyncMode {
         Sync  = 0,
diff --git a/third_party/WebKit/Source/core/html/imports/HTMLImportChild.h b/third_party/WebKit/Source/core/html/imports/HTMLImportChild.h
index bab4ec2..35a52dd 100644
--- a/third_party/WebKit/Source/core/html/imports/HTMLImportChild.h
+++ b/third_party/WebKit/Source/core/html/imports/HTMLImportChild.h
@@ -93,12 +93,12 @@
     void invalidateCustomElementMicrotaskStep();
 
     KURL m_url;
-    WeakPtrWillBeWeakMember<CustomElementMicrotaskImportStep> m_customElementMicrotaskStep;
+    WeakMember<CustomElementMicrotaskImportStep> m_customElementMicrotaskStep;
 #if !ENABLE(OILPAN)
     WeakPtrFactory<HTMLImportChild> m_weakFactory;
 #endif
-    RawPtrWillBeMember<HTMLImportLoader> m_loader;
-    RawPtrWillBeMember<HTMLImportChildClient> m_client;
+    Member<HTMLImportLoader> m_loader;
+    Member<HTMLImportChildClient> m_client;
 };
 
 inline HTMLImportChild* toHTMLImportChild(HTMLImport* import)
diff --git a/third_party/WebKit/Source/core/html/imports/HTMLImportChildClient.h b/third_party/WebKit/Source/core/html/imports/HTMLImportChildClient.h
index 198ebde..e249ca3 100644
--- a/third_party/WebKit/Source/core/html/imports/HTMLImportChildClient.h
+++ b/third_party/WebKit/Source/core/html/imports/HTMLImportChildClient.h
@@ -36,7 +36,7 @@
 class HTMLImportChild;
 class HTMLLinkElement;
 
-class HTMLImportChildClient : public WillBeGarbageCollectedMixin {
+class HTMLImportChildClient : public GarbageCollectedMixin {
 public:
     virtual ~HTMLImportChildClient() { }
     virtual void didFinish() = 0;
diff --git a/third_party/WebKit/Source/core/html/imports/HTMLImportLoader.cpp b/third_party/WebKit/Source/core/html/imports/HTMLImportLoader.cpp
index 4cca829..d2453a3 100644
--- a/third_party/WebKit/Source/core/html/imports/HTMLImportLoader.cpp
+++ b/third_party/WebKit/Source/core/html/imports/HTMLImportLoader.cpp
@@ -69,7 +69,7 @@
     clearResource();
 }
 
-void HTMLImportLoader::startLoading(const PassRefPtrWillBeRawPtr<RawResource>& resource)
+void HTMLImportLoader::startLoading(const RawPtr<RawResource>& resource)
 {
     setResource(resource);
 }
@@ -88,7 +88,7 @@
 
 void HTMLImportLoader::dataReceived(Resource*, const char* data, size_t length)
 {
-    RefPtrWillBeRawPtr<DocumentWriter> protectingWriter(m_writer.get());
+    RawPtr<DocumentWriter> protectingWriter(m_writer.get());
     m_writer->addData(data, length);
 }
 
@@ -143,7 +143,7 @@
     m_state = state;
 
     if (m_state == StateParsed || m_state == StateError || m_state == StateWritten) {
-        if (RefPtrWillBeRawPtr<DocumentWriter> writer = m_writer.release())
+        if (RawPtr<DocumentWriter> writer = m_writer.release())
             writer->end();
     }
 
@@ -215,7 +215,7 @@
     return firstImport()->state().shouldBlockScriptExecution();
 }
 
-PassRefPtrWillBeRawPtr<CustomElementSyncMicrotaskQueue> HTMLImportLoader::microtaskQueue() const
+RawPtr<CustomElementSyncMicrotaskQueue> HTMLImportLoader::microtaskQueue() const
 {
     return m_microtaskQueue;
 }
diff --git a/third_party/WebKit/Source/core/html/imports/HTMLImportLoader.h b/third_party/WebKit/Source/core/html/imports/HTMLImportLoader.h
index 1351f2d..cdeee8ca 100644
--- a/third_party/WebKit/Source/core/html/imports/HTMLImportLoader.h
+++ b/third_party/WebKit/Source/core/html/imports/HTMLImportLoader.h
@@ -54,9 +54,8 @@
 // HTMLImportLoader is owned by HTMLImportsController.
 //
 //
-class HTMLImportLoader final : public NoBaseWillBeGarbageCollectedFinalized<HTMLImportLoader>, public ResourceOwner<RawResource>, public DocumentParserClient {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(HTMLImportLoader);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(HTMLImportLoader);
+class HTMLImportLoader final : public GarbageCollectedFinalized<HTMLImportLoader>, public ResourceOwner<RawResource>, public DocumentParserClient {
+    USING_GARBAGE_COLLECTED_MIXIN(HTMLImportLoader);
 public:
     enum State {
         StateLoading,
@@ -66,9 +65,9 @@
         StateError
     };
 
-    static PassOwnPtrWillBeRawPtr<HTMLImportLoader> create(HTMLImportsController* controller)
+    static RawPtr<HTMLImportLoader> create(HTMLImportsController* controller)
     {
-        return adoptPtrWillBeNoop(new HTMLImportLoader(controller));
+        return new HTMLImportLoader(controller);
     }
 
     ~HTMLImportLoader() override;
@@ -86,14 +85,14 @@
     bool hasError() const { return m_state == StateError; }
     bool shouldBlockScriptExecution() const;
 
-    void startLoading(const PassRefPtrWillBeRawPtr<RawResource>&);
+    void startLoading(const RawPtr<RawResource>&);
 
     // Tells the loader that all of the import's stylesheets finished
     // loading.
     // Called by Document::didRemoveAllPendingStylesheet.
     void didRemoveAllPendingStylesheet();
 
-    PassRefPtrWillBeRawPtr<CustomElementSyncMicrotaskQueue> microtaskQueue() const;
+    RawPtr<CustomElementSyncMicrotaskQueue> microtaskQueue() const;
 
     DECLARE_VIRTUAL_TRACE();
 
@@ -123,12 +122,12 @@
     void clear();
 #endif
 
-    RawPtrWillBeMember<HTMLImportsController> m_controller;
-    WillBeHeapVector<RawPtrWillBeMember<HTMLImportChild>> m_imports;
+    Member<HTMLImportsController> m_controller;
+    HeapVector<Member<HTMLImportChild>> m_imports;
     State m_state;
-    RefPtrWillBeMember<Document> m_document;
-    RefPtrWillBeMember<DocumentWriter> m_writer;
-    RefPtrWillBeMember<CustomElementSyncMicrotaskQueue> m_microtaskQueue;
+    Member<Document> m_document;
+    Member<DocumentWriter> m_writer;
+    Member<CustomElementSyncMicrotaskQueue> m_microtaskQueue;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/html/imports/HTMLImportStateResolver.h b/third_party/WebKit/Source/core/html/imports/HTMLImportStateResolver.h
index 54230cb..0b67bae7 100644
--- a/third_party/WebKit/Source/core/html/imports/HTMLImportStateResolver.h
+++ b/third_party/WebKit/Source/core/html/imports/HTMLImportStateResolver.h
@@ -54,7 +54,7 @@
     bool shouldBlockScriptExecution() const;
     bool isActive() const;
 
-    RawPtrWillBeMember<HTMLImport> m_import;
+    Member<HTMLImport> m_import;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/html/imports/HTMLImportTreeRoot.cpp b/third_party/WebKit/Source/core/html/imports/HTMLImportTreeRoot.cpp
index 9cb9909..7c25adc2 100644
--- a/third_party/WebKit/Source/core/html/imports/HTMLImportTreeRoot.cpp
+++ b/third_party/WebKit/Source/core/html/imports/HTMLImportTreeRoot.cpp
@@ -11,9 +11,9 @@
 
 namespace blink {
 
-PassOwnPtrWillBeRawPtr<HTMLImportTreeRoot> HTMLImportTreeRoot::create(Document* document)
+RawPtr<HTMLImportTreeRoot> HTMLImportTreeRoot::create(Document* document)
 {
-    return adoptPtrWillBeNoop(new HTMLImportTreeRoot(document));
+    return new HTMLImportTreeRoot(document);
 }
 
 HTMLImportTreeRoot::HTMLImportTreeRoot(Document* document)
@@ -78,7 +78,7 @@
     m_recalcTimer.startOneShot(0, BLINK_FROM_HERE);
 }
 
-HTMLImportChild* HTMLImportTreeRoot::add(PassOwnPtrWillBeRawPtr<HTMLImportChild> child)
+HTMLImportChild* HTMLImportTreeRoot::add(RawPtr<HTMLImportChild> child)
 {
     m_imports.append(child);
     return m_imports.last().get();
@@ -98,7 +98,7 @@
 void HTMLImportTreeRoot::recalcTimerFired(Timer<HTMLImportTreeRoot>*)
 {
     ASSERT(m_document);
-    RefPtrWillBeRawPtr<Document> protectDocument(m_document.get());
+    RawPtr<Document> protectDocument(m_document.get());
     HTMLImport::recalcTreeState(this);
 }
 
diff --git a/third_party/WebKit/Source/core/html/imports/HTMLImportTreeRoot.h b/third_party/WebKit/Source/core/html/imports/HTMLImportTreeRoot.h
index 0b043f5..ba7feac 100644
--- a/third_party/WebKit/Source/core/html/imports/HTMLImportTreeRoot.h
+++ b/third_party/WebKit/Source/core/html/imports/HTMLImportTreeRoot.h
@@ -16,7 +16,7 @@
 
 class HTMLImportTreeRoot : public HTMLImport {
 public:
-    static PassOwnPtrWillBeRawPtr<HTMLImportTreeRoot> create(Document*);
+    static RawPtr<HTMLImportTreeRoot> create(Document*);
 
     ~HTMLImportTreeRoot() override;
     void dispose();
@@ -29,7 +29,7 @@
 
     void scheduleRecalcState();
 
-    HTMLImportChild* add(PassOwnPtrWillBeRawPtr<HTMLImportChild>);
+    HTMLImportChild* add(RawPtr<HTMLImportChild>);
     HTMLImportChild* find(const KURL&) const;
 
     DECLARE_VIRTUAL_TRACE();
@@ -39,11 +39,11 @@
 
     void recalcTimerFired(Timer<HTMLImportTreeRoot>*);
 
-    RawPtrWillBeMember<Document> m_document;
+    Member<Document> m_document;
     Timer<HTMLImportTreeRoot> m_recalcTimer;
 
     // List of import which has been loaded or being loaded.
-    typedef WillBeHeapVector<OwnPtrWillBeMember<HTMLImportChild>> ImportList;
+    typedef HeapVector<Member<HTMLImportChild>> ImportList;
     ImportList m_imports;
 };
 
diff --git a/third_party/WebKit/Source/core/html/imports/HTMLImportsController.cpp b/third_party/WebKit/Source/core/html/imports/HTMLImportsController.cpp
index f73104b9..1b9e7c0 100644
--- a/third_party/WebKit/Source/core/html/imports/HTMLImportsController.cpp
+++ b/third_party/WebKit/Source/core/html/imports/HTMLImportsController.cpp
@@ -48,9 +48,9 @@
 
 void HTMLImportsController::provideTo(Document& master)
 {
-    OwnPtrWillBeRawPtr<HTMLImportsController> controller = adoptPtrWillBeNoop(new HTMLImportsController(master));
+    RawPtr<HTMLImportsController> controller = new HTMLImportsController(master);
     master.setImportsController(controller.get());
-    WillBeHeapSupplement<Document>::provideTo(master, supplementName(), controller.release());
+    HeapSupplement<Document>::provideTo(master, supplementName(), controller.release());
 }
 
 void HTMLImportsController::removeFrom(Document& master)
@@ -58,7 +58,7 @@
     HTMLImportsController* controller = master.importsController();
     ASSERT(controller);
     controller->dispose();
-    static_cast<WillBeHeapSupplementable<Document>&>(master).removeSupplement(supplementName());
+    static_cast<HeapSupplementable<Document>&>(master).removeSupplement(supplementName());
     master.setImportsController(nullptr);
 }
 
@@ -104,7 +104,7 @@
     if (mode == HTMLImport::Async)
         UseCounter::count(root()->document(), UseCounter::HTMLImportsAsyncAttribute);
 
-    OwnPtrWillBeRawPtr<HTMLImportChild> child = adoptPtrWillBeNoop(new HTMLImportChild(url, loader, mode));
+    RawPtr<HTMLImportChild> child = new HTMLImportChild(url, loader, mode);
     child->setClient(client);
     parent->appendImport(child.get());
     loader->addImport(child.get());
@@ -125,7 +125,7 @@
     }
 
     request.setCrossOriginAccessControl(master()->getSecurityOrigin(), CrossOriginAttributeAnonymous);
-    RefPtrWillBeRawPtr<RawResource> resource = RawResource::fetchImport(request, parent->document()->fetcher());
+    RawPtr<RawResource> resource = RawResource::fetchImport(request, parent->document()->fetcher());
     if (!resource)
         return nullptr;
 
@@ -176,7 +176,7 @@
 {
     visitor->trace(m_root);
     visitor->trace(m_loaders);
-    WillBeHeapSupplement<Document>::trace(visitor);
+    HeapSupplement<Document>::trace(visitor);
 }
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/html/imports/HTMLImportsController.h b/third_party/WebKit/Source/core/html/imports/HTMLImportsController.h
index 37c4e69..e23614ac 100644
--- a/third_party/WebKit/Source/core/html/imports/HTMLImportsController.h
+++ b/third_party/WebKit/Source/core/html/imports/HTMLImportsController.h
@@ -46,9 +46,8 @@
 class HTMLImportTreeRoot;
 class KURL;
 
-class HTMLImportsController final : public NoBaseWillBeGarbageCollectedFinalized<HTMLImportsController>, public WillBeHeapSupplement<Document> {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(HTMLImportsController);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(HTMLImportsController);
+class HTMLImportsController final : public GarbageCollectedFinalized<HTMLImportsController>, public HeapSupplement<Document> {
+    USING_GARBAGE_COLLECTED_MIXIN(HTMLImportsController);
 public:
     static const char* supplementName();
     static void provideTo(Document&);
@@ -78,8 +77,8 @@
 
     void dispose();
 
-    OwnPtrWillBeMember<HTMLImportTreeRoot> m_root;
-    using LoaderList = WillBeHeapVector<OwnPtrWillBeMember<HTMLImportLoader>>;
+    Member<HTMLImportTreeRoot> m_root;
+    using LoaderList = HeapVector<Member<HTMLImportLoader>>;
     LoaderList m_loaders;
 };
 
diff --git a/third_party/WebKit/Source/core/html/imports/LinkImport.cpp b/third_party/WebKit/Source/core/html/imports/LinkImport.cpp
index 340a8408..035c112 100644
--- a/third_party/WebKit/Source/core/html/imports/LinkImport.cpp
+++ b/third_party/WebKit/Source/core/html/imports/LinkImport.cpp
@@ -39,9 +39,9 @@
 
 namespace blink {
 
-PassOwnPtrWillBeRawPtr<LinkImport> LinkImport::create(HTMLLinkElement* owner)
+RawPtr<LinkImport> LinkImport::create(HTMLLinkElement* owner)
 {
-    return adoptPtrWillBeNoop(new LinkImport(owner));
+    return new LinkImport(owner);
 }
 
 LinkImport::LinkImport(HTMLLinkElement* owner)
diff --git a/third_party/WebKit/Source/core/html/imports/LinkImport.h b/third_party/WebKit/Source/core/html/imports/LinkImport.h
index 028674bb4..e1298f8 100644
--- a/third_party/WebKit/Source/core/html/imports/LinkImport.h
+++ b/third_party/WebKit/Source/core/html/imports/LinkImport.h
@@ -46,11 +46,10 @@
 // A LinkResource subclasss used for @rel=import.
 //
 class LinkImport final : public LinkResource, public HTMLImportChildClient {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(LinkImport);
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(LinkImport);
+    USING_GARBAGE_COLLECTED_MIXIN(LinkImport);
 public:
 
-    static PassOwnPtrWillBeRawPtr<LinkImport> create(HTMLLinkElement* owner);
+    static RawPtr<LinkImport> create(HTMLLinkElement* owner);
 
     explicit LinkImport(HTMLLinkElement* owner);
     ~LinkImport() override;
@@ -71,7 +70,7 @@
     Document* importedDocument() const;
 
 private:
-    RawPtrWillBeMember<HTMLImportChild> m_child;
+    Member<HTMLImportChild> m_child;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/html/parser/HTMLConstructionSite.cpp b/third_party/WebKit/Source/core/html/parser/HTMLConstructionSite.cpp
index 0f4ba01..2d912388 100644
--- a/third_party/WebKit/Source/core/html/parser/HTMLConstructionSite.cpp
+++ b/third_party/WebKit/Source/core/html/parser/HTMLConstructionSite.cpp
@@ -271,7 +271,7 @@
     m_taskQueue.append(task);
 }
 
-void HTMLConstructionSite::attachLater(ContainerNode* parent, PassRefPtrWillBeRawPtr<Node> prpChild, bool selfClosing)
+void HTMLConstructionSite::attachLater(ContainerNode* parent, RawPtr<Node> prpChild, bool selfClosing)
 {
     ASSERT(scriptingContentIsAllowed(m_parserContentPolicy) || !prpChild.get()->isElementNode() || !toScriptLoaderIfPossible(toElement(prpChild.get())));
     ASSERT(pluginContentIsAllowed(m_parserContentPolicy) || !isHTMLPlugInElement(prpChild));
@@ -374,7 +374,7 @@
     m_form = form;
 }
 
-PassRefPtrWillBeRawPtr<HTMLFormElement> HTMLConstructionSite::takeForm()
+RawPtr<HTMLFormElement> HTMLConstructionSite::takeForm()
 {
     return m_form.release();
 }
@@ -392,7 +392,7 @@
 void HTMLConstructionSite::insertHTMLHtmlStartTagBeforeHTML(AtomicHTMLToken* token)
 {
     ASSERT(m_document);
-    RefPtrWillBeRawPtr<HTMLHtmlElement> element = HTMLHtmlElement::create(*m_document);
+    RawPtr<HTMLHtmlElement> element = HTMLHtmlElement::create(*m_document);
     setAttributes(element.get(), token, m_parserContentPolicy);
     attachLater(m_attachmentRoot, element);
     m_openElements.pushHTMLHtmlElement(HTMLStackItem::create(element, token));
@@ -551,7 +551,7 @@
 
     const String& publicId = StringImpl::create8BitIfPossible(token->publicIdentifier());
     const String& systemId = StringImpl::create8BitIfPossible(token->systemIdentifier());
-    RefPtrWillBeRawPtr<DocumentType> doctype = DocumentType::create(m_document, token->name(), publicId, systemId);
+    RawPtr<DocumentType> doctype = DocumentType::create(m_document, token->name(), publicId, systemId);
     attachLater(m_attachmentRoot, doctype.release());
 
     // DOCTYPE nodes are only processed when parsing fragments w/o contextElements, which
@@ -601,7 +601,7 @@
 void HTMLConstructionSite::insertHTMLBodyElement(AtomicHTMLToken* token)
 {
     ASSERT(!shouldFosterParent());
-    RefPtrWillBeRawPtr<HTMLElement> body = createHTMLElement(token);
+    RawPtr<HTMLElement> body = createHTMLElement(token);
     attachLater(currentNode(), body);
     m_openElements.pushHTMLBodyElement(HTMLStackItem::create(body.release(), token));
     if (m_document && m_document->frame())
@@ -610,7 +610,7 @@
 
 void HTMLConstructionSite::insertHTMLFormElement(AtomicHTMLToken* token, bool isDemoted)
 {
-    RefPtrWillBeRawPtr<HTMLElement> element = createHTMLElement(token);
+    RawPtr<HTMLElement> element = createHTMLElement(token);
     ASSERT(isHTMLFormElement(element));
     m_form = static_pointer_cast<HTMLFormElement>(element.release());
     m_form->setDemoted(isDemoted);
@@ -620,7 +620,7 @@
 
 void HTMLConstructionSite::insertHTMLElement(AtomicHTMLToken* token)
 {
-    RefPtrWillBeRawPtr<HTMLElement> element = createHTMLElement(token);
+    RawPtr<HTMLElement> element = createHTMLElement(token);
     attachLater(currentNode(), element);
     m_openElements.push(HTMLStackItem::create(element.release(), token));
 }
@@ -654,7 +654,7 @@
     // those flags or effects thereof.
     const bool parserInserted = m_parserContentPolicy != AllowScriptingContentAndDoNotMarkAlreadyStarted;
     const bool alreadyStarted = m_isParsingFragment && parserInserted;
-    RefPtrWillBeRawPtr<HTMLScriptElement> element = HTMLScriptElement::create(ownerDocumentForCurrentNode(), parserInserted, alreadyStarted);
+    RawPtr<HTMLScriptElement> element = HTMLScriptElement::create(ownerDocumentForCurrentNode(), parserInserted, alreadyStarted);
     setAttributes(element.get(), token, m_parserContentPolicy);
     if (scriptingContentIsAllowed(m_parserContentPolicy))
         attachLater(currentNode(), element);
@@ -666,7 +666,7 @@
     ASSERT(token->type() == HTMLToken::StartTag);
     DVLOG(1) << "Not implemented."; // parseError when xmlns or xmlns:xlink are wrong.
 
-    RefPtrWillBeRawPtr<Element> element = createElement(token, namespaceURI);
+    RawPtr<Element> element = createElement(token, namespaceURI);
     if (scriptingContentIsAllowed(m_parserContentPolicy) || !toScriptLoaderIfPossible(element.get()))
         attachLater(currentNode(), element, token->selfClosing());
     if (!token->selfClosing())
@@ -730,10 +730,10 @@
     queueTask(task);
 }
 
-PassRefPtrWillBeRawPtr<Element> HTMLConstructionSite::createElement(AtomicHTMLToken* token, const AtomicString& namespaceURI)
+RawPtr<Element> HTMLConstructionSite::createElement(AtomicHTMLToken* token, const AtomicString& namespaceURI)
 {
     QualifiedName tagName(nullAtom, token->name(), namespaceURI);
-    RefPtrWillBeRawPtr<Element> element = ownerDocumentForCurrentNode().createElement(tagName, true);
+    RawPtr<Element> element = ownerDocumentForCurrentNode().createElement(tagName, true);
     setAttributes(element.get(), token, m_parserContentPolicy);
     return element.release();
 }
@@ -745,7 +745,7 @@
     return currentNode()->document();
 }
 
-PassRefPtrWillBeRawPtr<HTMLElement> HTMLConstructionSite::createHTMLElement(AtomicHTMLToken* token)
+RawPtr<HTMLElement> HTMLConstructionSite::createHTMLElement(AtomicHTMLToken* token)
 {
     Document& document = ownerDocumentForCurrentNode();
     // Only associate the element with the current form if we're creating the new element
@@ -754,14 +754,14 @@
     // FIXME: This can't use HTMLConstructionSite::createElement because we
     // have to pass the current form element.  We should rework form association
     // to occur after construction to allow better code sharing here.
-    RefPtrWillBeRawPtr<HTMLElement> element = HTMLElementFactory::createHTMLElement(token->name(), document, form, true);
+    RawPtr<HTMLElement> element = HTMLElementFactory::createHTMLElement(token->name(), document, form, true);
     setAttributes(element.get(), token, m_parserContentPolicy);
     return element.release();
 }
 
-PassRefPtrWillBeRawPtr<HTMLStackItem> HTMLConstructionSite::createElementFromSavedToken(HTMLStackItem* item)
+RawPtr<HTMLStackItem> HTMLConstructionSite::createElementFromSavedToken(HTMLStackItem* item)
 {
-    RefPtrWillBeRawPtr<Element> element;
+    RawPtr<Element> element;
     // NOTE: Moving from item -> token -> item copies the Attribute vector twice!
     AtomicHTMLToken fakeToken(HTMLToken::StartTag, item->localName(), item->attributes());
     if (item->namespaceURI() == HTMLNames::xhtmlNamespaceURI)
@@ -798,7 +798,7 @@
     ASSERT(unopenEntryIndex < m_activeFormattingElements.size());
     for (; unopenEntryIndex < m_activeFormattingElements.size(); ++unopenEntryIndex) {
         HTMLFormattingElementList::Entry& unopenedEntry = m_activeFormattingElements.at(unopenEntryIndex);
-        RefPtrWillBeRawPtr<HTMLStackItem> reconstructed = createElementFromSavedToken(unopenedEntry.stackItem().get());
+        RawPtr<HTMLStackItem> reconstructed = createElementFromSavedToken(unopenedEntry.stackItem().get());
         attachLater(currentNode(), reconstructed->node());
         m_openElements.push(reconstructed);
         unopenedEntry.replaceElement(reconstructed.release());
@@ -864,7 +864,7 @@
         && currentStackItem()->causesFosterParenting();
 }
 
-void HTMLConstructionSite::fosterParent(PassRefPtrWillBeRawPtr<Node> node)
+void HTMLConstructionSite::fosterParent(RawPtr<Node> node)
 {
     HTMLConstructionSiteTask task(HTMLConstructionSiteTask::Insert);
     findFosterSite(task);
diff --git a/third_party/WebKit/Source/core/html/parser/HTMLConstructionSite.h b/third_party/WebKit/Source/core/html/parser/HTMLConstructionSite.h
index 90daa17..4e73b79 100644
--- a/third_party/WebKit/Source/core/html/parser/HTMLConstructionSite.h
+++ b/third_party/WebKit/Source/core/html/parser/HTMLConstructionSite.h
@@ -72,9 +72,9 @@
     }
 
     Operation operation;
-    RefPtrWillBeMember<ContainerNode> parent;
-    RefPtrWillBeMember<Node> nextChild;
-    RefPtrWillBeMember<Node> child;
+    Member<ContainerNode> parent;
+    Member<Node> nextChild;
+    Member<Node> child;
     bool selfClosing;
 };
 
@@ -168,10 +168,10 @@
     void insertAlreadyParsedChild(HTMLStackItem* newParent, HTMLElementStack::ElementRecord* child);
     void takeAllChildren(HTMLStackItem* newParent, HTMLElementStack::ElementRecord* oldParent);
 
-    PassRefPtrWillBeRawPtr<HTMLStackItem> createElementFromSavedToken(HTMLStackItem*);
+    RawPtr<HTMLStackItem> createElementFromSavedToken(HTMLStackItem*);
 
     bool shouldFosterParent() const;
-    void fosterParent(PassRefPtrWillBeRawPtr<Node>);
+    void fosterParent(RawPtr<Node>);
 
     bool indexOfFirstUnopenFormattingElement(unsigned& firstUnopenElementIndex) const;
     void reconstructTheActiveFormattingElements();
@@ -197,7 +197,7 @@
 
     void setForm(HTMLFormElement*);
     HTMLFormElement* form() const { return m_form.get(); }
-    PassRefPtrWillBeRawPtr<HTMLFormElement> takeForm();
+    RawPtr<HTMLFormElement> takeForm();
 
     ParserContentPolicy getParserContentPolicy() { return m_parserContentPolicy; }
 
@@ -225,17 +225,17 @@
 private:
     // In the common case, this queue will have only one task because most
     // tokens produce only one DOM mutation.
-    typedef WillBeHeapVector<HTMLConstructionSiteTask, 1> TaskQueue;
+    typedef HeapVector<HTMLConstructionSiteTask, 1> TaskQueue;
 
     void setCompatibilityMode(Document::CompatibilityMode);
     void setCompatibilityModeFromDoctype(const String& name, const String& publicId, const String& systemId);
 
-    void attachLater(ContainerNode* parent, PassRefPtrWillBeRawPtr<Node> child, bool selfClosing = false);
+    void attachLater(ContainerNode* parent, RawPtr<Node> child, bool selfClosing = false);
 
     void findFosterSite(HTMLConstructionSiteTask&);
 
-    PassRefPtrWillBeRawPtr<HTMLElement> createHTMLElement(AtomicHTMLToken*);
-    PassRefPtrWillBeRawPtr<Element> createElement(AtomicHTMLToken*, const AtomicString& namespaceURI);
+    RawPtr<HTMLElement> createHTMLElement(AtomicHTMLToken*);
+    RawPtr<Element> createElement(AtomicHTMLToken*, const AtomicString& namespaceURI);
 
     void mergeAttributesFromTokenIntoElement(AtomicHTMLToken*, Element*);
     void dispatchDocumentElementAvailableIfNeeded();
@@ -243,15 +243,15 @@
     void executeTask(HTMLConstructionSiteTask&);
     void queueTask(const HTMLConstructionSiteTask&);
 
-    RawPtrWillBeMember<Document> m_document;
+    Member<Document> m_document;
 
     // This is the root ContainerNode to which the parser attaches all newly
     // constructed nodes. It points to a DocumentFragment when parsing fragments
     // and a Document in all other cases.
-    RawPtrWillBeMember<ContainerNode> m_attachmentRoot;
+    Member<ContainerNode> m_attachmentRoot;
 
-    RefPtrWillBeMember<HTMLStackItem> m_head;
-    RefPtrWillBeMember<HTMLFormElement> m_form;
+    Member<HTMLStackItem> m_head;
+    Member<HTMLFormElement> m_form;
     mutable HTMLElementStack m_openElements;
     mutable HTMLFormattingElementList m_activeFormattingElements;
 
@@ -265,7 +265,7 @@
         {
         }
 
-        void append(PassRefPtrWillBeRawPtr<ContainerNode> newParent, PassRefPtrWillBeRawPtr<Node> newNextChild, const String& newString, WhitespaceMode newWhitespaceMode)
+        void append(RawPtr<ContainerNode> newParent, RawPtr<Node> newNextChild, const String& newString, WhitespaceMode newWhitespaceMode)
         {
             ASSERT(!parent || parent == newParent);
             parent = newParent;
@@ -300,8 +300,8 @@
 
         DECLARE_TRACE();
 
-        RefPtrWillBeMember<ContainerNode> parent;
-        RefPtrWillBeMember<Node> nextChild;
+        Member<ContainerNode> parent;
+        Member<Node> nextChild;
         StringBuilder stringBuilder;
         WhitespaceMode whitespaceMode;
     };
diff --git a/third_party/WebKit/Source/core/html/parser/HTMLDocumentParser.cpp b/third_party/WebKit/Source/core/html/parser/HTMLDocumentParser.cpp
index 71e9566..9845ac6 100644
--- a/third_party/WebKit/Source/core/html/parser/HTMLDocumentParser.cpp
+++ b/third_party/WebKit/Source/core/html/parser/HTMLDocumentParser.cpp
@@ -87,12 +87,12 @@
     return HTMLTokenizer::DataState;
 }
 
-class ParserDataReceiver final : public RefCountedWillBeGarbageCollectedFinalized<ParserDataReceiver>, public DocumentLifecycleObserver {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(ParserDataReceiver);
+class ParserDataReceiver final : public GarbageCollectedFinalized<ParserDataReceiver>, public DocumentLifecycleObserver {
+    USING_GARBAGE_COLLECTED_MIXIN(ParserDataReceiver);
 public:
-    static PassRefPtrWillBeRawPtr<ParserDataReceiver> create(WeakPtr<BackgroundHTMLParser> backgroundParser, Document* document)
+    static RawPtr<ParserDataReceiver> create(WeakPtr<BackgroundHTMLParser> backgroundParser, Document* document)
     {
-        return adoptRefWillBeNoop(new ParserDataReceiver(backgroundParser, document));
+        return new ParserDataReceiver(backgroundParser, document);
     }
 
     DEFINE_INLINE_VIRTUAL_TRACE()
@@ -234,7 +234,7 @@
 
     // pumpTokenizer can cause this parser to be detached from the Document,
     // but we need to ensure it isn't deleted yet.
-    RefPtrWillBeRawPtr<HTMLDocumentParser> protect(this);
+    RawPtr<HTMLDocumentParser> protect(this);
 
     // NOTE: This pump should only ever emit buffered character tokens.
     if (m_tokenizer) {
@@ -285,7 +285,7 @@
 
     // pumpPendingSpeculations can cause this parser to be detached from the Document,
     // but we need to ensure it isn't deleted yet.
-    RefPtrWillBeRawPtr<HTMLDocumentParser> protect(this);
+    RawPtr<HTMLDocumentParser> protect(this);
     pumpPendingSpeculations();
 }
 
@@ -294,7 +294,7 @@
     ASSERT(scriptingContentIsAllowed(getParserContentPolicy()));
 
     TextPosition scriptStartPosition = TextPosition::belowRangePosition();
-    RefPtrWillBeRawPtr<Element> scriptElement = m_treeBuilder->takeScriptToProcess(scriptStartPosition);
+    RawPtr<Element> scriptElement = m_treeBuilder->takeScriptToProcess(scriptStartPosition);
     // We will not have a scriptRunner when parsing a DocumentFragment.
     if (m_scriptRunner)
         m_scriptRunner->execute(scriptElement.release(), scriptStartPosition);
@@ -734,7 +734,7 @@
 
     // pumpTokenizer can cause this parser to be detached from the Document,
     // but we need to ensure it isn't deleted yet.
-    RefPtrWillBeRawPtr<HTMLDocumentParser> protect(this);
+    RawPtr<HTMLDocumentParser> protect(this);
 
     if (!m_tokenizer) {
         ASSERT(!inPumpSession());
@@ -822,7 +822,7 @@
 
     // pumpTokenizer can cause this parser to be detached from the Document,
     // but we need to ensure it isn't deleted yet.
-    RefPtrWillBeRawPtr<HTMLDocumentParser> protect(this);
+    RawPtr<HTMLDocumentParser> protect(this);
     TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("blink.debug"), "HTMLDocumentParser::append", "size", inputSource.length());
     const SegmentedString source(inputSource);
 
@@ -909,7 +909,7 @@
     // However, FrameLoader::stop calls DocumentParser::finish unconditionally.
 
     // flush may ending up executing arbitrary script, and possibly detach the parser.
-    RefPtrWillBeRawPtr<HTMLDocumentParser> protect(this);
+    RawPtr<HTMLDocumentParser> protect(this);
     flush();
     if (isDetached())
         return;
@@ -1000,7 +1000,7 @@
         ASSERT(!m_lastChunkBeforeScript);
         // processParsedChunkFromBackgroundParser can cause this parser to be detached from the Document,
         // but we need to ensure it isn't deleted yet.
-        RefPtrWillBeRawPtr<HTMLDocumentParser> protect(this);
+        RawPtr<HTMLDocumentParser> protect(this);
         pumpPendingSpeculations();
         return;
     }
@@ -1021,7 +1021,7 @@
 {
     // pumpTokenizer can cause this parser to be detached from the Document,
     // but we need to ensure it isn't deleted yet.
-    RefPtrWillBeRawPtr<HTMLDocumentParser> protect(this);
+    RawPtr<HTMLDocumentParser> protect(this);
 
     ASSERT(m_scriptRunner);
     ASSERT(!isExecutingScript());
@@ -1053,7 +1053,7 @@
 
     // pumpTokenizer can cause this parser to be detached from the Document,
     // but we need to ensure it isn't deleted yet.
-    RefPtrWillBeRawPtr<HTMLDocumentParser> protect(this);
+    RawPtr<HTMLDocumentParser> protect(this);
     m_scriptRunner->executeScriptsWaitingForResources();
     if (!isWaitingForScripts())
         resumeParsingAfterScriptExecution();
@@ -1061,7 +1061,7 @@
 
 void HTMLDocumentParser::parseDocumentFragment(const String& source, DocumentFragment* fragment, Element* contextElement, ParserContentPolicy parserContentPolicy)
 {
-    RefPtrWillBeRawPtr<HTMLDocumentParser> parser = HTMLDocumentParser::create(fragment, contextElement, parserContentPolicy);
+    RawPtr<HTMLDocumentParser> parser = HTMLDocumentParser::create(fragment, contextElement, parserContentPolicy);
     parser->append(source);
     parser->finish();
     parser->detach(); // Allows ~DocumentParser to assert it was detached before destruction.
diff --git a/third_party/WebKit/Source/core/html/parser/HTMLDocumentParser.h b/third_party/WebKit/Source/core/html/parser/HTMLDocumentParser.h
index 833ef464..9cf4d32 100644
--- a/third_party/WebKit/Source/core/html/parser/HTMLDocumentParser.h
+++ b/third_party/WebKit/Source/core/html/parser/HTMLDocumentParser.h
@@ -68,12 +68,11 @@
 class PumpSession;
 
 class HTMLDocumentParser :  public ScriptableDocumentParser, private HTMLScriptRunnerHost {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(HTMLDocumentParser);
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(HTMLDocumentParser);
+    USING_GARBAGE_COLLECTED_MIXIN(HTMLDocumentParser);
 public:
-    static PassRefPtrWillBeRawPtr<HTMLDocumentParser> create(HTMLDocument& document, bool reportErrors, ParserSynchronizationPolicy backgroundParsingPolicy)
+    static RawPtr<HTMLDocumentParser> create(HTMLDocument& document, bool reportErrors, ParserSynchronizationPolicy backgroundParsingPolicy)
     {
-        return adoptRefWillBeNoop(new HTMLDocumentParser(document, reportErrors, backgroundParsingPolicy));
+        return new HTMLDocumentParser(document, reportErrors, backgroundParsingPolicy);
     }
     ~HTMLDocumentParser() override;
     DECLARE_VIRTUAL_TRACE();
@@ -127,9 +126,9 @@
     void forcePlaintextForTextDocument();
 
 private:
-    static PassRefPtrWillBeRawPtr<HTMLDocumentParser> create(DocumentFragment* fragment, Element* contextElement, ParserContentPolicy parserContentPolicy)
+    static RawPtr<HTMLDocumentParser> create(DocumentFragment* fragment, Element* contextElement, ParserContentPolicy parserContentPolicy)
     {
-        return adoptRefWillBeNoop(new HTMLDocumentParser(fragment, contextElement, parserContentPolicy));
+        return new HTMLDocumentParser(fragment, contextElement, parserContentPolicy);
     }
 
     // DocumentParser
@@ -189,12 +188,12 @@
 
     OwnPtr<HTMLToken> m_token;
     OwnPtr<HTMLTokenizer> m_tokenizer;
-    OwnPtrWillBeMember<HTMLScriptRunner> m_scriptRunner;
-    OwnPtrWillBeMember<HTMLTreeBuilder> m_treeBuilder;
+    Member<HTMLScriptRunner> m_scriptRunner;
+    Member<HTMLTreeBuilder> m_treeBuilder;
     OwnPtr<HTMLPreloadScanner> m_preloadScanner;
     OwnPtr<HTMLPreloadScanner> m_insertionPreloadScanner;
     OwnPtr<WebTaskRunner> m_loadingTaskRunner;
-    OwnPtrWillBeMember<HTMLParserScheduler> m_parserScheduler;
+    Member<HTMLParserScheduler> m_parserScheduler;
     HTMLSourceTracker m_sourceTracker;
     TextPosition m_textPosition;
     XSSAuditor m_xssAuditor;
@@ -206,7 +205,7 @@
     Deque<OwnPtr<ParsedChunk>> m_speculations;
     WeakPtrFactory<HTMLDocumentParser> m_weakFactory;
     WeakPtr<BackgroundHTMLParser> m_backgroundParser;
-    OwnPtrWillBeMember<HTMLResourcePreloader> m_preloader;
+    Member<HTMLResourcePreloader> m_preloader;
     PreloadRequestStream m_queuedPreloads;
     Vector<String> m_queuedDocumentWriteScripts;
     RefPtr<ParsedChunkQueue> m_parsedChunkQueue;
diff --git a/third_party/WebKit/Source/core/html/parser/HTMLElementStack.cpp b/third_party/WebKit/Source/core/html/parser/HTMLElementStack.cpp
index 74f44b5..2726f5f 100644
--- a/third_party/WebKit/Source/core/html/parser/HTMLElementStack.cpp
+++ b/third_party/WebKit/Source/core/html/parser/HTMLElementStack.cpp
@@ -118,7 +118,7 @@
 
 } // namespace
 
-HTMLElementStack::ElementRecord::ElementRecord(PassRefPtrWillBeRawPtr<HTMLStackItem> item, PassOwnPtrWillBeRawPtr<ElementRecord> next)
+HTMLElementStack::ElementRecord::ElementRecord(RawPtr<HTMLStackItem> item, RawPtr<ElementRecord> next)
     : m_item(item)
     , m_next(next)
 {
@@ -131,7 +131,7 @@
 }
 #endif
 
-void HTMLElementStack::ElementRecord::replaceElement(PassRefPtrWillBeRawPtr<HTMLStackItem> item)
+void HTMLElementStack::ElementRecord::replaceElement(RawPtr<HTMLStackItem> item)
 {
     ASSERT(item);
     ASSERT(!m_item || m_item->isElementNode());
@@ -310,19 +310,19 @@
         pop();
 }
 
-void HTMLElementStack::pushRootNode(PassRefPtrWillBeRawPtr<HTMLStackItem> rootItem)
+void HTMLElementStack::pushRootNode(RawPtr<HTMLStackItem> rootItem)
 {
     ASSERT(rootItem->isDocumentFragmentNode());
     pushRootNodeCommon(rootItem);
 }
 
-void HTMLElementStack::pushHTMLHtmlElement(PassRefPtrWillBeRawPtr<HTMLStackItem> item)
+void HTMLElementStack::pushHTMLHtmlElement(RawPtr<HTMLStackItem> item)
 {
     ASSERT(item->hasTagName(htmlTag));
     pushRootNodeCommon(item);
 }
 
-void HTMLElementStack::pushRootNodeCommon(PassRefPtrWillBeRawPtr<HTMLStackItem> rootItem)
+void HTMLElementStack::pushRootNodeCommon(RawPtr<HTMLStackItem> rootItem)
 {
     ASSERT(!m_top);
     ASSERT(!m_rootNode);
@@ -330,7 +330,7 @@
     pushCommon(rootItem);
 }
 
-void HTMLElementStack::pushHTMLHeadElement(PassRefPtrWillBeRawPtr<HTMLStackItem> item)
+void HTMLElementStack::pushHTMLHeadElement(RawPtr<HTMLStackItem> item)
 {
     ASSERT(item->hasTagName(HTMLNames::headTag));
     ASSERT(!m_headElement);
@@ -338,7 +338,7 @@
     pushCommon(item);
 }
 
-void HTMLElementStack::pushHTMLBodyElement(PassRefPtrWillBeRawPtr<HTMLStackItem> item)
+void HTMLElementStack::pushHTMLBodyElement(RawPtr<HTMLStackItem> item)
 {
     ASSERT(item->hasTagName(HTMLNames::bodyTag));
     ASSERT(!m_bodyElement);
@@ -346,7 +346,7 @@
     pushCommon(item);
 }
 
-void HTMLElementStack::push(PassRefPtrWillBeRawPtr<HTMLStackItem> item)
+void HTMLElementStack::push(RawPtr<HTMLStackItem> item)
 {
     ASSERT(!item->hasTagName(htmlTag));
     ASSERT(!item->hasTagName(headTag));
@@ -355,7 +355,7 @@
     pushCommon(item);
 }
 
-void HTMLElementStack::insertAbove(PassRefPtrWillBeRawPtr<HTMLStackItem> item, ElementRecord* recordBelow)
+void HTMLElementStack::insertAbove(RawPtr<HTMLStackItem> item, ElementRecord* recordBelow)
 {
     ASSERT(item);
     ASSERT(recordBelow);
@@ -374,7 +374,7 @@
             continue;
 
         m_stackDepth++;
-        recordAbove->setNext(adoptPtrWillBeNoop(new ElementRecord(item, recordAbove->releaseNext())));
+        recordAbove->setNext(new ElementRecord(item, recordAbove->releaseNext()));
         recordAbove->next()->element()->beginParsingChildren();
         return;
     }
@@ -565,12 +565,12 @@
     return m_rootNode;
 }
 
-void HTMLElementStack::pushCommon(PassRefPtrWillBeRawPtr<HTMLStackItem> item)
+void HTMLElementStack::pushCommon(RawPtr<HTMLStackItem> item)
 {
     ASSERT(m_rootNode);
 
     m_stackDepth++;
-    m_top = adoptPtrWillBeNoop(new ElementRecord(item, m_top.release()));
+    m_top = new ElementRecord(item, m_top.release());
 }
 
 void HTMLElementStack::popCommon()
diff --git a/third_party/WebKit/Source/core/html/parser/HTMLElementStack.h b/third_party/WebKit/Source/core/html/parser/HTMLElementStack.h
index 692e02a..2582b41 100644
--- a/third_party/WebKit/Source/core/html/parser/HTMLElementStack.h
+++ b/third_party/WebKit/Source/core/html/parser/HTMLElementStack.h
@@ -49,8 +49,8 @@
     HTMLElementStack();
     ~HTMLElementStack();
 
-    class ElementRecord final : public NoBaseWillBeGarbageCollected<ElementRecord> {
-        WTF_MAKE_NONCOPYABLE(ElementRecord); USING_FAST_MALLOC_WILL_BE_REMOVED(ElementRecord);
+    class ElementRecord final : public GarbageCollected<ElementRecord> {
+        WTF_MAKE_NONCOPYABLE(ElementRecord);
     public:
 #if !ENABLE(OILPAN)
         ~ElementRecord(); // Public for ~PassOwnPtr()
@@ -59,8 +59,8 @@
         Element* element() const { return m_item->element(); }
         ContainerNode* node() const { return m_item->node(); }
         const AtomicString& namespaceURI() const { return m_item->namespaceURI(); }
-        PassRefPtrWillBeRawPtr<HTMLStackItem> stackItem() const { return m_item; }
-        void replaceElement(PassRefPtrWillBeRawPtr<HTMLStackItem>);
+        RawPtr<HTMLStackItem> stackItem() const { return m_item; }
+        void replaceElement(RawPtr<HTMLStackItem>);
 
         bool isAbove(ElementRecord*) const;
 
@@ -70,13 +70,13 @@
     private:
         friend class HTMLElementStack;
 
-        ElementRecord(PassRefPtrWillBeRawPtr<HTMLStackItem>, PassOwnPtrWillBeRawPtr<ElementRecord>);
+        ElementRecord(RawPtr<HTMLStackItem>, RawPtr<ElementRecord>);
 
-        PassOwnPtrWillBeRawPtr<ElementRecord> releaseNext() { return m_next.release(); }
-        void setNext(PassOwnPtrWillBeRawPtr<ElementRecord> next) { m_next = next; }
+        RawPtr<ElementRecord> releaseNext() { return m_next.release(); }
+        void setNext(RawPtr<ElementRecord> next) { m_next = next; }
 
-        RefPtrWillBeMember<HTMLStackItem> m_item;
-        OwnPtrWillBeMember<ElementRecord> m_next;
+        Member<HTMLStackItem> m_item;
+        Member<ElementRecord> m_next;
     };
 
     unsigned stackDepth() const { return m_stackDepth; }
@@ -107,13 +107,13 @@
     ElementRecord* furthestBlockForFormattingElement(Element*) const;
     ElementRecord* topmost(const AtomicString& tagName) const;
 
-    void insertAbove(PassRefPtrWillBeRawPtr<HTMLStackItem>, ElementRecord*);
+    void insertAbove(RawPtr<HTMLStackItem>, ElementRecord*);
 
-    void push(PassRefPtrWillBeRawPtr<HTMLStackItem>);
-    void pushRootNode(PassRefPtrWillBeRawPtr<HTMLStackItem>);
-    void pushHTMLHtmlElement(PassRefPtrWillBeRawPtr<HTMLStackItem>);
-    void pushHTMLHeadElement(PassRefPtrWillBeRawPtr<HTMLStackItem>);
-    void pushHTMLBodyElement(PassRefPtrWillBeRawPtr<HTMLStackItem>);
+    void push(RawPtr<HTMLStackItem>);
+    void pushRootNode(RawPtr<HTMLStackItem>);
+    void pushHTMLHtmlElement(RawPtr<HTMLStackItem>);
+    void pushHTMLHeadElement(RawPtr<HTMLStackItem>);
+    void pushHTMLBodyElement(RawPtr<HTMLStackItem>);
 
     void pop();
     void popUntil(const AtomicString& tagName);
@@ -170,21 +170,21 @@
 #endif
 
 private:
-    void pushCommon(PassRefPtrWillBeRawPtr<HTMLStackItem>);
-    void pushRootNodeCommon(PassRefPtrWillBeRawPtr<HTMLStackItem>);
+    void pushCommon(RawPtr<HTMLStackItem>);
+    void pushRootNodeCommon(RawPtr<HTMLStackItem>);
     void popCommon();
     void removeNonTopCommon(Element*);
 
-    OwnPtrWillBeMember<ElementRecord> m_top;
+    Member<ElementRecord> m_top;
 
     // We remember the root node, <head> and <body> as they are pushed. Their
     // ElementRecords keep them alive. The root node is never popped.
     // FIXME: We don't currently require type-specific information about
     // these elements so we haven't yet bothered to plumb the types all the
     // way down through createElement, etc.
-    RawPtrWillBeMember<ContainerNode> m_rootNode;
-    RawPtrWillBeMember<Element> m_headElement;
-    RawPtrWillBeMember<Element> m_bodyElement;
+    Member<ContainerNode> m_rootNode;
+    Member<Element> m_headElement;
+    Member<Element> m_bodyElement;
     unsigned m_stackDepth;
 };
 
diff --git a/third_party/WebKit/Source/core/html/parser/HTMLFormattingElementList.cpp b/third_party/WebKit/Source/core/html/parser/HTMLFormattingElementList.cpp
index 51b0416..1648b2ac 100644
--- a/third_party/WebKit/Source/core/html/parser/HTMLFormattingElementList.cpp
+++ b/third_party/WebKit/Source/core/html/parser/HTMLFormattingElementList.cpp
@@ -78,7 +78,7 @@
     return Bookmark(&at(index));
 }
 
-void HTMLFormattingElementList::swapTo(Element* oldElement, PassRefPtrWillBeRawPtr<HTMLStackItem> newItem, const Bookmark& bookmark)
+void HTMLFormattingElementList::swapTo(Element* oldElement, RawPtr<HTMLStackItem> newItem, const Bookmark& bookmark)
 {
     ASSERT(contains(oldElement));
     ASSERT(!contains(newItem->element()));
@@ -93,7 +93,7 @@
     remove(oldElement);
 }
 
-void HTMLFormattingElementList::append(PassRefPtrWillBeRawPtr<HTMLStackItem> item)
+void HTMLFormattingElementList::append(RawPtr<HTMLStackItem> item)
 {
     ensureNoahsArkCondition(item.get());
     m_entries.append(item);
@@ -122,7 +122,7 @@
     }
 }
 
-void HTMLFormattingElementList::tryToEnsureNoahsArkConditionQuickly(HTMLStackItem* newItem, WillBeHeapVector<RawPtrWillBeMember<HTMLStackItem>>& remainingCandidates)
+void HTMLFormattingElementList::tryToEnsureNoahsArkConditionQuickly(HTMLStackItem* newItem, HeapVector<Member<HTMLStackItem>>& remainingCandidates)
 {
     ASSERT(remainingCandidates.isEmpty());
 
@@ -131,7 +131,7 @@
 
     // Use a vector with inline capacity to avoid a malloc in the common case
     // of a quickly ensuring the condition.
-    WillBeHeapVector<RawPtrWillBeMember<HTMLStackItem>, 10> candidates;
+    HeapVector<Member<HTMLStackItem>, 10> candidates;
 
     size_t newItemAttributeCount = newItem->attributes().size();
 
@@ -159,14 +159,14 @@
 
 void HTMLFormattingElementList::ensureNoahsArkCondition(HTMLStackItem* newItem)
 {
-    WillBeHeapVector<RawPtrWillBeMember<HTMLStackItem>> candidates;
+    HeapVector<Member<HTMLStackItem>> candidates;
     tryToEnsureNoahsArkConditionQuickly(newItem, candidates);
     if (candidates.isEmpty())
         return;
 
     // We pre-allocate and re-use this second vector to save one malloc per
     // attribute that we verify.
-    WillBeHeapVector<RawPtrWillBeMember<HTMLStackItem>> remainingCandidates;
+    HeapVector<Member<HTMLStackItem>> remainingCandidates;
     remainingCandidates.reserveInitialCapacity(candidates.size());
 
     const Vector<Attribute>& attributes = newItem->attributes();
diff --git a/third_party/WebKit/Source/core/html/parser/HTMLFormattingElementList.h b/third_party/WebKit/Source/core/html/parser/HTMLFormattingElementList.h
index 118a21f..9dd3a1e 100644
--- a/third_party/WebKit/Source/core/html/parser/HTMLFormattingElementList.h
+++ b/third_party/WebKit/Source/core/html/parser/HTMLFormattingElementList.h
@@ -50,7 +50,7 @@
         DISALLOW_NEW_EXCEPT_PLACEMENT_NEW();
     public:
         // Inline because they're hot and Vector<T> uses them.
-        explicit Entry(PassRefPtrWillBeRawPtr<HTMLStackItem> item)
+        explicit Entry(RawPtr<HTMLStackItem> item)
             : m_item(item)
         {
         }
@@ -63,7 +63,7 @@
 
         bool isMarker() const { return !m_item; }
 
-        PassRefPtrWillBeRawPtr<HTMLStackItem> stackItem() const { return m_item; }
+        RawPtr<HTMLStackItem> stackItem() const { return m_item; }
         Element* element() const
         {
             // The fact that !m_item == isMarker() is an implementation detail
@@ -71,7 +71,7 @@
             ASSERT(m_item);
             return m_item->element();
         }
-        void replaceElement(PassRefPtrWillBeRawPtr<HTMLStackItem> item) { m_item = item; }
+        void replaceElement(RawPtr<HTMLStackItem> item) { m_item = item; }
 
         // Needed for use with Vector.  These are super-hot and must be inline.
         bool operator==(Element* element) const { return !m_item ? !element : m_item->element() == element; }
@@ -80,7 +80,7 @@
         DEFINE_INLINE_TRACE() { visitor->trace(m_item); }
 
     private:
-        RefPtrWillBeMember<HTMLStackItem> m_item;
+        Member<HTMLStackItem> m_item;
     };
 
     class Bookmark {
@@ -113,11 +113,11 @@
 
     Entry* find(Element*);
     bool contains(Element*);
-    void append(PassRefPtrWillBeRawPtr<HTMLStackItem>);
+    void append(RawPtr<HTMLStackItem>);
     void remove(Element*);
 
     Bookmark bookmarkFor(Element*);
-    void swapTo(Element* oldElement, PassRefPtrWillBeRawPtr<HTMLStackItem> newItem, const Bookmark&);
+    void swapTo(Element* oldElement, RawPtr<HTMLStackItem> newItem, const Bookmark&);
 
     void appendMarker();
     // clearToLastMarker also clears the marker (per the HTML5 spec).
@@ -142,10 +142,10 @@
 
     // http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#list-of-active-formatting-elements
     // These functions enforce the "Noah's Ark" condition, which removes redundant mis-nested elements.
-    void tryToEnsureNoahsArkConditionQuickly(HTMLStackItem*, WillBeHeapVector<RawPtrWillBeMember<HTMLStackItem>>& remainingCandiates);
+    void tryToEnsureNoahsArkConditionQuickly(HTMLStackItem*, HeapVector<Member<HTMLStackItem>>& remainingCandiates);
     void ensureNoahsArkCondition(HTMLStackItem*);
 
-    WillBeHeapVector<Entry> m_entries;
+    HeapVector<Entry> m_entries;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/html/parser/HTMLParserScheduler.h b/third_party/WebKit/Source/core/html/parser/HTMLParserScheduler.h
index 0445b84..d398f9b 100644
--- a/third_party/WebKit/Source/core/html/parser/HTMLParserScheduler.h
+++ b/third_party/WebKit/Source/core/html/parser/HTMLParserScheduler.h
@@ -59,13 +59,12 @@
     size_t m_processedElementTokens;
 };
 
-class HTMLParserScheduler final : public NoBaseWillBeGarbageCollectedFinalized<HTMLParserScheduler> {
+class HTMLParserScheduler final : public GarbageCollectedFinalized<HTMLParserScheduler> {
     WTF_MAKE_NONCOPYABLE(HTMLParserScheduler);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(HTMLParserScheduler);
 public:
-    static PassOwnPtrWillBeRawPtr<HTMLParserScheduler> create(HTMLDocumentParser* parser, WebTaskRunner* loadingTaskRunner)
+    static RawPtr<HTMLParserScheduler> create(HTMLDocumentParser* parser, WebTaskRunner* loadingTaskRunner)
     {
-        return adoptPtrWillBeNoop(new HTMLParserScheduler(parser, loadingTaskRunner));
+        return new HTMLParserScheduler(parser, loadingTaskRunner);
     }
     ~HTMLParserScheduler();
 
@@ -96,7 +95,7 @@
     bool shouldYield(const SpeculationsPumpSession&, bool startingScript) const;
     void continueParsing();
 
-    RawPtrWillBeMember<HTMLDocumentParser> m_parser;
+    Member<HTMLDocumentParser> m_parser;
     OwnPtr<WebTaskRunner> m_loadingTaskRunner;
 
     OwnPtr<CancellableTaskFactory> m_cancellableContinueParse;
diff --git a/third_party/WebKit/Source/core/html/parser/HTMLPreloadScanner.cpp b/third_party/WebKit/Source/core/html/parser/HTMLPreloadScanner.cpp
index 9bf3bef..fe0872f 100644
--- a/third_party/WebKit/Source/core/html/parser/HTMLPreloadScanner.cpp
+++ b/third_party/WebKit/Source/core/html/parser/HTMLPreloadScanner.cpp
@@ -105,7 +105,7 @@
 
 static bool mediaAttributeMatches(const MediaValuesCached& mediaValues, const String& attributeValue)
 {
-    RefPtrWillBeRawPtr<MediaQuerySet> mediaQueries = MediaQuerySet::createOffMainThread(attributeValue);
+    RawPtr<MediaQuerySet> mediaQueries = MediaQuerySet::createOffMainThread(attributeValue);
     MediaQueryEvaluator mediaQueryEvaluator(mediaValues);
     return mediaQueryEvaluator.eval(mediaQueries.get());
 }
@@ -113,7 +113,7 @@
 class TokenPreloadScanner::StartTagScanner {
     STACK_ALLOCATED();
 public:
-    StartTagScanner(const StringImpl* tagImpl, PassRefPtrWillBeRawPtr<MediaValuesCached> mediaValues)
+    StartTagScanner(const StringImpl* tagImpl, RawPtr<MediaValuesCached> mediaValues)
         : m_tagImpl(tagImpl)
         , m_linkIsStyleSheet(false)
         , m_linkTypeIsMissingOrSupportedStyleSheet(true)
@@ -441,7 +441,7 @@
     bool m_sourceSizeSet;
     FetchRequest::DeferOption m_defer;
     CrossOriginAttributeValue m_crossOrigin;
-    RefPtrWillBeMember<MediaValuesCached> m_mediaValues;
+    Member<MediaValuesCached> m_mediaValues;
     bool m_referrerPolicySet;
     ReferrerPolicy m_referrerPolicy;
     IntegrityMetadataSet m_integrityMetadata;
diff --git a/third_party/WebKit/Source/core/html/parser/HTMLPreloadScanner.h b/third_party/WebKit/Source/core/html/parser/HTMLPreloadScanner.h
index 3e1581b..2dd3ade2 100644
--- a/third_party/WebKit/Source/core/html/parser/HTMLPreloadScanner.h
+++ b/third_party/WebKit/Source/core/html/parser/HTMLPreloadScanner.h
@@ -144,7 +144,7 @@
     PictureData m_pictureData;
     size_t m_templateCount;
     OwnPtr<CachedDocumentParameters> m_documentParameters;
-    RefPtrWillBePersistent<MediaValuesCached> m_mediaValues;
+    Persistent<MediaValuesCached> m_mediaValues;
     ClientHintsPreferences m_clientHintsPreferences;
 
     bool m_didRewind = false;
diff --git a/third_party/WebKit/Source/core/html/parser/HTMLResourcePreloader.cpp b/third_party/WebKit/Source/core/html/parser/HTMLResourcePreloader.cpp
index 4812561..4bc01b25 100644
--- a/third_party/WebKit/Source/core/html/parser/HTMLResourcePreloader.cpp
+++ b/third_party/WebKit/Source/core/html/parser/HTMLResourcePreloader.cpp
@@ -39,9 +39,9 @@
 {
 }
 
-PassOwnPtrWillBeRawPtr<HTMLResourcePreloader> HTMLResourcePreloader::create(Document& document)
+RawPtr<HTMLResourcePreloader> HTMLResourcePreloader::create(Document& document)
 {
-    return adoptPtrWillBeNoop(new HTMLResourcePreloader(document));
+    return new HTMLResourcePreloader(document);
 }
 
 DEFINE_TRACE(HTMLResourcePreloader)
diff --git a/third_party/WebKit/Source/core/html/parser/HTMLResourcePreloader.h b/third_party/WebKit/Source/core/html/parser/HTMLResourcePreloader.h
index b5c7b52..6dfb8d3 100644
--- a/third_party/WebKit/Source/core/html/parser/HTMLResourcePreloader.h
+++ b/third_party/WebKit/Source/core/html/parser/HTMLResourcePreloader.h
@@ -36,11 +36,11 @@
 
 namespace blink {
 
-class CORE_EXPORT HTMLResourcePreloader final : public NoBaseWillBeGarbageCollected<HTMLResourcePreloader>, public ResourcePreloader {
-    WTF_MAKE_NONCOPYABLE(HTMLResourcePreloader); USING_FAST_MALLOC_WILL_BE_REMOVED(HTMLResourcePreloader);
+class CORE_EXPORT HTMLResourcePreloader final : public GarbageCollected<HTMLResourcePreloader>, public ResourcePreloader {
+    WTF_MAKE_NONCOPYABLE(HTMLResourcePreloader);
     friend class HTMLResourcePreloaderTest;
 public:
-    static PassOwnPtrWillBeRawPtr<HTMLResourcePreloader> create(Document&);
+    static RawPtr<HTMLResourcePreloader> create(Document&);
     DECLARE_TRACE();
 
 protected:
@@ -49,7 +49,7 @@
 private:
     explicit HTMLResourcePreloader(Document&);
 
-    RawPtrWillBeMember<Document> m_document;
+    Member<Document> m_document;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/html/parser/HTMLResourcePreloaderTest.cpp b/third_party/WebKit/Source/core/html/parser/HTMLResourcePreloaderTest.cpp
index b2a477f8..e1b84a3 100644
--- a/third_party/WebKit/Source/core/html/parser/HTMLResourcePreloaderTest.cpp
+++ b/third_party/WebKit/Source/core/html/parser/HTMLResourcePreloaderTest.cpp
@@ -64,7 +64,7 @@
             PreloadRequest::RequestTypePreconnect);
         if (testCase.isCORS)
             preloadRequest->setCrossOrigin(CrossOriginAttributeAnonymous);
-        OwnPtrWillBeRawPtr<HTMLResourcePreloader> preloader = HTMLResourcePreloader::create(m_dummyPageHolder->document());
+        RawPtr<HTMLResourcePreloader> preloader = HTMLResourcePreloader::create(m_dummyPageHolder->document());
         preloader->preload(preloadRequest.release(), networkHints);
         ASSERT_TRUE(networkHints.didPreconnect());
         ASSERT_EQ(testCase.isCORS, networkHints.isCrossOrigin());
diff --git a/third_party/WebKit/Source/core/html/parser/HTMLScriptRunner.cpp b/third_party/WebKit/Source/core/html/parser/HTMLScriptRunner.cpp
index 45779fd4..d52ddf134 100644
--- a/third_party/WebKit/Source/core/html/parser/HTMLScriptRunner.cpp
+++ b/third_party/WebKit/Source/core/html/parser/HTMLScriptRunner.cpp
@@ -158,7 +158,7 @@
     m_parserBlockingScript->releaseElementAndClear();
 
     while (!m_scriptsToExecuteAfterParsing.isEmpty()) {
-        OwnPtrWillBeRawPtr<PendingScript> pendingScript = m_scriptsToExecuteAfterParsing.takeFirst();
+        RawPtr<PendingScript> pendingScript = m_scriptsToExecuteAfterParsing.takeFirst();
         pendingScript->stopWatchingForLoad();
         pendingScript->releaseElementAndClear();
     }
@@ -204,7 +204,7 @@
 
     TextPosition scriptStartPosition = pendingScript->startingPosition();
     // Clear the pending script before possible re-entrancy from executeScript()
-    RefPtrWillBeRawPtr<Element> element = pendingScript->releaseElementAndClear();
+    RawPtr<Element> element = pendingScript->releaseElementAndClear();
     if (ScriptLoader* scriptLoader = toScriptLoaderIfPossible(element.get())) {
         NestingLevelIncrementer nestingLevelIncrementer(m_scriptNestingLevel);
         IgnoreDestructiveWriteCountIncrementer ignoreDestructiveWriteCountIncrementer(m_document);
@@ -259,7 +259,7 @@
 // Implements the steps for 'An end tag whose tag name is "script"'
 // http://whatwg.org/html#scriptEndTag
 // Script handling lives outside the tree builder to keep each class simple.
-void HTMLScriptRunner::execute(PassRefPtrWillBeRawPtr<Element> scriptElement, const TextPosition& scriptStartPosition)
+void HTMLScriptRunner::execute(RawPtr<Element> scriptElement, const TextPosition& scriptStartPosition)
 {
     ASSERT(scriptElement);
     TRACE_EVENT1("blink", "HTMLScriptRunner::execute",
@@ -329,7 +329,7 @@
             traceParserBlockingScript(m_scriptsToExecuteAfterParsing.first().get(), !m_document->isScriptExecutionReady());
             return false;
         }
-        OwnPtrWillBeRawPtr<PendingScript> first = m_scriptsToExecuteAfterParsing.takeFirst();
+        RawPtr<PendingScript> first = m_scriptsToExecuteAfterParsing.takeFirst();
         executePendingScriptAndDispatchEvent(first.get(), ScriptStreamer::Deferred);
         // FIXME: What is this m_document check for?
         if (!m_document)
@@ -361,7 +361,7 @@
 
 void HTMLScriptRunner::requestDeferredScript(Element* element)
 {
-    OwnPtrWillBeRawPtr<PendingScript> pendingScript = PendingScript::create(nullptr, nullptr);
+    RawPtr<PendingScript> pendingScript = PendingScript::create(nullptr, nullptr);
     if (!requestPendingScript(pendingScript.get(), element))
         return;
 
diff --git a/third_party/WebKit/Source/core/html/parser/HTMLScriptRunner.h b/third_party/WebKit/Source/core/html/parser/HTMLScriptRunner.h
index 192059fb..10d7487a 100644
--- a/third_party/WebKit/Source/core/html/parser/HTMLScriptRunner.h
+++ b/third_party/WebKit/Source/core/html/parser/HTMLScriptRunner.h
@@ -41,20 +41,20 @@
 class Element;
 class HTMLScriptRunnerHost;
 
-class HTMLScriptRunner final : public NoBaseWillBeGarbageCollectedFinalized<HTMLScriptRunner>, private ScriptResourceClient {
-    WTF_MAKE_NONCOPYABLE(HTMLScriptRunner); USING_FAST_MALLOC_WILL_BE_REMOVED(HTMLScriptRunner);
-    WILL_BE_USING_PRE_FINALIZER(HTMLScriptRunner, detach);
+class HTMLScriptRunner final : public GarbageCollectedFinalized<HTMLScriptRunner>, private ScriptResourceClient {
+    WTF_MAKE_NONCOPYABLE(HTMLScriptRunner);
+    USING_PRE_FINALIZER(HTMLScriptRunner, detach);
 public:
-    static PassOwnPtrWillBeRawPtr<HTMLScriptRunner> create(Document* document, HTMLScriptRunnerHost* host)
+    static RawPtr<HTMLScriptRunner> create(Document* document, HTMLScriptRunnerHost* host)
     {
-        return adoptPtrWillBeNoop(new HTMLScriptRunner(document, host));
+        return new HTMLScriptRunner(document, host);
     }
     ~HTMLScriptRunner();
 
     void detach();
 
     // Processes the passed in script and any pending scripts if possible.
-    void execute(PassRefPtrWillBeRawPtr<Element> scriptToProcess, const TextPosition& scriptStartPosition);
+    void execute(RawPtr<Element> scriptToProcess, const TextPosition& scriptStartPosition);
 
     void executeScriptsWaitingForLoad(Resource*);
     bool hasScriptsWaitingForResources() const { return m_hasScriptsWaitingForResources; }
@@ -87,11 +87,11 @@
 
     void stopWatchingResourceForLoad(Resource*);
 
-    RawPtrWillBeMember<Document> m_document;
-    RawPtrWillBeMember<HTMLScriptRunnerHost> m_host;
-    OwnPtrWillBeMember<PendingScript> m_parserBlockingScript;
+    Member<Document> m_document;
+    Member<HTMLScriptRunnerHost> m_host;
+    Member<PendingScript> m_parserBlockingScript;
     // http://www.whatwg.org/specs/web-apps/current-work/#list-of-scripts-that-will-execute-when-the-document-has-finished-parsing
-    WillBeHeapDeque<OwnPtrWillBeMember<PendingScript>> m_scriptsToExecuteAfterParsing;
+    HeapDeque<Member<PendingScript>> m_scriptsToExecuteAfterParsing;
     unsigned m_scriptNestingLevel;
 
     // We only want stylesheet loads to trigger script execution if script
diff --git a/third_party/WebKit/Source/core/html/parser/HTMLScriptRunnerHost.h b/third_party/WebKit/Source/core/html/parser/HTMLScriptRunnerHost.h
index db4b656..e298c09e 100644
--- a/third_party/WebKit/Source/core/html/parser/HTMLScriptRunnerHost.h
+++ b/third_party/WebKit/Source/core/html/parser/HTMLScriptRunnerHost.h
@@ -34,7 +34,7 @@
 class Resource;
 class Visitor;
 
-class HTMLScriptRunnerHost : public WillBeGarbageCollectedMixin {
+class HTMLScriptRunnerHost : public GarbageCollectedMixin {
 public:
     virtual ~HTMLScriptRunnerHost() { }
     DEFINE_INLINE_VIRTUAL_TRACE() { }
diff --git a/third_party/WebKit/Source/core/html/parser/HTMLStackItem.h b/third_party/WebKit/Source/core/html/parser/HTMLStackItem.h
index b3ebe8ee..6122ec8 100644
--- a/third_party/WebKit/Source/core/html/parser/HTMLStackItem.h
+++ b/third_party/WebKit/Source/core/html/parser/HTMLStackItem.h
@@ -40,7 +40,7 @@
 
 class ContainerNode;
 
-class HTMLStackItem : public RefCountedWillBeGarbageCollectedFinalized<HTMLStackItem> {
+class HTMLStackItem : public GarbageCollectedFinalized<HTMLStackItem> {
 public:
     enum ItemType {
         ItemForContextElement,
@@ -48,15 +48,15 @@
     };
 
     // Used by document fragment node and context element.
-    static PassRefPtrWillBeRawPtr<HTMLStackItem> create(PassRefPtrWillBeRawPtr<ContainerNode> node, ItemType type)
+    static RawPtr<HTMLStackItem> create(RawPtr<ContainerNode> node, ItemType type)
     {
-        return adoptRefWillBeNoop(new HTMLStackItem(node, type));
+        return new HTMLStackItem(node, type);
     }
 
     // Used by HTMLElementStack and HTMLFormattingElementList.
-    static PassRefPtrWillBeRawPtr<HTMLStackItem> create(PassRefPtrWillBeRawPtr<ContainerNode> node, AtomicHTMLToken* token, const AtomicString& namespaceURI = HTMLNames::xhtmlNamespaceURI)
+    static RawPtr<HTMLStackItem> create(RawPtr<ContainerNode> node, AtomicHTMLToken* token, const AtomicString& namespaceURI = HTMLNames::xhtmlNamespaceURI)
     {
-        return adoptRefWillBeNoop(new HTMLStackItem(node, token, namespaceURI));
+        return new HTMLStackItem(node, token, namespaceURI);
     }
 
     Element* element() const { return toElement(m_node.get()); }
@@ -212,7 +212,7 @@
     DEFINE_INLINE_TRACE() { visitor->trace(m_node); }
 
 private:
-    HTMLStackItem(PassRefPtrWillBeRawPtr<ContainerNode> node, ItemType type)
+    HTMLStackItem(RawPtr<ContainerNode> node, ItemType type)
         : m_node(node)
     {
         switch (type) {
@@ -227,7 +227,7 @@
         }
     }
 
-    HTMLStackItem(PassRefPtrWillBeRawPtr<ContainerNode> node, AtomicHTMLToken* token, const AtomicString& namespaceURI = HTMLNames::xhtmlNamespaceURI)
+    HTMLStackItem(RawPtr<ContainerNode> node, AtomicHTMLToken* token, const AtomicString& namespaceURI = HTMLNames::xhtmlNamespaceURI)
         : m_node(node)
         , m_tokenLocalName(token->name())
         , m_tokenAttributes(token->attributes())
@@ -236,7 +236,7 @@
     {
     }
 
-    RefPtrWillBeMember<ContainerNode> m_node;
+    Member<ContainerNode> m_node;
 
     AtomicString m_tokenLocalName;
     Vector<Attribute> m_tokenAttributes;
diff --git a/third_party/WebKit/Source/core/html/parser/HTMLTreeBuilder.cpp b/third_party/WebKit/Source/core/html/parser/HTMLTreeBuilder.cpp
index 2b6c874b..8754fbb 100644
--- a/third_party/WebKit/Source/core/html/parser/HTMLTreeBuilder.cpp
+++ b/third_party/WebKit/Source/core/html/parser/HTMLTreeBuilder.cpp
@@ -359,7 +359,7 @@
     visitor->trace(m_contextElementStackItem);
 }
 
-PassRefPtrWillBeRawPtr<Element> HTMLTreeBuilder::takeScriptToProcess(TextPosition& scriptStartPosition)
+RawPtr<Element> HTMLTreeBuilder::takeScriptToProcess(TextPosition& scriptStartPosition)
 {
     ASSERT(m_scriptToProcess);
     ASSERT(!m_tree.hasPendingTasks());
@@ -495,7 +495,7 @@
     m_framesetOk = false;
     HTMLElementStack::ElementRecord* nodeRecord = m_tree.openElements()->topRecord();
     while (1) {
-        RefPtrWillBeRawPtr<HTMLStackItem> item = nodeRecord->stackItem();
+        RawPtr<HTMLStackItem> item = nodeRecord->stackItem();
         if (shouldClose(item.get())) {
             ASSERT(item->isElementNode());
             processFakeEndTag(item->localName());
@@ -1475,7 +1475,7 @@
         UseCounter::count(m_tree.currentNode()->document(), UseCounter::MenuItemCloseTag);
     HTMLElementStack::ElementRecord* record = m_tree.openElements()->topRecord();
     while (1) {
-        RefPtrWillBeRawPtr<HTMLStackItem> item = record->stackItem();
+        RawPtr<HTMLStackItem> item = record->stackItem();
         if (item->matchesHTMLTag(token->name())) {
             m_tree.generateImpliedEndTagsWithExclusion(token->name());
             if (!m_tree.currentStackItem()->matchesHTMLTag(token->name()))
@@ -1534,7 +1534,7 @@
         }
         // 7.
         ASSERT(furthestBlock->isAbove(formattingElementRecord));
-        RefPtrWillBeRawPtr<HTMLStackItem> commonAncestor = formattingElementRecord->next()->stackItem();
+        RawPtr<HTMLStackItem> commonAncestor = formattingElementRecord->next()->stackItem();
         // 8.
         HTMLFormattingElementList::Bookmark bookmark = m_tree.activeFormattingElements()->bookmarkFor(formattingElement);
         // 9.
@@ -1557,7 +1557,7 @@
             if (node == formattingElementRecord)
                 break;
             // 9.7
-            RefPtrWillBeRawPtr<HTMLStackItem> newItem = m_tree.createElementFromSavedToken(node->stackItem().get());
+            RawPtr<HTMLStackItem> newItem = m_tree.createElementFromSavedToken(node->stackItem().get());
 
             HTMLFormattingElementList::Entry* nodeEntry = m_tree.activeFormattingElements()->find(node->element());
             nodeEntry->replaceElement(newItem);
@@ -1574,7 +1574,7 @@
         // 10.
         m_tree.insertAlreadyParsedChild(commonAncestor.get(), lastNode);
         // 11.
-        RefPtrWillBeRawPtr<HTMLStackItem> newItem = m_tree.createElementFromSavedToken(formattingElementRecord->stackItem().get());
+        RawPtr<HTMLStackItem> newItem = m_tree.createElementFromSavedToken(formattingElementRecord->stackItem().get());
         // 12.
         m_tree.takeAllChildren(newItem.get(), furthestBlock);
         // 13.
@@ -1593,7 +1593,7 @@
     bool last = false;
     HTMLElementStack::ElementRecord* nodeRecord = m_tree.openElements()->topRecord();
     while (1) {
-        RefPtrWillBeRawPtr<HTMLStackItem> item = nodeRecord->stackItem();
+        RawPtr<HTMLStackItem> item = nodeRecord->stackItem();
         if (item->node() == m_tree.openElements()->rootNode()) {
             last = true;
             if (isParsingFragment())
@@ -1809,7 +1809,7 @@
         return;
     }
     if (token->name() == formTag) {
-        RefPtrWillBeRawPtr<Element> node = m_tree.takeForm();
+        RawPtr<Element> node = m_tree.takeForm();
         if (!node || !m_tree.openElements()->inScope(node.get())) {
             parseError(token);
             return;
diff --git a/third_party/WebKit/Source/core/html/parser/HTMLTreeBuilder.h b/third_party/WebKit/Source/core/html/parser/HTMLTreeBuilder.h
index 9d7727c6..458bf052 100644
--- a/third_party/WebKit/Source/core/html/parser/HTMLTreeBuilder.h
+++ b/third_party/WebKit/Source/core/html/parser/HTMLTreeBuilder.h
@@ -47,16 +47,16 @@
 class HTMLDocument;
 class HTMLDocumentParser;
 
-class HTMLTreeBuilder final : public NoBaseWillBeGarbageCollectedFinalized<HTMLTreeBuilder> {
-    WTF_MAKE_NONCOPYABLE(HTMLTreeBuilder); USING_FAST_MALLOC_WILL_BE_REMOVED(HTMLTreeBuilder);
+class HTMLTreeBuilder final : public GarbageCollectedFinalized<HTMLTreeBuilder> {
+    WTF_MAKE_NONCOPYABLE(HTMLTreeBuilder);
 public:
-    static PassOwnPtrWillBeRawPtr<HTMLTreeBuilder> create(HTMLDocumentParser* parser, HTMLDocument* document, ParserContentPolicy parserContentPolicy, bool reportErrors, const HTMLParserOptions& options)
+    static RawPtr<HTMLTreeBuilder> create(HTMLDocumentParser* parser, HTMLDocument* document, ParserContentPolicy parserContentPolicy, bool reportErrors, const HTMLParserOptions& options)
     {
-        return adoptPtrWillBeNoop(new HTMLTreeBuilder(parser, document, parserContentPolicy, reportErrors, options));
+        return new HTMLTreeBuilder(parser, document, parserContentPolicy, reportErrors, options);
     }
-    static PassOwnPtrWillBeRawPtr<HTMLTreeBuilder> create(HTMLDocumentParser* parser, DocumentFragment* fragment, Element* contextElement, ParserContentPolicy parserContentPolicy, const HTMLParserOptions& options)
+    static RawPtr<HTMLTreeBuilder> create(HTMLDocumentParser* parser, DocumentFragment* fragment, Element* contextElement, ParserContentPolicy parserContentPolicy, const HTMLParserOptions& options)
     {
-        return adoptPtrWillBeNoop(new HTMLTreeBuilder(parser, fragment, contextElement, parserContentPolicy, options));
+        return new HTMLTreeBuilder(parser, fragment, contextElement, parserContentPolicy, options);
     }
     ~HTMLTreeBuilder();
     DECLARE_TRACE();
@@ -73,7 +73,7 @@
 
     bool hasParserBlockingScript() const { return !!m_scriptToProcess; }
     // Must be called to take the parser-blocking script before calling the parser again.
-    PassRefPtrWillBeRawPtr<Element> takeScriptToProcess(TextPosition& scriptStartPosition);
+    RawPtr<Element> takeScriptToProcess(TextPosition& scriptStartPosition);
 
     // Done, close any open tags, etc.
     void finished();
@@ -203,8 +203,8 @@
         DECLARE_TRACE();
 
     private:
-        RawPtrWillBeMember<DocumentFragment> m_fragment;
-        RefPtrWillBeMember<HTMLStackItem> m_contextElementStackItem;
+        Member<DocumentFragment> m_fragment;
+        Member<HTMLStackItem> m_contextElementStackItem;
     };
 
     // https://html.spec.whatwg.org/#frameset-ok-flag
@@ -230,9 +230,9 @@
 
     // We access parser because HTML5 spec requires that we be able to change the state of the tokenizer
     // from within parser actions. We also need it to track the current position.
-    RawPtrWillBeMember<HTMLDocumentParser> m_parser;
+    Member<HTMLDocumentParser> m_parser;
 
-    RefPtrWillBeMember<Element> m_scriptToProcess; // <script> tag which needs processing before resuming the parser.
+    Member<Element> m_scriptToProcess; // <script> tag which needs processing before resuming the parser.
     TextPosition m_scriptToProcessStartPosition; // Starting line number of the script tag needing processing.
 
     HTMLParserOptions m_options;
diff --git a/third_party/WebKit/Source/core/html/parser/HTMLViewSourceParser.h b/third_party/WebKit/Source/core/html/parser/HTMLViewSourceParser.h
index 8f36abe1..3acc5b9 100644
--- a/third_party/WebKit/Source/core/html/parser/HTMLViewSourceParser.h
+++ b/third_party/WebKit/Source/core/html/parser/HTMLViewSourceParser.h
@@ -37,9 +37,9 @@
 
 class HTMLViewSourceParser final :  public DecodedDataDocumentParser {
 public:
-    static PassRefPtrWillBeRawPtr<HTMLViewSourceParser> create(HTMLViewSourceDocument& document, const String& mimeType)
+    static RawPtr<HTMLViewSourceParser> create(HTMLViewSourceDocument& document, const String& mimeType)
     {
-        return adoptRefWillBeNoop(new HTMLViewSourceParser(document, mimeType));
+        return new HTMLViewSourceParser(document, mimeType);
     }
     ~HTMLViewSourceParser() override { }
 
diff --git a/third_party/WebKit/Source/core/html/parser/TextDocumentParser.h b/third_party/WebKit/Source/core/html/parser/TextDocumentParser.h
index bc6e2de85..ffb69f9 100644
--- a/third_party/WebKit/Source/core/html/parser/TextDocumentParser.h
+++ b/third_party/WebKit/Source/core/html/parser/TextDocumentParser.h
@@ -32,9 +32,9 @@
 
 class TextDocumentParser final : public HTMLDocumentParser {
 public:
-    static PassRefPtrWillBeRawPtr<TextDocumentParser> create(HTMLDocument& document, ParserSynchronizationPolicy syncPolicy)
+    static RawPtr<TextDocumentParser> create(HTMLDocument& document, ParserSynchronizationPolicy syncPolicy)
     {
-        return adoptRefWillBeNoop(new TextDocumentParser(document, syncPolicy));
+        return new TextDocumentParser(document, syncPolicy);
     }
     ~TextDocumentParser() override;
 
diff --git a/third_party/WebKit/Source/core/html/parser/XSSAuditorDelegate.cpp b/third_party/WebKit/Source/core/html/parser/XSSAuditorDelegate.cpp
index 29176e6..f4e97732 100644
--- a/third_party/WebKit/Source/core/html/parser/XSSAuditorDelegate.cpp
+++ b/third_party/WebKit/Source/core/html/parser/XSSAuditorDelegate.cpp
@@ -107,7 +107,7 @@
     m_document->addConsoleMessage(ConsoleMessage::create(JSMessageSource, ErrorMessageLevel, xssInfo.buildConsoleError()));
 
     // stopAllLoaders can detach the LocalFrame, so protect it.
-    RefPtrWillBeRawPtr<LocalFrame> protect(m_document->frame());
+    RawPtr<LocalFrame> protect(m_document->frame());
     FrameLoader& frameLoader = m_document->frame()->loader();
     if (xssInfo.m_didBlockEntirePage)
         frameLoader.stopAllLoaders();
diff --git a/third_party/WebKit/Source/core/html/parser/XSSAuditorDelegate.h b/third_party/WebKit/Source/core/html/parser/XSSAuditorDelegate.h
index 68171ca..87c593d 100644
--- a/third_party/WebKit/Source/core/html/parser/XSSAuditorDelegate.h
+++ b/third_party/WebKit/Source/core/html/parser/XSSAuditorDelegate.h
@@ -79,7 +79,7 @@
 private:
     PassRefPtr<EncodedFormData> generateViolationReport(const XSSInfo&);
 
-    RawPtrWillBeMember<Document> m_document;
+    Member<Document> m_document;
     bool m_didSendNotifications;
     KURL m_reportURL;
 };
diff --git a/third_party/WebKit/Source/core/html/shadow/ClearButtonElement.cpp b/third_party/WebKit/Source/core/html/shadow/ClearButtonElement.cpp
index 6b1a9af..8788ace 100644
--- a/third_party/WebKit/Source/core/html/shadow/ClearButtonElement.cpp
+++ b/third_party/WebKit/Source/core/html/shadow/ClearButtonElement.cpp
@@ -41,9 +41,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<ClearButtonElement> ClearButtonElement::create(Document& document, ClearButtonOwner& clearButtonOwner)
+RawPtr<ClearButtonElement> ClearButtonElement::create(Document& document, ClearButtonOwner& clearButtonOwner)
 {
-    RefPtrWillBeRawPtr<ClearButtonElement> element = adoptRefWillBeNoop(new ClearButtonElement(document, clearButtonOwner));
+    RawPtr<ClearButtonElement> element = new ClearButtonElement(document, clearButtonOwner);
     element->setShadowPseudoId(AtomicString("-webkit-clear-button"));
     element->setAttribute(idAttr, ShadowElementNames::clearButton());
     return element.release();
diff --git a/third_party/WebKit/Source/core/html/shadow/ClearButtonElement.h b/third_party/WebKit/Source/core/html/shadow/ClearButtonElement.h
index 9d1dfd4..95bd6c2 100644
--- a/third_party/WebKit/Source/core/html/shadow/ClearButtonElement.h
+++ b/third_party/WebKit/Source/core/html/shadow/ClearButtonElement.h
@@ -33,7 +33,7 @@
 
 class ClearButtonElement final : public HTMLDivElement {
 public:
-    class ClearButtonOwner : public WillBeGarbageCollectedMixin {
+    class ClearButtonOwner : public GarbageCollectedMixin {
     public:
         virtual ~ClearButtonOwner() { }
         virtual void focusAndSelectClearButtonOwner() = 0;
@@ -41,7 +41,7 @@
         virtual void clearValue() = 0;
     };
 
-    static PassRefPtrWillBeRawPtr<ClearButtonElement> create(Document&, ClearButtonOwner&);
+    static RawPtr<ClearButtonElement> create(Document&, ClearButtonOwner&);
     void removeClearButtonOwner() { m_clearButtonOwner = nullptr; }
 
     DECLARE_VIRTUAL_TRACE();
@@ -53,7 +53,7 @@
     void defaultEventHandler(Event*) override;
     bool isClearButtonElement() const override;
 
-    RawPtrWillBeMember<ClearButtonOwner> m_clearButtonOwner;
+    Member<ClearButtonOwner> m_clearButtonOwner;
 };
 
 DEFINE_TYPE_CASTS(ClearButtonElement, Element, element, element->isClearButtonElement(), element.isClearButtonElement());
diff --git a/third_party/WebKit/Source/core/html/shadow/DateTimeEditElement.cpp b/third_party/WebKit/Source/core/html/shadow/DateTimeEditElement.cpp
index 542a685..ff4fcdf 100644
--- a/third_party/WebKit/Source/core/html/shadow/DateTimeEditElement.cpp
+++ b/third_party/WebKit/Source/core/html/shadow/DateTimeEditElement.cpp
@@ -72,7 +72,7 @@
 
     DateTimeEditElement& editElement() const;
 
-    RawPtrWillBeMember<DateTimeEditElement> m_editElement;
+    Member<DateTimeEditElement> m_editElement;
     const DateComponents m_dateValue;
     const DateTimeEditElement::LayoutParameters& m_parameters;
     DateTimeNumericFieldElement::Range m_dayRange;
@@ -148,7 +148,7 @@
 
     switch (fieldType) {
     case DateTimeFormat::FieldTypeDayOfMonth: {
-        RefPtrWillBeRawPtr<DateTimeFieldElement> field = DateTimeDayFieldElement::create(document, editElement(), m_parameters.placeholderForDay, m_dayRange);
+        RawPtr<DateTimeFieldElement> field = DateTimeDayFieldElement::create(document, editElement(), m_parameters.placeholderForDay, m_dayRange);
         editElement().addField(field);
         if (shouldDayOfMonthFieldDisabled()) {
             field->setValueAsDate(m_dateValue);
@@ -159,7 +159,7 @@
 
     case DateTimeFormat::FieldTypeHour11: {
         DateTimeNumericFieldElement::Step step = createStep(msPerHour, msPerHour * 12);
-        RefPtrWillBeRawPtr<DateTimeFieldElement> field = DateTimeHour11FieldElement::create(document, editElement(), m_hour23Range, step);
+        RawPtr<DateTimeFieldElement> field = DateTimeHour11FieldElement::create(document, editElement(), m_hour23Range, step);
         editElement().addField(field);
         if (shouldHourFieldDisabled()) {
             field->setValueAsDate(m_dateValue);
@@ -170,7 +170,7 @@
 
     case DateTimeFormat::FieldTypeHour12: {
         DateTimeNumericFieldElement::Step step = createStep(msPerHour, msPerHour * 12);
-        RefPtrWillBeRawPtr<DateTimeFieldElement> field = DateTimeHour12FieldElement::create(document, editElement(), m_hour23Range, step);
+        RawPtr<DateTimeFieldElement> field = DateTimeHour12FieldElement::create(document, editElement(), m_hour23Range, step);
         editElement().addField(field);
         if (shouldHourFieldDisabled()) {
             field->setValueAsDate(m_dateValue);
@@ -181,7 +181,7 @@
 
     case DateTimeFormat::FieldTypeHour23: {
         DateTimeNumericFieldElement::Step step = createStep(msPerHour, msPerDay);
-        RefPtrWillBeRawPtr<DateTimeFieldElement> field = DateTimeHour23FieldElement::create(document, editElement(), m_hour23Range, step);
+        RawPtr<DateTimeFieldElement> field = DateTimeHour23FieldElement::create(document, editElement(), m_hour23Range, step);
         editElement().addField(field);
         if (shouldHourFieldDisabled()) {
             field->setValueAsDate(m_dateValue);
@@ -192,7 +192,7 @@
 
     case DateTimeFormat::FieldTypeHour24: {
         DateTimeNumericFieldElement::Step step = createStep(msPerHour, msPerDay);
-        RefPtrWillBeRawPtr<DateTimeFieldElement> field = DateTimeHour24FieldElement::create(document, editElement(), m_hour23Range, step);
+        RawPtr<DateTimeFieldElement> field = DateTimeHour24FieldElement::create(document, editElement(), m_hour23Range, step);
         editElement().addField(field);
         if (shouldHourFieldDisabled()) {
             field->setValueAsDate(m_dateValue);
@@ -203,7 +203,7 @@
 
     case DateTimeFormat::FieldTypeMinute: {
         DateTimeNumericFieldElement::Step step = createStep(msPerMinute, msPerHour);
-        RefPtrWillBeRawPtr<DateTimeNumericFieldElement> field = DateTimeMinuteFieldElement::create(document, editElement(), m_minuteRange, step);
+        RawPtr<DateTimeNumericFieldElement> field = DateTimeMinuteFieldElement::create(document, editElement(), m_minuteRange, step);
         editElement().addField(field);
         if (shouldMinuteFieldDisabled()) {
             field->setValueAsDate(m_dateValue);
@@ -222,7 +222,7 @@
             minMonth = m_parameters.minimum.month();
             maxMonth = m_parameters.maximum.month();
         }
-        RefPtrWillBeRawPtr<DateTimeFieldElement> field;
+        RawPtr<DateTimeFieldElement> field;
         switch (count) {
         case countForNarrowMonth: // Fallthrough.
         case countForAbbreviatedMonth:
@@ -244,7 +244,7 @@
     }
 
     case DateTimeFormat::FieldTypePeriod: {
-        RefPtrWillBeRawPtr<DateTimeFieldElement> field = DateTimeAMPMFieldElement::create(document, editElement(), m_parameters.locale.timeAMPMLabels());
+        RawPtr<DateTimeFieldElement> field = DateTimeAMPMFieldElement::create(document, editElement(), m_parameters.locale.timeAMPMLabels());
         editElement().addField(field);
         if (shouldAMPMFieldDisabled()) {
             field->setValueAsDate(m_dateValue);
@@ -255,7 +255,7 @@
 
     case DateTimeFormat::FieldTypeSecond: {
         DateTimeNumericFieldElement::Step step = createStep(msPerSecond, msPerMinute);
-        RefPtrWillBeRawPtr<DateTimeNumericFieldElement> field = DateTimeSecondFieldElement::create(document, editElement(), m_secondRange, step);
+        RawPtr<DateTimeNumericFieldElement> field = DateTimeSecondFieldElement::create(document, editElement(), m_secondRange, step);
         editElement().addField(field);
         if (shouldSecondFieldDisabled()) {
             field->setValueAsDate(m_dateValue);
@@ -271,7 +271,7 @@
 
     case DateTimeFormat::FieldTypeFractionalSecond: {
         DateTimeNumericFieldElement::Step step = createStep(1, msPerSecond);
-        RefPtrWillBeRawPtr<DateTimeNumericFieldElement> field = DateTimeMillisecondFieldElement::create(document, editElement(), m_millisecondRange, step);
+        RawPtr<DateTimeNumericFieldElement> field = DateTimeMillisecondFieldElement::create(document, editElement(), m_millisecondRange, step);
         editElement().addField(field);
         if (shouldMillisecondFieldDisabled()) {
             field->setValueAsDate(m_dateValue);
@@ -314,7 +314,7 @@
             std::swap(yearParams.minIsSpecified, yearParams.maxIsSpecified);
         }
         yearParams.placeholder = m_parameters.placeholderForYear;
-        RefPtrWillBeRawPtr<DateTimeFieldElement> field = DateTimeYearFieldElement::create(document, editElement(), yearParams);
+        RawPtr<DateTimeFieldElement> field = DateTimeYearFieldElement::create(document, editElement(), yearParams);
         editElement().addField(field);
         if (shouldYearFieldDisabled()) {
             field->setValueAsDate(m_dateValue);
@@ -402,7 +402,7 @@
 {
     DEFINE_STATIC_LOCAL(AtomicString, textPseudoId, ("-webkit-datetime-edit-text"));
     ASSERT(text.length());
-    RefPtrWillBeRawPtr<HTMLDivElement> element = HTMLDivElement::create(editElement().document());
+    RawPtr<HTMLDivElement> element = HTMLDivElement::create(editElement().document());
     element->setShadowPseudoId(textPseudoId);
     if (m_parameters.locale.isRTL() && text.length()) {
         CharDirection dir = direction(text[0]);
@@ -475,7 +475,7 @@
     return toElement(firstChild());
 }
 
-void DateTimeEditElement::addField(PassRefPtrWillBeRawPtr<DateTimeFieldElement> field)
+void DateTimeEditElement::addField(RawPtr<DateTimeFieldElement> field)
 {
     if (m_fields.size() >= maximumNumberOfFields)
         return;
@@ -498,9 +498,9 @@
         field->blur();
 }
 
-PassRefPtrWillBeRawPtr<DateTimeEditElement> DateTimeEditElement::create(Document& document, EditControlOwner& editControlOwner)
+RawPtr<DateTimeEditElement> DateTimeEditElement::create(Document& document, EditControlOwner& editControlOwner)
 {
-    RefPtrWillBeRawPtr<DateTimeEditElement> container = adoptRefWillBeNoop(new DateTimeEditElement(document, editControlOwner));
+    RawPtr<DateTimeEditElement> container = new DateTimeEditElement(document, editControlOwner);
     container->setShadowPseudoId(AtomicString("-webkit-datetime-edit"));
     container->setAttribute(idAttr, ShadowElementNames::dateTimeEdit());
     return container.release();
@@ -670,7 +670,7 @@
 {
     DEFINE_STATIC_LOCAL(AtomicString, fieldsWrapperPseudoId, ("-webkit-datetime-edit-fields-wrapper"));
     if (!hasChildren()) {
-        RefPtrWillBeRawPtr<HTMLDivElement> element = HTMLDivElement::create(document());
+        RawPtr<HTMLDivElement> element = HTMLDivElement::create(document());
         element->setShadowPseudoId(fieldsWrapperPseudoId);
         appendChild(element.get());
     }
diff --git a/third_party/WebKit/Source/core/html/shadow/DateTimeEditElement.h b/third_party/WebKit/Source/core/html/shadow/DateTimeEditElement.h
index 440fec9..bfc562a 100644
--- a/third_party/WebKit/Source/core/html/shadow/DateTimeEditElement.h
+++ b/third_party/WebKit/Source/core/html/shadow/DateTimeEditElement.h
@@ -46,12 +46,12 @@
 //  - Hour, Minute, Second, Millisecond, AM/PM
 class DateTimeEditElement final : public HTMLDivElement, public DateTimeFieldElement::FieldOwner {
     WTF_MAKE_NONCOPYABLE(DateTimeEditElement);
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(DateTimeEditElement);
+    USING_GARBAGE_COLLECTED_MIXIN(DateTimeEditElement);
 
 public:
     // EditControlOwner implementer must call removeEditControlOwner when
     // it doesn't handle event, e.g. at destruction.
-    class EditControlOwner : public WillBeGarbageCollectedMixin {
+    class EditControlOwner : public GarbageCollectedMixin {
     public:
         virtual ~EditControlOwner();
         virtual void didBlurFromControl() = 0;
@@ -83,12 +83,12 @@
         }
     };
 
-    static PassRefPtrWillBeRawPtr<DateTimeEditElement> create(Document&, EditControlOwner&);
+    static RawPtr<DateTimeEditElement> create(Document&, EditControlOwner&);
 
     ~DateTimeEditElement() override;
     DECLARE_VIRTUAL_TRACE();
 
-    void addField(PassRefPtrWillBeRawPtr<DateTimeFieldElement>);
+    void addField(RawPtr<DateTimeFieldElement>);
     bool anyEditableFieldsHaveValues() const;
     void blurByOwner();
     void defaultEventHandler(Event*) override;
@@ -152,8 +152,8 @@
     AtomicString localeIdentifier() const override;
     void fieldDidChangeValueByKeyboard() override;
 
-    WillBeHeapVector<RawPtrWillBeMember<DateTimeFieldElement>, maximumNumberOfFields> m_fields;
-    RawPtrWillBeMember<EditControlOwner> m_editControlOwner;
+    HeapVector<Member<DateTimeFieldElement>, maximumNumberOfFields> m_fields;
+    Member<EditControlOwner> m_editControlOwner;
 };
 
 DEFINE_TYPE_CASTS(DateTimeEditElement, Element, element, element->isDateTimeEditElement(), element.isDateTimeEditElement());
diff --git a/third_party/WebKit/Source/core/html/shadow/DateTimeFieldElement.h b/third_party/WebKit/Source/core/html/shadow/DateTimeFieldElement.h
index a9b40f5b..9792067e 100644
--- a/third_party/WebKit/Source/core/html/shadow/DateTimeFieldElement.h
+++ b/third_party/WebKit/Source/core/html/shadow/DateTimeFieldElement.h
@@ -49,7 +49,7 @@
 
     // FieldOwner implementer must call removeEventHandler when
     // it doesn't handle event, e.g. at destruction.
-    class FieldOwner : public WillBeGarbageCollectedMixin {
+    class FieldOwner : public GarbageCollectedMixin {
     public:
         virtual ~FieldOwner();
         virtual void didBlurFromField() = 0;
@@ -103,7 +103,7 @@
     bool isFieldOwnerReadOnly() const;
     bool supportsFocus() const final;
 
-    RawPtrWillBeMember<FieldOwner> m_fieldOwner;
+    Member<FieldOwner> m_fieldOwner;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/html/shadow/DateTimeFieldElements.cpp b/third_party/WebKit/Source/core/html/shadow/DateTimeFieldElements.cpp
index acb9c6452..888963b 100644
--- a/third_party/WebKit/Source/core/html/shadow/DateTimeFieldElements.cpp
+++ b/third_party/WebKit/Source/core/html/shadow/DateTimeFieldElements.cpp
@@ -46,10 +46,10 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<DateTimeAMPMFieldElement> DateTimeAMPMFieldElement::create(Document& document, FieldOwner& fieldOwner, const Vector<String>& ampmLabels)
+RawPtr<DateTimeAMPMFieldElement> DateTimeAMPMFieldElement::create(Document& document, FieldOwner& fieldOwner, const Vector<String>& ampmLabels)
 {
     DEFINE_STATIC_LOCAL(AtomicString, ampmPseudoId, ("-webkit-datetime-edit-ampm-field"));
-    RefPtrWillBeRawPtr<DateTimeAMPMFieldElement> field = adoptRefWillBeNoop(new DateTimeAMPMFieldElement(document, fieldOwner, ampmLabels));
+    RawPtr<DateTimeAMPMFieldElement> field = new DateTimeAMPMFieldElement(document, fieldOwner, ampmLabels);
     field->initialize(ampmPseudoId, queryString(WebLocalizedString::AXAMPMFieldText));
     return field.release();
 }
@@ -82,10 +82,10 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<DateTimeDayFieldElement> DateTimeDayFieldElement::create(Document& document, FieldOwner& fieldOwner, const String& placeholder, const Range& range)
+RawPtr<DateTimeDayFieldElement> DateTimeDayFieldElement::create(Document& document, FieldOwner& fieldOwner, const String& placeholder, const Range& range)
 {
     DEFINE_STATIC_LOCAL(AtomicString, dayPseudoId, ("-webkit-datetime-edit-day-field"));
-    RefPtrWillBeRawPtr<DateTimeDayFieldElement> field = adoptRefWillBeNoop(new DateTimeDayFieldElement(document, fieldOwner, placeholder.isEmpty() ? "--" : placeholder, range));
+    RawPtr<DateTimeDayFieldElement> field = new DateTimeDayFieldElement(document, fieldOwner, placeholder.isEmpty() ? "--" : placeholder, range);
     field->initialize(dayPseudoId, queryString(WebLocalizedString::AXDayOfMonthFieldText));
     return field.release();
 }
@@ -158,7 +158,7 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<DateTimeHour11FieldElement> DateTimeHour11FieldElement::create(Document& document, FieldOwner& fieldOwner, const Range& hour23Range, const Step& step)
+RawPtr<DateTimeHour11FieldElement> DateTimeHour11FieldElement::create(Document& document, FieldOwner& fieldOwner, const Range& hour23Range, const Step& step)
 {
     ASSERT(hour23Range.minimum >= 0);
     ASSERT(hour23Range.maximum <= 23);
@@ -171,7 +171,7 @@
         range.maximum = hour23Range.maximum - 12;
     }
 
-    RefPtrWillBeRawPtr<DateTimeHour11FieldElement> field = adoptRefWillBeNoop(new DateTimeHour11FieldElement(document, fieldOwner, range, step));
+    RawPtr<DateTimeHour11FieldElement> field = new DateTimeHour11FieldElement(document, fieldOwner, range, step);
     field->initialize();
     return field.release();
 }
@@ -199,7 +199,7 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<DateTimeHour12FieldElement> DateTimeHour12FieldElement::create(Document& document, FieldOwner& fieldOwner, const Range& hour23Range, const Step& step)
+RawPtr<DateTimeHour12FieldElement> DateTimeHour12FieldElement::create(Document& document, FieldOwner& fieldOwner, const Range& hour23Range, const Step& step)
 {
     ASSERT(hour23Range.minimum >= 0);
     ASSERT(hour23Range.maximum <= 23);
@@ -219,7 +219,7 @@
         range.minimum = 1;
         range.maximum = 12;
     }
-    RefPtrWillBeRawPtr<DateTimeHour12FieldElement> field = adoptRefWillBeNoop(new DateTimeHour12FieldElement(document, fieldOwner, range, step));
+    RawPtr<DateTimeHour12FieldElement> field = new DateTimeHour12FieldElement(document, fieldOwner, range, step);
     field->initialize();
     return field.release();
 }
@@ -242,12 +242,12 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<DateTimeHour23FieldElement> DateTimeHour23FieldElement::create(Document& document, FieldOwner& fieldOwner, const Range& hour23Range, const Step& step)
+RawPtr<DateTimeHour23FieldElement> DateTimeHour23FieldElement::create(Document& document, FieldOwner& fieldOwner, const Range& hour23Range, const Step& step)
 {
     ASSERT(hour23Range.minimum >= 0);
     ASSERT(hour23Range.maximum <= 23);
     ASSERT(hour23Range.minimum <= hour23Range.maximum);
-    RefPtrWillBeRawPtr<DateTimeHour23FieldElement> field = adoptRefWillBeNoop(new DateTimeHour23FieldElement(document, fieldOwner, hour23Range, step));
+    RawPtr<DateTimeHour23FieldElement> field = new DateTimeHour23FieldElement(document, fieldOwner, hour23Range, step);
     field->initialize();
     return field.release();
 }
@@ -278,7 +278,7 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<DateTimeHour24FieldElement> DateTimeHour24FieldElement::create(Document& document, FieldOwner& fieldOwner, const Range& hour23Range, const Step& step)
+RawPtr<DateTimeHour24FieldElement> DateTimeHour24FieldElement::create(Document& document, FieldOwner& fieldOwner, const Range& hour23Range, const Step& step)
 {
     ASSERT(hour23Range.minimum >= 0);
     ASSERT(hour23Range.maximum <= 23);
@@ -289,7 +289,7 @@
         range.maximum = 24;
     }
 
-    RefPtrWillBeRawPtr<DateTimeHour24FieldElement> field = adoptRefWillBeNoop(new DateTimeHour24FieldElement(document, fieldOwner, range, step));
+    RawPtr<DateTimeHour24FieldElement> field = new DateTimeHour24FieldElement(document, fieldOwner, range, step);
     field->initialize();
     return field.release();
 }
@@ -325,10 +325,10 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<DateTimeMillisecondFieldElement> DateTimeMillisecondFieldElement::create(Document& document, FieldOwner& fieldOwner, const Range& range, const Step& step)
+RawPtr<DateTimeMillisecondFieldElement> DateTimeMillisecondFieldElement::create(Document& document, FieldOwner& fieldOwner, const Range& range, const Step& step)
 {
     DEFINE_STATIC_LOCAL(AtomicString, millisecondPseudoId, ("-webkit-datetime-edit-millisecond-field"));
-    RefPtrWillBeRawPtr<DateTimeMillisecondFieldElement> field = adoptRefWillBeNoop(new DateTimeMillisecondFieldElement(document, fieldOwner, range, step));
+    RawPtr<DateTimeMillisecondFieldElement> field = new DateTimeMillisecondFieldElement(document, fieldOwner, range, step);
     field->initialize(millisecondPseudoId, queryString(WebLocalizedString::AXMillisecondFieldText));
     return field.release();
 }
@@ -366,10 +366,10 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<DateTimeMinuteFieldElement> DateTimeMinuteFieldElement::create(Document& document, FieldOwner& fieldOwner, const Range& range, const Step& step)
+RawPtr<DateTimeMinuteFieldElement> DateTimeMinuteFieldElement::create(Document& document, FieldOwner& fieldOwner, const Range& range, const Step& step)
 {
     DEFINE_STATIC_LOCAL(AtomicString, minutePseudoId, ("-webkit-datetime-edit-minute-field"));
-    RefPtrWillBeRawPtr<DateTimeMinuteFieldElement> field = adoptRefWillBeNoop(new DateTimeMinuteFieldElement(document, fieldOwner, range, step));
+    RawPtr<DateTimeMinuteFieldElement> field = new DateTimeMinuteFieldElement(document, fieldOwner, range, step);
     field->initialize(minutePseudoId, queryString(WebLocalizedString::AXMinuteFieldText));
     return field.release();
 }
@@ -407,10 +407,10 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<DateTimeMonthFieldElement> DateTimeMonthFieldElement::create(Document& document, FieldOwner& fieldOwner, const String& placeholder, const Range& range)
+RawPtr<DateTimeMonthFieldElement> DateTimeMonthFieldElement::create(Document& document, FieldOwner& fieldOwner, const String& placeholder, const Range& range)
 {
     DEFINE_STATIC_LOCAL(AtomicString, monthPseudoId, ("-webkit-datetime-edit-month-field"));
-    RefPtrWillBeRawPtr<DateTimeMonthFieldElement> field = adoptRefWillBeNoop(new DateTimeMonthFieldElement(document, fieldOwner, placeholder.isEmpty() ? "--" : placeholder, range));
+    RawPtr<DateTimeMonthFieldElement> field = new DateTimeMonthFieldElement(document, fieldOwner, placeholder.isEmpty() ? "--" : placeholder, range);
     field->initialize(monthPseudoId, queryString(WebLocalizedString::AXMonthFieldText));
     return field.release();
 }
@@ -448,10 +448,10 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<DateTimeSecondFieldElement> DateTimeSecondFieldElement::create(Document& document, FieldOwner& fieldOwner, const Range& range, const Step& step)
+RawPtr<DateTimeSecondFieldElement> DateTimeSecondFieldElement::create(Document& document, FieldOwner& fieldOwner, const Range& range, const Step& step)
 {
     DEFINE_STATIC_LOCAL(AtomicString, secondPseudoId, ("-webkit-datetime-edit-second-field"));
-    RefPtrWillBeRawPtr<DateTimeSecondFieldElement> field = adoptRefWillBeNoop(new DateTimeSecondFieldElement(document, fieldOwner, range, step));
+    RawPtr<DateTimeSecondFieldElement> field = new DateTimeSecondFieldElement(document, fieldOwner, range, step);
     field->initialize(secondPseudoId, queryString(WebLocalizedString::AXSecondFieldText));
     return field.release();
 }
@@ -489,10 +489,10 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<DateTimeSymbolicMonthFieldElement> DateTimeSymbolicMonthFieldElement::create(Document& document, FieldOwner& fieldOwner, const Vector<String>& labels, int minimum, int maximum)
+RawPtr<DateTimeSymbolicMonthFieldElement> DateTimeSymbolicMonthFieldElement::create(Document& document, FieldOwner& fieldOwner, const Vector<String>& labels, int minimum, int maximum)
 {
     DEFINE_STATIC_LOCAL(AtomicString, monthPseudoId, ("-webkit-datetime-edit-month-field"));
-    RefPtrWillBeRawPtr<DateTimeSymbolicMonthFieldElement> field = adoptRefWillBeNoop(new DateTimeSymbolicMonthFieldElement(document, fieldOwner, labels, minimum, maximum));
+    RawPtr<DateTimeSymbolicMonthFieldElement> field = new DateTimeSymbolicMonthFieldElement(document, fieldOwner, labels, minimum, maximum);
     field->initialize(monthPseudoId, queryString(WebLocalizedString::AXMonthFieldText));
     return field.release();
 }
@@ -533,10 +533,10 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<DateTimeWeekFieldElement> DateTimeWeekFieldElement::create(Document& document, FieldOwner& fieldOwner, const Range& range)
+RawPtr<DateTimeWeekFieldElement> DateTimeWeekFieldElement::create(Document& document, FieldOwner& fieldOwner, const Range& range)
 {
     DEFINE_STATIC_LOCAL(AtomicString, weekPseudoId, ("-webkit-datetime-edit-week-field"));
-    RefPtrWillBeRawPtr<DateTimeWeekFieldElement> field = adoptRefWillBeNoop(new DateTimeWeekFieldElement(document, fieldOwner, range));
+    RawPtr<DateTimeWeekFieldElement> field = new DateTimeWeekFieldElement(document, fieldOwner, range);
     field->initialize(weekPseudoId, queryString(WebLocalizedString::AXWeekOfYearFieldText));
     return field.release();
 }
@@ -578,10 +578,10 @@
     ASSERT(parameters.maximumYear <= DateComponents::maximumYear());
 }
 
-PassRefPtrWillBeRawPtr<DateTimeYearFieldElement> DateTimeYearFieldElement::create(Document& document, FieldOwner& fieldOwner, const DateTimeYearFieldElement::Parameters& parameters)
+RawPtr<DateTimeYearFieldElement> DateTimeYearFieldElement::create(Document& document, FieldOwner& fieldOwner, const DateTimeYearFieldElement::Parameters& parameters)
 {
     DEFINE_STATIC_LOCAL(AtomicString, yearPseudoId, ("-webkit-datetime-edit-year-field"));
-    RefPtrWillBeRawPtr<DateTimeYearFieldElement> field = adoptRefWillBeNoop(new DateTimeYearFieldElement(document, fieldOwner, parameters));
+    RawPtr<DateTimeYearFieldElement> field = new DateTimeYearFieldElement(document, fieldOwner, parameters);
     field->initialize(yearPseudoId, queryString(WebLocalizedString::AXYearFieldText));
     return field.release();
 }
diff --git a/third_party/WebKit/Source/core/html/shadow/DateTimeFieldElements.h b/third_party/WebKit/Source/core/html/shadow/DateTimeFieldElements.h
index 26122d0..ee4b0773 100644
--- a/third_party/WebKit/Source/core/html/shadow/DateTimeFieldElements.h
+++ b/third_party/WebKit/Source/core/html/shadow/DateTimeFieldElements.h
@@ -39,7 +39,7 @@
     WTF_MAKE_NONCOPYABLE(DateTimeAMPMFieldElement);
 
 public:
-    static PassRefPtrWillBeRawPtr<DateTimeAMPMFieldElement> create(Document&, FieldOwner&, const Vector<String>&);
+    static RawPtr<DateTimeAMPMFieldElement> create(Document&, FieldOwner&, const Vector<String>&);
 
 private:
     DateTimeAMPMFieldElement(Document&, FieldOwner&, const Vector<String>&);
@@ -54,7 +54,7 @@
     WTF_MAKE_NONCOPYABLE(DateTimeDayFieldElement);
 
 public:
-    static PassRefPtrWillBeRawPtr<DateTimeDayFieldElement> create(Document&, FieldOwner&, const String& placeholder, const Range&);
+    static RawPtr<DateTimeDayFieldElement> create(Document&, FieldOwner&, const String& placeholder, const Range&);
 
 private:
     DateTimeDayFieldElement(Document&, FieldOwner&, const String& placeholder, const Range&);
@@ -82,7 +82,7 @@
     WTF_MAKE_NONCOPYABLE(DateTimeHour11FieldElement);
 
 public:
-    static PassRefPtrWillBeRawPtr<DateTimeHour11FieldElement> create(Document&, FieldOwner&, const Range&, const Step&);
+    static RawPtr<DateTimeHour11FieldElement> create(Document&, FieldOwner&, const Range&, const Step&);
 
 private:
     DateTimeHour11FieldElement(Document&, FieldOwner&, const Range& hour23Range, const Step&);
@@ -96,7 +96,7 @@
     WTF_MAKE_NONCOPYABLE(DateTimeHour12FieldElement);
 
 public:
-    static PassRefPtrWillBeRawPtr<DateTimeHour12FieldElement> create(Document&, FieldOwner&, const Range&, const Step&);
+    static RawPtr<DateTimeHour12FieldElement> create(Document&, FieldOwner&, const Range&, const Step&);
 
 private:
     DateTimeHour12FieldElement(Document&, FieldOwner&, const Range& hour23Range, const Step&);
@@ -110,7 +110,7 @@
     WTF_MAKE_NONCOPYABLE(DateTimeHour23FieldElement);
 
 public:
-    static PassRefPtrWillBeRawPtr<DateTimeHour23FieldElement> create(Document&, FieldOwner&, const Range&, const Step&);
+    static RawPtr<DateTimeHour23FieldElement> create(Document&, FieldOwner&, const Range&, const Step&);
 
 private:
     DateTimeHour23FieldElement(Document&, FieldOwner&, const Range& hour23Range, const Step&);
@@ -124,7 +124,7 @@
     WTF_MAKE_NONCOPYABLE(DateTimeHour24FieldElement);
 
 public:
-    static PassRefPtrWillBeRawPtr<DateTimeHour24FieldElement> create(Document&, FieldOwner&, const Range&, const Step&);
+    static RawPtr<DateTimeHour24FieldElement> create(Document&, FieldOwner&, const Range&, const Step&);
 
 private:
     DateTimeHour24FieldElement(Document&, FieldOwner&, const Range& hour23Range, const Step&);
@@ -138,7 +138,7 @@
     WTF_MAKE_NONCOPYABLE(DateTimeMillisecondFieldElement);
 
 public:
-    static PassRefPtrWillBeRawPtr<DateTimeMillisecondFieldElement> create(Document&, FieldOwner&, const Range&, const Step&);
+    static RawPtr<DateTimeMillisecondFieldElement> create(Document&, FieldOwner&, const Range&, const Step&);
 
 private:
     DateTimeMillisecondFieldElement(Document&, FieldOwner&, const Range&, const Step&);
@@ -153,7 +153,7 @@
     WTF_MAKE_NONCOPYABLE(DateTimeMinuteFieldElement);
 
 public:
-    static PassRefPtrWillBeRawPtr<DateTimeMinuteFieldElement> create(Document&, FieldOwner&, const Range&, const Step&);
+    static RawPtr<DateTimeMinuteFieldElement> create(Document&, FieldOwner&, const Range&, const Step&);
 
 private:
     DateTimeMinuteFieldElement(Document&, FieldOwner&, const Range&, const Step&);
@@ -168,7 +168,7 @@
     WTF_MAKE_NONCOPYABLE(DateTimeMonthFieldElement);
 
 public:
-    static PassRefPtrWillBeRawPtr<DateTimeMonthFieldElement> create(Document&, FieldOwner&, const String& placeholder, const Range&);
+    static RawPtr<DateTimeMonthFieldElement> create(Document&, FieldOwner&, const String& placeholder, const Range&);
 
 private:
     DateTimeMonthFieldElement(Document&, FieldOwner&, const String& placeholder, const Range&);
@@ -183,7 +183,7 @@
     WTF_MAKE_NONCOPYABLE(DateTimeSecondFieldElement);
 
 public:
-    static PassRefPtrWillBeRawPtr<DateTimeSecondFieldElement> create(Document&, FieldOwner&, const Range&, const Step&);
+    static RawPtr<DateTimeSecondFieldElement> create(Document&, FieldOwner&, const Range&, const Step&);
 
 private:
     DateTimeSecondFieldElement(Document&, FieldOwner&, const Range&, const Step&);
@@ -198,7 +198,7 @@
     WTF_MAKE_NONCOPYABLE(DateTimeSymbolicMonthFieldElement);
 
 public:
-    static PassRefPtrWillBeRawPtr<DateTimeSymbolicMonthFieldElement> create(Document&, FieldOwner&, const Vector<String>&, int minimum, int maximum);
+    static RawPtr<DateTimeSymbolicMonthFieldElement> create(Document&, FieldOwner&, const Vector<String>&, int minimum, int maximum);
 
 private:
     DateTimeSymbolicMonthFieldElement(Document&, FieldOwner&, const Vector<String>&, int minimum, int maximum);
@@ -213,7 +213,7 @@
     WTF_MAKE_NONCOPYABLE(DateTimeWeekFieldElement);
 
 public:
-    static PassRefPtrWillBeRawPtr<DateTimeWeekFieldElement> create(Document&, FieldOwner&, const Range&);
+    static RawPtr<DateTimeWeekFieldElement> create(Document&, FieldOwner&, const Range&);
 
 private:
     DateTimeWeekFieldElement(Document&, FieldOwner&, const Range&);
@@ -245,7 +245,7 @@
         }
     };
 
-    static PassRefPtrWillBeRawPtr<DateTimeYearFieldElement> create(Document&, FieldOwner&, const Parameters&);
+    static RawPtr<DateTimeYearFieldElement> create(Document&, FieldOwner&, const Parameters&);
 
 private:
     DateTimeYearFieldElement(Document&, FieldOwner&, const Parameters&);
diff --git a/third_party/WebKit/Source/core/html/shadow/DetailsMarkerControl.h b/third_party/WebKit/Source/core/html/shadow/DetailsMarkerControl.h
index 3adadbc7..3292890 100644
--- a/third_party/WebKit/Source/core/html/shadow/DetailsMarkerControl.h
+++ b/third_party/WebKit/Source/core/html/shadow/DetailsMarkerControl.h
@@ -41,7 +41,7 @@
 class DetailsMarkerControl final : public HTMLDivElement {
 public:
     explicit DetailsMarkerControl(Document&);
-    static PassRefPtrWillBeRawPtr<DetailsMarkerControl> create(Document&);
+    static RawPtr<DetailsMarkerControl> create(Document&);
 
 private:
     LayoutObject* createLayoutObject(const ComputedStyle&) override;
@@ -50,9 +50,9 @@
     HTMLSummaryElement* summaryElement();
 };
 
-inline PassRefPtrWillBeRawPtr<DetailsMarkerControl> DetailsMarkerControl::create(Document& document)
+inline RawPtr<DetailsMarkerControl> DetailsMarkerControl::create(Document& document)
 {
-    RefPtrWillBeRawPtr<DetailsMarkerControl> element = adoptRefWillBeNoop(new DetailsMarkerControl(document));
+    RawPtr<DetailsMarkerControl> element = new DetailsMarkerControl(document);
     element->setShadowPseudoId(AtomicString("-webkit-details-marker"));
     return element.release();
 }
diff --git a/third_party/WebKit/Source/core/html/shadow/MediaControlElementTypes.h b/third_party/WebKit/Source/core/html/shadow/MediaControlElementTypes.h
index 6ee8a717..21eb10c 100644
--- a/third_party/WebKit/Source/core/html/shadow/MediaControlElementTypes.h
+++ b/third_party/WebKit/Source/core/html/shadow/MediaControlElementTypes.h
@@ -74,7 +74,7 @@
 
 // ----------------------------
 
-class MediaControlElement : public WillBeGarbageCollectedMixin {
+class MediaControlElement : public GarbageCollectedMixin {
 public:
     // These hold the state about whether this control should be shown if
     // space permits.  These will also show / hide as needed.
@@ -106,9 +106,9 @@
     // if and only if we're wanted and we fit.
     void updateShownState();
 
-    RawPtrWillBeMember<MediaControls> m_mediaControls;
+    Member<MediaControls> m_mediaControls;
     MediaControlElementType m_displayType;
-    RawPtrWillBeMember<HTMLElement> m_element;
+    Member<HTMLElement> m_element;
     bool m_isWanted : 1;
     bool m_doesFit : 1;
 };
@@ -116,7 +116,7 @@
 // ----------------------------
 
 class MediaControlDivElement : public HTMLDivElement, public MediaControlElement {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(MediaControlDivElement);
+    USING_GARBAGE_COLLECTED_MIXIN(MediaControlDivElement);
 public:
     DECLARE_VIRTUAL_TRACE();
 
@@ -130,7 +130,7 @@
 // ----------------------------
 
 class MediaControlInputElement : public HTMLInputElement, public MediaControlElement {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(MediaControlInputElement);
+    USING_GARBAGE_COLLECTED_MIXIN(MediaControlInputElement);
 public:
     DECLARE_VIRTUAL_TRACE();
 
diff --git a/third_party/WebKit/Source/core/html/shadow/MediaControlElements.cpp b/third_party/WebKit/Source/core/html/shadow/MediaControlElements.cpp
index 9215075..98196c1 100644
--- a/third_party/WebKit/Source/core/html/shadow/MediaControlElements.cpp
+++ b/third_party/WebKit/Source/core/html/shadow/MediaControlElements.cpp
@@ -104,9 +104,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<MediaControlPanelElement> MediaControlPanelElement::create(MediaControls& mediaControls)
+RawPtr<MediaControlPanelElement> MediaControlPanelElement::create(MediaControls& mediaControls)
 {
-    RefPtrWillBeRawPtr<MediaControlPanelElement> panel = adoptRefWillBeNoop(new MediaControlPanelElement(mediaControls));
+    RawPtr<MediaControlPanelElement> panel = new MediaControlPanelElement(mediaControls);
     panel->setShadowPseudoId(AtomicString("-webkit-media-controls-panel"));
     return panel.release();
 }
@@ -201,9 +201,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<MediaControlPanelEnclosureElement> MediaControlPanelEnclosureElement::create(MediaControls& mediaControls)
+RawPtr<MediaControlPanelEnclosureElement> MediaControlPanelEnclosureElement::create(MediaControls& mediaControls)
 {
-    RefPtrWillBeRawPtr<MediaControlPanelEnclosureElement> enclosure = adoptRefWillBeNoop(new MediaControlPanelEnclosureElement(mediaControls));
+    RawPtr<MediaControlPanelEnclosureElement> enclosure = new MediaControlPanelEnclosureElement(mediaControls);
     enclosure->setShadowPseudoId(AtomicString("-webkit-media-controls-enclosure"));
     return enclosure.release();
 }
@@ -216,9 +216,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<MediaControlOverlayEnclosureElement> MediaControlOverlayEnclosureElement::create(MediaControls& mediaControls)
+RawPtr<MediaControlOverlayEnclosureElement> MediaControlOverlayEnclosureElement::create(MediaControls& mediaControls)
 {
-    RefPtrWillBeRawPtr<MediaControlOverlayEnclosureElement> enclosure = adoptRefWillBeNoop(new MediaControlOverlayEnclosureElement(mediaControls));
+    RawPtr<MediaControlOverlayEnclosureElement> enclosure = new MediaControlOverlayEnclosureElement(mediaControls);
     enclosure->setShadowPseudoId(AtomicString("-webkit-media-controls-overlay-enclosure"));
     return enclosure.release();
 }
@@ -242,9 +242,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<MediaControlMuteButtonElement> MediaControlMuteButtonElement::create(MediaControls& mediaControls)
+RawPtr<MediaControlMuteButtonElement> MediaControlMuteButtonElement::create(MediaControls& mediaControls)
 {
-    RefPtrWillBeRawPtr<MediaControlMuteButtonElement> button = adoptRefWillBeNoop(new MediaControlMuteButtonElement(mediaControls));
+    RawPtr<MediaControlMuteButtonElement> button = new MediaControlMuteButtonElement(mediaControls);
     button->ensureUserAgentShadowRoot();
     button->setType(InputTypeNames::button);
     button->setShadowPseudoId(AtomicString("-webkit-media-controls-mute-button"));
@@ -273,9 +273,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<MediaControlPlayButtonElement> MediaControlPlayButtonElement::create(MediaControls& mediaControls)
+RawPtr<MediaControlPlayButtonElement> MediaControlPlayButtonElement::create(MediaControls& mediaControls)
 {
-    RefPtrWillBeRawPtr<MediaControlPlayButtonElement> button = adoptRefWillBeNoop(new MediaControlPlayButtonElement(mediaControls));
+    RawPtr<MediaControlPlayButtonElement> button = new MediaControlPlayButtonElement(mediaControls);
     button->ensureUserAgentShadowRoot();
     button->setType(InputTypeNames::button);
     button->setShadowPseudoId(AtomicString("-webkit-media-controls-play-button"));
@@ -310,9 +310,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<MediaControlOverlayPlayButtonElement> MediaControlOverlayPlayButtonElement::create(MediaControls& mediaControls)
+RawPtr<MediaControlOverlayPlayButtonElement> MediaControlOverlayPlayButtonElement::create(MediaControls& mediaControls)
 {
-    RefPtrWillBeRawPtr<MediaControlOverlayPlayButtonElement> button = adoptRefWillBeNoop(new MediaControlOverlayPlayButtonElement(mediaControls));
+    RawPtr<MediaControlOverlayPlayButtonElement> button = new MediaControlOverlayPlayButtonElement(mediaControls);
     button->ensureUserAgentShadowRoot();
     button->setType(InputTypeNames::button);
     button->setShadowPseudoId(AtomicString("-webkit-media-controls-overlay-play-button"));
@@ -346,9 +346,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<MediaControlToggleClosedCaptionsButtonElement> MediaControlToggleClosedCaptionsButtonElement::create(MediaControls& mediaControls)
+RawPtr<MediaControlToggleClosedCaptionsButtonElement> MediaControlToggleClosedCaptionsButtonElement::create(MediaControls& mediaControls)
 {
-    RefPtrWillBeRawPtr<MediaControlToggleClosedCaptionsButtonElement> button = adoptRefWillBeNoop(new MediaControlToggleClosedCaptionsButtonElement(mediaControls));
+    RawPtr<MediaControlToggleClosedCaptionsButtonElement> button = new MediaControlToggleClosedCaptionsButtonElement(mediaControls);
     button->ensureUserAgentShadowRoot();
     button->setType(InputTypeNames::button);
     button->setShadowPseudoId(AtomicString("-webkit-media-controls-toggle-closed-captions-button"));
@@ -382,9 +382,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<MediaControlTimelineElement> MediaControlTimelineElement::create(MediaControls& mediaControls)
+RawPtr<MediaControlTimelineElement> MediaControlTimelineElement::create(MediaControls& mediaControls)
 {
-    RefPtrWillBeRawPtr<MediaControlTimelineElement> timeline = adoptRefWillBeNoop(new MediaControlTimelineElement(mediaControls));
+    RawPtr<MediaControlTimelineElement> timeline = new MediaControlTimelineElement(mediaControls);
     timeline->ensureUserAgentShadowRoot();
     timeline->setType(InputTypeNames::range);
     timeline->setAttribute(stepAttr, "any");
@@ -457,9 +457,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<MediaControlVolumeSliderElement> MediaControlVolumeSliderElement::create(MediaControls& mediaControls)
+RawPtr<MediaControlVolumeSliderElement> MediaControlVolumeSliderElement::create(MediaControls& mediaControls)
 {
-    RefPtrWillBeRawPtr<MediaControlVolumeSliderElement> slider = adoptRefWillBeNoop(new MediaControlVolumeSliderElement(mediaControls));
+    RawPtr<MediaControlVolumeSliderElement> slider = new MediaControlVolumeSliderElement(mediaControls);
     slider->ensureUserAgentShadowRoot();
     slider->setType(InputTypeNames::range);
     slider->setAttribute(stepAttr, "any");
@@ -520,9 +520,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<MediaControlFullscreenButtonElement> MediaControlFullscreenButtonElement::create(MediaControls& mediaControls)
+RawPtr<MediaControlFullscreenButtonElement> MediaControlFullscreenButtonElement::create(MediaControls& mediaControls)
 {
-    RefPtrWillBeRawPtr<MediaControlFullscreenButtonElement> button = adoptRefWillBeNoop(new MediaControlFullscreenButtonElement(mediaControls));
+    RawPtr<MediaControlFullscreenButtonElement> button = new MediaControlFullscreenButtonElement(mediaControls);
     button->ensureUserAgentShadowRoot();
     button->setType(InputTypeNames::button);
     button->setShadowPseudoId(AtomicString("-webkit-media-controls-fullscreen-button"));
@@ -557,9 +557,9 @@
     setIsPlayingRemotely(false);
 }
 
-PassRefPtrWillBeRawPtr<MediaControlCastButtonElement> MediaControlCastButtonElement::create(MediaControls& mediaControls, bool isOverlayButton)
+RawPtr<MediaControlCastButtonElement> MediaControlCastButtonElement::create(MediaControls& mediaControls, bool isOverlayButton)
 {
-    RefPtrWillBeRawPtr<MediaControlCastButtonElement> button = adoptRefWillBeNoop(new MediaControlCastButtonElement(mediaControls, isOverlayButton));
+    RawPtr<MediaControlCastButtonElement> button = new MediaControlCastButtonElement(mediaControls, isOverlayButton);
     button->ensureUserAgentShadowRoot();
     button->setType(InputTypeNames::button);
     return button.release();
@@ -641,9 +641,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<MediaControlTimeRemainingDisplayElement> MediaControlTimeRemainingDisplayElement::create(MediaControls& mediaControls)
+RawPtr<MediaControlTimeRemainingDisplayElement> MediaControlTimeRemainingDisplayElement::create(MediaControls& mediaControls)
 {
-    RefPtrWillBeRawPtr<MediaControlTimeRemainingDisplayElement> element = adoptRefWillBeNoop(new MediaControlTimeRemainingDisplayElement(mediaControls));
+    RawPtr<MediaControlTimeRemainingDisplayElement> element = new MediaControlTimeRemainingDisplayElement(mediaControls);
     element->setShadowPseudoId(AtomicString("-webkit-media-controls-time-remaining-display"));
     return element.release();
 }
@@ -655,9 +655,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<MediaControlCurrentTimeDisplayElement> MediaControlCurrentTimeDisplayElement::create(MediaControls& mediaControls)
+RawPtr<MediaControlCurrentTimeDisplayElement> MediaControlCurrentTimeDisplayElement::create(MediaControls& mediaControls)
 {
-    RefPtrWillBeRawPtr<MediaControlCurrentTimeDisplayElement> element = adoptRefWillBeNoop(new MediaControlCurrentTimeDisplayElement(mediaControls));
+    RawPtr<MediaControlCurrentTimeDisplayElement> element = new MediaControlCurrentTimeDisplayElement(mediaControls);
     element->setShadowPseudoId(AtomicString("-webkit-media-controls-current-time-display"));
     return element.release();
 }
diff --git a/third_party/WebKit/Source/core/html/shadow/MediaControlElements.h b/third_party/WebKit/Source/core/html/shadow/MediaControlElements.h
index 1762f9d..f2e3a42b 100644
--- a/third_party/WebKit/Source/core/html/shadow/MediaControlElements.h
+++ b/third_party/WebKit/Source/core/html/shadow/MediaControlElements.h
@@ -38,7 +38,7 @@
 
 class MediaControlPanelElement final : public MediaControlDivElement {
 public:
-    static PassRefPtrWillBeRawPtr<MediaControlPanelElement> create(MediaControls&);
+    static RawPtr<MediaControlPanelElement> create(MediaControls&);
 
     void setIsDisplayed(bool);
 
@@ -66,7 +66,7 @@
 
 class MediaControlPanelEnclosureElement final : public MediaControlDivElement {
 public:
-    static PassRefPtrWillBeRawPtr<MediaControlPanelEnclosureElement> create(MediaControls&);
+    static RawPtr<MediaControlPanelEnclosureElement> create(MediaControls&);
 
 private:
     explicit MediaControlPanelEnclosureElement(MediaControls&);
@@ -76,7 +76,7 @@
 
 class MediaControlOverlayEnclosureElement final : public MediaControlDivElement {
 public:
-    static PassRefPtrWillBeRawPtr<MediaControlOverlayEnclosureElement> create(MediaControls&);
+    static RawPtr<MediaControlOverlayEnclosureElement> create(MediaControls&);
 
 private:
     explicit MediaControlOverlayEnclosureElement(MediaControls&);
@@ -87,7 +87,7 @@
 
 class MediaControlMuteButtonElement final : public MediaControlInputElement {
 public:
-    static PassRefPtrWillBeRawPtr<MediaControlMuteButtonElement> create(MediaControls&);
+    static RawPtr<MediaControlMuteButtonElement> create(MediaControls&);
 
     bool willRespondToMouseClickEvents() override { return true; }
     void updateDisplayType() override;
@@ -102,7 +102,7 @@
 
 class MediaControlPlayButtonElement final : public MediaControlInputElement {
 public:
-    static PassRefPtrWillBeRawPtr<MediaControlPlayButtonElement> create(MediaControls&);
+    static RawPtr<MediaControlPlayButtonElement> create(MediaControls&);
 
     bool willRespondToMouseClickEvents() override { return true; }
     void updateDisplayType() override;
@@ -117,7 +117,7 @@
 
 class MediaControlOverlayPlayButtonElement final : public MediaControlInputElement {
 public:
-    static PassRefPtrWillBeRawPtr<MediaControlOverlayPlayButtonElement> create(MediaControls&);
+    static RawPtr<MediaControlOverlayPlayButtonElement> create(MediaControls&);
 
     void updateDisplayType() override;
 
@@ -132,7 +132,7 @@
 
 class MediaControlToggleClosedCaptionsButtonElement final : public MediaControlInputElement {
 public:
-    static PassRefPtrWillBeRawPtr<MediaControlToggleClosedCaptionsButtonElement> create(MediaControls&);
+    static RawPtr<MediaControlToggleClosedCaptionsButtonElement> create(MediaControls&);
 
     bool willRespondToMouseClickEvents() override { return true; }
 
@@ -148,7 +148,7 @@
 
 class MediaControlTimelineElement final : public MediaControlInputElement {
 public:
-    static PassRefPtrWillBeRawPtr<MediaControlTimelineElement> create(MediaControls&);
+    static RawPtr<MediaControlTimelineElement> create(MediaControls&);
 
     bool willRespondToMouseClickEvents() override;
 
@@ -168,7 +168,7 @@
 
 class MediaControlFullscreenButtonElement final : public MediaControlInputElement {
 public:
-    static PassRefPtrWillBeRawPtr<MediaControlFullscreenButtonElement> create(MediaControls&);
+    static RawPtr<MediaControlFullscreenButtonElement> create(MediaControls&);
 
     bool willRespondToMouseClickEvents() override { return true; }
 
@@ -184,7 +184,7 @@
 
 class MediaControlCastButtonElement final : public MediaControlInputElement {
 public:
-    static PassRefPtrWillBeRawPtr<MediaControlCastButtonElement> create(MediaControls&, bool isOverlayButton);
+    static RawPtr<MediaControlCastButtonElement> create(MediaControls&, bool isOverlayButton);
 
     bool willRespondToMouseClickEvents() override { return true; }
 
@@ -223,7 +223,7 @@
 
 class MediaControlVolumeSliderElement final : public MediaControlInputElement {
 public:
-    static PassRefPtrWillBeRawPtr<MediaControlVolumeSliderElement> create(MediaControls&);
+    static RawPtr<MediaControlVolumeSliderElement> create(MediaControls&);
 
     bool willRespondToMouseMoveEvents() override;
     bool willRespondToMouseClickEvents() override;
@@ -240,7 +240,7 @@
 
 class MediaControlTimeRemainingDisplayElement final : public MediaControlTimeDisplayElement {
 public:
-    static PassRefPtrWillBeRawPtr<MediaControlTimeRemainingDisplayElement> create(MediaControls&);
+    static RawPtr<MediaControlTimeRemainingDisplayElement> create(MediaControls&);
 
 private:
     explicit MediaControlTimeRemainingDisplayElement(MediaControls&);
@@ -250,7 +250,7 @@
 
 class MediaControlCurrentTimeDisplayElement final : public MediaControlTimeDisplayElement {
 public:
-    static PassRefPtrWillBeRawPtr<MediaControlCurrentTimeDisplayElement> create(MediaControls&);
+    static RawPtr<MediaControlCurrentTimeDisplayElement> create(MediaControls&);
 
 private:
     explicit MediaControlCurrentTimeDisplayElement(MediaControls&);
diff --git a/third_party/WebKit/Source/core/html/shadow/MediaControls.cpp b/third_party/WebKit/Source/core/html/shadow/MediaControls.cpp
index facfb48..ba6f91a 100644
--- a/third_party/WebKit/Source/core/html/shadow/MediaControls.cpp
+++ b/third_party/WebKit/Source/core/html/shadow/MediaControls.cpp
@@ -91,7 +91,7 @@
     }
 
 private:
-    RawPtrWillBeMember<MediaControls> m_controls;
+    Member<MediaControls> m_controls;
     static int s_batchDepth;
 };
 
@@ -125,9 +125,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<MediaControls> MediaControls::create(HTMLMediaElement& mediaElement)
+RawPtr<MediaControls> MediaControls::create(HTMLMediaElement& mediaElement)
 {
-    RefPtrWillBeRawPtr<MediaControls> controls = adoptRefWillBeNoop(new MediaControls(mediaElement));
+    RawPtr<MediaControls> controls = new MediaControls(mediaElement);
     controls->setShadowPseudoId(AtomicString("-webkit-media-controls"));
     controls->initializeControls();
     return controls.release();
@@ -157,15 +157,15 @@
 void MediaControls::initializeControls()
 {
     const bool useNewUi = RuntimeEnabledFeatures::newMediaPlaybackUiEnabled();
-    RefPtrWillBeRawPtr<MediaControlOverlayEnclosureElement> overlayEnclosure = MediaControlOverlayEnclosureElement::create(*this);
+    RawPtr<MediaControlOverlayEnclosureElement> overlayEnclosure = MediaControlOverlayEnclosureElement::create(*this);
 
     if (document().settings() && document().settings()->mediaControlsOverlayPlayButtonEnabled()) {
-        RefPtrWillBeRawPtr<MediaControlOverlayPlayButtonElement> overlayPlayButton = MediaControlOverlayPlayButtonElement::create(*this);
+        RawPtr<MediaControlOverlayPlayButtonElement> overlayPlayButton = MediaControlOverlayPlayButtonElement::create(*this);
         m_overlayPlayButton = overlayPlayButton.get();
         overlayEnclosure->appendChild(overlayPlayButton.release());
     }
 
-    RefPtrWillBeRawPtr<MediaControlCastButtonElement> overlayCastButton = MediaControlCastButtonElement::create(*this, true);
+    RawPtr<MediaControlCastButtonElement> overlayCastButton = MediaControlCastButtonElement::create(*this, true);
     m_overlayCastButton = overlayCastButton.get();
     overlayEnclosure->appendChild(overlayCastButton.release());
 
@@ -173,27 +173,27 @@
     appendChild(overlayEnclosure.release());
 
     // Create an enclosing element for the panel so we can visually offset the controls correctly.
-    RefPtrWillBeRawPtr<MediaControlPanelEnclosureElement> enclosure = MediaControlPanelEnclosureElement::create(*this);
+    RawPtr<MediaControlPanelEnclosureElement> enclosure = MediaControlPanelEnclosureElement::create(*this);
 
-    RefPtrWillBeRawPtr<MediaControlPanelElement> panel = MediaControlPanelElement::create(*this);
+    RawPtr<MediaControlPanelElement> panel = MediaControlPanelElement::create(*this);
 
-    RefPtrWillBeRawPtr<MediaControlPlayButtonElement> playButton = MediaControlPlayButtonElement::create(*this);
+    RawPtr<MediaControlPlayButtonElement> playButton = MediaControlPlayButtonElement::create(*this);
     m_playButton = playButton.get();
     panel->appendChild(playButton.release());
 
-    RefPtrWillBeRawPtr<MediaControlTimelineElement> timeline = MediaControlTimelineElement::create(*this);
+    RawPtr<MediaControlTimelineElement> timeline = MediaControlTimelineElement::create(*this);
     m_timeline = timeline.get();
     // In old UX, timeline is before the time / duration text.
     if (!useNewUi)
         panel->appendChild(timeline.release());
     // else we will attach it later.
 
-    RefPtrWillBeRawPtr<MediaControlCurrentTimeDisplayElement> currentTimeDisplay = MediaControlCurrentTimeDisplayElement::create(*this);
+    RawPtr<MediaControlCurrentTimeDisplayElement> currentTimeDisplay = MediaControlCurrentTimeDisplayElement::create(*this);
     m_currentTimeDisplay = currentTimeDisplay.get();
     m_currentTimeDisplay->setIsWanted(useNewUi);
     panel->appendChild(currentTimeDisplay.release());
 
-    RefPtrWillBeRawPtr<MediaControlTimeRemainingDisplayElement> durationDisplay = MediaControlTimeRemainingDisplayElement::create(*this);
+    RawPtr<MediaControlTimeRemainingDisplayElement> durationDisplay = MediaControlTimeRemainingDisplayElement::create(*this);
     m_durationDisplay = durationDisplay.get();
     panel->appendChild(durationDisplay.release());
 
@@ -201,25 +201,25 @@
     if (useNewUi)
         panel->appendChild(timeline.release());
 
-    RefPtrWillBeRawPtr<MediaControlMuteButtonElement> muteButton = MediaControlMuteButtonElement::create(*this);
+    RawPtr<MediaControlMuteButtonElement> muteButton = MediaControlMuteButtonElement::create(*this);
     m_muteButton = muteButton.get();
     panel->appendChild(muteButton.release());
 
-    RefPtrWillBeRawPtr<MediaControlVolumeSliderElement> slider = MediaControlVolumeSliderElement::create(*this);
+    RawPtr<MediaControlVolumeSliderElement> slider = MediaControlVolumeSliderElement::create(*this);
     m_volumeSlider = slider.get();
     panel->appendChild(slider.release());
     if (m_allowHiddenVolumeControls && preferHiddenVolumeControls(document()))
         m_volumeSlider->setIsWanted(false);
 
-    RefPtrWillBeRawPtr<MediaControlToggleClosedCaptionsButtonElement> toggleClosedCaptionsButton = MediaControlToggleClosedCaptionsButtonElement::create(*this);
+    RawPtr<MediaControlToggleClosedCaptionsButtonElement> toggleClosedCaptionsButton = MediaControlToggleClosedCaptionsButtonElement::create(*this);
     m_toggleClosedCaptionsButton = toggleClosedCaptionsButton.get();
     panel->appendChild(toggleClosedCaptionsButton.release());
 
-    RefPtrWillBeRawPtr<MediaControlCastButtonElement> castButton = MediaControlCastButtonElement::create(*this, false);
+    RawPtr<MediaControlCastButtonElement> castButton = MediaControlCastButtonElement::create(*this, false);
     m_castButton = castButton.get();
     panel->appendChild(castButton.release());
 
-    RefPtrWillBeRawPtr<MediaControlFullscreenButtonElement> fullscreenButton = MediaControlFullscreenButtonElement::create(*this);
+    RawPtr<MediaControlFullscreenButtonElement> fullscreenButton = MediaControlFullscreenButtonElement::create(*this);
     m_fullScreenButton = fullscreenButton.get();
     panel->appendChild(fullscreenButton.release());
 
diff --git a/third_party/WebKit/Source/core/html/shadow/MediaControls.h b/third_party/WebKit/Source/core/html/shadow/MediaControls.h
index 8753d1c..61e1f693 100644
--- a/third_party/WebKit/Source/core/html/shadow/MediaControls.h
+++ b/third_party/WebKit/Source/core/html/shadow/MediaControls.h
@@ -37,7 +37,7 @@
 
 class CORE_EXPORT MediaControls final : public HTMLDivElement {
 public:
-    static PassRefPtrWillBeRawPtr<MediaControls> create(HTMLMediaElement&);
+    static RawPtr<MediaControls> create(HTMLMediaElement&);
 
     HTMLMediaElement& mediaElement() const { return *m_mediaElement; }
 
@@ -126,23 +126,23 @@
     void defaultEventHandler(Event*) override;
     bool containsRelatedTarget(Event*);
 
-    RawPtrWillBeMember<HTMLMediaElement> m_mediaElement;
+    Member<HTMLMediaElement> m_mediaElement;
 
     // Media control elements.
-    RawPtrWillBeMember<MediaControlOverlayEnclosureElement> m_overlayEnclosure;
-    RawPtrWillBeMember<MediaControlOverlayPlayButtonElement> m_overlayPlayButton;
-    RawPtrWillBeMember<MediaControlCastButtonElement> m_overlayCastButton;
-    RawPtrWillBeMember<MediaControlPanelEnclosureElement> m_enclosure;
-    RawPtrWillBeMember<MediaControlPanelElement> m_panel;
-    RawPtrWillBeMember<MediaControlPlayButtonElement> m_playButton;
-    RawPtrWillBeMember<MediaControlTimelineElement> m_timeline;
-    RawPtrWillBeMember<MediaControlCurrentTimeDisplayElement> m_currentTimeDisplay;
-    RawPtrWillBeMember<MediaControlTimeRemainingDisplayElement> m_durationDisplay;
-    RawPtrWillBeMember<MediaControlMuteButtonElement> m_muteButton;
-    RawPtrWillBeMember<MediaControlVolumeSliderElement> m_volumeSlider;
-    RawPtrWillBeMember<MediaControlToggleClosedCaptionsButtonElement> m_toggleClosedCaptionsButton;
-    RawPtrWillBeMember<MediaControlCastButtonElement> m_castButton;
-    RawPtrWillBeMember<MediaControlFullscreenButtonElement> m_fullScreenButton;
+    Member<MediaControlOverlayEnclosureElement> m_overlayEnclosure;
+    Member<MediaControlOverlayPlayButtonElement> m_overlayPlayButton;
+    Member<MediaControlCastButtonElement> m_overlayCastButton;
+    Member<MediaControlPanelEnclosureElement> m_enclosure;
+    Member<MediaControlPanelElement> m_panel;
+    Member<MediaControlPlayButtonElement> m_playButton;
+    Member<MediaControlTimelineElement> m_timeline;
+    Member<MediaControlCurrentTimeDisplayElement> m_currentTimeDisplay;
+    Member<MediaControlTimeRemainingDisplayElement> m_durationDisplay;
+    Member<MediaControlMuteButtonElement> m_muteButton;
+    Member<MediaControlVolumeSliderElement> m_volumeSlider;
+    Member<MediaControlToggleClosedCaptionsButtonElement> m_toggleClosedCaptionsButton;
+    Member<MediaControlCastButtonElement> m_castButton;
+    Member<MediaControlFullscreenButtonElement> m_fullScreenButton;
 
     Timer<MediaControls> m_hideMediaControlsTimer;
     unsigned m_hideTimerBehaviorFlags;
diff --git a/third_party/WebKit/Source/core/html/shadow/MediaControlsTest.cpp b/third_party/WebKit/Source/core/html/shadow/MediaControlsTest.cpp
index 7259d2e..e2b46f8 100644
--- a/third_party/WebKit/Source/core/html/shadow/MediaControlsTest.cpp
+++ b/third_party/WebKit/Source/core/html/shadow/MediaControlsTest.cpp
@@ -77,7 +77,7 @@
 
 private:
     OwnPtr<DummyPageHolder> m_pageHolder;
-    RawPtrWillBePersistent<MediaControls> m_mediaControls;
+    Persistent<MediaControls> m_mediaControls;
 };
 
 TEST_F(MediaControlsTest, HideAndShow)
diff --git a/third_party/WebKit/Source/core/html/shadow/PickerIndicatorElement.cpp b/third_party/WebKit/Source/core/html/shadow/PickerIndicatorElement.cpp
index 6140554..a178de7 100644
--- a/third_party/WebKit/Source/core/html/shadow/PickerIndicatorElement.cpp
+++ b/third_party/WebKit/Source/core/html/shadow/PickerIndicatorElement.cpp
@@ -52,9 +52,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<PickerIndicatorElement> PickerIndicatorElement::create(Document& document, PickerIndicatorOwner& pickerIndicatorOwner)
+RawPtr<PickerIndicatorElement> PickerIndicatorElement::create(Document& document, PickerIndicatorOwner& pickerIndicatorOwner)
 {
-    RefPtrWillBeRawPtr<PickerIndicatorElement> element = adoptRefWillBeNoop(new PickerIndicatorElement(document, pickerIndicatorOwner));
+    RawPtr<PickerIndicatorElement> element = new PickerIndicatorElement(document, pickerIndicatorOwner);
     element->setShadowPseudoId(AtomicString("-webkit-calendar-picker-indicator"));
     element->setAttribute(idAttr, ShadowElementNames::pickerIndicator());
     return element.release();
diff --git a/third_party/WebKit/Source/core/html/shadow/PickerIndicatorElement.h b/third_party/WebKit/Source/core/html/shadow/PickerIndicatorElement.h
index 5a2b7a4..f7440d9a 100644
--- a/third_party/WebKit/Source/core/html/shadow/PickerIndicatorElement.h
+++ b/third_party/WebKit/Source/core/html/shadow/PickerIndicatorElement.h
@@ -43,11 +43,11 @@
 class HTMLInputElement;
 
 class PickerIndicatorElement final : public HTMLDivElement, public DateTimeChooserClient {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(PickerIndicatorElement);
+    USING_GARBAGE_COLLECTED_MIXIN(PickerIndicatorElement);
 public:
     // PickerIndicatorOwner implementer must call removePickerIndicatorOwner when
     // it doesn't handle event, e.g. at destruction.
-    class PickerIndicatorOwner : public WillBeGarbageCollectedMixin {
+    class PickerIndicatorOwner : public GarbageCollectedMixin {
     public:
         virtual ~PickerIndicatorOwner() { }
         virtual bool isPickerIndicatorOwnerDisabledOrReadOnly() const = 0;
@@ -58,7 +58,7 @@
         virtual bool setupDateTimeChooserParameters(DateTimeChooserParameters&) = 0;
     };
 
-    static PassRefPtrWillBeRawPtr<PickerIndicatorElement> create(Document&, PickerIndicatorOwner&);
+    static RawPtr<PickerIndicatorElement> create(Document&, PickerIndicatorOwner&);
     ~PickerIndicatorElement() override;
     DECLARE_VIRTUAL_TRACE();
 
@@ -85,8 +85,8 @@
 
     HTMLInputElement* hostInput();
 
-    RawPtrWillBeMember<PickerIndicatorOwner> m_pickerIndicatorOwner;
-    RefPtrWillBeMember<DateTimeChooser> m_chooser;
+    Member<PickerIndicatorOwner> m_pickerIndicatorOwner;
+    Member<DateTimeChooser> m_chooser;
 };
 
 DEFINE_TYPE_CASTS(PickerIndicatorElement, Element, element, element->isPickerIndicatorElement(), element.isPickerIndicatorElement());
diff --git a/third_party/WebKit/Source/core/html/shadow/SliderThumbElement.cpp b/third_party/WebKit/Source/core/html/shadow/SliderThumbElement.cpp
index f4d5aa2..27140e21 100644
--- a/third_party/WebKit/Source/core/html/shadow/SliderThumbElement.cpp
+++ b/third_party/WebKit/Source/core/html/shadow/SliderThumbElement.cpp
@@ -64,9 +64,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<SliderThumbElement> SliderThumbElement::create(Document& document)
+RawPtr<SliderThumbElement> SliderThumbElement::create(Document& document)
 {
-    RefPtrWillBeRawPtr<SliderThumbElement> element = adoptRefWillBeNoop(new SliderThumbElement(document));
+    RawPtr<SliderThumbElement> element = new SliderThumbElement(document);
     element->setAttribute(idAttr, ShadowElementNames::sliderThumb());
     return element.release();
 }
@@ -107,14 +107,14 @@
 
 void SliderThumbElement::dragFrom(const LayoutPoint& point)
 {
-    RefPtrWillBeRawPtr<SliderThumbElement> protector(this);
+    RawPtr<SliderThumbElement> protector(this);
     startDragging();
     setPositionFromPoint(point);
 }
 
 void SliderThumbElement::setPositionFromPoint(const LayoutPoint& point)
 {
-    RefPtrWillBeRawPtr<HTMLInputElement> input(hostInput());
+    RawPtr<HTMLInputElement> input(hostInput());
     Element* trackElement = input->userAgentShadowRoot()->getElementById(ShadowElementNames::sliderTrack());
 
     if (!input->layoutObject() || !layoutBox() || !trackElement->layoutBox())
diff --git a/third_party/WebKit/Source/core/html/shadow/SliderThumbElement.h b/third_party/WebKit/Source/core/html/shadow/SliderThumbElement.h
index 35cd3d48..0dad252 100644
--- a/third_party/WebKit/Source/core/html/shadow/SliderThumbElement.h
+++ b/third_party/WebKit/Source/core/html/shadow/SliderThumbElement.h
@@ -44,7 +44,7 @@
 
 class SliderThumbElement final : public HTMLDivElement {
 public:
-    static PassRefPtrWillBeRawPtr<SliderThumbElement> create(Document&);
+    static RawPtr<SliderThumbElement> create(Document&);
 
     void setPositionFromValue();
 
@@ -61,7 +61,7 @@
 private:
     SliderThumbElement(Document&);
     LayoutObject* createLayoutObject(const ComputedStyle&) override;
-    PassRefPtrWillBeRawPtr<Element> cloneElementWithoutAttributesAndChildren() override;
+    RawPtr<Element> cloneElementWithoutAttributesAndChildren() override;
     bool isDisabledFormControl() const override;
     bool matchesReadOnlyPseudoClass() const override;
     bool matchesReadWritePseudoClass() const override;
@@ -71,7 +71,7 @@
     bool m_inDragMode;
 };
 
-inline PassRefPtrWillBeRawPtr<Element> SliderThumbElement::cloneElementWithoutAttributesAndChildren()
+inline RawPtr<Element> SliderThumbElement::cloneElementWithoutAttributesAndChildren()
 {
     return create(document());
 }
diff --git a/third_party/WebKit/Source/core/html/shadow/SpinButtonElement.cpp b/third_party/WebKit/Source/core/html/shadow/SpinButtonElement.cpp
index 63d344f..10bae03b 100644
--- a/third_party/WebKit/Source/core/html/shadow/SpinButtonElement.cpp
+++ b/third_party/WebKit/Source/core/html/shadow/SpinButtonElement.cpp
@@ -51,9 +51,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<SpinButtonElement> SpinButtonElement::create(Document& document, SpinButtonOwner& spinButtonOwner)
+RawPtr<SpinButtonElement> SpinButtonElement::create(Document& document, SpinButtonOwner& spinButtonOwner)
 {
-    RefPtrWillBeRawPtr<SpinButtonElement> element = adoptRefWillBeNoop(new SpinButtonElement(document, spinButtonOwner));
+    RawPtr<SpinButtonElement> element = new SpinButtonElement(document, spinButtonOwner);
     element->setShadowPseudoId(AtomicString("-webkit-inner-spin-button"));
     element->setAttribute(idAttr, ShadowElementNames::spinButton());
     return element.release();
@@ -93,7 +93,7 @@
             // The following functions of HTMLInputElement may run JavaScript
             // code which detaches this shadow node. We need to take a reference
             // and check layoutObject() after such function calls.
-            RefPtrWillBeRawPtr<Node> protector(this);
+            RawPtr<Node> protector(this);
             if (m_spinButtonOwner)
                 m_spinButtonOwner->focusAndSelectSpinButtonOwner();
             if (layoutObject()) {
diff --git a/third_party/WebKit/Source/core/html/shadow/SpinButtonElement.h b/third_party/WebKit/Source/core/html/shadow/SpinButtonElement.h
index 4be7353d..14f8439b 100644
--- a/third_party/WebKit/Source/core/html/shadow/SpinButtonElement.h
+++ b/third_party/WebKit/Source/core/html/shadow/SpinButtonElement.h
@@ -45,7 +45,7 @@
         EventDispatchAllowed,
         EventDispatchDisallowed,
     };
-    class SpinButtonOwner : public WillBeGarbageCollectedMixin {
+    class SpinButtonOwner : public GarbageCollectedMixin {
     public:
         virtual ~SpinButtonOwner() { }
         virtual void focusAndSelectSpinButtonOwner() = 0;
@@ -59,7 +59,7 @@
     // The owner of SpinButtonElement must call removeSpinButtonOwner
     // because SpinButtonElement can be outlive SpinButtonOwner
     // implementation, e.g. during event handling.
-    static PassRefPtrWillBeRawPtr<SpinButtonElement> create(Document&, SpinButtonOwner&);
+    static RawPtr<SpinButtonElement> create(Document&, SpinButtonOwner&);
     UpDownState getUpDownState() const { return m_upDownState; }
     void releaseCapture(EventDispatch = EventDispatchAllowed);
     void removeSpinButtonOwner() { m_spinButtonOwner = nullptr; }
@@ -91,7 +91,7 @@
     bool shouldRespondToMouseEvents();
     bool isMouseFocusable() const override { return false; }
 
-    RawPtrWillBeMember<SpinButtonOwner> m_spinButtonOwner;
+    Member<SpinButtonOwner> m_spinButtonOwner;
     bool m_capturing;
     UpDownState m_upDownState;
     UpDownState m_pressStartingState;
diff --git a/third_party/WebKit/Source/core/html/shadow/TextControlInnerElements.cpp b/third_party/WebKit/Source/core/html/shadow/TextControlInnerElements.cpp
index 63263bd..1d1801e 100644
--- a/third_party/WebKit/Source/core/html/shadow/TextControlInnerElements.cpp
+++ b/third_party/WebKit/Source/core/html/shadow/TextControlInnerElements.cpp
@@ -51,9 +51,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<TextControlInnerContainer> TextControlInnerContainer::create(Document& document)
+RawPtr<TextControlInnerContainer> TextControlInnerContainer::create(Document& document)
 {
-    RefPtrWillBeRawPtr<TextControlInnerContainer> element = adoptRefWillBeNoop(new TextControlInnerContainer(document));
+    RawPtr<TextControlInnerContainer> element = new TextControlInnerContainer(document);
     element->setAttribute(idAttr, ShadowElementNames::textFieldContainer());
     return element.release();
 }
@@ -71,9 +71,9 @@
     setHasCustomStyleCallbacks();
 }
 
-PassRefPtrWillBeRawPtr<EditingViewPortElement> EditingViewPortElement::create(Document& document)
+RawPtr<EditingViewPortElement> EditingViewPortElement::create(Document& document)
 {
-    RefPtrWillBeRawPtr<EditingViewPortElement> element = adoptRefWillBeNoop(new EditingViewPortElement(document));
+    RawPtr<EditingViewPortElement> element = new EditingViewPortElement(document);
     element->setAttribute(idAttr, ShadowElementNames::editingViewPort());
     return element.release();
 }
@@ -106,9 +106,9 @@
     setHasCustomStyleCallbacks();
 }
 
-PassRefPtrWillBeRawPtr<TextControlInnerEditorElement> TextControlInnerEditorElement::create(Document& document)
+RawPtr<TextControlInnerEditorElement> TextControlInnerEditorElement::create(Document& document)
 {
-    RefPtrWillBeRawPtr<TextControlInnerEditorElement> element = adoptRefWillBeNoop(new TextControlInnerEditorElement(document));
+    RawPtr<TextControlInnerEditorElement> element = new TextControlInnerEditorElement(document);
     element->setAttribute(idAttr, ShadowElementNames::innerEditor());
     return element.release();
 }
@@ -157,9 +157,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<SearchFieldDecorationElement> SearchFieldDecorationElement::create(Document& document)
+RawPtr<SearchFieldDecorationElement> SearchFieldDecorationElement::create(Document& document)
 {
-    RefPtrWillBeRawPtr<SearchFieldDecorationElement> element = adoptRefWillBeNoop(new SearchFieldDecorationElement(document));
+    RawPtr<SearchFieldDecorationElement> element = new SearchFieldDecorationElement(document);
     element->setAttribute(idAttr, ShadowElementNames::searchDecoration());
     return element.release();
 }
@@ -206,9 +206,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<SearchFieldCancelButtonElement> SearchFieldCancelButtonElement::create(Document& document)
+RawPtr<SearchFieldCancelButtonElement> SearchFieldCancelButtonElement::create(Document& document)
 {
-    RefPtrWillBeRawPtr<SearchFieldCancelButtonElement> element = adoptRefWillBeNoop(new SearchFieldCancelButtonElement(document));
+    RawPtr<SearchFieldCancelButtonElement> element = new SearchFieldCancelButtonElement(document);
     element->setShadowPseudoId(AtomicString("-webkit-search-cancel-button"));
     element->setAttribute(idAttr, ShadowElementNames::clearButton());
     return element.release();
@@ -227,7 +227,7 @@
 void SearchFieldCancelButtonElement::defaultEventHandler(Event* event)
 {
     // If the element is visible, on mouseup, clear the value, and set selection
-    RefPtrWillBeRawPtr<HTMLInputElement> input(toHTMLInputElement(shadowHost()));
+    RawPtr<HTMLInputElement> input(toHTMLInputElement(shadowHost()));
     if (!input || input->isDisabledOrReadOnly()) {
         if (!event->defaultHandled())
             HTMLDivElement::defaultEventHandler(event);
diff --git a/third_party/WebKit/Source/core/html/shadow/TextControlInnerElements.h b/third_party/WebKit/Source/core/html/shadow/TextControlInnerElements.h
index 62730c92..26fd3426 100644
--- a/third_party/WebKit/Source/core/html/shadow/TextControlInnerElements.h
+++ b/third_party/WebKit/Source/core/html/shadow/TextControlInnerElements.h
@@ -34,7 +34,7 @@
 
 class TextControlInnerContainer final : public HTMLDivElement {
 public:
-    static PassRefPtrWillBeRawPtr<TextControlInnerContainer> create(Document&);
+    static RawPtr<TextControlInnerContainer> create(Document&);
 
 protected:
     explicit TextControlInnerContainer(Document&);
@@ -43,7 +43,7 @@
 
 class EditingViewPortElement final : public HTMLDivElement {
 public:
-    static PassRefPtrWillBeRawPtr<EditingViewPortElement> create(Document&);
+    static RawPtr<EditingViewPortElement> create(Document&);
 
 protected:
     explicit EditingViewPortElement(Document&);
@@ -55,7 +55,7 @@
 
 class TextControlInnerEditorElement final : public HTMLDivElement {
 public:
-    static PassRefPtrWillBeRawPtr<TextControlInnerEditorElement> create(Document&);
+    static RawPtr<TextControlInnerEditorElement> create(Document&);
 
     void defaultEventHandler(Event*) override;
 
@@ -68,7 +68,7 @@
 
 class SearchFieldDecorationElement final : public HTMLDivElement {
 public:
-    static PassRefPtrWillBeRawPtr<SearchFieldDecorationElement> create(Document&);
+    static RawPtr<SearchFieldDecorationElement> create(Document&);
 
     void defaultEventHandler(Event*) override;
     bool willRespondToMouseClickEvents() override;
@@ -81,7 +81,7 @@
 
 class SearchFieldCancelButtonElement final : public HTMLDivElement {
 public:
-    static PassRefPtrWillBeRawPtr<SearchFieldCancelButtonElement> create(Document&);
+    static RawPtr<SearchFieldCancelButtonElement> create(Document&);
 
     void defaultEventHandler(Event*) override;
     bool willRespondToMouseClickEvents() override;
diff --git a/third_party/WebKit/Source/core/html/track/CueTimeline.cpp b/third_party/WebKit/Source/core/html/track/CueTimeline.cpp
index 72e2fa7a..5229b79 100644
--- a/third_party/WebKit/Source/core/html/track/CueTimeline.cpp
+++ b/third_party/WebKit/Source/core/html/track/CueTimeline.cpp
@@ -30,14 +30,14 @@
     updateActiveCues(mediaElement().currentTime());
 }
 
-void CueTimeline::addCue(TextTrack* track, PassRefPtrWillBeRawPtr<TextTrackCue> cue)
+void CueTimeline::addCue(TextTrack* track, RawPtr<TextTrackCue> cue)
 {
     ASSERT(track->mode() != TextTrack::disabledKeyword());
     addCueInternal(cue);
     updateActiveCues(mediaElement().currentTime());
 }
 
-void CueTimeline::addCueInternal(PassRefPtrWillBeRawPtr<TextTrackCue> cue)
+void CueTimeline::addCueInternal(RawPtr<TextTrackCue> cue)
 {
     // Negative duration cues need be treated in the interval tree as
     // zero-length cues.
@@ -55,13 +55,13 @@
     updateActiveCues(mediaElement().currentTime());
 }
 
-void CueTimeline::removeCue(TextTrack*, PassRefPtrWillBeRawPtr<TextTrackCue> cue)
+void CueTimeline::removeCue(TextTrack*, RawPtr<TextTrackCue> cue)
 {
     removeCueInternal(cue);
     updateActiveCues(mediaElement().currentTime());
 }
 
-void CueTimeline::removeCueInternal(PassRefPtrWillBeRawPtr<TextTrackCue> cue)
+void CueTimeline::removeCueInternal(RawPtr<TextTrackCue> cue)
 {
     // Negative duration cues need to be treated in the interval tree as
     // zero-length cues.
@@ -112,9 +112,9 @@
     return a.second->cueIndex() < b.second->cueIndex();
 }
 
-static PassRefPtrWillBeRawPtr<Event> createEventWithTarget(const AtomicString& eventName, PassRefPtrWillBeRawPtr<EventTarget> eventTarget)
+static RawPtr<Event> createEventWithTarget(const AtomicString& eventName, RawPtr<EventTarget> eventTarget)
 {
-    RefPtrWillBeRawPtr<Event> event = Event::create(eventName);
+    RawPtr<Event> event = Event::create(eventName);
     event->setTarget(eventTarget);
     return event.release();
 }
diff --git a/third_party/WebKit/Source/core/html/track/CueTimeline.h b/third_party/WebKit/Source/core/html/track/CueTimeline.h
index 9fd9c413..512e7eb 100644
--- a/third_party/WebKit/Source/core/html/track/CueTimeline.h
+++ b/third_party/WebKit/Source/core/html/track/CueTimeline.h
@@ -28,15 +28,14 @@
 
 // This class manages the timeline and rendering updates of cues associated
 // with TextTracks. Owned by a HTMLMediaElement.
-class CueTimeline final : public NoBaseWillBeGarbageCollectedFinalized<CueTimeline> {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(CueTimeline);
+class CueTimeline final : public GarbageCollectedFinalized<CueTimeline> {
 public:
     CueTimeline(HTMLMediaElement&);
 
     void addCues(TextTrack*, const TextTrackCueList*);
-    void addCue(TextTrack*, PassRefPtrWillBeRawPtr<TextTrackCue>);
+    void addCue(TextTrack*, RawPtr<TextTrackCue>);
     void removeCues(TextTrack*, const TextTrackCueList*);
-    void removeCue(TextTrack*, PassRefPtrWillBeRawPtr<TextTrackCue>);
+    void removeCue(TextTrack*, RawPtr<TextTrackCue>);
 
     void hideCues(TextTrack*, const TextTrackCueList*);
 
@@ -53,10 +52,10 @@
 private:
     HTMLMediaElement& mediaElement() const { return *m_mediaElement; }
 
-    void addCueInternal(PassRefPtrWillBeRawPtr<TextTrackCue>);
-    void removeCueInternal(PassRefPtrWillBeRawPtr<TextTrackCue>);
+    void addCueInternal(RawPtr<TextTrackCue>);
+    void removeCueInternal(RawPtr<TextTrackCue>);
 
-    RawPtrWillBeMember<HTMLMediaElement> m_mediaElement;
+    Member<HTMLMediaElement> m_mediaElement;
 
     CueIntervalTree m_cueTree;
 
@@ -81,7 +80,7 @@
     }
 
 private:
-    RawPtrWillBeMember<CueTimeline> m_cueTimeline;
+    Member<CueTimeline> m_cueTimeline;
 };
 
 #ifndef NDEBUG
diff --git a/third_party/WebKit/Source/core/html/track/LoadableTextTrack.h b/third_party/WebKit/Source/core/html/track/LoadableTextTrack.h
index 110baa0..7ed7d2c 100644
--- a/third_party/WebKit/Source/core/html/track/LoadableTextTrack.h
+++ b/third_party/WebKit/Source/core/html/track/LoadableTextTrack.h
@@ -61,7 +61,7 @@
 private:
     explicit LoadableTextTrack(HTMLTrackElement*);
 
-    RawPtrWillBeMember<HTMLTrackElement> m_trackElement;
+    Member<HTMLTrackElement> m_trackElement;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/html/track/TextTrackContainer.cpp b/third_party/WebKit/Source/core/html/track/TextTrackContainer.cpp
index 320f705a..73dacb95 100644
--- a/third_party/WebKit/Source/core/html/track/TextTrackContainer.cpp
+++ b/third_party/WebKit/Source/core/html/track/TextTrackContainer.cpp
@@ -40,9 +40,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<TextTrackContainer> TextTrackContainer::create(Document& document)
+RawPtr<TextTrackContainer> TextTrackContainer::create(Document& document)
 {
-    RefPtrWillBeRawPtr<TextTrackContainer> element = adoptRefWillBeNoop(new TextTrackContainer(document));
+    RawPtr<TextTrackContainer> element = new TextTrackContainer(document);
     element->setShadowPseudoId(AtomicString("-webkit-media-text-track-container"));
     return element.release();
 }
diff --git a/third_party/WebKit/Source/core/html/track/TextTrackContainer.h b/third_party/WebKit/Source/core/html/track/TextTrackContainer.h
index 29d9b43..2c7222f 100644
--- a/third_party/WebKit/Source/core/html/track/TextTrackContainer.h
+++ b/third_party/WebKit/Source/core/html/track/TextTrackContainer.h
@@ -38,7 +38,7 @@
 
 class TextTrackContainer final : public HTMLDivElement {
 public:
-    static PassRefPtrWillBeRawPtr<TextTrackContainer> create(Document&);
+    static RawPtr<TextTrackContainer> create(Document&);
 
     // Runs the "rules for updating the text track rendering". The
     // ExposingControls enum is used in the WebVTT processing model to reset the
diff --git a/third_party/WebKit/Source/core/html/track/TextTrackCue.cpp b/third_party/WebKit/Source/core/html/track/TextTrackCue.cpp
index b906a76..50397c0 100644
--- a/third_party/WebKit/Source/core/html/track/TextTrackCue.cpp
+++ b/third_party/WebKit/Source/core/html/track/TextTrackCue.cpp
@@ -136,7 +136,7 @@
     return m_cueIndex;
 }
 
-DispatchEventResult TextTrackCue::dispatchEventInternal(PassRefPtrWillBeRawPtr<Event> event)
+DispatchEventResult TextTrackCue::dispatchEventInternal(RawPtr<Event> event)
 {
     // When a TextTrack's mode is disabled: no cues are active, no events fired.
     if (!track() || track()->mode() == TextTrack::disabledKeyword())
diff --git a/third_party/WebKit/Source/core/html/track/TextTrackCue.h b/third_party/WebKit/Source/core/html/track/TextTrackCue.h
index 2068cf1..4dc1aa4 100644
--- a/third_party/WebKit/Source/core/html/track/TextTrackCue.h
+++ b/third_party/WebKit/Source/core/html/track/TextTrackCue.h
@@ -109,7 +109,7 @@
 
     void cueWillChange();
     virtual void cueDidChange();
-    DispatchEventResult dispatchEventInternal(PassRefPtrWillBeRawPtr<Event>) override;
+    DispatchEventResult dispatchEventInternal(RawPtr<Event>) override;
 
 private:
     AtomicString m_id;
diff --git a/third_party/WebKit/Source/core/html/track/TextTrackList.h b/third_party/WebKit/Source/core/html/track/TextTrackList.h
index 48f7aea..1dbdfa0 100644
--- a/third_party/WebKit/Source/core/html/track/TextTrackList.h
+++ b/third_party/WebKit/Source/core/html/track/TextTrackList.h
@@ -90,9 +90,9 @@
 
     void invalidateTrackIndexesAfterTrack(TextTrack*);
 
-    RawPtrWillBeMember<HTMLMediaElement> m_owner;
+    Member<HTMLMediaElement> m_owner;
 
-    OwnPtrWillBeMember<GenericEventQueue> m_asyncEventQueue;
+    Member<GenericEventQueue> m_asyncEventQueue;
 
     HeapVector<Member<TextTrack>> m_addTrackTracks;
     HeapVector<Member<TextTrack>> m_elementTracks;
diff --git a/third_party/WebKit/Source/core/html/track/TrackBase.h b/third_party/WebKit/Source/core/html/track/TrackBase.h
index 0033635..fd1f47f 100644
--- a/third_party/WebKit/Source/core/html/track/TrackBase.h
+++ b/third_party/WebKit/Source/core/html/track/TrackBase.h
@@ -75,7 +75,7 @@
     AtomicString m_label;
     AtomicString m_language;
     String m_id;
-    RawPtrWillBeMember<HTMLMediaElement> m_mediaElement;
+    Member<HTMLMediaElement> m_mediaElement;
 };
 
 #define DEFINE_TRACK_TYPE_CASTS(thisType, predicate) \
diff --git a/third_party/WebKit/Source/core/html/track/TrackEvent.h b/third_party/WebKit/Source/core/html/track/TrackEvent.h
index 6b39a98..85b588f3 100644
--- a/third_party/WebKit/Source/core/html/track/TrackEvent.h
+++ b/third_party/WebKit/Source/core/html/track/TrackEvent.h
@@ -39,20 +39,20 @@
 public:
     ~TrackEvent() override;
 
-    static PassRefPtrWillBeRawPtr<TrackEvent> create()
+    static RawPtr<TrackEvent> create()
     {
         return adoptRefWillBeNoop(new TrackEvent);
     }
 
-    static PassRefPtrWillBeRawPtr<TrackEvent> create(const AtomicString& type, const TrackEventInit& initializer)
+    static RawPtr<TrackEvent> create(const AtomicString& type, const TrackEventInit& initializer)
     {
-        return adoptRefWillBeNoop(new TrackEvent(type, initializer));
+        return new TrackEvent(type, initializer);
     }
 
     template <typename T>
-    static PassRefPtrWillBeRawPtr<TrackEvent> create(const AtomicString& type, T* track)
+    static RawPtr<TrackEvent> create(const AtomicString& type, T* track)
     {
-        return adoptRefWillBeNoop(new TrackEvent(type, track));
+        return new TrackEvent(type, track);
     }
 
     const AtomicString& interfaceName() const override;
@@ -71,7 +71,7 @@
     {
     }
 
-    PersistentWillBeMember<TrackBase> m_track;
+    Member<TrackBase> m_track;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/html/track/TrackListBase.h b/third_party/WebKit/Source/core/html/track/TrackListBase.h
index f044b60..c0f6a97b 100644
--- a/third_party/WebKit/Source/core/html/track/TrackListBase.h
+++ b/third_party/WebKit/Source/core/html/track/TrackListBase.h
@@ -99,7 +99,7 @@
 
     void scheduleChangeEvent()
     {
-        RefPtrWillBeRawPtr<Event> event = Event::create(EventTypeNames::change);
+        RawPtr<Event> event = Event::create(EventTypeNames::change);
         event->setTarget(this);
         m_mediaElement->scheduleEvent(event);
     }
@@ -116,13 +116,13 @@
 private:
     void scheduleTrackEvent(const AtomicString& eventName, T* track)
     {
-        RefPtrWillBeRawPtr<Event> event = TrackEvent::create(eventName, track);
+        RawPtr<Event> event = TrackEvent::create(eventName, track);
         event->setTarget(this);
         m_mediaElement->scheduleEvent(event);
     }
 
     HeapVector<Member<T>> m_tracks;
-    RawPtrWillBeMember<HTMLMediaElement> m_mediaElement;
+    Member<HTMLMediaElement> m_mediaElement;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/html/track/vtt/VTTCue.cpp b/third_party/WebKit/Source/core/html/track/vtt/VTTCue.cpp
index 85015a8..9512114 100644
--- a/third_party/WebKit/Source/core/html/track/vtt/VTTCue.cpp
+++ b/third_party/WebKit/Source/core/html/track/vtt/VTTCue.cpp
@@ -465,7 +465,7 @@
 void VTTCue::copyVTTNodeToDOMTree(ContainerNode* vttNode, ContainerNode* parent)
 {
     for (Node* node = vttNode->firstChild(); node; node = node->nextSibling()) {
-        RefPtrWillBeRawPtr<Node> clonedNode;
+        RawPtr<Node> clonedNode;
         if (node->isVTTElement())
             clonedNode = toVTTElement(node)->createEquivalentHTMLElement(document());
         else
@@ -476,10 +476,10 @@
     }
 }
 
-PassRefPtrWillBeRawPtr<DocumentFragment> VTTCue::getCueAsHTML()
+RawPtr<DocumentFragment> VTTCue::getCueAsHTML()
 {
     createVTTNodeTree();
-    RefPtrWillBeRawPtr<DocumentFragment> clonedFragment = DocumentFragment::create(document());
+    RawPtr<DocumentFragment> clonedFragment = DocumentFragment::create(document());
     copyVTTNodeToDOMTree(m_vttNodeTree.get(), clonedFragment.get());
     return clonedFragment.release();
 }
@@ -796,7 +796,7 @@
     }
 }
 
-PassRefPtrWillBeRawPtr<VTTCueBox> VTTCue::getDisplayTree()
+RawPtr<VTTCueBox> VTTCue::getDisplayTree()
 {
     ASSERT(track() && track()->isRendered() && isActive());
 
@@ -875,7 +875,7 @@
     if (m_cueAlignment != Middle)
         UseCounter::count(document(), UseCounter::VTTCueRenderAlignNotMiddle);
 
-    RefPtrWillBeRawPtr<VTTCueBox> displayBox = getDisplayTree();
+    RawPtr<VTTCueBox> displayBox = getDisplayTree();
     VTTRegion* region = 0;
     if (track()->regions())
         region = track()->regions()->getRegionById(regionId());
@@ -891,7 +891,7 @@
     } else {
         // Let region be the WebVTT region whose region identifier matches the
         // region identifier of cue.
-        RefPtrWillBeRawPtr<HTMLDivElement> regionNode = region->getDisplayTree(document());
+        RawPtr<HTMLDivElement> regionNode = region->getDisplayTree(document());
 
         // Append the region to the viewport, if it was not already.
         if (!container.contains(regionNode.get()))
diff --git a/third_party/WebKit/Source/core/html/track/vtt/VTTCue.h b/third_party/WebKit/Source/core/html/track/vtt/VTTCue.h
index 0b495c2..d6bcf6e 100644
--- a/third_party/WebKit/Source/core/html/track/vtt/VTTCue.h
+++ b/third_party/WebKit/Source/core/html/track/vtt/VTTCue.h
@@ -56,9 +56,9 @@
 
 class VTTCueBox final : public HTMLDivElement {
 public:
-    static PassRefPtrWillBeRawPtr<VTTCueBox> create(Document& document)
+    static RawPtr<VTTCueBox> create(Document& document)
     {
-        return adoptRefWillBeNoop(new VTTCueBox(document));
+        return new VTTCueBox(document);
     }
 
     void applyCSSProperties(const VTTDisplayParameters&);
@@ -110,7 +110,7 @@
     // Applies CSS override style from user settings.
     void applyUserOverrideCSSProperties();
 
-    PassRefPtrWillBeRawPtr<DocumentFragment> getCueAsHTML();
+    RawPtr<DocumentFragment> getCueAsHTML();
 
     const String& regionId() const { return m_regionId; }
     void setRegionId(const String&);
@@ -154,7 +154,7 @@
 
     Document& document() const;
 
-    PassRefPtrWillBeRawPtr<VTTCueBox> getDisplayTree();
+    RawPtr<VTTCueBox> getDisplayTree();
 
     void cueDidChange() override;
 
@@ -187,9 +187,9 @@
     CueAlignment m_cueAlignment;
     String m_regionId;
 
-    RefPtrWillBeMember<DocumentFragment> m_vttNodeTree;
-    RefPtrWillBeMember<HTMLDivElement> m_cueBackgroundBox;
-    RefPtrWillBeMember<VTTCueBox> m_displayTree;
+    Member<DocumentFragment> m_vttNodeTree;
+    Member<HTMLDivElement> m_cueBackgroundBox;
+    Member<VTTCueBox> m_displayTree;
 
     bool m_snapToLines : 1;
     bool m_displayTreeShouldChange : 1;
diff --git a/third_party/WebKit/Source/core/html/track/vtt/VTTElement.cpp b/third_party/WebKit/Source/core/html/track/vtt/VTTElement.cpp
index 2db7074..28a8d31 100644
--- a/third_party/WebKit/Source/core/html/track/vtt/VTTElement.cpp
+++ b/third_party/WebKit/Source/core/html/track/vtt/VTTElement.cpp
@@ -71,21 +71,21 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<VTTElement> VTTElement::create(VTTNodeType nodeType, Document* document)
+RawPtr<VTTElement> VTTElement::create(VTTNodeType nodeType, Document* document)
 {
-    return adoptRefWillBeNoop(new VTTElement(nodeType, document));
+    return new VTTElement(nodeType, document);
 }
 
-PassRefPtrWillBeRawPtr<Element> VTTElement::cloneElementWithoutAttributesAndChildren()
+RawPtr<Element> VTTElement::cloneElementWithoutAttributesAndChildren()
 {
-    RefPtrWillBeRawPtr<VTTElement> clone = create(static_cast<VTTNodeType>(m_webVTTNodeType), &document());
+    RawPtr<VTTElement> clone = create(static_cast<VTTNodeType>(m_webVTTNodeType), &document());
     clone->setLanguage(m_language);
     return clone.release();
 }
 
-PassRefPtrWillBeRawPtr<HTMLElement> VTTElement::createEquivalentHTMLElement(Document& document)
+RawPtr<HTMLElement> VTTElement::createEquivalentHTMLElement(Document& document)
 {
-    RefPtrWillBeRawPtr<HTMLElement> htmlElement = nullptr;
+    RawPtr<HTMLElement> htmlElement = nullptr;
     switch (m_webVTTNodeType) {
     case VTTNodeTypeClass:
     case VTTNodeTypeLanguage:
diff --git a/third_party/WebKit/Source/core/html/track/vtt/VTTElement.h b/third_party/WebKit/Source/core/html/track/vtt/VTTElement.h
index d8ecd086..bf1a123 100644
--- a/third_party/WebKit/Source/core/html/track/vtt/VTTElement.h
+++ b/third_party/WebKit/Source/core/html/track/vtt/VTTElement.h
@@ -44,11 +44,11 @@
 
 class VTTElement final : public Element {
 public:
-    static PassRefPtrWillBeRawPtr<VTTElement> create(const VTTNodeType, Document*);
-    static PassRefPtrWillBeRawPtr<VTTElement> create(const QualifiedName&, Document*);
-    PassRefPtrWillBeRawPtr<HTMLElement> createEquivalentHTMLElement(Document&);
+    static RawPtr<VTTElement> create(const VTTNodeType, Document*);
+    static RawPtr<VTTElement> create(const QualifiedName&, Document*);
+    RawPtr<HTMLElement> createEquivalentHTMLElement(Document&);
 
-    PassRefPtrWillBeRawPtr<Element> cloneElementWithoutAttributesAndChildren() override;
+    RawPtr<Element> cloneElementWithoutAttributesAndChildren() override;
 
     void setVTTNodeType(VTTNodeType type) { m_webVTTNodeType = static_cast<unsigned>(type); }
     VTTNodeType webVTTNodeType() const { return static_cast<VTTNodeType>(m_webVTTNodeType); }
diff --git a/third_party/WebKit/Source/core/html/track/vtt/VTTParser.cpp b/third_party/WebKit/Source/core/html/track/vtt/VTTParser.cpp
index e13e43e0..d3acf73 100644
--- a/third_party/WebKit/Source/core/html/track/vtt/VTTParser.cpp
+++ b/third_party/WebKit/Source/core/html/track/vtt/VTTParser.cpp
@@ -321,25 +321,25 @@
     explicit VTTTreeBuilder(Document& document)
         : m_document(&document) { }
 
-    PassRefPtrWillBeRawPtr<DocumentFragment> buildFromString(const String& cueText);
+    RawPtr<DocumentFragment> buildFromString(const String& cueText);
 
 private:
     void constructTreeFromToken(Document&);
     Document& document() const { return *m_document; }
 
     VTTToken m_token;
-    RefPtrWillBeMember<ContainerNode> m_currentNode;
+    Member<ContainerNode> m_currentNode;
     Vector<AtomicString> m_languageStack;
-    RawPtrWillBeMember<Document> m_document;
+    Member<Document> m_document;
 };
 
-PassRefPtrWillBeRawPtr<DocumentFragment> VTTTreeBuilder::buildFromString(const String& cueText)
+RawPtr<DocumentFragment> VTTTreeBuilder::buildFromString(const String& cueText)
 {
     // Cue text processing based on
     // 5.4 WebVTT cue text parsing rules, and
     // 5.5 WebVTT cue text DOM construction rules
 
-    RefPtrWillBeRawPtr<DocumentFragment> fragment = DocumentFragment::create(document());
+    RawPtr<DocumentFragment> fragment = DocumentFragment::create(document());
 
     if (cueText.isEmpty()) {
         fragment->parserAppendChild(Text::create(document(), ""));
@@ -357,7 +357,7 @@
     return fragment.release();
 }
 
-PassRefPtrWillBeRawPtr<DocumentFragment> VTTParser::createDocumentFragmentFromCueText(Document& document, const String& cueText)
+RawPtr<DocumentFragment> VTTParser::createDocumentFragmentFromCueText(Document& document, const String& cueText)
 {
     VTTTreeBuilder treeBuilder(document);
     return treeBuilder.buildFromString(cueText);
@@ -503,7 +503,7 @@
         if (nodeType == VTTNodeTypeRubyText && currentType != VTTNodeTypeRuby)
             break;
 
-        RefPtrWillBeRawPtr<VTTElement> child = VTTElement::create(nodeType, &document);
+        RawPtr<VTTElement> child = VTTElement::create(nodeType, &document);
         if (!m_token.classes().isEmpty())
             child->setAttribute(classAttr, m_token.classes());
 
diff --git a/third_party/WebKit/Source/core/html/track/vtt/VTTParser.h b/third_party/WebKit/Source/core/html/track/vtt/VTTParser.h
index 3293100..ae9b24d 100644
--- a/third_party/WebKit/Source/core/html/track/vtt/VTTParser.h
+++ b/third_party/WebKit/Source/core/html/track/vtt/VTTParser.h
@@ -101,7 +101,7 @@
     static bool parseFloatPercentageValuePair(VTTScanner&, char, FloatPoint&);
 
     // Create the DocumentFragment representation of the WebVTT cue text.
-    static PassRefPtrWillBeRawPtr<DocumentFragment> createDocumentFragmentFromCueText(Document&, const String&);
+    static RawPtr<DocumentFragment> createDocumentFragmentFromCueText(Document&, const String&);
 
     // Input data to the parser to parse.
     void parseBytes(const char* data, size_t length);
@@ -116,7 +116,7 @@
 private:
     VTTParser(VTTParserClient*, Document&);
 
-    RawPtrWillBeMember<Document> m_document;
+    Member<Document> m_document;
     ParseState m_state;
 
     void parse();
diff --git a/third_party/WebKit/Source/core/html/track/vtt/VTTRegion.cpp b/third_party/WebKit/Source/core/html/track/vtt/VTTRegion.cpp
index f92aa41..5deaf80a 100644
--- a/third_party/WebKit/Source/core/html/track/vtt/VTTRegion.cpp
+++ b/third_party/WebKit/Source/core/html/track/vtt/VTTRegion.cpp
@@ -318,7 +318,7 @@
     return trackRegionShadowPseudoId;
 }
 
-PassRefPtrWillBeRawPtr<HTMLDivElement> VTTRegion::getDisplayTree(Document& document)
+RawPtr<HTMLDivElement> VTTRegion::getDisplayTree(Document& document)
 {
     if (!m_regionDisplayTree) {
         m_regionDisplayTree = HTMLDivElement::create(document);
@@ -341,7 +341,7 @@
     m_cueContainer->setInlineStyleProperty(CSSPropertyTop, m_currentTop, CSSPrimitiveValue::UnitType::Pixels);
 }
 
-void VTTRegion::appendVTTCueBox(PassRefPtrWillBeRawPtr<VTTCueBox> displayBox)
+void VTTRegion::appendVTTCueBox(RawPtr<VTTCueBox> displayBox)
 {
     ASSERT(m_cueContainer);
 
diff --git a/third_party/WebKit/Source/core/html/track/vtt/VTTRegion.h b/third_party/WebKit/Source/core/html/track/vtt/VTTRegion.h
index 437fe54..39df53c 100644
--- a/third_party/WebKit/Source/core/html/track/vtt/VTTRegion.h
+++ b/third_party/WebKit/Source/core/html/track/vtt/VTTRegion.h
@@ -89,9 +89,9 @@
 
     bool isScrollingRegion() { return m_scroll; }
 
-    PassRefPtrWillBeRawPtr<HTMLDivElement> getDisplayTree(Document&);
+    RawPtr<HTMLDivElement> getDisplayTree(Document&);
 
-    void appendVTTCueBox(PassRefPtrWillBeRawPtr<VTTCueBox>);
+    void appendVTTCueBox(RawPtr<VTTCueBox>);
     void displayLastVTTCueBox();
     void willRemoveVTTCueBox(VTTCueBox*);
 
@@ -133,8 +133,8 @@
 
     // The cue container is the container that is scrolled up to obtain the
     // effect of scrolling cues when this is enabled for the regions.
-    RefPtrWillBeMember<HTMLDivElement> m_cueContainer;
-    RefPtrWillBeMember<HTMLDivElement> m_regionDisplayTree;
+    Member<HTMLDivElement> m_cueContainer;
+    Member<HTMLDivElement> m_regionDisplayTree;
 
     // The member variable track can be a raw pointer as it will never
     // reference a destroyed TextTrack, as this member variable
diff --git a/third_party/WebKit/Source/core/inspector/AsyncCallTracker.cpp b/third_party/WebKit/Source/core/inspector/AsyncCallTracker.cpp
index 9abb8d8..2b83d47 100644
--- a/third_party/WebKit/Source/core/inspector/AsyncCallTracker.cpp
+++ b/third_party/WebKit/Source/core/inspector/AsyncCallTracker.cpp
@@ -54,9 +54,8 @@
 
 namespace blink {
 
-class AsyncCallTracker::ExecutionContextData final : public NoBaseWillBeGarbageCollectedFinalized<ExecutionContextData>, public ContextLifecycleObserver {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(AsyncCallTracker::ExecutionContextData);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(AsyncCallTracker::ExecutionContextData);
+class AsyncCallTracker::ExecutionContextData final : public GarbageCollectedFinalized<ExecutionContextData>, public ContextLifecycleObserver {
+    USING_GARBAGE_COLLECTED_MIXIN(AsyncCallTracker::ExecutionContextData);
 public:
     ExecutionContextData(AsyncCallTracker* tracker, ExecutionContext* executionContext)
         : ContextLifecycleObserver(executionContext)
@@ -74,7 +73,7 @@
     void contextDestroyed() override
     {
         ASSERT(getExecutionContext());
-        OwnPtrWillBeRawPtr<ExecutionContextData> self = m_tracker->m_executionContextDataMap.take(getExecutionContext());
+        RawPtr<ExecutionContextData> self = m_tracker->m_executionContextDataMap.take(getExecutionContext());
         ASSERT_UNUSED(self, self == this);
         ContextLifecycleObserver::contextDestroyed();
         disposeCallChains();
@@ -101,13 +100,13 @@
         ContextLifecycleObserver::trace(visitor);
     }
 
-    RawPtrWillBeMember<AsyncCallTracker> m_tracker;
+    Member<AsyncCallTracker> m_tracker;
     HashSet<int> m_intervalTimerIds;
     AsyncOperationMap<int> m_timerCallChains;
     AsyncOperationMap<int> m_animationFrameCallChains;
-    AsyncOperationMap<RawPtrWillBeMember<Event>> m_eventCallChains;
-    AsyncOperationMap<RawPtrWillBeMember<EventTarget>> m_xhrCallChains;
-    AsyncOperationMap<RawPtrWillBeMember<MutationObserver>> m_mutationObserverCallChains;
+    AsyncOperationMap<Member<Event>> m_eventCallChains;
+    AsyncOperationMap<Member<EventTarget>> m_xhrCallChains;
+    AsyncOperationMap<Member<MutationObserver>> m_mutationObserverCallChains;
     AsyncOperationMap<ExecutionContextTask*> m_executionContextTaskCallChains;
     AsyncOperationMap<int> m_asyncOperations;
 
@@ -416,7 +415,7 @@
 {
     ExecutionContextData* data = m_executionContextDataMap.get(context);
     if (!data) {
-        data = m_executionContextDataMap.set(context, adoptPtrWillBeNoop(new AsyncCallTracker::ExecutionContextData(this, context)))
+        data = m_executionContextDataMap.set(context, new AsyncCallTracker::ExecutionContextData(this, context))
             .storedValue->value.get();
     }
     return data;
diff --git a/third_party/WebKit/Source/core/inspector/AsyncCallTracker.h b/third_party/WebKit/Source/core/inspector/AsyncCallTracker.h
index 8115611..58d6867 100644
--- a/third_party/WebKit/Source/core/inspector/AsyncCallTracker.h
+++ b/third_party/WebKit/Source/core/inspector/AsyncCallTracker.h
@@ -53,9 +53,8 @@
 class ThreadableLoaderClient;
 class XMLHttpRequest;
 
-class CORE_EXPORT AsyncCallTracker final : public NoBaseWillBeGarbageCollectedFinalized<AsyncCallTracker> {
+class CORE_EXPORT AsyncCallTracker final : public GarbageCollectedFinalized<AsyncCallTracker> {
     WTF_MAKE_NONCOPYABLE(AsyncCallTracker);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(AsyncCallTracker);
 public:
     AsyncCallTracker(V8DebuggerAgent*, InstrumentingAgents*);
     ~AsyncCallTracker();
@@ -110,10 +109,10 @@
 
     ExecutionContextData* createContextDataIfNeeded(ExecutionContext*);
 
-    using ExecutionContextDataMap = WillBeHeapHashMap<RawPtrWillBeMember<ExecutionContext>, OwnPtrWillBeMember<ExecutionContextData>>;
+    using ExecutionContextDataMap = HeapHashMap<Member<ExecutionContext>, Member<ExecutionContextData>>;
     ExecutionContextDataMap m_executionContextDataMap;
     V8DebuggerAgent* m_debuggerAgent;
-    RawPtrWillBeMember<InstrumentingAgents> m_instrumentingAgents;
+    Member<InstrumentingAgents> m_instrumentingAgents;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/inspector/AsyncOperationMap.h b/third_party/WebKit/Source/core/inspector/AsyncOperationMap.h
index ca91c5b..2644266 100644
--- a/third_party/WebKit/Source/core/inspector/AsyncOperationMap.h
+++ b/third_party/WebKit/Source/core/inspector/AsyncOperationMap.h
@@ -17,7 +17,7 @@
 class AsyncOperationMap final {
     DISALLOW_NEW_EXCEPT_PLACEMENT_NEW();
 public:
-    using MapType = WillBeHeapHashMap<K, int>;
+    using MapType = HeapHashMap<K, int>;
     explicit AsyncOperationMap(V8DebuggerAgent* debuggerAgent)
         : m_debuggerAgent(debuggerAgent)
     {
diff --git a/third_party/WebKit/Source/core/inspector/CodeGeneratorInstrumentation.py b/third_party/WebKit/Source/core/inspector/CodeGeneratorInstrumentation.py
index efcdb6d1..b30b042a 100755
--- a/third_party/WebKit/Source/core/inspector/CodeGeneratorInstrumentation.py
+++ b/third_party/WebKit/Source/core/inspector/CodeGeneratorInstrumentation.py
@@ -118,13 +118,12 @@
 
 ${forward_list}
 
-class CORE_EXPORT InstrumentingAgents : public RefCountedWillBeGarbageCollectedFinalized<InstrumentingAgents> {
+class CORE_EXPORT InstrumentingAgents : public GarbageCollectedFinalized<InstrumentingAgents> {
     WTF_MAKE_NONCOPYABLE(InstrumentingAgents);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(InstrumentingAgents);
 public:
-    static PassRefPtrWillBeRawPtr<InstrumentingAgents> create()
+    static RawPtr<InstrumentingAgents> create()
     {
-        return adoptRefWillBeNoop(new InstrumentingAgents());
+        return new InstrumentingAgents();
     }
     ~InstrumentingAgents() { }
     DECLARE_TRACE();
@@ -465,7 +464,7 @@
             class_name=class_name,
             getter_name=getter_name,
             member_name=member_name))
-        member_list.append("    RawPtrWillBeMember<%s> %s;" % (class_name, member_name))
+        member_list.append("    Member<%s> %s;" % (class_name, member_name))
         init_list.append("%s(nullptr)" % member_name)
         trace_list.append("visitor->trace(%s);" % member_name)
         reset_list.append("%s = nullptr;" % member_name)
diff --git a/third_party/WebKit/Source/core/inspector/ConsoleMessage.cpp b/third_party/WebKit/Source/core/inspector/ConsoleMessage.cpp
index 012e8d1..4b3e96d 100644
--- a/third_party/WebKit/Source/core/inspector/ConsoleMessage.cpp
+++ b/third_party/WebKit/Source/core/inspector/ConsoleMessage.cpp
@@ -123,12 +123,12 @@
         m_scriptState.clear();
 }
 
-PassRefPtrWillBeRawPtr<ScriptArguments> ConsoleMessage::scriptArguments() const
+RawPtr<ScriptArguments> ConsoleMessage::scriptArguments() const
 {
     return m_scriptArguments;
 }
 
-void ConsoleMessage::setScriptArguments(PassRefPtrWillBeRawPtr<ScriptArguments> scriptArguments)
+void ConsoleMessage::setScriptArguments(RawPtr<ScriptArguments> scriptArguments)
 {
     m_scriptArguments = scriptArguments;
 }
diff --git a/third_party/WebKit/Source/core/inspector/ConsoleMessage.h b/third_party/WebKit/Source/core/inspector/ConsoleMessage.h
index ab74fbe2..3cb22d97 100644
--- a/third_party/WebKit/Source/core/inspector/ConsoleMessage.h
+++ b/third_party/WebKit/Source/core/inspector/ConsoleMessage.h
@@ -22,11 +22,11 @@
 class ScriptState;
 class WorkerInspectorProxy;
 
-class CORE_EXPORT ConsoleMessage final: public RefCountedWillBeGarbageCollectedFinalized<ConsoleMessage> {
+class CORE_EXPORT ConsoleMessage final: public GarbageCollectedFinalized<ConsoleMessage> {
 public:
-    static PassRefPtrWillBeRawPtr<ConsoleMessage> create(MessageSource source, MessageLevel level, const String& message, const String& url = String(), unsigned lineNumber = 0, unsigned columnNumber = 0)
+    static RawPtr<ConsoleMessage> create(MessageSource source, MessageLevel level, const String& message, const String& url = String(), unsigned lineNumber = 0, unsigned columnNumber = 0)
     {
-        return adoptRefWillBeNoop(new ConsoleMessage(source, level, message, url, lineNumber, columnNumber));
+        return new ConsoleMessage(source, level, message, url, lineNumber, columnNumber);
     }
     ~ConsoleMessage();
 
@@ -42,8 +42,8 @@
     void setCallStack(PassRefPtr<ScriptCallStack>);
     ScriptState* getScriptState() const;
     void setScriptState(ScriptState*);
-    PassRefPtrWillBeRawPtr<ScriptArguments> scriptArguments() const;
-    void setScriptArguments(PassRefPtrWillBeRawPtr<ScriptArguments>);
+    RawPtr<ScriptArguments> scriptArguments() const;
+    void setScriptArguments(RawPtr<ScriptArguments>);
     unsigned long requestIdentifier() const;
     void setRequestIdentifier(unsigned long);
     double timestamp() const;
@@ -80,10 +80,10 @@
     unsigned m_columnNumber;
     RefPtr<ScriptCallStack> m_callStack;
     OwnPtr<ScriptStateProtectingContext> m_scriptState;
-    RefPtrWillBeMember<ScriptArguments> m_scriptArguments;
+    Member<ScriptArguments> m_scriptArguments;
     unsigned long m_requestIdentifier;
     double m_timestamp;
-    RawPtrWillBeMember<WorkerInspectorProxy> m_workerProxy;
+    Member<WorkerInspectorProxy> m_workerProxy;
     unsigned m_messageId;
     unsigned m_relatedMessageId;
 };
diff --git a/third_party/WebKit/Source/core/inspector/ConsoleMessageStorage.cpp b/third_party/WebKit/Source/core/inspector/ConsoleMessageStorage.cpp
index 327c361c..e29605b4 100644
--- a/third_party/WebKit/Source/core/inspector/ConsoleMessageStorage.cpp
+++ b/third_party/WebKit/Source/core/inspector/ConsoleMessageStorage.cpp
@@ -18,9 +18,9 @@
 {
 }
 
-void ConsoleMessageStorage::reportMessage(ExecutionContext* context, PassRefPtrWillBeRawPtr<ConsoleMessage> prpMessage)
+void ConsoleMessageStorage::reportMessage(ExecutionContext* context, RawPtr<ConsoleMessage> prpMessage)
 {
-    RefPtrWillBeRawPtr<ConsoleMessage> message = prpMessage;
+    RawPtr<ConsoleMessage> message = prpMessage;
     message->collectCallStack();
 
     if (message->type() == ClearMessageType)
diff --git a/third_party/WebKit/Source/core/inspector/ConsoleMessageStorage.h b/third_party/WebKit/Source/core/inspector/ConsoleMessageStorage.h
index 0cb4090..5afc8d5 100644
--- a/third_party/WebKit/Source/core/inspector/ConsoleMessageStorage.h
+++ b/third_party/WebKit/Source/core/inspector/ConsoleMessageStorage.h
@@ -16,16 +16,15 @@
 class LocalDOMWindow;
 class WorkerGlobalScopeProxy;
 
-class ConsoleMessageStorage final : public NoBaseWillBeGarbageCollected<ConsoleMessageStorage> {
+class ConsoleMessageStorage final : public GarbageCollected<ConsoleMessageStorage> {
     WTF_MAKE_NONCOPYABLE(ConsoleMessageStorage);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(ConsoleMessageStorage);
 public:
-    static PassOwnPtrWillBeRawPtr<ConsoleMessageStorage> create()
+    static RawPtr<ConsoleMessageStorage> create()
     {
-        return adoptPtrWillBeNoop(new ConsoleMessageStorage());
+        return new ConsoleMessageStorage();
     }
 
-    void reportMessage(ExecutionContext*, PassRefPtrWillBeRawPtr<ConsoleMessage>);
+    void reportMessage(ExecutionContext*, RawPtr<ConsoleMessage>);
     void clear(ExecutionContext*);
 
     CORE_EXPORT Vector<unsigned> argumentCounts() const;
@@ -44,7 +43,7 @@
     ConsoleMessageStorage();
 
     int m_expiredCount;
-    WillBeHeapDeque<RefPtrWillBeMember<ConsoleMessage>> m_messages;
+    HeapDeque<Member<ConsoleMessage>> m_messages;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/inspector/DOMEditor.cpp b/third_party/WebKit/Source/core/inspector/DOMEditor.cpp
index e779ce4..90ffdf8 100644
--- a/third_party/WebKit/Source/core/inspector/DOMEditor.cpp
+++ b/third_party/WebKit/Source/core/inspector/DOMEditor.cpp
@@ -80,15 +80,15 @@
     }
 
 private:
-    RefPtrWillBeMember<ContainerNode> m_parentNode;
-    RefPtrWillBeMember<Node> m_node;
-    RefPtrWillBeMember<Node> m_anchorNode;
+    Member<ContainerNode> m_parentNode;
+    Member<Node> m_node;
+    Member<Node> m_anchorNode;
 };
 
 class DOMEditor::InsertBeforeAction final : public InspectorHistory::Action {
     WTF_MAKE_NONCOPYABLE(InsertBeforeAction);
 public:
-    InsertBeforeAction(ContainerNode* parentNode, PassRefPtrWillBeRawPtr<Node> node, Node* anchorNode)
+    InsertBeforeAction(ContainerNode* parentNode, RawPtr<Node> node, Node* anchorNode)
         : InspectorHistory::Action("InsertBefore")
         , m_parentNode(parentNode)
         , m_node(node)
@@ -99,7 +99,7 @@
     bool perform(ExceptionState& exceptionState) override
     {
         if (m_node->parentNode()) {
-            m_removeChildAction = adoptRefWillBeNoop(new RemoveChildAction(m_node->parentNode(), m_node.get()));
+            m_removeChildAction = new RemoveChildAction(m_node->parentNode(), m_node.get());
             if (!m_removeChildAction->perform(exceptionState))
                 return false;
         }
@@ -135,10 +135,10 @@
     }
 
 private:
-    RefPtrWillBeMember<ContainerNode> m_parentNode;
-    RefPtrWillBeMember<Node> m_node;
-    RefPtrWillBeMember<Node> m_anchorNode;
-    RefPtrWillBeMember<RemoveChildAction> m_removeChildAction;
+    Member<ContainerNode> m_parentNode;
+    Member<Node> m_node;
+    Member<Node> m_anchorNode;
+    Member<RemoveChildAction> m_removeChildAction;
 };
 
 class DOMEditor::RemoveAttributeAction final : public InspectorHistory::Action {
@@ -176,7 +176,7 @@
     }
 
 private:
-    RefPtrWillBeMember<Element> m_element;
+    Member<Element> m_element;
     AtomicString m_name;
     AtomicString m_value;
 };
@@ -224,7 +224,7 @@
     }
 
 private:
-    RefPtrWillBeMember<Element> m_element;
+    Member<Element> m_element;
     AtomicString m_name;
     AtomicString m_value;
     bool m_hadAttribute;
@@ -240,8 +240,8 @@
         , m_nextSibling(node->nextSibling())
         , m_html(html)
         , m_newNode(nullptr)
-        , m_history(adoptPtrWillBeNoop(new InspectorHistory()))
-        , m_domEditor(adoptPtrWillBeNoop(new DOMEditor(m_history.get())))
+        , m_history(new InspectorHistory())
+        , m_domEditor(new DOMEditor(m_history.get()))
     {
     }
 
@@ -280,13 +280,13 @@
     }
 
 private:
-    RefPtrWillBeMember<Node> m_node;
-    RefPtrWillBeMember<Node> m_nextSibling;
+    Member<Node> m_node;
+    Member<Node> m_nextSibling;
     String m_html;
     String m_oldHTML;
-    RawPtrWillBeMember<Node> m_newNode;
-    OwnPtrWillBeMember<InspectorHistory> m_history;
-    OwnPtrWillBeMember<DOMEditor> m_domEditor;
+    Member<Node> m_newNode;
+    Member<InspectorHistory> m_history;
+    Member<DOMEditor> m_domEditor;
 };
 
 class DOMEditor::ReplaceWholeTextAction final : public InspectorHistory::Action {
@@ -324,7 +324,7 @@
     }
 
 private:
-    RefPtrWillBeMember<Text> m_textNode;
+    Member<Text> m_textNode;
     String m_text;
     String m_oldText;
 };
@@ -332,7 +332,7 @@
 class DOMEditor::ReplaceChildNodeAction final : public InspectorHistory::Action {
     WTF_MAKE_NONCOPYABLE(ReplaceChildNodeAction);
 public:
-    ReplaceChildNodeAction(ContainerNode* parentNode, PassRefPtrWillBeRawPtr<Node> newNode, Node* oldNode)
+    ReplaceChildNodeAction(ContainerNode* parentNode, RawPtr<Node> newNode, Node* oldNode)
         : InspectorHistory::Action("ReplaceChildNode")
         , m_parentNode(parentNode)
         , m_newNode(newNode)
@@ -366,9 +366,9 @@
     }
 
 private:
-    RefPtrWillBeMember<ContainerNode> m_parentNode;
-    RefPtrWillBeMember<Node> m_newNode;
-    RefPtrWillBeMember<Node> m_oldNode;
+    Member<ContainerNode> m_parentNode;
+    Member<Node> m_newNode;
+    Member<Node> m_oldNode;
 };
 
 class DOMEditor::SetNodeValueAction final : public InspectorHistory::Action {
@@ -406,36 +406,36 @@
     }
 
 private:
-    RefPtrWillBeMember<Node> m_node;
+    Member<Node> m_node;
     String m_value;
     String m_oldValue;
 };
 
 DOMEditor::DOMEditor(InspectorHistory* history) : m_history(history) { }
 
-bool DOMEditor::insertBefore(ContainerNode* parentNode, PassRefPtrWillBeRawPtr<Node> node, Node* anchorNode, ExceptionState& exceptionState)
+bool DOMEditor::insertBefore(ContainerNode* parentNode, RawPtr<Node> node, Node* anchorNode, ExceptionState& exceptionState)
 {
-    return m_history->perform(adoptRefWillBeNoop(new InsertBeforeAction(parentNode, node, anchorNode)), exceptionState);
+    return m_history->perform(new InsertBeforeAction(parentNode, node, anchorNode), exceptionState);
 }
 
 bool DOMEditor::removeChild(ContainerNode* parentNode, Node* node, ExceptionState& exceptionState)
 {
-    return m_history->perform(adoptRefWillBeNoop(new RemoveChildAction(parentNode, node)), exceptionState);
+    return m_history->perform(new RemoveChildAction(parentNode, node), exceptionState);
 }
 
 bool DOMEditor::setAttribute(Element* element, const String& name, const String& value, ExceptionState& exceptionState)
 {
-    return m_history->perform(adoptRefWillBeNoop(new SetAttributeAction(element, AtomicString(name), AtomicString(value))), exceptionState);
+    return m_history->perform(new SetAttributeAction(element, AtomicString(name), AtomicString(value)), exceptionState);
 }
 
 bool DOMEditor::removeAttribute(Element* element, const String& name, ExceptionState& exceptionState)
 {
-    return m_history->perform(adoptRefWillBeNoop(new RemoveAttributeAction(element, AtomicString(name))), exceptionState);
+    return m_history->perform(new RemoveAttributeAction(element, AtomicString(name)), exceptionState);
 }
 
 bool DOMEditor::setOuterHTML(Node* node, const String& html, Node** newNode, ExceptionState& exceptionState)
 {
-    RefPtrWillBeRawPtr<SetOuterHTMLAction> action = adoptRefWillBeNoop(new SetOuterHTMLAction(node, html));
+    RawPtr<SetOuterHTMLAction> action = new SetOuterHTMLAction(node, html);
     bool result = m_history->perform(action, exceptionState);
     if (result)
         *newNode = action->newNode();
@@ -444,17 +444,17 @@
 
 bool DOMEditor::replaceWholeText(Text* textNode, const String& text, ExceptionState& exceptionState)
 {
-    return m_history->perform(adoptRefWillBeNoop(new ReplaceWholeTextAction(textNode, text)), exceptionState);
+    return m_history->perform(new ReplaceWholeTextAction(textNode, text), exceptionState);
 }
 
-bool DOMEditor::replaceChild(ContainerNode* parentNode, PassRefPtrWillBeRawPtr<Node> newNode, Node* oldNode, ExceptionState& exceptionState)
+bool DOMEditor::replaceChild(ContainerNode* parentNode, RawPtr<Node> newNode, Node* oldNode, ExceptionState& exceptionState)
 {
-    return m_history->perform(adoptRefWillBeNoop(new ReplaceChildNodeAction(parentNode, newNode, oldNode)), exceptionState);
+    return m_history->perform(new ReplaceChildNodeAction(parentNode, newNode, oldNode), exceptionState);
 }
 
 bool DOMEditor::setNodeValue(Node* node, const String& value, ExceptionState& exceptionState)
 {
-    return m_history->perform(adoptRefWillBeNoop(new SetNodeValueAction(node, value)), exceptionState);
+    return m_history->perform(new SetNodeValueAction(node, value), exceptionState);
 }
 
 static void populateErrorString(ExceptionState& exceptionState, ErrorString* errorString)
@@ -463,7 +463,7 @@
         *errorString = DOMException::getErrorName(exceptionState.code());
 }
 
-bool DOMEditor::insertBefore(ContainerNode* parentNode, PassRefPtrWillBeRawPtr<Node> node, Node* anchorNode, ErrorString* errorString)
+bool DOMEditor::insertBefore(ContainerNode* parentNode, RawPtr<Node> node, Node* anchorNode, ErrorString* errorString)
 {
     TrackExceptionState exceptionState;
     bool result = insertBefore(parentNode, node, anchorNode, exceptionState);
diff --git a/third_party/WebKit/Source/core/inspector/DOMEditor.h b/third_party/WebKit/Source/core/inspector/DOMEditor.h
index 8aeadc3..87786d8f 100644
--- a/third_party/WebKit/Source/core/inspector/DOMEditor.h
+++ b/third_party/WebKit/Source/core/inspector/DOMEditor.h
@@ -44,24 +44,23 @@
 class Node;
 class Text;
 
-class DOMEditor final : public NoBaseWillBeGarbageCollected<DOMEditor> {
+class DOMEditor final : public GarbageCollected<DOMEditor> {
     WTF_MAKE_NONCOPYABLE(DOMEditor);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(DOMEditor);
 public:
     explicit DOMEditor(InspectorHistory*);
 
     DECLARE_TRACE();
 
-    bool insertBefore(ContainerNode* parentNode, PassRefPtrWillBeRawPtr<Node>, Node* anchorNode, ExceptionState&);
+    bool insertBefore(ContainerNode* parentNode, RawPtr<Node>, Node* anchorNode, ExceptionState&);
     bool removeChild(ContainerNode* parentNode, Node*, ExceptionState&);
     bool setAttribute(Element*, const String& name, const String& value, ExceptionState&);
     bool removeAttribute(Element*, const String& name, ExceptionState&);
     bool setOuterHTML(Node*, const String& html, Node** newNode, ExceptionState&);
     bool replaceWholeText(Text*, const String& text, ExceptionState&);
-    bool replaceChild(ContainerNode* parentNode, PassRefPtrWillBeRawPtr<Node> newNode, Node* oldNode, ExceptionState&);
+    bool replaceChild(ContainerNode* parentNode, RawPtr<Node> newNode, Node* oldNode, ExceptionState&);
     bool setNodeValue(Node* parentNode, const String& value, ExceptionState&);
 
-    bool insertBefore(ContainerNode* parentNode, PassRefPtrWillBeRawPtr<Node>, Node* anchorNode, ErrorString*);
+    bool insertBefore(ContainerNode* parentNode, RawPtr<Node>, Node* anchorNode, ErrorString*);
     bool removeChild(ContainerNode* parentNode, Node*, ErrorString*);
     bool setAttribute(Element*, const String& name, const String& value, ErrorString*);
     bool removeAttribute(Element*, const String& name, ErrorString*);
@@ -79,7 +78,7 @@
     class ReplaceChildNodeAction;
     class SetNodeValueAction;
 
-    RawPtrWillBeMember<InspectorHistory> m_history;
+    Member<InspectorHistory> m_history;
 };
 
 
diff --git a/third_party/WebKit/Source/core/inspector/DOMPatchSupport.cpp b/third_party/WebKit/Source/core/inspector/DOMPatchSupport.cpp
index f75f2b9..b7b2b170 100644
--- a/third_party/WebKit/Source/core/inspector/DOMPatchSupport.cpp
+++ b/third_party/WebKit/Source/core/inspector/DOMPatchSupport.cpp
@@ -72,7 +72,7 @@
 
 void DOMPatchSupport::patchDocument(const String& markup)
 {
-    RefPtrWillBeRawPtr<Document> newDocument = nullptr;
+    RawPtr<Document> newDocument = nullptr;
     if (document().isHTMLDocument())
         newDocument = HTMLDocument::create();
     else if (document().isSVGDocument())
@@ -85,7 +85,7 @@
     ASSERT(newDocument);
     newDocument->setContextFeatures(document().contextFeatures());
     if (!document().isHTMLDocument()) {
-        RefPtrWillBeRawPtr<DocumentParser> parser = XMLDocumentParser::create(*newDocument, nullptr);
+        RawPtr<DocumentParser> parser = XMLDocumentParser::create(*newDocument, nullptr);
         parser->append(markup);
         parser->finish();
         parser->detach();
@@ -95,8 +95,8 @@
             return;
     }
     newDocument->setContent(markup);
-    OwnPtrWillBeRawPtr<Digest> oldInfo = createDigest(document().documentElement(), nullptr);
-    OwnPtrWillBeRawPtr<Digest> newInfo = createDigest(newDocument->documentElement(), &m_unusedNodesMap);
+    RawPtr<Digest> oldInfo = createDigest(document().documentElement(), nullptr);
+    RawPtr<Digest> newInfo = createDigest(newDocument->documentElement(), &m_unusedNodesMap);
 
     if (!innerPatchNode(oldInfo.get(), newInfo.get(), IGNORE_EXCEPTION)) {
         // Fall back to rewrite.
@@ -114,7 +114,7 @@
     }
 
     Node* previousSibling = node->previousSibling();
-    RefPtrWillBeRawPtr<DocumentFragment> fragment = DocumentFragment::create(document());
+    RawPtr<DocumentFragment> fragment = DocumentFragment::create(document());
     Node* targetNode = node->parentElementOrShadowRoot() ? node->parentElementOrShadowRoot() : document().documentElement();
 
     // Use the document BODY as the context element when editing immediate shadow root children,
@@ -131,13 +131,13 @@
 
     // Compose the old list.
     ContainerNode* parentNode = node->parentNode();
-    WillBeHeapVector<OwnPtrWillBeMember<Digest>> oldList;
+    HeapVector<Member<Digest>> oldList;
     for (Node* child = parentNode->firstChild(); child; child = child->nextSibling())
         oldList.append(createDigest(child, 0));
 
     // Compose the new list.
     String markupCopy = markup.lower();
-    WillBeHeapVector<OwnPtrWillBeMember<Digest>> newList;
+    HeapVector<Member<Digest>> newList;
     for (Node* child = parentNode->firstChild(); child != node; child = child->nextSibling())
         newList.append(createDigest(child, 0));
     for (Node* child = fragment->firstChild(); child; child = child->nextSibling()) {
@@ -201,7 +201,7 @@
 }
 
 std::pair<DOMPatchSupport::ResultMap, DOMPatchSupport::ResultMap>
-DOMPatchSupport::diff(const WillBeHeapVector<OwnPtrWillBeMember<Digest>>& oldList, const WillBeHeapVector<OwnPtrWillBeMember<Digest>>& newList)
+DOMPatchSupport::diff(const HeapVector<Member<Digest>>& oldList, const HeapVector<Member<Digest>>& newList)
 {
     ResultMap newMap(newList.size());
     ResultMap oldMap(oldList.size());
@@ -286,7 +286,7 @@
     return std::make_pair(oldMap, newMap);
 }
 
-bool DOMPatchSupport::innerPatchChildren(ContainerNode* parentNode, const WillBeHeapVector<OwnPtrWillBeMember<Digest>>& oldList, const WillBeHeapVector<OwnPtrWillBeMember<Digest>>& newList, ExceptionState& exceptionState)
+bool DOMPatchSupport::innerPatchChildren(ContainerNode* parentNode, const HeapVector<Member<Digest>>& oldList, const HeapVector<Member<Digest>>& newList, ExceptionState& exceptionState)
 {
     std::pair<ResultMap, ResultMap> resultMaps = diff(oldList, newList);
     ResultMap& oldMap = resultMaps.first;
@@ -296,7 +296,7 @@
     Digest* oldBody = nullptr;
 
     // 1. First strip everything except for the nodes that retain. Collect pending merges.
-    WillBeHeapHashMap<RawPtrWillBeMember<Digest>, RawPtrWillBeMember<Digest>> merges;
+    HeapHashMap<Member<Digest>, Member<Digest>> merges;
     HashSet<size_t, WTF::IntHash<size_t>, WTF::UnsignedWithZeroKeyHashTraits<size_t>> usedNewOrdinals;
     for (size_t i = 0; i < oldList.size(); ++i) {
         if (oldMap[i].first) {
@@ -377,7 +377,7 @@
     for (size_t i = 0; i < oldMap.size(); ++i) {
         if (!oldMap[i].first)
             continue;
-        RefPtrWillBeRawPtr<Node> node = oldMap[i].first->m_node;
+        RawPtr<Node> node = oldMap[i].first->m_node;
         Node* anchorNode = NodeTraversal::childAt(*parentNode, oldMap[i].second);
         if (node == anchorNode)
             continue;
@@ -395,7 +395,7 @@
     digestor->consume(reinterpret_cast<const unsigned char*>(string.utf8().data()), string.length());
 }
 
-PassOwnPtrWillBeRawPtr<DOMPatchSupport::Digest> DOMPatchSupport::createDigest(Node* node, UnusedNodesMap* unusedNodesMap)
+RawPtr<DOMPatchSupport::Digest> DOMPatchSupport::createDigest(Node* node, UnusedNodesMap* unusedNodesMap)
 {
     Digest* digest = new Digest(node);
 
@@ -411,7 +411,7 @@
         Element& element = toElement(*node);
         Node* child = element.firstChild();
         while (child) {
-            OwnPtrWillBeRawPtr<Digest> childInfo = createDigest(child, unusedNodesMap);
+            RawPtr<Digest> childInfo = createDigest(child, unusedNodesMap);
             addStringToDigestor(digestor.get(), childInfo->m_sha1);
             child = child->nextSibling();
             digest->m_children.append(childInfo.release());
@@ -447,7 +447,7 @@
 
 bool DOMPatchSupport::removeChildAndMoveToNew(Digest* oldDigest, ExceptionState& exceptionState)
 {
-    RefPtrWillBeRawPtr<Node> oldNode = oldDigest->m_node;
+    RawPtr<Node> oldNode = oldDigest->m_node;
     if (!m_domEditor->removeChild(oldNode->parentNode(), oldNode.get(), exceptionState))
         return false;
 
@@ -476,7 +476,7 @@
 
 void DOMPatchSupport::markNodeAsUsed(Digest* digest)
 {
-    WillBeHeapDeque<RawPtrWillBeMember<Digest>> queue;
+    HeapDeque<Member<Digest>> queue;
     queue.append(digest);
     while (!queue.isEmpty()) {
         Digest* first = queue.takeFirst();
diff --git a/third_party/WebKit/Source/core/inspector/DOMPatchSupport.h b/third_party/WebKit/Source/core/inspector/DOMPatchSupport.h
index 899743b..882497a 100644
--- a/third_party/WebKit/Source/core/inspector/DOMPatchSupport.h
+++ b/third_party/WebKit/Source/core/inspector/DOMPatchSupport.h
@@ -58,24 +58,24 @@
     Node* patchNode(Node*, const String& markup, ExceptionState&);
 
 private:
-    class Digest : public NoBaseWillBeGarbageCollectedFinalized<Digest> {
+    class Digest : public GarbageCollectedFinalized<Digest> {
     public:
         explicit Digest(Node* node) : m_node(node) { }
         DECLARE_TRACE();
 
         String m_sha1;
         String m_attrsSHA1;
-        RawPtrWillBeMember<Node> m_node;
-        WillBeHeapVector<OwnPtrWillBeMember<Digest>> m_children;
+        Member<Node> m_node;
+        HeapVector<Member<Digest>> m_children;
     };
 
-    typedef WillBeHeapVector<std::pair<RawPtrWillBeMember<Digest>, size_t>> ResultMap;
-    typedef WillBeHeapHashMap<String, RawPtrWillBeMember<Digest>> UnusedNodesMap;
+    typedef HeapVector<std::pair<Member<Digest>, size_t>> ResultMap;
+    typedef HeapHashMap<String, Member<Digest>> UnusedNodesMap;
 
     bool innerPatchNode(Digest* oldNode, Digest* newNode, ExceptionState&);
-    std::pair<ResultMap, ResultMap> diff(const WillBeHeapVector<OwnPtrWillBeMember<Digest>>& oldChildren, const WillBeHeapVector<OwnPtrWillBeMember<Digest>>& newChildren);
-    bool innerPatchChildren(ContainerNode*, const WillBeHeapVector<OwnPtrWillBeMember<Digest>>& oldChildren, const WillBeHeapVector<OwnPtrWillBeMember<Digest>>& newChildren, ExceptionState&);
-    PassOwnPtrWillBeRawPtr<Digest> createDigest(Node*, UnusedNodesMap*);
+    std::pair<ResultMap, ResultMap> diff(const HeapVector<Member<Digest>>& oldChildren, const HeapVector<Member<Digest>>& newChildren);
+    bool innerPatchChildren(ContainerNode*, const HeapVector<Member<Digest>>& oldChildren, const HeapVector<Member<Digest>>& newChildren, ExceptionState&);
+    RawPtr<Digest> createDigest(Node*, UnusedNodesMap*);
     bool insertBeforeAndMarkAsUsed(ContainerNode*, Digest*, Node* anchor, ExceptionState&);
     bool removeChildAndMoveToNew(Digest*, ExceptionState&);
     void markNodeAsUsed(Digest*);
@@ -84,8 +84,8 @@
 #endif
     Document& document() const { return *m_document; }
 
-    RawPtrWillBeMember<DOMEditor> m_domEditor;
-    RawPtrWillBeMember<Document> m_document;
+    Member<DOMEditor> m_domEditor;
+    Member<Document> m_document;
 
     UnusedNodesMap m_unusedNodesMap;
 };
diff --git a/third_party/WebKit/Source/core/inspector/DevToolsHost.cpp b/third_party/WebKit/Source/core/inspector/DevToolsHost.cpp
index fa123be..db786a57 100644
--- a/third_party/WebKit/Source/core/inspector/DevToolsHost.cpp
+++ b/third_party/WebKit/Source/core/inspector/DevToolsHost.cpp
@@ -60,9 +60,9 @@
 
 class FrontendMenuProvider final : public ContextMenuProvider {
 public:
-    static PassRefPtrWillBeRawPtr<FrontendMenuProvider> create(DevToolsHost* devtoolsHost, const Vector<ContextMenuItem>& items)
+    static RawPtr<FrontendMenuProvider> create(DevToolsHost* devtoolsHost, const Vector<ContextMenuItem>& items)
     {
-        return adoptRefWillBeNoop(new FrontendMenuProvider(devtoolsHost, items));
+        return new FrontendMenuProvider(devtoolsHost, items);
     }
 
     ~FrontendMenuProvider() override
@@ -113,7 +113,7 @@
     {
     }
 
-    RawPtrWillBeMember<DevToolsHost> m_devtoolsHost;
+    Member<DevToolsHost> m_devtoolsHost;
     Vector<ContextMenuItem> m_items;
 };
 
@@ -218,7 +218,7 @@
 void DevToolsHost::showContextMenu(LocalFrame* targetFrame, float x, float y, const Vector<ContextMenuItem>& items)
 {
     ASSERT(m_frontendFrame);
-    RefPtrWillBeRawPtr<FrontendMenuProvider> menuProvider = FrontendMenuProvider::create(this, items);
+    RawPtr<FrontendMenuProvider> menuProvider = FrontendMenuProvider::create(this, items);
     m_menuProvider = menuProvider.get();
     float zoom = targetFrame->pageZoomFactor();
     if (m_client)
diff --git a/third_party/WebKit/Source/core/inspector/DevToolsHost.h b/third_party/WebKit/Source/core/inspector/DevToolsHost.h
index fe18693d..7ecd3783 100644
--- a/third_party/WebKit/Source/core/inspector/DevToolsHost.h
+++ b/third_party/WebKit/Source/core/inspector/DevToolsHost.h
@@ -43,12 +43,12 @@
 class InspectorFrontendClient;
 class LocalFrame;
 
-class CORE_EXPORT DevToolsHost final : public RefCountedWillBeGarbageCollectedFinalized<DevToolsHost>, public ScriptWrappable {
+class CORE_EXPORT DevToolsHost final : public GarbageCollectedFinalized<DevToolsHost>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<DevToolsHost> create(InspectorFrontendClient* client, LocalFrame* frontendFrame)
+    static RawPtr<DevToolsHost> create(InspectorFrontendClient* client, LocalFrame* frontendFrame)
     {
-        return adoptRefWillBeNoop(new DevToolsHost(client, frontendFrame));
+        return new DevToolsHost(client, frontendFrame);
     }
 
     ~DevToolsHost();
@@ -83,8 +83,8 @@
     void evaluateScript(const String&);
 
     InspectorFrontendClient* m_client;
-    RawPtrWillBeMember<LocalFrame> m_frontendFrame;
-    RawPtrWillBeMember<FrontendMenuProvider> m_menuProvider;
+    Member<LocalFrame> m_frontendFrame;
+    Member<FrontendMenuProvider> m_menuProvider;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/inspector/InspectedFrames.h b/third_party/WebKit/Source/core/inspector/InspectedFrames.h
index 9c56e7f..634157b 100644
--- a/third_party/WebKit/Source/core/inspector/InspectedFrames.h
+++ b/third_party/WebKit/Source/core/inspector/InspectedFrames.h
@@ -14,9 +14,8 @@
 
 class LocalFrame;
 
-class CORE_EXPORT InspectedFrames final : public NoBaseWillBeGarbageCollectedFinalized<InspectedFrames> {
+class CORE_EXPORT InspectedFrames final : public GarbageCollectedFinalized<InspectedFrames> {
     WTF_MAKE_NONCOPYABLE(InspectedFrames);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(InspectedFrames);
 public:
     class CORE_EXPORT Iterator {
         STACK_ALLOCATED();
@@ -30,13 +29,13 @@
     private:
         friend class InspectedFrames;
         Iterator(LocalFrame* root, LocalFrame* current);
-        RawPtrWillBeMember<LocalFrame> m_root;
-        RawPtrWillBeMember<LocalFrame> m_current;
+        Member<LocalFrame> m_root;
+        Member<LocalFrame> m_current;
     };
 
-    static PassOwnPtrWillBeRawPtr<InspectedFrames> create(LocalFrame* root)
+    static RawPtr<InspectedFrames> create(LocalFrame* root)
     {
-        return adoptPtrWillBeNoop(new InspectedFrames(root));
+        return new InspectedFrames(root);
     }
 
     LocalFrame* root() { return m_root; }
@@ -50,7 +49,7 @@
 private:
     explicit InspectedFrames(LocalFrame*);
 
-    RawPtrWillBeMember<LocalFrame> m_root;
+    Member<LocalFrame> m_root;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/inspector/InspectorAnimationAgent.cpp b/third_party/WebKit/Source/core/inspector/InspectorAnimationAgent.cpp
index 72b36f1..6a39a09 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorAnimationAgent.cpp
+++ b/third_party/WebKit/Source/core/inspector/InspectorAnimationAgent.cpp
@@ -419,12 +419,12 @@
     }
 
     Element* element = effect->target();
-    WillBeHeapVector<RefPtrWillBeMember<CSSStyleDeclaration>> styles = m_cssAgent->matchingStyles(element);
+    HeapVector<Member<CSSStyleDeclaration>> styles = m_cssAgent->matchingStyles(element);
     OwnPtr<WebCryptoDigestor> digestor = createDigestor(HashAlgorithmSha1);
     addStringToDigestor(digestor.get(), type);
     addStringToDigestor(digestor.get(), animation.id());
     for (CSSPropertyID property : cssProperties) {
-        RefPtrWillBeRawPtr<CSSStyleDeclaration> style = m_cssAgent->findEffectiveDeclaration(property, styles);
+        RawPtr<CSSStyleDeclaration> style = m_cssAgent->findEffectiveDeclaration(property, styles);
         // Ignore inline styles.
         if (!style || !style->parentStyleSheet() || !style->parentRule() || style->parentRule()->type() != CSSRule::STYLE_RULE)
             continue;
diff --git a/third_party/WebKit/Source/core/inspector/InspectorAnimationAgent.h b/third_party/WebKit/Source/core/inspector/InspectorAnimationAgent.h
index eb98bdc..9e6272e 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorAnimationAgent.h
+++ b/third_party/WebKit/Source/core/inspector/InspectorAnimationAgent.h
@@ -26,9 +26,9 @@
 class CORE_EXPORT InspectorAnimationAgent final : public InspectorBaseAgent<InspectorAnimationAgent, protocol::Frontend::Animation>, public protocol::Backend::Animation {
     WTF_MAKE_NONCOPYABLE(InspectorAnimationAgent);
 public:
-    static PassOwnPtrWillBeRawPtr<InspectorAnimationAgent> create(InspectedFrames* inspectedFrames, InspectorDOMAgent* domAgent, InspectorCSSAgent* cssAgent, V8RuntimeAgent* runtimeAgent)
+    static RawPtr<InspectorAnimationAgent> create(InspectedFrames* inspectedFrames, InspectorDOMAgent* domAgent, InspectorCSSAgent* cssAgent, V8RuntimeAgent* runtimeAgent)
     {
-        return adoptPtrWillBeNoop(new InspectorAnimationAgent(inspectedFrames, domAgent, cssAgent, runtimeAgent));
+        return new InspectorAnimationAgent(inspectedFrames, domAgent, cssAgent, runtimeAgent);
     }
 
     // Base agent methods.
@@ -69,13 +69,13 @@
     blink::Animation* animationClone(blink::Animation*);
     String createCSSId(blink::Animation&);
 
-    RawPtrWillBeMember<InspectedFrames> m_inspectedFrames;
-    RawPtrWillBeMember<InspectorDOMAgent> m_domAgent;
-    RawPtrWillBeMember<InspectorCSSAgent> m_cssAgent;
+    Member<InspectedFrames> m_inspectedFrames;
+    Member<InspectorDOMAgent> m_domAgent;
+    Member<InspectorCSSAgent> m_cssAgent;
     V8RuntimeAgent* m_runtimeAgent;
-    PersistentHeapHashMapWillBeHeapHashMap<String, Member<blink::Animation>> m_idToAnimation;
-    PersistentHeapHashMapWillBeHeapHashMap<String, Member<blink::Animation>> m_idToAnimationClone;
-    WillBeHeapHashMap<String, String> m_idToAnimationType;
+    HeapHashMap<String, Member<blink::Animation>> m_idToAnimation;
+    HeapHashMap<String, Member<blink::Animation>> m_idToAnimationClone;
+    HeapHashMap<String, String> m_idToAnimationType;
     bool m_isCloning;
     HashSet<String> m_clearedAnimations;
 };
diff --git a/third_party/WebKit/Source/core/inspector/InspectorApplicationCacheAgent.h b/third_party/WebKit/Source/core/inspector/InspectorApplicationCacheAgent.h
index d6231b6..bfa35c2 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorApplicationCacheAgent.h
+++ b/third_party/WebKit/Source/core/inspector/InspectorApplicationCacheAgent.h
@@ -39,11 +39,10 @@
 
 class CORE_EXPORT InspectorApplicationCacheAgent final : public InspectorBaseAgent<InspectorApplicationCacheAgent, protocol::Frontend::ApplicationCache>, public protocol::Backend::ApplicationCache {
     WTF_MAKE_NONCOPYABLE(InspectorApplicationCacheAgent);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(InspectorApplicationCacheAgent);
 public:
-    static PassOwnPtrWillBeRawPtr<InspectorApplicationCacheAgent> create(InspectedFrames* inspectedFrames)
+    static RawPtr<InspectorApplicationCacheAgent> create(InspectedFrames* inspectedFrames)
     {
-        return adoptPtrWillBeNoop(new InspectorApplicationCacheAgent(inspectedFrames));
+        return new InspectorApplicationCacheAgent(inspectedFrames);
     }
     ~InspectorApplicationCacheAgent() override { }
     DECLARE_VIRTUAL_TRACE();
@@ -71,7 +70,7 @@
 
     DocumentLoader* assertFrameWithDocumentLoader(ErrorString*, String frameId);
 
-    RawPtrWillBeMember<InspectedFrames> m_inspectedFrames;
+    Member<InspectedFrames> m_inspectedFrames;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/inspector/InspectorBaseAgent.cpp b/third_party/WebKit/Source/core/inspector/InspectorBaseAgent.cpp
index 8e7f8897..56c103b 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorBaseAgent.cpp
+++ b/third_party/WebKit/Source/core/inspector/InspectorBaseAgent.cpp
@@ -66,7 +66,7 @@
 {
 }
 
-void InspectorAgentRegistry::append(PassOwnPtrWillBeRawPtr<InspectorAgent> agent)
+void InspectorAgentRegistry::append(RawPtr<InspectorAgent> agent)
 {
     ASSERT(!m_state->get(agent->name()));
     OwnPtr<protocol::DictionaryValue> agentState = protocol::DictionaryValue::create();
diff --git a/third_party/WebKit/Source/core/inspector/InspectorBaseAgent.h b/third_party/WebKit/Source/core/inspector/InspectorBaseAgent.h
index 6765b2d..d3a0f04 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorBaseAgent.h
+++ b/third_party/WebKit/Source/core/inspector/InspectorBaseAgent.h
@@ -51,8 +51,7 @@
 
 using protocol::Maybe;
 
-class CORE_EXPORT InspectorAgent : public NoBaseWillBeGarbageCollectedFinalized<InspectorAgent> {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(InspectorAgent);
+class CORE_EXPORT InspectorAgent : public GarbageCollectedFinalized<InspectorAgent> {
 public:
     explicit InspectorAgent(const String&);
     virtual ~InspectorAgent();
@@ -73,7 +72,7 @@
     void appended(InstrumentingAgents*);
 
 protected:
-    RawPtrWillBeMember<InstrumentingAgents> m_instrumentingAgents;
+    Member<InstrumentingAgents> m_instrumentingAgents;
     protocol::DictionaryValue* m_state;
 
 private:
@@ -85,7 +84,7 @@
     WTF_MAKE_NONCOPYABLE(InspectorAgentRegistry);
 public:
     explicit InspectorAgentRegistry(InstrumentingAgents*);
-    void append(PassOwnPtrWillBeRawPtr<InspectorAgent>);
+    void append(RawPtr<InspectorAgent>);
 
     void setFrontend(protocol::Frontend*);
     void clearFrontend();
@@ -99,9 +98,9 @@
     DECLARE_TRACE();
 
 private:
-    RawPtrWillBeMember<InstrumentingAgents> m_instrumentingAgents;
+    Member<InstrumentingAgents> m_instrumentingAgents;
     OwnPtr<protocol::DictionaryValue> m_state;
-    WillBeHeapVector<OwnPtrWillBeMember<InspectorAgent>> m_agents;
+    HeapVector<Member<InspectorAgent>> m_agents;
 };
 
 template<typename AgentClass, typename FrontendClass>
diff --git a/third_party/WebKit/Source/core/inspector/InspectorCSSAgent.cpp b/third_party/WebKit/Source/core/inspector/InspectorCSSAgent.cpp
index 879e1dd..b41d57c 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorCSSAgent.cpp
+++ b/third_party/WebKit/Source/core/inspector/InspectorCSSAgent.cpp
@@ -101,11 +101,11 @@
 
 String createShorthandValue(Document* document, const String& shorthand, const String& oldText, const String& longhand, const String& newValue)
 {
-    RefPtrWillBeRawPtr<StyleSheetContents> styleSheetContents = StyleSheetContents::create(strictCSSParserContext());
+    RawPtr<StyleSheetContents> styleSheetContents = StyleSheetContents::create(strictCSSParserContext());
     String text = " div { " + shorthand  + ": " + oldText + "; }";
     CSSParser::parseSheet(CSSParserContext(*document, 0), styleSheetContents.get(), text);
 
-    RefPtrWillBeRawPtr<CSSStyleSheet> styleSheet = CSSStyleSheet::create(styleSheetContents);
+    RawPtr<CSSStyleSheet> styleSheet = CSSStyleSheet::create(styleSheetContents);
     CSSStyleRule* rule = toCSSStyleRule(styleSheet->item(0));
     CSSStyleDeclaration* style = rule->style();
     TrackExceptionState exceptionState;
@@ -113,10 +113,10 @@
     return style->getPropertyValue(shorthand);
 }
 
-WillBeHeapVector<RefPtrWillBeMember<CSSStyleRule>> filterDuplicateRules(RefPtrWillBeRawPtr<CSSRuleList> ruleList)
+HeapVector<Member<CSSStyleRule>> filterDuplicateRules(RawPtr<CSSRuleList> ruleList)
 {
-    WillBeHeapVector<RefPtrWillBeMember<CSSStyleRule>> uniqRules;
-    WillBeHeapHashSet<RawPtrWillBeMember<CSSRule>> uniqRulesSet;
+    HeapVector<Member<CSSStyleRule>> uniqRules;
+    HeapHashSet<Member<CSSRule>> uniqRulesSet;
     for (unsigned i = ruleList ? ruleList->length() : 0; i > 0; --i) {
         CSSRule* rule = ruleList->item(i - 1);
         if (!rule || rule->type() != CSSRule::STYLE_RULE || uniqRulesSet.contains(rule))
@@ -129,7 +129,7 @@
 }
 
 // Get the elements which overlap the given rectangle.
-WillBeHeapVector<RawPtrWillBeMember<Element>> elementsFromRect(LayoutRect rect, Document& document)
+HeapVector<Member<Element>> elementsFromRect(LayoutRect rect, Document& document)
 {
     HitTestRequest request(HitTestRequest::ReadOnly | HitTestRequest::Active | HitTestRequest::ListBased | HitTestRequest::PenetratingList | HitTestRequest::IgnoreClipping);
 
@@ -143,9 +143,9 @@
 }
 
 // Blends the colors from the given gradient with the existing colors.
-void blendWithColorsFromGradient(CSSGradientValue* gradient, WillBeHeapVector<Color>& colors, bool& foundNonTransparentColor, bool& foundOpaqueColor, const LayoutObject& layoutObject)
+void blendWithColorsFromGradient(CSSGradientValue* gradient, HeapVector<Color>& colors, bool& foundNonTransparentColor, bool& foundOpaqueColor, const LayoutObject& layoutObject)
 {
-    WillBeHeapVector<Color> stopColors;
+    HeapVector<Color> stopColors;
     gradient->getStopColors(stopColors, layoutObject);
 
     if (colors.isEmpty()) {
@@ -168,7 +168,7 @@
 }
 
 // Gets the colors from an image style, if one exists and it is a gradient.
-void addColorsFromImageStyle(const ComputedStyle& style, WillBeHeapVector<Color>& colors, bool& foundOpaqueColor, bool& foundNonTransparentColor, const LayoutObject& layoutObject)
+void addColorsFromImageStyle(const ComputedStyle& style, HeapVector<Color>& colors, bool& foundOpaqueColor, bool& foundNonTransparentColor, const LayoutObject& layoutObject)
 {
     const FillLayer& backgroundLayers = style.backgroundLayers();
     if (!backgroundLayers.hasImage())
@@ -187,7 +187,7 @@
     }
 
     StyleGeneratedImage* genImage = toStyleGeneratedImage(styleImage);
-    RefPtrWillBeRawPtr<CSSValue> imageCSS = genImage->cssValue();
+    RawPtr<CSSValue> imageCSS = genImage->cssValue();
     if (imageCSS->isGradientValue()) {
         CSSGradientValue* gradient = toCSSGradientValue(imageCSS.get());
         blendWithColorsFromGradient(gradient, colors, foundNonTransparentColor, foundOpaqueColor, layoutObject);
@@ -199,9 +199,9 @@
 // walking up all the elements returned by a hit test (but not going beyond
 // |topElement|) covering the area of the rect, and blending their background
 // colors.
-bool getColorsFromRect(LayoutRect rect, Document& document, Element* topElement, WillBeHeapVector<Color>& colors)
+bool getColorsFromRect(LayoutRect rect, Document& document, Element* topElement, HeapVector<Color>& colors)
 {
-    WillBeHeapVector<RawPtrWillBeMember<Element>> elementsUnderRect = elementsFromRect(rect, document);
+    HeapVector<Member<Element>> elementsUnderRect = elementsFromRect(rect, document);
 
     bool foundOpaqueColor = false;
     bool foundTopElement = false;
@@ -347,7 +347,7 @@
         return String::format("SetStyleSheetText %s", m_styleSheet->id().utf8().data());
     }
 
-    void merge(PassRefPtrWillBeRawPtr<Action> action) override
+    void merge(RawPtr<Action> action) override
     {
         ASSERT(action->mergeId() == mergeId());
 
@@ -362,7 +362,7 @@
     }
 
 private:
-    RefPtrWillBeMember<InspectorStyleSheetBase> m_styleSheet;
+    Member<InspectorStyleSheetBase> m_styleSheet;
     String m_text;
     String m_oldText;
 };
@@ -430,9 +430,9 @@
         return m_cssRule;
     }
 
-    RefPtrWillBeRawPtr<CSSRule> takeRule()
+    RawPtr<CSSRule> takeRule()
     {
-        RefPtrWillBeRawPtr<CSSRule> result = m_cssRule;
+        RawPtr<CSSRule> result = m_cssRule;
         m_cssRule = nullptr;
         return result;
     }
@@ -441,7 +441,7 @@
     {
         if (m_type != SetStyleText)
             return nullptr;
-        RefPtrWillBeRawPtr<CSSRule> rule = takeRule();
+        RawPtr<CSSRule> rule = takeRule();
         if (rule->type() == CSSRule::STYLE_RULE)
             return m_styleSheet->buildObjectForStyle(toCSSStyleRule(rule.get())->style());
         if (rule->type() == CSSRule::KEYFRAME_RULE)
@@ -466,7 +466,7 @@
         return m_oldText == m_newText;
     }
 
-    void merge(PassRefPtrWillBeRawPtr<Action> action) override
+    void merge(RawPtr<Action> action) override
     {
         ASSERT(action->mergeId() == mergeId());
 
@@ -476,13 +476,13 @@
     }
 
 private:
-    RefPtrWillBeMember<InspectorStyleSheet> m_styleSheet;
+    Member<InspectorStyleSheet> m_styleSheet;
     Type m_type;
     String m_oldText;
     String m_newText;
     SourceRange m_oldRange;
     SourceRange m_newRange;
-    RefPtrWillBeMember<CSSRule> m_cssRule;
+    Member<CSSRule> m_cssRule;
 };
 
 class InspectorCSSAgent::SetElementStyleAction final : public InspectorCSSAgent::StyleSheetAction {
@@ -528,7 +528,7 @@
         return m_styleSheet->buildObjectForStyle(m_styleSheet->inlineStyle());
     }
 
-    void merge(PassRefPtrWillBeRawPtr<Action> action) override
+    void merge(RawPtr<Action> action) override
     {
         ASSERT(action->mergeId() == mergeId());
 
@@ -537,7 +537,7 @@
     }
 
 private:
-    RefPtrWillBeMember<InspectorStyleSheetForInlineStyle> m_styleSheet;
+    Member<InspectorStyleSheetForInlineStyle> m_styleSheet;
     String m_text;
     String m_oldText;
 };
@@ -571,9 +571,9 @@
         return true;
     }
 
-    RefPtrWillBeRawPtr<CSSStyleRule> takeRule()
+    RawPtr<CSSStyleRule> takeRule()
     {
-        RefPtrWillBeRawPtr<CSSStyleRule> result = m_cssRule;
+        RawPtr<CSSStyleRule> result = m_cssRule;
         m_cssRule = nullptr;
         return result;
     }
@@ -586,8 +586,8 @@
     }
 
 private:
-    RefPtrWillBeMember<InspectorStyleSheet> m_styleSheet;
-    RefPtrWillBeMember<CSSStyleRule> m_cssRule;
+    Member<InspectorStyleSheet> m_styleSheet;
+    Member<CSSStyleRule> m_cssRule;
     String m_ruleText;
     String m_oldText;
     SourceRange m_location;
@@ -646,7 +646,7 @@
 {
     if (!m_invalidatedDocuments.size())
         return;
-    WillBeHeapHashSet<RawPtrWillBeMember<Document>> invalidatedDocuments;
+    HeapHashSet<Member<Document>> invalidatedDocuments;
     m_invalidatedDocuments.swap(&invalidatedDocuments);
     for (Document* document: invalidatedDocuments)
         updateActiveStyleSheets(document, ExistingFrontendRefresh);
@@ -693,7 +693,7 @@
     }
 
     m_instrumentingAgents->setInspectorCSSAgent(this);
-    WillBeHeapVector<RawPtrWillBeMember<Document>> documents = m_domAgent->documents();
+    HeapVector<Member<Document>> documents = m_domAgent->documents();
     for (Document* document : documents)
         updateActiveStyleSheets(document, InitialFrontendLoad);
 }
@@ -732,24 +732,24 @@
 
 void InspectorCSSAgent::updateActiveStyleSheets(Document* document, StyleSheetsUpdateType styleSheetsUpdateType)
 {
-    WillBeHeapVector<RawPtrWillBeMember<CSSStyleSheet>> newSheetsVector;
+    HeapVector<Member<CSSStyleSheet>> newSheetsVector;
     InspectorCSSAgent::collectAllDocumentStyleSheets(document, newSheetsVector);
     setActiveStyleSheets(document, newSheetsVector, styleSheetsUpdateType);
 }
 
-void InspectorCSSAgent::setActiveStyleSheets(Document* document, const WillBeHeapVector<RawPtrWillBeMember<CSSStyleSheet>>& allSheetsVector, StyleSheetsUpdateType styleSheetsUpdateType)
+void InspectorCSSAgent::setActiveStyleSheets(Document* document, const HeapVector<Member<CSSStyleSheet>>& allSheetsVector, StyleSheetsUpdateType styleSheetsUpdateType)
 {
     bool isInitialFrontendLoad = styleSheetsUpdateType == InitialFrontendLoad;
 
-    WillBeHeapHashSet<RawPtrWillBeMember<CSSStyleSheet>>* documentCSSStyleSheets = m_documentToCSSStyleSheets.get(document);
+    HeapHashSet<Member<CSSStyleSheet>>* documentCSSStyleSheets = m_documentToCSSStyleSheets.get(document);
     if (!documentCSSStyleSheets) {
-        documentCSSStyleSheets = new WillBeHeapHashSet<RawPtrWillBeMember<CSSStyleSheet>>();
-        OwnPtrWillBeRawPtr<WillBeHeapHashSet<RawPtrWillBeMember<CSSStyleSheet>>> documentCSSStyleSheetsPtr = adoptPtrWillBeNoop(documentCSSStyleSheets);
+        documentCSSStyleSheets = new HeapHashSet<Member<CSSStyleSheet>>();
+        RawPtr<HeapHashSet<Member<CSSStyleSheet>>> documentCSSStyleSheetsPtr = adoptPtrWillBeNoop(documentCSSStyleSheets);
         m_documentToCSSStyleSheets.set(document, documentCSSStyleSheetsPtr.release());
     }
 
-    WillBeHeapHashSet<RawPtrWillBeMember<CSSStyleSheet>> removedSheets(*documentCSSStyleSheets);
-    WillBeHeapVector<RawPtrWillBeMember<CSSStyleSheet>> addedSheets;
+    HeapHashSet<Member<CSSStyleSheet>> removedSheets(*documentCSSStyleSheets);
+    HeapVector<Member<CSSStyleSheet>> addedSheets;
     for (CSSStyleSheet* cssStyleSheet : allSheetsVector) {
         if (removedSheets.contains(cssStyleSheet)) {
             removedSheets.remove(cssStyleSheet);
@@ -761,7 +761,7 @@
     }
 
     for (CSSStyleSheet* cssStyleSheet : removedSheets) {
-        RefPtrWillBeRawPtr<InspectorStyleSheet> inspectorStyleSheet = m_cssStyleSheetToInspectorStyleSheet.get(cssStyleSheet);
+        RawPtr<InspectorStyleSheet> inspectorStyleSheet = m_cssStyleSheetToInspectorStyleSheet.get(cssStyleSheet);
         ASSERT(inspectorStyleSheet);
 
         documentCSSStyleSheets->remove(cssStyleSheet);
@@ -789,7 +789,7 @@
 void InspectorCSSAgent::documentDetached(Document* document)
 {
     m_invalidatedDocuments.remove(document);
-    setActiveStyleSheets(document, WillBeHeapVector<RawPtrWillBeMember<CSSStyleSheet>>(), ExistingFrontendRefresh);
+    setActiveStyleSheets(document, HeapVector<Member<CSSStyleSheet>>(), ExistingFrontendRefresh);
 }
 
 void InspectorCSSAgent::addEditedStyleSheet(const String& url, const String& content)
@@ -850,7 +850,7 @@
 {
     *medias = protocol::Array<protocol::CSS::CSSMedia>::create();
     for (auto& style : m_idToInspectorStyleSheet) {
-        RefPtrWillBeRawPtr<InspectorStyleSheet> styleSheet = style.value;
+        RawPtr<InspectorStyleSheet> styleSheet = style.value;
         collectMediaQueriesFromStyleSheet(styleSheet->pageStyleSheet(), medias->get());
         const CSSRuleVector& flatRules = styleSheet->flatRules();
         for (unsigned i = 0; i < flatRules.size(); ++i) {
@@ -894,7 +894,7 @@
     StyleResolver& styleResolver = ownerDocument->ensureStyleResolver();
 
     element->updateDistribution();
-    RefPtrWillBeRawPtr<CSSRuleList> matchedRules = styleResolver.pseudoCSSRulesForElement(element, elementPseudoId, StyleResolver::AllCSSRules);
+    RawPtr<CSSRuleList> matchedRules = styleResolver.pseudoCSSRulesForElement(element, elementPseudoId, StyleResolver::AllCSSRules);
     *matchedCSSRules = buildArrayForMatchedRuleList(matchedRules.get(), originalElement, PseudoIdNone);
 
     // Pseudo elements.
@@ -909,7 +909,7 @@
 
     *pseudoIdMatches = protocol::Array<protocol::CSS::PseudoElementMatches>::create();
     for (PseudoId pseudoId = FirstPublicPseudoId; pseudoId < AfterLastInternalPseudoId; pseudoId = static_cast<PseudoId>(pseudoId + 1)) {
-        RefPtrWillBeRawPtr<CSSRuleList> matchedRules = styleResolver.pseudoCSSRulesForElement(element, pseudoId, StyleResolver::AllCSSRules);
+        RawPtr<CSSRuleList> matchedRules = styleResolver.pseudoCSSRulesForElement(element, pseudoId, StyleResolver::AllCSSRules);
         protocol::DOM::PseudoType pseudoType;
         if (matchedRules && matchedRules->length() && m_domAgent->getPseudoElementType(pseudoId, &pseudoType)) {
             pseudoIdMatches->fromJust()->addItem(protocol::CSS::PseudoElementMatches::create()
@@ -923,7 +923,7 @@
     Element* parentElement = element->parentOrShadowHostElement();
     while (parentElement) {
         StyleResolver& parentStyleResolver = parentElement->ownerDocument()->ensureStyleResolver();
-        RefPtrWillBeRawPtr<CSSRuleList> parentMatchedRules = parentStyleResolver.cssRulesForElement(parentElement, StyleResolver::AllCSSRules);
+        RawPtr<CSSRuleList> parentMatchedRules = parentStyleResolver.cssRulesForElement(parentElement, StyleResolver::AllCSSRules);
         OwnPtr<protocol::CSS::InheritedStyleEntry> entry = protocol::CSS::InheritedStyleEntry::create()
             .setMatchedCSSRules(buildArrayForMatchedRuleList(parentMatchedRules.get(), parentElement, PseudoIdNone)).build();
         if (parentElement->style() && parentElement->style()->length()) {
@@ -994,7 +994,7 @@
         }
 
         InspectorStyleSheet* inspectorStyleSheet = bindStyleSheet(cssKeyframesRule->parentStyleSheet());
-        RefPtrWillBeRawPtr<CSSRuleSourceData> sourceData = inspectorStyleSheet->sourceDataForRule(cssKeyframesRule);
+        RawPtr<CSSRuleSourceData> sourceData = inspectorStyleSheet->sourceDataForRule(cssKeyframesRule);
         OwnPtr<protocol::CSS::Value> name = protocol::CSS::Value::create().setText(cssKeyframesRule->name()).build();
         if (sourceData)
             name->setRange(inspectorStyleSheet->buildSourceRangeObject(sourceData->ruleHeaderRange));
@@ -1025,8 +1025,8 @@
     if (!node)
         return;
 
-    RefPtrWillBeRawPtr<CSSComputedStyleDeclaration> computedStyleInfo = CSSComputedStyleDeclaration::create(node, true);
-    RefPtrWillBeRawPtr<InspectorStyle> inspectorStyle = InspectorStyle::create(computedStyleInfo, nullptr, nullptr);
+    RawPtr<CSSComputedStyleDeclaration> computedStyleInfo = CSSComputedStyleDeclaration::create(node, true);
+    RawPtr<InspectorStyle> inspectorStyle = InspectorStyle::create(computedStyleInfo, nullptr, nullptr);
     *style = inspectorStyle->buildArrayForComputedStyle();
 
     if (!RuntimeEnabledFeatures::cssVariablesEnabled())
@@ -1118,7 +1118,7 @@
     }
 
     TrackExceptionState exceptionState;
-    m_domAgent->history()->perform(adoptRefWillBeNoop(new SetStyleSheetTextAction(inspectorStyleSheet, text)), exceptionState);
+    m_domAgent->history()->perform(new SetStyleSheetTextAction(inspectorStyleSheet, text), exceptionState);
     *errorString = InspectorDOMAgent::toErrorString(exceptionState);
     if (!inspectorStyleSheet->sourceMapURL().isEmpty())
         *sourceMapURL = inspectorStyleSheet->sourceMapURL();
@@ -1170,10 +1170,10 @@
         return;
 
     TrackExceptionState exceptionState;
-    RefPtrWillBeRawPtr<ModifyRuleAction> action = adoptRefWillBeNoop(new ModifyRuleAction(ModifyRuleAction::SetRuleSelector, inspectorStyleSheet, selectorRange, selector));
+    RawPtr<ModifyRuleAction> action = new ModifyRuleAction(ModifyRuleAction::SetRuleSelector, inspectorStyleSheet, selectorRange, selector);
     bool success = m_domAgent->history()->perform(action, exceptionState);
     if (success) {
-        RefPtrWillBeRawPtr<CSSStyleRule> rule = InspectorCSSAgent::asCSSStyleRule(action->takeRule().get());
+        RawPtr<CSSStyleRule> rule = InspectorCSSAgent::asCSSStyleRule(action->takeRule().get());
         InspectorStyleSheet* inspectorStyleSheet = inspectorStyleSheetForRule(rule.get());
         if (!inspectorStyleSheet) {
             *errorString = "Failed to get inspector style sheet for rule.";
@@ -1197,17 +1197,17 @@
         return;
 
     TrackExceptionState exceptionState;
-    RefPtrWillBeRawPtr<ModifyRuleAction> action = adoptRefWillBeNoop(new ModifyRuleAction(ModifyRuleAction::SetKeyframeKey, inspectorStyleSheet, keyRange, keyText));
+    RawPtr<ModifyRuleAction> action = new ModifyRuleAction(ModifyRuleAction::SetKeyframeKey, inspectorStyleSheet, keyRange, keyText);
     bool success = m_domAgent->history()->perform(action, exceptionState);
     if (success) {
-        RefPtrWillBeRawPtr<CSSKeyframeRule> rule = toCSSKeyframeRule(action->takeRule().get());
+        RawPtr<CSSKeyframeRule> rule = toCSSKeyframeRule(action->takeRule().get());
         InspectorStyleSheet* inspectorStyleSheet = bindStyleSheet(rule->parentStyleSheet());
         if (!inspectorStyleSheet) {
             *errorString = "Failed to get inspector style sheet for rule.";
             return;
         }
 
-        RefPtrWillBeRawPtr<CSSRuleSourceData> sourceData = inspectorStyleSheet->sourceDataForRule(rule);
+        RawPtr<CSSRuleSourceData> sourceData = inspectorStyleSheet->sourceDataForRule(rule);
         *result = protocol::CSS::Value::create()
             .setText(rule->keyText())
             .setRange(inspectorStyleSheet->buildSourceRangeObject(sourceData->ruleHeaderRange))
@@ -1217,7 +1217,7 @@
 }
 
 
-bool InspectorCSSAgent::multipleStyleTextsActions(ErrorString* errorString, PassOwnPtr<protocol::Array<protocol::CSS::StyleDeclarationEdit>> edits, HeapVector<RefPtrWillBeMember<StyleSheetAction>>* actions)
+bool InspectorCSSAgent::multipleStyleTextsActions(ErrorString* errorString, PassOwnPtr<protocol::Array<protocol::CSS::StyleDeclarationEdit>> edits, HeapVector<Member<StyleSheetAction>>* actions)
 {
     int n = edits->length();
     if (n == 0) {
@@ -1239,10 +1239,10 @@
 
         if (inspectorStyleSheet->isInlineStyle()) {
             InspectorStyleSheetForInlineStyle* inlineStyleSheet = static_cast<InspectorStyleSheetForInlineStyle*>(inspectorStyleSheet);
-            RefPtrWillBeRawPtr<SetElementStyleAction> action = adoptRefWillBeNoop(new SetElementStyleAction(inlineStyleSheet, edit->getText()));
+            RawPtr<SetElementStyleAction> action = new SetElementStyleAction(inlineStyleSheet, edit->getText());
             actions->append(action);
         } else {
-            RefPtrWillBeRawPtr<ModifyRuleAction> action = adoptRefWillBeNoop(new ModifyRuleAction(ModifyRuleAction::SetStyleText, static_cast<InspectorStyleSheet*>(inspectorStyleSheet), range, edit->getText()));
+            RawPtr<ModifyRuleAction> action = new ModifyRuleAction(ModifyRuleAction::SetStyleText, static_cast<InspectorStyleSheet*>(inspectorStyleSheet), range, edit->getText());
             actions->append(action);
         }
     }
@@ -1252,7 +1252,7 @@
 void InspectorCSSAgent::setStyleTexts(ErrorString* errorString, PassOwnPtr<protocol::Array<protocol::CSS::StyleDeclarationEdit>> edits, OwnPtr<protocol::Array<protocol::CSS::CSSStyle>>* result)
 {
     FrontendOperationScope scope;
-    HeapVector<RefPtrWillBeMember<StyleSheetAction>> actions;
+    HeapVector<Member<StyleSheetAction>> actions;
     if (!multipleStyleTextsActions(errorString, edits, &actions))
         return;
 
@@ -1261,11 +1261,11 @@
     int n = actions.size();
     OwnPtr<protocol::Array<protocol::CSS::CSSStyle>> serializedStyles = protocol::Array<protocol::CSS::CSSStyle>::create();
     for (int i = 0; i < n; ++i) {
-        RefPtrWillBeMember<StyleSheetAction> action = actions.at(i);
+        Member<StyleSheetAction> action = actions.at(i);
         bool success = action->perform(exceptionState);
         if (!success) {
             for (int j = i - 1; j >= 0; --j) {
-                RefPtrWillBeMember<StyleSheetAction> revert = actions.at(j);
+                Member<StyleSheetAction> revert = actions.at(j);
                 TrackExceptionState undoExceptionState;
                 revert->undo(undoExceptionState);
                 ASSERT(!undoExceptionState.hadException());
@@ -1277,7 +1277,7 @@
     }
 
     for (int i = 0; i < n; ++i) {
-        RefPtrWillBeMember<StyleSheetAction> action = actions.at(i);
+        Member<StyleSheetAction> action = actions.at(i);
         m_domAgent->history()->appendPerformedAction(action);
     }
     *result = serializedStyles.release();
@@ -1288,15 +1288,15 @@
     TrackExceptionState exceptionState;
     if (inspectorStyleSheet->isInlineStyle()) {
         InspectorStyleSheetForInlineStyle* inlineStyleSheet = static_cast<InspectorStyleSheetForInlineStyle*>(inspectorStyleSheet);
-        RefPtrWillBeRawPtr<SetElementStyleAction> action = adoptRefWillBeNoop(new SetElementStyleAction(inlineStyleSheet, text));
+        RawPtr<SetElementStyleAction> action = new SetElementStyleAction(inlineStyleSheet, text);
         bool success = m_domAgent->history()->perform(action, exceptionState);
         if (success)
             return inlineStyleSheet->inlineStyle();
     } else {
-        RefPtrWillBeRawPtr<ModifyRuleAction> action = adoptRefWillBeNoop(new ModifyRuleAction(ModifyRuleAction::SetStyleText, static_cast<InspectorStyleSheet*>(inspectorStyleSheet), range, text));
+        RawPtr<ModifyRuleAction> action = new ModifyRuleAction(ModifyRuleAction::SetStyleText, static_cast<InspectorStyleSheet*>(inspectorStyleSheet), range, text);
         bool success = m_domAgent->history()->perform(action, exceptionState);
         if (success) {
-            RefPtrWillBeRawPtr<CSSRule> rule = action->takeRule();
+            RawPtr<CSSRule> rule = action->takeRule();
             if (rule->type() == CSSRule::STYLE_RULE)
                 return toCSSStyleRule(rule.get())->style();
             if (rule->type() == CSSRule::KEYFRAME_RULE)
@@ -1320,10 +1320,10 @@
         return;
 
     TrackExceptionState exceptionState;
-    RefPtrWillBeRawPtr<ModifyRuleAction> action = adoptRefWillBeNoop(new ModifyRuleAction(ModifyRuleAction::SetMediaRuleText, inspectorStyleSheet, textRange, text));
+    RawPtr<ModifyRuleAction> action = new ModifyRuleAction(ModifyRuleAction::SetMediaRuleText, inspectorStyleSheet, textRange, text);
     bool success = m_domAgent->history()->perform(action, exceptionState);
     if (success) {
-        RefPtrWillBeRawPtr<CSSMediaRule> rule = InspectorCSSAgent::asCSSMediaRule(action->takeRule().get());
+        RawPtr<CSSMediaRule> rule = InspectorCSSAgent::asCSSMediaRule(action->takeRule().get());
         String sourceURL = rule->parentStyleSheet()->contents()->baseURL();
         if (sourceURL.isEmpty())
             sourceURL = InspectorDOMAgent::documentURLString(rule->parentStyleSheet()->ownerDocument());
@@ -1368,14 +1368,14 @@
         return;
 
     TrackExceptionState exceptionState;
-    RefPtrWillBeRawPtr<AddRuleAction> action = adoptRefWillBeNoop(new AddRuleAction(inspectorStyleSheet, ruleText, ruleLocation));
+    RawPtr<AddRuleAction> action = new AddRuleAction(inspectorStyleSheet, ruleText, ruleLocation);
     bool success = m_domAgent->history()->perform(action, exceptionState);
     if (!success) {
         *errorString = InspectorDOMAgent::toErrorString(exceptionState);
         return;
     }
 
-    RefPtrWillBeRawPtr<CSSStyleRule> rule = action->takeRule();
+    RawPtr<CSSStyleRule> rule = action->takeRule();
     *result = buildObjectForRule(rule.get());
 }
 
@@ -1419,17 +1419,17 @@
     }
 
     const MediaQuerySet* queries = media->queries();
-    const WillBeHeapVector<OwnPtrWillBeMember<MediaQuery>>& queryVector = queries->queryVector();
+    const HeapVector<Member<MediaQuery>>& queryVector = queries->queryVector();
     LocalFrame* frame = nullptr;
     if (parentStyleSheet) {
         if (Document* document = parentStyleSheet->ownerDocument())
             frame = document->frame();
     }
-    OwnPtrWillBeRawPtr<MediaQueryEvaluator> mediaEvaluator = adoptPtrWillBeNoop(new MediaQueryEvaluator(frame));
+    RawPtr<MediaQueryEvaluator> mediaEvaluator = new MediaQueryEvaluator(frame);
 
     InspectorStyleSheet* inspectorStyleSheet = parentStyleSheet ? m_cssStyleSheetToInspectorStyleSheet.get(parentStyleSheet) : nullptr;
     OwnPtr<protocol::Array<protocol::CSS::MediaQuery>> mediaListArray = protocol::Array<protocol::CSS::MediaQuery>::create();
-    RefPtrWillBeRawPtr<MediaValues> mediaValues = MediaValues::createDynamicIfFrameExists(frame);
+    RawPtr<MediaValues> mediaValues = MediaValues::createDynamicIfFrameExists(frame);
     bool hasMediaQueryItems = false;
     for (size_t i = 0; i < queryVector.size(); ++i) {
         MediaQuery* query = queryVector.at(i).get();
@@ -1568,7 +1568,7 @@
     if (!style)
         return nullptr;
 
-    RefPtrWillBeRawPtr<InspectorStyleSheetForInlineStyle> inspectorStyleSheet = InspectorStyleSheetForInlineStyle::create(element, this);
+    RawPtr<InspectorStyleSheetForInlineStyle> inspectorStyleSheet = InspectorStyleSheetForInlineStyle::create(element, this);
     m_idToInspectorStyleSheetForInlineStyle.set(inspectorStyleSheet->id(), inspectorStyleSheet);
     m_nodeToInspectorStyleSheet.set(element, inspectorStyleSheet);
     return inspectorStyleSheet.get();
@@ -1589,9 +1589,9 @@
 }
 
 // static
-void InspectorCSSAgent::collectAllDocumentStyleSheets(Document* document, WillBeHeapVector<RawPtrWillBeMember<CSSStyleSheet>>& result)
+void InspectorCSSAgent::collectAllDocumentStyleSheets(Document* document, HeapVector<Member<CSSStyleSheet>>& result)
 {
-    const WillBeHeapVector<RefPtrWillBeMember<CSSStyleSheet>> activeStyleSheets = document->styleEngine().activeStyleSheetsForInspector();
+    const HeapVector<Member<CSSStyleSheet>> activeStyleSheets = document->styleEngine().activeStyleSheetsForInspector();
     for (const auto& style : activeStyleSheets) {
         CSSStyleSheet* styleSheet = style.get();
         InspectorCSSAgent::collectStyleSheets(styleSheet, result);
@@ -1599,7 +1599,7 @@
 }
 
 // static
-void InspectorCSSAgent::collectStyleSheets(CSSStyleSheet* styleSheet, WillBeHeapVector<RawPtrWillBeMember<CSSStyleSheet>>& result)
+void InspectorCSSAgent::collectStyleSheets(CSSStyleSheet* styleSheet, HeapVector<Member<CSSStyleSheet>>& result)
 {
     result.append(styleSheet);
     for (unsigned i = 0, size = styleSheet->length(); i < size; ++i) {
@@ -1614,7 +1614,7 @@
 
 InspectorStyleSheet* InspectorCSSAgent::bindStyleSheet(CSSStyleSheet* styleSheet)
 {
-    RefPtrWillBeRawPtr<InspectorStyleSheet> inspectorStyleSheet = m_cssStyleSheetToInspectorStyleSheet.get(styleSheet);
+    RawPtr<InspectorStyleSheet> inspectorStyleSheet = m_cssStyleSheetToInspectorStyleSheet.get(styleSheet);
     if (!inspectorStyleSheet) {
         Document* document = styleSheet->ownerDocument();
         inspectorStyleSheet = InspectorStyleSheet::create(m_resourceAgent, styleSheet, detectOrigin(styleSheet, document), InspectorDOMAgent::documentURLString(document), this);
@@ -1665,12 +1665,12 @@
     if (!document->isHTMLDocument() && !document->isSVGDocument())
         return nullptr;
 
-    RefPtrWillBeRawPtr<InspectorStyleSheet> inspectorStyleSheet = m_documentToViaInspectorStyleSheet.get(document);
+    RawPtr<InspectorStyleSheet> inspectorStyleSheet = m_documentToViaInspectorStyleSheet.get(document);
     if (inspectorStyleSheet || !createIfAbsent)
         return inspectorStyleSheet.get();
 
     TrackExceptionState exceptionState;
-    RefPtrWillBeRawPtr<Element> styleElement = document->createElement("style", exceptionState);
+    RawPtr<Element> styleElement = document->createElement("style", exceptionState);
     if (!exceptionState.hadException())
         styleElement->setAttribute("type", "text/css", exceptionState);
     if (!exceptionState.hadException()) {
@@ -1768,7 +1768,7 @@
     if (!ruleList)
         return result.release();
 
-    WillBeHeapVector<RefPtrWillBeMember<CSSStyleRule>> uniqRules = filterDuplicateRules(ruleList);
+    HeapVector<Member<CSSStyleRule>> uniqRules = filterDuplicateRules(ruleList);
     for (unsigned i = 0; i < uniqRules.size(); ++i) {
         CSSStyleRule* rule = uniqRules.at(i).get();
         OwnPtr<protocol::CSS::CSSRule> ruleObject = buildObjectForRule(rule);
@@ -1810,7 +1810,7 @@
 
     MutableStylePropertySet* mutableAttributeStyle = toMutableStylePropertySet(attributeStyle);
 
-    RefPtrWillBeRawPtr<InspectorStyle> inspectorStyle = InspectorStyle::create(mutableAttributeStyle->ensureCSSStyleDeclaration(), nullptr, nullptr);
+    RawPtr<InspectorStyle> inspectorStyle = InspectorStyle::create(mutableAttributeStyle->ensureCSSStyleDeclaration(), nullptr, nullptr);
     return inspectorStyle->buildObjectForStyle();
 }
 
@@ -1871,7 +1871,7 @@
 
 void InspectorCSSAgent::resetPseudoStates()
 {
-    WillBeHeapHashSet<RawPtrWillBeMember<Document>> documentsToChange;
+    HeapHashSet<Member<Document>> documentsToChange;
     for (auto& state : m_nodeIdToForcedPseudoState) {
         Element* element = toElement(m_domAgent->nodeForId(state.key));
         if (element && element->ownerDocument())
@@ -1883,7 +1883,7 @@
         document->setNeedsStyleRecalc(SubtreeStyleChange, StyleChangeReasonForTracing::create(StyleChangeReason::Inspector));
 }
 
-WillBeHeapVector<RefPtrWillBeMember<CSSStyleDeclaration>> InspectorCSSAgent::matchingStyles(Element* element)
+HeapVector<Member<CSSStyleDeclaration>> InspectorCSSAgent::matchingStyles(Element* element)
 {
     PseudoId pseudoId = element->getPseudoId();
     if (pseudoId)
@@ -1891,8 +1891,8 @@
     StyleResolver& styleResolver = element->ownerDocument()->ensureStyleResolver();
     element->updateDistribution();
 
-    WillBeHeapVector<RefPtrWillBeMember<CSSStyleRule>> rules = filterDuplicateRules(styleResolver.pseudoCSSRulesForElement(element, pseudoId, StyleResolver::AllCSSRules));
-    WillBeHeapVector<RefPtrWillBeMember<CSSStyleDeclaration>> styles;
+    HeapVector<Member<CSSStyleRule>> rules = filterDuplicateRules(styleResolver.pseudoCSSRulesForElement(element, pseudoId, StyleResolver::AllCSSRules));
+    HeapVector<Member<CSSStyleDeclaration>> styles;
     if (!pseudoId && element->style())
         styles.append(element->style());
     for (unsigned i = rules.size(); i > 0; --i) {
@@ -1904,13 +1904,13 @@
     return styles;
 }
 
-PassRefPtrWillBeRawPtr<CSSStyleDeclaration> InspectorCSSAgent::findEffectiveDeclaration(CSSPropertyID propertyId, const WillBeHeapVector<RefPtrWillBeMember<CSSStyleDeclaration>>& styles)
+RawPtr<CSSStyleDeclaration> InspectorCSSAgent::findEffectiveDeclaration(CSSPropertyID propertyId, const HeapVector<Member<CSSStyleDeclaration>>& styles)
 {
     if (!styles.size())
         return nullptr;
 
     String longhand = getPropertyNameString(propertyId);
-    RefPtrWillBeRawPtr<CSSStyleDeclaration> foundStyle = nullptr;
+    RawPtr<CSSStyleDeclaration> foundStyle = nullptr;
 
     for (unsigned i = 0; i < styles.size(); ++i) {
         CSSStyleDeclaration* style = styles.at(i).get();
@@ -1925,10 +1925,10 @@
     return foundStyle ? foundStyle.get() : styles.at(0).get();
 }
 
-void InspectorCSSAgent::setLayoutEditorValue(ErrorString* errorString, Element* element, RefPtrWillBeRawPtr<CSSStyleDeclaration> style, CSSPropertyID propertyId, const String& value, bool forceImportant)
+void InspectorCSSAgent::setLayoutEditorValue(ErrorString* errorString, Element* element, RawPtr<CSSStyleDeclaration> style, CSSPropertyID propertyId, const String& value, bool forceImportant)
 {
     InspectorStyleSheetBase* inspectorStyleSheet =  nullptr;
-    RefPtrWillBeRawPtr<CSSRuleSourceData> sourceData = nullptr;
+    RawPtr<CSSRuleSourceData> sourceData = nullptr;
     // An absence of the parent rule means that given style is an inline style.
     if (style->parentRule()) {
         InspectorStyleSheet* styleSheet = bindStyleSheet(style->parentStyleSheet());
@@ -1952,7 +1952,7 @@
     String longhand = getPropertyNameString(propertyId);
 
     int foundIndex = -1;
-    WillBeHeapVector<CSSPropertySourceData> properties = sourceData->styleSourceData->propertyData;
+    HeapVector<CSSPropertySourceData> properties = sourceData->styleSourceData->propertyData;
     for (unsigned i = 0; i < properties.size(); ++i) {
         CSSPropertySourceData property = properties[properties.size() - i - 1];
         String name = property.name;
@@ -1999,10 +1999,10 @@
         frontend()->layoutEditorChange(inspectorStyleSheet->id(), inspectorStyleSheet->buildSourceRangeObject(changeRange));
 }
 
-void InspectorCSSAgent::layoutEditorItemSelected(Element* element, RefPtrWillBeRawPtr<CSSStyleDeclaration> style)
+void InspectorCSSAgent::layoutEditorItemSelected(Element* element, RawPtr<CSSStyleDeclaration> style)
 {
     InspectorStyleSheetBase* inspectorStyleSheet =  nullptr;
-    RefPtrWillBeRawPtr<CSSRuleSourceData> sourceData = nullptr;
+    RawPtr<CSSRuleSourceData> sourceData = nullptr;
     if (style->parentRule()) {
         InspectorStyleSheet* styleSheet = bindStyleSheet(style->parentStyleSheet());
         inspectorStyleSheet = styleSheet;
@@ -2037,7 +2037,7 @@
     }
 
     CSSPropertyID propertyId = cssPropertyID(propertyName);
-    RefPtrWillBeRawPtr<CSSStyleDeclaration> style = findEffectiveDeclaration(propertyId, matchingStyles(element));
+    RawPtr<CSSStyleDeclaration> style = findEffectiveDeclaration(propertyId, matchingStyles(element));
     if (!style) {
         *errorString = "Can't find a style to edit";
         return;
@@ -2067,7 +2067,7 @@
     if (textBounds.size().isEmpty())
         return;
 
-    WillBeHeapVector<Color> colors;
+    HeapVector<Color> colors;
     FrameView* view = element->document().view();
     if (!view) {
         *errorString = "No view.";
diff --git a/third_party/WebKit/Source/core/inspector/InspectorCSSAgent.h b/third_party/WebKit/Source/core/inspector/InspectorCSSAgent.h
index 04c49595..c69d0321 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorCSSAgent.h
+++ b/third_party/WebKit/Source/core/inspector/InspectorCSSAgent.h
@@ -64,7 +64,7 @@
     , public protocol::Backend::CSS
     , public InspectorStyleSheetBase::Listener {
     WTF_MAKE_NONCOPYABLE(InspectorCSSAgent);
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(InspectorCSSAgent);
+    USING_GARBAGE_COLLECTED_MIXIN(InspectorCSSAgent);
 public:
     enum MediaListSource {
         MediaListSourceLinkedSheet,
@@ -93,18 +93,18 @@
         }
 
     private:
-        RawPtrWillBeMember<ContentSecurityPolicy> m_contentSecurityPolicy;
+        Member<ContentSecurityPolicy> m_contentSecurityPolicy;
     };
 
     static CSSStyleRule* asCSSStyleRule(CSSRule*);
     static CSSMediaRule* asCSSMediaRule(CSSRule*);
 
-    static PassOwnPtrWillBeRawPtr<InspectorCSSAgent> create(InspectorDOMAgent* domAgent, InspectedFrames* inspectedFrames, InspectorResourceAgent* resourceAgent, InspectorResourceContentLoader* resourceContentLoader)
+    static RawPtr<InspectorCSSAgent> create(InspectorDOMAgent* domAgent, InspectedFrames* inspectedFrames, InspectorResourceAgent* resourceAgent, InspectorResourceContentLoader* resourceContentLoader)
     {
-        return adoptPtrWillBeNoop(new InspectorCSSAgent(domAgent, inspectedFrames, resourceAgent, resourceContentLoader));
+        return new InspectorCSSAgent(domAgent, inspectedFrames, resourceAgent, resourceContentLoader);
     }
 
-    static void collectAllDocumentStyleSheets(Document*, WillBeHeapVector<RawPtrWillBeMember<CSSStyleSheet>>&);
+    static void collectAllDocumentStyleSheets(Document*, HeapVector<Member<CSSStyleSheet>>&);
 
     ~InspectorCSSAgent() override;
     DECLARE_VIRTUAL_TRACE();
@@ -150,11 +150,11 @@
     PassOwnPtr<protocol::CSS::CSSMedia> buildMediaObject(const MediaList*, MediaListSource, const String&, CSSStyleSheet*);
     PassOwnPtr<protocol::Array<protocol::CSS::CSSMedia>> buildMediaListChain(CSSRule*);
 
-    PassRefPtrWillBeRawPtr<CSSStyleDeclaration> findEffectiveDeclaration(CSSPropertyID, const WillBeHeapVector<RefPtrWillBeMember<CSSStyleDeclaration>>& styles);
-    void setLayoutEditorValue(ErrorString*, Element*, RefPtrWillBeRawPtr<CSSStyleDeclaration>, CSSPropertyID, const String& value, bool forceImportant = false);
-    void layoutEditorItemSelected(Element*, RefPtrWillBeRawPtr<CSSStyleDeclaration>);
+    RawPtr<CSSStyleDeclaration> findEffectiveDeclaration(CSSPropertyID, const HeapVector<Member<CSSStyleDeclaration>>& styles);
+    void setLayoutEditorValue(ErrorString*, Element*, RawPtr<CSSStyleDeclaration>, CSSPropertyID, const String& value, bool forceImportant = false);
+    void layoutEditorItemSelected(Element*, RawPtr<CSSStyleDeclaration>);
 
-    WillBeHeapVector<RefPtrWillBeMember<CSSStyleDeclaration>> matchingStyles(Element*);
+    HeapVector<Member<CSSStyleDeclaration>> matchingStyles(Element*);
     String styleSheetId(CSSStyleSheet*);
 private:
     class StyleSheetAction;
@@ -163,13 +163,13 @@
     class SetElementStyleAction;
     class AddRuleAction;
 
-    static void collectStyleSheets(CSSStyleSheet*, WillBeHeapVector<RawPtrWillBeMember<CSSStyleSheet>>&);
+    static void collectStyleSheets(CSSStyleSheet*, HeapVector<Member<CSSStyleSheet>>&);
 
     InspectorCSSAgent(InspectorDOMAgent*, InspectedFrames*, InspectorResourceAgent*, InspectorResourceContentLoader*);
 
-    typedef WillBeHeapHashMap<String, RefPtrWillBeMember<InspectorStyleSheet>> IdToInspectorStyleSheet;
-    typedef WillBeHeapHashMap<String, RefPtrWillBeMember<InspectorStyleSheetForInlineStyle>> IdToInspectorStyleSheetForInlineStyle;
-    typedef WillBeHeapHashMap<RawPtrWillBeMember<Node>, RefPtrWillBeMember<InspectorStyleSheetForInlineStyle>> NodeToInspectorStyleSheet; // bogus "stylesheets" with elements' inline styles
+    typedef HeapHashMap<String, Member<InspectorStyleSheet>> IdToInspectorStyleSheet;
+    typedef HeapHashMap<String, Member<InspectorStyleSheetForInlineStyle>> IdToInspectorStyleSheetForInlineStyle;
+    typedef HeapHashMap<Member<Node>, Member<InspectorStyleSheetForInlineStyle>> NodeToInspectorStyleSheet; // bogus "stylesheets" with elements' inline styles
     typedef HashMap<int, unsigned> NodeIdToForcedPseudoState;
 
     void resourceContentLoaded(PassOwnPtr<EnableCallback>);
@@ -179,9 +179,9 @@
     Element* elementForId(ErrorString*, int nodeId);
 
     void updateActiveStyleSheets(Document*, StyleSheetsUpdateType);
-    void setActiveStyleSheets(Document*, const WillBeHeapVector<RawPtrWillBeMember<CSSStyleSheet>>&, StyleSheetsUpdateType);
+    void setActiveStyleSheets(Document*, const HeapVector<Member<CSSStyleSheet>>&, StyleSheetsUpdateType);
     CSSStyleDeclaration* setStyleText(ErrorString*, InspectorStyleSheetBase*, const SourceRange&, const String&);
-    bool multipleStyleTextsActions(ErrorString*, PassOwnPtr<protocol::Array<protocol::CSS::StyleDeclarationEdit>>, HeapVector<RefPtrWillBeMember<StyleSheetAction>>* actions);
+    bool multipleStyleTextsActions(ErrorString*, PassOwnPtr<protocol::Array<protocol::CSS::StyleDeclarationEdit>>, HeapVector<Member<StyleSheetAction>>* actions);
 
     PassOwnPtr<protocol::Array<protocol::CSS::CSSKeyframesRule>> animationsForNode(Element*);
 
@@ -212,23 +212,23 @@
 
     void resetPseudoStates();
 
-    RawPtrWillBeMember<InspectorDOMAgent> m_domAgent;
-    RawPtrWillBeMember<InspectedFrames> m_inspectedFrames;
-    RawPtrWillBeMember<InspectorResourceAgent> m_resourceAgent;
-    RawPtrWillBeMember<InspectorResourceContentLoader> m_resourceContentLoader;
+    Member<InspectorDOMAgent> m_domAgent;
+    Member<InspectedFrames> m_inspectedFrames;
+    Member<InspectorResourceAgent> m_resourceAgent;
+    Member<InspectorResourceContentLoader> m_resourceContentLoader;
 
     IdToInspectorStyleSheet m_idToInspectorStyleSheet;
     IdToInspectorStyleSheetForInlineStyle m_idToInspectorStyleSheetForInlineStyle;
-    WillBeHeapHashMap<RawPtrWillBeMember<CSSStyleSheet>, RefPtrWillBeMember<InspectorStyleSheet>> m_cssStyleSheetToInspectorStyleSheet;
-    typedef WillBeHeapHashMap<RawPtrWillBeMember<Document>, OwnPtrWillBeMember<WillBeHeapHashSet<RawPtrWillBeMember<CSSStyleSheet>>>> DocumentStyleSheets;
+    HeapHashMap<Member<CSSStyleSheet>, Member<InspectorStyleSheet>> m_cssStyleSheetToInspectorStyleSheet;
+    typedef HeapHashMap<Member<Document>, Member<HeapHashSet<Member<CSSStyleSheet>>>> DocumentStyleSheets;
     DocumentStyleSheets m_documentToCSSStyleSheets;
-    WillBeHeapHashSet<RawPtrWillBeMember<Document>> m_invalidatedDocuments;
+    HeapHashSet<Member<Document>> m_invalidatedDocuments;
 
     NodeToInspectorStyleSheet m_nodeToInspectorStyleSheet;
-    WillBeHeapHashMap<RefPtrWillBeMember<Document>, RefPtrWillBeMember<InspectorStyleSheet>> m_documentToViaInspectorStyleSheet; // "via inspector" stylesheets
+    HeapHashMap<Member<Document>, Member<InspectorStyleSheet>> m_documentToViaInspectorStyleSheet; // "via inspector" stylesheets
     NodeIdToForcedPseudoState m_nodeIdToForcedPseudoState;
 
-    RefPtrWillBeMember<CSSStyleSheet> m_inspectorUserAgentStyleSheet;
+    Member<CSSStyleSheet> m_inspectorUserAgentStyleSheet;
     HashMap<String, String> m_editedStyleSheets;
     HashMap<int, String> m_editedStyleElements;
 
diff --git a/third_party/WebKit/Source/core/inspector/InspectorConsoleAgent.cpp b/third_party/WebKit/Source/core/inspector/InspectorConsoleAgent.cpp
index 4e89947f..0ce28eff 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorConsoleAgent.cpp
+++ b/third_party/WebKit/Source/core/inspector/InspectorConsoleAgent.cpp
@@ -70,7 +70,7 @@
 
     ConsoleMessageStorage* storage = messageStorage();
     if (storage->expiredCount()) {
-        RefPtrWillBeRawPtr<ConsoleMessage> expiredMessage = ConsoleMessage::create(OtherMessageSource, WarningMessageLevel, String::format("%d console messages are not shown.", storage->expiredCount()));
+        RawPtr<ConsoleMessage> expiredMessage = ConsoleMessage::create(OtherMessageSource, WarningMessageLevel, String::format("%d console messages are not shown.", storage->expiredCount()));
         expiredMessage->setTimestamp(0);
         sendConsoleMessageToFrontend(expiredMessage.get(), false);
     }
@@ -194,7 +194,7 @@
         jsonObj->setExecutionContextId(scriptState->contextIdInDebugger());
     if (consoleMessage->source() == NetworkMessageSource && consoleMessage->requestIdentifier())
         jsonObj->setNetworkRequestId(IdentifiersFactory::requestId(consoleMessage->requestIdentifier()));
-    RefPtrWillBeRawPtr<ScriptArguments> arguments = consoleMessage->scriptArguments();
+    RawPtr<ScriptArguments> arguments = consoleMessage->scriptArguments();
     if (arguments && arguments->argumentCount()) {
         ScriptState::Scope scope(arguments->getScriptState());
         v8::Local<v8::Context> context = arguments->getScriptState()->context();
diff --git a/third_party/WebKit/Source/core/inspector/InspectorDOMAgent.cpp b/third_party/WebKit/Source/core/inspector/InspectorDOMAgent.cpp
index e2d328a..85a2bdb 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorDOMAgent.cpp
+++ b/third_party/WebKit/Source/core/inspector/InspectorDOMAgent.cpp
@@ -141,8 +141,7 @@
 
 } // namespace
 
-class InspectorRevalidateDOMTask final : public NoBaseWillBeGarbageCollectedFinalized<InspectorRevalidateDOMTask> {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(InspectorRevalidateDOMTask);
+class InspectorRevalidateDOMTask final : public GarbageCollectedFinalized<InspectorRevalidateDOMTask> {
 public:
     explicit InspectorRevalidateDOMTask(InspectorDOMAgent*);
     void scheduleStyleAttrRevalidationFor(Element*);
@@ -151,9 +150,9 @@
     DECLARE_TRACE();
 
 private:
-    RawPtrWillBeMember<InspectorDOMAgent> m_domAgent;
+    Member<InspectorDOMAgent> m_domAgent;
     Timer<InspectorRevalidateDOMTask> m_timer;
-    WillBeHeapHashSet<RefPtrWillBeMember<Element>> m_styleAttrInvalidatedElements;
+    HeapHashSet<Member<Element>> m_styleAttrInvalidatedElements;
 };
 
 InspectorRevalidateDOMTask::InspectorRevalidateDOMTask(InspectorDOMAgent* domAgent)
@@ -172,7 +171,7 @@
 void InspectorRevalidateDOMTask::onTimer(Timer<InspectorRevalidateDOMTask>*)
 {
     // The timer is stopped on m_domAgent destruction, so this method will never be called after m_domAgent has been destroyed.
-    WillBeHeapVector<RawPtrWillBeMember<Element>> elements;
+    HeapVector<Member<Element>> elements;
     for (auto& attribute : m_styleAttrInvalidatedElements)
         elements.append(attribute.get());
     m_domAgent->styleAttributeInvalidated(elements);
@@ -254,7 +253,7 @@
     , m_runtimeAgent(runtimeAgent)
     , m_client(client)
     , m_domListener(nullptr)
-    , m_documentNodeToIdMap(adoptPtrWillBeNoop(new NodeToIdMap()))
+    , m_documentNodeToIdMap(new NodeToIdMap())
     , m_lastNodeId(1)
     , m_suppressAttributeModifiedEvent(false)
     , m_backendNodeIdToInspect(0)
@@ -275,9 +274,9 @@
     innerEnable();
 }
 
-WillBeHeapVector<RawPtrWillBeMember<Document>> InspectorDOMAgent::documents()
+HeapVector<Member<Document>> InspectorDOMAgent::documents()
 {
-    WillBeHeapVector<RawPtrWillBeMember<Document>> result;
+    HeapVector<Member<Document>> result;
     if (m_document) {
         for (LocalFrame* frame : *m_inspectedFrames) {
             if (Document* document = frame->document())
@@ -487,8 +486,8 @@
 void InspectorDOMAgent::innerEnable()
 {
     m_state->setBoolean(DOMAgentState::domAgentEnabled, true);
-    m_history = adoptPtrWillBeNoop(new InspectorHistory());
-    m_domEditor = adoptPtrWillBeNoop(new DOMEditor(m_history.get()));
+    m_history = new InspectorHistory();
+    m_domEditor = new DOMEditor(m_history.get());
     m_document = m_inspectedFrames->root()->document();
     m_instrumentingAgents->setInspectorDOMAgent(this);
     if (m_backendNodeIdToInspect)
@@ -586,7 +585,7 @@
     if (!id)
         return nullptr;
 
-    WillBeHeapHashMap<int, RawPtrWillBeMember<Node>>::iterator it = m_idToNode.find(id);
+    HeapHashMap<int, Member<Node>>::iterator it = m_idToNode.find(id);
     if (it != m_idToNode.end())
         return it->value;
     return nullptr;
@@ -613,7 +612,7 @@
         return;
 
     TrackExceptionState exceptionState;
-    RefPtrWillBeRawPtr<Element> element = toContainerNode(node)->querySelector(AtomicString(selectors), exceptionState);
+    RawPtr<Element> element = toContainerNode(node)->querySelector(AtomicString(selectors), exceptionState);
     if (exceptionState.hadException()) {
         *errorString = "DOM Error while querying";
         return;
@@ -630,7 +629,7 @@
         return;
 
     TrackExceptionState exceptionState;
-    RefPtrWillBeRawPtr<StaticElementList> elements = toContainerNode(node)->querySelectorAll(AtomicString(selectors), exceptionState);
+    RawPtr<StaticElementList> elements = toContainerNode(node)->querySelectorAll(AtomicString(selectors), exceptionState);
     if (exceptionState.hadException()) {
         *errorString = "DOM Error while querying";
         return;
@@ -657,7 +656,7 @@
         return result;
 
     Node* node = nodeToPush;
-    WillBeHeapVector<RawPtrWillBeMember<Node>> path;
+    HeapVector<Member<Node>> path;
 
     while (true) {
         Node* parent = innerParentNode(node);
@@ -691,7 +690,7 @@
         node = parent;
 
     // Node being pushed is detached -> push subtree root.
-    OwnPtrWillBeRawPtr<NodeToIdMap> newMap = adoptPtrWillBeNoop(new NodeToIdMap);
+    RawPtr<NodeToIdMap> newMap = adoptPtrWillBeNoop(new NodeToIdMap);
     NodeToIdMap* danglingMap = newMap.get();
     m_danglingNodeToIdMaps.append(newMap.release());
     OwnPtr<protocol::Array<protocol::DOM::Node>> children = protocol::Array<protocol::DOM::Node>::create();
@@ -722,7 +721,7 @@
         return;
 
     String markup = "<span " + text + "></span>";
-    RefPtrWillBeRawPtr<DocumentFragment> fragment = element->document().createDocumentFragment();
+    RawPtr<DocumentFragment> fragment = element->document().createDocumentFragment();
 
     bool shouldIgnoreCase = element->document().isHTMLDocument() && element->isHTMLElement();
     // Not all elements can represent the context (i.e. IFRAME), hence using document.body.
@@ -793,7 +792,7 @@
         return;
 
     TrackExceptionState exceptionState;
-    RefPtrWillBeRawPtr<Element> newElem = oldNode->document().createElement(AtomicString(tagName), exceptionState);
+    RawPtr<Element> newElem = oldNode->document().createElement(AtomicString(tagName), exceptionState);
     if (exceptionState.hadException())
         return;
 
@@ -940,8 +939,8 @@
     if (endQuoteFound)
         attributeQuery = attributeQuery.left(attributeQuery.length() - 1);
 
-    WillBeHeapVector<RawPtrWillBeMember<Document>> docs = documents();
-    WillBeHeapListHashSet<RawPtrWillBeMember<Node>> resultCollector;
+    HeapVector<Member<Document>> docs = documents();
+    HeapListHashSet<Member<Node>> resultCollector;
 
     for (Document* document : docs) {
         Node* documentElement = document->documentElement();
@@ -1015,7 +1014,7 @@
         // Selector evaluation
         for (Document* document : docs) {
             TrackExceptionState exceptionState;
-            RefPtrWillBeRawPtr<StaticElementList> elementList = document->querySelectorAll(AtomicString(whitespaceTrimmedQuery), exceptionState);
+            RawPtr<StaticElementList> elementList = document->querySelectorAll(AtomicString(whitespaceTrimmedQuery), exceptionState);
             if (exceptionState.hadException() || !elementList)
                 continue;
 
@@ -1026,7 +1025,7 @@
     }
 
     *searchId = IdentifiersFactory::createIdentifier();
-    WillBeHeapVector<RefPtrWillBeMember<Node>>* resultsIt = &m_searchResults.add(*searchId, WillBeHeapVector<RefPtrWillBeMember<Node>>()).storedValue->value;
+    HeapVector<Member<Node>>* resultsIt = &m_searchResults.add(*searchId, HeapVector<Member<Node>>()).storedValue->value;
 
     for (auto& result : resultCollector)
         resultsIt->append(result);
@@ -1254,7 +1253,7 @@
     }
 
     // The clone is deep by default.
-    RefPtrWillBeRawPtr<Node> clonedNode = node->cloneNode(true);
+    RawPtr<Node> clonedNode = node->cloneNode(true);
     if (!clonedNode) {
         *errorString = "Failed to clone node";
         return;
@@ -1806,7 +1805,7 @@
     frontend()->attributeRemoved(id, name.toString());
 }
 
-void InspectorDOMAgent::styleAttributeInvalidated(const WillBeHeapVector<RawPtrWillBeMember<Element>>& elements)
+void InspectorDOMAgent::styleAttributeInvalidated(const HeapVector<Member<Element>>& elements)
 {
     OwnPtr<protocol::Array<int>> nodeIds = protocol::Array<int>::create();
     for (unsigned i = 0, size = elements.size(); i < size; ++i) {
@@ -1834,10 +1833,10 @@
     frontend()->characterDataModified(id, characterData->data());
 }
 
-RawPtrWillBeMember<InspectorRevalidateDOMTask> InspectorDOMAgent::revalidateTask()
+Member<InspectorRevalidateDOMTask> InspectorDOMAgent::revalidateTask()
 {
     if (!m_revalidateTask)
-        m_revalidateTask = adoptPtrWillBeNoop(new InspectorRevalidateDOMTask(this));
+        m_revalidateTask = new InspectorRevalidateDOMTask(this);
     return m_revalidateTask.get();
 }
 
@@ -1882,7 +1881,7 @@
         return;
 
     for (ShadowRoot* root = shadowHost->youngestShadowRoot(); root; root = root->olderShadowRoot()) {
-        const WillBeHeapVector<RefPtrWillBeMember<InsertionPoint>>& insertionPoints = root->descendantInsertionPoints();
+        const HeapVector<Member<InsertionPoint>>& insertionPoints = root->descendantInsertionPoints();
         for (const auto& it : insertionPoints) {
             InsertionPoint* insertionPoint = it.get();
             int insertionPointId = m_documentNodeToIdMap->get(insertionPoint);
diff --git a/third_party/WebKit/Source/core/inspector/InspectorDOMAgent.h b/third_party/WebKit/Source/core/inspector/InspectorDOMAgent.h
index 07887f2f..6580839 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorDOMAgent.h
+++ b/third_party/WebKit/Source/core/inspector/InspectorDOMAgent.h
@@ -73,7 +73,7 @@
 class CORE_EXPORT InspectorDOMAgent final : public InspectorBaseAgent<InspectorDOMAgent, protocol::Frontend::DOM>, public protocol::Backend::DOM {
     WTF_MAKE_NONCOPYABLE(InspectorDOMAgent);
 public:
-    struct CORE_EXPORT DOMListener : public WillBeGarbageCollectedMixin {
+    struct CORE_EXPORT DOMListener : public GarbageCollectedMixin {
         virtual ~DOMListener()
         {
         }
@@ -94,9 +94,9 @@
         virtual void setInspectedNode(Node*) { }
     };
 
-    static PassOwnPtrWillBeRawPtr<InspectorDOMAgent> create(v8::Isolate* isolate, InspectedFrames* inspectedFrames, V8RuntimeAgent* runtimeAgent, Client* client)
+    static RawPtr<InspectorDOMAgent> create(v8::Isolate* isolate, InspectedFrames* inspectedFrames, V8RuntimeAgent* runtimeAgent, Client* client)
     {
-        return adoptPtrWillBeNoop(new InspectorDOMAgent(isolate, inspectedFrames, runtimeAgent, client));
+        return new InspectorDOMAgent(isolate, inspectedFrames, runtimeAgent, client);
     }
 
     static String toErrorString(ExceptionState&);
@@ -108,7 +108,7 @@
 
     void restore() override;
 
-    WillBeHeapVector<RawPtrWillBeMember<Document>> documents();
+    HeapVector<Member<Document>> documents();
     void reset();
 
     // Methods called from the frontend for DOM nodes inspection.
@@ -164,7 +164,7 @@
     void willModifyDOMAttr(Element*, const AtomicString& oldValue, const AtomicString& newValue);
     void didModifyDOMAttr(Element*, const QualifiedName&, const AtomicString& value);
     void didRemoveDOMAttr(Element*, const QualifiedName&);
-    void styleAttributeInvalidated(const WillBeHeapVector<RawPtrWillBeMember<Element>>& elements);
+    void styleAttributeInvalidated(const HeapVector<Member<Element>>& elements);
     void characterDataModified(CharacterData*);
     void didInvalidateStyleAttr(Node*);
     void didPushShadowRoot(Element* host, ShadowRoot*);
@@ -209,7 +209,7 @@
     PassOwnPtr<InspectorHighlightConfig> highlightConfigFromInspectorObject(ErrorString*, const Maybe<protocol::DOM::HighlightConfig>& highlightInspectorObject);
 
     // Node-related methods.
-    typedef WillBeHeapHashMap<RefPtrWillBeMember<Node>, int> NodeToIdMap;
+    typedef HeapHashMap<Member<Node>, int> NodeToIdMap;
     int bind(Node*, NodeToIdMap*);
     void unbind(Node*, NodeToIdMap*);
 
@@ -238,28 +238,28 @@
 
     bool pushDocumentUponHandlelessOperation(ErrorString*);
 
-    RawPtrWillBeMember<InspectorRevalidateDOMTask> revalidateTask();
+    Member<InspectorRevalidateDOMTask> revalidateTask();
 
     v8::Isolate* m_isolate;
-    RawPtrWillBeMember<InspectedFrames> m_inspectedFrames;
+    Member<InspectedFrames> m_inspectedFrames;
     V8RuntimeAgent* m_runtimeAgent;
     Client* m_client;
-    RawPtrWillBeMember<DOMListener> m_domListener;
-    OwnPtrWillBeMember<NodeToIdMap> m_documentNodeToIdMap;
+    Member<DOMListener> m_domListener;
+    Member<NodeToIdMap> m_documentNodeToIdMap;
     // Owns node mappings for dangling nodes.
-    WillBeHeapVector<OwnPtrWillBeMember<NodeToIdMap>> m_danglingNodeToIdMaps;
-    WillBeHeapHashMap<int, RawPtrWillBeMember<Node>> m_idToNode;
-    WillBeHeapHashMap<int, RawPtrWillBeMember<NodeToIdMap>> m_idToNodesMap;
+    HeapVector<Member<NodeToIdMap>> m_danglingNodeToIdMaps;
+    HeapHashMap<int, Member<Node>> m_idToNode;
+    HeapHashMap<int, Member<NodeToIdMap>> m_idToNodesMap;
     HashSet<int> m_childrenRequested;
     HashSet<int> m_distributedNodesRequested;
     HashMap<int, int> m_cachedChildCount;
     int m_lastNodeId;
-    RefPtrWillBeMember<Document> m_document;
-    typedef WillBeHeapHashMap<String, WillBeHeapVector<RefPtrWillBeMember<Node>>> SearchResults;
+    Member<Document> m_document;
+    typedef HeapHashMap<String, HeapVector<Member<Node>>> SearchResults;
     SearchResults m_searchResults;
-    OwnPtrWillBeMember<InspectorRevalidateDOMTask> m_revalidateTask;
-    OwnPtrWillBeMember<InspectorHistory> m_history;
-    OwnPtrWillBeMember<DOMEditor> m_domEditor;
+    Member<InspectorRevalidateDOMTask> m_revalidateTask;
+    Member<InspectorHistory> m_history;
+    Member<DOMEditor> m_domEditor;
     bool m_suppressAttributeModifiedEvent;
     int m_backendNodeIdToInspect;
 };
diff --git a/third_party/WebKit/Source/core/inspector/InspectorDOMDebuggerAgent.cpp b/third_party/WebKit/Source/core/inspector/InspectorDOMDebuggerAgent.cpp
index 9cb4c9a..ee58ce9 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorDOMDebuggerAgent.cpp
+++ b/third_party/WebKit/Source/core/inspector/InspectorDOMDebuggerAgent.cpp
@@ -84,9 +84,9 @@
 static const char enabled[] = "enabled";
 }
 
-PassOwnPtrWillBeRawPtr<InspectorDOMDebuggerAgent> InspectorDOMDebuggerAgent::create(v8::Isolate* isolate, InspectorDOMAgent* domAgent, V8RuntimeAgent* runtimeAgent, V8DebuggerAgent* debuggerAgent)
+RawPtr<InspectorDOMDebuggerAgent> InspectorDOMDebuggerAgent::create(v8::Isolate* isolate, InspectorDOMAgent* domAgent, V8RuntimeAgent* runtimeAgent, V8DebuggerAgent* debuggerAgent)
 {
-    return adoptPtrWillBeNoop(new InspectorDOMDebuggerAgent(isolate, domAgent, runtimeAgent, debuggerAgent));
+    return new InspectorDOMDebuggerAgent(isolate, domAgent, runtimeAgent, debuggerAgent);
 }
 
 void InspectorDOMDebuggerAgent::eventListenersInfoForTarget(v8::Isolate* isolate, v8::Local<v8::Value> value, V8EventListenerInfoList& eventInformation)
@@ -108,7 +108,7 @@
         if (!listeners)
             continue;
         for (size_t k = 0; k < listeners->size(); ++k) {
-            RefPtrWillBeRawPtr<EventListener> eventListener = listeners->at(k).listener;
+            RawPtr<EventListener> eventListener = listeners->at(k).listener;
             if (eventListener->type() != EventListener::JSEventListenerType)
                 continue;
             V8AbstractEventListener* v8Listener = static_cast<V8AbstractEventListener*>(eventListener.get());
@@ -275,7 +275,7 @@
     if (m_domBreakpoints.size()) {
         // Remove subtree breakpoints.
         m_domBreakpoints.remove(node);
-        WillBeHeapVector<RawPtrWillBeMember<Node>> stack(1, InspectorDOMAgent::innerFirstChild(node));
+        HeapVector<Member<Node>> stack(1, InspectorDOMAgent::innerFirstChild(node));
         do {
             Node* node = stack.last();
             stack.removeLast();
diff --git a/third_party/WebKit/Source/core/inspector/InspectorDOMDebuggerAgent.h b/third_party/WebKit/Source/core/inspector/InspectorDOMDebuggerAgent.h
index d81a13e3..45b8df6 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorDOMDebuggerAgent.h
+++ b/third_party/WebKit/Source/core/inspector/InspectorDOMDebuggerAgent.h
@@ -59,7 +59,7 @@
     , public protocol::Backend::DOMDebugger {
     WTF_MAKE_NONCOPYABLE(InspectorDOMDebuggerAgent);
 public:
-    static PassOwnPtrWillBeRawPtr<InspectorDOMDebuggerAgent> create(v8::Isolate*, InspectorDOMAgent*, V8RuntimeAgent*, V8DebuggerAgent*);
+    static RawPtr<InspectorDOMDebuggerAgent> create(v8::Isolate*, InspectorDOMAgent*, V8RuntimeAgent*, V8DebuggerAgent*);
 
     static void eventListenersInfoForTarget(v8::Isolate*, v8::Local<v8::Value>, V8EventListenerInfoList& listeners);
 
@@ -128,10 +128,10 @@
     PassOwnPtr<protocol::DOMDebugger::EventListener> buildObjectForEventListener(v8::Local<v8::Context>, const V8EventListenerInfo&, const String16& objectGroupId);
 
     v8::Isolate* m_isolate;
-    RawPtrWillBeMember<InspectorDOMAgent> m_domAgent;
+    Member<InspectorDOMAgent> m_domAgent;
     V8RuntimeAgent* m_runtimeAgent;
     V8DebuggerAgent* m_debuggerAgent;
-    WillBeHeapHashMap<RawPtrWillBeMember<Node>, uint32_t> m_domBreakpoints;
+    HeapHashMap<Member<Node>, uint32_t> m_domBreakpoints;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/inspector/InspectorDebuggerAgent.cpp b/third_party/WebKit/Source/core/inspector/InspectorDebuggerAgent.cpp
index d8869e5..3d706a3 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorDebuggerAgent.cpp
+++ b/third_party/WebKit/Source/core/inspector/InspectorDebuggerAgent.cpp
@@ -313,7 +313,7 @@
 
 void InspectorDebuggerAgent::init()
 {
-    m_asyncCallTracker = adoptPtrWillBeNoop(new AsyncCallTracker(m_v8DebuggerAgent.get(), m_instrumentingAgents.get()));
+    m_asyncCallTracker = new AsyncCallTracker(m_v8DebuggerAgent.get(), m_instrumentingAgents.get());
 }
 
 void InspectorDebuggerAgent::setFrontend(protocol::Frontend* frontend)
diff --git a/third_party/WebKit/Source/core/inspector/InspectorDebuggerAgent.h b/third_party/WebKit/Source/core/inspector/InspectorDebuggerAgent.h
index 5abd291..40498698 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorDebuggerAgent.h
+++ b/third_party/WebKit/Source/core/inspector/InspectorDebuggerAgent.h
@@ -101,7 +101,7 @@
     explicit InspectorDebuggerAgent(V8RuntimeAgent*);
 
     OwnPtr<V8DebuggerAgent> m_v8DebuggerAgent;
-    OwnPtrWillBeMember<AsyncCallTracker> m_asyncCallTracker;
+    Member<AsyncCallTracker> m_asyncCallTracker;
 
 private:
     void setTrackingAsyncCalls(bool);
diff --git a/third_party/WebKit/Source/core/inspector/InspectorFrontendClient.h b/third_party/WebKit/Source/core/inspector/InspectorFrontendClient.h
index 3f11b9e4..e7f6e84 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorFrontendClient.h
+++ b/third_party/WebKit/Source/core/inspector/InspectorFrontendClient.h
@@ -47,7 +47,7 @@
 
     virtual bool isUnderTest() = 0;
 
-    virtual void showContextMenu(LocalFrame* targetFrame, float x, float y, PassRefPtrWillBeRawPtr<ContextMenuProvider>) = 0;
+    virtual void showContextMenu(LocalFrame* targetFrame, float x, float y, RawPtr<ContextMenuProvider>) = 0;
 
     virtual void setInjectedScriptForOrigin(const String& origin, const String& source) = 0;
 };
diff --git a/third_party/WebKit/Source/core/inspector/InspectorHeapProfilerAgent.cpp b/third_party/WebKit/Source/core/inspector/InspectorHeapProfilerAgent.cpp
index 2116fb3..46e47da5 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorHeapProfilerAgent.cpp
+++ b/third_party/WebKit/Source/core/inspector/InspectorHeapProfilerAgent.cpp
@@ -72,9 +72,9 @@
     m_timer.startRepeating(0.05, BLINK_FROM_HERE);
 }
 
-PassOwnPtrWillBeRawPtr<InspectorHeapProfilerAgent> InspectorHeapProfilerAgent::create(v8::Isolate* isolate, V8RuntimeAgent* runtimeAgent)
+RawPtr<InspectorHeapProfilerAgent> InspectorHeapProfilerAgent::create(v8::Isolate* isolate, V8RuntimeAgent* runtimeAgent)
 {
-    return adoptPtrWillBeNoop(new InspectorHeapProfilerAgent(isolate, runtimeAgent));
+    return new InspectorHeapProfilerAgent(isolate, runtimeAgent);
 }
 
 InspectorHeapProfilerAgent::InspectorHeapProfilerAgent(v8::Isolate* isolate, V8RuntimeAgent* runtimeAgent)
diff --git a/third_party/WebKit/Source/core/inspector/InspectorHeapProfilerAgent.h b/third_party/WebKit/Source/core/inspector/InspectorHeapProfilerAgent.h
index 40535dd..fff4d023 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorHeapProfilerAgent.h
+++ b/third_party/WebKit/Source/core/inspector/InspectorHeapProfilerAgent.h
@@ -49,9 +49,8 @@
 
 class CORE_EXPORT InspectorHeapProfilerAgent final : public InspectorBaseAgent<InspectorHeapProfilerAgent, protocol::Frontend::HeapProfiler>, public protocol::Backend::HeapProfiler {
     WTF_MAKE_NONCOPYABLE(InspectorHeapProfilerAgent);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(InspectorHeapProfilerAgent);
 public:
-    static PassOwnPtrWillBeRawPtr<InspectorHeapProfilerAgent> create(v8::Isolate*, V8RuntimeAgent*);
+    static RawPtr<InspectorHeapProfilerAgent> create(v8::Isolate*, V8RuntimeAgent*);
     ~InspectorHeapProfilerAgent() override;
 
     // InspectorBaseAgent overrides.
diff --git a/third_party/WebKit/Source/core/inspector/InspectorHighlight.cpp b/third_party/WebKit/Source/core/inspector/InspectorHighlight.cpp
index fe1bb13f..4620a83d 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorHighlight.cpp
+++ b/third_party/WebKit/Source/core/inspector/InspectorHighlight.cpp
@@ -105,7 +105,7 @@
     }
 
 private:
-    RawPtrWillBeMember<FrameView> m_view;
+    Member<FrameView> m_view;
     LayoutObject& m_layoutObject;
     const ShapeOutsideInfo& m_shapeOutsideInfo;
 };
diff --git a/third_party/WebKit/Source/core/inspector/InspectorHistory.cpp b/third_party/WebKit/Source/core/inspector/InspectorHistory.cpp
index 3f672a5..05952329 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorHistory.cpp
+++ b/third_party/WebKit/Source/core/inspector/InspectorHistory.cpp
@@ -80,13 +80,13 @@
     return "";
 }
 
-void InspectorHistory::Action::merge(PassRefPtrWillBeRawPtr<Action>)
+void InspectorHistory::Action::merge(RawPtr<Action>)
 {
 }
 
 InspectorHistory::InspectorHistory() : m_afterLastActionIndex(0) { }
 
-bool InspectorHistory::perform(PassRefPtrWillBeRawPtr<Action> action, ExceptionState& exceptionState)
+bool InspectorHistory::perform(RawPtr<Action> action, ExceptionState& exceptionState)
 {
     if (!action->perform(exceptionState))
         return false;
@@ -94,7 +94,7 @@
     return true;
 }
 
-void InspectorHistory::appendPerformedAction(PassRefPtrWillBeRawPtr<Action> action)
+void InspectorHistory::appendPerformedAction(RawPtr<Action> action)
 {
     if (!action->mergeId().isEmpty() && m_afterLastActionIndex > 0 && action->mergeId() == m_history[m_afterLastActionIndex - 1]->mergeId()) {
         m_history[m_afterLastActionIndex - 1]->merge(action);
@@ -110,7 +110,7 @@
 
 void InspectorHistory::markUndoableState()
 {
-    perform(adoptRefWillBeNoop(new UndoableStateMark()), IGNORE_EXCEPTION);
+    perform(new UndoableStateMark(), IGNORE_EXCEPTION);
 }
 
 bool InspectorHistory::undo(ExceptionState& exceptionState)
diff --git a/third_party/WebKit/Source/core/inspector/InspectorHistory.h b/third_party/WebKit/Source/core/inspector/InspectorHistory.h
index ab9a568..f60f392 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorHistory.h
+++ b/third_party/WebKit/Source/core/inspector/InspectorHistory.h
@@ -40,12 +40,10 @@
 
 class ExceptionState;
 
-class InspectorHistory final : public NoBaseWillBeGarbageCollected<InspectorHistory> {
+class InspectorHistory final : public GarbageCollected<InspectorHistory> {
     WTF_MAKE_NONCOPYABLE(InspectorHistory);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(InspectorHistory);
 public:
-    class Action : public RefCountedWillBeGarbageCollectedFinalized<Action> {
-        USING_FAST_MALLOC_WILL_BE_REMOVED(Action);
+    class Action : public GarbageCollectedFinalized<Action> {
     public:
         explicit Action(const String& name);
         virtual ~Action();
@@ -53,7 +51,7 @@
         virtual String toString();
 
         virtual String mergeId();
-        virtual void merge(PassRefPtrWillBeRawPtr<Action>);
+        virtual void merge(RawPtr<Action>);
 
         virtual bool perform(ExceptionState&) = 0;
 
@@ -70,8 +68,8 @@
     InspectorHistory();
     DECLARE_TRACE();
 
-    bool perform(PassRefPtrWillBeRawPtr<Action>, ExceptionState&);
-    void appendPerformedAction(PassRefPtrWillBeRawPtr<Action>);
+    bool perform(RawPtr<Action>, ExceptionState&);
+    void appendPerformedAction(RawPtr<Action>);
     void markUndoableState();
 
     bool undo(ExceptionState&);
@@ -79,7 +77,7 @@
     void reset();
 
 private:
-    WillBeHeapVector<RefPtrWillBeMember<Action>> m_history;
+    HeapVector<Member<Action>> m_history;
     size_t m_afterLastActionIndex;
 };
 
diff --git a/third_party/WebKit/Source/core/inspector/InspectorInputAgent.h b/third_party/WebKit/Source/core/inspector/InspectorInputAgent.h
index bfbd353b..3952ba16 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorInputAgent.h
+++ b/third_party/WebKit/Source/core/inspector/InspectorInputAgent.h
@@ -45,9 +45,9 @@
 class CORE_EXPORT InspectorInputAgent final : public InspectorBaseAgent<InspectorInputAgent, protocol::Frontend::Input>, public protocol::Backend::Input {
     WTF_MAKE_NONCOPYABLE(InspectorInputAgent);
 public:
-    static PassOwnPtrWillBeRawPtr<InspectorInputAgent> create(InspectedFrames* inspectedFrames)
+    static RawPtr<InspectorInputAgent> create(InspectedFrames* inspectedFrames)
     {
-        return adoptPtrWillBeNoop(new InspectorInputAgent(inspectedFrames));
+        return new InspectorInputAgent(inspectedFrames);
     }
 
     ~InspectorInputAgent() override;
@@ -58,7 +58,7 @@
 private:
     explicit InspectorInputAgent(InspectedFrames*);
 
-    RawPtrWillBeMember<InspectedFrames> m_inspectedFrames;
+    Member<InspectedFrames> m_inspectedFrames;
 };
 
 
diff --git a/third_party/WebKit/Source/core/inspector/InspectorInspectorAgent.h b/third_party/WebKit/Source/core/inspector/InspectorInspectorAgent.h
index ba8fc697..3c57da30 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorInspectorAgent.h
+++ b/third_party/WebKit/Source/core/inspector/InspectorInspectorAgent.h
@@ -44,9 +44,9 @@
 class CORE_EXPORT InspectorInspectorAgent final : public InspectorBaseAgent<InspectorInspectorAgent, protocol::Frontend::Inspector>, public protocol::Backend::Inspector {
     WTF_MAKE_NONCOPYABLE(InspectorInspectorAgent);
 public:
-    static PassOwnPtrWillBeRawPtr<InspectorInspectorAgent> create()
+    static RawPtr<InspectorInspectorAgent> create()
     {
-        return adoptPtrWillBeNoop(new InspectorInspectorAgent());
+        return new InspectorInspectorAgent();
     }
 
     ~InspectorInspectorAgent() override;
diff --git a/third_party/WebKit/Source/core/inspector/InspectorInstrumentation.cpp b/third_party/WebKit/Source/core/inspector/InspectorInstrumentation.cpp
index 5b93382..4b95096 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorInstrumentation.cpp
+++ b/third_party/WebKit/Source/core/inspector/InspectorInstrumentation.cpp
@@ -49,9 +49,9 @@
 
 namespace {
 
-WillBePersistentHeapHashSet<RawPtrWillBeWeakMember<InstrumentingAgents>>& instrumentingAgentsSet()
+PersistentHeapHashSet<WeakMember<InstrumentingAgents>>& instrumentingAgentsSet()
 {
-    DEFINE_STATIC_LOCAL(WillBePersistentHeapHashSet<RawPtrWillBeWeakMember<InstrumentingAgents>>, instrumentingAgentsSet, ());
+    DEFINE_STATIC_LOCAL(PersistentHeapHashSet<WeakMember<InstrumentingAgents>>, instrumentingAgentsSet, ());
     return instrumentingAgentsSet;
 }
 
diff --git a/third_party/WebKit/Source/core/inspector/InspectorInstrumentation.h b/third_party/WebKit/Source/core/inspector/InspectorInstrumentation.h
index 666445bd..a1819134 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorInstrumentation.h
+++ b/third_party/WebKit/Source/core/inspector/InspectorInstrumentation.h
@@ -77,7 +77,7 @@
     bool isValid() const { return !!m_instrumentingAgents; }
 
 private:
-    RefPtrWillBeMember<InstrumentingAgents> m_instrumentingAgents;
+    Member<InstrumentingAgents> m_instrumentingAgents;
 };
 
 namespace InspectorInstrumentation {
diff --git a/third_party/WebKit/Source/core/inspector/InspectorLayerTreeAgent.h b/third_party/WebKit/Source/core/inspector/InspectorLayerTreeAgent.h
index bb342068..23d6b7e6 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorLayerTreeAgent.h
+++ b/third_party/WebKit/Source/core/inspector/InspectorLayerTreeAgent.h
@@ -53,9 +53,9 @@
 class CORE_EXPORT InspectorLayerTreeAgent final : public InspectorBaseAgent<InspectorLayerTreeAgent, protocol::Frontend::LayerTree>, public protocol::Backend::LayerTree {
     WTF_MAKE_NONCOPYABLE(InspectorLayerTreeAgent);
 public:
-    static PassOwnPtrWillBeRawPtr<InspectorLayerTreeAgent> create(InspectedFrames* inspectedFrames)
+    static RawPtr<InspectorLayerTreeAgent> create(InspectedFrames* inspectedFrames)
     {
-        return adoptPtrWillBeNoop(new InspectorLayerTreeAgent(inspectedFrames));
+        return new InspectorLayerTreeAgent(inspectedFrames);
     }
     ~InspectorLayerTreeAgent() override;
     DECLARE_VIRTUAL_TRACE();
@@ -100,7 +100,7 @@
     void gatherGraphicsLayers(GraphicsLayer*, HashMap<int, int>& layerIdToNodeIdMap, OwnPtr<protocol::Array<protocol::LayerTree::Layer>>&, bool hasWheelEventHandlers, int scrollingRootLayerId);
     int idForNode(Node*);
 
-    RawPtrWillBeMember<InspectedFrames> m_inspectedFrames;
+    Member<InspectedFrames> m_inspectedFrames;
     Vector<int, 2> m_pageOverlayLayerIds;
 
     typedef HashMap<String, RefPtr<PictureSnapshot>> SnapshotById;
diff --git a/third_party/WebKit/Source/core/inspector/InspectorMemoryAgent.h b/third_party/WebKit/Source/core/inspector/InspectorMemoryAgent.h
index ddd0daf..c93cc93 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorMemoryAgent.h
+++ b/third_party/WebKit/Source/core/inspector/InspectorMemoryAgent.h
@@ -40,9 +40,9 @@
 class CORE_EXPORT InspectorMemoryAgent final : public InspectorBaseAgent<InspectorMemoryAgent, protocol::Frontend::Memory>, public protocol::Backend::Memory {
     WTF_MAKE_NONCOPYABLE(InspectorMemoryAgent);
 public:
-    static PassOwnPtrWillBeRawPtr<InspectorMemoryAgent> create()
+    static RawPtr<InspectorMemoryAgent> create()
     {
-        return adoptPtrWillBeNoop(new InspectorMemoryAgent());
+        return new InspectorMemoryAgent();
     }
     ~InspectorMemoryAgent() override;
 
diff --git a/third_party/WebKit/Source/core/inspector/InspectorOverlayHost.h b/third_party/WebKit/Source/core/inspector/InspectorOverlayHost.h
index 9956b936..089e716 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorOverlayHost.h
+++ b/third_party/WebKit/Source/core/inspector/InspectorOverlayHost.h
@@ -36,12 +36,12 @@
 
 namespace blink {
 
-class CORE_EXPORT InspectorOverlayHost final : public RefCountedWillBeGarbageCollectedFinalized<InspectorOverlayHost>, public ScriptWrappable {
+class CORE_EXPORT InspectorOverlayHost final : public GarbageCollectedFinalized<InspectorOverlayHost>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<InspectorOverlayHost> create()
+    static RawPtr<InspectorOverlayHost> create()
     {
-        return adoptRefWillBeNoop(new InspectorOverlayHost());
+        return new InspectorOverlayHost();
     }
     ~InspectorOverlayHost();
     DECLARE_TRACE();
@@ -55,7 +55,7 @@
     void nextSelector();
     void previousSelector();
 
-    class Listener : public WillBeGarbageCollectedMixin {
+    class Listener : public GarbageCollectedMixin {
     public:
         virtual ~Listener() { }
         virtual void overlayResumed() = 0;
@@ -72,7 +72,7 @@
 private:
     InspectorOverlayHost();
 
-    RawPtrWillBeMember<Listener> m_listener;
+    Member<Listener> m_listener;
 
 };
 
diff --git a/third_party/WebKit/Source/core/inspector/InspectorPageAgent.cpp b/third_party/WebKit/Source/core/inspector/InspectorPageAgent.cpp
index fd16eb7..8541931 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorPageAgent.cpp
+++ b/third_party/WebKit/Source/core/inspector/InspectorPageAgent.cpp
@@ -254,9 +254,9 @@
     return decodeBuffer(data, size, textEncodingName, result);
 }
 
-PassOwnPtrWillBeRawPtr<InspectorPageAgent> InspectorPageAgent::create(InspectedFrames* inspectedFrames, Client* client, InspectorResourceContentLoader* resourceContentLoader, InspectorDebuggerAgent* debuggerAgent)
+RawPtr<InspectorPageAgent> InspectorPageAgent::create(InspectedFrames* inspectedFrames, Client* client, InspectorResourceContentLoader* resourceContentLoader, InspectorDebuggerAgent* debuggerAgent)
 {
-    return adoptPtrWillBeNoop(new InspectorPageAgent(inspectedFrames, client, resourceContentLoader, debuggerAgent));
+    return new InspectorPageAgent(inspectedFrames, client, resourceContentLoader, debuggerAgent);
 }
 
 Resource* InspectorPageAgent::cachedResource(LocalFrame* frame, const KURL& url)
@@ -266,7 +266,7 @@
         return nullptr;
     Resource* cachedResource = document->fetcher()->cachedResource(url);
     if (!cachedResource) {
-        WillBeHeapVector<RawPtrWillBeMember<Document>> allImports = InspectorPageAgent::importsForFrame(frame);
+        HeapVector<Member<Document>> allImports = InspectorPageAgent::importsForFrame(frame);
         for (Document* import : allImports) {
             cachedResource = import->fetcher()->cachedResource(url);
             if (cachedResource)
@@ -423,7 +423,7 @@
     ErrorString unused;
     m_debuggerAgent->setSkipAllPauses(&unused, true);
     m_reloading = true;
-    m_inspectedFrames->root()->reload(optionalIgnoreCache.fromMaybe(false) ? FrameLoadTypeReloadFromOrigin : FrameLoadTypeReload, NotClientRedirect);
+    m_inspectedFrames->root()->reload(optionalIgnoreCache.fromMaybe(false) ? FrameLoadTypeReloadBypassingCache : FrameLoadTypeReload, NotClientRedirect);
 }
 
 void InspectorPageAgent::navigate(ErrorString*, const String& url, String* outFrameId)
@@ -431,7 +431,7 @@
     *outFrameId = frameId(m_inspectedFrames->root());
 }
 
-static void cachedResourcesForDocument(Document* document, WillBeHeapVector<RawPtrWillBeMember<Resource>>& result, bool skipXHRs)
+static void cachedResourcesForDocument(Document* document, HeapVector<Member<Resource>>& result, bool skipXHRs)
 {
     const ResourceFetcher::DocumentResourceMap& allResources = document->fetcher()->allResources();
     for (const auto& resource : allResources) {
@@ -450,9 +450,9 @@
 }
 
 // static
-WillBeHeapVector<RawPtrWillBeMember<Document>> InspectorPageAgent::importsForFrame(LocalFrame* frame)
+HeapVector<Member<Document>> InspectorPageAgent::importsForFrame(LocalFrame* frame)
 {
-    WillBeHeapVector<RawPtrWillBeMember<Document>> result;
+    HeapVector<Member<Document>> result;
     Document* rootDocument = frame->document();
 
     if (HTMLImportsController* controller = rootDocument->importsController()) {
@@ -465,11 +465,11 @@
     return result;
 }
 
-static WillBeHeapVector<RawPtrWillBeMember<Resource>> cachedResourcesForFrame(LocalFrame* frame, bool skipXHRs)
+static HeapVector<Member<Resource>> cachedResourcesForFrame(LocalFrame* frame, bool skipXHRs)
 {
-    WillBeHeapVector<RawPtrWillBeMember<Resource>> result;
+    HeapVector<Member<Resource>> result;
     Document* rootDocument = frame->document();
-    WillBeHeapVector<RawPtrWillBeMember<Document>> loaders = InspectorPageAgent::importsForFrame(frame);
+    HeapVector<Member<Document>> loaders = InspectorPageAgent::importsForFrame(frame);
 
     cachedResourcesForDocument(rootDocument, result, skipXHRs);
     for (size_t i = 0; i < loaders.size(); ++i)
@@ -711,7 +711,7 @@
     OwnPtr<protocol::Page::Frame> frameObject = buildObjectForFrame(frame);
     OwnPtr<protocol::Array<protocol::Page::FrameResource>> subresources = protocol::Array<protocol::Page::FrameResource>::create();
 
-    WillBeHeapVector<RawPtrWillBeMember<Resource>> allResources = cachedResourcesForFrame(frame, true);
+    HeapVector<Member<Resource>> allResources = cachedResourcesForFrame(frame, true);
     for (Resource* cachedResource : allResources) {
         OwnPtr<protocol::Page::FrameResource> resourceObject = protocol::Page::FrameResource::create()
             .setUrl(urlWithoutFragment(cachedResource->url()).getString())
@@ -724,7 +724,7 @@
         subresources->addItem(resourceObject.release());
     }
 
-    WillBeHeapVector<RawPtrWillBeMember<Document>> allImports = InspectorPageAgent::importsForFrame(frame);
+    HeapVector<Member<Document>> allImports = InspectorPageAgent::importsForFrame(frame);
     for (Document* import : allImports) {
         OwnPtr<protocol::Page::FrameResource> resourceObject = protocol::Page::FrameResource::create()
             .setUrl(urlWithoutFragment(import->url()).getString())
diff --git a/third_party/WebKit/Source/core/inspector/InspectorPageAgent.h b/third_party/WebKit/Source/core/inspector/InspectorPageAgent.h
index 7f347fb..28f8e6a 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorPageAgent.h
+++ b/third_party/WebKit/Source/core/inspector/InspectorPageAgent.h
@@ -81,9 +81,9 @@
         OtherResource
     };
 
-    static PassOwnPtrWillBeRawPtr<InspectorPageAgent> create(InspectedFrames*, Client*, InspectorResourceContentLoader*, InspectorDebuggerAgent*);
+    static RawPtr<InspectorPageAgent> create(InspectedFrames*, Client*, InspectorResourceContentLoader*, InspectorDebuggerAgent*);
 
-    static WillBeHeapVector<RawPtrWillBeMember<Document>> importsForFrame(LocalFrame*);
+    static HeapVector<Member<Document>> importsForFrame(LocalFrame*);
     static bool cachedResourceContent(Resource*, String* result, bool* base64Encoded);
     static bool sharedBufferContent(PassRefPtr<SharedBuffer>, const String& textEncodingName, bool withBase64Encode, String* result);
 
@@ -100,6 +100,7 @@
     void addScriptToEvaluateOnLoad(ErrorString*, const String& scriptSource, String* identifier) override;
     void removeScriptToEvaluateOnLoad(ErrorString*, const String& identifier) override;
     void setAutoAttachToCreatedPages(ErrorString*, bool autoAttach) override;
+    // TODO(crbug.com/599364): Rename |ignoreCache| to |bypassCache|.
     void reload(ErrorString*, const Maybe<bool>& ignoreCache, const Maybe<String>& scriptToEvaluateOnLoad) override;
     void navigate(ErrorString*, const String& url, String* frameId) override;
     void getResourceTree(ErrorString*, OwnPtr<protocol::Page::FrameResourceTree>* frameTree) override;
@@ -145,8 +146,8 @@
 
     PassOwnPtr<protocol::Page::Frame> buildObjectForFrame(LocalFrame*);
     PassOwnPtr<protocol::Page::FrameResourceTree> buildObjectForFrameTree(LocalFrame*);
-    RawPtrWillBeMember<InspectedFrames> m_inspectedFrames;
-    RawPtrWillBeMember<InspectorDebuggerAgent> m_debuggerAgent;
+    Member<InspectedFrames> m_inspectedFrames;
+    Member<InspectorDebuggerAgent> m_debuggerAgent;
     Client* m_client;
     long m_lastScriptIdentifier;
     String m_pendingScriptToEvaluateOnLoadOnce;
@@ -154,7 +155,7 @@
     bool m_enabled;
     bool m_reloading;
 
-    RawPtrWillBeMember<InspectorResourceContentLoader> m_inspectorResourceContentLoader;
+    Member<InspectorResourceContentLoader> m_inspectorResourceContentLoader;
 };
 
 
diff --git a/third_party/WebKit/Source/core/inspector/InspectorProfilerAgent.cpp b/third_party/WebKit/Source/core/inspector/InspectorProfilerAgent.cpp
index 5540da77..d6bf196 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorProfilerAgent.cpp
+++ b/third_party/WebKit/Source/core/inspector/InspectorProfilerAgent.cpp
@@ -41,9 +41,9 @@
 static const char profilerEnabled[] = "profilerEnabled";
 }
 
-PassOwnPtrWillBeRawPtr<InspectorProfilerAgent> InspectorProfilerAgent::create(V8Debugger* debugger, Client* client)
+RawPtr<InspectorProfilerAgent> InspectorProfilerAgent::create(V8Debugger* debugger, Client* client)
 {
-    return adoptPtrWillBeNoop(new InspectorProfilerAgent(debugger, client));
+    return new InspectorProfilerAgent(debugger, client);
 }
 
 InspectorProfilerAgent::InspectorProfilerAgent(V8Debugger* debugger, Client* client)
diff --git a/third_party/WebKit/Source/core/inspector/InspectorProfilerAgent.h b/third_party/WebKit/Source/core/inspector/InspectorProfilerAgent.h
index 1010974..f311813c 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorProfilerAgent.h
+++ b/third_party/WebKit/Source/core/inspector/InspectorProfilerAgent.h
@@ -46,7 +46,6 @@
 
 class CORE_EXPORT InspectorProfilerAgent final : public InspectorBaseAgent<InspectorProfilerAgent, protocol::Frontend::Profiler>, public protocol::Backend::Profiler {
     WTF_MAKE_NONCOPYABLE(InspectorProfilerAgent);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(InspectorProfilerAgent);
 public:
     class Client {
     public:
@@ -55,7 +54,7 @@
         virtual void profilingStopped() { }
     };
 
-    static PassOwnPtrWillBeRawPtr<InspectorProfilerAgent> create(V8Debugger*, Client*);
+    static RawPtr<InspectorProfilerAgent> create(V8Debugger*, Client*);
     ~InspectorProfilerAgent() override;
     DECLARE_VIRTUAL_TRACE();
 
diff --git a/third_party/WebKit/Source/core/inspector/InspectorResourceAgent.cpp b/third_party/WebKit/Source/core/inspector/InspectorResourceAgent.cpp
index df10e9f..3540de2 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorResourceAgent.cpp
+++ b/third_party/WebKit/Source/core/inspector/InspectorResourceAgent.cpp
@@ -529,7 +529,7 @@
     request.setReportRawHeaders(true);
 
     if (m_state->booleanProperty(ResourceAgentState::cacheDisabled, false)) {
-        request.setCachePolicy(ReloadBypassingCache);
+        request.setCachePolicy(BypassingCache);
         request.setShouldResetAppCache(true);
     }
 
@@ -702,7 +702,7 @@
 
     if (m_state->booleanProperty(ResourceAgentState::monitoringXHR, false)) {
         String message = (success ? "XHR finished loading: " : "XHR failed loading: ") + method + " \"" + url + "\".";
-        RefPtrWillBeRawPtr<ConsoleMessage> consoleMessage = ConsoleMessage::create(NetworkMessageSource, DebugMessageLevel, message);
+        RawPtr<ConsoleMessage> consoleMessage = ConsoleMessage::create(NetworkMessageSource, DebugMessageLevel, message);
         consoleMessage->setRequestIdentifier(it->value);
         m_inspectedFrames->root()->host()->consoleMessageStorage().reportMessage(context, consoleMessage.release());
     }
@@ -729,7 +729,7 @@
 
     if (m_state->booleanProperty(ResourceAgentState::monitoringXHR, false)) {
         String message = "Fetch complete: " + method + " \"" + url + "\".";
-        RefPtrWillBeRawPtr<ConsoleMessage> consoleMessage = ConsoleMessage::create(NetworkMessageSource, DebugMessageLevel, message);
+        RawPtr<ConsoleMessage> consoleMessage = ConsoleMessage::create(NetworkMessageSource, DebugMessageLevel, message);
         consoleMessage->setRequestIdentifier(it->value);
         m_inspectedFrames->root()->host()->consoleMessageStorage().reportMessage(context, consoleMessage.release());
     }
diff --git a/third_party/WebKit/Source/core/inspector/InspectorResourceAgent.h b/third_party/WebKit/Source/core/inspector/InspectorResourceAgent.h
index 8ab0f89..9ff86dff 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorResourceAgent.h
+++ b/third_party/WebKit/Source/core/inspector/InspectorResourceAgent.h
@@ -71,9 +71,9 @@
 
 class CORE_EXPORT InspectorResourceAgent final : public InspectorBaseAgent<InspectorResourceAgent, protocol::Frontend::Network>, public protocol::Backend::Network {
 public:
-    static PassOwnPtrWillBeRawPtr<InspectorResourceAgent> create(InspectedFrames* inspectedFrames)
+    static RawPtr<InspectorResourceAgent> create(InspectedFrames* inspectedFrames)
     {
-        return adoptPtrWillBeNoop(new InspectorResourceAgent(inspectedFrames));
+        return new InspectorResourceAgent(inspectedFrames);
     }
 
     void restore() override;
@@ -163,10 +163,10 @@
     bool canGetResponseBodyBlob(const String& requestId);
     void getResponseBodyBlob(const String& requestId, PassOwnPtr<GetResponseBodyCallback>);
 
-    RawPtrWillBeMember<InspectedFrames> m_inspectedFrames;
+    Member<InspectedFrames> m_inspectedFrames;
     String m_userAgentOverride;
     String m_hostId;
-    OwnPtrWillBeMember<NetworkResourcesData> m_resourcesData;
+    Member<NetworkResourcesData> m_resourcesData;
 
     typedef HashMap<ThreadableLoaderClient*, unsigned long> ThreadableLoaderClientRequestIdMap;
 
@@ -177,7 +177,7 @@
     InspectorPageAgent::ResourceType m_pendingRequestType;
     ThreadableLoaderClientRequestIdMap m_knownRequestIdMap;
 
-    RefPtrWillBeMember<XHRReplayData> m_pendingXHRReplayData;
+    Member<XHRReplayData> m_pendingXHRReplayData;
 
     typedef HashMap<String, OwnPtr<protocol::Network::Initiator>> FrameNavigationInitiatorMap;
     FrameNavigationInitiatorMap m_frameNavigationInitiatorMap;
@@ -186,8 +186,8 @@
     OwnPtr<protocol::Network::Initiator> m_styleRecalculationInitiator;
     bool m_isRecalculatingStyle;
 
-    PersistentHeapHashSetWillBeHeapHashSet<Member<XMLHttpRequest>> m_replayXHRs;
-    PersistentHeapHashSetWillBeHeapHashSet<Member<XMLHttpRequest>> m_replayXHRsToBeDeleted;
+    HeapHashSet<Member<XMLHttpRequest>> m_replayXHRs;
+    HeapHashSet<Member<XMLHttpRequest>> m_replayXHRsToBeDeleted;
     Timer<InspectorResourceAgent> m_removeFinishedReplayXHRTimer;
 };
 
diff --git a/third_party/WebKit/Source/core/inspector/InspectorResourceContentLoader.cpp b/third_party/WebKit/Source/core/inspector/InspectorResourceContentLoader.cpp
index 344b77e..354b9f9 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorResourceContentLoader.cpp
+++ b/third_party/WebKit/Source/core/inspector/InspectorResourceContentLoader.cpp
@@ -22,7 +22,7 @@
 
 namespace blink {
 
-class InspectorResourceContentLoader::ResourceClient final : public NoBaseWillBeGarbageCollectedFinalized<InspectorResourceContentLoader::ResourceClient>, private RawResourceClient, private StyleSheetResourceClient {
+class InspectorResourceContentLoader::ResourceClient final : public GarbageCollectedFinalized<InspectorResourceContentLoader::ResourceClient>, private RawResourceClient, private StyleSheetResourceClient {
 public:
     explicit ResourceClient(InspectorResourceContentLoader* loader)
         : m_loader(loader)
@@ -43,7 +43,7 @@
     }
 
 private:
-    RawPtrWillBeMember<InspectorResourceContentLoader> m_loader;
+    Member<InspectorResourceContentLoader> m_loader;
 
     void setCSSStyleSheet(const String&, const KURL&, const String&, const CSSStyleSheetResource*) override;
     void notifyFinished(Resource*) override;
@@ -90,8 +90,8 @@
 void InspectorResourceContentLoader::start()
 {
     m_started = true;
-    WillBeHeapVector<RawPtrWillBeMember<Document>> documents;
-    OwnPtrWillBeRawPtr<InspectedFrames> inspectedFrames = InspectedFrames::create(m_inspectedFrame);
+    HeapVector<Member<Document>> documents;
+    RawPtr<InspectedFrames> inspectedFrames = InspectedFrames::create(m_inspectedFrame);
     for (LocalFrame* frame : *inspectedFrames) {
         documents.append(frame->document());
         documents.appendVector(InspectorPageAgent::importsForFrame(frame));
@@ -113,7 +113,7 @@
         if (!resourceRequest.url().getString().isEmpty()) {
             urlsToFetch.add(resourceRequest.url().getString());
             FetchRequest request(resourceRequest, FetchInitiatorTypeNames::internal);
-            RefPtrWillBeRawPtr<Resource> resource = RawResource::fetch(request, document->fetcher());
+            RawPtr<Resource> resource = RawResource::fetch(request, document->fetcher());
             if (resource) {
                 // Prevent garbage collection by holding a reference to this resource.
                 m_resources.append(resource.get());
@@ -123,7 +123,7 @@
             }
         }
 
-        WillBeHeapVector<RawPtrWillBeMember<CSSStyleSheet>> styleSheets;
+        HeapVector<Member<CSSStyleSheet>> styleSheets;
         InspectorCSSAgent::collectAllDocumentStyleSheets(document, styleSheets);
         for (CSSStyleSheet* styleSheet : styleSheets) {
             if (styleSheet->isInline() || !styleSheet->contents()->loadCompleted())
@@ -134,7 +134,7 @@
             urlsToFetch.add(url);
             FetchRequest request(ResourceRequest(url), FetchInitiatorTypeNames::internal);
             request.mutableResourceRequest().setRequestContext(WebURLRequest::RequestContextInternal);
-            RefPtrWillBeRawPtr<Resource> resource = CSSStyleSheetResource::fetch(request, document->fetcher());
+            RawPtr<Resource> resource = CSSStyleSheetResource::fetch(request, document->fetcher());
             if (!resource)
                 continue;
             // Prevent garbage collection by holding a reference to this resource.
@@ -184,7 +184,7 @@
 
 void InspectorResourceContentLoader::stop()
 {
-    WillBeHeapHashSet<RawPtrWillBeMember<ResourceClient>> pendingResourceClients;
+    HeapHashSet<Member<ResourceClient>> pendingResourceClients;
     m_pendingResourceClients.swap(pendingResourceClients);
     for (const auto& client : pendingResourceClients)
         client->m_loader = nullptr;
diff --git a/third_party/WebKit/Source/core/inspector/InspectorResourceContentLoader.h b/third_party/WebKit/Source/core/inspector/InspectorResourceContentLoader.h
index c219f33..3549125 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorResourceContentLoader.h
+++ b/third_party/WebKit/Source/core/inspector/InspectorResourceContentLoader.h
@@ -17,13 +17,12 @@
 class LocalFrame;
 class Resource;
 
-class CORE_EXPORT InspectorResourceContentLoader final : public NoBaseWillBeGarbageCollectedFinalized<InspectorResourceContentLoader> {
+class CORE_EXPORT InspectorResourceContentLoader final : public GarbageCollectedFinalized<InspectorResourceContentLoader> {
     WTF_MAKE_NONCOPYABLE(InspectorResourceContentLoader);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(InspectorResourceContentLoader);
 public:
-    static PassOwnPtrWillBeRawPtr<InspectorResourceContentLoader> create(LocalFrame* inspectedFrame)
+    static RawPtr<InspectorResourceContentLoader> create(LocalFrame* inspectedFrame)
     {
-        return adoptPtrWillBeNoop(new InspectorResourceContentLoader(inspectedFrame));
+        return new InspectorResourceContentLoader(inspectedFrame);
     }
     ~InspectorResourceContentLoader();
     void dispose();
@@ -45,9 +44,9 @@
     Vector<OwnPtr<SameThreadClosure>> m_callbacks;
     bool m_allRequestsStarted;
     bool m_started;
-    RawPtrWillBeMember<LocalFrame> m_inspectedFrame;
-    WillBeHeapHashSet<RawPtrWillBeMember<ResourceClient>> m_pendingResourceClients;
-    WillBeHeapVector<RefPtrWillBeMember<Resource>> m_resources;
+    Member<LocalFrame> m_inspectedFrame;
+    HeapHashSet<Member<ResourceClient>> m_pendingResourceClients;
+    HeapVector<Member<Resource>> m_resources;
 
     friend class ResourceClient;
 };
diff --git a/third_party/WebKit/Source/core/inspector/InspectorStyleSheet.cpp b/third_party/WebKit/Source/core/inspector/InspectorStyleSheet.cpp
index d460922..e502cce 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorStyleSheet.cpp
+++ b/third_party/WebKit/Source/core/inspector/InspectorStyleSheet.cpp
@@ -96,17 +96,17 @@
     void startMediaQuery() override;
     void endMediaQuery() override;
 
-    void addNewRuleToSourceTree(PassRefPtrWillBeRawPtr<CSSRuleSourceData>);
-    PassRefPtrWillBeRawPtr<CSSRuleSourceData> popRuleData();
+    void addNewRuleToSourceTree(RawPtr<CSSRuleSourceData>);
+    RawPtr<CSSRuleSourceData> popRuleData();
     template <typename CharacterType> inline void setRuleHeaderEnd(const CharacterType*, unsigned);
     void fixUnparsedPropertyRanges(CSSRuleSourceData*);
 
     const String& m_parsedText;
-    RawPtrWillBeMember<Document> m_document;
+    Member<Document> m_document;
     RuleSourceDataList* m_result;
     RuleSourceDataList m_currentRuleDataStack;
-    RefPtrWillBeMember<CSSRuleSourceData> m_currentRuleData;
-    RefPtrWillBeMember<CSSMediaQuerySourceData> m_currentMediaQueryData;
+    Member<CSSRuleSourceData> m_currentRuleData;
+    Member<CSSMediaQuerySourceData> m_currentMediaQueryData;
     unsigned m_mediaQueryExpValueRangeStart;
 };
 
@@ -116,7 +116,7 @@
     if (m_currentRuleData)
         m_currentRuleDataStack.removeLast();
 
-    RefPtrWillBeRawPtr<CSSRuleSourceData> data = CSSRuleSourceData::create(type);
+    RawPtr<CSSRuleSourceData> data = CSSRuleSourceData::create(type);
     data->ruleHeaderRange.start = offset;
     m_currentRuleData = data;
     m_currentRuleDataStack.append(data.release());
@@ -166,13 +166,13 @@
 {
     ASSERT(!m_currentRuleDataStack.isEmpty());
     m_currentRuleDataStack.last()->ruleBodyRange.end = offset;
-    RefPtrWillBeRawPtr<CSSRuleSourceData> rule = popRuleData();
+    RawPtr<CSSRuleSourceData> rule = popRuleData();
 
     fixUnparsedPropertyRanges(rule.get());
     addNewRuleToSourceTree(rule.release());
 }
 
-void StyleSheetHandler::addNewRuleToSourceTree(PassRefPtrWillBeRawPtr<CSSRuleSourceData> rule)
+void StyleSheetHandler::addNewRuleToSourceTree(RawPtr<CSSRuleSourceData> rule)
 {
     if (m_currentRuleDataStack.isEmpty())
         m_result->append(rule);
@@ -180,11 +180,11 @@
         m_currentRuleDataStack.last()->childRules.append(rule);
 }
 
-PassRefPtrWillBeRawPtr<CSSRuleSourceData> StyleSheetHandler::popRuleData()
+RawPtr<CSSRuleSourceData> StyleSheetHandler::popRuleData()
 {
     ASSERT(!m_currentRuleDataStack.isEmpty());
     m_currentRuleData.clear();
-    RefPtrWillBeRawPtr<CSSRuleSourceData> data = m_currentRuleDataStack.last();
+    RawPtr<CSSRuleSourceData> data = m_currentRuleDataStack.last();
     m_currentRuleDataStack.removeLast();
     return data.release();
 }
@@ -192,7 +192,7 @@
 template <typename CharacterType>
 static inline void fixUnparsedProperties(const CharacterType* characters, CSSRuleSourceData* ruleData)
 {
-    WillBeHeapVector<CSSPropertySourceData>& propertyData = ruleData->styleSourceData->propertyData;
+    HeapVector<CSSPropertySourceData>& propertyData = ruleData->styleSourceData->propertyData;
     unsigned size = propertyData.size();
     if (!size)
         return;
@@ -293,7 +293,7 @@
 
     StyleSheetHandler handler(commentText, m_document, &sourceData);
     CSSParser::parseDeclarationListForInspector(parserContextForDocument(m_document), commentText, handler);
-    WillBeHeapVector<CSSPropertySourceData>& commentPropertyData = sourceData.first()->styleSourceData->propertyData;
+    HeapVector<CSSPropertySourceData>& commentPropertyData = sourceData.first()->styleSourceData->propertyData;
     if (commentPropertyData.size() != 1)
         return;
     CSSPropertySourceData& propertyData = commentPropertyData.at(0);
@@ -326,7 +326,7 @@
 void StyleSheetHandler::startMediaQuery()
 {
     ASSERT(m_currentRuleDataStack.size() && m_currentRuleDataStack.last()->mediaSourceData);
-    RefPtrWillBeRawPtr<CSSMediaQuerySourceData> data = CSSMediaQuerySourceData::create();
+    RawPtr<CSSMediaQuerySourceData> data = CSSMediaQuerySourceData::create();
     m_currentMediaQueryData = data;
     m_currentRuleDataStack.last()->mediaSourceData->queryData.append(data);
 }
@@ -339,7 +339,7 @@
 bool verifyRuleText(Document* document, const String& ruleText)
 {
     DEFINE_STATIC_LOCAL(String, bogusPropertyName, ("-webkit-boguz-propertee"));
-    RefPtrWillBeRawPtr<StyleSheetContents> styleSheet = StyleSheetContents::create(strictCSSParserContext());
+    RawPtr<StyleSheetContents> styleSheet = StyleSheetContents::create(strictCSSParserContext());
     RuleSourceDataList sourceData;
     String text = ruleText + " div { " + bogusPropertyName + ": none; }";
     StyleSheetHandler handler(text, document, &sourceData);
@@ -354,7 +354,7 @@
     if (!sourceData.at(0)->styleSourceData)
         return false;
 
-    WillBeHeapVector<CSSPropertySourceData>& propertyData = sourceData.at(1)->styleSourceData->propertyData;
+    HeapVector<CSSPropertySourceData>& propertyData = sourceData.at(1)->styleSourceData->propertyData;
     unsigned propertyCount = propertyData.size();
 
     // Exactly one property should be in rule.
@@ -375,7 +375,7 @@
 
 bool verifyKeyframeKeyText(Document* document, const String& keyText)
 {
-    RefPtrWillBeRawPtr<StyleSheetContents> styleSheet = StyleSheetContents::create(strictCSSParserContext());
+    RawPtr<StyleSheetContents> styleSheet = StyleSheetContents::create(strictCSSParserContext());
     RuleSourceDataList sourceData;
     String text = "@keyframes boguzAnim { " + keyText + " { -webkit-boguz-propertee : none; } }";
     StyleSheetHandler handler(text, document, &sourceData);
@@ -387,7 +387,7 @@
         return false;
 
     // Exactly one property should be in keyframe rule.
-    WillBeHeapVector<CSSPropertySourceData>& propertyData = sourceData.at(1)->styleSourceData->propertyData;
+    HeapVector<CSSPropertySourceData>& propertyData = sourceData.at(1)->styleSourceData->propertyData;
     unsigned propertyCount = propertyData.size();
     if (propertyCount != 1)
         return false;
@@ -398,7 +398,7 @@
 bool verifySelectorText(Document* document, const String& selectorText)
 {
     DEFINE_STATIC_LOCAL(String, bogusPropertyName, ("-webkit-boguz-propertee"));
-    RefPtrWillBeRawPtr<StyleSheetContents> styleSheet = StyleSheetContents::create(strictCSSParserContext());
+    RawPtr<StyleSheetContents> styleSheet = StyleSheetContents::create(strictCSSParserContext());
     RuleSourceDataList sourceData;
     String text = selectorText + " { " + bogusPropertyName + ": none; }";
     StyleSheetHandler handler(text, document, &sourceData);
@@ -410,7 +410,7 @@
         return false;
 
     // Exactly one property should be in style rule.
-    WillBeHeapVector<CSSPropertySourceData>& propertyData = sourceData.at(0)->styleSourceData->propertyData;
+    HeapVector<CSSPropertySourceData>& propertyData = sourceData.at(0)->styleSourceData->propertyData;
     unsigned propertyCount = propertyData.size();
     if (propertyCount != 1)
         return false;
@@ -425,7 +425,7 @@
 bool verifyMediaText(Document* document, const String& mediaText)
 {
     DEFINE_STATIC_LOCAL(String, bogusPropertyName, ("-webkit-boguz-propertee"));
-    RefPtrWillBeRawPtr<StyleSheetContents> styleSheet = StyleSheetContents::create(strictCSSParserContext());
+    RawPtr<StyleSheetContents> styleSheet = StyleSheetContents::create(strictCSSParserContext());
     RuleSourceDataList sourceData;
     String text = "@media " + mediaText + " { div { " + bogusPropertyName + ": none; } }";
     StyleSheetHandler handler(text, document, &sourceData);
@@ -443,7 +443,7 @@
         return false;
 
     // Exactly one property should be in style rule.
-    WillBeHeapVector<CSSPropertySourceData>& propertyData = childSourceData.at(0)->styleSourceData->propertyData;
+    HeapVector<CSSPropertySourceData>& propertyData = childSourceData.at(0)->styleSourceData->propertyData;
     unsigned propertyCount = propertyData.size();
     if (propertyCount != 1)
         return false;
@@ -458,7 +458,7 @@
 void flattenSourceData(RuleSourceDataList* dataList, RuleSourceDataList* result)
 {
     for (size_t i = 0; i < dataList->size(); ++i) {
-        RefPtrWillBeMember<CSSRuleSourceData>& data = dataList->at(i);
+        Member<CSSRuleSourceData>& data = dataList->at(i);
 
         // The result->append()'ed types should be exactly the same as in collectFlatRules().
         switch (data->type) {
@@ -482,7 +482,7 @@
     }
 }
 
-PassRefPtrWillBeRawPtr<CSSRuleList> asCSSRuleList(CSSRule* rule)
+RawPtr<CSSRuleList> asCSSRuleList(CSSRule* rule)
 {
     if (!rule)
         return nullptr;
@@ -629,11 +629,11 @@
     delete [] backtrack;
 }
 
-String canonicalCSSText(RefPtrWillBeRawPtr<CSSRule> rule)
+String canonicalCSSText(RawPtr<CSSRule> rule)
 {
     if (rule->type() != CSSRule::STYLE_RULE)
         return rule->cssText();
-    RefPtrWillBeRawPtr<CSSStyleRule> styleRule = toCSSStyleRule(rule.get());
+    RawPtr<CSSStyleRule> styleRule = toCSSStyleRule(rule.get());
 
     Vector<String> propertyNames;
     CSSStyleDeclaration* style = styleRule->style();
@@ -689,12 +689,12 @@
     return result.release();
 }
 
-PassRefPtrWillBeRawPtr<InspectorStyle> InspectorStyle::create(PassRefPtrWillBeRawPtr<CSSStyleDeclaration> style, PassRefPtrWillBeRawPtr<CSSRuleSourceData> sourceData, InspectorStyleSheetBase* parentStyleSheet)
+RawPtr<InspectorStyle> InspectorStyle::create(RawPtr<CSSStyleDeclaration> style, RawPtr<CSSRuleSourceData> sourceData, InspectorStyleSheetBase* parentStyleSheet)
 {
-    return adoptRefWillBeNoop(new InspectorStyle(style, sourceData, parentStyleSheet));
+    return new InspectorStyle(style, sourceData, parentStyleSheet);
 }
 
-InspectorStyle::InspectorStyle(PassRefPtrWillBeRawPtr<CSSStyleDeclaration> style, PassRefPtrWillBeRawPtr<CSSRuleSourceData> sourceData, InspectorStyleSheetBase* parentStyleSheet)
+InspectorStyle::InspectorStyle(RawPtr<CSSStyleDeclaration> style, RawPtr<CSSRuleSourceData> sourceData, InspectorStyleSheetBase* parentStyleSheet)
     : m_style(style)
     , m_sourceData(sourceData)
     , m_parentStyleSheet(parentStyleSheet)
@@ -723,7 +723,7 @@
 PassOwnPtr<protocol::Array<protocol::CSS::CSSComputedStyleProperty>> InspectorStyle::buildArrayForComputedStyle()
 {
     OwnPtr<protocol::Array<protocol::CSS::CSSComputedStyleProperty>> result = protocol::Array<protocol::CSS::CSSComputedStyleProperty>::create();
-    WillBeHeapVector<CSSPropertySourceData> properties;
+    HeapVector<CSSPropertySourceData> properties;
     populateAllProperties(properties);
 
     for (auto& property : properties) {
@@ -758,12 +758,12 @@
     return true;
 }
 
-void InspectorStyle::populateAllProperties(WillBeHeapVector<CSSPropertySourceData>& result)
+void InspectorStyle::populateAllProperties(HeapVector<CSSPropertySourceData>& result)
 {
     HashSet<String> sourcePropertyNames;
 
     if (m_sourceData && m_sourceData->styleSourceData) {
-        WillBeHeapVector<CSSPropertySourceData>& sourcePropertyData = m_sourceData->styleSourceData->propertyData;
+        HeapVector<CSSPropertySourceData>& sourcePropertyData = m_sourceData->styleSourceData->propertyData;
         for (const auto& data : sourcePropertyData) {
             result.append(data);
             sourcePropertyNames.add(data.name.lower());
@@ -788,7 +788,7 @@
     OwnPtr<Array<protocol::CSS::ShorthandEntry>> shorthandEntries = Array<protocol::CSS::ShorthandEntry>::create();
     HashSet<String> foundShorthands;
 
-    WillBeHeapVector<CSSPropertySourceData> properties;
+    HeapVector<CSSPropertySourceData> properties;
     populateAllProperties(properties);
 
     for (auto& styleProperty : properties) {
@@ -917,12 +917,12 @@
     return true;
 }
 
-PassRefPtrWillBeRawPtr<InspectorStyleSheet> InspectorStyleSheet::create(InspectorResourceAgent* resourceAgent, PassRefPtrWillBeRawPtr<CSSStyleSheet> pageStyleSheet, const String& origin, const String& documentURL, InspectorCSSAgent* cssAgent)
+RawPtr<InspectorStyleSheet> InspectorStyleSheet::create(InspectorResourceAgent* resourceAgent, RawPtr<CSSStyleSheet> pageStyleSheet, const String& origin, const String& documentURL, InspectorCSSAgent* cssAgent)
 {
-    return adoptRefWillBeNoop(new InspectorStyleSheet(resourceAgent, pageStyleSheet, origin, documentURL, cssAgent));
+    return new InspectorStyleSheet(resourceAgent, pageStyleSheet, origin, documentURL, cssAgent);
 }
 
-InspectorStyleSheet::InspectorStyleSheet(InspectorResourceAgent* resourceAgent, PassRefPtrWillBeRawPtr<CSSStyleSheet> pageStyleSheet, const String& origin, const String& documentURL, InspectorCSSAgent* cssAgent)
+InspectorStyleSheet::InspectorStyleSheet(InspectorResourceAgent* resourceAgent, RawPtr<CSSStyleSheet> pageStyleSheet, const String& origin, const String& documentURL, InspectorCSSAgent* cssAgent)
     : InspectorStyleSheetBase(cssAgent)
     , m_cssAgent(cssAgent)
     , m_resourceAgent(resourceAgent)
@@ -981,26 +981,26 @@
     return true;
 }
 
-RefPtrWillBeRawPtr<CSSStyleRule> InspectorStyleSheet::setRuleSelector(const SourceRange& range, const String& text, SourceRange* newRange, String* oldText, ExceptionState& exceptionState)
+RawPtr<CSSStyleRule> InspectorStyleSheet::setRuleSelector(const SourceRange& range, const String& text, SourceRange* newRange, String* oldText, ExceptionState& exceptionState)
 {
     if (!verifySelectorText(m_pageStyleSheet->ownerDocument(), text)) {
         exceptionState.throwDOMException(SyntaxError, "Selector or media text is not valid.");
         return nullptr;
     }
 
-    RefPtrWillBeRawPtr<CSSRuleSourceData> sourceData = findRuleByHeaderRange(range);
+    RawPtr<CSSRuleSourceData> sourceData = findRuleByHeaderRange(range);
     if (!sourceData || !sourceData->styleSourceData) {
         exceptionState.throwDOMException(NotFoundError, "Source range didn't match existing source range");
         return nullptr;
     }
 
-    RefPtrWillBeRawPtr<CSSRule> rule = ruleForSourceData(sourceData);
+    RawPtr<CSSRule> rule = ruleForSourceData(sourceData);
     if (!rule || !rule->parentStyleSheet() || rule->type() != CSSRule::STYLE_RULE) {
         exceptionState.throwDOMException(NotFoundError, "Source range didn't match existing style source range");
         return nullptr;
     }
 
-    RefPtrWillBeRawPtr<CSSStyleRule> styleRule = InspectorCSSAgent::asCSSStyleRule(rule.get());
+    RawPtr<CSSStyleRule> styleRule = InspectorCSSAgent::asCSSStyleRule(rule.get());
     styleRule->setSelectorText(text);
 
     replaceText(sourceData->ruleHeaderRange, text, newRange, oldText);
@@ -1009,26 +1009,26 @@
     return styleRule;
 }
 
-PassRefPtrWillBeRawPtr<CSSKeyframeRule> InspectorStyleSheet::setKeyframeKey(const SourceRange& range, const String& text, SourceRange* newRange, String* oldText, ExceptionState& exceptionState)
+RawPtr<CSSKeyframeRule> InspectorStyleSheet::setKeyframeKey(const SourceRange& range, const String& text, SourceRange* newRange, String* oldText, ExceptionState& exceptionState)
 {
     if (!verifyKeyframeKeyText(m_pageStyleSheet->ownerDocument(), text)) {
         exceptionState.throwDOMException(SyntaxError, "Keyframe key text is not valid.");
         return nullptr;
     }
 
-    RefPtrWillBeRawPtr<CSSRuleSourceData> sourceData = findRuleByHeaderRange(range);
+    RawPtr<CSSRuleSourceData> sourceData = findRuleByHeaderRange(range);
     if (!sourceData || !sourceData->styleSourceData) {
         exceptionState.throwDOMException(NotFoundError, "Source range didn't match existing source range");
         return nullptr;
     }
 
-    RefPtrWillBeRawPtr<CSSRule> rule = ruleForSourceData(sourceData);
+    RawPtr<CSSRule> rule = ruleForSourceData(sourceData);
     if (!rule || !rule->parentStyleSheet() || rule->type() != CSSRule::KEYFRAME_RULE) {
         exceptionState.throwDOMException(NotFoundError, "Source range didn't match existing style source range");
         return nullptr;
     }
 
-    RefPtrWillBeRawPtr<CSSKeyframeRule> keyframeRule = toCSSKeyframeRule(rule.get());
+    RawPtr<CSSKeyframeRule> keyframeRule = toCSSKeyframeRule(rule.get());
     keyframeRule->setKeyText(text, exceptionState);
 
     replaceText(sourceData->ruleHeaderRange, text, newRange, oldText);
@@ -1037,26 +1037,26 @@
     return keyframeRule;
 }
 
-PassRefPtrWillBeRawPtr<CSSRule> InspectorStyleSheet::setStyleText(const SourceRange& range, const String& text, SourceRange* newRange, String* oldText, ExceptionState& exceptionState)
+RawPtr<CSSRule> InspectorStyleSheet::setStyleText(const SourceRange& range, const String& text, SourceRange* newRange, String* oldText, ExceptionState& exceptionState)
 {
     if (!verifyStyleText(m_pageStyleSheet->ownerDocument(), text)) {
         exceptionState.throwDOMException(SyntaxError, "Style text is not valid.");
         return nullptr;
     }
 
-    RefPtrWillBeRawPtr<CSSRuleSourceData> sourceData = findRuleByBodyRange(range);
+    RawPtr<CSSRuleSourceData> sourceData = findRuleByBodyRange(range);
     if (!sourceData || !sourceData->styleSourceData) {
         exceptionState.throwDOMException(NotFoundError, "Source range didn't match existing style source range");
         return nullptr;
     }
 
-    RefPtrWillBeRawPtr<CSSRule> rule = ruleForSourceData(sourceData);
+    RawPtr<CSSRule> rule = ruleForSourceData(sourceData);
     if (!rule || !rule->parentStyleSheet() || (rule->type() != CSSRule::STYLE_RULE && rule->type() != CSSRule::KEYFRAME_RULE)) {
         exceptionState.throwDOMException(NotFoundError, "Source range didn't match existing style source range");
         return nullptr;
     }
 
-    RefPtrWillBeRawPtr<CSSStyleDeclaration> style = nullptr;
+    RawPtr<CSSStyleDeclaration> style = nullptr;
     if (rule->type() == CSSRule::STYLE_RULE)
         style = toCSSStyleRule(rule.get())->style();
     else if (rule->type() == CSSRule::KEYFRAME_RULE)
@@ -1069,26 +1069,26 @@
     return rule;
 }
 
-RefPtrWillBeRawPtr<CSSMediaRule> InspectorStyleSheet::setMediaRuleText(const SourceRange& range, const String& text, SourceRange* newRange, String* oldText, ExceptionState& exceptionState)
+RawPtr<CSSMediaRule> InspectorStyleSheet::setMediaRuleText(const SourceRange& range, const String& text, SourceRange* newRange, String* oldText, ExceptionState& exceptionState)
 {
     if (!verifyMediaText(m_pageStyleSheet->ownerDocument(), text)) {
         exceptionState.throwDOMException(SyntaxError, "Selector or media text is not valid.");
         return nullptr;
     }
 
-    RefPtrWillBeRawPtr<CSSRuleSourceData> sourceData = findRuleByHeaderRange(range);
+    RawPtr<CSSRuleSourceData> sourceData = findRuleByHeaderRange(range);
     if (!sourceData || !sourceData->mediaSourceData) {
         exceptionState.throwDOMException(NotFoundError, "Source range didn't match existing source range");
         return nullptr;
     }
 
-    RefPtrWillBeRawPtr<CSSRule> rule = ruleForSourceData(sourceData);
+    RawPtr<CSSRule> rule = ruleForSourceData(sourceData);
     if (!rule || !rule->parentStyleSheet() || rule->type() != CSSRule::MEDIA_RULE) {
         exceptionState.throwDOMException(NotFoundError, "Source range didn't match existing style source range");
         return nullptr;
     }
 
-    RefPtrWillBeRawPtr<CSSMediaRule>  mediaRule = InspectorCSSAgent::asCSSMediaRule(rule.get());
+    RawPtr<CSSMediaRule>  mediaRule = InspectorCSSAgent::asCSSMediaRule(rule.get());
     mediaRule->media()->setMediaText(text);
 
     replaceText(sourceData->ruleHeaderRange, text, newRange, oldText);
@@ -1097,12 +1097,12 @@
     return mediaRule;
 }
 
-RefPtrWillBeRawPtr<CSSRuleSourceData> InspectorStyleSheet::ruleSourceDataAfterSourceRange(const SourceRange& sourceRange)
+RawPtr<CSSRuleSourceData> InspectorStyleSheet::ruleSourceDataAfterSourceRange(const SourceRange& sourceRange)
 {
     ASSERT(m_sourceData);
     unsigned index = 0;
     for (; index < m_sourceData->size(); ++index) {
-        RefPtrWillBeRawPtr<CSSRuleSourceData> sd = m_sourceData->at(index);
+        RawPtr<CSSRuleSourceData> sd = m_sourceData->at(index);
         if (sd->ruleHeaderRange.start >= sourceRange.end)
             break;
     }
@@ -1153,9 +1153,9 @@
 {
     ASSERT(m_sourceData);
 
-    RefPtrWillBeRawPtr<CSSRuleSourceData> containingRuleSourceData = nullptr;
+    RawPtr<CSSRuleSourceData> containingRuleSourceData = nullptr;
     for (size_t i = 0; i < m_sourceData->size(); ++i) {
-        RefPtrWillBeRawPtr<CSSRuleSourceData> ruleSourceData = m_sourceData->at(i);
+        RawPtr<CSSRuleSourceData> ruleSourceData = m_sourceData->at(i);
         if (ruleSourceData->ruleHeaderRange.start < sourceRange.start && sourceRange.start < ruleSourceData->ruleBodyRange.start) {
             exceptionState.throwDOMException(NotFoundError, "Cannot insert rule inside rule selector.");
             return nullptr;
@@ -1166,13 +1166,13 @@
             containingRuleSourceData = ruleSourceData;
     }
 
-    RefPtrWillBeRawPtr<CSSRuleSourceData> insertBefore = ruleSourceDataAfterSourceRange(sourceRange);
-    RefPtrWillBeRawPtr<CSSRule> insertBeforeRule = ruleForSourceData(insertBefore);
+    RawPtr<CSSRuleSourceData> insertBefore = ruleSourceDataAfterSourceRange(sourceRange);
+    RawPtr<CSSRule> insertBeforeRule = ruleForSourceData(insertBefore);
 
     if (!containingRuleSourceData)
         return insertCSSOMRuleInStyleSheet(insertBeforeRule.get(), ruleText, exceptionState);
 
-    RefPtrWillBeRawPtr<CSSRule> rule = ruleForSourceData(containingRuleSourceData);
+    RawPtr<CSSRule> rule = ruleForSourceData(containingRuleSourceData);
     if (!rule || rule->type() != CSSRule::MEDIA_RULE) {
         exceptionState.throwDOMException(NotFoundError, "Cannot insert rule in non-media rule.");
         return nullptr;
@@ -1181,7 +1181,7 @@
     return insertCSSOMRuleInMediaRule(toCSSMediaRule(rule.get()), insertBeforeRule.get(), ruleText, exceptionState);
 }
 
-RefPtrWillBeRawPtr<CSSStyleRule> InspectorStyleSheet::addRule(const String& ruleText, const SourceRange& location, SourceRange* addedRange, ExceptionState& exceptionState)
+RawPtr<CSSStyleRule> InspectorStyleSheet::addRule(const String& ruleText, const SourceRange& location, SourceRange* addedRange, ExceptionState& exceptionState)
 {
     if (location.start != location.end) {
         exceptionState.throwDOMException(NotFoundError, "Source range must be collapsed.");
@@ -1198,7 +1198,7 @@
         return nullptr;
     }
 
-    RefPtrWillBeRawPtr<CSSStyleRule> styleRule = insertCSSOMRuleBySourceRange(location, ruleText, exceptionState);
+    RawPtr<CSSStyleRule> styleRule = insertCSSOMRuleBySourceRange(location, ruleText, exceptionState);
     if (exceptionState.hadException())
         return nullptr;
 
@@ -1215,10 +1215,10 @@
     }
 
     // Find index of CSSRule that entirely belongs to the range.
-    RefPtrWillBeRawPtr<CSSRuleSourceData> foundData = nullptr;
+    RawPtr<CSSRuleSourceData> foundData = nullptr;
 
     for (size_t i = 0; i < m_sourceData->size(); ++i) {
-        RefPtrWillBeRawPtr<CSSRuleSourceData> ruleSourceData = m_sourceData->at(i);
+        RawPtr<CSSRuleSourceData> ruleSourceData = m_sourceData->at(i);
         unsigned ruleStart = ruleSourceData->ruleHeaderRange.start;
         unsigned ruleEnd = ruleSourceData->ruleBodyRange.end + 1;
         bool startBelongs = ruleStart >= range.start && ruleStart < range.end;
@@ -1231,7 +1231,7 @@
         if (!foundData || foundData->ruleBodyRange.length() > ruleSourceData->ruleBodyRange.length())
             foundData = ruleSourceData;
     }
-    RefPtrWillBeRawPtr<CSSRule> rule = ruleForSourceData(foundData);
+    RawPtr<CSSRule> rule = ruleForSourceData(foundData);
     if (!rule) {
         exceptionState.throwDOMException(NotFoundError, "No style rule could be found in given range.");
         return false;
@@ -1283,11 +1283,11 @@
 
 void InspectorStyleSheet::innerSetText(const String& text, bool markAsLocallyModified)
 {
-    OwnPtrWillBeRawPtr<RuleSourceDataList> ruleTree = adoptPtrWillBeNoop(new RuleSourceDataList());
-    RefPtrWillBeRawPtr<StyleSheetContents> styleSheet = StyleSheetContents::create(m_pageStyleSheet->contents()->parserContext());
+    RawPtr<RuleSourceDataList> ruleTree = new RuleSourceDataList();
+    RawPtr<StyleSheetContents> styleSheet = StyleSheetContents::create(m_pageStyleSheet->contents()->parserContext());
     StyleSheetHandler handler(text, m_pageStyleSheet->ownerDocument(), ruleTree.get());
     CSSParser::parseSheetForInspector(m_pageStyleSheet->contents()->parserContext(), styleSheet.get(), text, handler);
-    RefPtrWillBeRawPtr<CSSStyleSheet> sourceDataSheet = nullptr;
+    RawPtr<CSSStyleSheet> sourceDataSheet = nullptr;
     if (toCSSImportRule(m_pageStyleSheet->ownerRule()))
         sourceDataSheet = CSSStyleSheet::create(styleSheet, toCSSImportRule(m_pageStyleSheet->ownerRule()));
     else
@@ -1296,7 +1296,7 @@
     m_parsedFlatRules.clear();
     collectFlatRules(sourceDataSheet.get(), &m_parsedFlatRules);
 
-    m_sourceData = adoptPtrWillBeNoop(new RuleSourceDataList());
+    m_sourceData = new RuleSourceDataList();
     flattenSourceData(ruleTree.get(), m_sourceData.get());
     m_text = text;
 
@@ -1366,7 +1366,7 @@
 
 PassOwnPtr<protocol::CSS::SelectorList> InspectorStyleSheet::buildObjectForSelectorList(CSSStyleRule* rule)
 {
-    RefPtrWillBeRawPtr<CSSRuleSourceData> sourceData = sourceDataForRule(rule);
+    RawPtr<CSSRuleSourceData> sourceData = sourceDataForRule(rule);
     OwnPtr<protocol::Array<protocol::CSS::Value>> selectors;
 
     // This intentionally does not rely on the source data to avoid catching the trailing comments (before the declaration starting '{').
@@ -1416,7 +1416,7 @@
         return nullptr;
 
     OwnPtr<protocol::CSS::Value> keyText = protocol::CSS::Value::create().setText(keyframeRule->keyText()).build();
-    RefPtrWillBeRawPtr<CSSRuleSourceData> sourceData = sourceDataForRule(keyframeRule);
+    RawPtr<CSSRuleSourceData> sourceData = sourceDataForRule(keyframeRule);
     if (sourceData)
         keyText->setRange(buildSourceRangeObject(sourceData->ruleHeaderRange));
     OwnPtr<protocol::CSS::CSSKeyframeRule> result = protocol::CSS::CSSKeyframeRule::create()
@@ -1442,7 +1442,7 @@
 {
     if (!m_sourceData)
         return nullptr;
-    RefPtrWillBeRawPtr<CSSRuleSourceData> sourceData = sourceDataForRule(rule);
+    RawPtr<CSSRuleSourceData> sourceData = sourceDataForRule(rule);
     if (!sourceData)
         return nullptr;
     return buildSourceRangeObject(sourceData->ruleHeaderRange);
@@ -1452,16 +1452,16 @@
 {
     if (!m_sourceData)
         return nullptr;
-    RefPtrWillBeRawPtr<CSSRuleSourceData> sourceData = sourceDataForRule(rule);
+    RawPtr<CSSRuleSourceData> sourceData = sourceDataForRule(rule);
     if (!sourceData || !sourceData->mediaSourceData || mediaQueryIndex >= sourceData->mediaSourceData->queryData.size())
         return nullptr;
-    RefPtrWillBeRawPtr<CSSMediaQuerySourceData> mediaQueryData = sourceData->mediaSourceData->queryData.at(mediaQueryIndex);
+    RawPtr<CSSMediaQuerySourceData> mediaQueryData = sourceData->mediaSourceData->queryData.at(mediaQueryIndex);
     if (mediaQueryExpIndex >= mediaQueryData->expData.size())
         return nullptr;
     return buildSourceRangeObject(mediaQueryData->expData.at(mediaQueryExpIndex).valueRange);
 }
 
-PassRefPtrWillBeRawPtr<InspectorStyle> InspectorStyleSheet::inspectorStyle(RefPtrWillBeRawPtr<CSSStyleDeclaration> style)
+RawPtr<InspectorStyle> InspectorStyleSheet::inspectorStyle(RawPtr<CSSStyleDeclaration> style)
 {
     return style ? InspectorStyle::create(style, sourceDataForRule(style->parentRule()), this) : nullptr;
 }
@@ -1538,13 +1538,13 @@
     return m_pageStyleSheet->contents()->sourceMapURL();
 }
 
-RefPtrWillBeRawPtr<CSSRuleSourceData> InspectorStyleSheet::findRuleByHeaderRange(const SourceRange& sourceRange)
+RawPtr<CSSRuleSourceData> InspectorStyleSheet::findRuleByHeaderRange(const SourceRange& sourceRange)
 {
     if (!m_sourceData)
         return nullptr;
 
     for (size_t i = 0; i < m_sourceData->size(); ++i) {
-        RefPtrWillBeRawPtr<CSSRuleSourceData> ruleSourceData = m_sourceData->at(i);
+        RawPtr<CSSRuleSourceData> ruleSourceData = m_sourceData->at(i);
         if (ruleSourceData->ruleHeaderRange.start == sourceRange.start && ruleSourceData->ruleHeaderRange.end == sourceRange.end) {
             return ruleSourceData;
         }
@@ -1552,13 +1552,13 @@
     return nullptr;
 }
 
-RefPtrWillBeRawPtr<CSSRuleSourceData> InspectorStyleSheet::findRuleByBodyRange(const SourceRange& sourceRange)
+RawPtr<CSSRuleSourceData> InspectorStyleSheet::findRuleByBodyRange(const SourceRange& sourceRange)
 {
     if (!m_sourceData)
         return nullptr;
 
     for (size_t i = 0; i < m_sourceData->size(); ++i) {
-        RefPtrWillBeRawPtr<CSSRuleSourceData> ruleSourceData = m_sourceData->at(i);
+        RawPtr<CSSRuleSourceData> ruleSourceData = m_sourceData->at(i);
         if (ruleSourceData->ruleBodyRange.start == sourceRange.start && ruleSourceData->ruleBodyRange.end == sourceRange.end) {
             return ruleSourceData;
         }
@@ -1566,7 +1566,7 @@
     return nullptr;
 }
 
-RefPtrWillBeRawPtr<CSSRule> InspectorStyleSheet::ruleForSourceData(RefPtrWillBeRawPtr<CSSRuleSourceData> sourceData)
+RawPtr<CSSRule> InspectorStyleSheet::ruleForSourceData(RawPtr<CSSRuleSourceData> sourceData)
 {
     if (!m_sourceData || !sourceData)
         return nullptr;
@@ -1583,13 +1583,13 @@
     ASSERT(it->value < m_cssomFlatRules.size());
 
     // Check that CSSOM did not mutate this rule.
-    RefPtrWillBeRawPtr<CSSRule> result = m_cssomFlatRules.at(it->value);
+    RawPtr<CSSRule> result = m_cssomFlatRules.at(it->value);
     if (canonicalCSSText(m_parsedFlatRules.at(index)) != canonicalCSSText(result))
         return nullptr;
     return result;
 }
 
-RefPtrWillBeRawPtr<CSSRuleSourceData> InspectorStyleSheet::sourceDataForRule(RefPtrWillBeRawPtr<CSSRule> rule)
+RawPtr<CSSRuleSourceData> InspectorStyleSheet::sourceDataForRule(RawPtr<CSSRule> rule)
 {
     if (!m_sourceData || !rule)
         return nullptr;
@@ -1606,7 +1606,7 @@
     ASSERT(it->value < m_sourceData->size());
 
     // Check that CSSOM did not mutate this rule.
-    RefPtrWillBeRawPtr<CSSRule> parsedRule = m_parsedFlatRules.at(it->value);
+    RawPtr<CSSRule> parsedRule = m_parsedFlatRules.at(it->value);
     if (canonicalCSSText(rule) != canonicalCSSText(parsedRule))
         return nullptr;
 
@@ -1701,12 +1701,12 @@
     return true;
 }
 
-PassRefPtrWillBeRawPtr<InspectorStyleSheetForInlineStyle> InspectorStyleSheetForInlineStyle::create(PassRefPtrWillBeRawPtr<Element> element, Listener* listener)
+RawPtr<InspectorStyleSheetForInlineStyle> InspectorStyleSheetForInlineStyle::create(RawPtr<Element> element, Listener* listener)
 {
-    return adoptRefWillBeNoop(new InspectorStyleSheetForInlineStyle(element, listener));
+    return new InspectorStyleSheetForInlineStyle(element, listener);
 }
 
-InspectorStyleSheetForInlineStyle::InspectorStyleSheetForInlineStyle(PassRefPtrWillBeRawPtr<Element> element, Listener* listener)
+InspectorStyleSheetForInlineStyle::InspectorStyleSheetForInlineStyle(RawPtr<Element> element, Listener* listener)
     : InspectorStyleSheetBase(listener)
     , m_element(element)
 {
@@ -1740,7 +1740,7 @@
     return true;
 }
 
-PassRefPtrWillBeRawPtr<InspectorStyle> InspectorStyleSheetForInlineStyle::inspectorStyle(RefPtrWillBeRawPtr<CSSStyleDeclaration> style)
+RawPtr<InspectorStyle> InspectorStyleSheetForInlineStyle::inspectorStyle(RawPtr<CSSStyleDeclaration> style)
 {
     if (!m_inspectorStyle)
         m_inspectorStyle = InspectorStyle::create(m_element->style(), ruleSourceData(), this);
@@ -1748,10 +1748,10 @@
     return m_inspectorStyle;
 }
 
-RefPtrWillBeRawPtr<CSSRuleSourceData> InspectorStyleSheetForInlineStyle::ruleSourceData()
+RawPtr<CSSRuleSourceData> InspectorStyleSheetForInlineStyle::ruleSourceData()
 {
     const String& text = elementStyleText();
-    RefPtrWillBeRawPtr<CSSRuleSourceData> ruleSourceData = nullptr;
+    RawPtr<CSSRuleSourceData> ruleSourceData = nullptr;
     if (text.isEmpty()) {
         ruleSourceData = CSSRuleSourceData::create(StyleRule::Style);
         ruleSourceData->ruleBodyRange.start = 0;
diff --git a/third_party/WebKit/Source/core/inspector/InspectorStyleSheet.h b/third_party/WebKit/Source/core/inspector/InspectorStyleSheet.h
index 038512b2..fd6fccd 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorStyleSheet.h
+++ b/third_party/WebKit/Source/core/inspector/InspectorStyleSheet.h
@@ -50,12 +50,12 @@
 class InspectorResourceAgent;
 class InspectorStyleSheetBase;
 
-typedef WillBeHeapVector<RefPtrWillBeMember<CSSRule>> CSSRuleVector;
+typedef HeapVector<Member<CSSRule>> CSSRuleVector;
 typedef Vector<unsigned> LineEndings;
 
-class InspectorStyle final : public RefCountedWillBeGarbageCollectedFinalized<InspectorStyle> {
+class InspectorStyle final : public GarbageCollectedFinalized<InspectorStyle> {
 public:
-    static PassRefPtrWillBeRawPtr<InspectorStyle> create(PassRefPtrWillBeRawPtr<CSSStyleDeclaration>, PassRefPtrWillBeRawPtr<CSSRuleSourceData>, InspectorStyleSheetBase* parentStyleSheet);
+    static RawPtr<InspectorStyle> create(RawPtr<CSSStyleDeclaration>, RawPtr<CSSRuleSourceData>, InspectorStyleSheetBase* parentStyleSheet);
 
     CSSStyleDeclaration* cssStyle() { return m_style.get(); }
     PassOwnPtr<protocol::CSS::CSSStyle> buildObjectForStyle();
@@ -66,18 +66,18 @@
     DECLARE_TRACE();
 
 private:
-    InspectorStyle(PassRefPtrWillBeRawPtr<CSSStyleDeclaration>, PassRefPtrWillBeRawPtr<CSSRuleSourceData>, InspectorStyleSheetBase* parentStyleSheet);
+    InspectorStyle(RawPtr<CSSStyleDeclaration>, RawPtr<CSSRuleSourceData>, InspectorStyleSheetBase* parentStyleSheet);
 
-    void populateAllProperties(WillBeHeapVector<CSSPropertySourceData>& result);
+    void populateAllProperties(HeapVector<CSSPropertySourceData>& result);
     PassOwnPtr<protocol::CSS::CSSStyle> styleWithProperties();
     String shorthandValue(const String& shorthandProperty);
 
-    RefPtrWillBeMember<CSSStyleDeclaration> m_style;
-    RefPtrWillBeMember<CSSRuleSourceData> m_sourceData;
-    RawPtrWillBeMember<InspectorStyleSheetBase> m_parentStyleSheet;
+    Member<CSSStyleDeclaration> m_style;
+    Member<CSSRuleSourceData> m_sourceData;
+    Member<InspectorStyleSheetBase> m_parentStyleSheet;
 };
 
-class InspectorStyleSheetBase : public RefCountedWillBeGarbageCollectedFinalized<InspectorStyleSheetBase> {
+class InspectorStyleSheetBase : public GarbageCollectedFinalized<InspectorStyleSheetBase> {
 public:
     class CORE_EXPORT Listener {
     public:
@@ -108,7 +108,7 @@
     void onStyleSheetTextChanged();
     const LineEndings* lineEndings();
 
-    virtual PassRefPtrWillBeRawPtr<InspectorStyle> inspectorStyle(RefPtrWillBeRawPtr<CSSStyleDeclaration>) = 0;
+    virtual RawPtr<InspectorStyle> inspectorStyle(RawPtr<CSSStyleDeclaration>) = 0;
 
 private:
     friend class InspectorStyle;
@@ -120,7 +120,7 @@
 
 class InspectorStyleSheet : public InspectorStyleSheetBase {
 public:
-    static PassRefPtrWillBeRawPtr<InspectorStyleSheet> create(InspectorResourceAgent*, PassRefPtrWillBeRawPtr<CSSStyleSheet> pageStyleSheet, const String& origin, const String& documentURL, InspectorCSSAgent*);
+    static RawPtr<InspectorStyleSheet> create(InspectorResourceAgent*, RawPtr<CSSStyleSheet> pageStyleSheet, const String& origin, const String& documentURL, InspectorCSSAgent*);
 
     ~InspectorStyleSheet() override;
     DECLARE_VIRTUAL_TRACE();
@@ -128,11 +128,11 @@
     String finalURL();
     bool setText(const String&, ExceptionState&) override;
     bool getText(String* result) override;
-    RefPtrWillBeRawPtr<CSSStyleRule>  setRuleSelector(const SourceRange&, const String& selector, SourceRange* newRange, String* oldSelector, ExceptionState&);
-    PassRefPtrWillBeRawPtr<CSSKeyframeRule>  setKeyframeKey(const SourceRange&, const String& text, SourceRange* newRange, String* oldText, ExceptionState&);
-    PassRefPtrWillBeRawPtr<CSSRule>  setStyleText(const SourceRange&, const String& text, SourceRange* newRange, String* oldSelector, ExceptionState&);
-    RefPtrWillBeRawPtr<CSSMediaRule>  setMediaRuleText(const SourceRange&, const String& selector, SourceRange* newRange, String* oldSelector, ExceptionState&);
-    RefPtrWillBeRawPtr<CSSStyleRule>  addRule(const String& ruleText, const SourceRange& location, SourceRange* addedRange, ExceptionState&);
+    RawPtr<CSSStyleRule>  setRuleSelector(const SourceRange&, const String& selector, SourceRange* newRange, String* oldSelector, ExceptionState&);
+    RawPtr<CSSKeyframeRule>  setKeyframeKey(const SourceRange&, const String& text, SourceRange* newRange, String* oldText, ExceptionState&);
+    RawPtr<CSSRule>  setStyleText(const SourceRange&, const String& text, SourceRange* newRange, String* oldSelector, ExceptionState&);
+    RawPtr<CSSMediaRule>  setMediaRuleText(const SourceRange&, const String& selector, SourceRange* newRange, String* oldSelector, ExceptionState&);
+    RawPtr<CSSStyleRule>  addRule(const String& ruleText, const SourceRange& location, SourceRange* addedRange, ExceptionState&);
     bool deleteRule(const SourceRange&, ExceptionState&);
 
     CSSStyleSheet* pageStyleSheet() { return m_pageStyleSheet.get(); }
@@ -147,18 +147,18 @@
 
     bool isInlineStyle() override { return false; }
     const CSSRuleVector& flatRules();
-    RefPtrWillBeRawPtr<CSSRuleSourceData> sourceDataForRule(RefPtrWillBeRawPtr<CSSRule>);
+    RawPtr<CSSRuleSourceData> sourceDataForRule(RawPtr<CSSRule>);
     String sourceMapURL() override;
 
 protected:
-    PassRefPtrWillBeRawPtr<InspectorStyle> inspectorStyle(RefPtrWillBeRawPtr<CSSStyleDeclaration>) override;
+    RawPtr<InspectorStyle> inspectorStyle(RawPtr<CSSStyleDeclaration>) override;
 
 private:
-    InspectorStyleSheet(InspectorResourceAgent*, PassRefPtrWillBeRawPtr<CSSStyleSheet> pageStyleSheet, const String& origin, const String& documentURL, InspectorCSSAgent*);
-    RefPtrWillBeRawPtr<CSSRuleSourceData> ruleSourceDataAfterSourceRange(const SourceRange&);
-    RefPtrWillBeRawPtr<CSSRuleSourceData> findRuleByHeaderRange(const SourceRange&);
-    RefPtrWillBeRawPtr<CSSRuleSourceData> findRuleByBodyRange(const SourceRange&);
-    RefPtrWillBeRawPtr<CSSRule> ruleForSourceData(RefPtrWillBeRawPtr<CSSRuleSourceData>);
+    InspectorStyleSheet(InspectorResourceAgent*, RawPtr<CSSStyleSheet> pageStyleSheet, const String& origin, const String& documentURL, InspectorCSSAgent*);
+    RawPtr<CSSRuleSourceData> ruleSourceDataAfterSourceRange(const SourceRange&);
+    RawPtr<CSSRuleSourceData> findRuleByHeaderRange(const SourceRange&);
+    RawPtr<CSSRuleSourceData> findRuleByBodyRange(const SourceRange&);
+    RawPtr<CSSRule> ruleForSourceData(RawPtr<CSSRuleSourceData>);
     CSSStyleRule* insertCSSOMRuleInStyleSheet(CSSRule* insertBefore, const String& ruleText, ExceptionState&);
     CSSStyleRule* insertCSSOMRuleInMediaRule(CSSMediaRule*, CSSRule* insertBefore, const String& ruleText, ExceptionState&);
     CSSStyleRule* insertCSSOMRuleBySourceRange(const SourceRange&, const String& ruleText, ExceptionState&);
@@ -176,12 +176,12 @@
     void innerSetText(const String& newText, bool markAsLocallyModified);
     Element* ownerStyleElement();
 
-    RawPtrWillBeMember<InspectorCSSAgent> m_cssAgent;
-    RawPtrWillBeMember<InspectorResourceAgent> m_resourceAgent;
-    RefPtrWillBeMember<CSSStyleSheet> m_pageStyleSheet;
+    Member<InspectorCSSAgent> m_cssAgent;
+    Member<InspectorResourceAgent> m_resourceAgent;
+    Member<CSSStyleSheet> m_pageStyleSheet;
     String m_origin;
     String m_documentURL;
-    OwnPtrWillBeMember<RuleSourceDataList> m_sourceData;
+    Member<RuleSourceDataList> m_sourceData;
     String m_text;
     CSSRuleVector m_cssomFlatRules;
     CSSRuleVector m_parsedFlatRules;
@@ -193,28 +193,28 @@
 
 class InspectorStyleSheetForInlineStyle final : public InspectorStyleSheetBase {
 public:
-    static PassRefPtrWillBeRawPtr<InspectorStyleSheetForInlineStyle> create(PassRefPtrWillBeRawPtr<Element>, Listener*);
+    static RawPtr<InspectorStyleSheetForInlineStyle> create(RawPtr<Element>, Listener*);
 
     void didModifyElementAttribute();
     bool setText(const String&, ExceptionState&) override;
     bool getText(String* result) override;
     CSSStyleDeclaration* inlineStyle();
-    RefPtrWillBeRawPtr<CSSRuleSourceData> ruleSourceData();
+    RawPtr<CSSRuleSourceData> ruleSourceData();
 
     DECLARE_VIRTUAL_TRACE();
 
 protected:
-    PassRefPtrWillBeRawPtr<InspectorStyle> inspectorStyle(RefPtrWillBeRawPtr<CSSStyleDeclaration>) override;
+    RawPtr<InspectorStyle> inspectorStyle(RawPtr<CSSStyleDeclaration>) override;
 
     // Also accessed by friend class InspectorStyle.
     bool isInlineStyle() override { return true; }
 
 private:
-    InspectorStyleSheetForInlineStyle(PassRefPtrWillBeRawPtr<Element>, Listener*);
+    InspectorStyleSheetForInlineStyle(RawPtr<Element>, Listener*);
     const String& elementStyleText();
 
-    RefPtrWillBeMember<Element> m_element;
-    RefPtrWillBeMember<InspectorStyle> m_inspectorStyle;
+    Member<Element> m_element;
+    Member<InspectorStyle> m_inspectorStyle;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/inspector/InspectorTracingAgent.h b/third_party/WebKit/Source/core/inspector/InspectorTracingAgent.h
index 3f647e3d..f2e8fa7 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorTracingAgent.h
+++ b/third_party/WebKit/Source/core/inspector/InspectorTracingAgent.h
@@ -30,9 +30,9 @@
         virtual void disableTracing() { }
     };
 
-    static PassOwnPtrWillBeRawPtr<InspectorTracingAgent> create(Client* client, InspectorWorkerAgent* workerAgent, InspectedFrames* inspectedFrames)
+    static RawPtr<InspectorTracingAgent> create(Client* client, InspectorWorkerAgent* workerAgent, InspectedFrames* inspectedFrames)
     {
-        return adoptPtrWillBeNoop(new InspectorTracingAgent(client, workerAgent, inspectedFrames));
+        return new InspectorTracingAgent(client, workerAgent, inspectedFrames);
     }
 
     DECLARE_VIRTUAL_TRACE();
@@ -57,8 +57,8 @@
 
     int m_layerTreeId;
     Client* m_client;
-    RawPtrWillBeMember<InspectorWorkerAgent> m_workerAgent;
-    RawPtrWillBeMember<InspectedFrames> m_inspectedFrames;
+    Member<InspectorWorkerAgent> m_workerAgent;
+    Member<InspectedFrames> m_inspectedFrames;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/inspector/InspectorWorkerAgent.cpp b/third_party/WebKit/Source/core/inspector/InspectorWorkerAgent.cpp
index 4ea27a6..06d41b43 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorWorkerAgent.cpp
+++ b/third_party/WebKit/Source/core/inspector/InspectorWorkerAgent.cpp
@@ -46,9 +46,9 @@
 static const char waitForDebuggerOnStart[] = "waitForDebuggerOnStart";
 };
 
-PassOwnPtrWillBeRawPtr<InspectorWorkerAgent> InspectorWorkerAgent::create(InspectedFrames* inspectedFrames, PageConsoleAgent* consoleAgent)
+RawPtr<InspectorWorkerAgent> InspectorWorkerAgent::create(InspectedFrames* inspectedFrames, PageConsoleAgent* consoleAgent)
 {
-    return adoptPtrWillBeNoop(new InspectorWorkerAgent(inspectedFrames, consoleAgent));
+    return new InspectorWorkerAgent(inspectedFrames, consoleAgent);
 }
 
 InspectorWorkerAgent::InspectorWorkerAgent(InspectedFrames* inspectedFrames, PageConsoleAgent* consoleAgent)
diff --git a/third_party/WebKit/Source/core/inspector/InspectorWorkerAgent.h b/third_party/WebKit/Source/core/inspector/InspectorWorkerAgent.h
index 0a3f402..f1d777c 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorWorkerAgent.h
+++ b/third_party/WebKit/Source/core/inspector/InspectorWorkerAgent.h
@@ -49,7 +49,7 @@
     , public WorkerInspectorProxy::PageInspector {
     WTF_MAKE_NONCOPYABLE(InspectorWorkerAgent);
 public:
-    static PassOwnPtrWillBeRawPtr<InspectorWorkerAgent> create(InspectedFrames*, PageConsoleAgent*);
+    static RawPtr<InspectorWorkerAgent> create(InspectedFrames*, PageConsoleAgent*);
     ~InspectorWorkerAgent() override;
     DECLARE_VIRTUAL_TRACE();
 
@@ -79,10 +79,10 @@
     void dispatchMessageFromWorker(WorkerInspectorProxy*, const String& message) override;
     void workerConsoleAgentEnabled(WorkerInspectorProxy*) override;
 
-    RawPtrWillBeMember<InspectedFrames> m_inspectedFrames;
-    WillBeHeapHashMap<String, RawPtrWillBeMember<WorkerInspectorProxy>> m_connectedProxies;
+    Member<InspectedFrames> m_inspectedFrames;
+    HeapHashMap<String, Member<WorkerInspectorProxy>> m_connectedProxies;
     String m_tracingSessionId;
-    RawPtrWillBeMember<PageConsoleAgent> m_consoleAgent;
+    Member<PageConsoleAgent> m_consoleAgent;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/inspector/LayoutEditor.cpp b/third_party/WebKit/Source/core/inspector/LayoutEditor.cpp
index 5e88c07..3d37240 100644
--- a/third_party/WebKit/Source/core/inspector/LayoutEditor.cpp
+++ b/third_party/WebKit/Source/core/inspector/LayoutEditor.cpp
@@ -190,13 +190,13 @@
     editableSelectorUpdated(false);
 }
 
-RefPtrWillBeRawPtr<CSSPrimitiveValue> LayoutEditor::getPropertyCSSValue(CSSPropertyID property) const
+RawPtr<CSSPrimitiveValue> LayoutEditor::getPropertyCSSValue(CSSPropertyID property) const
 {
-    RefPtrWillBeRawPtr<CSSStyleDeclaration> style = m_cssAgent->findEffectiveDeclaration(property, m_matchedStyles);
+    RawPtr<CSSStyleDeclaration> style = m_cssAgent->findEffectiveDeclaration(property, m_matchedStyles);
     if (!style)
         return nullptr;
 
-    RefPtrWillBeRawPtr<CSSValue> cssValue = style->getPropertyCSSValueInternal(property);
+    RawPtr<CSSValue> cssValue = style->getPropertyCSSValueInternal(property);
     if (!cssValue || !cssValue->isPrimitiveValue())
         return nullptr;
 
@@ -257,7 +257,7 @@
 
 PassOwnPtr<protocol::DictionaryValue> LayoutEditor::createValueDescription(const String& propertyName)
 {
-    RefPtrWillBeRawPtr<CSSPrimitiveValue> cssValue = getPropertyCSSValue(cssPropertyID(propertyName));
+    RawPtr<CSSPrimitiveValue> cssValue = getPropertyCSSValue(cssPropertyID(propertyName));
     if (cssValue && !(cssValue->isLength() || cssValue->isPercentage()))
         return nullptr;
 
@@ -287,7 +287,7 @@
     if (!m_changingProperty)
         return;
 
-    RefPtrWillBeRawPtr<CSSPrimitiveValue> cssValue = getPropertyCSSValue(m_changingProperty);
+    RawPtr<CSSPrimitiveValue> cssValue = getPropertyCSSValue(m_changingProperty);
     m_valueUnitType = cssValue ? cssValue->typeWithCalcResolved() : CSSPrimitiveValue::UnitType::Pixels;
     if (!isMutableUnitType(m_valueUnitType))
         return;
@@ -386,7 +386,7 @@
     object->setArray("medias", mediaListValue.release());
 
     TrackExceptionState exceptionState;
-    RefPtrWillBeRawPtr<StaticElementList> elements = ownerDocument->querySelectorAll(AtomicString(currentSelectorText), exceptionState);
+    RawPtr<StaticElementList> elements = ownerDocument->querySelectorAll(AtomicString(currentSelectorText), exceptionState);
 
     if (!elements || exceptionState.hadException())
         return object.release();
diff --git a/third_party/WebKit/Source/core/inspector/LayoutEditor.h b/third_party/WebKit/Source/core/inspector/LayoutEditor.h
index 279d7fe..91c4fc5 100644
--- a/third_party/WebKit/Source/core/inspector/LayoutEditor.h
+++ b/third_party/WebKit/Source/core/inspector/LayoutEditor.h
@@ -23,12 +23,11 @@
 class InspectorDOMAgent;
 class ScriptController;
 
-class CORE_EXPORT LayoutEditor final : public NoBaseWillBeGarbageCollectedFinalized<LayoutEditor> {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(LayoutEditor);
+class CORE_EXPORT LayoutEditor final : public GarbageCollectedFinalized<LayoutEditor> {
 public:
-    static PassOwnPtrWillBeRawPtr<LayoutEditor> create(Element* element, InspectorCSSAgent* cssAgent, InspectorDOMAgent* domAgent, ScriptController* scriptController)
+    static RawPtr<LayoutEditor> create(Element* element, InspectorCSSAgent* cssAgent, InspectorDOMAgent* domAgent, ScriptController* scriptController)
     {
-        return adoptPtrWillBeNoop(new LayoutEditor(element, cssAgent, domAgent, scriptController));
+        return new LayoutEditor(element, cssAgent, domAgent, scriptController);
     }
 
     ~LayoutEditor();
@@ -46,7 +45,7 @@
 
 private:
     LayoutEditor(Element*, InspectorCSSAgent*, InspectorDOMAgent*, ScriptController*);
-    RefPtrWillBeRawPtr<CSSPrimitiveValue> getPropertyCSSValue(CSSPropertyID) const;
+    RawPtr<CSSPrimitiveValue> getPropertyCSSValue(CSSPropertyID) const;
     PassOwnPtr<protocol::DictionaryValue> createValueDescription(const String&);
     void appendAnchorFor(protocol::ListValue*, const String&, const String&);
     bool setCSSPropertyValueInCurrentRule(const String&);
@@ -55,17 +54,17 @@
     PassOwnPtr<protocol::DictionaryValue> currentSelectorInfo(CSSStyleDeclaration*) const;
     bool growInside(String propertyName, CSSPrimitiveValue*);
 
-    RefPtrWillBeMember<Element> m_element;
-    RawPtrWillBeMember<InspectorCSSAgent> m_cssAgent;
-    RawPtrWillBeMember<InspectorDOMAgent> m_domAgent;
-    RawPtrWillBeMember<ScriptController> m_scriptController;
+    Member<Element> m_element;
+    Member<InspectorCSSAgent> m_cssAgent;
+    Member<InspectorDOMAgent> m_domAgent;
+    Member<ScriptController> m_scriptController;
     CSSPropertyID m_changingProperty;
     float m_propertyInitialValue;
     float m_factor;
     CSSPrimitiveValue::UnitType m_valueUnitType;
     bool m_isDirty;
 
-    WillBeHeapVector<RefPtrWillBeMember<CSSStyleDeclaration>> m_matchedStyles;
+    HeapVector<Member<CSSStyleDeclaration>> m_matchedStyles;
     HashMap<String, bool> m_growsInside;
     unsigned m_currentRuleIndex;
 };
diff --git a/third_party/WebKit/Source/core/inspector/MainThreadDebugger.cpp b/third_party/WebKit/Source/core/inspector/MainThreadDebugger.cpp
index 1c95670e..81a3c22 100644
--- a/third_party/WebKit/Source/core/inspector/MainThreadDebugger.cpp
+++ b/third_party/WebKit/Source/core/inspector/MainThreadDebugger.cpp
@@ -194,7 +194,7 @@
     if (!root->loader().stateMachine()->committedFirstRealDocumentLoad())
         return;
 
-    OwnPtrWillBeRawPtr<InspectedFrames> inspectedFrames = InspectedFrames::create(root);
+    RawPtr<InspectedFrames> inspectedFrames = InspectedFrames::create(root);
 
     Vector<std::pair<ScriptState*, SecurityOrigin*>> isolatedContexts;
     for (LocalFrame* frame : *inspectedFrames) {
diff --git a/third_party/WebKit/Source/core/inspector/MuteConsoleScope.h b/third_party/WebKit/Source/core/inspector/MuteConsoleScope.h
index b141fec..935a11b5 100644
--- a/third_party/WebKit/Source/core/inspector/MuteConsoleScope.h
+++ b/third_party/WebKit/Source/core/inspector/MuteConsoleScope.h
@@ -42,7 +42,7 @@
     }
 
 private:
-    RawPtrWillBeMember<T> m_agent = nullptr;
+    Member<T> m_agent = nullptr;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/inspector/NetworkResourcesData.cpp b/third_party/WebKit/Source/core/inspector/NetworkResourcesData.cpp
index c643eb16..c573352 100644
--- a/third_party/WebKit/Source/core/inspector/NetworkResourcesData.cpp
+++ b/third_party/WebKit/Source/core/inspector/NetworkResourcesData.cpp
@@ -36,9 +36,9 @@
 
 namespace blink {
 
-PassRefPtrWillBeRawPtr<XHRReplayData> XHRReplayData::create(ExecutionContext* executionContext, const AtomicString& method, const KURL& url, bool async, PassRefPtr<EncodedFormData> formData, bool includeCredentials)
+RawPtr<XHRReplayData> XHRReplayData::create(ExecutionContext* executionContext, const AtomicString& method, const KURL& url, bool async, PassRefPtr<EncodedFormData> formData, bool includeCredentials)
 {
-    return adoptRefWillBeNoop(new XHRReplayData(executionContext, method, url, async, formData, includeCredentials));
+    return new XHRReplayData(executionContext, method, url, async, formData, includeCredentials);
 }
 
 void XHRReplayData::addHeader(const AtomicString& key, const AtomicString& value)
@@ -302,9 +302,9 @@
     resourceData->setXHRReplayData(xhrReplayData);
 }
 
-WillBeHeapVector<RawPtrWillBeMember<NetworkResourcesData::ResourceData>> NetworkResourcesData::resources()
+HeapVector<Member<NetworkResourcesData::ResourceData>> NetworkResourcesData::resources()
 {
-    WillBeHeapVector<RawPtrWillBeMember<ResourceData>> result;
+    HeapVector<Member<ResourceData>> result;
     for (auto& request : m_requestIdToResourceDataMap)
         result.append(request.value);
     return result;
diff --git a/third_party/WebKit/Source/core/inspector/NetworkResourcesData.h b/third_party/WebKit/Source/core/inspector/NetworkResourcesData.h
index b6afc52..6c8bb55 100644
--- a/third_party/WebKit/Source/core/inspector/NetworkResourcesData.h
+++ b/third_party/WebKit/Source/core/inspector/NetworkResourcesData.h
@@ -51,11 +51,11 @@
 class TextResourceDecoder;
 
 class XHRReplayData final
-    : public RefCountedWillBeGarbageCollectedFinalized<XHRReplayData>
+    : public GarbageCollectedFinalized<XHRReplayData>
     , public ContextLifecycleObserver {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(XHRReplayData);
+    USING_GARBAGE_COLLECTED_MIXIN(XHRReplayData);
 public:
-    static PassRefPtrWillBeRawPtr<XHRReplayData> create(ExecutionContext*, const AtomicString& method, const KURL&, bool async, PassRefPtr<EncodedFormData>, bool includeCredentials);
+    static RawPtr<XHRReplayData> create(ExecutionContext*, const AtomicString& method, const KURL&, bool async, PassRefPtr<EncodedFormData>, bool includeCredentials);
 
     void addHeader(const AtomicString& key, const AtomicString& value);
     const AtomicString& method() const { return m_method; }
@@ -78,11 +78,9 @@
     bool m_includeCredentials;
 };
 
-class NetworkResourcesData final : public NoBaseWillBeGarbageCollectedFinalized<NetworkResourcesData> {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(NetworkResourcesData);
+class NetworkResourcesData final : public GarbageCollectedFinalized<NetworkResourcesData> {
 public:
-    class ResourceData final : public NoBaseWillBeGarbageCollectedFinalized<ResourceData> {
-        USING_FAST_MALLOC_WILL_BE_REMOVED(ResourceData);
+    class ResourceData final : public GarbageCollectedFinalized<ResourceData> {
         friend class NetworkResourcesData;
     public:
         ResourceData(const String& requestId, const String& loaderId, const KURL&);
@@ -144,7 +142,7 @@
         String m_frameId;
         KURL m_requestedURL;
         String m_content;
-        RefPtrWillBeMember<XHRReplayData> m_xhrReplayData;
+        Member<XHRReplayData> m_xhrReplayData;
         bool m_base64Encoded;
         RefPtr<SharedBuffer> m_dataBuffer;
         bool m_isContentEvicted;
@@ -156,13 +154,13 @@
         OwnPtr<TextResourceDecoder> m_decoder;
 
         RefPtr<SharedBuffer> m_buffer;
-        RefPtrWillBeMember<Resource> m_cachedResource;
+        Member<Resource> m_cachedResource;
         RefPtr<BlobDataHandle> m_downloadedFileBlob;
     };
 
-    static PassOwnPtrWillBeRawPtr<NetworkResourcesData> create(size_t totalBufferSize, size_t resourceBufferSize)
+    static RawPtr<NetworkResourcesData> create(size_t totalBufferSize, size_t resourceBufferSize)
     {
-        return adoptPtrWillBeNoop(new NetworkResourcesData(totalBufferSize, resourceBufferSize));
+        return new NetworkResourcesData(totalBufferSize, resourceBufferSize);
     }
     ~NetworkResourcesData();
 
@@ -181,7 +179,7 @@
     void setResourcesDataSizeLimits(size_t maximumResourcesContentSize, size_t maximumSingleResourceContentSize);
     void setXHRReplayData(const String& requestId, XHRReplayData*);
     XHRReplayData* xhrReplayData(const String& requestId);
-    WillBeHeapVector<RawPtrWillBeMember<ResourceData>> resources();
+    HeapVector<Member<ResourceData>> resources();
 
     DECLARE_TRACE();
 private:
@@ -195,7 +193,7 @@
 
     typedef HashMap<String, String> ReusedRequestIds;
     ReusedRequestIds m_reusedXHRReplayDataRequestIds;
-    typedef WillBeHeapHashMap<String, RawPtrWillBeMember<ResourceData>> ResourceDataMap;
+    typedef HeapHashMap<String, Member<ResourceData>> ResourceDataMap;
     ResourceDataMap m_requestIdToResourceDataMap;
     size_t m_contentSize;
     size_t m_maximumResourcesContentSize;
diff --git a/third_party/WebKit/Source/core/inspector/PageConsoleAgent.h b/third_party/WebKit/Source/core/inspector/PageConsoleAgent.h
index d00a32a..3821f66 100644
--- a/third_party/WebKit/Source/core/inspector/PageConsoleAgent.h
+++ b/third_party/WebKit/Source/core/inspector/PageConsoleAgent.h
@@ -47,9 +47,9 @@
 class CORE_EXPORT PageConsoleAgent final : public InspectorConsoleAgent {
     WTF_MAKE_NONCOPYABLE(PageConsoleAgent);
 public:
-    static PassOwnPtrWillBeRawPtr<PageConsoleAgent> create(V8RuntimeAgent* runtimeAgent, V8DebuggerAgent* debuggerAgent, InspectorDOMAgent* domAgent, InspectedFrames* inspectedFrames)
+    static RawPtr<PageConsoleAgent> create(V8RuntimeAgent* runtimeAgent, V8DebuggerAgent* debuggerAgent, InspectorDOMAgent* domAgent, InspectedFrames* inspectedFrames)
     {
-        return adoptPtrWillBeNoop(new PageConsoleAgent(runtimeAgent, debuggerAgent, domAgent, inspectedFrames));
+        return new PageConsoleAgent(runtimeAgent, debuggerAgent, domAgent, inspectedFrames);
     }
     ~PageConsoleAgent() override;
     DECLARE_VIRTUAL_TRACE();
@@ -70,9 +70,9 @@
     PageConsoleAgent(V8RuntimeAgent*, V8DebuggerAgent*, InspectorDOMAgent*, InspectedFrames*);
     void clearMessages(ErrorString*) override;
 
-    RawPtrWillBeMember<InspectorDOMAgent> m_inspectorDOMAgent;
-    RawPtrWillBeMember<InspectedFrames> m_inspectedFrames;
-    using WorkerInspectorProxySet = WillBeHeapHashSet<RawPtrWillBeMember<WorkerInspectorProxy>>;
+    Member<InspectorDOMAgent> m_inspectorDOMAgent;
+    Member<InspectedFrames> m_inspectedFrames;
+    using WorkerInspectorProxySet = HeapHashSet<Member<WorkerInspectorProxy>>;
     WorkerInspectorProxySet m_workersWithEnabledConsole;
 
     static int s_enabledAgentCount;
diff --git a/third_party/WebKit/Source/core/inspector/PageDebuggerAgent.cpp b/third_party/WebKit/Source/core/inspector/PageDebuggerAgent.cpp
index 741124df..b2f77ac3 100644
--- a/third_party/WebKit/Source/core/inspector/PageDebuggerAgent.cpp
+++ b/third_party/WebKit/Source/core/inspector/PageDebuggerAgent.cpp
@@ -47,9 +47,9 @@
 
 namespace blink {
 
-PassOwnPtrWillBeRawPtr<PageDebuggerAgent> PageDebuggerAgent::create(InspectedFrames* inspectedFrames, V8RuntimeAgent* runtimeAgent)
+RawPtr<PageDebuggerAgent> PageDebuggerAgent::create(InspectedFrames* inspectedFrames, V8RuntimeAgent* runtimeAgent)
 {
-    return adoptPtrWillBeNoop(new PageDebuggerAgent(inspectedFrames, runtimeAgent));
+    return new PageDebuggerAgent(inspectedFrames, runtimeAgent);
 }
 
 PageDebuggerAgent::PageDebuggerAgent(InspectedFrames* inspectedFrames, V8RuntimeAgent* runtimeAgent)
diff --git a/third_party/WebKit/Source/core/inspector/PageDebuggerAgent.h b/third_party/WebKit/Source/core/inspector/PageDebuggerAgent.h
index ec6c98c..98b1071 100644
--- a/third_party/WebKit/Source/core/inspector/PageDebuggerAgent.h
+++ b/third_party/WebKit/Source/core/inspector/PageDebuggerAgent.h
@@ -46,9 +46,8 @@
 class CORE_EXPORT PageDebuggerAgent final
     : public InspectorDebuggerAgent {
     WTF_MAKE_NONCOPYABLE(PageDebuggerAgent);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(PageDebuggerAgent);
 public:
-    static PassOwnPtrWillBeRawPtr<PageDebuggerAgent> create(InspectedFrames*, V8RuntimeAgent*);
+    static RawPtr<PageDebuggerAgent> create(InspectedFrames*, V8RuntimeAgent*);
     ~PageDebuggerAgent() override;
     DECLARE_VIRTUAL_TRACE();
 
@@ -67,7 +66,7 @@
     // V8DebuggerAgent::Client implemntation.
     bool canExecuteScripts() const;
 
-    RawPtrWillBeMember<InspectedFrames> m_inspectedFrames;
+    Member<InspectedFrames> m_inspectedFrames;
     HashMap<String, String> m_compiledScriptURLs;
 };
 
diff --git a/third_party/WebKit/Source/core/inspector/PageRuntimeAgent.h b/third_party/WebKit/Source/core/inspector/PageRuntimeAgent.h
index 3157598..7881aca 100644
--- a/third_party/WebKit/Source/core/inspector/PageRuntimeAgent.h
+++ b/third_party/WebKit/Source/core/inspector/PageRuntimeAgent.h
@@ -42,9 +42,9 @@
 
 class CORE_EXPORT PageRuntimeAgent final : public InspectorRuntimeAgent {
 public:
-    static PassOwnPtrWillBeRawPtr<PageRuntimeAgent> create(InspectorRuntimeAgent::Client* client, V8Debugger* debugger, InspectedFrames* inspectedFrames, int contextGroupId)
+    static RawPtr<PageRuntimeAgent> create(InspectorRuntimeAgent::Client* client, V8Debugger* debugger, InspectedFrames* inspectedFrames, int contextGroupId)
     {
-        return adoptPtrWillBeNoop(new PageRuntimeAgent(client, debugger, inspectedFrames, contextGroupId));
+        return new PageRuntimeAgent(client, debugger, inspectedFrames, contextGroupId);
     }
     ~PageRuntimeAgent() override;
     DECLARE_VIRTUAL_TRACE();
@@ -58,7 +58,7 @@
     void muteConsole() override;
     void unmuteConsole() override;
 
-    RawPtrWillBeMember<InspectedFrames> m_inspectedFrames;
+    Member<InspectedFrames> m_inspectedFrames;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/inspector/ScriptArguments.cpp b/third_party/WebKit/Source/core/inspector/ScriptArguments.cpp
index 409af43..b6f5dcf8b 100644
--- a/third_party/WebKit/Source/core/inspector/ScriptArguments.cpp
+++ b/third_party/WebKit/Source/core/inspector/ScriptArguments.cpp
@@ -169,12 +169,12 @@
 
 } // namespace
 
-PassRefPtrWillBeRawPtr<ScriptArguments> ScriptArguments::create(ScriptState* scriptState, Vector<ScriptValue>& arguments)
+RawPtr<ScriptArguments> ScriptArguments::create(ScriptState* scriptState, Vector<ScriptValue>& arguments)
 {
-    return adoptRefWillBeNoop(new ScriptArguments(scriptState, arguments));
+    return new ScriptArguments(scriptState, arguments);
 }
 
-PassRefPtrWillBeRawPtr<ScriptArguments> ScriptArguments::create(ScriptState* scriptState, const v8::FunctionCallbackInfo<v8::Value>& v8arguments, unsigned skipArgumentCount)
+RawPtr<ScriptArguments> ScriptArguments::create(ScriptState* scriptState, const v8::FunctionCallbackInfo<v8::Value>& v8arguments, unsigned skipArgumentCount)
 {
     Vector<ScriptValue> arguments;
     for (int i = skipArgumentCount; i < v8arguments.Length(); ++i)
diff --git a/third_party/WebKit/Source/core/inspector/ScriptArguments.h b/third_party/WebKit/Source/core/inspector/ScriptArguments.h
index 861b1b2..3af6699 100644
--- a/third_party/WebKit/Source/core/inspector/ScriptArguments.h
+++ b/third_party/WebKit/Source/core/inspector/ScriptArguments.h
@@ -41,10 +41,10 @@
 
 class ScriptValue;
 
-class ScriptArguments final : public RefCountedWillBeGarbageCollectedFinalized<ScriptArguments> {
+class ScriptArguments final : public GarbageCollectedFinalized<ScriptArguments> {
 public:
-    static PassRefPtrWillBeRawPtr<ScriptArguments> create(ScriptState*, Vector<ScriptValue>& arguments);
-    static PassRefPtrWillBeRawPtr<ScriptArguments> create(ScriptState*, const v8::FunctionCallbackInfo<v8::Value>& arguments, unsigned skipArgumentCount);
+    static RawPtr<ScriptArguments> create(ScriptState*, Vector<ScriptValue>& arguments);
+    static RawPtr<ScriptArguments> create(ScriptState*, const v8::FunctionCallbackInfo<v8::Value>& arguments, unsigned skipArgumentCount);
 
     ~ScriptArguments();
 
diff --git a/third_party/WebKit/Source/core/inspector/WorkerConsoleAgent.h b/third_party/WebKit/Source/core/inspector/WorkerConsoleAgent.h
index 2cb0d59..4fcd978 100644
--- a/third_party/WebKit/Source/core/inspector/WorkerConsoleAgent.h
+++ b/third_party/WebKit/Source/core/inspector/WorkerConsoleAgent.h
@@ -41,9 +41,9 @@
 class WorkerConsoleAgent final : public InspectorConsoleAgent {
     WTF_MAKE_NONCOPYABLE(WorkerConsoleAgent);
 public:
-    static PassOwnPtrWillBeRawPtr<WorkerConsoleAgent> create(V8RuntimeAgent* runtimeAgent, V8DebuggerAgent* debuggerAgent, WorkerGlobalScope* workerGlobalScope)
+    static RawPtr<WorkerConsoleAgent> create(V8RuntimeAgent* runtimeAgent, V8DebuggerAgent* debuggerAgent, WorkerGlobalScope* workerGlobalScope)
     {
-        return adoptPtrWillBeNoop(new WorkerConsoleAgent(runtimeAgent, debuggerAgent, workerGlobalScope));
+        return new WorkerConsoleAgent(runtimeAgent, debuggerAgent, workerGlobalScope);
     }
     ~WorkerConsoleAgent() override;
     DECLARE_VIRTUAL_TRACE();
@@ -60,7 +60,7 @@
 private:
     WorkerConsoleAgent(V8RuntimeAgent*, V8DebuggerAgent*, WorkerGlobalScope*);
 
-    RawPtrWillBeMember<WorkerGlobalScope> m_workerGlobalScope;
+    Member<WorkerGlobalScope> m_workerGlobalScope;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/inspector/WorkerDebuggerAgent.cpp b/third_party/WebKit/Source/core/inspector/WorkerDebuggerAgent.cpp
index fdbf967..98e3abf 100644
--- a/third_party/WebKit/Source/core/inspector/WorkerDebuggerAgent.cpp
+++ b/third_party/WebKit/Source/core/inspector/WorkerDebuggerAgent.cpp
@@ -34,9 +34,9 @@
 
 namespace blink {
 
-PassOwnPtrWillBeRawPtr<WorkerDebuggerAgent> WorkerDebuggerAgent::create(WorkerGlobalScope* inspectedWorkerGlobalScope, V8RuntimeAgent* runtimeAgent)
+RawPtr<WorkerDebuggerAgent> WorkerDebuggerAgent::create(WorkerGlobalScope* inspectedWorkerGlobalScope, V8RuntimeAgent* runtimeAgent)
 {
-    return adoptPtrWillBeNoop(new WorkerDebuggerAgent(inspectedWorkerGlobalScope, runtimeAgent));
+    return new WorkerDebuggerAgent(inspectedWorkerGlobalScope, runtimeAgent);
 }
 
 WorkerDebuggerAgent::WorkerDebuggerAgent(WorkerGlobalScope* inspectedWorkerGlobalScope, V8RuntimeAgent* runtimeAgent)
diff --git a/third_party/WebKit/Source/core/inspector/WorkerDebuggerAgent.h b/third_party/WebKit/Source/core/inspector/WorkerDebuggerAgent.h
index 4bc9a54..1e111bd 100644
--- a/third_party/WebKit/Source/core/inspector/WorkerDebuggerAgent.h
+++ b/third_party/WebKit/Source/core/inspector/WorkerDebuggerAgent.h
@@ -39,9 +39,8 @@
 
 class WorkerDebuggerAgent final : public InspectorDebuggerAgent {
     WTF_MAKE_NONCOPYABLE(WorkerDebuggerAgent);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(WorkerDebuggerAgent);
 public:
-    static PassOwnPtrWillBeRawPtr<WorkerDebuggerAgent> create(WorkerGlobalScope*, V8RuntimeAgent*);
+    static RawPtr<WorkerDebuggerAgent> create(WorkerGlobalScope*, V8RuntimeAgent*);
     ~WorkerDebuggerAgent() override;
     DECLARE_VIRTUAL_TRACE();
 
@@ -52,7 +51,7 @@
     void muteConsole() override;
     void unmuteConsole() override;
 
-    RawPtrWillBeMember<WorkerGlobalScope> m_inspectedWorkerGlobalScope;
+    Member<WorkerGlobalScope> m_inspectedWorkerGlobalScope;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/inspector/WorkerInspectorController.cpp b/third_party/WebKit/Source/core/inspector/WorkerInspectorController.cpp
index 01509ee8b..234ad6c 100644
--- a/third_party/WebKit/Source/core/inspector/WorkerInspectorController.cpp
+++ b/third_party/WebKit/Source/core/inspector/WorkerInspectorController.cpp
@@ -50,10 +50,10 @@
 
 namespace blink {
 
-PassRefPtrWillBeRawPtr<WorkerInspectorController> WorkerInspectorController::create(WorkerGlobalScope* workerGlobalScope)
+RawPtr<WorkerInspectorController> WorkerInspectorController::create(WorkerGlobalScope* workerGlobalScope)
 {
     WorkerThreadDebugger* debugger = WorkerThreadDebugger::from(workerGlobalScope->thread()->isolate());
-    return debugger ? adoptRefWillBeNoop(new WorkerInspectorController(workerGlobalScope, debugger->debugger(), debugger->contextGroupId())) : nullptr;
+    return debugger ? new WorkerInspectorController(workerGlobalScope, debugger->debugger(), debugger->contextGroupId()) : nullptr;
 }
 
 WorkerInspectorController::WorkerInspectorController(WorkerGlobalScope* workerGlobalScope, V8Debugger* debugger, int contextGroupId)
@@ -61,18 +61,18 @@
     , m_instrumentingAgents(InstrumentingAgents::create())
     , m_agents(m_instrumentingAgents.get())
 {
-    OwnPtrWillBeRawPtr<WorkerRuntimeAgent> workerRuntimeAgent = WorkerRuntimeAgent::create(debugger, workerGlobalScope, this, contextGroupId);
+    RawPtr<WorkerRuntimeAgent> workerRuntimeAgent = WorkerRuntimeAgent::create(debugger, workerGlobalScope, this, contextGroupId);
     m_workerRuntimeAgent = workerRuntimeAgent.get();
     m_agents.append(workerRuntimeAgent.release());
 
-    OwnPtrWillBeRawPtr<WorkerDebuggerAgent> workerDebuggerAgent = WorkerDebuggerAgent::create(workerGlobalScope, m_workerRuntimeAgent->v8Agent());
+    RawPtr<WorkerDebuggerAgent> workerDebuggerAgent = WorkerDebuggerAgent::create(workerGlobalScope, m_workerRuntimeAgent->v8Agent());
     m_workerDebuggerAgent = workerDebuggerAgent.get();
     m_agents.append(workerDebuggerAgent.release());
 
     m_agents.append(InspectorProfilerAgent::create(debugger, 0));
     m_agents.append(InspectorHeapProfilerAgent::create(workerGlobalScope->thread()->isolate(), m_workerRuntimeAgent->v8Agent()));
 
-    OwnPtrWillBeRawPtr<WorkerConsoleAgent> workerConsoleAgent = WorkerConsoleAgent::create(m_workerRuntimeAgent->v8Agent(), m_workerDebuggerAgent->v8Agent(), workerGlobalScope);
+    RawPtr<WorkerConsoleAgent> workerConsoleAgent = WorkerConsoleAgent::create(m_workerRuntimeAgent->v8Agent(), m_workerDebuggerAgent->v8Agent(), workerGlobalScope);
     WorkerConsoleAgent* workerConsoleAgentPtr = workerConsoleAgent.get();
     m_agents.append(workerConsoleAgent.release());
 
diff --git a/third_party/WebKit/Source/core/inspector/WorkerInspectorController.h b/third_party/WebKit/Source/core/inspector/WorkerInspectorController.h
index d2f09ce..00a0a14d 100644
--- a/third_party/WebKit/Source/core/inspector/WorkerInspectorController.h
+++ b/third_party/WebKit/Source/core/inspector/WorkerInspectorController.h
@@ -55,11 +55,10 @@
 class FrontendChannel;
 }
 
-class WorkerInspectorController final : public RefCountedWillBeGarbageCollectedFinalized<WorkerInspectorController>, public InspectorRuntimeAgent::Client, public protocol::FrontendChannel {
+class WorkerInspectorController final : public GarbageCollectedFinalized<WorkerInspectorController>, public InspectorRuntimeAgent::Client, public protocol::FrontendChannel {
     WTF_MAKE_NONCOPYABLE(WorkerInspectorController);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(WorkerInspectorController);
 public:
-    static PassRefPtrWillBeRawPtr<WorkerInspectorController> create(WorkerGlobalScope*);
+    static RawPtr<WorkerInspectorController> create(WorkerGlobalScope*);
     ~WorkerInspectorController();
     DECLARE_TRACE();
 
@@ -80,13 +79,13 @@
     void sendProtocolNotification(PassOwnPtr<protocol::DictionaryValue> message) override;
     void flush() override;
 
-    RawPtrWillBeMember<WorkerGlobalScope> m_workerGlobalScope;
-    RefPtrWillBeMember<InstrumentingAgents> m_instrumentingAgents;
+    Member<WorkerGlobalScope> m_workerGlobalScope;
+    Member<InstrumentingAgents> m_instrumentingAgents;
     InspectorAgentRegistry m_agents;
     OwnPtr<protocol::Frontend> m_frontend;
     OwnPtr<protocol::Dispatcher> m_backendDispatcher;
-    RawPtrWillBeMember<WorkerDebuggerAgent> m_workerDebuggerAgent;
-    RawPtrWillBeMember<WorkerRuntimeAgent> m_workerRuntimeAgent;
+    Member<WorkerDebuggerAgent> m_workerDebuggerAgent;
+    Member<WorkerRuntimeAgent> m_workerRuntimeAgent;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/inspector/WorkerRuntimeAgent.h b/third_party/WebKit/Source/core/inspector/WorkerRuntimeAgent.h
index c97d9ce..07f25d4b 100644
--- a/third_party/WebKit/Source/core/inspector/WorkerRuntimeAgent.h
+++ b/third_party/WebKit/Source/core/inspector/WorkerRuntimeAgent.h
@@ -40,9 +40,9 @@
 
 class WorkerRuntimeAgent final : public InspectorRuntimeAgent {
 public:
-    static PassOwnPtrWillBeRawPtr<WorkerRuntimeAgent> create(V8Debugger* debugger, WorkerGlobalScope* context, InspectorRuntimeAgent::Client* client, int contextGroupId)
+    static RawPtr<WorkerRuntimeAgent> create(V8Debugger* debugger, WorkerGlobalScope* context, InspectorRuntimeAgent::Client* client, int contextGroupId)
     {
-        return adoptPtrWillBeNoop(new WorkerRuntimeAgent(debugger, context, client, contextGroupId));
+        return new WorkerRuntimeAgent(debugger, context, client, contextGroupId);
     }
     ~WorkerRuntimeAgent() override;
     DECLARE_VIRTUAL_TRACE();
@@ -54,7 +54,7 @@
     ScriptState* defaultScriptState() override;
     void muteConsole() override;
     void unmuteConsole() override;
-    RawPtrWillBeMember<WorkerGlobalScope> m_workerGlobalScope;
+    Member<WorkerGlobalScope> m_workerGlobalScope;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/layout/HitTestCache.h b/third_party/WebKit/Source/core/layout/HitTestCache.h
index 650c18f..bdea06f 100644
--- a/third_party/WebKit/Source/core/layout/HitTestCache.h
+++ b/third_party/WebKit/Source/core/layout/HitTestCache.h
@@ -34,11 +34,10 @@
 // size of 1.
 #define HIT_TEST_CACHE_SIZE (2)
 
-class CORE_EXPORT HitTestCache final : public NoBaseWillBeGarbageCollectedFinalized<HitTestCache> {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(HitTestCache);
+class CORE_EXPORT HitTestCache final : public GarbageCollectedFinalized<HitTestCache> {
     WTF_MAKE_NONCOPYABLE(HitTestCache);
 public:
-    static PassOwnPtrWillBeRawPtr<HitTestCache> create()
+    static RawPtr<HitTestCache> create()
     {
         return adoptPtrWillBeNoop(new HitTestCache);
     }
@@ -76,7 +75,7 @@
     };
 
     unsigned m_updateIndex;
-    WillBeHeapVector<HitTestResult, HIT_TEST_CACHE_SIZE> m_items;
+    HeapVector<HitTestResult, HIT_TEST_CACHE_SIZE> m_items;
     uint64_t m_domTreeVersion;
 };
 
diff --git a/third_party/WebKit/Source/core/layout/HitTestResult.h b/third_party/WebKit/Source/core/layout/HitTestResult.h
index ebae7fde..c36287ff 100644
--- a/third_party/WebKit/Source/core/layout/HitTestResult.h
+++ b/third_party/WebKit/Source/core/layout/HitTestResult.h
@@ -60,7 +60,7 @@
 class CORE_EXPORT HitTestResult {
     DISALLOW_NEW_EXCEPT_PLACEMENT_NEW();
 public:
-    typedef WillBeHeapListHashSet<RefPtrWillBeMember<Node>> NodeSet;
+    typedef HeapListHashSet<Member<Node>> NodeSet;
 
     HitTestResult();
     HitTestResult(const HitTestRequest&, const LayoutPoint&);
@@ -169,17 +169,17 @@
     HitTestRequest m_hitTestRequest;
     bool m_cacheable;
 
-    RefPtrWillBeMember<Node> m_innerNode;
-    RefPtrWillBeMember<Node> m_innerPossiblyPseudoNode;
+    Member<Node> m_innerNode;
+    Member<Node> m_innerPossiblyPseudoNode;
     // FIXME: Nothing changes this to a value different from m_hitTestLocation!
     LayoutPoint m_pointInInnerNodeFrame; // The hit-tested point in innerNode frame coordinates.
     LayoutPoint m_localPoint; // A point in the local coordinate space of m_innerNode's layoutObject. Allows us to efficiently
         // determine where inside the layoutObject we hit on subsequent operations.
-    RefPtrWillBeMember<Element> m_innerURLElement;
-    RefPtrWillBeMember<Scrollbar> m_scrollbar;
+    Member<Element> m_innerURLElement;
+    Member<Scrollbar> m_scrollbar;
     bool m_isOverWidget; // Returns true if we are over a widget (and not in the border/padding area of a LayoutPart for example).
 
-    mutable OwnPtrWillBeMember<NodeSet> m_listBasedTestResult;
+    mutable Member<NodeSet> m_listBasedTestResult;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/layout/LayoutBox.cpp b/third_party/WebKit/Source/core/layout/LayoutBox.cpp
index 32daedd..b2a52fc 100644
--- a/third_party/WebKit/Source/core/layout/LayoutBox.cpp
+++ b/third_party/WebKit/Source/core/layout/LayoutBox.cpp
@@ -1347,7 +1347,7 @@
         // FIXME: Deal with z-index.
         if (!childStyle.hasAutoZIndex())
             return false;
-        if (childLayer->hasTransformRelatedProperty() || childLayer->isTransparent() || childLayer->hasFilter())
+        if (childLayer->hasTransformRelatedProperty() || childLayer->isTransparent() || childLayer->hasFilterInducingProperty())
             return false;
         if (childBox.hasOverflowClip() && childStyle.hasBorderRadius())
             return false;
@@ -2017,10 +2017,10 @@
 
 void LayoutBox::inflatePaintInvalidationRectForReflectionAndFilter(LayoutRect& paintInvalidationRect) const
 {
-    if (hasReflection())
+    if (!RuntimeEnabledFeatures::cssBoxReflectFilterEnabled() && hasReflection())
         paintInvalidationRect.unite(reflectedRect(paintInvalidationRect));
 
-    if (layer() && layer()->hasFilter())
+    if (layer() && layer()->hasFilterInducingProperty())
         paintInvalidationRect.expand(layer()->filterOutsets());
 }
 
@@ -3868,7 +3868,7 @@
     if (hasNonCompositedScrollbars())
         return PaintInvalidationBorderBoxChange;
 
-    if (style()->hasVisualOverflowingEffect() || style()->hasAppearance() || style()->hasFilter() || style()->resize() != RESIZE_NONE)
+    if (style()->hasVisualOverflowingEffect() || style()->hasAppearance() || style()->hasFilterInducingProperty() || style()->resize() != RESIZE_NONE)
         return PaintInvalidationBorderBoxChange;
 
     if (style()->hasBorderRadius()) {
diff --git a/third_party/WebKit/Source/core/layout/LayoutGrid.cpp b/third_party/WebKit/Source/core/layout/LayoutGrid.cpp
index 58a94f8..1238313e 100644
--- a/third_party/WebKit/Source/core/layout/LayoutGrid.cpp
+++ b/third_party/WebKit/Source/core/layout/LayoutGrid.cpp
@@ -1542,6 +1542,18 @@
     breadth = end - start;
     offset = start;
 
+    if (isForColumns && !styleRef().isLeftToRightDirection() && !child.styleRef().hasStaticInlinePosition(child.isHorizontalWritingMode())) {
+        // If the child doesn't have a static inline position (i.e. "left" and/or "right" aren't "auto",
+        // we need to calculate the offset from the left (even if we're in RTL).
+        if (endIsAuto) {
+            offset = LayoutUnit();
+        } else {
+            LayoutUnit alignmentOffset =  m_columnPositions[0] - borderAndPaddingStart();
+            LayoutUnit offsetFromLastLine = m_columnPositions[m_columnPositions.size() - 1] - m_columnPositions[endLine];
+            offset = paddingLeft() +  alignmentOffset + offsetFromLastLine;
+        }
+    }
+
     if (child.parent() == this && !startIsAuto) {
         // If column/row start is "auto" the static position has been already set in prepareChildForPositionedLayout().
         PaintLayer* childLayer = child.layer();
diff --git a/third_party/WebKit/Source/core/layout/LayoutImage.cpp b/third_party/WebKit/Source/core/layout/LayoutImage.cpp
index 5d07c7f..d0d5380 100644
--- a/third_party/WebKit/Source/core/layout/LayoutImage.cpp
+++ b/third_party/WebKit/Source/core/layout/LayoutImage.cpp
@@ -85,7 +85,7 @@
         intrinsicSizeChanged();
 }
 
-void LayoutImage::setImageResource(PassOwnPtrWillBeRawPtr<LayoutImageResource> imageResource)
+void LayoutImage::setImageResource(RawPtr<LayoutImageResource> imageResource)
 {
     ASSERT(!m_imageResource);
     m_imageResource = imageResource;
diff --git a/third_party/WebKit/Source/core/layout/LayoutImage.h b/third_party/WebKit/Source/core/layout/LayoutImage.h
index 2824bcf..b42aa49 100644
--- a/third_party/WebKit/Source/core/layout/LayoutImage.h
+++ b/third_party/WebKit/Source/core/layout/LayoutImage.h
@@ -55,7 +55,7 @@
 
     static LayoutImage* createAnonymous(Document*);
 
-    void setImageResource(PassOwnPtrWillBeRawPtr<LayoutImageResource>);
+    void setImageResource(RawPtr<LayoutImageResource>);
 
     LayoutImageResource* imageResource() { return m_imageResource.get(); }
     const LayoutImageResource* imageResource() const { return m_imageResource.get(); }
@@ -123,7 +123,7 @@
     // * For generated content, the resource is loaded during style resolution
     // and thus is stored in ComputedStyle (see ContentData::image) that gets
     // propagated to the anonymous LayoutImage in LayoutObject::createObject.
-    OwnPtrWillBePersistent<LayoutImageResource> m_imageResource;
+    Persistent<LayoutImageResource> m_imageResource;
     bool m_didIncrementVisuallyNonEmptyPixelCount;
 
     // This field stores whether this image is generated with 'content'.
diff --git a/third_party/WebKit/Source/core/layout/LayoutImageResource.h b/third_party/WebKit/Source/core/layout/LayoutImageResource.h
index 9680c5a..a7d3a5d 100644
--- a/third_party/WebKit/Source/core/layout/LayoutImageResource.h
+++ b/third_party/WebKit/Source/core/layout/LayoutImageResource.h
@@ -33,13 +33,12 @@
 
 class LayoutObject;
 
-class LayoutImageResource : public NoBaseWillBeGarbageCollectedFinalized<LayoutImageResource> {
+class LayoutImageResource : public GarbageCollectedFinalized<LayoutImageResource> {
     WTF_MAKE_NONCOPYABLE(LayoutImageResource);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(LayoutImageResource);
 public:
     virtual ~LayoutImageResource();
 
-    static PassOwnPtrWillBeRawPtr<LayoutImageResource> create()
+    static RawPtr<LayoutImageResource> create()
     {
         return adoptPtrWillBeNoop(new LayoutImageResource);
     }
@@ -68,7 +67,7 @@
 protected:
     LayoutImageResource();
     LayoutObject* m_layoutObject;
-    RefPtrWillBeMember<ImageResource> m_cachedImage;
+    Member<ImageResource> m_cachedImage;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/layout/LayoutImageResourceStyleImage.h b/third_party/WebKit/Source/core/layout/LayoutImageResourceStyleImage.h
index 0cc40514..986fec2 100644
--- a/third_party/WebKit/Source/core/layout/LayoutImageResourceStyleImage.h
+++ b/third_party/WebKit/Source/core/layout/LayoutImageResourceStyleImage.h
@@ -38,9 +38,9 @@
 public:
     ~LayoutImageResourceStyleImage() override;
 
-    static PassOwnPtrWillBeRawPtr<LayoutImageResource> create(StyleImage* styleImage)
+    static RawPtr<LayoutImageResource> create(StyleImage* styleImage)
     {
-        return adoptPtrWillBeNoop(new LayoutImageResourceStyleImage(styleImage));
+        return new LayoutImageResourceStyleImage(styleImage);
     }
     void initialize(LayoutObject*) override;
     void shutdown() override;
@@ -63,7 +63,7 @@
 
 private:
     explicit LayoutImageResourceStyleImage(StyleImage*);
-    RefPtrWillBeMember<StyleImage> m_styleImage;
+    Member<StyleImage> m_styleImage;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/layout/LayoutListMarker.h b/third_party/WebKit/Source/core/layout/LayoutListMarker.h
index 98dc805..3ff4929 100644
--- a/third_party/WebKit/Source/core/layout/LayoutListMarker.h
+++ b/third_party/WebKit/Source/core/layout/LayoutListMarker.h
@@ -98,7 +98,7 @@
     void styleDidChange(StyleDifference, const ComputedStyle* oldStyle) override;
 
     String m_text;
-    RefPtrWillBePersistent<StyleImage> m_image;
+    Persistent<StyleImage> m_image;
     LayoutListItem* m_listItem;
 };
 
diff --git a/third_party/WebKit/Source/core/layout/LayoutMenuList.cpp b/third_party/WebKit/Source/core/layout/LayoutMenuList.cpp
index 10c0c24..866f3b68 100644
--- a/third_party/WebKit/Source/core/layout/LayoutMenuList.cpp
+++ b/third_party/WebKit/Source/core/layout/LayoutMenuList.cpp
@@ -165,7 +165,7 @@
 void LayoutMenuList::updateOptionsWidth()
 {
     float maxOptionWidth = 0;
-    const WillBeHeapVector<RawPtrWillBeMember<HTMLElement>>& listItems = selectElement()->listItems();
+    const HeapVector<Member<HTMLElement>>& listItems = selectElement()->listItems();
     int size = listItems.size();
 
     for (int i = 0; i < size; ++i) {
@@ -220,7 +220,7 @@
 void LayoutMenuList::setTextFromOption(int optionIndex)
 {
     HTMLSelectElement* select = selectElement();
-    const WillBeHeapVector<RawPtrWillBeMember<HTMLElement>>& listItems = select->listItems();
+    const HeapVector<Member<HTMLElement>>& listItems = select->listItems();
     const int size = listItems.size();
 
     String text = emptyString();
diff --git a/third_party/WebKit/Source/core/layout/LayoutObject.h b/third_party/WebKit/Source/core/layout/LayoutObject.h
index 9a833b48..ae73f789 100644
--- a/third_party/WebKit/Source/core/layout/LayoutObject.h
+++ b/third_party/WebKit/Source/core/layout/LayoutObject.h
@@ -717,10 +717,15 @@
     bool hasMask() const { return style() && style()->hasMask(); }
     bool hasClipPath() const { return style() && style()->clipPath(); }
     bool hasHiddenBackface() const { return style() && style()->backfaceVisibility() == BackfaceVisibilityHidden; }
-
-    bool hasFilter() const { return style() && style()->hasFilter(); }
     bool hasBackdropFilter() const { return style() && style()->hasBackdropFilter(); }
 
+    // Returns |true| if any property that renders using filter operations is
+    // used (including, but not limited to, 'filter').
+    bool hasFilterInducingProperty() const
+    {
+        return (style() && style()->hasFilter()) || (RuntimeEnabledFeatures::cssBoxReflectFilterEnabled() && hasReflection());
+    }
+
     bool hasShapeOutside() const { return style() && style()->shapeOutside(); }
 
     inline bool preservesNewline() const;
@@ -1267,7 +1272,7 @@
     bool shouldUseTransformFromContainer(const LayoutObject* container) const;
     void getTransformFromContainer(const LayoutObject* container, const LayoutSize& offsetInContainer, TransformationMatrix&) const;
 
-    bool createsGroup() const { return isTransparent() || hasMask() || hasFilter() || style()->hasBlendMode(); }
+    bool createsGroup() const { return isTransparent() || hasMask() || hasFilterInducingProperty() || style()->hasBlendMode(); }
 
     // Collects rectangles that the outline of this object would be drawing along the outside of,
     // even if the object isn't styled with a outline for now. The rects also cover continuations.
@@ -1651,7 +1656,7 @@
     RefPtr<ComputedStyle> m_style;
 
     // Oilpan: This untraced pointer to the owning Node is considered safe.
-    RawPtrWillBeUntracedMember<Node> m_node;
+    UntracedMember<Node> m_node;
 
     LayoutObject* m_parent;
     LayoutObject* m_previous;
diff --git a/third_party/WebKit/Source/core/layout/LayoutPart.cpp b/third_party/WebKit/Source/core/layout/LayoutPart.cpp
index def0bec..5f09d972 100644
--- a/third_party/WebKit/Source/core/layout/LayoutPart.cpp
+++ b/third_party/WebKit/Source/core/layout/LayoutPart.cpp
@@ -342,7 +342,7 @@
         return false;
 
     RefPtr<LayoutPart> protector(this);
-    RefPtrWillBeRawPtr<Node> protectedNode(node());
+    RawPtr<Node> protectedNode(node());
     widget->setFrameRect(newFrame);
     return widget->frameRect().size() != newFrame.size();
 }
diff --git a/third_party/WebKit/Source/core/layout/LayoutPartTest.cpp b/third_party/WebKit/Source/core/layout/LayoutPartTest.cpp
index 95a89726..7944c14 100644
--- a/third_party/WebKit/Source/core/layout/LayoutPartTest.cpp
+++ b/third_party/WebKit/Source/core/layout/LayoutPartTest.cpp
@@ -23,7 +23,7 @@
 
 TEST_F(LayoutPartTest, DestroyUpdatesImageQualityController)
 {
-    RefPtrWillBeRawPtr<Element> element = HTMLElement::create(HTMLNames::divTag, document());
+    RawPtr<Element> element = HTMLElement::create(HTMLNames::divTag, document());
     LayoutObject* part = new OverriddenLayoutPart(element.get());
     // The third and forth arguments are not important in this test.
     ImageQualityController::imageQualityController()->set(*part, 0, this, LayoutSize(1, 1), false);
diff --git a/third_party/WebKit/Source/core/layout/LayoutScrollbar.cpp b/third_party/WebKit/Source/core/layout/LayoutScrollbar.cpp
index 8726d93..56b879b 100644
--- a/third_party/WebKit/Source/core/layout/LayoutScrollbar.cpp
+++ b/third_party/WebKit/Source/core/layout/LayoutScrollbar.cpp
@@ -36,9 +36,9 @@
 
 namespace blink {
 
-PassRefPtrWillBeRawPtr<Scrollbar> LayoutScrollbar::createCustomScrollbar(ScrollableArea* scrollableArea, ScrollbarOrientation orientation, Node* ownerNode, LocalFrame* owningFrame)
+RawPtr<Scrollbar> LayoutScrollbar::createCustomScrollbar(ScrollableArea* scrollableArea, ScrollbarOrientation orientation, Node* ownerNode, LocalFrame* owningFrame)
 {
-    return adoptRefWillBeNoop(new LayoutScrollbar(scrollableArea, orientation, ownerNode, owningFrame));
+    return new LayoutScrollbar(scrollableArea, orientation, ownerNode, owningFrame);
 }
 
 LayoutScrollbar::LayoutScrollbar(ScrollableArea* scrollableArea, ScrollbarOrientation orientation, Node* ownerNode, LocalFrame* owningFrame)
diff --git a/third_party/WebKit/Source/core/layout/LayoutScrollbar.h b/third_party/WebKit/Source/core/layout/LayoutScrollbar.h
index bc8882b..2af04b8 100644
--- a/third_party/WebKit/Source/core/layout/LayoutScrollbar.h
+++ b/third_party/WebKit/Source/core/layout/LayoutScrollbar.h
@@ -43,7 +43,7 @@
 
 class LayoutScrollbar final : public Scrollbar {
 public:
-    static PassRefPtrWillBeRawPtr<Scrollbar> createCustomScrollbar(ScrollableArea*, ScrollbarOrientation, Node*, LocalFrame* owningFrame = nullptr);
+    static RawPtr<Scrollbar> createCustomScrollbar(ScrollableArea*, ScrollbarOrientation, Node*, LocalFrame* owningFrame = nullptr);
     ~LayoutScrollbar() override;
 
     LayoutBox* owningLayoutObject() const;
@@ -89,9 +89,9 @@
     // so we keep a reference to the Node which caused this custom scrollbar creation.
     // This will not create a reference cycle as the Widget tree is owned by our containing
     // FrameView which this Node pointer can in no way keep alive. See webkit bug 80610.
-    RefPtrWillBeMember<Node> m_owner;
+    Member<Node> m_owner;
 
-    RawPtrWillBeMember<LocalFrame> m_owningFrame;
+    Member<LocalFrame> m_owningFrame;
 
     HashMap<unsigned, LayoutScrollbarPart*> m_parts;
 };
diff --git a/third_party/WebKit/Source/core/layout/LayoutScrollbarPart.h b/third_party/WebKit/Source/core/layout/LayoutScrollbarPart.h
index 67c2b5f6..b1f29f24 100644
--- a/third_party/WebKit/Source/core/layout/LayoutScrollbarPart.h
+++ b/third_party/WebKit/Source/core/layout/LayoutScrollbarPart.h
@@ -112,7 +112,7 @@
 
     bool allowsOverflowClip() const override { return false; }
 
-    RawPtrWillBeUntracedMember<LayoutScrollbar> m_scrollbar;
+    UntracedMember<LayoutScrollbar> m_scrollbar;
     ScrollbarPart m_part;
 };
 
diff --git a/third_party/WebKit/Source/core/layout/LayoutTestHelper.cpp b/third_party/WebKit/Source/core/layout/LayoutTestHelper.cpp
index ce437d5..8935433 100644
--- a/third_party/WebKit/Source/core/layout/LayoutTestHelper.cpp
+++ b/third_party/WebKit/Source/core/layout/LayoutTestHelper.cpp
@@ -10,14 +10,14 @@
 
 namespace blink {
 
-RenderingTest::RenderingTest(PassOwnPtrWillBeRawPtr<FrameLoaderClient> frameLoaderClient)
+RenderingTest::RenderingTest(RawPtr<FrameLoaderClient> frameLoaderClient)
     : m_frameLoaderClient(frameLoaderClient) { }
 
 void RenderingTest::SetUp()
 {
     Page::PageClients pageClients;
     fillWithEmptyClients(pageClients);
-    DEFINE_STATIC_LOCAL(OwnPtrWillBePersistent<EmptyChromeClient>, chromeClient, (EmptyChromeClient::create()));
+    DEFINE_STATIC_LOCAL(Persistent<EmptyChromeClient>, chromeClient, (EmptyChromeClient::create()));
     pageClients.chromeClient = chromeClient.get();
     m_pageHolder = DummyPageHolder::create(IntSize(800, 600), &pageClients, m_frameLoaderClient.release(), settingOverrider());
 
diff --git a/third_party/WebKit/Source/core/layout/LayoutTestHelper.h b/third_party/WebKit/Source/core/layout/LayoutTestHelper.h
index ec7183c..fb0aaf12 100644
--- a/third_party/WebKit/Source/core/layout/LayoutTestHelper.h
+++ b/third_party/WebKit/Source/core/layout/LayoutTestHelper.h
@@ -23,7 +23,7 @@
 public:
     virtual FrameSettingOverrideFunction settingOverrider() const { return nullptr; }
 
-    RenderingTest(PassOwnPtrWillBeRawPtr<FrameLoaderClient> = nullptr);
+    RenderingTest(RawPtr<FrameLoaderClient> = nullptr);
 
 protected:
     void SetUp() override;
@@ -57,15 +57,15 @@
     }
 
 private:
-    RefPtrWillBePersistent<LocalFrame> m_subframe;
-    OwnPtrWillBePersistent<FrameLoaderClient> m_frameLoaderClient;
-    OwnPtrWillBePersistent<FrameLoaderClient> m_childFrameLoaderClient;
+    Persistent<LocalFrame> m_subframe;
+    Persistent<FrameLoaderClient> m_frameLoaderClient;
+    Persistent<FrameLoaderClient> m_childFrameLoaderClient;
     OwnPtr<DummyPageHolder> m_pageHolder;
 };
 
 class SingleChildFrameLoaderClient final : public EmptyFrameLoaderClient {
 public:
-    static PassOwnPtrWillBeRawPtr<SingleChildFrameLoaderClient> create() { return adoptPtrWillBeNoop(new SingleChildFrameLoaderClient); }
+    static RawPtr<SingleChildFrameLoaderClient> create() { return adoptPtrWillBeNoop(new SingleChildFrameLoaderClient); }
 
     DEFINE_INLINE_VIRTUAL_TRACE()
     {
@@ -81,14 +81,14 @@
 private:
     SingleChildFrameLoaderClient() : m_child(nullptr) { }
 
-    RefPtrWillBeMember<Frame> m_child;
+    Member<Frame> m_child;
 };
 
 class FrameLoaderClientWithParent final : public EmptyFrameLoaderClient {
 public:
-    static PassOwnPtrWillBeRawPtr<FrameLoaderClientWithParent> create(Frame* parent)
+    static RawPtr<FrameLoaderClientWithParent> create(Frame* parent)
     {
-        return adoptPtrWillBeNoop(new FrameLoaderClientWithParent(parent));
+        return new FrameLoaderClientWithParent(parent);
     }
 
     DEFINE_INLINE_VIRTUAL_TRACE()
@@ -102,7 +102,7 @@
 private:
     explicit FrameLoaderClientWithParent(Frame* parent) : m_parent(parent) { }
 
-    RefPtrWillBeMember<Frame> m_parent;
+    Member<Frame> m_parent;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/layout/LayoutTextFragment.h b/third_party/WebKit/Source/core/layout/LayoutTextFragment.h
index 27ef361..11f011e3 100644
--- a/third_party/WebKit/Source/core/layout/LayoutTextFragment.h
+++ b/third_party/WebKit/Source/core/layout/LayoutTextFragment.h
@@ -89,7 +89,7 @@
     RefPtr<StringImpl> m_contentString;
     // Reference back to FirstLetterPseudoElement; cleared by FirstLetterPseudoElement::detach() if
     // it goes away first.
-    RawPtrWillBeUntracedMember<FirstLetterPseudoElement> m_firstLetterPseudoElement;
+    UntracedMember<FirstLetterPseudoElement> m_firstLetterPseudoElement;
 };
 
 DEFINE_TYPE_CASTS(LayoutTextFragment, LayoutObject, object, toLayoutText(object)->isTextFragment(), toLayoutText(object).isTextFragment());
diff --git a/third_party/WebKit/Source/core/layout/LayoutThemeTest.cpp b/third_party/WebKit/Source/core/layout/LayoutThemeTest.cpp
index f75a85a..240020a 100644
--- a/third_party/WebKit/Source/core/layout/LayoutThemeTest.cpp
+++ b/third_party/WebKit/Source/core/layout/LayoutThemeTest.cpp
@@ -25,7 +25,7 @@
 
 private:
     OwnPtr<DummyPageHolder> m_dummyPageHolder;
-    RefPtrWillBePersistent<HTMLDocument> m_document;
+    Persistent<HTMLDocument> m_document;
 };
 
 void LayoutThemeTest::SetUp()
diff --git a/third_party/WebKit/Source/core/layout/LayoutTreeAsText.cpp b/third_party/WebKit/Source/core/layout/LayoutTreeAsText.cpp
index 985b2d01..c897e7ad 100644
--- a/third_party/WebKit/Source/core/layout/LayoutTreeAsText.cpp
+++ b/third_party/WebKit/Source/core/layout/LayoutTreeAsText.cpp
@@ -420,9 +420,9 @@
 {
     writeInlineBox(ts, textBox, indent);
     String value = textBox.text();
-    value.replaceWithLiteral('\\', "\\\\");
-    value.replaceWithLiteral('\n', "\\n");
-    value.replaceWithLiteral('"', "\\\"");
+    value.replace('\\', "\\\\");
+    value.replace('\n', "\\n");
+    value.replace('"', "\\\"");
     ts << " range=(" << textBox.start() << "," << (textBox.start() + textBox.len()) << ")"
         << " \"" << value << "\"";
 }
@@ -826,7 +826,7 @@
 String counterValueForElement(Element* element)
 {
     // Make sure the element is not freed during the layout.
-    RefPtrWillBeRawPtr<Element> protector(element);
+    RawPtr<Element> protector(element);
     element->document().updateLayout();
     TextStream stream;
     bool isFirstCounter = true;
@@ -841,7 +841,7 @@
 String markerTextForListItem(Element* element)
 {
     // Make sure the element is not freed during the layout.
-    RefPtrWillBeRawPtr<Element> protector(element);
+    RawPtr<Element> protector(element);
     element->document().updateLayout();
 
     LayoutObject* layoutObject = element->layoutObject();
diff --git a/third_party/WebKit/Source/core/layout/LayoutView.h b/third_party/WebKit/Source/core/layout/LayoutView.h
index 4049bb6..3638240 100644
--- a/third_party/WebKit/Source/core/layout/LayoutView.h
+++ b/third_party/WebKit/Source/core/layout/LayoutView.h
@@ -230,7 +230,7 @@
     int viewLogicalWidthForBoxSizing() const;
     int viewLogicalHeightForBoxSizing() const;
 
-    RawPtrWillBeUntracedMember<FrameView> m_frameView;
+    UntracedMember<FrameView> m_frameView;
 
     // The current selection represented as 2 boundaries.
     // Selection boundaries are represented in LayoutView by a tuple
@@ -272,7 +272,7 @@
 
     unsigned m_hitTestCount;
     unsigned m_hitTestCacheHits;
-    OwnPtrWillBePersistent<HitTestCache> m_hitTestCache;
+    Persistent<HitTestCache> m_hitTestCache;
 
     Vector<LayoutMedia*> m_mediaForPositionNotification;
 };
diff --git a/third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp b/third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp
index 2e416e0..e3d3783 100644
--- a/third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp
+++ b/third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp
@@ -72,7 +72,7 @@
     // TODO(wangxianzhu): Move some conditions to fast path if possible.
     return !object.hasTransformRelatedProperty()
         && !object.hasReflection()
-        && !object.hasFilter()
+        && !object.hasFilterInducingProperty()
         && !object.isLayoutFlowThread()
         && !object.isLayoutMultiColumnSpannerPlaceholder()
         && object.styleRef().position() != FixedPosition
diff --git a/third_party/WebKit/Source/core/layout/ScrollAnchor.h b/third_party/WebKit/Source/core/layout/ScrollAnchor.h
index 2cb2d19..510a7a46 100644
--- a/third_party/WebKit/Source/core/layout/ScrollAnchor.h
+++ b/third_party/WebKit/Source/core/layout/ScrollAnchor.h
@@ -77,7 +77,7 @@
     ExamineResult examine(const LayoutObject*) const;
 
     // The scroller that owns and is adjusted by this ScrollAnchor.
-    RawPtrWillBeMember<ScrollableArea> m_scroller;
+    Member<ScrollableArea> m_scroller;
 
     // The LayoutObject we should anchor to. Lazily computed.
     LayoutObject* m_anchorObject;
diff --git a/third_party/WebKit/Source/core/layout/TextAutosizer.cpp b/third_party/WebKit/Source/core/layout/TextAutosizer.cpp
index bdd56a3..a8cbf69 100644
--- a/third_party/WebKit/Source/core/layout/TextAutosizer.cpp
+++ b/third_party/WebKit/Source/core/layout/TextAutosizer.cpp
@@ -54,7 +54,7 @@
 #ifdef AUTOSIZING_DOM_DEBUG_INFO
 class WriteDebugInfoTask : public ExecutionContextTask {
 public:
-    WriteDebugInfoTask(PassRefPtrWillBeRawPtr<Element> element, AtomicString value)
+    WriteDebugInfoTask(RawPtr<Element> element, AtomicString value)
         : m_element(element)
         , m_value(value)
     {
@@ -66,7 +66,7 @@
     }
 
 private:
-    RefPtrWillBePersistent<Element> m_element;
+    Persistent<Element> m_element;
     AtomicString m_value;
 };
 
diff --git a/third_party/WebKit/Source/core/layout/TextAutosizer.h b/third_party/WebKit/Source/core/layout/TextAutosizer.h
index 773909c..4991908 100644
--- a/third_party/WebKit/Source/core/layout/TextAutosizer.h
+++ b/third_party/WebKit/Source/core/layout/TextAutosizer.h
@@ -51,13 +51,12 @@
 // Single-pass text autosizer. Documentation at:
 // http://tinyurl.com/TextAutosizer
 
-class CORE_EXPORT TextAutosizer final : public NoBaseWillBeGarbageCollectedFinalized<TextAutosizer> {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(TextAutosizer);
+class CORE_EXPORT TextAutosizer final : public GarbageCollectedFinalized<TextAutosizer> {
     WTF_MAKE_NONCOPYABLE(TextAutosizer);
 public:
-    static PassOwnPtrWillBeRawPtr<TextAutosizer> create(const Document* document)
+    static RawPtr<TextAutosizer> create(const Document* document)
     {
-        return adoptPtrWillBeNoop(new TextAutosizer(document));
+        return new TextAutosizer(document);
     }
     static float computeAutosizedFontSize(float specifiedSize, float multiplier);
 
@@ -76,7 +75,7 @@
         explicit LayoutScope(LayoutBlock*);
         ~LayoutScope();
     protected:
-        RawPtrWillBeMember<TextAutosizer> m_textAutosizer;
+        Member<TextAutosizer> m_textAutosizer;
         LayoutBlock* m_block;
     };
 
@@ -92,7 +91,7 @@
         explicit DeferUpdatePageInfo(Page*);
         ~DeferUpdatePageInfo();
     private:
-        RefPtrWillBeMember<LocalFrame> m_mainFrame;
+        Member<LocalFrame> m_mainFrame;
     };
 
 private:
@@ -304,7 +303,7 @@
     void writeClusterDebugInfo(Cluster*);
 #endif
 
-    RawPtrWillBeMember<const Document> m_document;
+    Member<const Document> m_document;
     const LayoutBlock* m_firstBlockToBeginLayout;
 #if ENABLE(ASSERT)
     BlockSet m_blocksThatHaveBegunLayout; // Used to ensure we don't compute properties of a block before beginLayout() is called on it.
diff --git a/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.cpp b/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.cpp
index e54e0ab..5cc048c 100644
--- a/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.cpp
+++ b/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.cpp
@@ -509,7 +509,7 @@
         scrollingLayer()->setMaskLayer(layerToApplyChildClippingMask == scrollingLayer() ? m_childClippingMaskLayer.get() : nullptr);
     m_graphicsLayer->setContentsClippingMaskLayer(shouldApplyChildClippingMaskOnContents ? m_childClippingMaskLayer.get() : nullptr);
 
-    if (m_owningLayer.reflectionInfo()) {
+    if (m_owningLayer.reflectionInfo() && !RuntimeEnabledFeatures::cssBoxReflectFilterEnabled()) {
         if (m_owningLayer.reflectionInfo()->reflectionLayer()->hasCompositedLayerMapping()) {
             GraphicsLayer* reflectionLayer = m_owningLayer.reflectionInfo()->reflectionLayer()->compositedLayerMapping()->mainGraphicsLayer();
             m_graphicsLayer->setReplicatedByLayer(reflectionLayer);
diff --git a/third_party/WebKit/Source/core/layout/compositing/CompositingInputsUpdater.cpp b/third_party/WebKit/Source/core/layout/compositing/CompositingInputsUpdater.cpp
index e94f3ec..f100b65 100644
--- a/third_party/WebKit/Source/core/layout/compositing/CompositingInputsUpdater.cpp
+++ b/third_party/WebKit/Source/core/layout/compositing/CompositingInputsUpdater.cpp
@@ -126,7 +126,7 @@
             const PaintLayer* parent = layer->parent();
             rareProperties.opacityAncestor = parent->isTransparent() ? parent : parent->opacityAncestor();
             rareProperties.transformAncestor = parent->hasTransformRelatedProperty() ? parent : parent->transformAncestor();
-            rareProperties.filterAncestor = parent->hasFilter() ? parent : parent->filterAncestor();
+            rareProperties.filterAncestor = parent->hasFilterInducingProperty() ? parent : parent->filterAncestor();
             bool layerIsFixedPosition = layer->layoutObject()->style()->position() == FixedPosition;
             rareProperties.nearestFixedPositionLayer = layerIsFixedPosition ? layer : parent->nearestFixedPositionLayer();
 
diff --git a/third_party/WebKit/Source/core/layout/compositing/CompositingLayerAssigner.cpp b/third_party/WebKit/Source/core/layout/compositing/CompositingLayerAssigner.cpp
index d692b0d..9f52edc 100644
--- a/third_party/WebKit/Source/core/layout/compositing/CompositingLayerAssigner.cpp
+++ b/third_party/WebKit/Source/core/layout/compositing/CompositingLayerAssigner.cpp
@@ -172,7 +172,7 @@
     if (layer->renderingContextRoot() != squashingLayer.renderingContextRoot())
         return SquashingDisallowedReasonRenderingContextMismatch;
 
-    if (layer->hasFilter() || layer->filterAncestor() != squashingLayer.filterAncestor())
+    if (layer->hasFilterInducingProperty() || layer->filterAncestor() != squashingLayer.filterAncestor())
         return SquashingDisallowedReasonFilterMismatch;
 
     if (layer->nearestFixedPositionLayer() != squashingLayer.nearestFixedPositionLayer())
diff --git a/third_party/WebKit/Source/core/layout/compositing/CompositingReasonFinder.cpp b/third_party/WebKit/Source/core/layout/compositing/CompositingReasonFinder.cpp
index d51d98f..742fb6ef 100644
--- a/third_party/WebKit/Source/core/layout/compositing/CompositingReasonFinder.cpp
+++ b/third_party/WebKit/Source/core/layout/compositing/CompositingReasonFinder.cpp
@@ -103,12 +103,12 @@
         reasons |= CompositingReasonCompositorProxy;
 
     // If the implementation of createsGroup changes, we need to be aware of that in this part of code.
-    ASSERT((layoutObject->isTransparent() || layoutObject->hasMask() || layoutObject->hasFilter() || style.hasBlendMode()) == layoutObject->createsGroup());
+    ASSERT((layoutObject->isTransparent() || layoutObject->hasMask() || layoutObject->hasFilterInducingProperty() || style.hasBlendMode()) == layoutObject->createsGroup());
 
     if (style.hasMask())
         reasons |= CompositingReasonMaskWithCompositedDescendants;
 
-    if (style.hasFilter())
+    if (style.hasFilterInducingProperty())
         reasons |= CompositingReasonFilterWithCompositedDescendants;
 
     if (style.hasBackdropFilter())
diff --git a/third_party/WebKit/Source/core/layout/line/InlineTextBox.cpp b/third_party/WebKit/Source/core/layout/line/InlineTextBox.cpp
index 9d11f0c3..f21e69a 100644
--- a/third_party/WebKit/Source/core/layout/line/InlineTextBox.cpp
+++ b/third_party/WebKit/Source/core/layout/line/InlineTextBox.cpp
@@ -617,8 +617,8 @@
 void InlineTextBox::showBox(int printedCharacters) const
 {
     String value = text();
-    value.replaceWithLiteral('\\', "\\\\");
-    value.replaceWithLiteral('\n', "\\n");
+    value.replace('\\', "\\\\");
+    value.replace('\n', "\\n");
     printedCharacters += fprintf(stderr, "%s %p", boxName(), this);
     for (; printedCharacters < showTreeCharacterOffset; printedCharacters++)
         fputc(' ', stderr);
diff --git a/third_party/WebKit/Source/core/layout/svg/LayoutSVGImage.h b/third_party/WebKit/Source/core/layout/svg/LayoutSVGImage.h
index f35c9ea8..4228478 100644
--- a/third_party/WebKit/Source/core/layout/svg/LayoutSVGImage.h
+++ b/third_party/WebKit/Source/core/layout/svg/LayoutSVGImage.h
@@ -72,7 +72,7 @@
     bool m_needsTransformUpdate : 1;
     AffineTransform m_localTransform;
     FloatRect m_objectBoundingBox;
-    OwnPtrWillBePersistent<LayoutImageResource> m_imageResource;
+    Persistent<LayoutImageResource> m_imageResource;
 };
 
 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutSVGImage, isSVGImage());
diff --git a/third_party/WebKit/Source/core/layout/svg/LayoutSVGResourceContainer.cpp b/third_party/WebKit/Source/core/layout/svg/LayoutSVGResourceContainer.cpp
index b2733fee..6d30f03 100644
--- a/third_party/WebKit/Source/core/layout/svg/LayoutSVGResourceContainer.cpp
+++ b/third_party/WebKit/Source/core/layout/svg/LayoutSVGResourceContainer.cpp
@@ -229,7 +229,7 @@
         return;
     }
 
-    OwnPtrWillBeRawPtr<SVGDocumentExtensions::SVGPendingElements> clients(extensions.removePendingResource(m_id));
+    RawPtr<SVGDocumentExtensions::SVGPendingElements> clients(extensions.removePendingResource(m_id));
 
     // Cache us with the new id.
     extensions.addResource(m_id, this);
@@ -289,7 +289,7 @@
     // reference graph adjustments on changes, so we need to break possible cycles here.
     // This strong reference is safe, as it is guaranteed that this set will be emptied
     // at the end of recursion.
-    DEFINE_STATIC_LOCAL(OwnPtrWillBePersistent<SVGElementSet>, invalidatingDependencies, (adoptPtrWillBeNoop(new SVGElementSet)));
+    DEFINE_STATIC_LOCAL(Persistent<SVGElementSet>, invalidatingDependencies, (adoptPtrWillBeNoop(new SVGElementSet)));
 
     for (SVGElement* element : *dependencies) {
         if (LayoutObject* layoutObject = element->layoutObject()) {
diff --git a/third_party/WebKit/Source/core/layout/svg/LayoutSVGResourceFilter.h b/third_party/WebKit/Source/core/layout/svg/LayoutSVGResourceFilter.h
index fe334ff..36d8f882 100644
--- a/third_party/WebKit/Source/core/layout/svg/LayoutSVGResourceFilter.h
+++ b/third_party/WebKit/Source/core/layout/svg/LayoutSVGResourceFilter.h
@@ -31,8 +31,7 @@
 
 namespace blink {
 
-class FilterData final : public NoBaseWillBeGarbageCollectedFinalized<FilterData> {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(FilterData);
+class FilterData final : public GarbageCollectedFinalized<FilterData> {
 public:
     /*
      * The state transitions should follow the following:
@@ -50,17 +49,17 @@
         PaintingFilterCycleDetected
     };
 
-    static PassOwnPtrWillBeRawPtr<FilterData> create()
+    static RawPtr<FilterData> create()
     {
-        return adoptPtrWillBeNoop(new FilterData());
+        return new FilterData();
     }
 
     void dispose();
 
     DECLARE_TRACE();
 
-    RefPtrWillBeMember<Filter> filter;
-    RefPtrWillBeMember<SVGFilterGraphNodeMap> nodeMap;
+    Member<Filter> filter;
+    Member<SVGFilterGraphNodeMap> nodeMap;
     FilterDataState m_state;
 
 private:
@@ -91,7 +90,7 @@
     LayoutSVGResourceType resourceType() const override { return s_resourceType; }
 
     FilterData* getFilterDataForLayoutObject(const LayoutObject* object) { return m_filter.get(const_cast<LayoutObject*>(object)); }
-    void setFilterDataForLayoutObject(LayoutObject* object, PassOwnPtrWillBeRawPtr<FilterData> filterData) { m_filter.set(object, filterData); }
+    void setFilterDataForLayoutObject(LayoutObject* object, RawPtr<FilterData> filterData) { m_filter.set(object, filterData); }
 
 protected:
     void willBeDestroyed() override;
@@ -99,7 +98,7 @@
 private:
     void disposeFilterMap();
 
-    using FilterMap = WillBePersistentHeapHashMap<LayoutObject*, OwnPtrWillBeMember<FilterData>>;
+    using FilterMap = PersistentHeapHashMap<LayoutObject*, Member<FilterData>>;
     FilterMap m_filter;
 };
 
diff --git a/third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.cpp b/third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.cpp
index 29472583..73014d7 100644
--- a/third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.cpp
+++ b/third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.cpp
@@ -41,7 +41,7 @@
 
 namespace {
 
-using ResourceReferenceMap = WillBePersistentHeapHashMap<RawPtrWillBeWeakMember<const FilterOperation>, OwnPtr<DocumentResourceReference>>;
+using ResourceReferenceMap = PersistentHeapHashMap<WeakMember<const FilterOperation>, OwnPtr<DocumentResourceReference>>;
 
 ResourceReferenceMap& documentResourceReferences()
 {
@@ -69,7 +69,7 @@
 }
 #endif
 
-PassRefPtrWillBeRawPtr<Filter> ReferenceFilterBuilder::build(float zoom, Element* element, FilterEffect* previousEffect, const ReferenceFilterOperation& filterOperation, const FloatSize* referenceBoxSize, const SkPaint* fillPaint, const SkPaint* strokePaint)
+RawPtr<Filter> ReferenceFilterBuilder::build(float zoom, Element* element, FilterEffect* previousEffect, const ReferenceFilterOperation& filterOperation, const FloatSize* referenceBoxSize, const SkPaint* fillPaint, const SkPaint* strokePaint)
 {
     TreeScope* treeScope = &element->treeScope();
 
@@ -110,7 +110,7 @@
     FloatRect filterRegion = SVGLengthContext::resolveRectangle<SVGFilterElement>(&filterElement, filterElement.filterUnits()->currentValue()->enumValue(), referenceBox);
     bool primitiveBoundingBoxMode = filterElement.primitiveUnits()->currentValue()->enumValue() == SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX;
     Filter::UnitScaling unitScaling = primitiveBoundingBoxMode ? Filter::BoundingBox : Filter::UserSpace;
-    RefPtrWillBeRawPtr<Filter> result(Filter::create(referenceBox, filterRegion, zoom, unitScaling));
+    RawPtr<Filter> result(Filter::create(referenceBox, filterRegion, zoom, unitScaling));
     if (!previousEffect)
         previousEffect = result->getSourceGraphic();
 
diff --git a/third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.h b/third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.h
index fac3d15..fb361557 100644
--- a/third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.h
+++ b/third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.h
@@ -56,7 +56,7 @@
     static void clearDocumentResourceReference(const FilterOperation*);
 #endif
 
-    static PassRefPtrWillBeRawPtr<Filter> build(float zoom, Element*, FilterEffect* previousEffect, const ReferenceFilterOperation&, const FloatSize* referenceBoxSize = nullptr, const SkPaint* fillPaint = nullptr, const SkPaint* strokePaint = nullptr);
+    static RawPtr<Filter> build(float zoom, Element*, FilterEffect* previousEffect, const ReferenceFilterOperation&, const FloatSize* referenceBoxSize = nullptr, const SkPaint* fillPaint = nullptr, const SkPaint* strokePaint = nullptr);
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/layout/svg/SVGLayoutTreeAsText.cpp b/third_party/WebKit/Source/core/layout/svg/SVGLayoutTreeAsText.cpp
index f79de456e..67aca1c 100644
--- a/third_party/WebKit/Source/core/layout/svg/SVGLayoutTreeAsText.cpp
+++ b/third_party/WebKit/Source/core/layout/svg/SVGLayoutTreeAsText.cpp
@@ -506,7 +506,7 @@
         ts << "\n";
         // Creating a placeholder filter which is passed to the builder.
         FloatRect dummyRect;
-        RefPtrWillBeRawPtr<Filter> dummyFilter = Filter::create(dummyRect, dummyRect, 1, Filter::BoundingBox);
+        RawPtr<Filter> dummyFilter = Filter::create(dummyRect, dummyRect, 1, Filter::BoundingBox);
         SVGFilterBuilder builder(dummyFilter->getSourceGraphic());
         builder.buildGraph(dummyFilter.get(), toSVGFilterElement(*filter->element()), dummyRect);
         if (FilterEffect* lastEffect = builder.lastEffect())
diff --git a/third_party/WebKit/Source/core/layout/svg/SVGTextLayoutAttributesBuilder.cpp b/third_party/WebKit/Source/core/layout/svg/SVGTextLayoutAttributesBuilder.cpp
index 604dfced..2be4dbc 100644
--- a/third_party/WebKit/Source/core/layout/svg/SVGTextLayoutAttributesBuilder.cpp
+++ b/third_party/WebKit/Source/core/layout/svg/SVGTextLayoutAttributesBuilder.cpp
@@ -188,11 +188,11 @@
 
 void SVGTextLayoutAttributesBuilder::fillCharacterDataMap(const TextPosition& position)
 {
-    RefPtrWillBeRawPtr<SVGLengthList> xList = position.element->x()->currentValue();
-    RefPtrWillBeRawPtr<SVGLengthList> yList = position.element->y()->currentValue();
-    RefPtrWillBeRawPtr<SVGLengthList> dxList = position.element->dx()->currentValue();
-    RefPtrWillBeRawPtr<SVGLengthList> dyList = position.element->dy()->currentValue();
-    RefPtrWillBeRawPtr<SVGNumberList> rotateList = position.element->rotate()->currentValue();
+    RawPtr<SVGLengthList> xList = position.element->x()->currentValue();
+    RawPtr<SVGLengthList> yList = position.element->y()->currentValue();
+    RawPtr<SVGLengthList> dxList = position.element->dx()->currentValue();
+    RawPtr<SVGLengthList> dyList = position.element->dy()->currentValue();
+    RawPtr<SVGNumberList> rotateList = position.element->rotate()->currentValue();
 
     unsigned xListSize = xList->length();
     unsigned yListSize = yList->length();
diff --git a/third_party/WebKit/Source/core/layout/svg/SVGTextLayoutAttributesBuilder.h b/third_party/WebKit/Source/core/layout/svg/SVGTextLayoutAttributesBuilder.h
index f05c55f..1f66b75 100644
--- a/third_party/WebKit/Source/core/layout/svg/SVGTextLayoutAttributesBuilder.h
+++ b/third_party/WebKit/Source/core/layout/svg/SVGTextLayoutAttributesBuilder.h
@@ -67,7 +67,7 @@
 
         DECLARE_TRACE();
 
-        RawPtrWillBeMember<SVGTextPositioningElement> element;
+        Member<SVGTextPositioningElement> element;
         unsigned start;
         unsigned length;
     };
@@ -79,7 +79,7 @@
 
 private:
     unsigned m_textLength;
-    WillBePersistentHeapVector<TextPosition> m_textPositions;
+    PersistentHeapVector<TextPosition> m_textPositions;
     SVGCharacterDataMap m_characterDataMap;
 };
 
diff --git a/third_party/WebKit/Source/core/loader/FormSubmission.cpp b/third_party/WebKit/Source/core/loader/FormSubmission.cpp
index 79c4e3d4..538b97be 100644
--- a/third_party/WebKit/Source/core/loader/FormSubmission.cpp
+++ b/third_party/WebKit/Source/core/loader/FormSubmission.cpp
@@ -66,13 +66,13 @@
 
     if (equalIgnoringCase(encodingType, "text/plain")) {
         // Convention seems to be to decode, and s/&/\r\n/. Also, spaces are encoded as %20.
-        body = decodeURLEscapeSequences(body.replaceWithLiteral('&', "\r\n").replace('+', ' ') + "\r\n");
+        body = decodeURLEscapeSequences(body.replace('&', "\r\n").replace('+', ' ') + "\r\n");
     }
 
     Vector<char> bodyData;
     bodyData.append("body=", 5);
     FormDataEncoder::encodeStringAsFormData(bodyData, body.utf8());
-    body = String(bodyData.data(), bodyData.size()).replaceWithLiteral('+', "%20");
+    body = String(bodyData.data(), bodyData.size()).replace('+', "%20");
 
     StringBuilder query;
     query.append(url.query());
diff --git a/third_party/WebKit/Source/core/loader/FrameFetchContext.cpp b/third_party/WebKit/Source/core/loader/FrameFetchContext.cpp
index 78239b0c1..fa07761 100644
--- a/third_party/WebKit/Source/core/loader/FrameFetchContext.cpp
+++ b/third_party/WebKit/Source/core/loader/FrameFetchContext.cpp
@@ -143,7 +143,7 @@
         return CachePolicyVerify;
 
     FrameLoadType loadType = frame()->loader().loadType();
-    if (loadType == FrameLoadTypeReloadFromOrigin)
+    if (loadType == FrameLoadTypeReloadBypassingCache)
         return CachePolicyReload;
 
     Frame* parentFrame = frame()->tree().parent();
@@ -167,9 +167,9 @@
     if (policy == CachePolicyVerify)
         return UseProtocolCachePolicy;
     if (policy == CachePolicyRevalidate)
-        return ReloadIgnoringCacheData;
+        return ValidatingCacheData;
     if (policy == CachePolicyReload)
-        return ReloadBypassingCache;
+        return BypassingCache;
     if (policy == CachePolicyHistoryBuffer)
         return ReturnCacheDataElseLoad;
     return UseProtocolCachePolicy;
@@ -185,7 +185,7 @@
         if (!frame()->host()->overrideEncoding().isEmpty())
             return ReturnCacheDataElseLoad;
         if (frameLoadType == FrameLoadTypeSame || request.isConditional() || request.httpMethod() == "POST")
-            return ReloadIgnoringCacheData;
+            return ValidatingCacheData;
 
         for (Frame* f = frame(); f; f = f->tree().parent()) {
             if (!f->isLocalFrame())
@@ -193,10 +193,10 @@
             frameLoadType = toLocalFrame(f)->loader().loadType();
             if (frameLoadType == FrameLoadTypeBackForward)
                 return ReturnCacheDataElseLoad;
-            if (frameLoadType == FrameLoadTypeReloadFromOrigin)
-                return ReloadBypassingCache;
+            if (frameLoadType == FrameLoadTypeReloadBypassingCache)
+                return BypassingCache;
             if (frameLoadType == FrameLoadTypeReload)
-                return ReloadIgnoringCacheData;
+                return ValidatingCacheData;
         }
         return UseProtocolCachePolicy;
     }
@@ -217,7 +217,7 @@
     }
 
     if (request.isConditional())
-        return ReloadIgnoringCacheData;
+        return ValidatingCacheData;
 
     if (m_documentLoader && m_document && !m_document->loadEventFinished()) {
         // For POST requests, we mutate the main resource's cache policy to avoid form resubmission.
diff --git a/third_party/WebKit/Source/core/loader/FrameFetchContextTest.cpp b/third_party/WebKit/Source/core/loader/FrameFetchContextTest.cpp
index 6e4c7322..f137770 100644
--- a/third_party/WebKit/Source/core/loader/FrameFetchContextTest.cpp
+++ b/third_party/WebKit/Source/core/loader/FrameFetchContextTest.cpp
@@ -400,7 +400,7 @@
     // Post
     ResourceRequest postRequest("http://www.example.com");
     postRequest.setHTTPMethod("POST");
-    EXPECT_EQ(ReloadIgnoringCacheData, fetchContext->resourceRequestCachePolicy(postRequest, Resource::MainResource));
+    EXPECT_EQ(ValidatingCacheData, fetchContext->resourceRequestCachePolicy(postRequest, Resource::MainResource));
 
     // Re-post
     document->frame()->loader().setLoadType(FrameLoadTypeBackForward);
@@ -414,13 +414,13 @@
 
     // FrameLoadTypeSame
     document->frame()->loader().setLoadType(FrameLoadTypeSame);
-    EXPECT_EQ(ReloadIgnoringCacheData, fetchContext->resourceRequestCachePolicy(request, Resource::MainResource));
+    EXPECT_EQ(ValidatingCacheData, fetchContext->resourceRequestCachePolicy(request, Resource::MainResource));
 
     // Conditional request
     document->frame()->loader().setLoadType(FrameLoadTypeStandard);
     ResourceRequest conditional("http://www.example.com");
     conditional.setHTTPHeaderField(HTTPNames::If_Modified_Since, "foo");
-    EXPECT_EQ(ReloadIgnoringCacheData, fetchContext->resourceRequestCachePolicy(conditional, Resource::MainResource));
+    EXPECT_EQ(ValidatingCacheData, fetchContext->resourceRequestCachePolicy(conditional, Resource::MainResource));
 
     // Set up a child frame
     FrameFetchContext* childFetchContext = createChildFrame();
@@ -431,11 +431,11 @@
 
     // Child frame as part of reload
     document->frame()->loader().setLoadType(FrameLoadTypeReload);
-    EXPECT_EQ(ReloadIgnoringCacheData, childFetchContext->resourceRequestCachePolicy(request, Resource::MainResource));
+    EXPECT_EQ(ValidatingCacheData, childFetchContext->resourceRequestCachePolicy(request, Resource::MainResource));
 
-    // Child frame as part of end to end reload
-    document->frame()->loader().setLoadType(FrameLoadTypeReloadFromOrigin);
-    EXPECT_EQ(ReloadBypassingCache, childFetchContext->resourceRequestCachePolicy(request, Resource::MainResource));
+    // Child frame as part of reload bypassing cache
+    document->frame()->loader().setLoadType(FrameLoadTypeReloadBypassingCache);
+    EXPECT_EQ(BypassingCache, childFetchContext->resourceRequestCachePolicy(request, Resource::MainResource));
 }
 
 TEST_F(FrameFetchContextTest, ModifyPriorityForExperiments)
diff --git a/third_party/WebKit/Source/core/loader/FrameLoader.cpp b/third_party/WebKit/Source/core/loader/FrameLoader.cpp
index a149585..a169c6e 100644
--- a/third_party/WebKit/Source/core/loader/FrameLoader.cpp
+++ b/third_party/WebKit/Source/core/loader/FrameLoader.cpp
@@ -111,7 +111,7 @@
 static bool needsHistoryItemRestore(FrameLoadType type)
 {
     return type == FrameLoadTypeBackForward || type == FrameLoadTypeReload
-        || type == FrameLoadTypeReloadFromOrigin;
+        || type == FrameLoadTypeReloadBypassingCache;
 }
 
 // static
@@ -135,9 +135,8 @@
 ResourceRequest FrameLoader::resourceRequestForReload(FrameLoadType frameLoadType,
     const KURL& overrideURL, ClientRedirectPolicy clientRedirectPolicy)
 {
-    ASSERT(frameLoadType == FrameLoadTypeReload || frameLoadType == FrameLoadTypeReloadFromOrigin);
-    ResourceRequestCachePolicy cachePolicy = frameLoadType == FrameLoadTypeReloadFromOrigin ?
-        ReloadBypassingCache : ReloadIgnoringCacheData;
+    ASSERT(frameLoadType == FrameLoadTypeReload || frameLoadType == FrameLoadTypeReloadBypassingCache);
+    ResourceRequestCachePolicy cachePolicy = frameLoadType == FrameLoadTypeReloadBypassingCache ? BypassingCache : ValidatingCacheData;
     if (!m_currentItem)
         return ResourceRequest();
     ResourceRequest request = resourceRequestFromHistoryItem(m_currentItem.get(), cachePolicy);
@@ -157,7 +156,7 @@
         request.setURL(overrideURL);
         request.clearHTTPReferrer();
     }
-    request.setSkipServiceWorker(frameLoadType == FrameLoadTypeReloadFromOrigin);
+    request.setSkipServiceWorker(frameLoadType == FrameLoadTypeReloadBypassingCache);
     return request;
 }
 
@@ -774,10 +773,10 @@
         return FrameLoadTypeStandard;
     if (m_provisionalDocumentLoader && request.substituteData().failingURL() == m_provisionalDocumentLoader->url() && m_loadType == FrameLoadTypeBackForward)
         return FrameLoadTypeBackForward;
-    if (request.resourceRequest().getCachePolicy() == ReloadIgnoringCacheData)
+    if (request.resourceRequest().getCachePolicy() == ValidatingCacheData)
         return FrameLoadTypeReload;
-    if (request.resourceRequest().getCachePolicy() == ReloadBypassingCache)
-        return FrameLoadTypeReloadFromOrigin;
+    if (request.resourceRequest().getCachePolicy() == BypassingCache)
+        return FrameLoadTypeReloadBypassingCache;
     // From the HTML5 spec for location.assign():
     //  "If the browsing context's session history contains only one Document,
     //   and that was the about:blank Document created when the browsing context
@@ -829,7 +828,7 @@
 
 static NavigationType determineNavigationType(FrameLoadType frameLoadType, bool isFormSubmission, bool haveEvent)
 {
-    bool isReload = frameLoadType == FrameLoadTypeReload || frameLoadType == FrameLoadTypeReloadFromOrigin;
+    bool isReload = frameLoadType == FrameLoadTypeReload || frameLoadType == FrameLoadTypeReloadBypassingCache;
     bool isBackForward = isBackForwardLoadType(frameLoadType);
     if (isFormSubmission)
         return (isReload || isBackForward) ? NavigationTypeFormResubmitted : NavigationTypeFormSubmitted;
@@ -1272,7 +1271,7 @@
     // currently displaying a frameset, or if the URL does not have a fragment.
     return (!isFormSubmission || equalIgnoringCase(httpMethod, HTTPNames::GET))
         && loadType != FrameLoadTypeReload
-        && loadType != FrameLoadTypeReloadFromOrigin
+        && loadType != FrameLoadTypeReloadBypassingCache
         && loadType != FrameLoadTypeSame
         && loadType != FrameLoadTypeBackForward
         && url.hasFragmentIdentifier()
diff --git a/third_party/WebKit/Source/core/loader/FrameLoaderTypes.h b/third_party/WebKit/Source/core/loader/FrameLoaderTypes.h
index ea457ea..146d15a 100644
--- a/third_party/WebKit/Source/core/loader/FrameLoaderTypes.h
+++ b/third_party/WebKit/Source/core/loader/FrameLoaderTypes.h
@@ -39,7 +39,7 @@
     FrameLoadTypeReplaceCurrentItem,
     FrameLoadTypeInitialInChildFrame,
     FrameLoadTypeInitialHistoryLoad,
-    FrameLoadTypeReloadFromOrigin,
+    FrameLoadTypeReloadBypassingCache,
 };
 
 enum NavigationType {
diff --git a/third_party/WebKit/Source/core/loader/ImageLoader.cpp b/third_party/WebKit/Source/core/loader/ImageLoader.cpp
index 4c1b72a..53248b8 100644
--- a/third_party/WebKit/Source/core/loader/ImageLoader.cpp
+++ b/third_party/WebKit/Source/core/loader/ImageLoader.cpp
@@ -305,7 +305,7 @@
         ResourceLoaderOptions resourceLoaderOptions = ResourceFetcher::defaultResourceOptions();
         ResourceRequest resourceRequest(url);
         if (updateBehavior == UpdateForcedReload) {
-            resourceRequest.setCachePolicy(ResourceRequestCachePolicy::ReloadBypassingCache);
+            resourceRequest.setCachePolicy(ResourceRequestCachePolicy::BypassingCache);
             resourceRequest.setLoFiState(WebURLRequest::LoFiOff);
             // ImageLoader defers the load of images when in an ImageDocument.
             // Don't defer this load on a forced reload.
diff --git a/third_party/WebKit/Source/core/loader/NavigationScheduler.cpp b/third_party/WebKit/Source/core/loader/NavigationScheduler.cpp
index 147c9a0..b59a1dad 100644
--- a/third_party/WebKit/Source/core/loader/NavigationScheduler.cpp
+++ b/third_party/WebKit/Source/core/loader/NavigationScheduler.cpp
@@ -145,7 +145,7 @@
         FrameLoadRequest request(originDocument(), url(), "_self");
         request.setReplacesCurrentItem(replacesCurrentItem());
         if (equalIgnoringFragmentIdentifier(frame->document()->url(), request.resourceRequest().url()))
-            request.resourceRequest().setCachePolicy(ReloadIgnoringCacheData);
+            request.resourceRequest().setCachePolicy(ValidatingCacheData);
         request.setClientRedirect(ClientRedirect);
         frame->loader().load(request);
     }
diff --git a/third_party/WebKit/Source/core/page/AutoscrollController.cpp b/third_party/WebKit/Source/core/page/AutoscrollController.cpp
index 327d0219..ce0c222 100644
--- a/third_party/WebKit/Source/core/page/AutoscrollController.cpp
+++ b/third_party/WebKit/Source/core/page/AutoscrollController.cpp
@@ -43,9 +43,9 @@
 // Delay time in second for start autoscroll if pointer is in border edge of scrollable element.
 static double autoscrollDelay = 0.2;
 
-PassOwnPtrWillBeRawPtr<AutoscrollController> AutoscrollController::create(Page& page)
+RawPtr<AutoscrollController> AutoscrollController::create(Page& page)
 {
-    return adoptPtrWillBeNoop(new AutoscrollController(page));
+    return new AutoscrollController(page);
 }
 
 AutoscrollController::AutoscrollController(Page& page)
diff --git a/third_party/WebKit/Source/core/page/AutoscrollController.h b/third_party/WebKit/Source/core/page/AutoscrollController.h
index 1e1dc275e..1f4f8a27 100644
--- a/third_party/WebKit/Source/core/page/AutoscrollController.h
+++ b/third_party/WebKit/Source/core/page/AutoscrollController.h
@@ -52,10 +52,9 @@
 };
 
 // AutscrollController handels autoscroll and pan scroll for EventHandler.
-class CORE_EXPORT AutoscrollController final : public NoBaseWillBeGarbageCollected<AutoscrollController> {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(AutoscrollController);
+class CORE_EXPORT AutoscrollController final : public GarbageCollected<AutoscrollController> {
 public:
-    static PassOwnPtrWillBeRawPtr<AutoscrollController> create(Page&);
+    static RawPtr<AutoscrollController> create(Page&);
     DECLARE_TRACE();
 
     static const int noPanScrollRadius = 15;
@@ -83,7 +82,7 @@
     void updatePanScrollState(FrameView*, const IntPoint& lastKnownMousePosition);
 #endif
 
-    RawPtrWillBeMember<Page> m_page;
+    Member<Page> m_page;
     LayoutBox* m_autoscrollLayoutObject;
     LayoutBox* m_pressedLayoutObject;
     AutoscrollType m_autoscrollType;
diff --git a/third_party/WebKit/Source/core/page/ChromeClient.h b/third_party/WebKit/Source/core/page/ChromeClient.h
index 23ac7a6..5b6d6de 100644
--- a/third_party/WebKit/Source/core/page/ChromeClient.h
+++ b/third_party/WebKit/Source/core/page/ChromeClient.h
@@ -161,7 +161,7 @@
 
     virtual void annotatedRegionsChanged() = 0;
 
-    virtual PassOwnPtrWillBeRawPtr<ColorChooser> openColorChooser(LocalFrame*, ColorChooserClient*, const Color&) = 0;
+    virtual RawPtr<ColorChooser> openColorChooser(LocalFrame*, ColorChooserClient*, const Color&) = 0;
 
     // This function is used for:
     //  - Mandatory date/time choosers if !ENABLE(INPUT_MULTIPLE_FIELDS_UI)
@@ -169,7 +169,7 @@
     //    returns true, if ENABLE(INPUT_MULTIPLE_FIELDS_UI)
     //  - <datalist> UI for date/time input types regardless of
     //    ENABLE(INPUT_MULTIPLE_FIELDS_UI)
-    virtual PassRefPtrWillBeRawPtr<DateTimeChooser> openDateTimeChooser(DateTimeChooserClient*, const DateTimeChooserParameters&) = 0;
+    virtual RawPtr<DateTimeChooser> openDateTimeChooser(DateTimeChooserClient*, const DateTimeChooserParameters&) = 0;
 
     virtual void openTextDataListChooser(HTMLInputElement&)= 0;
 
@@ -205,7 +205,7 @@
 
     // Checks if there is an opened popup, called by LayoutMenuList::showPopup().
     virtual bool hasOpenedPopup() const = 0;
-    virtual PassRefPtrWillBeRawPtr<PopupMenu> openPopupMenu(LocalFrame&, HTMLSelectElement&) = 0;
+    virtual RawPtr<PopupMenu> openPopupMenu(LocalFrame&, HTMLSelectElement&) = 0;
     virtual DOMWindow* pagePopupWindowForTesting() const = 0;
 
     virtual void postAccessibilityNotification(AXObject*, AXObjectCache::AXNotification) { }
@@ -228,7 +228,7 @@
 
     virtual bool isChromeClientImpl() const { return false; }
 
-    virtual void didAssociateFormControls(const WillBeHeapVector<RefPtrWillBeMember<Element>>&, LocalFrame*) { }
+    virtual void didAssociateFormControls(const HeapVector<Member<Element>>&, LocalFrame*) { }
     virtual void didChangeValueInTextField(HTMLFormControlElement&) { }
     virtual void didEndEditingOnTextField(HTMLInputElement&) { }
     virtual void handleKeyboardEventOnTextField(HTMLInputElement&, KeyboardEvent&) { }
diff --git a/third_party/WebKit/Source/core/page/ChromeClientTest.cpp b/third_party/WebKit/Source/core/page/ChromeClientTest.cpp
index d25fc5bb..c8829ff 100644
--- a/third_party/WebKit/Source/core/page/ChromeClientTest.cpp
+++ b/third_party/WebKit/Source/core/page/ChromeClientTest.cpp
@@ -37,8 +37,8 @@
     ChromeClientToolTipLogger logger;
     ChromeClient* client = &logger;
     HitTestResult result(HitTestRequest(HitTestRequest::Move), LayoutPoint(10, 20));
-    RefPtrWillBeRawPtr<Document> doc = Document::create();
-    RefPtrWillBeRawPtr<Element> element = HTMLElement::create(HTMLNames::divTag, *doc);
+    RawPtr<Document> doc = Document::create();
+    RawPtr<Element> element = HTMLElement::create(HTMLNames::divTag, *doc);
     element->setAttribute(HTMLNames::titleAttr, "tooltip");
     result.setInnerNode(element.get());
 
diff --git a/third_party/WebKit/Source/core/page/ContextMenuController.cpp b/third_party/WebKit/Source/core/page/ContextMenuController.cpp
index c522c13..efe5ddf 100644
--- a/third_party/WebKit/Source/core/page/ContextMenuController.cpp
+++ b/third_party/WebKit/Source/core/page/ContextMenuController.cpp
@@ -54,9 +54,9 @@
 {
 }
 
-PassOwnPtrWillBeRawPtr<ContextMenuController> ContextMenuController::create(Page* page, ContextMenuClient* client)
+RawPtr<ContextMenuController> ContextMenuController::create(Page* page, ContextMenuClient* client)
 {
-    return adoptPtrWillBeNoop(new ContextMenuController(page, client));
+    return new ContextMenuController(page, client);
 }
 
 DEFINE_TRACE(ContextMenuController)
@@ -94,10 +94,10 @@
         return;
 
     HTMLElement& element = toHTMLElement(*node);
-    RefPtrWillBeRawPtr<HTMLMenuElement> menuElement = element.assignedContextMenu();
+    RawPtr<HTMLMenuElement> menuElement = element.assignedContextMenu();
     if (!menuElement || !equalIgnoringCase(menuElement->fastGetAttribute(typeAttr), "context"))
         return;
-    RefPtrWillBeRawPtr<RelatedEvent> relatedEvent = RelatedEvent::create(EventTypeNames::show, true, true, node);
+    RawPtr<RelatedEvent> relatedEvent = RelatedEvent::create(EventTypeNames::show, true, true, node);
     if (menuElement->dispatchEvent(relatedEvent.release()) != DispatchEventResult::NotCanceled)
         return;
     if (menuElement != element.assignedContextMenu())
@@ -115,7 +115,7 @@
     showContextMenu(event);
 }
 
-void ContextMenuController::showContextMenu(Event* event, PassRefPtrWillBeRawPtr<ContextMenuProvider> menuProvider)
+void ContextMenuController::showContextMenu(Event* event, RawPtr<ContextMenuProvider> menuProvider)
 {
     m_menuProvider = menuProvider;
 
@@ -129,7 +129,7 @@
     showContextMenu(event);
 }
 
-void ContextMenuController::showContextMenuAtPoint(LocalFrame* frame, float x, float y, PassRefPtrWillBeRawPtr<ContextMenuProvider> menuProvider)
+void ContextMenuController::showContextMenuAtPoint(LocalFrame* frame, float x, float y, RawPtr<ContextMenuProvider> menuProvider)
 {
     m_menuProvider = menuProvider;
 
diff --git a/third_party/WebKit/Source/core/page/ContextMenuController.h b/third_party/WebKit/Source/core/page/ContextMenuController.h
index 152aed82..688c1c97 100644
--- a/third_party/WebKit/Source/core/page/ContextMenuController.h
+++ b/third_party/WebKit/Source/core/page/ContextMenuController.h
@@ -45,10 +45,10 @@
 class LocalFrame;
 class Page;
 
-class CORE_EXPORT ContextMenuController final : public NoBaseWillBeGarbageCollectedFinalized<ContextMenuController> {
-    WTF_MAKE_NONCOPYABLE(ContextMenuController); USING_FAST_MALLOC_WILL_BE_REMOVED(ContextMenuController);
+class CORE_EXPORT ContextMenuController final : public GarbageCollectedFinalized<ContextMenuController> {
+    WTF_MAKE_NONCOPYABLE(ContextMenuController);
 public:
-    static PassOwnPtrWillBeRawPtr<ContextMenuController> create(Page*, ContextMenuClient*);
+    static RawPtr<ContextMenuController> create(Page*, ContextMenuClient*);
     ~ContextMenuController();
     DECLARE_TRACE();
 
@@ -58,8 +58,8 @@
     void documentDetached(Document*);
 
     void handleContextMenuEvent(Event*);
-    void showContextMenu(Event*, PassRefPtrWillBeRawPtr<ContextMenuProvider>);
-    void showContextMenuAtPoint(LocalFrame*, float x, float y, PassRefPtrWillBeRawPtr<ContextMenuProvider>);
+    void showContextMenu(Event*, RawPtr<ContextMenuProvider>);
+    void showContextMenuAtPoint(LocalFrame*, float x, float y, RawPtr<ContextMenuProvider>);
 
     void contextMenuItemSelected(const ContextMenuItem*);
 
@@ -75,7 +75,7 @@
 
     ContextMenuClient* m_client;
     OwnPtr<ContextMenu> m_contextMenu;
-    RefPtrWillBeMember<ContextMenuProvider> m_menuProvider;
+    Member<ContextMenuProvider> m_menuProvider;
     HitTestResult m_hitTestResult;
 };
 
diff --git a/third_party/WebKit/Source/core/page/ContextMenuControllerTest.cpp b/third_party/WebKit/Source/core/page/ContextMenuControllerTest.cpp
index 2b91344..c45e878 100644
--- a/third_party/WebKit/Source/core/page/ContextMenuControllerTest.cpp
+++ b/third_party/WebKit/Source/core/page/ContextMenuControllerTest.cpp
@@ -68,7 +68,7 @@
         "</button>");
 
     // Create right button click event and pass it to context menu controller.
-    RefPtrWillBeRawPtr<Event> event = MouseEvent::create(EventTypeNames::click, false, false,
+    RawPtr<Event> event = MouseEvent::create(EventTypeNames::click, false, false,
         document().domWindow(), 50, 50, 0, 0, 0, 0, 0, PlatformEvent::NoModifiers, 1, 0, nullptr, 0,
         PlatformMouseEvent::RealOrIndistinguishable, String());
     document().getElementById("button_id")->focus();
diff --git a/third_party/WebKit/Source/core/page/ContextMenuProvider.h b/third_party/WebKit/Source/core/page/ContextMenuProvider.h
index c2ba138..5a5df2b 100644
--- a/third_party/WebKit/Source/core/page/ContextMenuProvider.h
+++ b/third_party/WebKit/Source/core/page/ContextMenuProvider.h
@@ -39,7 +39,7 @@
 class ContextMenu;
 class ContextMenuItem;
 
-class ContextMenuProvider : public RefCountedWillBeGarbageCollectedFinalized<ContextMenuProvider> {
+class ContextMenuProvider : public GarbageCollectedFinalized<ContextMenuProvider> {
 public:
     virtual ~ContextMenuProvider() { }
     DEFINE_INLINE_VIRTUAL_TRACE() { }
diff --git a/third_party/WebKit/Source/core/page/CustomContextMenuProvider.cpp b/third_party/WebKit/Source/core/page/CustomContextMenuProvider.cpp
index 9508113..3b52812 100644
--- a/third_party/WebKit/Source/core/page/CustomContextMenuProvider.cpp
+++ b/third_party/WebKit/Source/core/page/CustomContextMenuProvider.cpp
@@ -44,7 +44,7 @@
 void CustomContextMenuProvider::contextMenuItemSelected(const ContextMenuItem* item)
 {
     if (HTMLElement* element = menuItemAt(item->action())) {
-        RefPtrWillBeRawPtr<MouseEvent> click = MouseEvent::create(EventTypeNames::click, m_menu->document().domWindow(), Event::create(), SimulatedClickCreationScope::FromUserAgent);
+        RawPtr<MouseEvent> click = MouseEvent::create(EventTypeNames::click, m_menu->document().domWindow(), Event::create(), SimulatedClickCreationScope::FromUserAgent);
         click->setRelatedTarget(m_subjectElement.get());
         element->dispatchEvent(click.release());
     }
diff --git a/third_party/WebKit/Source/core/page/CustomContextMenuProvider.h b/third_party/WebKit/Source/core/page/CustomContextMenuProvider.h
index 08745f6..0bcc180 100644
--- a/third_party/WebKit/Source/core/page/CustomContextMenuProvider.h
+++ b/third_party/WebKit/Source/core/page/CustomContextMenuProvider.h
@@ -20,9 +20,9 @@
 public:
     ~CustomContextMenuProvider() override;
 
-    static PassRefPtrWillBeRawPtr<CustomContextMenuProvider> create(HTMLMenuElement& menu, HTMLElement& subject)
+    static RawPtr<CustomContextMenuProvider> create(HTMLMenuElement& menu, HTMLElement& subject)
     {
-        return adoptRefWillBeNoop(new CustomContextMenuProvider(menu, subject));
+        return new CustomContextMenuProvider(menu, subject);
     }
 
     DECLARE_VIRTUAL_TRACE();
@@ -38,9 +38,9 @@
     void appendMenuItem(HTMLMenuItemElement*, ContextMenu&);
     HTMLElement* menuItemAt(unsigned menuId);
 
-    RefPtrWillBeMember<HTMLMenuElement> m_menu;
-    RefPtrWillBeMember<HTMLElement> m_subjectElement;
-    WillBeHeapVector<RefPtrWillBeMember<HTMLElement>> m_menuItems;
+    Member<HTMLMenuElement> m_menu;
+    Member<HTMLElement> m_subjectElement;
+    HeapVector<Member<HTMLElement>> m_menuItems;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/page/DragController.cpp b/third_party/WebKit/Source/core/page/DragController.cpp
index addb269..90f109a 100644
--- a/third_party/WebKit/Source/core/page/DragController.cpp
+++ b/third_party/WebKit/Source/core/page/DragController.cpp
@@ -141,26 +141,26 @@
 {
 }
 
-PassOwnPtrWillBeRawPtr<DragController> DragController::create(Page* page, DragClient* client)
+RawPtr<DragController> DragController::create(Page* page, DragClient* client)
 {
-    return adoptPtrWillBeNoop(new DragController(page, client));
+    return new DragController(page, client);
 }
 
-static PassRefPtrWillBeRawPtr<DocumentFragment> documentFragmentFromDragData(DragData* dragData, LocalFrame* frame, RefPtrWillBeRawPtr<Range> context, bool allowPlainText, bool& chosePlainText)
+static RawPtr<DocumentFragment> documentFragmentFromDragData(DragData* dragData, LocalFrame* frame, RawPtr<Range> context, bool allowPlainText, bool& chosePlainText)
 {
     ASSERT(dragData);
     chosePlainText = false;
 
     Document& document = context->ownerDocument();
     if (dragData->containsCompatibleContent()) {
-        if (PassRefPtrWillBeRawPtr<DocumentFragment> fragment = dragData->asFragment(frame))
+        if (RawPtr<DocumentFragment> fragment = dragData->asFragment(frame))
             return fragment;
 
         if (dragData->containsURL(DragData::DoNotConvertFilenames)) {
             String title;
             String url = dragData->asURL(DragData::DoNotConvertFilenames, &title);
             if (!url.isEmpty()) {
-                RefPtrWillBeRawPtr<HTMLAnchorElement> anchor = HTMLAnchorElement::create(document);
+                RawPtr<HTMLAnchorElement> anchor = HTMLAnchorElement::create(document);
                 anchor->setHref(AtomicString(url));
                 if (title.isEmpty()) {
                     // Try the plain text first because the url might be normalized or escaped.
@@ -169,9 +169,9 @@
                     if (title.isEmpty())
                         title = url;
                 }
-                RefPtrWillBeRawPtr<Node> anchorText = document.createTextNode(title);
+                RawPtr<Node> anchorText = document.createTextNode(title);
                 anchor->appendChild(anchorText);
-                RefPtrWillBeRawPtr<DocumentFragment> fragment = document.createDocumentFragment();
+                RawPtr<DocumentFragment> fragment = document.createDocumentFragment();
                 fragment->appendChild(anchor);
                 return fragment.release();
             }
@@ -213,7 +213,7 @@
     ASSERT(dragData);
     LocalFrame* mainFrame = m_page->deprecatedLocalMainFrame();
 
-    RefPtrWillBeRawPtr<FrameView> frameView(mainFrame->view());
+    RawPtr<FrameView> frameView(mainFrame->view());
     if (frameView) {
         DataTransferAccessPolicy policy = (!m_documentUnderMouse || m_documentUnderMouse->getSecurityOrigin()->isLocal()) ? DataTransferReadable : DataTransferTypesReadable;
         DataTransfer* dataTransfer = createDraggingDataTransfer(policy, dragData);
@@ -237,7 +237,7 @@
     ASSERT(dragData);
     m_documentUnderMouse = m_page->deprecatedLocalMainFrame()->documentAtPoint(dragData->clientPosition());
     if ((m_dragDestinationAction & DragDestinationActionDHTML) && m_documentIsHandlingDrag) {
-        RefPtrWillBeRawPtr<LocalFrame> mainFrame = m_page->deprecatedLocalMainFrame();
+        RawPtr<LocalFrame> mainFrame = m_page->deprecatedLocalMainFrame();
         bool preventedDefault = false;
         if (mainFrame->view()) {
             // Sending an event can result in the destruction of the view and part.
@@ -348,7 +348,7 @@
 
     // It's unclear why this check is after tryDHTMLDrag.
     // We send drag events in tryDHTMLDrag and that may be the reason.
-    RefPtrWillBeRawPtr<FrameView> frameView = m_documentUnderMouse->view();
+    RawPtr<FrameView> frameView = m_documentUnderMouse->view();
     if (!frameView)
         return false;
 
@@ -421,7 +421,7 @@
     return dragOperation(dragData);
 }
 
-static bool setSelectionToDragCaret(LocalFrame* frame, VisibleSelection& dragCaret, RefPtrWillBeRawPtr<Range>& range, const IntPoint& point)
+static bool setSelectionToDragCaret(LocalFrame* frame, VisibleSelection& dragCaret, RawPtr<Range>& range, const IntPoint& point)
 {
     frame->selection().setSelection(dragCaret);
     if (frame->selection().isNone()) {
@@ -444,7 +444,7 @@
 {
     ASSERT(dragData);
 
-    RefPtrWillBeRawPtr<HTMLInputElement> fileInput = m_fileInputElementUnderMouse;
+    RawPtr<HTMLInputElement> fileInput = m_fileInputElementUnderMouse;
     if (m_fileInputElementUnderMouse) {
         m_fileInputElementUnderMouse->setCanReceiveDroppedFiles(false);
         m_fileInputElementUnderMouse = nullptr;
@@ -457,7 +457,7 @@
     Element* element = elementUnderMouse(m_documentUnderMouse.get(), point);
     if (!element)
         return false;
-    RefPtrWillBeRawPtr<LocalFrame> innerFrame = element->ownerDocument()->frame();
+    RawPtr<LocalFrame> innerFrame = element->ownerDocument()->frame();
     ASSERT(innerFrame);
 
     if (m_page->dragCaretController().hasCaret() && dispatchTextInputEventFor(innerFrame.get(), dragData) != DispatchEventResult::NotCanceled)
@@ -480,8 +480,8 @@
 
     VisibleSelection dragCaret(m_page->dragCaretController().caretPosition());
     m_page->dragCaretController().clear();
-    RefPtrWillBeRawPtr<Range> range = createRange(dragCaret.toNormalizedEphemeralRange());
-    RefPtrWillBeRawPtr<Element> rootEditableElement = innerFrame->selection().rootEditableElement();
+    RawPtr<Range> range = createRange(dragCaret.toNormalizedEphemeralRange());
+    RawPtr<Element> rootEditableElement = innerFrame->selection().rootEditableElement();
 
     // For range to be null a WebKit client must have done something bad while
     // manually controlling drag behaviour
@@ -491,7 +491,7 @@
     ResourceCacheValidationSuppressor validationSuppressor(fetcher);
     if (dragIsMove(innerFrame->selection(), dragData) || dragCaret.isContentRichlyEditable()) {
         bool chosePlainText = false;
-        RefPtrWillBeRawPtr<DocumentFragment> fragment = documentFragmentFromDragData(dragData, innerFrame.get(), range, true, chosePlainText);
+        RawPtr<DocumentFragment> fragment = documentFragmentFromDragData(dragData, innerFrame.get(), range, true, chosePlainText);
         if (!fragment)
             return false;
 
@@ -584,11 +584,11 @@
 {
     ASSERT(dragData);
     ASSERT(m_documentUnderMouse);
-    RefPtrWillBeRawPtr<LocalFrame> mainFrame = m_page->deprecatedLocalMainFrame();
+    RawPtr<LocalFrame> mainFrame = m_page->deprecatedLocalMainFrame();
     if (!mainFrame->view())
         return false;
 
-    RefPtrWillBeRawPtr<FrameView> viewProtector(mainFrame->view());
+    RawPtr<FrameView> viewProtector(mainFrame->view());
     DataTransferAccessPolicy policy = m_documentUnderMouse->getSecurityOrigin()->isLocal() ? DataTransferReadable : DataTransferTypesReadable;
     DataTransfer* dataTransfer = createDraggingDataTransfer(policy, dragData);
     DragOperation srcOpMask = dragData->draggingSourceOperationMask();
@@ -705,7 +705,7 @@
 static void prepareDataTransferForImageDrag(LocalFrame* source, DataTransfer* dataTransfer, Element* node, const KURL& linkURL, const KURL& imageURL, const String& label)
 {
     if (node->isContentRichlyEditable()) {
-        RefPtrWillBeRawPtr<Range> range = source->document()->createRange();
+        RawPtr<Range> range = source->document()->createRange();
         range->selectNode(node, ASSERT_NO_EXCEPTION);
         source->selection().setSelection(VisibleSelection(EphemeralRange(range.get())));
     }
@@ -934,8 +934,8 @@
     m_didInitiateDrag = true;
     m_dragInitiator = frame->document();
     // Protect this frame and view, as a load may occur mid drag and attempt to unload this frame
-    RefPtrWillBeRawPtr<LocalFrame> mainFrame = m_page->deprecatedLocalMainFrame();
-    RefPtrWillBeRawPtr<FrameView> mainFrameView = mainFrame->view();
+    RawPtr<LocalFrame> mainFrame = m_page->deprecatedLocalMainFrame();
+    RawPtr<FrameView> mainFrameView = mainFrame->view();
 
     m_client->startDrag(image, mainFrameView->rootFrameToContents(frame->view()->contentsToRootFrame(dragLocation)),
         mainFrameView->rootFrameToContents(frame->view()->contentsToRootFrame(eventPos)), dataTransfer, frame, forLink);
diff --git a/third_party/WebKit/Source/core/page/DragController.h b/third_party/WebKit/Source/core/page/DragController.h
index 6c70337..0d72194 100644
--- a/third_party/WebKit/Source/core/page/DragController.h
+++ b/third_party/WebKit/Source/core/page/DragController.h
@@ -50,13 +50,12 @@
 class Page;
 class PlatformMouseEvent;
 
-class CORE_EXPORT DragController final : public NoBaseWillBeGarbageCollectedFinalized<DragController> {
+class CORE_EXPORT DragController final : public GarbageCollectedFinalized<DragController> {
     WTF_MAKE_NONCOPYABLE(DragController);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(DragController);
 public:
     ~DragController();
 
-    static PassOwnPtrWillBeRawPtr<DragController> create(Page*, DragClient*);
+    static RawPtr<DragController> create(Page*, DragClient*);
 
     DragSession dragEntered(DragData*);
     void dragExited(DragData*);
@@ -98,12 +97,12 @@
     void doSystemDrag(DragImage*, const IntPoint& dragLocation, const IntPoint& dragOrigin, DataTransfer*, LocalFrame*, bool forLink);
     void cleanupAfterSystemDrag();
 
-    RawPtrWillBeMember<Page> m_page;
+    Member<Page> m_page;
     DragClient* m_client;
 
-    RefPtrWillBeMember<Document> m_documentUnderMouse; // The document the mouse was last dragged over.
-    RefPtrWillBeMember<Document> m_dragInitiator; // The Document (if any) that initiated the drag.
-    RefPtrWillBeMember<HTMLInputElement> m_fileInputElementUnderMouse;
+    Member<Document> m_documentUnderMouse; // The document the mouse was last dragged over.
+    Member<Document> m_dragInitiator; // The Document (if any) that initiated the drag.
+    Member<HTMLInputElement> m_fileInputElementUnderMouse;
     bool m_documentIsHandlingDrag;
 
     DragDestinationAction m_dragDestinationAction;
diff --git a/third_party/WebKit/Source/core/page/DragData.cpp b/third_party/WebKit/Source/core/page/DragData.cpp
index ddb2cb5..78d2b363 100644
--- a/third_party/WebKit/Source/core/page/DragData.cpp
+++ b/third_party/WebKit/Source/core/page/DragData.cpp
@@ -116,7 +116,7 @@
         || containsFiles();
 }
 
-PassRefPtrWillBeRawPtr<DocumentFragment> DragData::asFragment(LocalFrame* frame) const
+RawPtr<DocumentFragment> DragData::asFragment(LocalFrame* frame) const
 {
     /*
      * Order is richest format first. On OSX this is:
@@ -138,7 +138,7 @@
         KURL baseURL;
         m_platformDragData->htmlAndBaseURL(html, baseURL);
         ASSERT(frame->document());
-        if (RefPtrWillBeRawPtr<DocumentFragment> fragment = createFragmentFromMarkup(*frame->document(), html, baseURL, DisallowScriptingAndPluginContent))
+        if (RawPtr<DocumentFragment> fragment = createFragmentFromMarkup(*frame->document(), html, baseURL, DisallowScriptingAndPluginContent))
             return fragment.release();
     }
 
diff --git a/third_party/WebKit/Source/core/page/DragData.h b/third_party/WebKit/Source/core/page/DragData.h
index ba11bfe..92342e1 100644
--- a/third_party/WebKit/Source/core/page/DragData.h
+++ b/third_party/WebKit/Source/core/page/DragData.h
@@ -67,7 +67,7 @@
     String asURL(FilenameConversionPolicy filenamePolicy = ConvertFilenames, String* title = nullptr) const;
     String asPlainText() const;
     void asFilePaths(Vector<String>&) const;
-    PassRefPtrWillBeRawPtr<DocumentFragment> asFragment(LocalFrame*) const;
+    RawPtr<DocumentFragment> asFragment(LocalFrame*) const;
     bool canSmartReplace() const;
     bool containsFiles() const;
     int modifiers() const;
diff --git a/third_party/WebKit/Source/core/page/DragState.h b/third_party/WebKit/Source/core/page/DragState.h
index 0058502..bae382f 100644
--- a/third_party/WebKit/Source/core/page/DragState.h
+++ b/third_party/WebKit/Source/core/page/DragState.h
@@ -42,7 +42,7 @@
 public:
     DragState() { }
 
-    RefPtrWillBeMember<Node> m_dragSrc; // element that may be a drag source, for the current mouse gesture
+    Member<Node> m_dragSrc; // element that may be a drag source, for the current mouse gesture
     DragSourceAction m_dragType;
     Member<DataTransfer> m_dragDataTransfer; // used on only the source side of dragging
 
diff --git a/third_party/WebKit/Source/core/page/EventSource.cpp b/third_party/WebKit/Source/core/page/EventSource.cpp
index 1d9bc23..030739c 100644
--- a/third_party/WebKit/Source/core/page/EventSource.cpp
+++ b/third_party/WebKit/Source/core/page/EventSource.cpp
@@ -317,7 +317,7 @@
 
 void EventSource::onMessageEvent(const AtomicString& eventType, const String& data, const AtomicString& lastEventId)
 {
-    RefPtrWillBeRawPtr<MessageEvent> e = MessageEvent::create();
+    RawPtr<MessageEvent> e = MessageEvent::create();
     e->initMessageEvent(eventType, false, false, SerializedScriptValueFactory::instance().create(data), m_eventStreamOrigin, lastEventId, 0, nullptr);
 
     InspectorInstrumentation::willDispatchEventSourceEvent(getExecutionContext(), this, eventType, lastEventId, data);
diff --git a/third_party/WebKit/Source/core/page/FocusController.cpp b/third_party/WebKit/Source/core/page/FocusController.cpp
index df65ba7a..7b7421a 100644
--- a/third_party/WebKit/Source/core/page/FocusController.cpp
+++ b/third_party/WebKit/Source/core/page/FocusController.cpp
@@ -92,9 +92,9 @@
 private:
     ScopedFocusNavigation(TreeScope&, const Element*);
     ScopedFocusNavigation(HTMLSlotElement&, const Element*);
-    RawPtrWillBeMember<ContainerNode> m_rootNode;
-    RawPtrWillBeMember<HTMLSlotElement> m_rootSlot;
-    RawPtrWillBeMember<Element> m_current;
+    Member<ContainerNode> m_rootNode;
+    Member<HTMLSlotElement> m_rootSlot;
+    Member<Element> m_current;
 };
 
 ScopedFocusNavigation::ScopedFocusNavigation(TreeScope& treeScope, const Element* current)
@@ -149,7 +149,7 @@
 {
     if (m_rootSlot) {
         if (!m_rootSlot->getAssignedNodes().isEmpty()) {
-            WillBeHeapVector<RefPtrWillBeMember<Node>> assignedNodes = m_rootSlot->getAssignedNodes();
+            HeapVector<Member<Node>> assignedNodes = m_rootSlot->getAssignedNodes();
             for (auto assignedNode : assignedNodes) {
                 if (assignedNode->isElementNode()) {
                     m_current = toElement(assignedNode);
@@ -171,7 +171,7 @@
 {
     if (m_rootSlot) {
         if (!m_rootSlot->getAssignedNodes().isEmpty()) {
-            WillBeHeapVector<RefPtrWillBeMember<Node>> assignedNodes = m_rootSlot->getAssignedNodes();
+            HeapVector<Member<Node>> assignedNodes = m_rootSlot->getAssignedNodes();
             for (auto assignedNode = assignedNodes.rbegin(); assignedNode != assignedNodes.rend(); ++assignedNode) {
                 if ((*assignedNode)->isElementNode()) {
                     m_current = ElementTraversal::lastWithinOrSelf(*toElement(*assignedNode));
@@ -284,7 +284,7 @@
     }
 
     if (!focused && document->focusedElement()) {
-        RefPtrWillBeRawPtr<Element> focusedElement(document->focusedElement());
+        RawPtr<Element> focusedElement(document->focusedElement());
         focusedElement->setFocus(false);
         dispatchBlurEvent(*document, *focusedElement);
     }
@@ -292,7 +292,7 @@
     if (LocalDOMWindow* window = document->domWindow())
         window->dispatchEvent(Event::create(focused ? EventTypeNames::focus : EventTypeNames::blur));
     if (focused && document->focusedElement()) {
-        RefPtrWillBeRawPtr<Element> focusedElement(document->focusedElement());
+        RawPtr<Element> focusedElement(document->focusedElement());
         focusedElement->setFocus(true);
         dispatchFocusEvent(*document, *focusedElement);
     }
@@ -337,7 +337,7 @@
 
 inline int adjustedTabIndex(Element& element)
 {
-    return isNonFocusableFocusScopeOwner(element) ? 0 : element.tabIndex();
+    return (isNonKeyboardFocusableShadowHost(element) || isShadowInsertionPointFocusScopeOwner(element)) ? 0 : element.tabIndex();
 }
 
 inline bool shouldVisit(Element& element)
@@ -665,12 +665,12 @@
 {
 }
 
-PassOwnPtrWillBeRawPtr<FocusController> FocusController::create(Page* page)
+RawPtr<FocusController> FocusController::create(Page* page)
 {
-    return adoptPtrWillBeNoop(new FocusController(page));
+    return new FocusController(page);
 }
 
-void FocusController::setFocusedFrame(PassRefPtrWillBeRawPtr<Frame> frame, bool notifyEmbedder)
+void FocusController::setFocusedFrame(RawPtr<Frame> frame, bool notifyEmbedder)
 {
     ASSERT(!frame || frame->page() == m_page);
     if (m_focusedFrame == frame || (m_isChangingFocusedFrame && frame))
@@ -678,9 +678,9 @@
 
     m_isChangingFocusedFrame = true;
 
-    RefPtrWillBeRawPtr<LocalFrame> oldFrame = (m_focusedFrame && m_focusedFrame->isLocalFrame()) ? toLocalFrame(m_focusedFrame.get()) : nullptr;
+    RawPtr<LocalFrame> oldFrame = (m_focusedFrame && m_focusedFrame->isLocalFrame()) ? toLocalFrame(m_focusedFrame.get()) : nullptr;
 
-    RefPtrWillBeRawPtr<LocalFrame> newFrame = (frame && frame->isLocalFrame()) ? toLocalFrame(frame.get()) : nullptr;
+    RawPtr<LocalFrame> newFrame = (frame && frame->isLocalFrame()) ? toLocalFrame(frame.get()) : nullptr;
 
     m_focusedFrame = frame.get();
 
@@ -703,23 +703,23 @@
         m_focusedFrame->client()->frameFocused();
 }
 
-void FocusController::focusDocumentView(PassRefPtrWillBeRawPtr<Frame> frame, bool notifyEmbedder)
+void FocusController::focusDocumentView(RawPtr<Frame> frame, bool notifyEmbedder)
 {
     ASSERT(!frame || frame->page() == m_page);
     if (m_focusedFrame == frame)
         return;
 
-    RefPtrWillBeRawPtr<LocalFrame> focusedFrame = (m_focusedFrame && m_focusedFrame->isLocalFrame()) ? toLocalFrame(m_focusedFrame.get()) : nullptr;
+    RawPtr<LocalFrame> focusedFrame = (m_focusedFrame && m_focusedFrame->isLocalFrame()) ? toLocalFrame(m_focusedFrame.get()) : nullptr;
     if (focusedFrame && focusedFrame->view()) {
-        RefPtrWillBeRawPtr<Document> document = focusedFrame->document();
+        RawPtr<Document> document = focusedFrame->document();
         Element* focusedElement = document ? document->focusedElement() : nullptr;
         if (focusedElement)
             dispatchBlurEvent(*document, *focusedElement);
     }
 
-    RefPtrWillBeRawPtr<LocalFrame> newFocusedFrame = (frame && frame->isLocalFrame()) ? toLocalFrame(frame.get()) : nullptr;
+    RawPtr<LocalFrame> newFocusedFrame = (frame && frame->isLocalFrame()) ? toLocalFrame(frame.get()) : nullptr;
     if (newFocusedFrame && newFocusedFrame->view()) {
-        RefPtrWillBeRawPtr<Document> document = newFocusedFrame->document();
+        RawPtr<Document> document = newFocusedFrame->document();
         Element* focusedElement = document ? document->focusedElement() : nullptr;
         if (focusedElement)
             dispatchFocusEvent(*document, *focusedElement);
@@ -867,7 +867,7 @@
 
     document->updateLayoutIgnorePendingStylesheets();
     ScopedFocusNavigation scope = current ? ScopedFocusNavigation::createFor(*current) : ScopedFocusNavigation::createForDocument(*document);
-    RefPtrWillBeRawPtr<Element> element = findFocusableElementAcrossFocusScopes(type, scope);
+    RawPtr<Element> element = findFocusableElementAcrossFocusScopes(type, scope);
 
     if (!element) {
         // If there's a RemoteFrame on the ancestor chain, we need to continue
@@ -996,15 +996,15 @@
     selection.clear();
 }
 
-bool FocusController::setFocusedElement(Element* element, PassRefPtrWillBeRawPtr<Frame> newFocusedFrame)
+bool FocusController::setFocusedElement(Element* element, RawPtr<Frame> newFocusedFrame)
 {
     return setFocusedElement(element, newFocusedFrame, FocusParams(SelectionBehaviorOnFocus::None, WebFocusTypeNone, nullptr));
 }
 
-bool FocusController::setFocusedElement(Element* element, PassRefPtrWillBeRawPtr<Frame> newFocusedFrame, const FocusParams& params)
+bool FocusController::setFocusedElement(Element* element, RawPtr<Frame> newFocusedFrame, const FocusParams& params)
 {
-    RefPtrWillBeRawPtr<LocalFrame> oldFocusedFrame = focusedFrame();
-    RefPtrWillBeRawPtr<Document> oldDocument = oldFocusedFrame ? oldFocusedFrame->document() : nullptr;
+    RawPtr<LocalFrame> oldFocusedFrame = focusedFrame();
+    RawPtr<Document> oldDocument = oldFocusedFrame ? oldFocusedFrame->document() : nullptr;
 
     Element* oldFocusedElement = oldDocument ? oldDocument->focusedElement() : nullptr;
     if (element && oldFocusedElement == element)
@@ -1016,7 +1016,7 @@
 
     m_page->chromeClient().willSetInputMethodState();
 
-    RefPtrWillBeRawPtr<Document> newDocument = nullptr;
+    RawPtr<Document> newDocument = nullptr;
     if (element)
         newDocument = &element->document();
     else if (newFocusedFrame && newFocusedFrame->isLocalFrame())
@@ -1038,7 +1038,7 @@
     setFocusedFrame(newFocusedFrame);
 
     // Setting the focused element can result in losing our last reft to element when JS event handlers fire.
-    RefPtrWillBeRawPtr<Element> protect = element;
+    RawPtr<Element> protect = element;
     ALLOW_UNUSED_LOCAL(protect);
     if (newDocument) {
         bool successfullyFocused = newDocument->setFocusedElement(element, params);
diff --git a/third_party/WebKit/Source/core/page/FocusController.h b/third_party/WebKit/Source/core/page/FocusController.h
index 1754787e..c4c2370f 100644
--- a/third_party/WebKit/Source/core/page/FocusController.h
+++ b/third_party/WebKit/Source/core/page/FocusController.h
@@ -48,13 +48,13 @@
 class Page;
 class RemoteFrame;
 
-class CORE_EXPORT FocusController final : public NoBaseWillBeGarbageCollectedFinalized<FocusController> {
-    WTF_MAKE_NONCOPYABLE(FocusController); USING_FAST_MALLOC_WILL_BE_REMOVED(FocusController);
+class CORE_EXPORT FocusController final : public GarbageCollectedFinalized<FocusController> {
+    WTF_MAKE_NONCOPYABLE(FocusController);
 public:
-    static PassOwnPtrWillBeRawPtr<FocusController> create(Page*);
+    static RawPtr<FocusController> create(Page*);
 
-    void setFocusedFrame(PassRefPtrWillBeRawPtr<Frame>, bool notifyEmbedder = true);
-    void focusDocumentView(PassRefPtrWillBeRawPtr<Frame>, bool notifyEmbedder = true);
+    void setFocusedFrame(RawPtr<Frame>, bool notifyEmbedder = true);
+    void focusDocumentView(RawPtr<Frame>, bool notifyEmbedder = true);
     LocalFrame* focusedFrame() const;
     Frame* focusedOrMainFrame() const;
 
@@ -72,10 +72,10 @@
     bool advanceFocusAcrossFrames(WebFocusType, RemoteFrame* from, LocalFrame* to, InputDeviceCapabilities* sourceCapabilities = nullptr);
     Element* findFocusableElementInShadowHost(const Element& shadowHost);
 
-    bool setFocusedElement(Element*, PassRefPtrWillBeRawPtr<Frame>, const FocusParams&);
+    bool setFocusedElement(Element*, RawPtr<Frame>, const FocusParams&);
     // |setFocusedElement| variant with SelectionBehaviorOnFocus::None,
     // |WebFocusTypeNone, and null InputDeviceCapabilities.
-    bool setFocusedElement(Element*, PassRefPtrWillBeRawPtr<Frame>);
+    bool setFocusedElement(Element*, RawPtr<Frame>);
 
     void setActive(bool);
     bool isActive() const { return m_isActive; }
@@ -97,8 +97,8 @@
     bool advanceFocusDirectionallyInContainer(Node* container, const LayoutRect& startingRect, WebFocusType);
     void findFocusCandidateInContainer(Node& container, const LayoutRect& startingRect, WebFocusType, FocusCandidate& closest);
 
-    RawPtrWillBeMember<Page> m_page;
-    RefPtrWillBeMember<Frame> m_focusedFrame;
+    Member<Page> m_page;
+    Member<Frame> m_focusedFrame;
     bool m_isActive;
     bool m_isFocused;
     bool m_isChangingFocusedFrame;
diff --git a/third_party/WebKit/Source/core/page/FrameTree.cpp b/third_party/WebKit/Source/core/page/FrameTree.cpp
index 984b154f..c218e8b 100644
--- a/third_party/WebKit/Source/core/page/FrameTree.cpp
+++ b/third_party/WebKit/Source/core/page/FrameTree.cpp
@@ -160,7 +160,7 @@
     const int framePathSuffixLength = 3;
 
     // Find the nearest parent that has a frame with a path in it.
-    WillBeHeapVector<RawPtrWillBeMember<Frame>, 16> chain;
+    HeapVector<Member<Frame>, 16> chain;
     Frame* frame;
     for (frame = m_thisFrame; frame; frame = frame->tree().parent()) {
         if (frame->tree().uniqueName().startsWith(framePathPrefix))
diff --git a/third_party/WebKit/Source/core/page/FrameTree.h b/third_party/WebKit/Source/core/page/FrameTree.h
index 42ec7f9..2314a451 100644
--- a/third_party/WebKit/Source/core/page/FrameTree.h
+++ b/third_party/WebKit/Source/core/page/FrameTree.h
@@ -83,7 +83,7 @@
         const AtomicString& fallbackName = nullAtom) const;
     bool uniqueNameExists(const AtomicString& name) const;
 
-    RawPtrWillBeMember<Frame> m_thisFrame;
+    Member<Frame> m_thisFrame;
 
     AtomicString m_name; // The actual frame name (may be empty).
     AtomicString m_uniqueName;
diff --git a/third_party/WebKit/Source/core/page/NetworkStateNotifier.h b/third_party/WebKit/Source/core/page/NetworkStateNotifier.h
index fb34c69d..955284c0e 100644
--- a/third_party/WebKit/Source/core/page/NetworkStateNotifier.h
+++ b/third_party/WebKit/Source/core/page/NetworkStateNotifier.h
@@ -142,7 +142,7 @@
     // The ObserverListMap is cross-thread accessed, adding/removing Observers running
     // within an ExecutionContext. Kept off-heap to ease cross-thread allocation and use;
     // the observers are (already) responsible for explicitly unregistering while finalizing.
-    using ObserverListMap = HashMap<RawPtrWillBeUntracedMember<ExecutionContext>, OwnPtr<ObserverList>>;
+    using ObserverListMap = HashMap<UntracedMember<ExecutionContext>, OwnPtr<ObserverList>>;
 
     void notifyObserversOfConnectionChangeOnContext(WebConnectionType, double maxBandwidthMbps, ExecutionContext*);
 
diff --git a/third_party/WebKit/Source/core/page/NetworkStateNotifierTest.cpp b/third_party/WebKit/Source/core/page/NetworkStateNotifierTest.cpp
index a9779230..7fd924e 100644
--- a/third_party/WebKit/Source/core/page/NetworkStateNotifierTest.cpp
+++ b/third_party/WebKit/Source/core/page/NetworkStateNotifierTest.cpp
@@ -134,8 +134,8 @@
         return observer.observedType() == type && observer.observedMaxBandwidth() == maxBandwidthMbps;
     }
 
-    RefPtrWillBePersistent<Document> m_document;
-    RefPtrWillBePersistent<Document> m_document2;
+    Persistent<Document> m_document;
+    Persistent<Document> m_document2;
     NetworkStateNotifier m_notifier;
 };
 
diff --git a/third_party/WebKit/Source/core/page/Page.cpp b/third_party/WebKit/Source/core/page/Page.cpp
index 20c93d47..d303c21 100644
--- a/third_party/WebKit/Source/core/page/Page.cpp
+++ b/third_party/WebKit/Source/core/page/Page.cpp
@@ -72,7 +72,7 @@
 
 void Page::networkStateChanged(bool online)
 {
-    WillBeHeapVector<RefPtrWillBeMember<LocalFrame>> frames;
+    HeapVector<Member<LocalFrame>> frames;
 
     // Get all the frames of all the pages in all the page groups
     for (Page* page : allPages()) {
@@ -106,9 +106,9 @@
     return page->deviceScaleFactor();
 }
 
-PassOwnPtrWillBeRawPtr<Page> Page::createOrdinary(PageClients& pageClients)
+RawPtr<Page> Page::createOrdinary(PageClients& pageClients)
 {
-    OwnPtrWillBeRawPtr<Page> page = create(pageClients);
+    RawPtr<Page> page = create(pageClients);
     ordinaryPages().add(page.get());
     page->memoryPurgeController().registerClient(page.get());
     return page.release();
@@ -283,7 +283,7 @@
     } while (frame);
 }
 
-void Page::setValidationMessageClient(PassOwnPtrWillBeRawPtr<ValidationMessageClient> client)
+void Page::setValidationMessageClient(RawPtr<ValidationMessageClient> client)
 {
     m_validationMessageClient = client;
 }
@@ -505,7 +505,7 @@
 
 void Page::acceptLanguagesChanged()
 {
-    WillBeHeapVector<RefPtrWillBeMember<LocalFrame>> frames;
+    HeapVector<Member<LocalFrame>> frames;
 
     // Even though we don't fire an event from here, the LocalDOMWindow's will fire
     // an event so we keep the frames alive until we are done.
@@ -567,7 +567,7 @@
 
 void Page::willBeDestroyed()
 {
-    RefPtrWillBeRawPtr<Frame> mainFrame = m_mainFrame;
+    RawPtr<Frame> mainFrame = m_mainFrame;
 
     mainFrame->detach(FrameDetachType::Remove);
 
@@ -610,6 +610,6 @@
 {
 }
 
-template class CORE_TEMPLATE_EXPORT WillBeHeapSupplement<Page>;
+template class CORE_TEMPLATE_EXPORT HeapSupplement<Page>;
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/page/Page.h b/third_party/WebKit/Source/core/page/Page.h
index c920154..bae0ad77 100644
--- a/third_party/WebKit/Source/core/page/Page.h
+++ b/third_party/WebKit/Source/core/page/Page.h
@@ -72,9 +72,8 @@
 
 float deviceScaleFactor(LocalFrame*);
 
-class CORE_EXPORT Page final : public NoBaseWillBeGarbageCollectedFinalized<Page>, public WillBeHeapSupplementable<Page>, public PageLifecycleNotifier, public SettingsDelegate, public MemoryPurgeClient {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(Page);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(Page);
+class CORE_EXPORT Page final : public GarbageCollectedFinalized<Page>, public HeapSupplementable<Page>, public PageLifecycleNotifier, public SettingsDelegate, public MemoryPurgeClient {
+    USING_GARBAGE_COLLECTED_MIXIN(Page);
     WTF_MAKE_NONCOPYABLE(Page);
     friend class Settings;
 public:
@@ -86,26 +85,26 @@
         PageClients();
         ~PageClients();
 
-        RawPtrWillBeMember<ChromeClient> chromeClient;
+        Member<ChromeClient> chromeClient;
         ContextMenuClient* contextMenuClient;
         EditorClient* editorClient;
         DragClient* dragClient;
         SpellCheckerClient* spellCheckerClient;
     };
 
-    static PassOwnPtrWillBeRawPtr<Page> create(PageClients& pageClients)
+    static RawPtr<Page> create(PageClients& pageClients)
     {
-        return adoptPtrWillBeNoop(new Page(pageClients));
+        return new Page(pageClients);
     }
 
     // An "ordinary" page is a fully-featured page owned by a web view.
-    static PassOwnPtrWillBeRawPtr<Page> createOrdinary(PageClients&);
+    static RawPtr<Page> createOrdinary(PageClients&);
 
     ~Page() override;
 
     void willBeClosed();
 
-    using PageSet = WillBePersistentHeapHashSet<RawPtrWillBeWeakMember<Page>>;
+    using PageSet = PersistentHeapHashSet<WeakMember<Page>>;
 
     // Return the current set of full-fledged, ordinary pages.
     // Each created and owned by a WebView.
@@ -154,7 +153,7 @@
     ContextMenuController& contextMenuController() const { return *m_contextMenuController; }
     PointerLockController& pointerLockController() const { return *m_pointerLockController; }
     ValidationMessageClient& validationMessageClient() const { return *m_validationMessageClient; }
-    void setValidationMessageClient(PassOwnPtrWillBeRawPtr<ValidationMessageClient>);
+    void setValidationMessageClient(RawPtr<ValidationMessageClient>);
 
     ScrollingCoordinator* scrollingCoordinator();
 
@@ -201,7 +200,7 @@
     bool isPainting() const { return m_isPainting; }
 #endif
 
-    class CORE_EXPORT MultisamplingChangedObserver : public WillBeGarbageCollectedMixin {
+    class CORE_EXPORT MultisamplingChangedObserver : public GarbageCollectedMixin {
     public:
         virtual void multisamplingChanged(bool) = 0;
     };
@@ -238,16 +237,16 @@
 
     void compressStrings(Timer<Page>*);
 
-    RefPtrWillBeMember<PageAnimator> m_animator;
-    const OwnPtrWillBeMember<AutoscrollController> m_autoscrollController;
-    RawPtrWillBeMember<ChromeClient> m_chromeClient;
-    const OwnPtrWillBeMember<DragCaretController> m_dragCaretController;
-    const OwnPtrWillBeMember<DragController> m_dragController;
-    const OwnPtrWillBeMember<FocusController> m_focusController;
-    const OwnPtrWillBeMember<ContextMenuController> m_contextMenuController;
-    const OwnPtrWillBeMember<PointerLockController> m_pointerLockController;
-    OwnPtrWillBeMember<ScrollingCoordinator> m_scrollingCoordinator;
-    const OwnPtrWillBeMember<UndoStack> m_undoStack;
+    Member<PageAnimator> m_animator;
+    const Member<AutoscrollController> m_autoscrollController;
+    Member<ChromeClient> m_chromeClient;
+    const Member<DragCaretController> m_dragCaretController;
+    const Member<DragController> m_dragController;
+    const Member<FocusController> m_focusController;
+    const Member<ContextMenuController> m_contextMenuController;
+    const Member<PointerLockController> m_pointerLockController;
+    Member<ScrollingCoordinator> m_scrollingCoordinator;
+    const Member<UndoStack> m_undoStack;
 
     // Typically, the main frame and Page should both be owned by the embedder,
     // which must call Page::willBeDestroyed() prior to destroying Page. This
@@ -261,13 +260,13 @@
     // other, thus keeping each other alive. The call to willBeDestroyed()
     // breaks this cycle, so the frame is still properly destroyed once no
     // longer needed.
-    RawPtrWillBeMember<Frame> m_mainFrame;
+    Member<Frame> m_mainFrame;
 
     mutable RefPtr<PluginData> m_pluginData;
 
     EditorClient* const m_editorClient;
     SpellCheckerClient* const m_spellCheckerClient;
-    OwnPtrWillBeMember<ValidationMessageClient> m_validationMessageClient;
+    Member<ValidationMessageClient> m_validationMessageClient;
 
     UseCounter m_useCounter;
     Deprecation m_deprecation;
@@ -288,18 +287,18 @@
     bool m_isPainting;
 #endif
 
-    WillBeHeapHashSet<RawPtrWillBeWeakMember<MultisamplingChangedObserver>> m_multisamplingChangedObservers;
+    HeapHashSet<WeakMember<MultisamplingChangedObserver>> m_multisamplingChangedObservers;
 
     // A pointer to all the interfaces provided to in-process Frames for this Page.
     // FIXME: Most of the members of Page should move onto FrameHost.
-    OwnPtrWillBeMember<FrameHost> m_frameHost;
+    Member<FrameHost> m_frameHost;
 
-    OwnPtrWillBeMember<MemoryPurgeController> m_memoryPurgeController;
+    Member<MemoryPurgeController> m_memoryPurgeController;
 
     Timer<Page> m_timerForCompressStrings;
 };
 
-extern template class CORE_EXTERN_TEMPLATE_EXPORT WillBeHeapSupplement<Page>;
+extern template class CORE_EXTERN_TEMPLATE_EXPORT HeapSupplement<Page>;
 
 } // namespace blink
 
diff --git a/third_party/WebKit/Source/core/page/PageAnimator.cpp b/third_party/WebKit/Source/core/page/PageAnimator.cpp
index ee1d79ba..8db25c2 100644
--- a/third_party/WebKit/Source/core/page/PageAnimator.cpp
+++ b/third_party/WebKit/Source/core/page/PageAnimator.cpp
@@ -21,9 +21,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<PageAnimator> PageAnimator::create(Page& page)
+RawPtr<PageAnimator> PageAnimator::create(Page& page)
 {
-    return adoptRefWillBeNoop(new PageAnimator(page));
+    return new PageAnimator(page);
 }
 
 DEFINE_TRACE(PageAnimator)
@@ -33,11 +33,11 @@
 
 void PageAnimator::serviceScriptedAnimations(double monotonicAnimationStartTime)
 {
-    RefPtrWillBeRawPtr<PageAnimator> protector(this);
+    RawPtr<PageAnimator> protector(this);
     TemporaryChange<bool> servicing(m_servicingAnimations, true);
     clock().updateTime(monotonicAnimationStartTime);
 
-    WillBeHeapVector<RefPtrWillBeMember<Document>> documents;
+    HeapVector<Member<Document>> documents;
     for (Frame* frame = m_page->mainFrame(); frame; frame = frame->tree().traverseNext()) {
         if (frame->isLocalFrame())
             documents.append(toLocalFrame(frame)->document());
@@ -53,7 +53,7 @@
             if (const FrameView::ScrollableAreaSet* animatingScrollableAreas = document->view()->animatingScrollableAreas()) {
                 // Iterate over a copy, since ScrollableAreas may deregister
                 // themselves during the iteration.
-                WillBeHeapVector<RawPtrWillBeMember<ScrollableArea>> animatingScrollableAreasCopy;
+                HeapVector<Member<ScrollableArea>> animatingScrollableAreasCopy;
                 copyToVector(*animatingScrollableAreas, animatingScrollableAreasCopy);
                 for (ScrollableArea* scrollableArea : animatingScrollableAreasCopy)
                     scrollableArea->serviceScrollAnimations(monotonicAnimationStartTime);
@@ -80,7 +80,7 @@
 
 void PageAnimator::updateAllLifecyclePhases(LocalFrame& rootFrame)
 {
-    RefPtrWillBeRawPtr<FrameView> view = rootFrame.view();
+    RawPtr<FrameView> view = rootFrame.view();
     TemporaryChange<bool> servicing(m_updatingLayoutAndStyleForPainting, true);
     view->updateAllLifecyclePhases();
 }
diff --git a/third_party/WebKit/Source/core/page/PageAnimator.h b/third_party/WebKit/Source/core/page/PageAnimator.h
index 8f4af109..eb318a4b 100644
--- a/third_party/WebKit/Source/core/page/PageAnimator.h
+++ b/third_party/WebKit/Source/core/page/PageAnimator.h
@@ -14,9 +14,9 @@
 class LocalFrame;
 class Page;
 
-class CORE_EXPORT PageAnimator final : public RefCountedWillBeGarbageCollected<PageAnimator> {
+class CORE_EXPORT PageAnimator final : public GarbageCollected<PageAnimator> {
 public:
-    static PassRefPtrWillBeRawPtr<PageAnimator> create(Page&);
+    static RawPtr<PageAnimator> create(Page&);
     DECLARE_TRACE();
     void scheduleVisualUpdate(LocalFrame*);
     void serviceScriptedAnimations(double monotonicAnimationStartTime);
@@ -30,7 +30,7 @@
 private:
     explicit PageAnimator(Page&);
 
-    RawPtrWillBeMember<Page> m_page;
+    Member<Page> m_page;
     bool m_servicingAnimations;
     bool m_updatingLayoutAndStyleForPainting;
     AnimationClock m_animationClock;
diff --git a/third_party/WebKit/Source/core/page/PagePopupController.cpp b/third_party/WebKit/Source/core/page/PagePopupController.cpp
index 8efe641..f713c9bb 100644
--- a/third_party/WebKit/Source/core/page/PagePopupController.cpp
+++ b/third_party/WebKit/Source/core/page/PagePopupController.cpp
@@ -44,9 +44,9 @@
     ASSERT(client);
 }
 
-PassRefPtrWillBeRawPtr<PagePopupController> PagePopupController::create(PagePopup& popup, PagePopupClient* client)
+RawPtr<PagePopupController> PagePopupController::create(PagePopup& popup, PagePopupClient* client)
 {
-    return adoptRefWillBeNoop(new PagePopupController(popup, client));
+    return new PagePopupController(popup, client);
 }
 
 void PagePopupController::setValueAndClosePopup(int numValue, const String& stringValue)
diff --git a/third_party/WebKit/Source/core/page/PagePopupController.h b/third_party/WebKit/Source/core/page/PagePopupController.h
index 84c53d5..b6964d6 100644
--- a/third_party/WebKit/Source/core/page/PagePopupController.h
+++ b/third_party/WebKit/Source/core/page/PagePopupController.h
@@ -42,10 +42,10 @@
 class PagePopup;
 class PagePopupClient;
 
-class PagePopupController final : public RefCountedWillBeGarbageCollected<PagePopupController>, public ScriptWrappable {
+class PagePopupController final : public GarbageCollected<PagePopupController>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<PagePopupController> create(PagePopup&, PagePopupClient*);
+    static RawPtr<PagePopupController> create(PagePopup&, PagePopupClient*);
     void setValueAndClosePopup(int numValue, const String& stringValue);
     void setValue(const String&);
     void closePopup();
diff --git a/third_party/WebKit/Source/core/page/PagePopupSupplement.cpp b/third_party/WebKit/Source/core/page/PagePopupSupplement.cpp
index 59022be..7dc61071 100644
--- a/third_party/WebKit/Source/core/page/PagePopupSupplement.cpp
+++ b/third_party/WebKit/Source/core/page/PagePopupSupplement.cpp
@@ -40,8 +40,6 @@
     ASSERT(popupClient);
 }
 
-DEFINE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(PagePopupSupplement);
-
 const char* PagePopupSupplement::supplementName()
 {
     return "PagePopupSupplement";
@@ -57,7 +55,7 @@
 void PagePopupSupplement::install(LocalFrame& frame, PagePopup& popup, PagePopupClient* popupClient)
 {
     ASSERT(popupClient);
-    provideTo(frame, supplementName(), adoptPtrWillBeNoop(new PagePopupSupplement(popup, popupClient)));
+    provideTo(frame, supplementName(), new PagePopupSupplement(popup, popupClient));
 }
 
 void PagePopupSupplement::uninstall(LocalFrame& frame)
@@ -69,7 +67,7 @@
 DEFINE_TRACE(PagePopupSupplement)
 {
     visitor->trace(m_controller);
-    WillBeHeapSupplement<LocalFrame>::trace(visitor);
+    HeapSupplement<LocalFrame>::trace(visitor);
 }
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/page/PagePopupSupplement.h b/third_party/WebKit/Source/core/page/PagePopupSupplement.h
index a04f3b4..7a6b286 100644
--- a/third_party/WebKit/Source/core/page/PagePopupSupplement.h
+++ b/third_party/WebKit/Source/core/page/PagePopupSupplement.h
@@ -42,23 +42,19 @@
 class PagePopupClient;
 class PagePopupController;
 
-class CORE_EXPORT PagePopupSupplement final : public NoBaseWillBeGarbageCollected<PagePopupSupplement>, public WillBeHeapSupplement<LocalFrame> {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(PagePopupSupplement);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(PagePopupSupplement);
-
+class CORE_EXPORT PagePopupSupplement final : public GarbageCollected<PagePopupSupplement>, public HeapSupplement<LocalFrame> {
+    USING_GARBAGE_COLLECTED_MIXIN(PagePopupSupplement);
 public:
     static PagePopupController* pagePopupController(LocalFrame&);
     static void install(LocalFrame&, PagePopup&, PagePopupClient*);
     static void uninstall(LocalFrame&);
-    DECLARE_EMPTY_VIRTUAL_DESTRUCTOR_WILL_BE_REMOVED(PagePopupSupplement);
-
     DECLARE_TRACE();
 
 private:
     PagePopupSupplement(PagePopup&, PagePopupClient*);
     static const char* supplementName();
 
-    RefPtrWillBeMember<PagePopupController> m_controller;
+    Member<PagePopupController> m_controller;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/page/PointerLockController.cpp b/third_party/WebKit/Source/core/page/PointerLockController.cpp
index a52319c..89ef59b 100644
--- a/third_party/WebKit/Source/core/page/PointerLockController.cpp
+++ b/third_party/WebKit/Source/core/page/PointerLockController.cpp
@@ -40,9 +40,9 @@
 {
 }
 
-PassOwnPtrWillBeRawPtr<PointerLockController> PointerLockController::create(Page* page)
+RawPtr<PointerLockController> PointerLockController::create(Page* page)
 {
-    return adoptPtrWillBeNoop(new PointerLockController(page));
+    return new PointerLockController(page);
 }
 
 void PointerLockController::requestPointerLock(Element* target)
diff --git a/third_party/WebKit/Source/core/page/PointerLockController.h b/third_party/WebKit/Source/core/page/PointerLockController.h
index 12cf35db..4ad00ed 100644
--- a/third_party/WebKit/Source/core/page/PointerLockController.h
+++ b/third_party/WebKit/Source/core/page/PointerLockController.h
@@ -37,11 +37,10 @@
 class Page;
 class PlatformMouseEvent;
 
-class CORE_EXPORT PointerLockController final : public NoBaseWillBeGarbageCollected<PointerLockController> {
+class CORE_EXPORT PointerLockController final : public GarbageCollected<PointerLockController> {
     WTF_MAKE_NONCOPYABLE(PointerLockController);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(PointerLockController);
 public:
-    static PassOwnPtrWillBeRawPtr<PointerLockController> create(Page*);
+    static RawPtr<PointerLockController> create(Page*);
 
     void requestPointerLock(Element* target);
     void requestPointerUnlock();
@@ -63,10 +62,10 @@
     void enqueueEvent(const AtomicString& type, Element*);
     void enqueueEvent(const AtomicString& type, Document*);
 
-    RawPtrWillBeMember<Page> m_page;
+    Member<Page> m_page;
     bool m_lockPending;
-    RefPtrWillBeMember<Element> m_element;
-    RefPtrWillBeMember<Document> m_documentOfRemovedElementWhileWaitingForUnlock;
+    Member<Element> m_element;
+    Member<Document> m_documentOfRemovedElementWhileWaitingForUnlock;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/page/PrintContext.cpp b/third_party/WebKit/Source/core/page/PrintContext.cpp
index 52b76ee7..1eb1dcc4 100644
--- a/third_party/WebKit/Source/core/page/PrintContext.cpp
+++ b/third_party/WebKit/Source/core/page/PrintContext.cpp
@@ -27,17 +27,17 @@
 
 namespace blink {
 
-// By imaging to a width a little wider than the available pixels,
-// thin pages will be scaled down a little, matching the way they
-// print in IE and Camino. This lets them use fewer sheets than they
-// would otherwise, which is presumably why other browsers do this.
+// By shrinking to a width of 75% (1.333f) we will render the correct physical
+// dimensions in paged media (i.e. cm, pt,). The shrinkage used
+// to be 80% (1.25f) to match other browsers - they have since moved on.
 // Wide pages will be scaled down more than this.
-const float printingMinimumShrinkFactor = 1.25f;
+const float printingMinimumShrinkFactor = 1.333f;
 
 // This number determines how small we are willing to reduce the page content
 // in order to accommodate the widest line. If the page would have to be
 // reduced smaller to make the widest line fit, we just clip instead (this
-// behavior matches MacIE and Mozilla, at least)
+// behavior matches MacIE and Mozilla, at least).
+// TODO(rhogan): Decide if this quirk is still required.
 const float printingMaximumShrinkFactor = 2;
 
 PrintContext::PrintContext(LocalFrame* frame)
@@ -99,7 +99,10 @@
     IntRect docRect = view->documentRect();
 
     int pageWidth = pageSizeInPixels.width();
-    int pageHeight = pageSizeInPixels.height();
+    // We scaled with floating point arithmetic and need to ensure results like 13329.99
+    // are treated as 13330 so that we don't mistakenly assign an extra page for the
+    // stray pixel.
+    int pageHeight = pageSizeInPixels.height() + LayoutUnit::epsilon();
 
     bool isHorizontal = view->style()->isHorizontalWritingMode();
 
@@ -185,7 +188,7 @@
 int PrintContext::pageNumberForElement(Element* element, const FloatSize& pageSizeInPixels)
 {
     // Make sure the element is not freed during the layout.
-    RefPtrWillBeRawPtr<Element> protect(element);
+    RawPtr<Element> protect(element);
     element->document().updateLayout();
 
     LayoutBoxModelObject* box = enclosingBoxModelObject(element->layoutObject());
diff --git a/third_party/WebKit/Source/core/page/PrintContext.h b/third_party/WebKit/Source/core/page/PrintContext.h
index 7c34503..e45690d 100644
--- a/third_party/WebKit/Source/core/page/PrintContext.h
+++ b/third_party/WebKit/Source/core/page/PrintContext.h
@@ -38,8 +38,7 @@
 class IntRect;
 class Node;
 
-class CORE_EXPORT PrintContext : public NoBaseWillBeGarbageCollectedFinalized<PrintContext> {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(PrintContext);
+class CORE_EXPORT PrintContext : public GarbageCollectedFinalized<PrintContext> {
 public:
     explicit PrintContext(LocalFrame*);
     virtual ~PrintContext();
@@ -80,7 +79,7 @@
 protected:
     void outputLinkedDestinations(GraphicsContext&, const IntRect& pageRect);
 
-    RawPtrWillBeMember<LocalFrame> m_frame;
+    Member<LocalFrame> m_frame;
     Vector<IntRect> m_pageRects;
 
 private:
@@ -90,7 +89,7 @@
     // Used to prevent misuses of begin() and end() (e.g., call end without begin).
     bool m_isPrinting;
 
-    WillBeHeapHashMap<String, RawPtrWillBeMember<Element>> m_linkedDestinations;
+    HeapHashMap<String, Member<Element>> m_linkedDestinations;
     bool m_linkedDestinationsValid;
 };
 
diff --git a/third_party/WebKit/Source/core/page/PrintContextTest.cpp b/third_party/WebKit/Source/core/page/PrintContextTest.cpp
index ba33880..f09539d2 100644
--- a/third_party/WebKit/Source/core/page/PrintContextTest.cpp
+++ b/third_party/WebKit/Source/core/page/PrintContextTest.cpp
@@ -71,13 +71,13 @@
 
 class PrintContextTest : public RenderingTest {
 protected:
-    explicit PrintContextTest(PassOwnPtrWillBeRawPtr<FrameLoaderClient> frameLoaderClient = nullptr)
+    explicit PrintContextTest(RawPtr<FrameLoaderClient> frameLoaderClient = nullptr)
         : RenderingTest(frameLoaderClient) { }
 
     void SetUp() override
     {
         RenderingTest::SetUp();
-        m_printContext = adoptPtrWillBeNoop(new MockPrintContext(document().frame()));
+        m_printContext = new MockPrintContext(document().frame());
     }
 
     MockPrintContext& printContext() { return *m_printContext.get(); }
@@ -129,7 +129,7 @@
 
 private:
     OwnPtr<DummyPageHolder> m_pageHolder;
-    OwnPtrWillBePersistent<MockPrintContext> m_printContext;
+    Persistent<MockPrintContext> m_printContext;
 };
 
 class PrintContextFrameTest : public PrintContextTest {
diff --git a/third_party/WebKit/Source/core/page/ScopedPageLoadDeferrer.h b/third_party/WebKit/Source/core/page/ScopedPageLoadDeferrer.h
index 93e31fee9..a129e0e 100644
--- a/third_party/WebKit/Source/core/page/ScopedPageLoadDeferrer.h
+++ b/third_party/WebKit/Source/core/page/ScopedPageLoadDeferrer.h
@@ -40,7 +40,7 @@
 private:
     void setDefersLoading(bool);
 
-    Vector<RefPtrWillBePersistent<LocalFrame>, 16> m_deferredFrames;
+    Vector<Persistent<LocalFrame>, 16> m_deferredFrames;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/page/SpatialNavigation.h b/third_party/WebKit/Source/core/page/SpatialNavigation.h
index 9c83be6..7c6d0f7 100644
--- a/third_party/WebKit/Source/core/page/SpatialNavigation.h
+++ b/third_party/WebKit/Source/core/page/SpatialNavigation.h
@@ -118,9 +118,9 @@
     // We handle differently visibleNode and FocusableNode to properly handle the areas of imagemaps,
     // where visibleNode would represent the image element and focusableNode would represent the area element.
     // In all other cases, visibleNode and focusableNode are one and the same.
-    RawPtrWillBeMember<Node> visibleNode;
-    RawPtrWillBeMember<Node> focusableNode;
-    RawPtrWillBeMember<Node> enclosingScrollableBox;
+    Member<Node> visibleNode;
+    Member<Node> focusableNode;
+    Member<Node> enclosingScrollableBox;
     double distance;
     LayoutRect rect;
     bool isOffscreen;
diff --git a/third_party/WebKit/Source/core/page/TouchAdjustment.cpp b/third_party/WebKit/Source/core/page/TouchAdjustment.cpp
index 7c87156..b5aa3cb 100644
--- a/third_party/WebKit/Source/core/page/TouchAdjustment.cpp
+++ b/third_party/WebKit/Source/core/page/TouchAdjustment.cpp
@@ -58,7 +58,7 @@
     IntRect boundingBox() const { return m_quad.enclosingBoundingBox(); }
 
 private:
-    RawPtrWillBeMember<Node> m_node;
+    Member<Node> m_node;
     FloatQuad m_quad;
 };
 
@@ -72,7 +72,7 @@
 
 namespace TouchAdjustment {
 
-typedef WillBeHeapVector<SubtargetGeometry> SubtargetGeometryList;
+typedef HeapVector<SubtargetGeometry> SubtargetGeometryList;
 typedef bool (*NodeFilter)(Node*);
 typedef void (*AppendSubtargetsForNode)(Node*, SubtargetGeometryList&);
 typedef float (*DistanceFunction)(const IntPoint&, const IntRect&, const SubtargetGeometry&);
@@ -243,20 +243,20 @@
 }
 
 // Compiles a list of subtargets of all the relevant target nodes.
-void compileSubtargetList(const WillBeHeapVector<RefPtrWillBeMember<Node>>& intersectedNodes, SubtargetGeometryList& subtargets, NodeFilter nodeFilter, AppendSubtargetsForNode appendSubtargetsForNode)
+void compileSubtargetList(const HeapVector<Member<Node>>& intersectedNodes, SubtargetGeometryList& subtargets, NodeFilter nodeFilter, AppendSubtargetsForNode appendSubtargetsForNode)
 {
     // Find candidates responding to tap gesture events in O(n) time.
-    WillBeHeapHashMap<RawPtrWillBeMember<Node>, RawPtrWillBeMember<Node>> responderMap;
-    WillBeHeapHashSet<RawPtrWillBeMember<Node>> ancestorsToRespondersSet;
-    WillBeHeapVector<RawPtrWillBeMember<Node>> candidates;
-    WillBeHeapHashSet<RawPtrWillBeMember<Node>> editableAncestors;
+    HeapHashMap<Member<Node>, Member<Node>> responderMap;
+    HeapHashSet<Member<Node>> ancestorsToRespondersSet;
+    HeapVector<Member<Node>> candidates;
+    HeapHashSet<Member<Node>> editableAncestors;
 
     // A node matching the NodeFilter is called a responder. Candidate nodes must either be a
     // responder or have an ancestor that is a responder.
     // This iteration tests all ancestors at most once by caching earlier results.
     for (unsigned i = 0; i < intersectedNodes.size(); ++i) {
         Node* node = intersectedNodes[i].get();
-        WillBeHeapVector<RawPtrWillBeMember<Node>> visitedNodes;
+        HeapVector<Member<Node>> visitedNodes;
         Node* respondingNode = nullptr;
         for (Node* visitedNode = node; visitedNode; visitedNode = visitedNode->parentOrShadowHostNode()) {
             // Check if we already have a result for a common ancestor from another candidate.
@@ -269,7 +269,7 @@
                 respondingNode = visitedNode;
                 // Continue the iteration to collect the ancestors of the responder, which we will need later.
                 for (visitedNode = parentShadowHostOrOwner(visitedNode); visitedNode; visitedNode = parentShadowHostOrOwner(visitedNode)) {
-                    WillBeHeapHashSet<RawPtrWillBeMember<Node>>::AddResult addResult = ancestorsToRespondersSet.add(visitedNode);
+                    HeapHashSet<Member<Node>>::AddResult addResult = ancestorsToRespondersSet.add(visitedNode);
                     if (!addResult.isNewEntry)
                         break;
                 }
@@ -318,7 +318,7 @@
 }
 
 // Compiles a list of zoomable subtargets.
-void compileZoomableSubtargets(const WillBeHeapVector<RefPtrWillBeMember<Node>>& intersectedNodes, SubtargetGeometryList& subtargets)
+void compileZoomableSubtargets(const HeapVector<Member<Node>>& intersectedNodes, SubtargetGeometryList& subtargets)
 {
     for (unsigned i = 0; i < intersectedNodes.size(); ++i) {
         Node* candidate = intersectedNodes[i].get();
@@ -479,7 +479,7 @@
 
 } // namespace TouchAdjustment
 
-bool findBestClickableCandidate(Node*& targetNode, IntPoint& targetPoint, const IntPoint& touchHotspot, const IntRect& touchArea, const WillBeHeapVector<RefPtrWillBeMember<Node>>& nodes)
+bool findBestClickableCandidate(Node*& targetNode, IntPoint& targetPoint, const IntPoint& touchHotspot, const IntRect& touchArea, const HeapVector<Member<Node>>& nodes)
 {
     IntRect targetArea;
     TouchAdjustment::SubtargetGeometryList subtargets;
@@ -487,7 +487,7 @@
     return TouchAdjustment::findNodeWithLowestDistanceMetric(targetNode, targetPoint, targetArea, touchHotspot, touchArea, subtargets, TouchAdjustment::hybridDistanceFunction);
 }
 
-bool findBestContextMenuCandidate(Node*& targetNode, IntPoint& targetPoint, const IntPoint& touchHotspot, const IntRect& touchArea, const WillBeHeapVector<RefPtrWillBeMember<Node>>& nodes)
+bool findBestContextMenuCandidate(Node*& targetNode, IntPoint& targetPoint, const IntPoint& touchHotspot, const IntRect& touchArea, const HeapVector<Member<Node>>& nodes)
 {
     IntRect targetArea;
     TouchAdjustment::SubtargetGeometryList subtargets;
@@ -495,7 +495,7 @@
     return TouchAdjustment::findNodeWithLowestDistanceMetric(targetNode, targetPoint, targetArea, touchHotspot, touchArea, subtargets, TouchAdjustment::hybridDistanceFunction);
 }
 
-bool findBestZoomableArea(Node*& targetNode, IntRect& targetArea, const IntPoint& touchHotspot, const IntRect& touchArea, const WillBeHeapVector<RefPtrWillBeMember<Node>>& nodes)
+bool findBestZoomableArea(Node*& targetNode, IntRect& targetArea, const IntPoint& touchHotspot, const IntRect& touchArea, const HeapVector<Member<Node>>& nodes)
 {
     IntPoint targetPoint;
     TouchAdjustment::SubtargetGeometryList subtargets;
diff --git a/third_party/WebKit/Source/core/page/TouchAdjustment.h b/third_party/WebKit/Source/core/page/TouchAdjustment.h
index f4668d1e..0fa59fc0 100644
--- a/third_party/WebKit/Source/core/page/TouchAdjustment.h
+++ b/third_party/WebKit/Source/core/page/TouchAdjustment.h
@@ -30,9 +30,9 @@
 
 class Node;
 
-bool findBestClickableCandidate(Node*& targetNode, IntPoint& targetPoint, const IntPoint& touchHotspot, const IntRect& touchArea, const WillBeHeapVector<RefPtrWillBeMember<Node>>&);
-bool findBestContextMenuCandidate(Node*& targetNode, IntPoint& targetPoint, const IntPoint& touchHotspot, const IntRect& touchArea, const WillBeHeapVector<RefPtrWillBeMember<Node>>&);
-bool findBestZoomableArea(Node*& targetNode, IntRect& targetArea, const IntPoint& touchHotspot, const IntRect& touchArea, const WillBeHeapVector<RefPtrWillBeMember<Node>>&);
+bool findBestClickableCandidate(Node*& targetNode, IntPoint& targetPoint, const IntPoint& touchHotspot, const IntRect& touchArea, const HeapVector<Member<Node>>&);
+bool findBestContextMenuCandidate(Node*& targetNode, IntPoint& targetPoint, const IntPoint& touchHotspot, const IntRect& touchArea, const HeapVector<Member<Node>>&);
+bool findBestZoomableArea(Node*& targetNode, IntRect& targetArea, const IntPoint& touchHotspot, const IntRect& touchArea, const HeapVector<Member<Node>>&);
 // FIXME: Implement the similar functions for other gestures here as well.
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/page/TouchDisambiguation.cpp b/third_party/WebKit/Source/core/page/TouchDisambiguation.cpp
index 94bb0165..d19a86e 100644
--- a/third_party/WebKit/Source/core/page/TouchDisambiguation.cpp
+++ b/third_party/WebKit/Source/core/page/TouchDisambiguation.cpp
@@ -84,7 +84,7 @@
     float score;
 };
 
-void findGoodTouchTargets(const IntRect& touchBoxInRootFrame, LocalFrame* mainFrame, Vector<IntRect>& goodTargets, WillBeHeapVector<RawPtrWillBeMember<Node>>& highlightNodes)
+void findGoodTouchTargets(const IntRect& touchBoxInRootFrame, LocalFrame* mainFrame, Vector<IntRect>& goodTargets, HeapVector<Member<Node>>& highlightNodes)
 {
     goodTargets.clear();
 
@@ -94,12 +94,12 @@
     IntPoint contentsPoint = mainFrame->view()->rootFrameToContents(touchPoint);
 
     HitTestResult result = mainFrame->eventHandler().hitTestResultAtPoint(contentsPoint, HitTestRequest::ReadOnly | HitTestRequest::Active | HitTestRequest::ListBased, LayoutSize(touchPointPadding, touchPointPadding));
-    const WillBeHeapListHashSet<RefPtrWillBeMember<Node>>& hitResults = result.listBasedTestResult();
+    const HeapListHashSet<Member<Node>>& hitResults = result.listBasedTestResult();
 
     // Blacklist nodes that are container of disambiguated nodes.
     // It is not uncommon to have a clickable <div> that contains other clickable objects.
     // This heuristic avoids excessive disambiguation in that case.
-    WillBeHeapHashSet<RawPtrWillBeMember<Node>> blackList;
+    HeapHashSet<Member<Node>> blackList;
     for (const auto& hitResult : hitResults) {
         // Ignore any Nodes that can't be clicked on.
         LayoutObject* layoutObject = hitResult.get()->layoutObject();
@@ -116,7 +116,7 @@
         }
     }
 
-    WillBeHeapHashMap<RawPtrWillBeMember<Node>, TouchTargetData> touchTargets;
+    HeapHashMap<Member<Node>, TouchTargetData> touchTargets;
     float bestScore = 0;
     for (const auto& hitResult : hitResults) {
         for (Node* node = hitResult.get(); node; node = node->parentNode()) {
diff --git a/third_party/WebKit/Source/core/page/TouchDisambiguation.h b/third_party/WebKit/Source/core/page/TouchDisambiguation.h
index 5dd36a8fb..ec517ab 100644
--- a/third_party/WebKit/Source/core/page/TouchDisambiguation.h
+++ b/third_party/WebKit/Source/core/page/TouchDisambiguation.h
@@ -41,7 +41,7 @@
 class IntRect;
 class Node;
 
-CORE_EXPORT void findGoodTouchTargets(const IntRect& touchBox, LocalFrame* mainFrame, Vector<IntRect>& goodTargets, WillBeHeapVector<RawPtrWillBeMember<Node>>& highlightNodes);
+CORE_EXPORT void findGoodTouchTargets(const IntRect& touchBox, LocalFrame* mainFrame, Vector<IntRect>& goodTargets, HeapVector<Member<Node>>& highlightNodes);
 
 } // namespace blink
 
diff --git a/third_party/WebKit/Source/core/page/ValidationMessageClient.h b/third_party/WebKit/Source/core/page/ValidationMessageClient.h
index 5ea7b19..e0df6b6 100644
--- a/third_party/WebKit/Source/core/page/ValidationMessageClient.h
+++ b/third_party/WebKit/Source/core/page/ValidationMessageClient.h
@@ -35,7 +35,7 @@
 class Document;
 class Element;
 
-class ValidationMessageClient : public WillBeGarbageCollectedMixin {
+class ValidationMessageClient : public GarbageCollectedMixin {
 public:
     virtual ~ValidationMessageClient() { }
 
diff --git a/third_party/WebKit/Source/core/page/scrolling/ScrollCustomizationCallbacks.h b/third_party/WebKit/Source/core/page/scrolling/ScrollCustomizationCallbacks.h
index 9c137a5..0ede30c 100644
--- a/third_party/WebKit/Source/core/page/scrolling/ScrollCustomizationCallbacks.h
+++ b/third_party/WebKit/Source/core/page/scrolling/ScrollCustomizationCallbacks.h
@@ -35,7 +35,7 @@
 #endif
 
 private:
-    using ScrollStateCallbackList = HeapHashMap<RawPtrWillBeWeakMember<Element>, Member<ScrollStateCallback>>;
+    using ScrollStateCallbackList = HeapHashMap<WeakMember<Element>, Member<ScrollStateCallback>>;
     ScrollStateCallbackList m_applyScrollCallbacks;
     ScrollStateCallbackList m_distributeScrollCallbacks;
 };
diff --git a/third_party/WebKit/Source/core/page/scrolling/ScrollState.cpp b/third_party/WebKit/Source/core/page/scrolling/ScrollState.cpp
index bdba1458..411640a 100644
--- a/third_party/WebKit/Source/core/page/scrolling/ScrollState.cpp
+++ b/third_party/WebKit/Source/core/page/scrolling/ScrollState.cpp
@@ -24,7 +24,7 @@
 }
 } // namespace
 
-PassRefPtrWillBeRawPtr<ScrollState> ScrollState::create(ScrollStateInit init)
+RawPtr<ScrollState> ScrollState::create(ScrollStateInit init)
 {
     OwnPtr<ScrollStateData> scrollStateData = adoptPtr(new ScrollStateData());
     scrollStateData->delta_x = init.deltaX();
@@ -44,7 +44,7 @@
     return adoptRefWillBeNoop(scrollState);
 }
 
-PassRefPtrWillBeRawPtr<ScrollState> ScrollState::create(PassOwnPtr<ScrollStateData> data)
+RawPtr<ScrollState> ScrollState::create(PassOwnPtr<ScrollStateData> data)
 {
     ScrollState* scrollState = new ScrollState(data);
     return adoptRefWillBeNoop(scrollState);
diff --git a/third_party/WebKit/Source/core/page/scrolling/ScrollState.h b/third_party/WebKit/Source/core/page/scrolling/ScrollState.h
index d38e3cf..8b371db 100644
--- a/third_party/WebKit/Source/core/page/scrolling/ScrollState.h
+++ b/third_party/WebKit/Source/core/page/scrolling/ScrollState.h
@@ -15,12 +15,12 @@
 
 namespace blink {
 
-class CORE_EXPORT ScrollState final : public RefCountedWillBeGarbageCollectedFinalized<ScrollState>, public ScriptWrappable {
+class CORE_EXPORT ScrollState final : public GarbageCollectedFinalized<ScrollState>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 
 public:
-    static PassRefPtrWillBeRawPtr<ScrollState> create(ScrollStateInit);
-    static PassRefPtrWillBeRawPtr<ScrollState> create(PassOwnPtr<ScrollStateData>);
+    static RawPtr<ScrollState> create(ScrollStateInit);
+    static RawPtr<ScrollState> create(PassOwnPtr<ScrollStateData>);
 
     ~ScrollState()
     {
diff --git a/third_party/WebKit/Source/core/page/scrolling/ScrollStateTest.cpp b/third_party/WebKit/Source/core/page/scrolling/ScrollStateTest.cpp
index c44546d..76d7b771 100644
--- a/third_party/WebKit/Source/core/page/scrolling/ScrollStateTest.cpp
+++ b/third_party/WebKit/Source/core/page/scrolling/ScrollStateTest.cpp
@@ -12,7 +12,7 @@
 
 namespace {
 
-PassRefPtrWillBeRawPtr<ScrollState> CreateScrollState(double deltaX, double deltaY, bool beginning, bool ending)
+RawPtr<ScrollState> CreateScrollState(double deltaX, double deltaY, bool beginning, bool ending)
 {
     OwnPtr<ScrollStateData> scrollStateData = adoptPtr(new ScrollStateData());
     scrollStateData->delta_x = deltaX;
@@ -33,7 +33,7 @@
     const float deltaXToConsume = 1.2;
     const float deltaYToConsume = 2.3;
 
-    RefPtrWillBeRawPtr<ScrollState> scrollState = CreateScrollState(deltaX, deltaY, false, false);
+    RawPtr<ScrollState> scrollState = CreateScrollState(deltaX, deltaY, false, false);
     EXPECT_FLOAT_EQ(deltaX, scrollState->deltaX());
     EXPECT_FLOAT_EQ(deltaY, scrollState->deltaY());
     EXPECT_FALSE(scrollState->deltaConsumedForScrollSequence());
@@ -64,8 +64,8 @@
 
 TEST_F(ScrollStateTest, CurrentNativeScrollingElement)
 {
-    RefPtrWillBeRawPtr<ScrollState> scrollState = CreateScrollState(0, 0, false, false);
-    RefPtrWillBeRawPtr<Element> element = Element::create(
+    RawPtr<ScrollState> scrollState = CreateScrollState(0, 0, false, false);
+    RawPtr<Element> element = Element::create(
         QualifiedName::null(), Document::create().get());
     scrollState->setCurrentNativeScrollingElement(element.get());
 
@@ -74,9 +74,9 @@
 
 TEST_F(ScrollStateTest, FullyConsumed)
 {
-    RefPtrWillBeRawPtr<ScrollState> scrollStateBegin = CreateScrollState(0, 0, true, false);
-    RefPtrWillBeRawPtr<ScrollState> scrollState = CreateScrollState(0, 0, false, false);
-    RefPtrWillBeRawPtr<ScrollState> scrollStateEnd = CreateScrollState(0, 0, false, true);
+    RawPtr<ScrollState> scrollStateBegin = CreateScrollState(0, 0, true, false);
+    RawPtr<ScrollState> scrollState = CreateScrollState(0, 0, false, false);
+    RawPtr<ScrollState> scrollStateEnd = CreateScrollState(0, 0, false, true);
     EXPECT_FALSE(scrollStateBegin->fullyConsumed());
     EXPECT_TRUE(scrollState->fullyConsumed());
     EXPECT_FALSE(scrollStateEnd->fullyConsumed());
diff --git a/third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.cpp b/third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.cpp
index ec810c2..9e4a8dd8 100644
--- a/third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.cpp
+++ b/third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.cpp
@@ -82,9 +82,9 @@
 
 namespace blink {
 
-PassOwnPtrWillBeRawPtr<ScrollingCoordinator> ScrollingCoordinator::create(Page* page)
+RawPtr<ScrollingCoordinator> ScrollingCoordinator::create(Page* page)
 {
-    return adoptPtrWillBeNoop(new ScrollingCoordinator(page));
+    return new ScrollingCoordinator(page);
 }
 
 ScrollingCoordinator::ScrollingCoordinator(Page* page)
@@ -417,7 +417,7 @@
 // Layers have child frames inside of them. This computes a mapping for the
 // current frame which we can consult while walking the layers of that frame.
 // Whenever we descend into a new frame, a new map will be created.
-using LayerFrameMap = WillBeHeapHashMap<const PaintLayer*, WillBeHeapVector<RawPtrWillBeMember<const LocalFrame>>>;
+using LayerFrameMap = HeapHashMap<const PaintLayer*, HeapVector<Member<const LocalFrame>>>;
 static void makeLayerChildFrameMap(const LocalFrame* currentFrame, LayerFrameMap* map)
 {
     map->clear();
@@ -431,7 +431,7 @@
         const PaintLayer* containingLayer = ownerLayoutObject->enclosingLayer();
         LayerFrameMap::iterator iter = map->find(containingLayer);
         if (iter == map->end())
-            map->add(containingLayer, WillBeHeapVector<RawPtrWillBeMember<const LocalFrame>>()).storedValue->value.append(toLocalFrame(child));
+            map->add(containingLayer, HeapVector<Member<const LocalFrame>>()).storedValue->value.append(toLocalFrame(child));
         else
             iter->value.append(toLocalFrame(child));
     }
@@ -746,7 +746,7 @@
     }
 
     if (const FrameView::ChildrenWidgetSet* children = frameView->children()) {
-        for (const RefPtrWillBeMember<Widget>& child : *children) {
+        for (const Member<Widget>& child : *children) {
             if (!(*child).isPluginView())
                 continue;
 
diff --git a/third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.h b/third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.h
index 1c78677d..44aba89 100644
--- a/third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.h
+++ b/third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.h
@@ -52,11 +52,10 @@
 class CompositorAnimationTimeline;
 class WebLayerTreeView;
 
-class CORE_EXPORT ScrollingCoordinator final : public NoBaseWillBeGarbageCollectedFinalized<ScrollingCoordinator> {
+class CORE_EXPORT ScrollingCoordinator final : public GarbageCollectedFinalized<ScrollingCoordinator> {
     WTF_MAKE_NONCOPYABLE(ScrollingCoordinator);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(ScrollingCoordinator);
 public:
-    static PassOwnPtrWillBeRawPtr<ScrollingCoordinator> create(Page*);
+    static RawPtr<ScrollingCoordinator> create(Page*);
 
     ~ScrollingCoordinator();
     DECLARE_TRACE();
@@ -129,7 +128,7 @@
     bool isForMainFrame(ScrollableArea*) const;
     bool isForViewport(ScrollableArea*) const;
 
-    RawPtrWillBeMember<Page> m_page;
+    Member<Page> m_page;
 
     // Dirty flags used to idenfity what really needs to be computed after compositing is updated.
     bool m_scrollGestureRegionIsDirty;
@@ -155,7 +154,7 @@
 
     OwnPtr<CompositorAnimationTimeline> m_programmaticScrollAnimatorTimeline;
 
-    using ScrollbarMap = WillBeHeapHashMap<RawPtrWillBeMember<ScrollableArea>, OwnPtr<WebScrollbarLayer>>;
+    using ScrollbarMap = HeapHashMap<Member<ScrollableArea>, OwnPtr<WebScrollbarLayer>>;
     ScrollbarMap m_horizontalScrollbars;
     ScrollbarMap m_verticalScrollbars;
     HashSet<const PaintLayer*> m_layersWithTouchRects;
diff --git a/third_party/WebKit/Source/core/paint/FilterEffectBuilder.cpp b/third_party/WebKit/Source/core/paint/FilterEffectBuilder.cpp
index 1a6666f..7a5b74d 100644
--- a/third_party/WebKit/Source/core/paint/FilterEffectBuilder.cpp
+++ b/third_party/WebKit/Source/core/paint/FilterEffectBuilder.cpp
@@ -31,6 +31,7 @@
 #include "platform/FloatConversion.h"
 #include "platform/LengthFunctions.h"
 #include "platform/graphics/ColorSpace.h"
+#include "platform/graphics/filters/FEBoxReflect.h"
 #include "platform/graphics/filters/FEColorMatrix.h"
 #include "platform/graphics/filters/FEComponentTransfer.h"
 #include "platform/graphics/filters/FEDropShadow.h"
@@ -228,6 +229,11 @@
             effect = FEDropShadow::create(parentFilter.get(), stdDeviation, stdDeviation, x, y, dropShadowOperation->getColor(), 1);
             break;
         }
+        case FilterOperation::BOX_REFLECT: {
+            BoxReflectFilterOperation* boxReflectOperation = toBoxReflectFilterOperation(filterOperation);
+            effect = FEBoxReflect::create(parentFilter.get(), boxReflectOperation->direction(), boxReflectOperation->offset());
+            break;
+        }
         default:
             break;
         }
diff --git a/third_party/WebKit/Source/core/paint/PaintLayer.cpp b/third_party/WebKit/Source/core/paint/PaintLayer.cpp
index 8f1f0f4e..fb600ab 100644
--- a/third_party/WebKit/Source/core/paint/PaintLayer.cpp
+++ b/third_party/WebKit/Source/core/paint/PaintLayer.cpp
@@ -251,7 +251,7 @@
 
 bool PaintLayer::paintsWithFilters() const
 {
-    if (!layoutObject()->hasFilter())
+    if (!layoutObject()->hasFilterInducingProperty())
         return false;
 
     // https://code.google.com/p/chromium/issues/detail?id=343759
@@ -1063,8 +1063,7 @@
 bool PaintLayer::hasAncestorWithFilterOutsets() const
 {
     for (const PaintLayer* curr = this; curr; curr = curr->parent()) {
-        LayoutBoxModelObject* layoutObject = curr->layoutObject();
-        if (layoutObject->style()->hasFilterOutsets())
+        if (curr->hasFilterOutsets())
             return true;
     }
     return false;
@@ -2131,9 +2130,19 @@
     return overlapBoundsIncludeChildren() ? boundingBoxForCompositing(this, NeverIncludeTransformForAncestorLayer) : fragmentsBoundingBox(this);
 }
 
+bool PaintLayer::overlapBoundsIncludeChildren() const
+{
+    const auto* style = layoutObject()->style();
+    if (style && style->filter().hasFilterThatMovesPixels())
+        return true;
+    if (RuntimeEnabledFeatures::cssBoxReflectFilterEnabled() && layoutObject()->hasReflection())
+        return true;
+    return false;
+}
+
 static void expandRectForReflectionAndStackingChildren(const PaintLayer* ancestorLayer, LayoutRect& result)
 {
-    if (ancestorLayer->reflectionInfo() && !ancestorLayer->reflectionInfo()->reflectionLayer()->hasCompositedLayerMapping())
+    if (ancestorLayer->reflectionInfo() && !ancestorLayer->reflectionInfo()->reflectionLayer()->hasCompositedLayerMapping() && !RuntimeEnabledFeatures::cssBoxReflectFilterEnabled())
         result.unite(ancestorLayer->reflectionInfo()->reflectionLayer()->boundingBoxForCompositing(ancestorLayer));
 
     ASSERT(ancestorLayer->stackingNode()->isStackingContext() || !ancestorLayer->stackingNode()->hasPositiveZOrderList());
@@ -2470,7 +2479,7 @@
 
 void PaintLayer::updateFilters(const ComputedStyle* oldStyle, const ComputedStyle& newStyle)
 {
-    if (!newStyle.hasFilter() && (!oldStyle || !oldStyle->hasFilter()))
+    if (!newStyle.hasFilterInducingProperty() && (!oldStyle || !oldStyle->hasFilterInducingProperty()))
         return;
 
     updateOrRemoveFilterClients();
@@ -2603,7 +2612,43 @@
 
 FilterOperations PaintLayer::computeFilterOperations(const ComputedStyle& style) const
 {
-    return computeFilterOperationsHandleReferenceFilters(style.filter(), style.effectiveZoom(), enclosingNode());
+    FilterOperations filterOperations = style.filter();
+    if (RuntimeEnabledFeatures::cssBoxReflectFilterEnabled() && layoutObject()->hasReflection() && layoutObject()->isBox()) {
+        // TODO(jbroman): Incorporate the mask image.
+        const auto* reflectStyle = style.boxReflect();
+        FloatRect frameRect(toLayoutBox(layoutObject())->frameRect());
+        ReflectionDirection direction = VerticalReflection;
+        float offset = 0;
+        switch (reflectStyle->direction()) {
+        case ReflectionAbove:
+            direction = VerticalReflection;
+            offset = -floatValueForLength(reflectStyle->offset(), frameRect.height());
+            break;
+        case ReflectionBelow:
+            direction = VerticalReflection;
+            offset = 2 * frameRect.height() + floatValueForLength(reflectStyle->offset(), frameRect.height());
+            break;
+        case ReflectionLeft:
+            direction = HorizontalReflection;
+            offset = -floatValueForLength(reflectStyle->offset(), frameRect.width());
+            break;
+        case ReflectionRight:
+            direction = HorizontalReflection;
+            offset = 2 * frameRect.width() + floatValueForLength(reflectStyle->offset(), frameRect.width());
+            break;
+        }
+
+        // Since the filter origin is the corner of the input bounds, which may
+        // include visual overflow (e.g. due to box-shadow), we must adjust the
+        // offset to also account for this offset (this is equivalent to using
+        // SkLocalMatrixImageFilter, but simpler).
+        // The rect used here should match the one used in FilterPainter.
+        LayoutRect filterInputBounds = physicalBoundingBoxIncludingReflectionAndStackingChildren(LayoutPoint());
+        offset -= 2 * (direction == VerticalReflection ? filterInputBounds.y() : filterInputBounds.x()).toFloat();
+
+        filterOperations.operations().append(BoxReflectFilterOperation::create(direction, offset));
+    }
+    return computeFilterOperationsHandleReferenceFilters(filterOperations, style.effectiveZoom(), enclosingNode());
 }
 
 FilterOperations PaintLayer::computeBackdropFilterOperations(const ComputedStyle& style) const
@@ -2621,10 +2666,11 @@
 
 void PaintLayer::updateOrRemoveFilterClients()
 {
-    if (!hasFilter() && m_rareData) {
+    const auto& filter = layoutObject()->style()->filter();
+    if (filter.isEmpty() && m_rareData) {
         m_rareData->filterInfo = nullptr;
-    } else if (layoutObject()->style()->filter().hasReferenceFilter()) {
-        ensureFilterInfo().updateReferenceFilterClients(layoutObject()->style()->filter());
+    } else if (filter.hasReferenceFilter()) {
+        ensureFilterInfo().updateReferenceFilterClients(filter);
     } else if (filterInfo()) {
         filterInfo()->clearFilterReferences();
     }
@@ -2662,13 +2708,26 @@
     return builder->lastEffect().get();
 }
 
+bool PaintLayer::hasFilterOutsets() const
+{
+    if (!layoutObject()->hasFilterInducingProperty())
+        return false;
+    const ComputedStyle& style = layoutObject()->styleRef();
+    if (style.hasFilter() && style.filter().hasOutsets())
+        return true;
+    if (RuntimeEnabledFeatures::cssBoxReflectFilterEnabled() && style.hasBoxReflect())
+        return true;
+    return false;
+}
+
 FilterOutsets PaintLayer::filterOutsets() const
 {
-    if (!layoutObject()->hasFilter())
+    if (!layoutObject()->hasFilterInducingProperty())
         return FilterOutsets();
 
     // Ensure the filter-chain is refreshed wrt reference filters.
     updateFilterEffectBuilder();
+
     return layoutObject()->style()->filter().outsets();
 }
 
diff --git a/third_party/WebKit/Source/core/paint/PaintLayer.h b/third_party/WebKit/Source/core/paint/PaintLayer.h
index d106326..42981f29 100644
--- a/third_party/WebKit/Source/core/paint/PaintLayer.h
+++ b/third_party/WebKit/Source/core/paint/PaintLayer.h
@@ -364,7 +364,7 @@
 
     // If true, this layer's children are included in its bounds for overlap testing.
     // We can't rely on the children's positions if this layer has a filter that could have moved the children's pixels around.
-    bool overlapBoundsIncludeChildren() const { return hasFilter() && layoutObject()->style()->filter().hasFilterThatMovesPixels(); }
+    bool overlapBoundsIncludeChildren() const;
 
     // MaybeIncludeTransformForAncestorLayer means that a transform on |ancestorLayer| may be applied to the bounding box,
     // in particular if paintsWithTransform() is true.
@@ -405,7 +405,10 @@
     bool shouldPreserve3D() const { return !layoutObject()->hasReflection() && layoutObject()->style()->transformStyle3D() == TransformStyle3DPreserve3D; }
 
     void filterNeedsPaintInvalidation();
-    bool hasFilter() const { return layoutObject()->hasFilter(); }
+
+    // Returns |true| if any property that renders using filter operations is
+    // used (including, but not limited to, 'filter').
+    bool hasFilterInducingProperty() const { return layoutObject()->hasFilterInducingProperty(); }
 
     void* operator new(size_t);
     // Only safe to call from LayoutBoxModelObject::destroyLayer()
@@ -466,6 +469,7 @@
     bool paintsWithFilters() const;
     bool paintsWithBackdropFilters() const;
     FilterEffect* lastFilterEffect() const;
+    bool hasFilterOutsets() const;
     FilterOutsets filterOutsets() const;
 
     PaintLayerFilterInfo* filterInfo() const { return m_rareData ? m_rareData->filterInfo.get() : nullptr; }
diff --git a/third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp b/third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp
index 000a0c2..50cf8909 100644
--- a/third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp
+++ b/third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp
@@ -108,7 +108,7 @@
     PaintResult result = FullyPainted;
 
     // Paint the reflection first if we have one.
-    if (m_paintLayer.reflectionInfo()) {
+    if (m_paintLayer.reflectionInfo() && !RuntimeEnabledFeatures::cssBoxReflectFilterEnabled()) {
         ScopeRecorder scopeRecorder(context);
         if (m_paintLayer.reflectionInfo()->paint(context, paintingInfo, localPaintFlags) == MayBeClippedByPaintDirtyRect)
             result = MayBeClippedByPaintDirtyRect;
diff --git a/third_party/WebKit/Source/core/plugins/PluginView.h b/third_party/WebKit/Source/core/plugins/PluginView.h
index 4a3e13a..5e2ba4f 100644
--- a/third_party/WebKit/Source/core/plugins/PluginView.h
+++ b/third_party/WebKit/Source/core/plugins/PluginView.h
@@ -46,7 +46,6 @@
 
     virtual WebLayer* platformLayer() const { return 0; }
     virtual v8::Local<v8::Object> scriptableObject(v8::Isolate*) { return v8::Local<v8::Object>(); }
-    virtual bool getFormValue(String&) { return false; }
     virtual bool wantsWheelEvents() { return false; }
     virtual bool supportsKeyboardFocus() const { return false; }
     virtual bool supportsInputMethod() const { return false; }
diff --git a/third_party/WebKit/Source/core/style/ComputedStyle.cpp b/third_party/WebKit/Source/core/style/ComputedStyle.cpp
index 03070017..9e0fa545 100644
--- a/third_party/WebKit/Source/core/style/ComputedStyle.cpp
+++ b/third_party/WebKit/Source/core/style/ComputedStyle.cpp
@@ -786,6 +786,9 @@
 
         if (rareNonInheritedData->m_backdropFilter != other.rareNonInheritedData->m_backdropFilter)
             diff.setBackdropFilterChanged();
+
+        if (RuntimeEnabledFeatures::cssBoxReflectFilterEnabled() && rareNonInheritedData->m_boxReflect != other.rareNonInheritedData->m_boxReflect)
+            diff.setFilterChanged();
     }
 
     if (!diff.needsPaintInvalidation()) {
@@ -813,7 +816,7 @@
     }
 }
 
-void ComputedStyle::addCursor(PassRefPtrWillBeRawPtr<StyleImage> image, bool hotSpotSpecified, const IntPoint& hotSpot)
+void ComputedStyle::addCursor(RawPtr<StyleImage> image, bool hotSpotSpecified, const IntPoint& hotSpot)
 {
     if (!rareInheritedData.access()->cursorData) {
 #if ENABLE(OILPAN)
@@ -825,7 +828,7 @@
     rareInheritedData.access()->cursorData->append(CursorData(image, hotSpotSpecified, hotSpot));
 }
 
-void ComputedStyle::setCursorList(PassRefPtrWillBeRawPtr<CursorList> other)
+void ComputedStyle::setCursorList(RawPtr<CursorList> other)
 {
     rareInheritedData.access()->cursorData = other;
 }
@@ -853,9 +856,9 @@
         rareNonInheritedData.access()->m_content = nullptr;
 }
 
-void ComputedStyle::appendContent(PassOwnPtrWillBeRawPtr<ContentData> contentData)
+void ComputedStyle::appendContent(RawPtr<ContentData> contentData)
 {
-    OwnPtrWillBePersistent<ContentData>& content = rareNonInheritedData.access()->m_content;
+    Persistent<ContentData>& content = rareNonInheritedData.access()->m_content;
     if (!content) {
         content = contentData;
         return;
@@ -866,14 +869,14 @@
     lastContent->setNext(contentData);
 }
 
-void ComputedStyle::setContent(PassRefPtrWillBeRawPtr<StyleImage> image)
+void ComputedStyle::setContent(RawPtr<StyleImage> image)
 {
     appendContent(ContentData::create(image));
 }
 
 void ComputedStyle::setContent(const String& string)
 {
-    OwnPtrWillBePersistent<ContentData>& content = rareNonInheritedData.access()->m_content;
+    Persistent<ContentData>& content = rareNonInheritedData.access()->m_content;
     if (!content) {
         content = ContentData::create(string);
         return;
@@ -1062,7 +1065,7 @@
 }
 
 StyleImage* ComputedStyle::listStyleImage() const { return rareInheritedData->listStyleImage.get(); }
-void ComputedStyle::setListStyleImage(PassRefPtrWillBeRawPtr<StyleImage> v)
+void ComputedStyle::setListStyleImage(RawPtr<StyleImage> v)
 {
     if (rareInheritedData->listStyleImage != v)
         rareInheritedData.access()->listStyleImage = v;
@@ -1764,7 +1767,7 @@
         NinePieceImage::computeOutset(image.outset().left(), borderLeftWidth()));
 }
 
-void ComputedStyle::setBorderImageSource(PassRefPtrWillBeRawPtr<StyleImage> image)
+void ComputedStyle::setBorderImageSource(RawPtr<StyleImage> image)
 {
     if (surround->border.m_image.image() == image.get())
         return;
diff --git a/third_party/WebKit/Source/core/style/ComputedStyle.h b/third_party/WebKit/Source/core/style/ComputedStyle.h
index a9f80665..b6b95349 100644
--- a/third_party/WebKit/Source/core/style/ComputedStyle.h
+++ b/third_party/WebKit/Source/core/style/ComputedStyle.h
@@ -460,7 +460,10 @@
         return imageOutsets(borderImage());
     }
 
-    bool hasFilterOutsets() const { return hasFilter() && filter().hasOutsets(); }
+    // Returns |true| if any property that renders using filter operations is
+    // used (including, but not limited to, 'filter').
+    bool hasFilterInducingProperty() const { return hasFilter() || (RuntimeEnabledFeatures::cssBoxReflectFilterEnabled() && hasBoxReflect()); }
+
     Order rtlOrdering() const { return static_cast<Order>(inherited_flags.m_rtlOrdering); }
     void setRTLOrdering(Order o) { inherited_flags.m_rtlOrdering = o; }
 
@@ -847,6 +850,7 @@
 
     EBoxDecorationBreak boxDecorationBreak() const { return m_box->boxDecorationBreak(); }
     StyleReflection* boxReflect() const { return rareNonInheritedData->m_boxReflect.get(); }
+    bool hasBoxReflect() const { return boxReflect(); }
     bool reflectionDataEquivalent(const ComputedStyle* otherStyle) const { return rareNonInheritedData->reflectionDataEquivalent(*otherStyle->rareNonInheritedData); }
 
     // FIXME: reflections should belong to this helper function but they are currently handled
@@ -1098,7 +1102,7 @@
     void setBackgroundColor(const StyleColor& v) { SET_VAR(m_background, m_color, v); }
 
     void setBorderImage(const NinePieceImage& b) { SET_VAR(surround, border.m_image, b); }
-    void setBorderImageSource(PassRefPtrWillBeRawPtr<StyleImage>);
+    void setBorderImageSource(RawPtr<StyleImage>);
     void setBorderImageSlices(const LengthBox&);
     void setBorderImageSlicesFill(bool);
     void setBorderImageWidth(const BorderImageLengthBox&);
@@ -1222,7 +1226,7 @@
     }
 
     void setMaskBoxImage(const NinePieceImage& b) { SET_VAR(rareNonInheritedData, m_maskBoxImage, b); }
-    void setMaskBoxImageSource(PassRefPtrWillBeRawPtr<StyleImage> v) { rareNonInheritedData.access()->m_maskBoxImage.setImage(v); }
+    void setMaskBoxImageSource(RawPtr<StyleImage> v) { rareNonInheritedData.access()->m_maskBoxImage.setImage(v); }
     void setMaskBoxImageSlices(const LengthBox& slices)
     {
         rareNonInheritedData.access()->m_maskBoxImage.setImageSlices(slices);
@@ -1247,7 +1251,7 @@
     void setCaptionSide(ECaptionSide v) { inherited_flags._caption_side = v; }
 
     void setListStyleType(EListStyleType v) { inherited_flags._list_style_type = v; }
-    void setListStyleImage(PassRefPtrWillBeRawPtr<StyleImage>);
+    void setListStyleImage(RawPtr<StyleImage>);
     void setListStylePosition(EListStylePosition v) { inherited_flags._list_style_position = v; }
 
     void setMarginTop(const Length& v) { SET_VAR(surround, margin.m_top, v); }
@@ -1265,8 +1269,8 @@
     void setPaddingRight(const Length& v) { SET_VAR(surround, padding.m_right, v); }
 
     void setCursor(ECursor c) { inherited_flags._cursor_style = c; }
-    void addCursor(PassRefPtrWillBeRawPtr<StyleImage>, bool hotSpotSpecified, const IntPoint& hotSpot = IntPoint());
-    void setCursorList(PassRefPtrWillBeRawPtr<CursorList>);
+    void addCursor(RawPtr<StyleImage>, bool hotSpotSpecified, const IntPoint& hotSpot = IntPoint());
+    void setCursorList(RawPtr<CursorList>);
     void clearCursorList();
 
     void setInsideLink(EInsideLink insideLink) { inherited_flags._insideLink = insideLink; }
@@ -1551,7 +1555,7 @@
         svgStyle.setBaselineShiftValue(value);
     }
 
-    void setShapeOutside(PassRefPtrWillBeRawPtr<ShapeValue> value)
+    void setShapeOutside(RawPtr<ShapeValue> value)
     {
         if (rareNonInheritedData->m_shapeOutside == value)
             return;
@@ -1587,7 +1591,7 @@
     bool contentDataEquivalent(const ComputedStyle* otherStyle) const { return const_cast<ComputedStyle*>(this)->rareNonInheritedData->contentDataEquivalent(*const_cast<ComputedStyle*>(otherStyle)->rareNonInheritedData); }
     void clearContent();
     void setContent(const String&);
-    void setContent(PassRefPtrWillBeRawPtr<StyleImage>);
+    void setContent(RawPtr<StyleImage>);
     void setContent(PassOwnPtr<CounterContent>);
     void setContent(QuoteType);
 
@@ -1641,7 +1645,17 @@
     bool hasChildDependentFlags() const { return emptyState() || hasExplicitlyInheritedProperties(); }
     void copyChildDependentFlagsFrom(const ComputedStyle&);
 
-    bool hasBoxDecorations() const { return hasBorderDecoration() || hasBorderRadius() || hasOutline() || hasAppearance() || boxShadow() || hasFilter() || hasBackdropFilter() || resize() != RESIZE_NONE; }
+    bool hasBoxDecorations() const
+    {
+        return hasBorderDecoration()
+            || hasBorderRadius()
+            || hasOutline()
+            || hasAppearance()
+            || boxShadow()
+            || hasFilterInducingProperty()
+            || hasBackdropFilter()
+            || resize() != RESIZE_NONE;
+    }
 
     bool borderObscuresBackground() const;
     void getBorderEdgeInfo(BorderEdge edges[], bool includeLogicalLeftEdge = true, bool includeLogicalRightEdge = true) const;
@@ -1917,7 +1931,7 @@
     Color floodColor() const { return svgStyle().floodColor(); }
     Color lightingColor() const { return svgStyle().lightingColor(); }
 
-    void appendContent(PassOwnPtrWillBeRawPtr<ContentData>);
+    void appendContent(RawPtr<ContentData>);
     void addAppliedTextDecoration(const AppliedTextDecoration&);
     void applyMotionPathTransform(float originX, float originY, TransformationMatrix&) const;
 
diff --git a/third_party/WebKit/Source/core/style/ComputedStyleTest.cpp b/third_party/WebKit/Source/core/style/ComputedStyleTest.cpp
index 83d7d658..5ae2f3c 100644
--- a/third_party/WebKit/Source/core/style/ComputedStyleTest.cpp
+++ b/third_party/WebKit/Source/core/style/ComputedStyleTest.cpp
@@ -12,8 +12,8 @@
 
 TEST(ComputedStyleTest, ShapeOutsideBoxEqual)
 {
-    RefPtrWillBeRawPtr<ShapeValue> shape1 = ShapeValue::createBoxShapeValue(ContentBox);
-    RefPtrWillBeRawPtr<ShapeValue> shape2 = ShapeValue::createBoxShapeValue(ContentBox);
+    RawPtr<ShapeValue> shape1 = ShapeValue::createBoxShapeValue(ContentBox);
+    RawPtr<ShapeValue> shape2 = ShapeValue::createBoxShapeValue(ContentBox);
     RefPtr<ComputedStyle> style1 = ComputedStyle::create();
     RefPtr<ComputedStyle> style2 = ComputedStyle::create();
     style1->setShapeOutside(shape1);
@@ -25,8 +25,8 @@
 {
     RefPtr<BasicShapeCircle> circle1 = BasicShapeCircle::create();
     RefPtr<BasicShapeCircle> circle2 = BasicShapeCircle::create();
-    RefPtrWillBeRawPtr<ShapeValue> shape1 = ShapeValue::createShapeValue(circle1, ContentBox);
-    RefPtrWillBeRawPtr<ShapeValue> shape2 = ShapeValue::createShapeValue(circle2, ContentBox);
+    RawPtr<ShapeValue> shape1 = ShapeValue::createShapeValue(circle1, ContentBox);
+    RawPtr<ShapeValue> shape2 = ShapeValue::createShapeValue(circle2, ContentBox);
     RefPtr<ComputedStyle> style1 = ComputedStyle::create();
     RefPtr<ComputedStyle> style2 = ComputedStyle::create();
     style1->setShapeOutside(shape1);
diff --git a/third_party/WebKit/Source/core/style/ContentData.cpp b/third_party/WebKit/Source/core/style/ContentData.cpp
index 9d2c496..236adfa 100644
--- a/third_party/WebKit/Source/core/style/ContentData.cpp
+++ b/third_party/WebKit/Source/core/style/ContentData.cpp
@@ -31,33 +31,33 @@
 
 namespace blink {
 
-PassOwnPtrWillBeRawPtr<ContentData> ContentData::create(PassRefPtrWillBeRawPtr<StyleImage> image)
+RawPtr<ContentData> ContentData::create(RawPtr<StyleImage> image)
 {
-    return adoptPtrWillBeNoop(new ImageContentData(image));
+    return new ImageContentData(image);
 }
 
-PassOwnPtrWillBeRawPtr<ContentData> ContentData::create(const String& text)
+RawPtr<ContentData> ContentData::create(const String& text)
 {
-    return adoptPtrWillBeNoop(new TextContentData(text));
+    return new TextContentData(text);
 }
 
-PassOwnPtrWillBeRawPtr<ContentData> ContentData::create(PassOwnPtr<CounterContent> counter)
+RawPtr<ContentData> ContentData::create(PassOwnPtr<CounterContent> counter)
 {
-    return adoptPtrWillBeNoop(new CounterContentData(counter));
+    return new CounterContentData(counter);
 }
 
-PassOwnPtrWillBeRawPtr<ContentData> ContentData::create(QuoteType quote)
+RawPtr<ContentData> ContentData::create(QuoteType quote)
 {
-    return adoptPtrWillBeNoop(new QuoteContentData(quote));
+    return new QuoteContentData(quote);
 }
 
-PassOwnPtrWillBeRawPtr<ContentData> ContentData::clone() const
+RawPtr<ContentData> ContentData::clone() const
 {
-    OwnPtrWillBeRawPtr<ContentData> result = cloneInternal();
+    RawPtr<ContentData> result = cloneInternal();
 
     ContentData* lastNewData = result.get();
     for (const ContentData* contentData = next(); contentData; contentData = contentData->next()) {
-        OwnPtrWillBeRawPtr<ContentData> newData = contentData->cloneInternal();
+        RawPtr<ContentData> newData = contentData->cloneInternal();
         lastNewData->setNext(newData.release());
         lastNewData = lastNewData->next();
     }
diff --git a/third_party/WebKit/Source/core/style/ContentData.h b/third_party/WebKit/Source/core/style/ContentData.h
index 1947050..71c0b6d 100644
--- a/third_party/WebKit/Source/core/style/ContentData.h
+++ b/third_party/WebKit/Source/core/style/ContentData.h
@@ -36,13 +36,12 @@
 class LayoutObject;
 class ComputedStyle;
 
-class ContentData : public NoBaseWillBeGarbageCollectedFinalized<ContentData> {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(ContentData);
+class ContentData : public GarbageCollectedFinalized<ContentData> {
 public:
-    static PassOwnPtrWillBeRawPtr<ContentData> create(PassRefPtrWillBeRawPtr<StyleImage>);
-    static PassOwnPtrWillBeRawPtr<ContentData> create(const String&);
-    static PassOwnPtrWillBeRawPtr<ContentData> create(PassOwnPtr<CounterContent>);
-    static PassOwnPtrWillBeRawPtr<ContentData> create(QuoteType);
+    static RawPtr<ContentData> create(RawPtr<StyleImage>);
+    static RawPtr<ContentData> create(const String&);
+    static RawPtr<ContentData> create(PassOwnPtr<CounterContent>);
+    static RawPtr<ContentData> create(QuoteType);
 
     virtual ~ContentData() { }
 
@@ -53,19 +52,19 @@
 
     virtual LayoutObject* createLayoutObject(Document&, ComputedStyle&) const = 0;
 
-    virtual PassOwnPtrWillBeRawPtr<ContentData> clone() const;
+    virtual RawPtr<ContentData> clone() const;
 
     ContentData* next() const { return m_next.get(); }
-    void setNext(PassOwnPtrWillBeRawPtr<ContentData> next) { m_next = next; }
+    void setNext(RawPtr<ContentData> next) { m_next = next; }
 
     virtual bool equals(const ContentData&) const = 0;
 
     DECLARE_VIRTUAL_TRACE();
 
 private:
-    virtual PassOwnPtrWillBeRawPtr<ContentData> cloneInternal() const = 0;
+    virtual RawPtr<ContentData> cloneInternal() const = 0;
 
-    OwnPtrWillBeMember<ContentData> m_next;
+    Member<ContentData> m_next;
 };
 
 #define DEFINE_CONTENT_DATA_TYPE_CASTS(typeName) \
@@ -76,7 +75,7 @@
 public:
     const StyleImage* image() const { return m_image.get(); }
     StyleImage* image() { return m_image.get(); }
-    void setImage(PassRefPtrWillBeRawPtr<StyleImage> image) { ASSERT(image); m_image = image; }
+    void setImage(RawPtr<StyleImage> image) { ASSERT(image); m_image = image; }
 
     bool isImage() const override { return true; }
     LayoutObject* createLayoutObject(Document&, ComputedStyle&) const override;
@@ -91,19 +90,19 @@
     DECLARE_VIRTUAL_TRACE();
 
 private:
-    ImageContentData(PassRefPtrWillBeRawPtr<StyleImage> image)
+    ImageContentData(RawPtr<StyleImage> image)
         : m_image(image)
     {
         ASSERT(m_image);
     }
 
-    PassOwnPtrWillBeRawPtr<ContentData> cloneInternal() const override
+    RawPtr<ContentData> cloneInternal() const override
     {
-        RefPtrWillBeRawPtr<StyleImage> image = const_cast<StyleImage*>(this->image());
+        RawPtr<StyleImage> image = const_cast<StyleImage*>(this->image());
         return create(image.release());
     }
 
-    RefPtrWillBeMember<StyleImage> m_image;
+    Member<StyleImage> m_image;
 };
 
 DEFINE_CONTENT_DATA_TYPE_CASTS(Image);
@@ -130,7 +129,7 @@
     {
     }
 
-    PassOwnPtrWillBeRawPtr<ContentData> cloneInternal() const override { return create(text()); }
+    RawPtr<ContentData> cloneInternal() const override { return create(text()); }
 
     String m_text;
 };
@@ -152,7 +151,7 @@
     {
     }
 
-    PassOwnPtrWillBeRawPtr<ContentData> cloneInternal() const override
+    RawPtr<ContentData> cloneInternal() const override
     {
         OwnPtr<CounterContent> counterData = adoptPtr(new CounterContent(*counter()));
         return create(counterData.release());
@@ -192,7 +191,7 @@
     {
     }
 
-    PassOwnPtrWillBeRawPtr<ContentData> cloneInternal() const override { return create(quote()); }
+    RawPtr<ContentData> cloneInternal() const override { return create(quote()); }
 
     QuoteType m_quote;
 };
diff --git a/third_party/WebKit/Source/core/style/CursorData.h b/third_party/WebKit/Source/core/style/CursorData.h
index d72fa6d..b727789 100644
--- a/third_party/WebKit/Source/core/style/CursorData.h
+++ b/third_party/WebKit/Source/core/style/CursorData.h
@@ -33,7 +33,7 @@
 class CursorData {
     DISALLOW_NEW_EXCEPT_PLACEMENT_NEW();
 public:
-    CursorData(PassRefPtrWillBeRawPtr<StyleImage> image, bool hotSpotSpecified, const IntPoint& hotSpot)
+    CursorData(RawPtr<StyleImage> image, bool hotSpotSpecified, const IntPoint& hotSpot)
         : m_image(image)
         , m_hotSpotSpecified(hotSpotSpecified)
         , m_hotSpot(hotSpot)
@@ -51,7 +51,7 @@
     }
 
     StyleImage* image() const { return m_image.get(); }
-    void setImage(PassRefPtrWillBeRawPtr<StyleImage> image) { m_image = image; }
+    void setImage(RawPtr<StyleImage> image) { m_image = image; }
 
     bool hotSpotSpecified() const { return m_hotSpotSpecified; }
 
@@ -64,7 +64,7 @@
     }
 
 private:
-    RefPtrWillBeMember<StyleImage> m_image;
+    Member<StyleImage> m_image;
     bool m_hotSpotSpecified;
     IntPoint m_hotSpot; // for CSS3 support
 };
diff --git a/third_party/WebKit/Source/core/style/FillLayer.cpp b/third_party/WebKit/Source/core/style/FillLayer.cpp
index 6471700..a2f0166 100644
--- a/third_party/WebKit/Source/core/style/FillLayer.cpp
+++ b/third_party/WebKit/Source/core/style/FillLayer.cpp
@@ -29,7 +29,7 @@
 struct SameSizeAsFillLayer {
     FillLayer* m_next;
 
-    RefPtrWillBePersistent<StyleImage> m_image;
+    Persistent<StyleImage> m_image;
 
     Length m_xPosition;
     Length m_yPosition;
diff --git a/third_party/WebKit/Source/core/style/FillLayer.h b/third_party/WebKit/Source/core/style/FillLayer.h
index 9948137d..f58bd11 100644
--- a/third_party/WebKit/Source/core/style/FillLayer.h
+++ b/third_party/WebKit/Source/core/style/FillLayer.h
@@ -110,7 +110,7 @@
     bool isSizeSet() const { return m_sizeType != SizeNone; }
     bool isMaskSourceTypeSet() const { return m_maskSourceTypeSet; }
 
-    void setImage(PassRefPtrWillBeRawPtr<StyleImage> i) { m_image = i; m_imageSet = true; }
+    void setImage(RawPtr<StyleImage> i) { m_image = i; m_imageSet = true; }
     void setXPosition(const Length& position) { m_xPosition = position; m_xPosSet = true; m_backgroundXOriginSet = false; m_backgroundXOrigin = LeftEdge; }
     void setYPosition(const Length& position) { m_yPosition = position; m_yPosSet = true; m_backgroundYOriginSet = false; m_backgroundYOrigin = TopEdge; }
     void setBackgroundXOrigin(BackgroundEdgeOrigin origin) { m_backgroundXOrigin = origin; m_backgroundXOriginSet = true; }
@@ -216,7 +216,7 @@
 
     FillLayer* m_next;
 
-    RefPtrWillBePersistent<StyleImage> m_image;
+    Persistent<StyleImage> m_image;
 
     Length m_xPosition;
     Length m_yPosition;
diff --git a/third_party/WebKit/Source/core/style/NinePieceImage.cpp b/third_party/WebKit/Source/core/style/NinePieceImage.cpp
index 3d3d2102..a293fa4 100644
--- a/third_party/WebKit/Source/core/style/NinePieceImage.cpp
+++ b/third_party/WebKit/Source/core/style/NinePieceImage.cpp
@@ -40,7 +40,7 @@
 {
 }
 
-NinePieceImage::NinePieceImage(PassRefPtrWillBeRawPtr<StyleImage> image, LengthBox imageSlices, bool fill, const BorderImageLengthBox& borderSlices, const BorderImageLengthBox& outset, ENinePieceImageRule horizontalRule, ENinePieceImageRule verticalRule)
+NinePieceImage::NinePieceImage(RawPtr<StyleImage> image, LengthBox imageSlices, bool fill, const BorderImageLengthBox& borderSlices, const BorderImageLengthBox& outset, ENinePieceImageRule horizontalRule, ENinePieceImageRule verticalRule)
 {
     m_data.init();
     m_data.access()->image = image;
diff --git a/third_party/WebKit/Source/core/style/NinePieceImage.h b/third_party/WebKit/Source/core/style/NinePieceImage.h
index fc37d37e..42023a9 100644
--- a/third_party/WebKit/Source/core/style/NinePieceImage.h
+++ b/third_party/WebKit/Source/core/style/NinePieceImage.h
@@ -49,7 +49,7 @@
     unsigned fill : 1;
     unsigned horizontalRule : 2; // ENinePieceImageRule
     unsigned verticalRule : 2; // ENinePieceImageRule
-    RefPtrWillBePersistent<StyleImage> image;
+    Persistent<StyleImage> image;
     LengthBox imageSlices;
     BorderImageLengthBox borderSlices;
     BorderImageLengthBox outset;
@@ -63,7 +63,7 @@
     DISALLOW_NEW();
 public:
     NinePieceImage();
-    NinePieceImage(PassRefPtrWillBeRawPtr<StyleImage>, LengthBox imageSlices, bool fill, const BorderImageLengthBox& borderSlices,
+    NinePieceImage(RawPtr<StyleImage>, LengthBox imageSlices, bool fill, const BorderImageLengthBox& borderSlices,
         const BorderImageLengthBox& outset, ENinePieceImageRule horizontalRule, ENinePieceImageRule verticalRule);
 
     bool operator==(const NinePieceImage& other) const { return m_data == other.m_data; }
@@ -71,7 +71,7 @@
 
     bool hasImage() const { return m_data->image; }
     StyleImage* image() const { return m_data->image.get(); }
-    void setImage(PassRefPtrWillBeRawPtr<StyleImage> image) { m_data.access()->image = image; }
+    void setImage(RawPtr<StyleImage> image) { m_data.access()->image = image; }
 
     const LengthBox& imageSlices() const { return m_data->imageSlices; }
     void setImageSlices(const LengthBox& slices) { m_data.access()->imageSlices = slices; }
diff --git a/third_party/WebKit/Source/core/style/ShapeValue.h b/third_party/WebKit/Source/core/style/ShapeValue.h
index a55abaa..fde0b4e 100644
--- a/third_party/WebKit/Source/core/style/ShapeValue.h
+++ b/third_party/WebKit/Source/core/style/ShapeValue.h
@@ -39,7 +39,7 @@
 
 namespace blink {
 
-class ShapeValue final : public RefCountedWillBeGarbageCollectedFinalized<ShapeValue> {
+class ShapeValue final : public GarbageCollectedFinalized<ShapeValue> {
 public:
     enum ShapeValueType {
         // The Auto value is defined by a null ShapeValue*
@@ -48,19 +48,19 @@
         Image
     };
 
-    static PassRefPtrWillBeRawPtr<ShapeValue> createShapeValue(PassRefPtr<BasicShape> shape, CSSBoxType cssBox)
+    static RawPtr<ShapeValue> createShapeValue(PassRefPtr<BasicShape> shape, CSSBoxType cssBox)
     {
-        return adoptRefWillBeNoop(new ShapeValue(shape, cssBox));
+        return new ShapeValue(shape, cssBox);
     }
 
-    static PassRefPtrWillBeRawPtr<ShapeValue> createBoxShapeValue(CSSBoxType cssBox)
+    static RawPtr<ShapeValue> createBoxShapeValue(CSSBoxType cssBox)
     {
-        return adoptRefWillBeNoop(new ShapeValue(cssBox));
+        return new ShapeValue(cssBox);
     }
 
-    static PassRefPtrWillBeRawPtr<ShapeValue> createImageValue(PassRefPtrWillBeRawPtr<StyleImage> image)
+    static RawPtr<ShapeValue> createImageValue(RawPtr<StyleImage> image)
     {
-        return adoptRefWillBeNoop(new ShapeValue(image));
+        return new ShapeValue(image);
     }
 
     ShapeValueType type() const { return m_type; }
@@ -75,7 +75,7 @@
             return image()->cachedImage() && image()->cachedImage()->hasImage();
         return image()->isGeneratedImage();
     }
-    void setImage(PassRefPtrWillBeRawPtr<StyleImage> image)
+    void setImage(RawPtr<StyleImage> image)
     {
         ASSERT(type() == Image);
         if (m_image != image)
@@ -102,7 +102,7 @@
         , m_cssBox(BoxMissing)
     {
     }
-    ShapeValue(PassRefPtrWillBeRawPtr<StyleImage> image)
+    ShapeValue(RawPtr<StyleImage> image)
         : m_type(Image)
         , m_image(image)
         , m_cssBox(ContentBox)
@@ -117,7 +117,7 @@
 
     ShapeValueType m_type;
     RefPtr<BasicShape> m_shape;
-    RefPtrWillBeMember<StyleImage> m_image;
+    Member<StyleImage> m_image;
     CSSBoxType m_cssBox;
 };
 
diff --git a/third_party/WebKit/Source/core/style/StyleFetchedImage.cpp b/third_party/WebKit/Source/core/style/StyleFetchedImage.cpp
index 853b8993..d5fc293 100644
--- a/third_party/WebKit/Source/core/style/StyleFetchedImage.cpp
+++ b/third_party/WebKit/Source/core/style/StyleFetchedImage.cpp
@@ -66,12 +66,12 @@
     return m_image.get();
 }
 
-PassRefPtrWillBeRawPtr<CSSValue> StyleFetchedImage::cssValue() const
+RawPtr<CSSValue> StyleFetchedImage::cssValue() const
 {
     return CSSImageValue::create(m_image->url(), const_cast<StyleFetchedImage*>(this));
 }
 
-PassRefPtrWillBeRawPtr<CSSValue> StyleFetchedImage::computedCSSValue() const
+RawPtr<CSSValue> StyleFetchedImage::computedCSSValue() const
 {
     return cssValue();
 }
diff --git a/third_party/WebKit/Source/core/style/StyleFetchedImage.h b/third_party/WebKit/Source/core/style/StyleFetchedImage.h
index 5bda6574..ddca8a3d 100644
--- a/third_party/WebKit/Source/core/style/StyleFetchedImage.h
+++ b/third_party/WebKit/Source/core/style/StyleFetchedImage.h
@@ -33,19 +33,18 @@
 class ImageResource;
 
 class StyleFetchedImage final : public StyleImage, private ResourceClient {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(StyleFetchedImage);
-    WILL_BE_USING_PRE_FINALIZER(StyleFetchedImage, dispose);
+    USING_PRE_FINALIZER(StyleFetchedImage, dispose);
 public:
-    static PassRefPtrWillBeRawPtr<StyleFetchedImage> create(ImageResource* image, Document* document, const KURL& url)
+    static RawPtr<StyleFetchedImage> create(ImageResource* image, Document* document, const KURL& url)
     {
-        return adoptRefWillBeNoop(new StyleFetchedImage(image, document, url));
+        return new StyleFetchedImage(image, document, url);
     }
     ~StyleFetchedImage() override;
 
     WrappedImagePtr data() const override;
 
-    PassRefPtrWillBeRawPtr<CSSValue> cssValue() const override;
-    PassRefPtrWillBeRawPtr<CSSValue> computedCSSValue() const override;
+    RawPtr<CSSValue> cssValue() const override;
+    RawPtr<CSSValue> computedCSSValue() const override;
 
     bool canRender() const override;
     bool isLoaded() const override;
@@ -68,8 +67,8 @@
 
     void dispose();
 
-    RefPtrWillBeMember<ImageResource> m_image;
-    RawPtrWillBeMember<Document> m_document;
+    Member<ImageResource> m_image;
+    Member<Document> m_document;
     const KURL m_url;
 };
 
diff --git a/third_party/WebKit/Source/core/style/StyleFetchedImageSet.cpp b/third_party/WebKit/Source/core/style/StyleFetchedImageSet.cpp
index 18158dd..9328673 100644
--- a/third_party/WebKit/Source/core/style/StyleFetchedImageSet.cpp
+++ b/third_party/WebKit/Source/core/style/StyleFetchedImageSet.cpp
@@ -68,12 +68,12 @@
     return m_bestFitImage.get();
 }
 
-PassRefPtrWillBeRawPtr<CSSValue> StyleFetchedImageSet::cssValue() const
+RawPtr<CSSValue> StyleFetchedImageSet::cssValue() const
 {
     return m_imageSetValue;
 }
 
-PassRefPtrWillBeRawPtr<CSSValue> StyleFetchedImageSet::computedCSSValue() const
+RawPtr<CSSValue> StyleFetchedImageSet::computedCSSValue() const
 {
     return m_imageSetValue->valueWithURLsMadeAbsolute();
 }
diff --git a/third_party/WebKit/Source/core/style/StyleFetchedImageSet.h b/third_party/WebKit/Source/core/style/StyleFetchedImageSet.h
index f45652eb..37dfe5d 100644
--- a/third_party/WebKit/Source/core/style/StyleFetchedImageSet.h
+++ b/third_party/WebKit/Source/core/style/StyleFetchedImageSet.h
@@ -38,17 +38,16 @@
 // This class keeps one cached image and has access to a set of alternatives.
 
 class StyleFetchedImageSet final : public StyleImage, private ResourceClient {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(StyleFetchedImageSet);
-    WILL_BE_USING_PRE_FINALIZER(StyleFetchedImageSet, dispose);
+    USING_PRE_FINALIZER(StyleFetchedImageSet, dispose);
 public:
-    static PassRefPtrWillBeRawPtr<StyleFetchedImageSet> create(ImageResource* image, float imageScaleFactor, CSSImageSetValue* value, const KURL& url)
+    static RawPtr<StyleFetchedImageSet> create(ImageResource* image, float imageScaleFactor, CSSImageSetValue* value, const KURL& url)
     {
-        return adoptRefWillBeNoop(new StyleFetchedImageSet(image, imageScaleFactor, value, url));
+        return new StyleFetchedImageSet(image, imageScaleFactor, value, url);
     }
     ~StyleFetchedImageSet() override;
 
-    PassRefPtrWillBeRawPtr<CSSValue> cssValue() const override;
-    PassRefPtrWillBeRawPtr<CSSValue> computedCSSValue() const override;
+    RawPtr<CSSValue> cssValue() const override;
+    RawPtr<CSSValue> computedCSSValue() const override;
 
     // FIXME: This is used by StyleImage for equals comparison, but this implementation
     // only looks at the image from the set that we have loaded. I'm not sure if that is
@@ -81,10 +80,10 @@
 
     String debugName() const override { return "StyleFetchedImageSet"; }
 
-    RefPtrWillBeMember<ImageResource> m_bestFitImage;
+    Member<ImageResource> m_bestFitImage;
     float m_imageScaleFactor;
 
-    RawPtrWillBeMember<CSSImageSetValue> m_imageSetValue; // Not retained; it owns us.
+    Member<CSSImageSetValue> m_imageSetValue; // Not retained; it owns us.
     const KURL m_url;
 };
 
diff --git a/third_party/WebKit/Source/core/style/StyleFilterData.h b/third_party/WebKit/Source/core/style/StyleFilterData.h
index 0e7a7152..d984c6fe 100644
--- a/third_party/WebKit/Source/core/style/StyleFilterData.h
+++ b/third_party/WebKit/Source/core/style/StyleFilterData.h
@@ -36,16 +36,16 @@
 // FIXME: Oilpan: resorting to RefCountedGarbageCollected<> here so as to support
 // DataRef<StyleFilterData> uses. Once/if DataRef<> is able to move away from
 // relying on RefPtr<>, switch to GarbageCollected<>.
-class StyleFilterData final : public RefCountedWillBeRefCountedGarbageCollected<StyleFilterData> {
+class StyleFilterData final : public RefCountedGarbageCollected<StyleFilterData> {
 public:
-    static PassRefPtrWillBeRawPtr<StyleFilterData> create()
+    static RawPtr<StyleFilterData> create()
     {
         return adoptRefWillBeNoop(new StyleFilterData);
     }
 
-    PassRefPtrWillBeRawPtr<StyleFilterData> copy() const
+    RawPtr<StyleFilterData> copy() const
     {
-        return adoptRefWillBeNoop(new StyleFilterData(*this));
+        return new StyleFilterData(*this);
     }
 
     bool operator==(const StyleFilterData&) const;
diff --git a/third_party/WebKit/Source/core/style/StyleGeneratedImage.cpp b/third_party/WebKit/Source/core/style/StyleGeneratedImage.cpp
index 7e2b768a..df17c7e3 100644
--- a/third_party/WebKit/Source/core/style/StyleGeneratedImage.cpp
+++ b/third_party/WebKit/Source/core/style/StyleGeneratedImage.cpp
@@ -36,12 +36,12 @@
     m_isGeneratedImage = true;
 }
 
-PassRefPtrWillBeRawPtr<CSSValue> StyleGeneratedImage::cssValue() const
+RawPtr<CSSValue> StyleGeneratedImage::cssValue() const
 {
     return m_imageGeneratorValue.get();
 }
 
-PassRefPtrWillBeRawPtr<CSSValue> StyleGeneratedImage::computedCSSValue() const
+RawPtr<CSSValue> StyleGeneratedImage::computedCSSValue() const
 {
     return m_imageGeneratorValue->valueWithURLsMadeAbsolute();
 }
diff --git a/third_party/WebKit/Source/core/style/StyleGeneratedImage.h b/third_party/WebKit/Source/core/style/StyleGeneratedImage.h
index 4f7fc16..3c8ceee 100644
--- a/third_party/WebKit/Source/core/style/StyleGeneratedImage.h
+++ b/third_party/WebKit/Source/core/style/StyleGeneratedImage.h
@@ -34,15 +34,15 @@
 
 class CORE_EXPORT StyleGeneratedImage final : public StyleImage {
 public:
-    static PassRefPtrWillBeRawPtr<StyleGeneratedImage> create(const CSSImageGeneratorValue& value)
+    static RawPtr<StyleGeneratedImage> create(const CSSImageGeneratorValue& value)
     {
-        return adoptRefWillBeNoop(new StyleGeneratedImage(value));
+        return new StyleGeneratedImage(value);
     }
 
     WrappedImagePtr data() const override { return m_imageGeneratorValue.get(); }
 
-    PassRefPtrWillBeRawPtr<CSSValue> cssValue() const override;
-    PassRefPtrWillBeRawPtr<CSSValue> computedCSSValue() const override;
+    RawPtr<CSSValue> cssValue() const override;
+    RawPtr<CSSValue> computedCSSValue() const override;
 
     LayoutSize imageSize(const LayoutObject&, float multiplier, const LayoutSize& defaultObjectSize) const override;
     bool imageHasRelativeSize() const override { return !m_fixedSize; }
@@ -57,9 +57,9 @@
 private:
     StyleGeneratedImage(const CSSImageGeneratorValue&);
 
-    // TODO(sashab): Replace this with <const CSSImageGeneratorValue> once RefPtrWillBeMember<>
+    // TODO(sashab): Replace this with <const CSSImageGeneratorValue> once Member<>
     // supports const types.
-    RefPtrWillBeMember<CSSImageGeneratorValue> m_imageGeneratorValue;
+    Member<CSSImageGeneratorValue> m_imageGeneratorValue;
     const bool m_fixedSize;
 };
 
diff --git a/third_party/WebKit/Source/core/style/StyleImage.h b/third_party/WebKit/Source/core/style/StyleImage.h
index 7e3192a..3ca01b0 100644
--- a/third_party/WebKit/Source/core/style/StyleImage.h
+++ b/third_party/WebKit/Source/core/style/StyleImage.h
@@ -42,7 +42,7 @@
 
 typedef void* WrappedImagePtr;
 
-class CORE_EXPORT StyleImage : public RefCountedWillBeGarbageCollectedFinalized<StyleImage> {
+class CORE_EXPORT StyleImage : public GarbageCollectedFinalized<StyleImage> {
 public:
     virtual ~StyleImage() { }
 
@@ -51,8 +51,8 @@
         return data() == other.data();
     }
 
-    virtual PassRefPtrWillBeRawPtr<CSSValue> cssValue() const = 0;
-    virtual PassRefPtrWillBeRawPtr<CSSValue> computedCSSValue() const = 0;
+    virtual RawPtr<CSSValue> cssValue() const = 0;
+    virtual RawPtr<CSSValue> computedCSSValue() const = 0;
 
     virtual bool canRender() const { return true; }
     virtual bool isLoaded() const { return true; }
@@ -103,7 +103,7 @@
 
 #define DEFINE_STYLE_IMAGE_TYPE_CASTS(thisType, function) \
     DEFINE_TYPE_CASTS(thisType, StyleImage, styleImage, styleImage->function, styleImage.function); \
-    inline thisType* to##thisType(const RefPtrWillBeMember<StyleImage>& styleImage) { return to##thisType(styleImage.get()); } \
+    inline thisType* to##thisType(const Member<StyleImage>& styleImage) { return to##thisType(styleImage.get()); } \
     typedef int NeedsSemiColonAfterDefineStyleImageTypeCasts
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/style/StyleInvalidImage.h b/third_party/WebKit/Source/core/style/StyleInvalidImage.h
index 0040885..c2854cf 100644
--- a/third_party/WebKit/Source/core/style/StyleInvalidImage.h
+++ b/third_party/WebKit/Source/core/style/StyleInvalidImage.h
@@ -12,16 +12,16 @@
 
 class StyleInvalidImage final : public StyleImage {
 public:
-    static PassRefPtrWillBeRawPtr<StyleInvalidImage> create(const String& url)
+    static RawPtr<StyleInvalidImage> create(const String& url)
     {
-        return adoptRefWillBeNoop(new StyleInvalidImage(url));
+        return new StyleInvalidImage(url);
     }
 
     WrappedImagePtr data() const override { return m_url.impl(); }
 
-    PassRefPtrWillBeRawPtr<CSSValue> cssValue() const override { return CSSImageValue::create(AtomicString(m_url)); }
+    RawPtr<CSSValue> cssValue() const override { return CSSImageValue::create(AtomicString(m_url)); }
 
-    PassRefPtrWillBeRawPtr<CSSValue> computedCSSValue() const override { return cssValue(); }
+    RawPtr<CSSValue> computedCSSValue() const override { return cssValue(); }
 
     LayoutSize imageSize(const LayoutObject&, float /*multiplier*/, const LayoutSize& /*defaultObjectSize*/) const override { return LayoutSize(); }
     bool imageHasRelativeSize() const override { return false; }
diff --git a/third_party/WebKit/Source/core/style/StylePath.cpp b/third_party/WebKit/Source/core/style/StylePath.cpp
index f70cc021..e7d9361 100644
--- a/third_party/WebKit/Source/core/style/StylePath.cpp
+++ b/third_party/WebKit/Source/core/style/StylePath.cpp
@@ -54,7 +54,7 @@
     return path().isClosed();
 }
 
-PassRefPtrWillBeRawPtr<CSSValue> StylePath::computedCSSValue() const
+RawPtr<CSSValue> StylePath::computedCSSValue() const
 {
     return CSSPathValue::create(const_cast<StylePath*>(this));
 }
diff --git a/third_party/WebKit/Source/core/style/StylePath.h b/third_party/WebKit/Source/core/style/StylePath.h
index c321851..fe61851 100644
--- a/third_party/WebKit/Source/core/style/StylePath.h
+++ b/third_party/WebKit/Source/core/style/StylePath.h
@@ -30,7 +30,7 @@
 
     const SVGPathByteStream& byteStream() const { return *m_byteStream; }
 
-    PassRefPtrWillBeRawPtr<CSSValue> computedCSSValue() const;
+    RawPtr<CSSValue> computedCSSValue() const;
 
     bool operator==(const StylePath&) const;
 
diff --git a/third_party/WebKit/Source/core/style/StylePendingImage.h b/third_party/WebKit/Source/core/style/StylePendingImage.h
index 0cee9db..0412f63 100644
--- a/third_party/WebKit/Source/core/style/StylePendingImage.h
+++ b/third_party/WebKit/Source/core/style/StylePendingImage.h
@@ -41,16 +41,16 @@
 
 class StylePendingImage final : public StyleImage {
 public:
-    static PassRefPtrWillBeRawPtr<StylePendingImage> create(const CSSValue& value)
+    static RawPtr<StylePendingImage> create(const CSSValue& value)
     {
-        return adoptRefWillBeNoop(new StylePendingImage(value));
+        return new StylePendingImage(value);
     }
 
     WrappedImagePtr data() const override { return m_value.get(); }
 
-    PassRefPtrWillBeRawPtr<CSSValue> cssValue() const override { return m_value; }
+    RawPtr<CSSValue> cssValue() const override { return m_value; }
 
-    PassRefPtrWillBeRawPtr<CSSValue> computedCSSValue() const override
+    RawPtr<CSSValue> computedCSSValue() const override
     {
         ASSERT_NOT_REACHED();
         return nullptr;
@@ -86,9 +86,9 @@
         m_isPendingImage = true;
     }
 
-    // TODO(sashab): Replace this with <const CSSValue> once RefPtrWillBeMember<>
+    // TODO(sashab): Replace this with <const CSSValue> once Member<>
     // supports const types.
-    RefPtrWillBeMember<CSSValue> m_value;
+    Member<CSSValue> m_value;
 };
 
 DEFINE_STYLE_IMAGE_TYPE_CASTS(StylePendingImage, isPendingImage());
diff --git a/third_party/WebKit/Source/core/style/StyleRareInheritedData.h b/third_party/WebKit/Source/core/style/StyleRareInheritedData.h
index feacd71d..fa85c33 100644
--- a/third_party/WebKit/Source/core/style/StyleRareInheritedData.h
+++ b/third_party/WebKit/Source/core/style/StyleRareInheritedData.h
@@ -70,7 +70,7 @@
     bool shadowDataEquivalent(const StyleRareInheritedData&) const;
     bool quotesDataEquivalent(const StyleRareInheritedData&) const;
 
-    RefPtrWillBePersistent<StyleImage> listStyleImage;
+    Persistent<StyleImage> listStyleImage;
 
     StyleColor textStrokeColor() const { return m_textStrokeColorIsCurrentColor ? StyleColor::currentColor() : StyleColor(m_textStrokeColor); }
     StyleColor textFillColor() const { return m_textFillColorIsCurrentColor ? StyleColor::currentColor() : StyleColor(m_textFillColor); }
@@ -98,7 +98,7 @@
     RefPtr<ShadowList> textShadow; // Our text shadow information for shadowed text drawing.
     AtomicString highlight; // Apple-specific extension for custom highlight rendering.
 
-    RefPtrWillBePersistent<CursorList> cursorData;
+    Persistent<CursorList> cursorData;
 
     Length indent;
     float m_effectiveZoom;
diff --git a/third_party/WebKit/Source/core/style/StyleRareNonInheritedData.h b/third_party/WebKit/Source/core/style/StyleRareNonInheritedData.h
index 64b6d65..daba95c 100644
--- a/third_party/WebKit/Source/core/style/StyleRareNonInheritedData.h
+++ b/third_party/WebKit/Source/core/style/StyleRareNonInheritedData.h
@@ -122,7 +122,7 @@
     DataRef<StyleGridItemData> m_gridItem;
     DataRef<StyleScrollSnapData> m_scrollSnap;
 
-    OwnPtrWillBePersistent<ContentData> m_content;
+    Persistent<ContentData> m_content;
     OwnPtr<CounterDirectiveMap> m_counterDirectives;
     OwnPtr<CSSAnimationData> m_animations;
     OwnPtr<CSSTransitionData> m_transitions;
@@ -131,7 +131,7 @@
 
     RefPtr<StyleReflection> m_boxReflect;
 
-    RefPtrWillBePersistent<ShapeValue> m_shapeOutside;
+    Persistent<ShapeValue> m_shapeOutside;
     RefPtr<ClipPathOperation> m_clipPath;
 
     FillLayer m_mask;
diff --git a/third_party/WebKit/Source/core/svg/LinearGradientAttributes.h b/third_party/WebKit/Source/core/svg/LinearGradientAttributes.h
index 7b6f0a47..5ca6a42 100644
--- a/third_party/WebKit/Source/core/svg/LinearGradientAttributes.h
+++ b/third_party/WebKit/Source/core/svg/LinearGradientAttributes.h
@@ -47,10 +47,10 @@
     SVGLength* x2() const { return m_x2.get(); }
     SVGLength* y2() const { return m_y2.get(); }
 
-    void setX1(PassRefPtrWillBeRawPtr<SVGLength> value) { m_x1 = value; m_x1Set = true; }
-    void setY1(PassRefPtrWillBeRawPtr<SVGLength> value) { m_y1 = value; m_y1Set = true; }
-    void setX2(PassRefPtrWillBeRawPtr<SVGLength> value) { m_x2 = value; m_x2Set = true; }
-    void setY2(PassRefPtrWillBeRawPtr<SVGLength> value) { m_y2 = value; m_y2Set = true; }
+    void setX1(RawPtr<SVGLength> value) { m_x1 = value; m_x1Set = true; }
+    void setY1(RawPtr<SVGLength> value) { m_y1 = value; m_y1Set = true; }
+    void setX2(RawPtr<SVGLength> value) { m_x2 = value; m_x2Set = true; }
+    void setY2(RawPtr<SVGLength> value) { m_y2 = value; m_y2Set = true; }
 
     bool hasX1() const { return m_x1Set; }
     bool hasY1() const { return m_y1Set; }
@@ -67,10 +67,10 @@
 
 private:
     // Properties
-    RefPtrWillBeMember<SVGLength> m_x1;
-    RefPtrWillBeMember<SVGLength> m_y1;
-    RefPtrWillBeMember<SVGLength> m_x2;
-    RefPtrWillBeMember<SVGLength> m_y2;
+    Member<SVGLength> m_x1;
+    Member<SVGLength> m_y1;
+    Member<SVGLength> m_x2;
+    Member<SVGLength> m_y2;
 
     // Property states
     bool m_x1Set : 1;
diff --git a/third_party/WebKit/Source/core/svg/PatternAttributes.h b/third_party/WebKit/Source/core/svg/PatternAttributes.h
index fc91564..3512a7c 100644
--- a/third_party/WebKit/Source/core/svg/PatternAttributes.h
+++ b/third_party/WebKit/Source/core/svg/PatternAttributes.h
@@ -66,25 +66,25 @@
     AffineTransform patternTransform() const { return m_patternTransform; }
     const SVGPatternElement* patternContentElement() const { return m_patternContentElement; }
 
-    void setX(PassRefPtrWillBeRawPtr<SVGLength> value)
+    void setX(RawPtr<SVGLength> value)
     {
         m_x = value;
         m_xSet = true;
     }
 
-    void setY(PassRefPtrWillBeRawPtr<SVGLength> value)
+    void setY(RawPtr<SVGLength> value)
     {
         m_y = value;
         m_ySet = true;
     }
 
-    void setWidth(PassRefPtrWillBeRawPtr<SVGLength> value)
+    void setWidth(RawPtr<SVGLength> value)
     {
         m_width = value;
         m_widthSet = true;
     }
 
-    void setHeight(PassRefPtrWillBeRawPtr<SVGLength> value)
+    void setHeight(RawPtr<SVGLength> value)
     {
         m_height = value;
         m_heightSet = true;
@@ -96,7 +96,7 @@
         m_viewBoxSet = true;
     }
 
-    void setPreserveAspectRatio(PassRefPtrWillBeRawPtr<SVGPreserveAspectRatio> value)
+    void setPreserveAspectRatio(RawPtr<SVGPreserveAspectRatio> value)
     {
         m_preserveAspectRatio = value;
         m_preserveAspectRatioSet = true;
@@ -149,16 +149,16 @@
 
 private:
     // Properties
-    RefPtrWillBeMember<SVGLength> m_x;
-    RefPtrWillBeMember<SVGLength> m_y;
-    RefPtrWillBeMember<SVGLength> m_width;
-    RefPtrWillBeMember<SVGLength> m_height;
+    Member<SVGLength> m_x;
+    Member<SVGLength> m_y;
+    Member<SVGLength> m_width;
+    Member<SVGLength> m_height;
     FloatRect m_viewBox;
-    RefPtrWillBeMember<SVGPreserveAspectRatio> m_preserveAspectRatio;
+    Member<SVGPreserveAspectRatio> m_preserveAspectRatio;
     SVGUnitTypes::SVGUnitType m_patternUnits;
     SVGUnitTypes::SVGUnitType m_patternContentUnits;
     AffineTransform m_patternTransform;
-    RawPtrWillBeMember<const SVGPatternElement> m_patternContentElement;
+    Member<const SVGPatternElement> m_patternContentElement;
 
     // Property states
     bool m_xSet : 1;
diff --git a/third_party/WebKit/Source/core/svg/RadialGradientAttributes.h b/third_party/WebKit/Source/core/svg/RadialGradientAttributes.h
index 2c70442..191e535 100644
--- a/third_party/WebKit/Source/core/svg/RadialGradientAttributes.h
+++ b/third_party/WebKit/Source/core/svg/RadialGradientAttributes.h
@@ -53,12 +53,12 @@
     SVGLength* fy() const { return m_fy.get(); }
     SVGLength* fr() const { return m_fr.get(); }
 
-    void setCx(PassRefPtrWillBeRawPtr<SVGLength> value) { m_cx = value; m_cxSet = true; }
-    void setCy(PassRefPtrWillBeRawPtr<SVGLength> value) { m_cy = value; m_cySet = true; }
-    void setR(PassRefPtrWillBeRawPtr<SVGLength> value) { m_r = value; m_rSet = true; }
-    void setFx(PassRefPtrWillBeRawPtr<SVGLength> value) { m_fx = value; m_fxSet = true; }
-    void setFy(PassRefPtrWillBeRawPtr<SVGLength> value) { m_fy = value; m_fySet = true; }
-    void setFr(PassRefPtrWillBeRawPtr<SVGLength> value) { m_fr = value; m_frSet = true; }
+    void setCx(RawPtr<SVGLength> value) { m_cx = value; m_cxSet = true; }
+    void setCy(RawPtr<SVGLength> value) { m_cy = value; m_cySet = true; }
+    void setR(RawPtr<SVGLength> value) { m_r = value; m_rSet = true; }
+    void setFx(RawPtr<SVGLength> value) { m_fx = value; m_fxSet = true; }
+    void setFy(RawPtr<SVGLength> value) { m_fy = value; m_fySet = true; }
+    void setFr(RawPtr<SVGLength> value) { m_fr = value; m_frSet = true; }
 
     bool hasCx() const { return m_cxSet; }
     bool hasCy() const { return m_cySet; }
@@ -79,12 +79,12 @@
 
 private:
     // Properties
-    RefPtrWillBeMember<SVGLength> m_cx;
-    RefPtrWillBeMember<SVGLength> m_cy;
-    RefPtrWillBeMember<SVGLength> m_r;
-    RefPtrWillBeMember<SVGLength> m_fx;
-    RefPtrWillBeMember<SVGLength> m_fy;
-    RefPtrWillBeMember<SVGLength> m_fr;
+    Member<SVGLength> m_cx;
+    Member<SVGLength> m_cy;
+    Member<SVGLength> m_r;
+    Member<SVGLength> m_fx;
+    Member<SVGLength> m_fy;
+    Member<SVGLength> m_fr;
 
     // Property states
     bool m_cxSet : 1;
diff --git a/third_party/WebKit/Source/core/svg/SVGAElement.h b/third_party/WebKit/Source/core/svg/SVGAElement.h
index 15b0fe4..0dae653 100644
--- a/third_party/WebKit/Source/core/svg/SVGAElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGAElement.h
@@ -31,7 +31,7 @@
 
 class CORE_EXPORT SVGAElement final : public SVGGraphicsElement, public SVGURIReference {
     DEFINE_WRAPPERTYPEINFO();
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(SVGAElement);
+    USING_GARBAGE_COLLECTED_MIXIN(SVGAElement);
 public:
     DECLARE_NODE_FACTORY(SVGAElement);
     SVGAnimatedString* svgTarget() { return m_svgTarget.get(); }
@@ -63,7 +63,7 @@
 
     bool willRespondToMouseClickEvents() override;
 
-    RefPtrWillBeMember<SVGAnimatedString> m_svgTarget;
+    Member<SVGAnimatedString> m_svgTarget;
     bool m_wasFocusedByMouse;
 };
 
diff --git a/third_party/WebKit/Source/core/svg/SVGAngle.cpp b/third_party/WebKit/Source/core/svg/SVGAngle.cpp
index 9ed9554..157b63a 100644
--- a/third_party/WebKit/Source/core/svg/SVGAngle.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGAngle.cpp
@@ -66,19 +66,19 @@
     m_angle->orientTypeChanged();
 }
 
-void SVGMarkerOrientEnumeration::add(PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*)
+void SVGMarkerOrientEnumeration::add(RawPtr<SVGPropertyBase>, SVGElement*)
 {
     // SVGMarkerOrientEnumeration is only animated via SVGAngle
     ASSERT_NOT_REACHED();
 }
 
-void SVGMarkerOrientEnumeration::calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, PassRefPtrWillBeRawPtr<SVGPropertyBase> from, PassRefPtrWillBeRawPtr<SVGPropertyBase> to, PassRefPtrWillBeRawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement* contextElement)
+void SVGMarkerOrientEnumeration::calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> from, RawPtr<SVGPropertyBase> to, RawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement* contextElement)
 {
     // SVGMarkerOrientEnumeration is only animated via SVGAngle
     ASSERT_NOT_REACHED();
 }
 
-float SVGMarkerOrientEnumeration::calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase> to, SVGElement* contextElement)
+float SVGMarkerOrientEnumeration::calculateDistance(RawPtr<SVGPropertyBase> to, SVGElement* contextElement)
 {
     // SVGMarkerOrientEnumeration is only animated via SVGAngle
     ASSERT_NOT_REACHED();
@@ -110,9 +110,9 @@
     SVGPropertyHelper<SVGAngle>::trace(visitor);
 }
 
-PassRefPtrWillBeRawPtr<SVGAngle> SVGAngle::clone() const
+RawPtr<SVGAngle> SVGAngle::clone() const
 {
-    return adoptRefWillBeNoop(new SVGAngle(m_unitType, m_valueInSpecifiedUnits, m_orientType->enumValue()));
+    return new SVGAngle(m_unitType, m_valueInSpecifiedUnits, m_orientType->enumValue());
 }
 
 float SVGAngle::value() const
@@ -366,9 +366,9 @@
     m_orientType->setEnumValue(SVGMarkerOrientAngle);
 }
 
-void SVGAngle::add(PassRefPtrWillBeRawPtr<SVGPropertyBase> other, SVGElement*)
+void SVGAngle::add(RawPtr<SVGPropertyBase> other, SVGElement*)
 {
-    RefPtrWillBeRawPtr<SVGAngle> otherAngle = toSVGAngle(other);
+    RawPtr<SVGAngle> otherAngle = toSVGAngle(other);
 
     // Only respect by animations, if from and by are both specified in angles (and not eg. 'auto').
     if (orientType()->enumValue() != SVGMarkerOrientAngle || otherAngle->orientType()->enumValue() != SVGMarkerOrientAngle)
@@ -386,13 +386,13 @@
         m_orientType->setEnumValue(otherOrientType);
 }
 
-void SVGAngle::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, PassRefPtrWillBeRawPtr<SVGPropertyBase> from, PassRefPtrWillBeRawPtr<SVGPropertyBase> to, PassRefPtrWillBeRawPtr<SVGPropertyBase> toAtEndOfDuration, SVGElement*)
+void SVGAngle::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> from, RawPtr<SVGPropertyBase> to, RawPtr<SVGPropertyBase> toAtEndOfDuration, SVGElement*)
 {
     ASSERT(animationElement);
     bool isToAnimation = animationElement->getAnimationMode() == ToAnimation;
 
-    RefPtrWillBeRawPtr<SVGAngle> fromAngle = isToAnimation ? PassRefPtrWillBeRawPtr<SVGAngle>(this) : toSVGAngle(from);
-    RefPtrWillBeRawPtr<SVGAngle> toAngle = toSVGAngle(to);
+    RawPtr<SVGAngle> fromAngle = isToAnimation ? RawPtr<SVGAngle>(this) : toSVGAngle(from);
+    RawPtr<SVGAngle> toAngle = toSVGAngle(to);
     SVGMarkerOrientType fromOrientType = fromAngle->orientType()->enumValue();
     SVGMarkerOrientType toOrientType = toAngle->orientType()->enumValue();
 
@@ -413,7 +413,7 @@
     case SVGMarkerOrientAngle:
         {
             float animatedValue = value();
-            RefPtrWillBeRawPtr<SVGAngle> toAtEndOfDurationAngle = toSVGAngle(toAtEndOfDuration);
+            RawPtr<SVGAngle> toAtEndOfDurationAngle = toSVGAngle(toAtEndOfDuration);
 
             animationElement->animateAdditiveNumber(percentage, repeatCount, fromAngle->value(), toAngle->value(), toAtEndOfDurationAngle->value(), animatedValue);
             orientType()->setEnumValue(SVGMarkerOrientAngle);
@@ -429,7 +429,7 @@
     }
 }
 
-float SVGAngle::calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase> other, SVGElement*)
+float SVGAngle::calculateDistance(RawPtr<SVGPropertyBase> other, SVGElement*)
 {
     return fabsf(value() - toSVGAngle(other)->value());
 }
diff --git a/third_party/WebKit/Source/core/svg/SVGAngle.h b/third_party/WebKit/Source/core/svg/SVGAngle.h
index a915f85..f426af2a 100644
--- a/third_party/WebKit/Source/core/svg/SVGAngle.h
+++ b/third_party/WebKit/Source/core/svg/SVGAngle.h
@@ -43,16 +43,16 @@
 
 class SVGMarkerOrientEnumeration : public SVGEnumeration<SVGMarkerOrientType> {
 public:
-    static PassRefPtrWillBeRawPtr<SVGMarkerOrientEnumeration> create(SVGAngle* angle)
+    static RawPtr<SVGMarkerOrientEnumeration> create(SVGAngle* angle)
     {
-        return adoptRefWillBeNoop(new SVGMarkerOrientEnumeration(angle));
+        return new SVGMarkerOrientEnumeration(angle);
     }
 
     ~SVGMarkerOrientEnumeration() override;
 
-    void add(PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*) override;
-    void calculateAnimatedValue(SVGAnimationElement*, float, unsigned, PassRefPtrWillBeRawPtr<SVGPropertyBase>, PassRefPtrWillBeRawPtr<SVGPropertyBase>, PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*) override;
-    float calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*) override;
+    void add(RawPtr<SVGPropertyBase>, SVGElement*) override;
+    void calculateAnimatedValue(SVGAnimationElement*, float, unsigned, RawPtr<SVGPropertyBase>, RawPtr<SVGPropertyBase>, RawPtr<SVGPropertyBase>, SVGElement*) override;
+    float calculateDistance(RawPtr<SVGPropertyBase>, SVGElement*) override;
 
     DECLARE_VIRTUAL_TRACE();
 
@@ -61,7 +61,7 @@
 
     void notifyChange() override;
 
-    RawPtrWillBeMember<SVGAngle> m_angle;
+    Member<SVGAngle> m_angle;
 };
 
 class SVGAngle : public SVGPropertyHelper<SVGAngle> {
@@ -77,9 +77,9 @@
         SVG_ANGLETYPE_TURN = 5
     };
 
-    static PassRefPtrWillBeRawPtr<SVGAngle> create()
+    static RawPtr<SVGAngle> create()
     {
-        return adoptRefWillBeNoop(new SVGAngle());
+        return new SVGAngle();
     }
 
     ~SVGAngle() override;
@@ -101,14 +101,14 @@
 
     // SVGPropertyBase:
 
-    PassRefPtrWillBeRawPtr<SVGAngle> clone() const;
+    RawPtr<SVGAngle> clone() const;
 
     String valueAsString() const override;
     SVGParsingError setValueAsString(const String&);
 
-    void add(PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*) override;
-    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, PassRefPtrWillBeRawPtr<SVGPropertyBase> from, PassRefPtrWillBeRawPtr<SVGPropertyBase> to, PassRefPtrWillBeRawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement* contextElement) override;
-    float calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase> to, SVGElement* contextElement) override;
+    void add(RawPtr<SVGPropertyBase>, SVGElement*) override;
+    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> from, RawPtr<SVGPropertyBase> to, RawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement* contextElement) override;
+    float calculateDistance(RawPtr<SVGPropertyBase> to, SVGElement* contextElement) override;
 
     static AnimatedPropertyType classType() { return AnimatedAngle; }
 
@@ -122,7 +122,7 @@
 
     SVGAngleType m_unitType;
     float m_valueInSpecifiedUnits;
-    RefPtrWillBeMember<SVGMarkerOrientEnumeration> m_orientType;
+    Member<SVGMarkerOrientEnumeration> m_orientType;
 };
 
 DEFINE_SVG_PROPERTY_TYPE_CASTS(SVGAngle);
diff --git a/third_party/WebKit/Source/core/svg/SVGAngleTearOff.cpp b/third_party/WebKit/Source/core/svg/SVGAngleTearOff.cpp
index 0712807..95feae2 100644
--- a/third_party/WebKit/Source/core/svg/SVGAngleTearOff.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGAngleTearOff.cpp
@@ -37,7 +37,7 @@
 
 namespace blink {
 
-SVGAngleTearOff::SVGAngleTearOff(PassRefPtrWillBeRawPtr<SVGAngle> targetProperty, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName)
+SVGAngleTearOff::SVGAngleTearOff(RawPtr<SVGAngle> targetProperty, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName)
     : SVGPropertyTearOff<SVGAngle>(targetProperty, contextElement, propertyIsAnimVal, attributeName)
 {
 }
diff --git a/third_party/WebKit/Source/core/svg/SVGAngleTearOff.h b/third_party/WebKit/Source/core/svg/SVGAngleTearOff.h
index 9ea42fe23..44ad3f8 100644
--- a/third_party/WebKit/Source/core/svg/SVGAngleTearOff.h
+++ b/third_party/WebKit/Source/core/svg/SVGAngleTearOff.h
@@ -40,9 +40,9 @@
 class SVGAngleTearOff final : public SVGPropertyTearOff<SVGAngle>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<SVGAngleTearOff> create(PassRefPtrWillBeRawPtr<SVGAngle> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
+    static RawPtr<SVGAngleTearOff> create(RawPtr<SVGAngle> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
     {
-        return adoptRefWillBeNoop(new SVGAngleTearOff(target, contextElement, propertyIsAnimVal, attributeName));
+        return new SVGAngleTearOff(target, contextElement, propertyIsAnimVal, attributeName);
     }
 
     enum {
@@ -70,7 +70,7 @@
     void setValueAsString(const String&, ExceptionState&);
 
 private:
-    SVGAngleTearOff(PassRefPtrWillBeRawPtr<SVGAngle>, SVGElement*, PropertyIsAnimValType, const QualifiedName&);
+    SVGAngleTearOff(RawPtr<SVGAngle>, SVGElement*, PropertyIsAnimValType, const QualifiedName&);
 
     bool hasExposedAngleUnit() { return target()->unitType() <= SVGAngle::SVG_ANGLETYPE_GRAD; }
 };
diff --git a/third_party/WebKit/Source/core/svg/SVGAnimateElement.cpp b/third_party/WebKit/Source/core/svg/SVGAnimateElement.cpp
index 2e3db34..2fcc8129 100644
--- a/third_party/WebKit/Source/core/svg/SVGAnimateElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGAnimateElement.cpp
@@ -39,9 +39,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<SVGAnimateElement> SVGAnimateElement::create(Document& document)
+RawPtr<SVGAnimateElement> SVGAnimateElement::create(Document& document)
 {
-    return adoptRefWillBeNoop(new SVGAnimateElement(SVGNames::animateTag, document));
+    return new SVGAnimateElement(SVGNames::animateTag, document);
 }
 
 SVGAnimateElement::~SVGAnimateElement()
@@ -242,7 +242,7 @@
     applyCSSPropertyToTarget(targetElement, id, valueAsString);
 
     // If the target element has instances, update them as well, w/o requiring the <use> tree to be rebuilt.
-    const WillBeHeapHashSet<RawPtrWillBeWeakMember<SVGElement>>& instances = targetElement->instancesForElement();
+    const HeapHashSet<WeakMember<SVGElement>>& instances = targetElement->instancesForElement();
     for (SVGElement* shadowTreeElement : instances) {
         if (shadowTreeElement)
             applyCSSPropertyToTarget(shadowTreeElement, id, valueAsString);
@@ -261,7 +261,7 @@
     removeCSSPropertyFromTarget(targetElement, id);
 
     // If the target element has instances, update them as well, w/o requiring the <use> tree to be rebuilt.
-    const WillBeHeapHashSet<RawPtrWillBeWeakMember<SVGElement>>& instances = targetElement->instancesForElement();
+    const HeapHashSet<WeakMember<SVGElement>>& instances = targetElement->instancesForElement();
     for (SVGElement* shadowTreeElement : instances) {
         if (shadowTreeElement)
             removeCSSPropertyFromTarget(shadowTreeElement, id);
diff --git a/third_party/WebKit/Source/core/svg/SVGAnimateElement.h b/third_party/WebKit/Source/core/svg/SVGAnimateElement.h
index 296b6edad..97ccfa1 100644
--- a/third_party/WebKit/Source/core/svg/SVGAnimateElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGAnimateElement.h
@@ -38,7 +38,7 @@
 class CORE_EXPORT SVGAnimateElement : public SVGAnimationElement {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<SVGAnimateElement> create(Document&);
+    static RawPtr<SVGAnimateElement> create(Document&);
     ~SVGAnimateElement() override;
 
     DECLARE_VIRTUAL_TRACE();
@@ -74,10 +74,10 @@
 
     bool hasValidAttributeType() override;
 
-    RefPtrWillBeMember<SVGPropertyBase> m_fromProperty;
-    RefPtrWillBeMember<SVGPropertyBase> m_toProperty;
-    RefPtrWillBeMember<SVGPropertyBase> m_toAtEndOfDurationProperty;
-    RefPtrWillBeMember<SVGPropertyBase> m_animatedProperty;
+    Member<SVGPropertyBase> m_fromProperty;
+    Member<SVGPropertyBase> m_toProperty;
+    Member<SVGPropertyBase> m_toAtEndOfDurationProperty;
+    Member<SVGPropertyBase> m_animatedProperty;
 
     SVGAnimatedTypeAnimator m_animator;
 };
diff --git a/third_party/WebKit/Source/core/svg/SVGAnimateMotionElement.cpp b/third_party/WebKit/Source/core/svg/SVGAnimateMotionElement.cpp
index b1d0587..ef0945c 100644
--- a/third_party/WebKit/Source/core/svg/SVGAnimateMotionElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGAnimateMotionElement.cpp
@@ -284,7 +284,7 @@
         return;
 
     // ...except in case where we have additional instances in <use> trees.
-    const WillBeHeapHashSet<RawPtrWillBeWeakMember<SVGElement>>& instances = targetElement->instancesForElement();
+    const HeapHashSet<WeakMember<SVGElement>>& instances = targetElement->instancesForElement();
     for (SVGElement* shadowTreeElement : instances) {
         ASSERT(shadowTreeElement);
         AffineTransform* transform = shadowTreeElement->animateMotionTransform();
diff --git a/third_party/WebKit/Source/core/svg/SVGAnimatedAngle.cpp b/third_party/WebKit/Source/core/svg/SVGAnimatedAngle.cpp
index 004e96b8..322c3d3 100644
--- a/third_party/WebKit/Source/core/svg/SVGAnimatedAngle.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGAnimatedAngle.cpp
@@ -67,7 +67,7 @@
     SVGAnimatedProperty<SVGAngle>::synchronizeAttribute();
 }
 
-void SVGAnimatedAngle::setAnimatedValue(PassRefPtrWillBeRawPtr<SVGPropertyBase> value)
+void SVGAnimatedAngle::setAnimatedValue(RawPtr<SVGPropertyBase> value)
 {
     SVGAnimatedProperty<SVGAngle>::setAnimatedValue(value);
     m_orientType->setAnimatedValue(currentValue()->orientType());
diff --git a/third_party/WebKit/Source/core/svg/SVGAnimatedAngle.h b/third_party/WebKit/Source/core/svg/SVGAnimatedAngle.h
index a3b1824..009d7ef 100644
--- a/third_party/WebKit/Source/core/svg/SVGAnimatedAngle.h
+++ b/third_party/WebKit/Source/core/svg/SVGAnimatedAngle.h
@@ -41,9 +41,9 @@
 class SVGAnimatedAngle final : public SVGAnimatedProperty<SVGAngle>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<SVGAnimatedAngle> create(SVGElement* contextElement)
+    static RawPtr<SVGAnimatedAngle> create(SVGElement* contextElement)
     {
-        return adoptRefWillBeNoop(new SVGAnimatedAngle(contextElement));
+        return new SVGAnimatedAngle(contextElement);
     }
 
     ~SVGAnimatedAngle() override;
@@ -54,7 +54,7 @@
     bool needsSynchronizeAttribute() override;
     void synchronizeAttribute() override;
 
-    void setAnimatedValue(PassRefPtrWillBeRawPtr<SVGPropertyBase>) override;
+    void setAnimatedValue(RawPtr<SVGPropertyBase>) override;
     void animationEnded() override;
 
     DECLARE_VIRTUAL_TRACE();
@@ -63,7 +63,7 @@
     explicit SVGAnimatedAngle(SVGElement* contextElement);
 
 private:
-    RefPtrWillBeMember<SVGAnimatedEnumeration<SVGMarkerOrientType>> m_orientType;
+    Member<SVGAnimatedEnumeration<SVGMarkerOrientType>> m_orientType;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGAnimatedBoolean.h b/third_party/WebKit/Source/core/svg/SVGAnimatedBoolean.h
index a1c62ae..4d47072620 100644
--- a/third_party/WebKit/Source/core/svg/SVGAnimatedBoolean.h
+++ b/third_party/WebKit/Source/core/svg/SVGAnimatedBoolean.h
@@ -40,13 +40,13 @@
 class SVGAnimatedBoolean final : public SVGAnimatedProperty<SVGBoolean>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<SVGAnimatedBoolean> create(SVGElement* contextElement, const QualifiedName& attributeName, PassRefPtrWillBeRawPtr<SVGBoolean> initialValue)
+    static RawPtr<SVGAnimatedBoolean> create(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<SVGBoolean> initialValue)
     {
-        return adoptRefWillBeNoop(new SVGAnimatedBoolean(contextElement, attributeName, initialValue));
+        return new SVGAnimatedBoolean(contextElement, attributeName, initialValue);
     }
 
 protected:
-    SVGAnimatedBoolean(SVGElement* contextElement, const QualifiedName& attributeName, PassRefPtrWillBeRawPtr<SVGBoolean> initialValue)
+    SVGAnimatedBoolean(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<SVGBoolean> initialValue)
         : SVGAnimatedProperty<SVGBoolean>(contextElement, attributeName, initialValue)
     {
     }
diff --git a/third_party/WebKit/Source/core/svg/SVGAnimatedColor.cpp b/third_party/WebKit/Source/core/svg/SVGAnimatedColor.cpp
index 9e24cb8a..8710ef5 100644
--- a/third_party/WebKit/Source/core/svg/SVGAnimatedColor.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGAnimatedColor.cpp
@@ -40,7 +40,7 @@
     return m_styleColor.isCurrentColor() ? "currentColor" : m_styleColor.getColor().serializedAsCSSComponentValue();
 }
 
-PassRefPtrWillBeRawPtr<SVGPropertyBase> SVGColorProperty::cloneForAnimation(const String&) const
+RawPtr<SVGPropertyBase> SVGColorProperty::cloneForAnimation(const String&) const
 {
     // SVGAnimatedColor is deprecated. So No SVG DOM animation.
     ASSERT_NOT_REACHED();
@@ -55,7 +55,7 @@
     return Color::transparent;
 }
 
-void SVGColorProperty::add(PassRefPtrWillBeRawPtr<SVGPropertyBase> other, SVGElement* contextElement)
+void SVGColorProperty::add(RawPtr<SVGPropertyBase> other, SVGElement* contextElement)
 {
     ASSERT(contextElement);
 
@@ -65,7 +65,7 @@
     m_styleColor = StyleColor(ColorDistance::addColors(fromColor, toColor));
 }
 
-void SVGColorProperty::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, PassRefPtrWillBeRawPtr<SVGPropertyBase> fromValue, PassRefPtrWillBeRawPtr<SVGPropertyBase> toValue, PassRefPtrWillBeRawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement* contextElement)
+void SVGColorProperty::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> fromValue, RawPtr<SVGPropertyBase> toValue, RawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement* contextElement)
 {
     StyleColor fromStyleColor = toSVGColorProperty(fromValue)->m_styleColor;
     StyleColor toStyleColor = toSVGColorProperty(toValue)->m_styleColor;
@@ -95,7 +95,7 @@
     m_styleColor = StyleColor(makeRGBA(roundf(animatedRed), roundf(animatedGreen), roundf(animatedBlue), roundf(animatedAlpha)));
 }
 
-float SVGColorProperty::calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase> toValue, SVGElement* contextElement)
+float SVGColorProperty::calculateDistance(RawPtr<SVGPropertyBase> toValue, SVGElement* contextElement)
 {
     ASSERT(contextElement);
     Color fallbackColor = fallbackColorForCurrentColor(contextElement);
diff --git a/third_party/WebKit/Source/core/svg/SVGAnimatedColor.h b/third_party/WebKit/Source/core/svg/SVGAnimatedColor.h
index a3299ff..24e3c10 100644
--- a/third_party/WebKit/Source/core/svg/SVGAnimatedColor.h
+++ b/third_party/WebKit/Source/core/svg/SVGAnimatedColor.h
@@ -42,17 +42,17 @@
 // FIXME: WebAnimations: Replacable with AnimatableColor once SMIL animations are implemented in WebAnimations.
 class SVGColorProperty final : public SVGPropertyBase {
 public:
-    static PassRefPtrWillBeRawPtr<SVGColorProperty> create(const String& colorString)
+    static RawPtr<SVGColorProperty> create(const String& colorString)
     {
-        return adoptRefWillBeNoop(new SVGColorProperty(colorString));
+        return new SVGColorProperty(colorString);
     }
 
-    PassRefPtrWillBeRawPtr<SVGPropertyBase> cloneForAnimation(const String&) const override;
+    RawPtr<SVGPropertyBase> cloneForAnimation(const String&) const override;
     String valueAsString() const override;
 
-    void add(PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*) override;
-    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, PassRefPtrWillBeRawPtr<SVGPropertyBase> from, PassRefPtrWillBeRawPtr<SVGPropertyBase> to, PassRefPtrWillBeRawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement*) override;
-    float calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase> to, SVGElement*) override;
+    void add(RawPtr<SVGPropertyBase>, SVGElement*) override;
+    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> from, RawPtr<SVGPropertyBase> to, RawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement*) override;
+    float calculateDistance(RawPtr<SVGPropertyBase> to, SVGElement*) override;
 
     static AnimatedPropertyType classType() { return AnimatedColor; }
 
diff --git a/third_party/WebKit/Source/core/svg/SVGAnimatedEnumeration.h b/third_party/WebKit/Source/core/svg/SVGAnimatedEnumeration.h
index c07c564d..9bcda295f 100644
--- a/third_party/WebKit/Source/core/svg/SVGAnimatedEnumeration.h
+++ b/third_party/WebKit/Source/core/svg/SVGAnimatedEnumeration.h
@@ -38,14 +38,14 @@
 template<typename Enum>
 class SVGAnimatedEnumeration : public SVGAnimatedEnumerationBase {
 public:
-    static PassRefPtrWillBeRawPtr<SVGAnimatedEnumeration<Enum>> create(SVGElement* contextElement, const QualifiedName& attributeName, Enum initialValue)
+    static RawPtr<SVGAnimatedEnumeration<Enum>> create(SVGElement* contextElement, const QualifiedName& attributeName, Enum initialValue)
     {
-        return adoptRefWillBeNoop(new SVGAnimatedEnumeration(contextElement, attributeName, SVGEnumeration<Enum>::create(initialValue)));
+        return new SVGAnimatedEnumeration(contextElement, attributeName, SVGEnumeration<Enum>::create(initialValue));
     }
 
-    static PassRefPtrWillBeRawPtr<SVGAnimatedEnumeration<Enum>> create(SVGElement* contextElement, const QualifiedName& attributeName, PassRefPtrWillBeRawPtr<SVGEnumeration<Enum>> initialValue)
+    static RawPtr<SVGAnimatedEnumeration<Enum>> create(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<SVGEnumeration<Enum>> initialValue)
     {
-        return adoptRefWillBeNoop(new SVGAnimatedEnumeration(contextElement, attributeName, initialValue));
+        return new SVGAnimatedEnumeration(contextElement, attributeName, initialValue);
     }
 
     SVGEnumeration<Enum>* baseValue()
@@ -64,7 +64,7 @@
     }
 
 protected:
-    SVGAnimatedEnumeration(SVGElement* contextElement, const QualifiedName& attributeName, PassRefPtrWillBeRawPtr<SVGEnumeration<Enum>> initialValue)
+    SVGAnimatedEnumeration(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<SVGEnumeration<Enum>> initialValue)
         : SVGAnimatedEnumerationBase(contextElement, attributeName, initialValue)
     {
     }
diff --git a/third_party/WebKit/Source/core/svg/SVGAnimatedEnumerationBase.h b/third_party/WebKit/Source/core/svg/SVGAnimatedEnumerationBase.h
index a384a87..77fc78c 100644
--- a/third_party/WebKit/Source/core/svg/SVGAnimatedEnumerationBase.h
+++ b/third_party/WebKit/Source/core/svg/SVGAnimatedEnumerationBase.h
@@ -45,7 +45,7 @@
     void setBaseVal(unsigned short, ExceptionState&);
 
 protected:
-    SVGAnimatedEnumerationBase(SVGElement* contextElement, const QualifiedName& attributeName, PassRefPtrWillBeRawPtr<SVGEnumerationBase> initialValue)
+    SVGAnimatedEnumerationBase(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<SVGEnumerationBase> initialValue)
         : SVGAnimatedProperty<SVGEnumerationBase>(contextElement, attributeName, initialValue)
     {
     }
diff --git a/third_party/WebKit/Source/core/svg/SVGAnimatedHref.cpp b/third_party/WebKit/Source/core/svg/SVGAnimatedHref.cpp
index 6c5b73f..5413c83 100644
--- a/third_party/WebKit/Source/core/svg/SVGAnimatedHref.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGAnimatedHref.cpp
@@ -11,9 +11,9 @@
 
 namespace blink {
 
-PassRefPtrWillBeRawPtr<SVGAnimatedHref> SVGAnimatedHref::create(SVGElement* contextElement)
+RawPtr<SVGAnimatedHref> SVGAnimatedHref::create(SVGElement* contextElement)
 {
-    return adoptRefWillBeNoop(new SVGAnimatedHref(contextElement));
+    return new SVGAnimatedHref(contextElement);
 }
 
 DEFINE_TRACE(SVGAnimatedHref)
diff --git a/third_party/WebKit/Source/core/svg/SVGAnimatedHref.h b/third_party/WebKit/Source/core/svg/SVGAnimatedHref.h
index 9ed58ed..f6dcd76 100644
--- a/third_party/WebKit/Source/core/svg/SVGAnimatedHref.h
+++ b/third_party/WebKit/Source/core/svg/SVGAnimatedHref.h
@@ -19,7 +19,7 @@
 // or the wrapped object and forwards the operation to it.)
 class SVGAnimatedHref final : public SVGAnimatedString {
 public:
-    static PassRefPtrWillBeRawPtr<SVGAnimatedHref> create(SVGElement* contextElement);
+    static RawPtr<SVGAnimatedHref> create(SVGElement* contextElement);
 
     SVGString* currentValue();
     const SVGString* currentValue() const;
@@ -42,7 +42,7 @@
     const SVGAnimatedString* backingString() const;
     bool useXLink() const;
 
-    RefPtrWillBeMember<SVGAnimatedString> m_xlinkHref;
+    Member<SVGAnimatedString> m_xlinkHref;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGAnimatedInteger.h b/third_party/WebKit/Source/core/svg/SVGAnimatedInteger.h
index ae28d695..2bc686c 100644
--- a/third_party/WebKit/Source/core/svg/SVGAnimatedInteger.h
+++ b/third_party/WebKit/Source/core/svg/SVGAnimatedInteger.h
@@ -44,9 +44,9 @@
 class SVGAnimatedInteger : public SVGAnimatedProperty<SVGInteger>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<SVGAnimatedInteger> create(SVGElement* contextElement, const QualifiedName& attributeName, PassRefPtrWillBeRawPtr<SVGInteger> initialValue)
+    static RawPtr<SVGAnimatedInteger> create(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<SVGInteger> initialValue)
     {
-        return adoptRefWillBeNoop(new SVGAnimatedInteger(contextElement, attributeName, initialValue));
+        return new SVGAnimatedInteger(contextElement, attributeName, initialValue);
     }
 
     void synchronizeAttribute() override;
@@ -59,13 +59,13 @@
     DECLARE_VIRTUAL_TRACE();
 
 protected:
-    SVGAnimatedInteger(SVGElement* contextElement, const QualifiedName& attributeName, PassRefPtrWillBeRawPtr<SVGInteger> initialValue)
+    SVGAnimatedInteger(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<SVGInteger> initialValue)
         : SVGAnimatedProperty<SVGInteger>(contextElement, attributeName, initialValue)
         , m_parentIntegerOptionalInteger(nullptr)
     {
     }
 
-    RawPtrWillBeMember<SVGAnimatedIntegerOptionalInteger> m_parentIntegerOptionalInteger;
+    Member<SVGAnimatedIntegerOptionalInteger> m_parentIntegerOptionalInteger;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGAnimatedIntegerOptionalInteger.cpp b/third_party/WebKit/Source/core/svg/SVGAnimatedIntegerOptionalInteger.cpp
index 90a7294..0a1fc873 100644
--- a/third_party/WebKit/Source/core/svg/SVGAnimatedIntegerOptionalInteger.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGAnimatedIntegerOptionalInteger.cpp
@@ -51,7 +51,7 @@
     SVGAnimatedPropertyCommon<SVGIntegerOptionalInteger>::trace(visitor);
 }
 
-void SVGAnimatedIntegerOptionalInteger::setAnimatedValue(PassRefPtrWillBeRawPtr<SVGPropertyBase> value)
+void SVGAnimatedIntegerOptionalInteger::setAnimatedValue(RawPtr<SVGPropertyBase> value)
 {
     SVGAnimatedPropertyCommon<SVGIntegerOptionalInteger>::setAnimatedValue(value);
     m_firstInteger->setAnimatedValue(currentValue()->firstInteger());
diff --git a/third_party/WebKit/Source/core/svg/SVGAnimatedIntegerOptionalInteger.h b/third_party/WebKit/Source/core/svg/SVGAnimatedIntegerOptionalInteger.h
index 246d2186d..78c46f3a8 100644
--- a/third_party/WebKit/Source/core/svg/SVGAnimatedIntegerOptionalInteger.h
+++ b/third_party/WebKit/Source/core/svg/SVGAnimatedIntegerOptionalInteger.h
@@ -44,12 +44,12 @@
 // For example, see SVGFEDropShadowElement::stdDeviation{X,Y}()
 class SVGAnimatedIntegerOptionalInteger : public SVGAnimatedPropertyCommon<SVGIntegerOptionalInteger> {
 public:
-    static PassRefPtrWillBeRawPtr<SVGAnimatedIntegerOptionalInteger> create(SVGElement* contextElement, const QualifiedName& attributeName, float initialFirstValue = 0, float initialSecondValue = 0)
+    static RawPtr<SVGAnimatedIntegerOptionalInteger> create(SVGElement* contextElement, const QualifiedName& attributeName, float initialFirstValue = 0, float initialSecondValue = 0)
     {
-        return adoptRefWillBeNoop(new SVGAnimatedIntegerOptionalInteger(contextElement, attributeName, initialFirstValue, initialSecondValue));
+        return new SVGAnimatedIntegerOptionalInteger(contextElement, attributeName, initialFirstValue, initialSecondValue);
     }
 
-    void setAnimatedValue(PassRefPtrWillBeRawPtr<SVGPropertyBase>) override;
+    void setAnimatedValue(RawPtr<SVGPropertyBase>) override;
     bool needsSynchronizeAttribute() override;
     void animationEnded() override;
 
@@ -61,8 +61,8 @@
 protected:
     SVGAnimatedIntegerOptionalInteger(SVGElement* contextElement, const QualifiedName& attributeName, float initialFirstValue, float initialSecondValue);
 
-    RefPtrWillBeMember<SVGAnimatedInteger> m_firstInteger;
-    RefPtrWillBeMember<SVGAnimatedInteger> m_secondInteger;
+    Member<SVGAnimatedInteger> m_firstInteger;
+    Member<SVGAnimatedInteger> m_secondInteger;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGAnimatedLength.h b/third_party/WebKit/Source/core/svg/SVGAnimatedLength.h
index b21290df..06b2b103 100644
--- a/third_party/WebKit/Source/core/svg/SVGAnimatedLength.h
+++ b/third_party/WebKit/Source/core/svg/SVGAnimatedLength.h
@@ -40,16 +40,16 @@
 class SVGAnimatedLength : public SVGAnimatedProperty<SVGLength>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<SVGAnimatedLength> create(SVGElement* contextElement, const QualifiedName& attributeName, PassRefPtrWillBeRawPtr<SVGLength> initialValue)
+    static RawPtr<SVGAnimatedLength> create(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<SVGLength> initialValue)
     {
-        return adoptRefWillBeNoop(new SVGAnimatedLength(contextElement, attributeName, initialValue));
+        return new SVGAnimatedLength(contextElement, attributeName, initialValue);
     }
 
     void setDefaultValueAsString(const String&);
     SVGParsingError setBaseValueAsString(const String&) override;
 
 protected:
-    SVGAnimatedLength(SVGElement* contextElement, const QualifiedName& attributeName, PassRefPtrWillBeRawPtr<SVGLength> initialValue)
+    SVGAnimatedLength(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<SVGLength> initialValue)
         : SVGAnimatedProperty<SVGLength>(contextElement, attributeName, initialValue)
     {
     }
diff --git a/third_party/WebKit/Source/core/svg/SVGAnimatedLengthList.h b/third_party/WebKit/Source/core/svg/SVGAnimatedLengthList.h
index d0455b5..66cf5f1 100644
--- a/third_party/WebKit/Source/core/svg/SVGAnimatedLengthList.h
+++ b/third_party/WebKit/Source/core/svg/SVGAnimatedLengthList.h
@@ -41,13 +41,13 @@
 class SVGAnimatedLengthList final : public SVGAnimatedProperty<SVGLengthList>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<SVGAnimatedLengthList> create(SVGElement* contextElement, const QualifiedName& attributeName, PassRefPtrWillBeRawPtr<SVGLengthList> initialValue)
+    static RawPtr<SVGAnimatedLengthList> create(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<SVGLengthList> initialValue)
     {
-        return adoptRefWillBeNoop(new SVGAnimatedLengthList(contextElement, attributeName, initialValue));
+        return new SVGAnimatedLengthList(contextElement, attributeName, initialValue);
     }
 
 protected:
-    SVGAnimatedLengthList(SVGElement* contextElement, const QualifiedName& attributeName, PassRefPtrWillBeRawPtr<SVGLengthList> initialValue)
+    SVGAnimatedLengthList(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<SVGLengthList> initialValue)
         : SVGAnimatedProperty<SVGLengthList>(contextElement, attributeName, initialValue) { }
 };
 
diff --git a/third_party/WebKit/Source/core/svg/SVGAnimatedNumber.h b/third_party/WebKit/Source/core/svg/SVGAnimatedNumber.h
index d0dd984..1161b09 100644
--- a/third_party/WebKit/Source/core/svg/SVGAnimatedNumber.h
+++ b/third_party/WebKit/Source/core/svg/SVGAnimatedNumber.h
@@ -44,9 +44,9 @@
 class SVGAnimatedNumber : public SVGAnimatedProperty<SVGNumber>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<SVGAnimatedNumber> create(SVGElement* contextElement, const QualifiedName& attributeName, PassRefPtrWillBeRawPtr<SVGNumber> initialValue)
+    static RawPtr<SVGAnimatedNumber> create(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<SVGNumber> initialValue)
     {
-        return adoptRefWillBeNoop(new SVGAnimatedNumber(contextElement, attributeName, initialValue));
+        return new SVGAnimatedNumber(contextElement, attributeName, initialValue);
     }
 
     void synchronizeAttribute() override;
@@ -59,13 +59,13 @@
     DECLARE_VIRTUAL_TRACE();
 
 protected:
-    SVGAnimatedNumber(SVGElement* contextElement, const QualifiedName& attributeName, PassRefPtrWillBeRawPtr<SVGNumber> initialValue)
+    SVGAnimatedNumber(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<SVGNumber> initialValue)
         : SVGAnimatedProperty<SVGNumber>(contextElement, attributeName, initialValue)
         , m_parentNumberOptionalNumber(nullptr)
     {
     }
 
-    RawPtrWillBeMember<SVGAnimatedNumberOptionalNumber> m_parentNumberOptionalNumber;
+    Member<SVGAnimatedNumberOptionalNumber> m_parentNumberOptionalNumber;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGAnimatedNumberList.h b/third_party/WebKit/Source/core/svg/SVGAnimatedNumberList.h
index b12fe77..2a29380 100644
--- a/third_party/WebKit/Source/core/svg/SVGAnimatedNumberList.h
+++ b/third_party/WebKit/Source/core/svg/SVGAnimatedNumberList.h
@@ -41,13 +41,13 @@
 class SVGAnimatedNumberList final : public SVGAnimatedProperty<SVGNumberList>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<SVGAnimatedNumberList> create(SVGElement* contextElement, const QualifiedName& attributeName, PassRefPtrWillBeRawPtr<SVGNumberList> initialValue)
+    static RawPtr<SVGAnimatedNumberList> create(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<SVGNumberList> initialValue)
     {
-        return adoptRefWillBeNoop(new SVGAnimatedNumberList(contextElement, attributeName, initialValue));
+        return new SVGAnimatedNumberList(contextElement, attributeName, initialValue);
     }
 
 protected:
-    SVGAnimatedNumberList(SVGElement* contextElement, const QualifiedName& attributeName, PassRefPtrWillBeRawPtr<SVGNumberList> initialValue)
+    SVGAnimatedNumberList(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<SVGNumberList> initialValue)
         : SVGAnimatedProperty<SVGNumberList>(contextElement, attributeName, initialValue) { }
 };
 
diff --git a/third_party/WebKit/Source/core/svg/SVGAnimatedNumberOptionalNumber.cpp b/third_party/WebKit/Source/core/svg/SVGAnimatedNumberOptionalNumber.cpp
index d0fa29e..61c190e 100644
--- a/third_party/WebKit/Source/core/svg/SVGAnimatedNumberOptionalNumber.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGAnimatedNumberOptionalNumber.cpp
@@ -40,7 +40,7 @@
     SVGAnimatedPropertyCommon<SVGNumberOptionalNumber>::trace(visitor);
 }
 
-void SVGAnimatedNumberOptionalNumber::setAnimatedValue(PassRefPtrWillBeRawPtr<SVGPropertyBase> value)
+void SVGAnimatedNumberOptionalNumber::setAnimatedValue(RawPtr<SVGPropertyBase> value)
 {
     SVGAnimatedPropertyCommon<SVGNumberOptionalNumber>::setAnimatedValue(value);
     m_firstNumber->setAnimatedValue(currentValue()->firstNumber());
diff --git a/third_party/WebKit/Source/core/svg/SVGAnimatedNumberOptionalNumber.h b/third_party/WebKit/Source/core/svg/SVGAnimatedNumberOptionalNumber.h
index 0c819380..2c95209b 100644
--- a/third_party/WebKit/Source/core/svg/SVGAnimatedNumberOptionalNumber.h
+++ b/third_party/WebKit/Source/core/svg/SVGAnimatedNumberOptionalNumber.h
@@ -44,12 +44,12 @@
 // For example, see SVGFEDropShadowElement::stdDeviation{X,Y}()
 class SVGAnimatedNumberOptionalNumber : public SVGAnimatedPropertyCommon<SVGNumberOptionalNumber> {
 public:
-    static PassRefPtrWillBeRawPtr<SVGAnimatedNumberOptionalNumber> create(SVGElement* contextElement, const QualifiedName& attributeName, float initialFirstValue = 0, float initialSecondValue = 0)
+    static RawPtr<SVGAnimatedNumberOptionalNumber> create(SVGElement* contextElement, const QualifiedName& attributeName, float initialFirstValue = 0, float initialSecondValue = 0)
     {
-        return adoptRefWillBeNoop(new SVGAnimatedNumberOptionalNumber(contextElement, attributeName, initialFirstValue, initialSecondValue));
+        return new SVGAnimatedNumberOptionalNumber(contextElement, attributeName, initialFirstValue, initialSecondValue);
     }
 
-    void setAnimatedValue(PassRefPtrWillBeRawPtr<SVGPropertyBase>) override;
+    void setAnimatedValue(RawPtr<SVGPropertyBase>) override;
     bool needsSynchronizeAttribute() override;
     void animationEnded() override;
 
@@ -61,8 +61,8 @@
 protected:
     SVGAnimatedNumberOptionalNumber(SVGElement* contextElement, const QualifiedName& attributeName, float initialFirstValue, float initialSecondValue);
 
-    RefPtrWillBeMember<SVGAnimatedNumber> m_firstNumber;
-    RefPtrWillBeMember<SVGAnimatedNumber> m_secondNumber;
+    Member<SVGAnimatedNumber> m_firstNumber;
+    Member<SVGAnimatedNumber> m_secondNumber;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGAnimatedPath.h b/third_party/WebKit/Source/core/svg/SVGAnimatedPath.h
index 72929ef..31537db 100644
--- a/third_party/WebKit/Source/core/svg/SVGAnimatedPath.h
+++ b/third_party/WebKit/Source/core/svg/SVGAnimatedPath.h
@@ -40,9 +40,9 @@
 public:
     ~SVGAnimatedPath() override;
 
-    static PassRefPtrWillBeRawPtr<SVGAnimatedPath> create(SVGElement* contextElement, const QualifiedName& attributeName)
+    static RawPtr<SVGAnimatedPath> create(SVGElement* contextElement, const QualifiedName& attributeName)
     {
-        return adoptRefWillBeNoop(new SVGAnimatedPath(contextElement, attributeName));
+        return new SVGAnimatedPath(contextElement, attributeName);
     }
 
 protected:
diff --git a/third_party/WebKit/Source/core/svg/SVGAnimatedPreserveAspectRatio.h b/third_party/WebKit/Source/core/svg/SVGAnimatedPreserveAspectRatio.h
index b83595d..5055e46 100644
--- a/third_party/WebKit/Source/core/svg/SVGAnimatedPreserveAspectRatio.h
+++ b/third_party/WebKit/Source/core/svg/SVGAnimatedPreserveAspectRatio.h
@@ -40,13 +40,13 @@
 class SVGAnimatedPreserveAspectRatio : public SVGAnimatedProperty<SVGPreserveAspectRatio>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<SVGAnimatedPreserveAspectRatio> create(SVGElement* contextElement, const QualifiedName& attributeName, PassRefPtrWillBeRawPtr<SVGPreserveAspectRatio> initialValue)
+    static RawPtr<SVGAnimatedPreserveAspectRatio> create(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<SVGPreserveAspectRatio> initialValue)
     {
-        return adoptRefWillBeNoop(new SVGAnimatedPreserveAspectRatio(contextElement, attributeName, initialValue));
+        return new SVGAnimatedPreserveAspectRatio(contextElement, attributeName, initialValue);
     }
 
 protected:
-    SVGAnimatedPreserveAspectRatio(SVGElement* contextElement, const QualifiedName& attributeName, PassRefPtrWillBeRawPtr<SVGPreserveAspectRatio> initialValue)
+    SVGAnimatedPreserveAspectRatio(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<SVGPreserveAspectRatio> initialValue)
         : SVGAnimatedProperty<SVGPreserveAspectRatio>(contextElement, attributeName, initialValue)
     {
     }
diff --git a/third_party/WebKit/Source/core/svg/SVGAnimatedRect.h b/third_party/WebKit/Source/core/svg/SVGAnimatedRect.h
index e1c69d90..3aa7911 100644
--- a/third_party/WebKit/Source/core/svg/SVGAnimatedRect.h
+++ b/third_party/WebKit/Source/core/svg/SVGAnimatedRect.h
@@ -40,9 +40,9 @@
 class SVGAnimatedRect : public SVGAnimatedProperty<SVGRect>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<SVGAnimatedRect> create(SVGElement* contextElement, const QualifiedName& attributeName)
+    static RawPtr<SVGAnimatedRect> create(SVGElement* contextElement, const QualifiedName& attributeName)
     {
-        return adoptRefWillBeNoop(new SVGAnimatedRect(contextElement, attributeName));
+        return new SVGAnimatedRect(contextElement, attributeName);
     }
 
 protected:
diff --git a/third_party/WebKit/Source/core/svg/SVGAnimatedString.h b/third_party/WebKit/Source/core/svg/SVGAnimatedString.h
index b4b850fa..f77959b 100644
--- a/third_party/WebKit/Source/core/svg/SVGAnimatedString.h
+++ b/third_party/WebKit/Source/core/svg/SVGAnimatedString.h
@@ -40,9 +40,9 @@
 class SVGAnimatedString : public SVGAnimatedProperty<SVGString>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<SVGAnimatedString> create(SVGElement* contextElement, const QualifiedName& attributeName, PassRefPtrWillBeRawPtr<SVGString> initialValue)
+    static RawPtr<SVGAnimatedString> create(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<SVGString> initialValue)
     {
-        return adoptRefWillBeNoop(new SVGAnimatedString(contextElement, attributeName, initialValue));
+        return new SVGAnimatedString(contextElement, attributeName, initialValue);
     }
 
     virtual String baseVal();
@@ -50,7 +50,7 @@
     virtual String animVal();
 
 protected:
-    SVGAnimatedString(SVGElement* contextElement, const QualifiedName& attributeName, PassRefPtrWillBeRawPtr<SVGString> initialValue)
+    SVGAnimatedString(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<SVGString> initialValue)
         : SVGAnimatedProperty<SVGString>(contextElement, attributeName, initialValue)
     {
     }
diff --git a/third_party/WebKit/Source/core/svg/SVGAnimatedTransformList.h b/third_party/WebKit/Source/core/svg/SVGAnimatedTransformList.h
index ec1db9f..8175d7e 100644
--- a/third_party/WebKit/Source/core/svg/SVGAnimatedTransformList.h
+++ b/third_party/WebKit/Source/core/svg/SVGAnimatedTransformList.h
@@ -41,13 +41,13 @@
 class SVGAnimatedTransformList final : public SVGAnimatedProperty<SVGTransformList>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<SVGAnimatedTransformList> create(SVGElement* contextElement, const QualifiedName& attributeName, PassRefPtrWillBeRawPtr<SVGTransformList> initialValue)
+    static RawPtr<SVGAnimatedTransformList> create(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<SVGTransformList> initialValue)
     {
-        return adoptRefWillBeNoop(new SVGAnimatedTransformList(contextElement, attributeName, initialValue));
+        return new SVGAnimatedTransformList(contextElement, attributeName, initialValue);
     }
 
 protected:
-    SVGAnimatedTransformList(SVGElement* contextElement, const QualifiedName& attributeName, PassRefPtrWillBeRawPtr<SVGTransformList> initialValue)
+    SVGAnimatedTransformList(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<SVGTransformList> initialValue)
         : SVGAnimatedProperty<SVGTransformList>(contextElement, attributeName, initialValue) { }
 };
 
diff --git a/third_party/WebKit/Source/core/svg/SVGAnimatedTypeAnimator.cpp b/third_party/WebKit/Source/core/svg/SVGAnimatedTypeAnimator.cpp
index 7ec3b06..2cfff16 100644
--- a/third_party/WebKit/Source/core/svg/SVGAnimatedTypeAnimator.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGAnimatedTypeAnimator.cpp
@@ -67,7 +67,7 @@
         && m_type != AnimatedTransform);
 }
 
-PassRefPtrWillBeRawPtr<SVGPropertyBase> SVGAnimatedTypeAnimator::createPropertyForAnimation(const String& value)
+RawPtr<SVGPropertyBase> SVGAnimatedTypeAnimator::createPropertyForAnimation(const String& value)
 {
     ASSERT(m_contextElement);
 
@@ -97,22 +97,22 @@
     case AnimatedColor:
         return SVGColorProperty::create(value);
     case AnimatedNumber: {
-        RefPtrWillBeRawPtr<SVGNumber> property = SVGNumber::create();
+        RawPtr<SVGNumber> property = SVGNumber::create();
         property->setValueAsString(value);
         return property.release();
     }
     case AnimatedLength: {
-        RefPtrWillBeRawPtr<SVGLength> property = SVGLength::create();
+        RawPtr<SVGLength> property = SVGLength::create();
         property->setValueAsString(value);
         return property.release();
     }
     case AnimatedLengthList: {
-        RefPtrWillBeRawPtr<SVGLengthList> property = SVGLengthList::create();
+        RawPtr<SVGLengthList> property = SVGLengthList::create();
         property->setValueAsString(value);
         return property.release();
     }
     case AnimatedString: {
-        RefPtrWillBeRawPtr<SVGString> property = SVGString::create();
+        RawPtr<SVGString> property = SVGString::create();
         property->setValueAsString(value);
         return property.release();
     }
@@ -143,18 +143,18 @@
     return nullptr;
 }
 
-PassRefPtrWillBeRawPtr<SVGPropertyBase> SVGAnimatedTypeAnimator::constructFromString(const String& value)
+RawPtr<SVGPropertyBase> SVGAnimatedTypeAnimator::constructFromString(const String& value)
 {
     return createPropertyForAnimation(value);
 }
 
-void SVGAnimatedTypeAnimator::calculateFromAndToValues(RefPtrWillBeMember<SVGPropertyBase>& from, RefPtrWillBeMember<SVGPropertyBase>& to, const String& fromString, const String& toString)
+void SVGAnimatedTypeAnimator::calculateFromAndToValues(Member<SVGPropertyBase>& from, Member<SVGPropertyBase>& to, const String& fromString, const String& toString)
 {
     from = constructFromString(fromString);
     to = constructFromString(toString);
 }
 
-void SVGAnimatedTypeAnimator::calculateFromAndByValues(RefPtrWillBeMember<SVGPropertyBase>& from, RefPtrWillBeMember<SVGPropertyBase>& to, const String& fromString, const String& byString)
+void SVGAnimatedTypeAnimator::calculateFromAndByValues(Member<SVGPropertyBase>& from, Member<SVGPropertyBase>& to, const String& fromString, const String& byString)
 {
     from = constructFromString(fromString);
     to = constructFromString(byString);
@@ -164,9 +164,9 @@
 
 namespace {
 
-void setAnimatedValueOnAllTargetProperties(const SVGElementInstances& list, const QualifiedName& attributeName, PassRefPtrWillBeRawPtr<SVGPropertyBase> passValue)
+void setAnimatedValueOnAllTargetProperties(const SVGElementInstances& list, const QualifiedName& attributeName, RawPtr<SVGPropertyBase> passValue)
 {
-    RefPtrWillBeRawPtr<SVGPropertyBase> value = passValue;
+    RawPtr<SVGPropertyBase> value = passValue;
 
     for (SVGElement* elementInstance : list) {
         if (SVGAnimatedPropertyBase* animatedProperty = elementInstance->propertyFromAttribute(attributeName))
@@ -176,17 +176,17 @@
 
 } // namespace
 
-PassRefPtrWillBeRawPtr<SVGPropertyBase> SVGAnimatedTypeAnimator::resetAnimation(const SVGElementInstances& list)
+RawPtr<SVGPropertyBase> SVGAnimatedTypeAnimator::resetAnimation(const SVGElementInstances& list)
 {
     ASSERT(isAnimatingSVGDom());
-    RefPtrWillBeRawPtr<SVGPropertyBase> animatedValue = m_animatedProperty->createAnimatedValue();
+    RawPtr<SVGPropertyBase> animatedValue = m_animatedProperty->createAnimatedValue();
     ASSERT(animatedValue->type() == m_type);
     setAnimatedValueOnAllTargetProperties(list, m_animatedProperty->attributeName(), animatedValue);
 
     return animatedValue.release();
 }
 
-PassRefPtrWillBeRawPtr<SVGPropertyBase> SVGAnimatedTypeAnimator::startAnimValAnimation(const SVGElementInstances& list)
+RawPtr<SVGPropertyBase> SVGAnimatedTypeAnimator::startAnimValAnimation(const SVGElementInstances& list)
 {
     ASSERT(isAnimatingSVGDom());
     SVGElement::InstanceUpdateBlocker blocker(m_contextElement);
@@ -208,7 +208,7 @@
     }
 }
 
-PassRefPtrWillBeRawPtr<SVGPropertyBase> SVGAnimatedTypeAnimator::resetAnimValToBaseVal(const SVGElementInstances& list)
+RawPtr<SVGPropertyBase> SVGAnimatedTypeAnimator::resetAnimValToBaseVal(const SVGElementInstances& list)
 {
     SVGElement::InstanceUpdateBlocker blocker(m_contextElement);
 
@@ -223,7 +223,7 @@
     {
     }
 
-    PassRefPtrWillBeRawPtr<SVGPropertyBase> operator()(SVGAnimationElement*, const String& value)
+    RawPtr<SVGPropertyBase> operator()(SVGAnimationElement*, const String& value)
     {
         return m_animator->createPropertyForAnimation(value);
     }
@@ -237,15 +237,15 @@
     ASSERT(m_animationElement);
     ASSERT(m_contextElement);
 
-    RefPtrWillBeRawPtr<SVGPropertyBase> fromValue = m_animationElement->getAnimationMode() == ToAnimation ? animated : from;
-    RefPtrWillBeRawPtr<SVGPropertyBase> toValue = to;
-    RefPtrWillBeRawPtr<SVGPropertyBase> toAtEndOfDurationValue = toAtEndOfDuration;
-    RefPtrWillBeRawPtr<SVGPropertyBase> animatedValue = animated;
+    RawPtr<SVGPropertyBase> fromValue = m_animationElement->getAnimationMode() == ToAnimation ? animated : from;
+    RawPtr<SVGPropertyBase> toValue = to;
+    RawPtr<SVGPropertyBase> toAtEndOfDurationValue = toAtEndOfDuration;
+    RawPtr<SVGPropertyBase> animatedValue = animated;
 
     // Apply CSS inheritance rules.
     ParsePropertyFromString parsePropertyFromString(this);
-    m_animationElement->adjustForInheritance<RefPtrWillBeRawPtr<SVGPropertyBase>, ParsePropertyFromString>(parsePropertyFromString, m_animationElement->fromPropertyValueType(), fromValue, m_contextElement);
-    m_animationElement->adjustForInheritance<RefPtrWillBeRawPtr<SVGPropertyBase>, ParsePropertyFromString>(parsePropertyFromString, m_animationElement->toPropertyValueType(), toValue, m_contextElement);
+    m_animationElement->adjustForInheritance<RawPtr<SVGPropertyBase>, ParsePropertyFromString>(parsePropertyFromString, m_animationElement->fromPropertyValueType(), fromValue, m_contextElement);
+    m_animationElement->adjustForInheritance<RawPtr<SVGPropertyBase>, ParsePropertyFromString>(parsePropertyFromString, m_animationElement->toPropertyValueType(), toValue, m_contextElement);
 
     animatedValue->calculateAnimatedValue(m_animationElement, percentage, repeatCount, fromValue, toValue, toAtEndOfDurationValue, m_contextElement);
 }
@@ -253,8 +253,8 @@
 float SVGAnimatedTypeAnimator::calculateDistance(const String& fromString, const String& toString)
 {
     ASSERT(m_contextElement);
-    RefPtrWillBeRawPtr<SVGPropertyBase> fromValue = createPropertyForAnimation(fromString);
-    RefPtrWillBeRawPtr<SVGPropertyBase> toValue = createPropertyForAnimation(toString);
+    RawPtr<SVGPropertyBase> fromValue = createPropertyForAnimation(fromString);
+    RawPtr<SVGPropertyBase> toValue = createPropertyForAnimation(toString);
     return fromValue->calculateDistance(toValue, m_contextElement);
 }
 
diff --git a/third_party/WebKit/Source/core/svg/SVGAnimatedTypeAnimator.h b/third_party/WebKit/Source/core/svg/SVGAnimatedTypeAnimator.h
index 5bdba04e..c521e3d 100644
--- a/third_party/WebKit/Source/core/svg/SVGAnimatedTypeAnimator.h
+++ b/third_party/WebKit/Source/core/svg/SVGAnimatedTypeAnimator.h
@@ -36,7 +36,7 @@
 class SVGAnimationElement;
 
 // The size of SVGElementInstances is 1 unless there is a <use> instance of the element.
-using SVGElementInstances = WillBeHeapVector<RawPtrWillBeMember<SVGElement>, 1u>;
+using SVGElementInstances = HeapVector<Member<SVGElement>, 1u>;
 
 class SVGAnimatedTypeAnimator final {
     DISALLOW_NEW();
@@ -46,17 +46,17 @@
     void clear();
     void reset(SVGElement* contextElement);
 
-    PassRefPtrWillBeRawPtr<SVGPropertyBase> constructFromString(const String&);
+    RawPtr<SVGPropertyBase> constructFromString(const String&);
 
-    PassRefPtrWillBeRawPtr<SVGPropertyBase> startAnimValAnimation(const SVGElementInstances&);
+    RawPtr<SVGPropertyBase> startAnimValAnimation(const SVGElementInstances&);
     void stopAnimValAnimation(const SVGElementInstances&);
-    PassRefPtrWillBeRawPtr<SVGPropertyBase> resetAnimValToBaseVal(const SVGElementInstances&);
+    RawPtr<SVGPropertyBase> resetAnimValToBaseVal(const SVGElementInstances&);
 
     void calculateAnimatedValue(float percentage, unsigned repeatCount, SVGPropertyBase*, SVGPropertyBase*, SVGPropertyBase*, SVGPropertyBase*);
     float calculateDistance(const String& fromString, const String& toString);
 
-    void calculateFromAndToValues(RefPtrWillBeMember<SVGPropertyBase>& from, RefPtrWillBeMember<SVGPropertyBase>& to, const String& fromString, const String& toString);
-    void calculateFromAndByValues(RefPtrWillBeMember<SVGPropertyBase>& from, RefPtrWillBeMember<SVGPropertyBase>& to, const String& fromString, const String& byString);
+    void calculateFromAndToValues(Member<SVGPropertyBase>& from, Member<SVGPropertyBase>& to, const String& fromString, const String& toString);
+    void calculateFromAndByValues(Member<SVGPropertyBase>& from, Member<SVGPropertyBase>& to, const String& fromString, const String& byString);
 
     void setContextElement(SVGElement* contextElement) { m_contextElement = contextElement; }
     AnimatedPropertyType type() const { return m_type; }
@@ -68,12 +68,12 @@
 
 private:
     friend class ParsePropertyFromString;
-    PassRefPtrWillBeRawPtr<SVGPropertyBase> createPropertyForAnimation(const String&);
-    PassRefPtrWillBeRawPtr<SVGPropertyBase> resetAnimation(const SVGElementInstances&);
+    RawPtr<SVGPropertyBase> createPropertyForAnimation(const String&);
+    RawPtr<SVGPropertyBase> resetAnimation(const SVGElementInstances&);
 
-    RawPtrWillBeMember<SVGAnimationElement> m_animationElement;
-    RawPtrWillBeMember<SVGElement> m_contextElement;
-    RefPtrWillBeMember<SVGAnimatedPropertyBase> m_animatedProperty;
+    Member<SVGAnimationElement> m_animationElement;
+    Member<SVGElement> m_contextElement;
+    Member<SVGAnimatedPropertyBase> m_animatedProperty;
     AnimatedPropertyType m_type;
 };
 
diff --git a/third_party/WebKit/Source/core/svg/SVGBoolean.cpp b/third_party/WebKit/Source/core/svg/SVGBoolean.cpp
index d09fb353..5e6da7d9 100644
--- a/third_party/WebKit/Source/core/svg/SVGBoolean.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGBoolean.cpp
@@ -52,12 +52,12 @@
     return SVGParseStatus::ExpectedBoolean;
 }
 
-void SVGBoolean::add(PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*)
+void SVGBoolean::add(RawPtr<SVGPropertyBase>, SVGElement*)
 {
     ASSERT_NOT_REACHED();
 }
 
-void SVGBoolean::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, PassRefPtrWillBeRawPtr<SVGPropertyBase> from, PassRefPtrWillBeRawPtr<SVGPropertyBase> to, PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*)
+void SVGBoolean::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> from, RawPtr<SVGPropertyBase> to, RawPtr<SVGPropertyBase>, SVGElement*)
 {
     ASSERT(animationElement);
     bool fromBoolean = animationElement->getAnimationMode() == ToAnimation ? m_value : toSVGBoolean(from)->value();
@@ -66,7 +66,7 @@
     animationElement->animateDiscreteType<bool>(percentage, fromBoolean, toBoolean, m_value);
 }
 
-float SVGBoolean::calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*)
+float SVGBoolean::calculateDistance(RawPtr<SVGPropertyBase>, SVGElement*)
 {
     // No paced animations for boolean.
     return -1;
diff --git a/third_party/WebKit/Source/core/svg/SVGBoolean.h b/third_party/WebKit/Source/core/svg/SVGBoolean.h
index c04e5fb..e1f27ad0 100644
--- a/third_party/WebKit/Source/core/svg/SVGBoolean.h
+++ b/third_party/WebKit/Source/core/svg/SVGBoolean.h
@@ -42,19 +42,19 @@
     typedef void TearOffType;
     typedef bool PrimitiveType;
 
-    static PassRefPtrWillBeRawPtr<SVGBoolean> create(bool value = false)
+    static RawPtr<SVGBoolean> create(bool value = false)
     {
-        return adoptRefWillBeNoop(new SVGBoolean(value));
+        return new SVGBoolean(value);
     }
 
-    PassRefPtrWillBeRawPtr<SVGBoolean> clone() const { return create(m_value); }
+    RawPtr<SVGBoolean> clone() const { return create(m_value); }
 
     String valueAsString() const override;
     SVGParsingError setValueAsString(const String&);
 
-    void add(PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*) override;
-    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, PassRefPtrWillBeRawPtr<SVGPropertyBase> from, PassRefPtrWillBeRawPtr<SVGPropertyBase> to, PassRefPtrWillBeRawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement*) override;
-    float calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase> to, SVGElement*) override;
+    void add(RawPtr<SVGPropertyBase>, SVGElement*) override;
+    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> from, RawPtr<SVGPropertyBase> to, RawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement*) override;
+    float calculateDistance(RawPtr<SVGPropertyBase> to, SVGElement*) override;
 
     bool value() const { return m_value; }
     void setValue(bool value) { m_value = value; }
diff --git a/third_party/WebKit/Source/core/svg/SVGCircleElement.h b/third_party/WebKit/Source/core/svg/SVGCircleElement.h
index c1beaad..418f984 100644
--- a/third_party/WebKit/Source/core/svg/SVGCircleElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGCircleElement.h
@@ -55,9 +55,9 @@
 
     LayoutObject* createLayoutObject(const ComputedStyle&) override;
 
-    RefPtrWillBeMember<SVGAnimatedLength> m_cx;
-    RefPtrWillBeMember<SVGAnimatedLength> m_cy;
-    RefPtrWillBeMember<SVGAnimatedLength> m_r;
+    Member<SVGAnimatedLength> m_cx;
+    Member<SVGAnimatedLength> m_cy;
+    Member<SVGAnimatedLength> m_r;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGClipPathElement.h b/third_party/WebKit/Source/core/svg/SVGClipPathElement.h
index 6354eb6a..68066d0 100644
--- a/third_party/WebKit/Source/core/svg/SVGClipPathElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGClipPathElement.h
@@ -52,7 +52,7 @@
 
     LayoutObject* createLayoutObject(const ComputedStyle&) override;
 
-    RefPtrWillBeMember<SVGAnimatedEnumeration<SVGUnitTypes::SVGUnitType>> m_clipPathUnits;
+    Member<SVGAnimatedEnumeration<SVGUnitTypes::SVGUnitType>> m_clipPathUnits;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGComponentTransferFunctionElement.h b/third_party/WebKit/Source/core/svg/SVGComponentTransferFunctionElement.h
index a0c755e..a2419aa 100644
--- a/third_party/WebKit/Source/core/svg/SVGComponentTransferFunctionElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGComponentTransferFunctionElement.h
@@ -55,13 +55,13 @@
     bool layoutObjectIsNeeded(const ComputedStyle&) final { return false; }
 
 private:
-    RefPtrWillBeMember<SVGAnimatedNumberList> m_tableValues;
-    RefPtrWillBeMember<SVGAnimatedNumber> m_slope;
-    RefPtrWillBeMember<SVGAnimatedNumber> m_intercept;
-    RefPtrWillBeMember<SVGAnimatedNumber> m_amplitude;
-    RefPtrWillBeMember<SVGAnimatedNumber> m_exponent;
-    RefPtrWillBeMember<SVGAnimatedNumber> m_offset;
-    RefPtrWillBeMember<SVGAnimatedEnumeration<ComponentTransferType>> m_type;
+    Member<SVGAnimatedNumberList> m_tableValues;
+    Member<SVGAnimatedNumber> m_slope;
+    Member<SVGAnimatedNumber> m_intercept;
+    Member<SVGAnimatedNumber> m_amplitude;
+    Member<SVGAnimatedNumber> m_exponent;
+    Member<SVGAnimatedNumber> m_offset;
+    Member<SVGAnimatedEnumeration<ComponentTransferType>> m_type;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGCursorElement.h b/third_party/WebKit/Source/core/svg/SVGCursorElement.h
index e41d8cb..e41a303 100644
--- a/third_party/WebKit/Source/core/svg/SVGCursorElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGCursorElement.h
@@ -34,7 +34,7 @@
                                public SVGTests,
                                public SVGURIReference {
     DEFINE_WRAPPERTYPEINFO();
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(SVGCursorElement);
+    USING_GARBAGE_COLLECTED_MIXIN(SVGCursorElement);
 public:
     DECLARE_NODE_FACTORY(SVGCursorElement);
 
@@ -60,10 +60,10 @@
 
     bool layoutObjectIsNeeded(const ComputedStyle&) override { return false; }
 
-    RefPtrWillBeMember<SVGAnimatedLength> m_x;
-    RefPtrWillBeMember<SVGAnimatedLength> m_y;
+    Member<SVGAnimatedLength> m_x;
+    Member<SVGAnimatedLength> m_y;
 
-    WillBeHeapHashSet<RawPtrWillBeWeakMember<SVGElement>> m_clients;
+    HeapHashSet<WeakMember<SVGElement>> m_clients;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGDocumentExtensions.cpp b/third_party/WebKit/Source/core/svg/SVGDocumentExtensions.cpp
index 4146550..3c733e25 100644
--- a/third_party/WebKit/Source/core/svg/SVGDocumentExtensions.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGDocumentExtensions.cpp
@@ -96,7 +96,7 @@
 void SVGDocumentExtensions::serviceAnimations(double monotonicAnimationStartTime)
 {
     if (RuntimeEnabledFeatures::smilEnabled()) {
-        WillBeHeapVector<RefPtrWillBeMember<SVGSVGElement>> timeContainers;
+        HeapVector<Member<SVGSVGElement>> timeContainers;
         copyToVector(m_timeContainers, timeContainers);
         for (const auto& container : timeContainers)
             container->timeContainer()->serviceAnimations(monotonicAnimationStartTime);
@@ -118,7 +118,7 @@
     // starting animations for a document will do this "latching"
     // FIXME: We hold a ref pointers to prevent a shadow tree from getting removed out from underneath us.
     // In the future we should refactor the use-element to avoid this. See https://webkit.org/b/53704
-    WillBeHeapVector<RefPtrWillBeMember<SVGSVGElement>> timeContainers;
+    HeapVector<Member<SVGSVGElement>> timeContainers;
     copyToVector(m_timeContainers, timeContainers);
     for (const auto& container : timeContainers) {
         SMILTimeContainer* timeContainer = container->timeContainer();
@@ -135,7 +135,7 @@
 
 void SVGDocumentExtensions::dispatchSVGLoadEventToOutermostSVGElements()
 {
-    WillBeHeapVector<RefPtrWillBeMember<SVGSVGElement>> timeContainers;
+    HeapVector<Member<SVGSVGElement>> timeContainers;
     copyToVector(m_timeContainers, timeContainers);
     for (const auto& container : timeContainers) {
         SVGSVGElement* outerSVG = container.get();
@@ -161,7 +161,7 @@
     if (id.isEmpty())
         return;
 
-    WillBeHeapHashMap<AtomicString, OwnPtrWillBeMember<SVGPendingElements>>::AddResult result = m_pendingResources.add(id, nullptr);
+    HeapHashMap<AtomicString, Member<SVGPendingElements>>::AddResult result = m_pendingResources.add(id, nullptr);
     if (result.isNewEntry)
         result.storedValue->value = adoptPtrWillBeNoop(new SVGPendingElements);
     result.storedValue->value->add(element);
@@ -253,13 +253,13 @@
     }
 }
 
-PassOwnPtrWillBeRawPtr<SVGDocumentExtensions::SVGPendingElements> SVGDocumentExtensions::removePendingResource(const AtomicString& id)
+RawPtr<SVGDocumentExtensions::SVGPendingElements> SVGDocumentExtensions::removePendingResource(const AtomicString& id)
 {
     ASSERT(m_pendingResources.contains(id));
     return m_pendingResources.take(id);
 }
 
-PassOwnPtrWillBeRawPtr<SVGDocumentExtensions::SVGPendingElements> SVGDocumentExtensions::removePendingResourceForRemoval(const AtomicString& id)
+RawPtr<SVGDocumentExtensions::SVGPendingElements> SVGDocumentExtensions::removePendingResourceForRemoval(const AtomicString& id)
 {
     ASSERT(m_pendingResourcesForRemoval.contains(id));
     return m_pendingResourcesForRemoval.take(id);
@@ -272,7 +272,7 @@
 
     ASSERT(!m_pendingResourcesForRemoval.contains(id));
 
-    OwnPtrWillBeMember<SVGPendingElements> existing = m_pendingResources.take(id);
+    Member<SVGPendingElements> existing = m_pendingResources.take(id);
     if (existing && !existing->isEmpty())
         m_pendingResourcesForRemoval.add(id, existing.release());
 }
diff --git a/third_party/WebKit/Source/core/svg/SVGDocumentExtensions.h b/third_party/WebKit/Source/core/svg/SVGDocumentExtensions.h
index 912769b..ae53906f 100644
--- a/third_party/WebKit/Source/core/svg/SVGDocumentExtensions.h
+++ b/third_party/WebKit/Source/core/svg/SVGDocumentExtensions.h
@@ -38,10 +38,10 @@
 class SVGElement;
 class Element;
 
-class SVGDocumentExtensions : public NoBaseWillBeGarbageCollectedFinalized<SVGDocumentExtensions> {
-    WTF_MAKE_NONCOPYABLE(SVGDocumentExtensions); USING_FAST_MALLOC_WILL_BE_REMOVED(SVGDocumentExtensions);
+class SVGDocumentExtensions : public GarbageCollectedFinalized<SVGDocumentExtensions> {
+    WTF_MAKE_NONCOPYABLE(SVGDocumentExtensions);
 public:
-    typedef WillBeHeapHashSet<RawPtrWillBeMember<Element>> SVGPendingElements;
+    typedef HeapHashSet<Member<Element>> SVGPendingElements;
     explicit SVGDocumentExtensions(Document*);
     ~SVGDocumentExtensions();
 
@@ -81,15 +81,15 @@
     DECLARE_TRACE();
 
 private:
-    RawPtrWillBeMember<Document> m_document;
-    WillBeHeapHashSet<RawPtrWillBeMember<SVGSVGElement>> m_timeContainers; // For SVG 1.2 support this will need to be made more general.
-    using SVGElementSet = WillBeHeapHashSet<RefPtrWillBeMember<SVGElement>>;
+    Member<Document> m_document;
+    HeapHashSet<Member<SVGSVGElement>> m_timeContainers; // For SVG 1.2 support this will need to be made more general.
+    using SVGElementSet = HeapHashSet<Member<SVGElement>>;
     SVGElementSet m_webAnimationsPendingSVGElements;
     HashMap<AtomicString, LayoutSVGResourceContainer*> m_resources;
-    WillBeHeapHashMap<AtomicString, OwnPtrWillBeMember<SVGPendingElements>> m_pendingResources; // Resources that are pending.
-    WillBeHeapHashMap<AtomicString, OwnPtrWillBeMember<SVGPendingElements>> m_pendingResourcesForRemoval; // Resources that are pending and scheduled for removal.
+    HeapHashMap<AtomicString, Member<SVGPendingElements>> m_pendingResources; // Resources that are pending.
+    HeapHashMap<AtomicString, Member<SVGPendingElements>> m_pendingResourcesForRemoval; // Resources that are pending and scheduled for removal.
     SVGResourcesCache m_resourcesCache;
-    WillBeHeapHashSet<RawPtrWillBeMember<SVGSVGElement>> m_relativeLengthSVGRoots; // Root SVG elements with relative length descendants.
+    HeapHashSet<Member<SVGSVGElement>> m_relativeLengthSVGRoots; // Root SVG elements with relative length descendants.
     FloatPoint m_translate;
 #if ENABLE(ASSERT)
     bool m_inRelativeLengthSVGRootsInvalidation;
@@ -105,7 +105,7 @@
     bool isElementPendingResource(Element*, const AtomicString& id) const;
     void clearHasPendingResourcesIfPossible(Element*);
     void removeElementFromPendingResources(Element*);
-    PassOwnPtrWillBeRawPtr<SVGPendingElements> removePendingResource(const AtomicString& id);
+    RawPtr<SVGPendingElements> removePendingResource(const AtomicString& id);
 
     void serviceAnimations(double monotonicAnimationStartTime);
 
@@ -114,7 +114,7 @@
     Element* removeElementFromPendingResourcesForRemoval(const AtomicString&);
 
 private:
-    PassOwnPtrWillBeRawPtr<SVGPendingElements> removePendingResourceForRemoval(const AtomicString&);
+    RawPtr<SVGPendingElements> removePendingResourceForRemoval(const AtomicString&);
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGElement.cpp b/third_party/WebKit/Source/core/svg/SVGElement.cpp
index 4edbe0e..7ece432b 100644
--- a/third_party/WebKit/Source/core/svg/SVGElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGElement.cpp
@@ -157,7 +157,7 @@
     if (hasSVGRareData())
         return svgRareData();
 
-    m_SVGRareData = adoptPtrWillBeNoop(new SVGElementRareData(this));
+    m_SVGRareData = new SVGElementRareData(this);
     return m_SVGRareData.get();
 }
 
@@ -265,7 +265,7 @@
     }
 }
 
-void SVGElement::setWebAnimatedAttribute(const QualifiedName& attribute, PassRefPtrWillBeRawPtr<SVGPropertyBase> value)
+void SVGElement::setWebAnimatedAttribute(const QualifiedName& attribute, RawPtr<SVGPropertyBase> value)
 {
     updateInstancesAnimatedAttribute(this, attribute, [&value](SVGAnimatedPropertyBase& animatedProperty) {
         animatedProperty.setAnimatedValue(value.get());
@@ -517,7 +517,7 @@
     ASSERT(instance);
     ASSERT(instance->inUseShadowTree());
 
-    WillBeHeapHashSet<RawPtrWillBeWeakMember<SVGElement>>& instances = ensureSVGRareData()->elementInstances();
+    HeapHashSet<WeakMember<SVGElement>>& instances = ensureSVGRareData()->elementInstances();
     ASSERT(!instances.contains(instance));
 
     instances.add(instance);
@@ -531,18 +531,18 @@
     if (!hasSVGRareData())
         return;
 
-    WillBeHeapHashSet<RawPtrWillBeWeakMember<SVGElement>>& instances = svgRareData()->elementInstances();
+    HeapHashSet<WeakMember<SVGElement>>& instances = svgRareData()->elementInstances();
 
     instances.remove(instance);
 }
 
-static WillBeHeapHashSet<RawPtrWillBeWeakMember<SVGElement>>& emptyInstances()
+static HeapHashSet<WeakMember<SVGElement>>& emptyInstances()
 {
-    DEFINE_STATIC_LOCAL(OwnPtrWillBePersistent<WillBeHeapHashSet<RawPtrWillBeWeakMember<SVGElement>>>, emptyInstances, (adoptPtrWillBeNoop(new WillBeHeapHashSet<RawPtrWillBeWeakMember<SVGElement>>())));
+    DEFINE_STATIC_LOCAL(Persistent<HeapHashSet<WeakMember<SVGElement>>>, emptyInstances, (new HeapHashSet<WeakMember<SVGElement>>()));
     return *emptyInstances;
 }
 
-const WillBeHeapHashSet<RawPtrWillBeWeakMember<SVGElement>>& SVGElement::instancesForElement() const
+const HeapHashSet<WeakMember<SVGElement>>& SVGElement::instancesForElement() const
 {
     if (!hasSVGRareData())
         return emptyInstances();
@@ -715,9 +715,9 @@
     return AnimatedUnknown;
 }
 
-void SVGElement::addToPropertyMap(PassRefPtrWillBeRawPtr<SVGAnimatedPropertyBase> passProperty)
+void SVGElement::addToPropertyMap(RawPtr<SVGAnimatedPropertyBase> passProperty)
 {
-    RefPtrWillBeRawPtr<SVGAnimatedPropertyBase> property(passProperty);
+    RawPtr<SVGAnimatedPropertyBase> property(passProperty);
     QualifiedName attributeName = property->attributeName();
     m_attributeToPropertyMap.set(attributeName, property.release());
 }
@@ -757,7 +757,7 @@
     return true;
 }
 
-static inline void collectInstancesForSVGElement(SVGElement* element, WillBeHeapHashSet<RawPtrWillBeWeakMember<SVGElement>>& instances)
+static inline void collectInstancesForSVGElement(SVGElement* element, HeapHashSet<WeakMember<SVGElement>>& instances)
 {
     ASSERT(element);
     if (element->containingShadowRoot())
@@ -768,16 +768,16 @@
     instances = element->instancesForElement();
 }
 
-bool SVGElement::addEventListenerInternal(const AtomicString& eventType, PassRefPtrWillBeRawPtr<EventListener> prpListener, const EventListenerOptions& options)
+bool SVGElement::addEventListenerInternal(const AtomicString& eventType, RawPtr<EventListener> prpListener, const EventListenerOptions& options)
 {
-    RefPtrWillBeRawPtr<EventListener> listener = prpListener;
+    RawPtr<EventListener> listener = prpListener;
 
     // Add event listener to regular DOM element
     if (!Node::addEventListenerInternal(eventType, listener, options))
         return false;
 
     // Add event listener to all shadow tree DOM element instances
-    WillBeHeapHashSet<RawPtrWillBeWeakMember<SVGElement>> instances;
+    HeapHashSet<WeakMember<SVGElement>> instances;
     collectInstancesForSVGElement(this, instances);
     for (SVGElement* element : instances) {
         bool result = element->Node::addEventListenerInternal(eventType, listener, options);
@@ -787,16 +787,16 @@
     return true;
 }
 
-bool SVGElement::removeEventListenerInternal(const AtomicString& eventType, PassRefPtrWillBeRawPtr<EventListener> prpListener, const EventListenerOptions& options)
+bool SVGElement::removeEventListenerInternal(const AtomicString& eventType, RawPtr<EventListener> prpListener, const EventListenerOptions& options)
 {
-    RefPtrWillBeRawPtr<EventListener> listener = prpListener;
+    RawPtr<EventListener> listener = prpListener;
 
     // Remove event listener from regular DOM element
     if (!Node::removeEventListenerInternal(eventType, listener, options))
         return false;
 
     // Remove event listener from all shadow tree DOM element instances
-    WillBeHeapHashSet<RawPtrWillBeWeakMember<SVGElement>> instances;
+    HeapHashSet<WeakMember<SVGElement>> instances;
     collectInstancesForSVGElement(this, instances);
     for (SVGElement* shadowTreeElement : instances) {
         ASSERT(shadowTreeElement);
@@ -841,7 +841,7 @@
         return;
 
     // Save the next parent to dispatch to in case dispatching the event mutates the tree.
-    RefPtrWillBeRawPtr<Element> parent = parentOrShadowHostElement();
+    RawPtr<Element> parent = parentOrShadowHostElement();
     if (!sendSVGLoadEventIfPossible())
         return;
 
@@ -939,7 +939,7 @@
 
         elementData()->m_animatedSVGAttributesAreDirty = false;
     } else {
-        RefPtrWillBeRawPtr<SVGAnimatedPropertyBase> property = m_attributeToPropertyMap.get(name);
+        RawPtr<SVGAnimatedPropertyBase> property = m_attributeToPropertyMap.get(name);
         if (property && property->needsSynchronizeAttribute())
             property->synchronizeAttribute();
     }
@@ -1008,7 +1008,7 @@
     if (instanceUpdatesBlocked())
         return;
 
-    const WillBeHeapHashSet<RawPtrWillBeWeakMember<SVGElement>>& set = instancesForElement();
+    const HeapHashSet<WeakMember<SVGElement>>& set = instancesForElement();
     if (set.isEmpty())
         return;
 
@@ -1173,7 +1173,7 @@
     const SVGElementSet& incomingReferences = svgRareData()->incomingReferences();
 
     // Iterate on a snapshot as |incomingReferences| may be altered inside loop.
-    WillBeHeapVector<RawPtrWillBeMember<SVGElement>> incomingReferencesSnapshot;
+    HeapVector<Member<SVGElement>> incomingReferencesSnapshot;
     copyToVector(incomingReferences, incomingReferencesSnapshot);
 
     // Force rebuilding the |sourceElement| so it knows about this change.
diff --git a/third_party/WebKit/Source/core/svg/SVGElement.h b/third_party/WebKit/Source/core/svg/SVGElement.h
index 8fde0f4..1eb54660 100644
--- a/third_party/WebKit/Source/core/svg/SVGElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGElement.h
@@ -50,7 +50,7 @@
 class SVGSVGElement;
 class SVGUseElement;
 
-typedef WillBeHeapHashSet<RawPtrWillBeMember<SVGElement>> SVGElementSet;
+typedef HeapHashSet<Member<SVGElement>> SVGElementSet;
 
 class CORE_EXPORT SVGElement : public Element {
     DEFINE_WRAPPERTYPEINFO();
@@ -87,7 +87,7 @@
 
     void ensureAttributeAnimValUpdated();
 
-    void setWebAnimatedAttribute(const QualifiedName& attribute, PassRefPtrWillBeRawPtr<SVGPropertyBase>);
+    void setWebAnimatedAttribute(const QualifiedName& attribute, RawPtr<SVGPropertyBase>);
     void clearWebAnimatedAttributes();
 
     SVGSVGElement* ownerSVGElement() const;
@@ -119,7 +119,7 @@
     void invalidateSVGAttributes() { ensureUniqueElementData().m_animatedSVGAttributesAreDirty = true; }
     void invalidateSVGPresentationAttributeStyle() { ensureUniqueElementData().m_presentationAttributeStyleIsDirty = true; }
 
-    const WillBeHeapHashSet<RawPtrWillBeWeakMember<SVGElement>>& instancesForElement() const;
+    const HeapHashSet<WeakMember<SVGElement>>& instancesForElement() const;
     void mapInstanceToElement(SVGElement*);
     void removeInstanceMapping(SVGElement*);
 
@@ -151,7 +151,7 @@
 
     void invalidateRelativeLengthClients(SubtreeLayoutScope* = 0);
 
-    void addToPropertyMap(PassRefPtrWillBeRawPtr<SVGAnimatedPropertyBase>);
+    void addToPropertyMap(RawPtr<SVGAnimatedPropertyBase>);
 
     SVGAnimatedString* className() { return m_className.get(); }
 
@@ -171,7 +171,7 @@
         ~InvalidationGuard() { m_element->invalidateInstances(); }
 
     private:
-        RawPtrWillBeMember<SVGElement> m_element;
+        Member<SVGElement> m_element;
     };
 
     class InstanceUpdateBlocker {
@@ -182,7 +182,7 @@
         ~InstanceUpdateBlocker();
 
     private:
-        RawPtrWillBeMember<SVGElement> m_targetElement;
+        Member<SVGElement> m_targetElement;
     };
 
     void invalidateInstances();
@@ -227,8 +227,8 @@
     void reportAttributeParsingError(SVGParsingError, const QualifiedName&, const AtomicString&);
     bool hasFocusEventListeners() const;
 
-    bool addEventListenerInternal(const AtomicString& eventType, PassRefPtrWillBeRawPtr<EventListener>, const EventListenerOptions&) final;
-    bool removeEventListenerInternal(const AtomicString& eventType, PassRefPtrWillBeRawPtr<EventListener>, const EventListenerOptions&) final;
+    bool addEventListenerInternal(const AtomicString& eventType, RawPtr<EventListener>, const EventListenerOptions&) final;
+    bool removeEventListenerInternal(const AtomicString& eventType, RawPtr<EventListener>, const EventListenerOptions&) final;
 
 private:
     bool isSVGElement() const = delete; // This will catch anyone doing an unnecessary check.
@@ -240,17 +240,17 @@
 
     void buildPendingResourcesIfNeeded();
 
-    WillBeHeapHashSet<RawPtrWillBeWeakMember<SVGElement>> m_elementsWithRelativeLengths;
+    HeapHashSet<WeakMember<SVGElement>> m_elementsWithRelativeLengths;
 
-    typedef WillBeHeapHashMap<QualifiedName, RefPtrWillBeMember<SVGAnimatedPropertyBase>> AttributeToPropertyMap;
+    typedef HeapHashMap<QualifiedName, Member<SVGAnimatedPropertyBase>> AttributeToPropertyMap;
     AttributeToPropertyMap m_attributeToPropertyMap;
 
 #if ENABLE(ASSERT)
     bool m_inRelativeLengthClientsInvalidation;
 #endif
 
-    OwnPtrWillBeMember<SVGElementRareData> m_SVGRareData;
-    RefPtrWillBeMember<SVGAnimatedString> m_className;
+    Member<SVGElementRareData> m_SVGRareData;
+    Member<SVGAnimatedString> m_className;
 };
 
 struct SVGAttributeHashTranslator {
@@ -283,8 +283,8 @@
     inline bool is##thisType(const SVGElement* element) { return element && is##thisType(*element); } \
     inline bool is##thisType(const Node& node) { return node.isSVGElement() ? is##thisType(toSVGElement(node)) : false; } \
     inline bool is##thisType(const Node* node) { return node && is##thisType(*node); } \
-    template<typename T> inline bool is##thisType(const PassRefPtrWillBeRawPtr<T>& node) { return is##thisType(node.get()); } \
-    template<typename T> inline bool is##thisType(const RefPtrWillBeMember<T>& node) { return is##thisType(node.get()); } \
+    template<typename T> inline bool is##thisType(const RawPtr<T>& node) { return is##thisType(node.get()); } \
+    template<typename T> inline bool is##thisType(const Member<T>& node) { return is##thisType(node.get()); } \
     template <> inline bool isElementOfType<const thisType>(const SVGElement& element) { return is##thisType(element); } \
     DEFINE_ELEMENT_TYPE_CASTS_WITH_FUNCTION(thisType)
 
diff --git a/third_party/WebKit/Source/core/svg/SVGElementRareData.h b/third_party/WebKit/Source/core/svg/SVGElementRareData.h
index 1ebfff1..97d5ee0 100644
--- a/third_party/WebKit/Source/core/svg/SVGElementRareData.h
+++ b/third_party/WebKit/Source/core/svg/SVGElementRareData.h
@@ -32,8 +32,8 @@
 class CSSCursorImageValue;
 class SVGCursorElement;
 
-class SVGElementRareData : public NoBaseWillBeGarbageCollectedFinalized<SVGElementRareData> {
-    WTF_MAKE_NONCOPYABLE(SVGElementRareData); USING_FAST_MALLOC_WILL_BE_REMOVED(SVGElementRareData);
+class SVGElementRareData : public GarbageCollectedFinalized<SVGElementRareData> {
+    WTF_MAKE_NONCOPYABLE(SVGElementRareData);
 public:
     SVGElementRareData(SVGElement* owner)
 #if ENABLE(OILPAN)
@@ -56,8 +56,8 @@
     SVGElementSet& incomingReferences() { return m_incomingReferences; }
     const SVGElementSet& incomingReferences() const { return m_incomingReferences; }
 
-    WillBeHeapHashSet<RawPtrWillBeWeakMember<SVGElement>>& elementInstances() { return m_elementInstances; }
-    const WillBeHeapHashSet<RawPtrWillBeWeakMember<SVGElement>>& elementInstances() const { return m_elementInstances; }
+    HeapHashSet<WeakMember<SVGElement>>& elementInstances() { return m_elementInstances; }
+    const HeapHashSet<WeakMember<SVGElement>>& elementInstances() const { return m_elementInstances; }
 
     bool instanceUpdatesBlocked() const { return m_instancesUpdatesBlocked; }
     void setInstanceUpdatesBlocked(bool value) { m_instancesUpdatesBlocked = value; }
@@ -96,16 +96,16 @@
 #endif
     SVGElementSet m_outgoingReferences;
     SVGElementSet m_incomingReferences;
-    WillBeHeapHashSet<RawPtrWillBeWeakMember<SVGElement>> m_elementInstances;
-    RawPtrWillBeWeakMember<SVGCursorElement> m_cursorElement;
-    RawPtrWillBeWeakMember<CSSCursorImageValue> m_cursorImageValue;
-    RefPtrWillBeMember<SVGElement> m_correspondingElement;
+    HeapHashSet<WeakMember<SVGElement>> m_elementInstances;
+    WeakMember<SVGCursorElement> m_cursorElement;
+    WeakMember<CSSCursorImageValue> m_cursorImageValue;
+    Member<SVGElement> m_correspondingElement;
     bool m_instancesUpdatesBlocked : 1;
     bool m_useOverrideComputedStyle : 1;
     bool m_needsOverrideComputedStyleUpdate : 1;
     bool m_webAnimatedAttributesDirty : 1;
     HashSet<const QualifiedName*> m_webAnimatedAttributes;
-    RefPtrWillBeMember<MutableStylePropertySet> m_animatedSMILStyleProperties;
+    Member<MutableStylePropertySet> m_animatedSMILStyleProperties;
     RefPtr<ComputedStyle> m_overrideComputedStyle;
     // Used by <animateMotion>
     AffineTransform m_animateMotionTransform;
diff --git a/third_party/WebKit/Source/core/svg/SVGEllipseElement.h b/third_party/WebKit/Source/core/svg/SVGEllipseElement.h
index dcc8ab8..2dd697e3 100644
--- a/third_party/WebKit/Source/core/svg/SVGEllipseElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGEllipseElement.h
@@ -56,10 +56,10 @@
 
     LayoutObject* createLayoutObject(const ComputedStyle&) override;
 
-    RefPtrWillBeMember<SVGAnimatedLength> m_cx;
-    RefPtrWillBeMember<SVGAnimatedLength> m_cy;
-    RefPtrWillBeMember<SVGAnimatedLength> m_rx;
-    RefPtrWillBeMember<SVGAnimatedLength> m_ry;
+    Member<SVGAnimatedLength> m_cx;
+    Member<SVGAnimatedLength> m_cy;
+    Member<SVGAnimatedLength> m_rx;
+    Member<SVGAnimatedLength> m_ry;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGEnumeration.cpp b/third_party/WebKit/Source/core/svg/SVGEnumeration.cpp
index d03b995..ebe3f8f 100644
--- a/third_party/WebKit/Source/core/svg/SVGEnumeration.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGEnumeration.cpp
@@ -40,9 +40,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<SVGPropertyBase> SVGEnumerationBase::cloneForAnimation(const String& value) const
+RawPtr<SVGPropertyBase> SVGEnumerationBase::cloneForAnimation(const String& value) const
 {
-    RefPtrWillBeRawPtr<SVGEnumerationBase> svgEnumeration = clone();
+    RawPtr<SVGEnumerationBase> svgEnumeration = clone();
     svgEnumeration->setValueAsString(value);
     return svgEnumeration.release();
 }
@@ -80,12 +80,12 @@
     return SVGParseStatus::ExpectedEnumeration;
 }
 
-void SVGEnumerationBase::add(PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*)
+void SVGEnumerationBase::add(RawPtr<SVGPropertyBase>, SVGElement*)
 {
     ASSERT_NOT_REACHED();
 }
 
-void SVGEnumerationBase::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, PassRefPtrWillBeRawPtr<SVGPropertyBase> from, PassRefPtrWillBeRawPtr<SVGPropertyBase> to, PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*)
+void SVGEnumerationBase::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> from, RawPtr<SVGPropertyBase> to, RawPtr<SVGPropertyBase>, SVGElement*)
 {
     ASSERT(animationElement);
     unsigned short fromEnumeration = animationElement->getAnimationMode() == ToAnimation ? m_value : toSVGEnumerationBase(from)->value();
@@ -94,7 +94,7 @@
     animationElement->animateDiscreteType<unsigned short>(percentage, fromEnumeration, toEnumeration, m_value);
 }
 
-float SVGEnumerationBase::calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*)
+float SVGEnumerationBase::calculateDistance(RawPtr<SVGPropertyBase>, SVGElement*)
 {
     // No paced animations for boolean.
     return -1;
diff --git a/third_party/WebKit/Source/core/svg/SVGEnumeration.h b/third_party/WebKit/Source/core/svg/SVGEnumeration.h
index 3eda15a..efc3885 100644
--- a/third_party/WebKit/Source/core/svg/SVGEnumeration.h
+++ b/third_party/WebKit/Source/core/svg/SVGEnumeration.h
@@ -51,15 +51,15 @@
     void setValue(unsigned short);
 
     // SVGPropertyBase:
-    virtual PassRefPtrWillBeRawPtr<SVGEnumerationBase> clone() const = 0;
-    PassRefPtrWillBeRawPtr<SVGPropertyBase> cloneForAnimation(const String&) const override;
+    virtual RawPtr<SVGEnumerationBase> clone() const = 0;
+    RawPtr<SVGPropertyBase> cloneForAnimation(const String&) const override;
 
     String valueAsString() const override;
     SVGParsingError setValueAsString(const String&);
 
-    void add(PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*) override;
-    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, PassRefPtrWillBeRawPtr<SVGPropertyBase> from, PassRefPtrWillBeRawPtr<SVGPropertyBase> to, PassRefPtrWillBeRawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement*) override;
-    float calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase> to, SVGElement*) override;
+    void add(RawPtr<SVGPropertyBase>, SVGElement*) override;
+    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> from, RawPtr<SVGPropertyBase> to, RawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement*) override;
+    float calculateDistance(RawPtr<SVGPropertyBase> to, SVGElement*) override;
 
     static AnimatedPropertyType classType() { return AnimatedEnumeration; }
 
@@ -99,14 +99,14 @@
 template<typename Enum>
 class SVGEnumeration : public SVGEnumerationBase {
 public:
-    static PassRefPtrWillBeRawPtr<SVGEnumeration<Enum>> create(Enum newValue)
+    static RawPtr<SVGEnumeration<Enum>> create(Enum newValue)
     {
-        return adoptRefWillBeNoop(new SVGEnumeration<Enum>(newValue));
+        return new SVGEnumeration<Enum>(newValue);
     }
 
     ~SVGEnumeration() override {}
 
-    PassRefPtrWillBeRawPtr<SVGEnumerationBase> clone() const override
+    RawPtr<SVGEnumerationBase> clone() const override
     {
         return create(enumValue());
     }
diff --git a/third_party/WebKit/Source/core/svg/SVGFEBlendElement.cpp b/third_party/WebKit/Source/core/svg/SVGFEBlendElement.cpp
index f023f20..ec42106 100644
--- a/third_party/WebKit/Source/core/svg/SVGFEBlendElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGFEBlendElement.cpp
@@ -134,13 +134,13 @@
     SVGFilterPrimitiveStandardAttributes::svgAttributeChanged(attrName);
 }
 
-PassRefPtrWillBeRawPtr<FilterEffect> SVGFEBlendElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
+RawPtr<FilterEffect> SVGFEBlendElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
 {
     FilterEffect* input1 = filterBuilder->getEffectById(AtomicString(m_in1->currentValue()->value()));
     FilterEffect* input2 = filterBuilder->getEffectById(AtomicString(m_in2->currentValue()->value()));
     ASSERT(input1 && input2);
 
-    RefPtrWillBeRawPtr<FilterEffect> effect = FEBlend::create(filter, toWebBlendMode(m_mode->currentValue()->enumValue()));
+    RawPtr<FilterEffect> effect = FEBlend::create(filter, toWebBlendMode(m_mode->currentValue()->enumValue()));
     FilterEffectVector& inputEffects = effect->inputEffects();
     inputEffects.reserveCapacity(2);
     inputEffects.append(input1);
diff --git a/third_party/WebKit/Source/core/svg/SVGFEBlendElement.h b/third_party/WebKit/Source/core/svg/SVGFEBlendElement.h
index 137c223..f6f61a1 100644
--- a/third_party/WebKit/Source/core/svg/SVGFEBlendElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGFEBlendElement.h
@@ -65,11 +65,11 @@
 
     bool setFilterEffectAttribute(FilterEffect*, const QualifiedName& attrName) override;
     void svgAttributeChanged(const QualifiedName&) override;
-    PassRefPtrWillBeRawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
+    RawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
 
-    RefPtrWillBeMember<SVGAnimatedString> m_in1;
-    RefPtrWillBeMember<SVGAnimatedString> m_in2;
-    RefPtrWillBeMember<SVGAnimatedEnumeration<Mode>> m_mode;
+    Member<SVGAnimatedString> m_in1;
+    Member<SVGAnimatedString> m_in2;
+    Member<SVGAnimatedEnumeration<Mode>> m_mode;
 };
 
 template<> const SVGEnumerationStringEntries& getStaticStringEntries<SVGFEBlendElement::Mode>();
diff --git a/third_party/WebKit/Source/core/svg/SVGFEColorMatrixElement.cpp b/third_party/WebKit/Source/core/svg/SVGFEColorMatrixElement.cpp
index 7853de5..62c15ad3 100644
--- a/third_party/WebKit/Source/core/svg/SVGFEColorMatrixElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGFEColorMatrixElement.cpp
@@ -88,14 +88,14 @@
     SVGFilterPrimitiveStandardAttributes::svgAttributeChanged(attrName);
 }
 
-PassRefPtrWillBeRawPtr<FilterEffect> SVGFEColorMatrixElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
+RawPtr<FilterEffect> SVGFEColorMatrixElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
 {
     FilterEffect* input1 = filterBuilder->getEffectById(AtomicString(m_in1->currentValue()->value()));
     ASSERT(input1);
 
     ColorMatrixType filterType = m_type->currentValue()->enumValue();
     Vector<float> filterValues = m_values->currentValue()->toFloatVector();
-    RefPtrWillBeRawPtr<FilterEffect> effect = FEColorMatrix::create(filter, filterType, filterValues);
+    RawPtr<FilterEffect> effect = FEColorMatrix::create(filter, filterType, filterValues);
     effect->inputEffects().append(input1);
     return effect.release();
 }
diff --git a/third_party/WebKit/Source/core/svg/SVGFEColorMatrixElement.h b/third_party/WebKit/Source/core/svg/SVGFEColorMatrixElement.h
index f738bb8..c586d8f9 100644
--- a/third_party/WebKit/Source/core/svg/SVGFEColorMatrixElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGFEColorMatrixElement.h
@@ -47,12 +47,12 @@
 
     bool setFilterEffectAttribute(FilterEffect*, const QualifiedName&) override;
     void svgAttributeChanged(const QualifiedName&) override;
-    PassRefPtrWillBeRawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
+    RawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
     bool taintsOrigin(bool inputsTaintOrigin) const override;
 
-    RefPtrWillBeMember<SVGAnimatedNumberList> m_values;
-    RefPtrWillBeMember<SVGAnimatedString> m_in1;
-    RefPtrWillBeMember<SVGAnimatedEnumeration<ColorMatrixType>> m_type;
+    Member<SVGAnimatedNumberList> m_values;
+    Member<SVGAnimatedString> m_in1;
+    Member<SVGAnimatedEnumeration<ColorMatrixType>> m_type;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGFEComponentTransferElement.cpp b/third_party/WebKit/Source/core/svg/SVGFEComponentTransferElement.cpp
index dfb4906..5231e5e 100644
--- a/third_party/WebKit/Source/core/svg/SVGFEComponentTransferElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGFEComponentTransferElement.cpp
@@ -57,7 +57,7 @@
     SVGFilterPrimitiveStandardAttributes::svgAttributeChanged(attrName);
 }
 
-PassRefPtrWillBeRawPtr<FilterEffect> SVGFEComponentTransferElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
+RawPtr<FilterEffect> SVGFEComponentTransferElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
 {
     FilterEffect* input1 = filterBuilder->getEffectById(AtomicString(m_in1->currentValue()->value()));
     ASSERT(input1);
@@ -78,7 +78,7 @@
             alpha = toSVGFEFuncAElement(*element).transferFunction();
     }
 
-    RefPtrWillBeRawPtr<FilterEffect> effect = FEComponentTransfer::create(filter, red, green, blue, alpha);
+    RawPtr<FilterEffect> effect = FEComponentTransfer::create(filter, red, green, blue, alpha);
     effect->inputEffects().append(input1);
     return effect.release();
 }
diff --git a/third_party/WebKit/Source/core/svg/SVGFEComponentTransferElement.h b/third_party/WebKit/Source/core/svg/SVGFEComponentTransferElement.h
index c2c71ba..4c8bc8a 100644
--- a/third_party/WebKit/Source/core/svg/SVGFEComponentTransferElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGFEComponentTransferElement.h
@@ -39,9 +39,9 @@
     explicit SVGFEComponentTransferElement(Document&);
 
     void svgAttributeChanged(const QualifiedName&) override;
-    PassRefPtrWillBeRawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
+    RawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
 
-    RefPtrWillBeMember<SVGAnimatedString> m_in1;
+    Member<SVGAnimatedString> m_in1;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGFECompositeElement.cpp b/third_party/WebKit/Source/core/svg/SVGFECompositeElement.cpp
index ff8d38af..af760bbc 100644
--- a/third_party/WebKit/Source/core/svg/SVGFECompositeElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGFECompositeElement.cpp
@@ -119,13 +119,13 @@
     SVGFilterPrimitiveStandardAttributes::svgAttributeChanged(attrName);
 }
 
-PassRefPtrWillBeRawPtr<FilterEffect> SVGFECompositeElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
+RawPtr<FilterEffect> SVGFECompositeElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
 {
     FilterEffect* input1 = filterBuilder->getEffectById(AtomicString(m_in1->currentValue()->value()));
     FilterEffect* input2 = filterBuilder->getEffectById(AtomicString(m_in2->currentValue()->value()));
     ASSERT(input1 && input2);
 
-    RefPtrWillBeRawPtr<FilterEffect> effect = FEComposite::create(filter, m_svgOperator->currentValue()->enumValue(), m_k1->currentValue()->value(), m_k2->currentValue()->value(), m_k3->currentValue()->value(), m_k4->currentValue()->value());
+    RawPtr<FilterEffect> effect = FEComposite::create(filter, m_svgOperator->currentValue()->enumValue(), m_k1->currentValue()->value(), m_k2->currentValue()->value(), m_k3->currentValue()->value(), m_k4->currentValue()->value());
     FilterEffectVector& inputEffects = effect->inputEffects();
     inputEffects.reserveCapacity(2);
     inputEffects.append(input1);
diff --git a/third_party/WebKit/Source/core/svg/SVGFECompositeElement.h b/third_party/WebKit/Source/core/svg/SVGFECompositeElement.h
index b0d16d26..73eef57 100644
--- a/third_party/WebKit/Source/core/svg/SVGFECompositeElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGFECompositeElement.h
@@ -51,15 +51,15 @@
 
     bool setFilterEffectAttribute(FilterEffect*, const QualifiedName&) override;
     void svgAttributeChanged(const QualifiedName&) override;
-    PassRefPtrWillBeRawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
+    RawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
 
-    RefPtrWillBeMember<SVGAnimatedNumber> m_k1;
-    RefPtrWillBeMember<SVGAnimatedNumber> m_k2;
-    RefPtrWillBeMember<SVGAnimatedNumber> m_k3;
-    RefPtrWillBeMember<SVGAnimatedNumber> m_k4;
-    RefPtrWillBeMember<SVGAnimatedString> m_in1;
-    RefPtrWillBeMember<SVGAnimatedString> m_in2;
-    RefPtrWillBeMember<SVGAnimatedEnumeration<CompositeOperationType>> m_svgOperator;
+    Member<SVGAnimatedNumber> m_k1;
+    Member<SVGAnimatedNumber> m_k2;
+    Member<SVGAnimatedNumber> m_k3;
+    Member<SVGAnimatedNumber> m_k4;
+    Member<SVGAnimatedString> m_in1;
+    Member<SVGAnimatedString> m_in2;
+    Member<SVGAnimatedEnumeration<CompositeOperationType>> m_svgOperator;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGFEConvolveMatrixElement.cpp b/third_party/WebKit/Source/core/svg/SVGFEConvolveMatrixElement.cpp
index 7a8e678b..87fdb36 100644
--- a/third_party/WebKit/Source/core/svg/SVGFEConvolveMatrixElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGFEConvolveMatrixElement.cpp
@@ -42,9 +42,9 @@
 
 class SVGAnimatedOrder : public SVGAnimatedIntegerOptionalInteger {
 public:
-    static PassRefPtrWillBeRawPtr<SVGAnimatedOrder> create(SVGElement* contextElement)
+    static RawPtr<SVGAnimatedOrder> create(SVGElement* contextElement)
     {
-        return adoptRefWillBeNoop(new SVGAnimatedOrder(contextElement));
+        return new SVGAnimatedOrder(contextElement);
     }
 
     SVGParsingError setBaseValueAsString(const String&) override;
@@ -162,7 +162,7 @@
     SVGFilterPrimitiveStandardAttributes::svgAttributeChanged(attrName);
 }
 
-PassRefPtrWillBeRawPtr<FilterEffect> SVGFEConvolveMatrixElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
+RawPtr<FilterEffect> SVGFEConvolveMatrixElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
 {
     FilterEffect* input1 = filterBuilder->getEffectById(AtomicString(m_in1->currentValue()->value()));
     ASSERT(input1);
@@ -186,7 +186,7 @@
 
     float divisorValue = m_divisor->currentValue()->value();
     if (!m_divisor->isSpecified()) {
-        RefPtrWillBeRawPtr<SVGNumberList> kernelMatrix = m_kernelMatrix->currentValue();
+        RawPtr<SVGNumberList> kernelMatrix = m_kernelMatrix->currentValue();
         size_t kernelMatrixSize = kernelMatrix->length();
         for (size_t i = 0; i < kernelMatrixSize; ++i)
             divisorValue += kernelMatrix->at(i)->value();
@@ -194,7 +194,7 @@
             divisorValue = 1;
     }
 
-    RefPtrWillBeRawPtr<FilterEffect> effect = FEConvolveMatrix::create(filter,
+    RawPtr<FilterEffect> effect = FEConvolveMatrix::create(filter,
         IntSize(orderXValue, orderYValue), divisorValue,
         m_bias->currentValue()->value(), IntPoint(targetXValue, targetYValue), m_edgeMode->currentValue()->enumValue(),
         m_preserveAlpha->currentValue()->value(), m_kernelMatrix->currentValue()->toFloatVector());
diff --git a/third_party/WebKit/Source/core/svg/SVGFEConvolveMatrixElement.h b/third_party/WebKit/Source/core/svg/SVGFEConvolveMatrixElement.h
index e634d6e8..2359487 100644
--- a/third_party/WebKit/Source/core/svg/SVGFEConvolveMatrixElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGFEConvolveMatrixElement.h
@@ -60,18 +60,18 @@
 
     bool setFilterEffectAttribute(FilterEffect*, const QualifiedName&) override;
     void svgAttributeChanged(const QualifiedName&) override;
-    PassRefPtrWillBeRawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
+    RawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
 
-    RefPtrWillBeMember<SVGAnimatedNumber> m_bias;
-    RefPtrWillBeMember<SVGAnimatedNumber> m_divisor;
-    RefPtrWillBeMember<SVGAnimatedString> m_in1;
-    RefPtrWillBeMember<SVGAnimatedEnumeration<EdgeModeType>> m_edgeMode;
-    RefPtrWillBeMember<SVGAnimatedNumberList> m_kernelMatrix;
-    RefPtrWillBeMember<SVGAnimatedNumberOptionalNumber> m_kernelUnitLength;
-    RefPtrWillBeMember<SVGAnimatedIntegerOptionalInteger> m_order;
-    RefPtrWillBeMember<SVGAnimatedBoolean> m_preserveAlpha;
-    RefPtrWillBeMember<SVGAnimatedInteger> m_targetX;
-    RefPtrWillBeMember<SVGAnimatedInteger> m_targetY;
+    Member<SVGAnimatedNumber> m_bias;
+    Member<SVGAnimatedNumber> m_divisor;
+    Member<SVGAnimatedString> m_in1;
+    Member<SVGAnimatedEnumeration<EdgeModeType>> m_edgeMode;
+    Member<SVGAnimatedNumberList> m_kernelMatrix;
+    Member<SVGAnimatedNumberOptionalNumber> m_kernelUnitLength;
+    Member<SVGAnimatedIntegerOptionalInteger> m_order;
+    Member<SVGAnimatedBoolean> m_preserveAlpha;
+    Member<SVGAnimatedInteger> m_targetX;
+    Member<SVGAnimatedInteger> m_targetY;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGFEDiffuseLightingElement.cpp b/third_party/WebKit/Source/core/svg/SVGFEDiffuseLightingElement.cpp
index a904821..03d4a7b 100644
--- a/third_party/WebKit/Source/core/svg/SVGFEDiffuseLightingElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGFEDiffuseLightingElement.cpp
@@ -118,7 +118,7 @@
     primitiveAttributeChanged(attrName);
 }
 
-PassRefPtrWillBeRawPtr<FilterEffect> SVGFEDiffuseLightingElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
+RawPtr<FilterEffect> SVGFEDiffuseLightingElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
 {
     FilterEffect* input1 = filterBuilder->getEffectById(AtomicString(m_in1->currentValue()->value()));
     ASSERT(input1);
@@ -133,7 +133,7 @@
     const SVGFELightElement* lightNode = SVGFELightElement::findLightElement(*this);
     RefPtr<LightSource> lightSource = lightNode ? lightNode->lightSource(filter) : nullptr;
 
-    RefPtrWillBeRawPtr<FilterEffect> effect = FEDiffuseLighting::create(filter,
+    RawPtr<FilterEffect> effect = FEDiffuseLighting::create(filter,
         color,
         m_surfaceScale->currentValue()->value(),
         m_diffuseConstant->currentValue()->value(),
diff --git a/third_party/WebKit/Source/core/svg/SVGFEDiffuseLightingElement.h b/third_party/WebKit/Source/core/svg/SVGFEDiffuseLightingElement.h
index f6d7a10..abb5f95 100644
--- a/third_party/WebKit/Source/core/svg/SVGFEDiffuseLightingElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGFEDiffuseLightingElement.h
@@ -49,12 +49,12 @@
 
     bool setFilterEffectAttribute(FilterEffect*, const QualifiedName&) override;
     void svgAttributeChanged(const QualifiedName&) override;
-    PassRefPtrWillBeRawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
+    RawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
 
-    RefPtrWillBeMember<SVGAnimatedNumber> m_diffuseConstant;
-    RefPtrWillBeMember<SVGAnimatedNumber> m_surfaceScale;
-    RefPtrWillBeMember<SVGAnimatedNumberOptionalNumber> m_kernelUnitLength;
-    RefPtrWillBeMember<SVGAnimatedString> m_in1;
+    Member<SVGAnimatedNumber> m_diffuseConstant;
+    Member<SVGAnimatedNumber> m_surfaceScale;
+    Member<SVGAnimatedNumberOptionalNumber> m_kernelUnitLength;
+    Member<SVGAnimatedString> m_in1;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGFEDisplacementMapElement.cpp b/third_party/WebKit/Source/core/svg/SVGFEDisplacementMapElement.cpp
index a2487bf..78207441 100644
--- a/third_party/WebKit/Source/core/svg/SVGFEDisplacementMapElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGFEDisplacementMapElement.cpp
@@ -95,13 +95,13 @@
     SVGFilterPrimitiveStandardAttributes::svgAttributeChanged(attrName);
 }
 
-PassRefPtrWillBeRawPtr<FilterEffect> SVGFEDisplacementMapElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
+RawPtr<FilterEffect> SVGFEDisplacementMapElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
 {
     FilterEffect* input1 = filterBuilder->getEffectById(AtomicString(m_in1->currentValue()->value()));
     FilterEffect* input2 = filterBuilder->getEffectById(AtomicString(m_in2->currentValue()->value()));
     ASSERT(input1 && input2);
 
-    RefPtrWillBeRawPtr<FilterEffect> effect = FEDisplacementMap::create(filter, m_xChannelSelector->currentValue()->enumValue(), m_yChannelSelector->currentValue()->enumValue(), m_scale->currentValue()->value());
+    RawPtr<FilterEffect> effect = FEDisplacementMap::create(filter, m_xChannelSelector->currentValue()->enumValue(), m_yChannelSelector->currentValue()->enumValue(), m_scale->currentValue()->value());
     FilterEffectVector& inputEffects = effect->inputEffects();
     inputEffects.reserveCapacity(2);
     inputEffects.append(input1);
diff --git a/third_party/WebKit/Source/core/svg/SVGFEDisplacementMapElement.h b/third_party/WebKit/Source/core/svg/SVGFEDisplacementMapElement.h
index bd586b92..2c85b7e 100644
--- a/third_party/WebKit/Source/core/svg/SVGFEDisplacementMapElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGFEDisplacementMapElement.h
@@ -50,13 +50,13 @@
 
     bool setFilterEffectAttribute(FilterEffect*, const QualifiedName& attrName) override;
     void svgAttributeChanged(const QualifiedName&) override;
-    PassRefPtrWillBeRawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
+    RawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
 
-    RefPtrWillBeMember<SVGAnimatedNumber> m_scale;
-    RefPtrWillBeMember<SVGAnimatedString> m_in1;
-    RefPtrWillBeMember<SVGAnimatedString> m_in2;
-    RefPtrWillBeMember<SVGAnimatedEnumeration<ChannelSelectorType>> m_xChannelSelector;
-    RefPtrWillBeMember<SVGAnimatedEnumeration<ChannelSelectorType>> m_yChannelSelector;
+    Member<SVGAnimatedNumber> m_scale;
+    Member<SVGAnimatedString> m_in1;
+    Member<SVGAnimatedString> m_in2;
+    Member<SVGAnimatedEnumeration<ChannelSelectorType>> m_xChannelSelector;
+    Member<SVGAnimatedEnumeration<ChannelSelectorType>> m_yChannelSelector;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGFEDropShadowElement.cpp b/third_party/WebKit/Source/core/svg/SVGFEDropShadowElement.cpp
index 15ad658..39e9270 100644
--- a/third_party/WebKit/Source/core/svg/SVGFEDropShadowElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGFEDropShadowElement.cpp
@@ -73,7 +73,7 @@
     SVGFilterPrimitiveStandardAttributes::svgAttributeChanged(attrName);
 }
 
-PassRefPtrWillBeRawPtr<FilterEffect> SVGFEDropShadowElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
+RawPtr<FilterEffect> SVGFEDropShadowElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
 {
     LayoutObject* layoutObject = this->layoutObject();
     if (!layoutObject)
@@ -91,7 +91,7 @@
     // Clamp std.dev. to non-negative. (See SVGFEGaussianBlurElement::build)
     float stdDevX = std::max(0.0f, stdDeviationX()->currentValue()->value());
     float stdDevY = std::max(0.0f, stdDeviationY()->currentValue()->value());
-    RefPtrWillBeRawPtr<FilterEffect> effect = FEDropShadow::create(filter, stdDevX, stdDevY, m_dx->currentValue()->value(), m_dy->currentValue()->value(), color, opacity);
+    RawPtr<FilterEffect> effect = FEDropShadow::create(filter, stdDevX, stdDevY, m_dx->currentValue()->value(), m_dy->currentValue()->value(), color, opacity);
     effect->inputEffects().append(input1);
     return effect.release();
 }
diff --git a/third_party/WebKit/Source/core/svg/SVGFEDropShadowElement.h b/third_party/WebKit/Source/core/svg/SVGFEDropShadowElement.h
index bb0aa26..c6788179 100644
--- a/third_party/WebKit/Source/core/svg/SVGFEDropShadowElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGFEDropShadowElement.h
@@ -47,15 +47,15 @@
     explicit SVGFEDropShadowElement(Document&);
 
     void svgAttributeChanged(const QualifiedName&) override;
-    PassRefPtrWillBeRawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
+    RawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
 
     static const AtomicString& stdDeviationXIdentifier();
     static const AtomicString& stdDeviationYIdentifier();
 
-    RefPtrWillBeMember<SVGAnimatedNumber> m_dx;
-    RefPtrWillBeMember<SVGAnimatedNumber> m_dy;
-    RefPtrWillBeMember<SVGAnimatedNumberOptionalNumber> m_stdDeviation;
-    RefPtrWillBeMember<SVGAnimatedString> m_in1;
+    Member<SVGAnimatedNumber> m_dx;
+    Member<SVGAnimatedNumber> m_dy;
+    Member<SVGAnimatedNumberOptionalNumber> m_stdDeviation;
+    Member<SVGAnimatedString> m_in1;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGFEFloodElement.cpp b/third_party/WebKit/Source/core/svg/SVGFEFloodElement.cpp
index 1953212..19ce483 100644
--- a/third_party/WebKit/Source/core/svg/SVGFEFloodElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGFEFloodElement.cpp
@@ -50,7 +50,7 @@
     return false;
 }
 
-PassRefPtrWillBeRawPtr<FilterEffect> SVGFEFloodElement::build(SVGFilterBuilder*, Filter* filter)
+RawPtr<FilterEffect> SVGFEFloodElement::build(SVGFilterBuilder*, Filter* filter)
 {
     LayoutObject* layoutObject = this->layoutObject();
     if (!layoutObject)
diff --git a/third_party/WebKit/Source/core/svg/SVGFEFloodElement.h b/third_party/WebKit/Source/core/svg/SVGFEFloodElement.h
index b1f44533..4e70142 100644
--- a/third_party/WebKit/Source/core/svg/SVGFEFloodElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGFEFloodElement.h
@@ -35,7 +35,7 @@
     explicit SVGFEFloodElement(Document&);
 
     bool setFilterEffectAttribute(FilterEffect*, const QualifiedName& attrName) override;
-    PassRefPtrWillBeRawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
+    RawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGFEGaussianBlurElement.cpp b/third_party/WebKit/Source/core/svg/SVGFEGaussianBlurElement.cpp
index e32a34ef..161cbba3 100644
--- a/third_party/WebKit/Source/core/svg/SVGFEGaussianBlurElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGFEGaussianBlurElement.cpp
@@ -63,7 +63,7 @@
     SVGFilterPrimitiveStandardAttributes::svgAttributeChanged(attrName);
 }
 
-PassRefPtrWillBeRawPtr<FilterEffect> SVGFEGaussianBlurElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
+RawPtr<FilterEffect> SVGFEGaussianBlurElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
 {
     FilterEffect* input1 = filterBuilder->getEffectById(AtomicString(m_in1->currentValue()->value()));
     ASSERT(input1);
@@ -75,7 +75,7 @@
     // => Clamp to non-negative.
     float stdDevX = std::max(0.0f, stdDeviationX()->currentValue()->value());
     float stdDevY = std::max(0.0f, stdDeviationY()->currentValue()->value());
-    RefPtrWillBeRawPtr<FilterEffect> effect = FEGaussianBlur::create(filter, stdDevX, stdDevY);
+    RawPtr<FilterEffect> effect = FEGaussianBlur::create(filter, stdDevX, stdDevY);
     effect->inputEffects().append(input1);
     return effect.release();
 }
diff --git a/third_party/WebKit/Source/core/svg/SVGFEGaussianBlurElement.h b/third_party/WebKit/Source/core/svg/SVGFEGaussianBlurElement.h
index efd817d..07764bb8 100644
--- a/third_party/WebKit/Source/core/svg/SVGFEGaussianBlurElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGFEGaussianBlurElement.h
@@ -45,10 +45,10 @@
     explicit SVGFEGaussianBlurElement(Document&);
 
     void svgAttributeChanged(const QualifiedName&) override;
-    PassRefPtrWillBeRawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
+    RawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
 
-    RefPtrWillBeMember<SVGAnimatedNumberOptionalNumber> m_stdDeviation;
-    RefPtrWillBeMember<SVGAnimatedString> m_in1;
+    Member<SVGAnimatedNumberOptionalNumber> m_stdDeviation;
+    Member<SVGAnimatedString> m_in1;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGFEImageElement.cpp b/third_party/WebKit/Source/core/svg/SVGFEImageElement.cpp
index 68f188be2..5045772 100644
--- a/third_party/WebKit/Source/core/svg/SVGFEImageElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGFEImageElement.cpp
@@ -156,7 +156,7 @@
         markForLayoutAndParentResourceInvalidation(layoutObject);
 }
 
-PassRefPtrWillBeRawPtr<FilterEffect> SVGFEImageElement::build(SVGFilterBuilder*, Filter* filter)
+RawPtr<FilterEffect> SVGFEImageElement::build(SVGFilterBuilder*, Filter* filter)
 {
     if (m_cachedImage) {
         // Don't use the broken image icon on image loading errors.
diff --git a/third_party/WebKit/Source/core/svg/SVGFEImageElement.h b/third_party/WebKit/Source/core/svg/SVGFEImageElement.h
index ae6b4f5..03d63a43 100644
--- a/third_party/WebKit/Source/core/svg/SVGFEImageElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGFEImageElement.h
@@ -35,7 +35,7 @@
                                 public SVGURIReference,
                                 public ResourceClient {
     DEFINE_WRAPPERTYPEINFO();
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(SVGFEImageElement);
+    USING_GARBAGE_COLLECTED_MIXIN(SVGFEImageElement);
 public:
     DECLARE_NODE_FACTORY(SVGFEImageElement);
 
@@ -55,7 +55,7 @@
     void notifyFinished(Resource*) override;
     String debugName() const override { return "SVGFEImageElement"; }
 
-    PassRefPtrWillBeRawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
+    RawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
 
     void clearResourceReferences();
     void fetchImageResource();
@@ -64,9 +64,9 @@
     InsertionNotificationRequest insertedInto(ContainerNode*) override;
     void removedFrom(ContainerNode*) override;
 
-    RefPtrWillBeMember<SVGAnimatedPreserveAspectRatio> m_preserveAspectRatio;
+    Member<SVGAnimatedPreserveAspectRatio> m_preserveAspectRatio;
 
-    RefPtrWillBeMember<ImageResource> m_cachedImage;
+    Member<ImageResource> m_cachedImage;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGFELightElement.h b/third_party/WebKit/Source/core/svg/SVGFELightElement.h
index 6fab28e..6bb7311 100644
--- a/third_party/WebKit/Source/core/svg/SVGFELightElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGFELightElement.h
@@ -72,16 +72,16 @@
 
     bool layoutObjectIsNeeded(const ComputedStyle&) override { return false; }
 
-    RefPtrWillBeMember<SVGAnimatedNumber> m_azimuth;
-    RefPtrWillBeMember<SVGAnimatedNumber> m_elevation;
-    RefPtrWillBeMember<SVGAnimatedNumber> m_x;
-    RefPtrWillBeMember<SVGAnimatedNumber> m_y;
-    RefPtrWillBeMember<SVGAnimatedNumber> m_z;
-    RefPtrWillBeMember<SVGAnimatedNumber> m_pointsAtX;
-    RefPtrWillBeMember<SVGAnimatedNumber> m_pointsAtY;
-    RefPtrWillBeMember<SVGAnimatedNumber> m_pointsAtZ;
-    RefPtrWillBeMember<SVGAnimatedNumber> m_specularExponent;
-    RefPtrWillBeMember<SVGAnimatedNumber> m_limitingConeAngle;
+    Member<SVGAnimatedNumber> m_azimuth;
+    Member<SVGAnimatedNumber> m_elevation;
+    Member<SVGAnimatedNumber> m_x;
+    Member<SVGAnimatedNumber> m_y;
+    Member<SVGAnimatedNumber> m_z;
+    Member<SVGAnimatedNumber> m_pointsAtX;
+    Member<SVGAnimatedNumber> m_pointsAtY;
+    Member<SVGAnimatedNumber> m_pointsAtZ;
+    Member<SVGAnimatedNumber> m_specularExponent;
+    Member<SVGAnimatedNumber> m_limitingConeAngle;
 };
 
 inline bool isSVGFELightElement(const SVGElement& element)
diff --git a/third_party/WebKit/Source/core/svg/SVGFEMergeElement.cpp b/third_party/WebKit/Source/core/svg/SVGFEMergeElement.cpp
index 3ff03cd..5d888bee 100644
--- a/third_party/WebKit/Source/core/svg/SVGFEMergeElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGFEMergeElement.cpp
@@ -35,9 +35,9 @@
 
 DEFINE_NODE_FACTORY(SVGFEMergeElement)
 
-PassRefPtrWillBeRawPtr<FilterEffect> SVGFEMergeElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
+RawPtr<FilterEffect> SVGFEMergeElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
 {
-    RefPtrWillBeRawPtr<FilterEffect> effect = FEMerge::create(filter);
+    RawPtr<FilterEffect> effect = FEMerge::create(filter);
     FilterEffectVector& mergeInputs = effect->inputEffects();
     for (SVGFEMergeNodeElement* element = Traversal<SVGFEMergeNodeElement>::firstChild(*this); element; element = Traversal<SVGFEMergeNodeElement>::nextSibling(*element)) {
         FilterEffect* mergeEffect = filterBuilder->getEffectById(AtomicString(element->in1()->currentValue()->value()));
diff --git a/third_party/WebKit/Source/core/svg/SVGFEMergeElement.h b/third_party/WebKit/Source/core/svg/SVGFEMergeElement.h
index ac7e0589..e7bfd99 100644
--- a/third_party/WebKit/Source/core/svg/SVGFEMergeElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGFEMergeElement.h
@@ -34,7 +34,7 @@
 private:
     explicit SVGFEMergeElement(Document&);
 
-    PassRefPtrWillBeRawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
+    RawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
     bool taintsOrigin(bool inputsTaintOrigin) const override;
 };
 
diff --git a/third_party/WebKit/Source/core/svg/SVGFEMergeNodeElement.h b/third_party/WebKit/Source/core/svg/SVGFEMergeNodeElement.h
index 90e3efa..89dc8b8 100644
--- a/third_party/WebKit/Source/core/svg/SVGFEMergeNodeElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGFEMergeNodeElement.h
@@ -43,7 +43,7 @@
 
     bool layoutObjectIsNeeded(const ComputedStyle&) override { return false; }
 
-    RefPtrWillBeMember<SVGAnimatedString> m_in1;
+    Member<SVGAnimatedString> m_in1;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGFEMorphologyElement.cpp b/third_party/WebKit/Source/core/svg/SVGFEMorphologyElement.cpp
index db323c8..8073cc3d 100644
--- a/third_party/WebKit/Source/core/svg/SVGFEMorphologyElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGFEMorphologyElement.cpp
@@ -90,7 +90,7 @@
     SVGFilterPrimitiveStandardAttributes::svgAttributeChanged(attrName);
 }
 
-PassRefPtrWillBeRawPtr<FilterEffect> SVGFEMorphologyElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
+RawPtr<FilterEffect> SVGFEMorphologyElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
 {
     FilterEffect* input1 = filterBuilder->getEffectById(AtomicString(m_in1->currentValue()->value()));
 
@@ -104,7 +104,7 @@
     // (This is handled by FEMorphology)
     float xRadius = radiusX()->currentValue()->value();
     float yRadius = radiusY()->currentValue()->value();
-    RefPtrWillBeRawPtr<FilterEffect> effect = FEMorphology::create(filter, m_svgOperator->currentValue()->enumValue(), xRadius, yRadius);
+    RawPtr<FilterEffect> effect = FEMorphology::create(filter, m_svgOperator->currentValue()->enumValue(), xRadius, yRadius);
     effect->inputEffects().append(input1);
     return effect.release();
 }
diff --git a/third_party/WebKit/Source/core/svg/SVGFEMorphologyElement.h b/third_party/WebKit/Source/core/svg/SVGFEMorphologyElement.h
index c1aacc0..bd4941d 100644
--- a/third_party/WebKit/Source/core/svg/SVGFEMorphologyElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGFEMorphologyElement.h
@@ -47,11 +47,11 @@
 
     bool setFilterEffectAttribute(FilterEffect*, const QualifiedName&) override;
     void svgAttributeChanged(const QualifiedName&) override;
-    PassRefPtrWillBeRawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
+    RawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
 
-    RefPtrWillBeMember<SVGAnimatedNumberOptionalNumber> m_radius;
-    RefPtrWillBeMember<SVGAnimatedString> m_in1;
-    RefPtrWillBeMember<SVGAnimatedEnumeration<MorphologyOperatorType>> m_svgOperator;
+    Member<SVGAnimatedNumberOptionalNumber> m_radius;
+    Member<SVGAnimatedString> m_in1;
+    Member<SVGAnimatedEnumeration<MorphologyOperatorType>> m_svgOperator;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGFEOffsetElement.cpp b/third_party/WebKit/Source/core/svg/SVGFEOffsetElement.cpp
index c48cf95..0923ecdf 100644
--- a/third_party/WebKit/Source/core/svg/SVGFEOffsetElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGFEOffsetElement.cpp
@@ -59,12 +59,12 @@
     SVGFilterPrimitiveStandardAttributes::svgAttributeChanged(attrName);
 }
 
-PassRefPtrWillBeRawPtr<FilterEffect> SVGFEOffsetElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
+RawPtr<FilterEffect> SVGFEOffsetElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
 {
     FilterEffect* input1 = filterBuilder->getEffectById(AtomicString(m_in1->currentValue()->value()));
     ASSERT(input1);
 
-    RefPtrWillBeRawPtr<FilterEffect> effect = FEOffset::create(filter, m_dx->currentValue()->value(), m_dy->currentValue()->value());
+    RawPtr<FilterEffect> effect = FEOffset::create(filter, m_dx->currentValue()->value(), m_dy->currentValue()->value());
     effect->inputEffects().append(input1);
     return effect.release();
 }
diff --git a/third_party/WebKit/Source/core/svg/SVGFEOffsetElement.h b/third_party/WebKit/Source/core/svg/SVGFEOffsetElement.h
index 260990a..7918d41 100644
--- a/third_party/WebKit/Source/core/svg/SVGFEOffsetElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGFEOffsetElement.h
@@ -43,11 +43,11 @@
     explicit SVGFEOffsetElement(Document&);
 
     void svgAttributeChanged(const QualifiedName&) override;
-    PassRefPtrWillBeRawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
+    RawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
 
-    RefPtrWillBeMember<SVGAnimatedNumber> m_dx;
-    RefPtrWillBeMember<SVGAnimatedNumber> m_dy;
-    RefPtrWillBeMember<SVGAnimatedString> m_in1;
+    Member<SVGAnimatedNumber> m_dx;
+    Member<SVGAnimatedNumber> m_dy;
+    Member<SVGAnimatedString> m_in1;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGFESpecularLightingElement.cpp b/third_party/WebKit/Source/core/svg/SVGFESpecularLightingElement.cpp
index e468a189..ec03733 100644
--- a/third_party/WebKit/Source/core/svg/SVGFESpecularLightingElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGFESpecularLightingElement.cpp
@@ -124,7 +124,7 @@
     primitiveAttributeChanged(attrName);
 }
 
-PassRefPtrWillBeRawPtr<FilterEffect> SVGFESpecularLightingElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
+RawPtr<FilterEffect> SVGFESpecularLightingElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
 {
     FilterEffect* input1 = filterBuilder->getEffectById(AtomicString(m_in1->currentValue()->value()));
     ASSERT(input1);
@@ -139,7 +139,7 @@
     const SVGFELightElement* lightNode = SVGFELightElement::findLightElement(*this);
     RefPtr<LightSource> lightSource = lightNode ? lightNode->lightSource(filter) : nullptr;
 
-    RefPtrWillBeRawPtr<FilterEffect> effect = FESpecularLighting::create(filter,
+    RawPtr<FilterEffect> effect = FESpecularLighting::create(filter,
         color,
         m_surfaceScale->currentValue()->value(),
         m_specularConstant->currentValue()->value(),
diff --git a/third_party/WebKit/Source/core/svg/SVGFESpecularLightingElement.h b/third_party/WebKit/Source/core/svg/SVGFESpecularLightingElement.h
index 23f7f25..142e0f4 100644
--- a/third_party/WebKit/Source/core/svg/SVGFESpecularLightingElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGFESpecularLightingElement.h
@@ -52,13 +52,13 @@
 
     bool setFilterEffectAttribute(FilterEffect*, const QualifiedName&) override;
     void svgAttributeChanged(const QualifiedName&) override;
-    PassRefPtrWillBeRawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
+    RawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
 
-    RefPtrWillBeMember<SVGAnimatedNumber> m_specularConstant;
-    RefPtrWillBeMember<SVGAnimatedNumber> m_specularExponent;
-    RefPtrWillBeMember<SVGAnimatedNumber> m_surfaceScale;
-    RefPtrWillBeMember<SVGAnimatedNumberOptionalNumber> m_kernelUnitLength;
-    RefPtrWillBeMember<SVGAnimatedString> m_in1;
+    Member<SVGAnimatedNumber> m_specularConstant;
+    Member<SVGAnimatedNumber> m_specularExponent;
+    Member<SVGAnimatedNumber> m_surfaceScale;
+    Member<SVGAnimatedNumberOptionalNumber> m_kernelUnitLength;
+    Member<SVGAnimatedString> m_in1;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGFETileElement.cpp b/third_party/WebKit/Source/core/svg/SVGFETileElement.cpp
index 7fbded0..d972424 100644
--- a/third_party/WebKit/Source/core/svg/SVGFETileElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGFETileElement.cpp
@@ -52,12 +52,12 @@
     SVGFilterPrimitiveStandardAttributes::svgAttributeChanged(attrName);
 }
 
-PassRefPtrWillBeRawPtr<FilterEffect> SVGFETileElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
+RawPtr<FilterEffect> SVGFETileElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
 {
     FilterEffect* input1 = filterBuilder->getEffectById(AtomicString(m_in1->currentValue()->value()));
     ASSERT(input1);
 
-    RefPtrWillBeRawPtr<FilterEffect> effect = FETile::create(filter);
+    RawPtr<FilterEffect> effect = FETile::create(filter);
     effect->inputEffects().append(input1);
     return effect.release();
 }
diff --git a/third_party/WebKit/Source/core/svg/SVGFETileElement.h b/third_party/WebKit/Source/core/svg/SVGFETileElement.h
index 7e886ea4..d5c50de 100644
--- a/third_party/WebKit/Source/core/svg/SVGFETileElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGFETileElement.h
@@ -39,9 +39,9 @@
     explicit SVGFETileElement(Document&);
 
     void svgAttributeChanged(const QualifiedName&) override;
-    PassRefPtrWillBeRawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
+    RawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
 
-    RefPtrWillBeMember<SVGAnimatedString> m_in1;
+    Member<SVGAnimatedString> m_in1;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGFETurbulenceElement.cpp b/third_party/WebKit/Source/core/svg/SVGFETurbulenceElement.cpp
index ea855ee4..b104769 100644
--- a/third_party/WebKit/Source/core/svg/SVGFETurbulenceElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGFETurbulenceElement.cpp
@@ -108,7 +108,7 @@
     SVGFilterPrimitiveStandardAttributes::svgAttributeChanged(attrName);
 }
 
-PassRefPtrWillBeRawPtr<FilterEffect> SVGFETurbulenceElement::build(SVGFilterBuilder*, Filter* filter)
+RawPtr<FilterEffect> SVGFETurbulenceElement::build(SVGFilterBuilder*, Filter* filter)
 {
     return FETurbulence::create(filter,
         m_type->currentValue()->enumValue(),
diff --git a/third_party/WebKit/Source/core/svg/SVGFETurbulenceElement.h b/third_party/WebKit/Source/core/svg/SVGFETurbulenceElement.h
index 0dd30a2..6a92757 100644
--- a/third_party/WebKit/Source/core/svg/SVGFETurbulenceElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGFETurbulenceElement.h
@@ -59,13 +59,13 @@
 
     bool setFilterEffectAttribute(FilterEffect*, const QualifiedName& attrName) override;
     void svgAttributeChanged(const QualifiedName&) override;
-    PassRefPtrWillBeRawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
+    RawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
 
-    RefPtrWillBeMember<SVGAnimatedNumberOptionalNumber> m_baseFrequency;
-    RefPtrWillBeMember<SVGAnimatedNumber> m_seed;
-    RefPtrWillBeMember<SVGAnimatedEnumeration<SVGStitchOptions>> m_stitchTiles;
-    RefPtrWillBeMember<SVGAnimatedEnumeration<TurbulenceType>> m_type;
-    RefPtrWillBeMember<SVGAnimatedInteger> m_numOctaves;
+    Member<SVGAnimatedNumberOptionalNumber> m_baseFrequency;
+    Member<SVGAnimatedNumber> m_seed;
+    Member<SVGAnimatedEnumeration<SVGStitchOptions>> m_stitchTiles;
+    Member<SVGAnimatedEnumeration<TurbulenceType>> m_type;
+    Member<SVGAnimatedInteger> m_numOctaves;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGFilterElement.h b/third_party/WebKit/Source/core/svg/SVGFilterElement.h
index fa94876..016e028 100644
--- a/third_party/WebKit/Source/core/svg/SVGFilterElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGFilterElement.h
@@ -41,7 +41,7 @@
 
 class CORE_EXPORT SVGFilterElement final : public SVGElement, public SVGURIReference {
     DEFINE_WRAPPERTYPEINFO();
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(SVGFilterElement);
+    USING_GARBAGE_COLLECTED_MIXIN(SVGFilterElement);
 public:
     DECLARE_NODE_FACTORY(SVGFilterElement);
     DECLARE_VIRTUAL_TRACE();
@@ -70,12 +70,12 @@
 
     bool selfHasRelativeLengths() const override;
 
-    RefPtrWillBeMember<SVGAnimatedLength> m_x;
-    RefPtrWillBeMember<SVGAnimatedLength> m_y;
-    RefPtrWillBeMember<SVGAnimatedLength> m_width;
-    RefPtrWillBeMember<SVGAnimatedLength> m_height;
-    RefPtrWillBeMember<SVGAnimatedEnumeration<SVGUnitTypes::SVGUnitType>> m_filterUnits;
-    RefPtrWillBeMember<SVGAnimatedEnumeration<SVGUnitTypes::SVGUnitType>> m_primitiveUnits;
+    Member<SVGAnimatedLength> m_x;
+    Member<SVGAnimatedLength> m_y;
+    Member<SVGAnimatedLength> m_width;
+    Member<SVGAnimatedLength> m_height;
+    Member<SVGAnimatedEnumeration<SVGUnitTypes::SVGUnitType>> m_filterUnits;
+    Member<SVGAnimatedEnumeration<SVGUnitTypes::SVGUnitType>> m_primitiveUnits;
 
     HashSet<SVGResourceClient*> m_clientsToAdd;
 };
diff --git a/third_party/WebKit/Source/core/svg/SVGFilterPrimitiveStandardAttributes.h b/third_party/WebKit/Source/core/svg/SVGFilterPrimitiveStandardAttributes.h
index dea970c..5d8465b 100644
--- a/third_party/WebKit/Source/core/svg/SVGFilterPrimitiveStandardAttributes.h
+++ b/third_party/WebKit/Source/core/svg/SVGFilterPrimitiveStandardAttributes.h
@@ -41,7 +41,7 @@
 public:
     void setStandardAttributes(FilterEffect*) const;
 
-    virtual PassRefPtrWillBeRawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) = 0;
+    virtual RawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) = 0;
     // Returns true, if the new value is different from the old one.
     virtual bool setFilterEffectAttribute(FilterEffect*, const QualifiedName&);
 
@@ -71,11 +71,11 @@
     LayoutObject* createLayoutObject(const ComputedStyle&) override;
     bool layoutObjectIsNeeded(const ComputedStyle&) final;
 
-    RefPtrWillBeMember<SVGAnimatedLength> m_x;
-    RefPtrWillBeMember<SVGAnimatedLength> m_y;
-    RefPtrWillBeMember<SVGAnimatedLength> m_width;
-    RefPtrWillBeMember<SVGAnimatedLength> m_height;
-    RefPtrWillBeMember<SVGAnimatedString> m_result;
+    Member<SVGAnimatedLength> m_x;
+    Member<SVGAnimatedLength> m_y;
+    Member<SVGAnimatedLength> m_width;
+    Member<SVGAnimatedLength> m_height;
+    Member<SVGAnimatedString> m_result;
 };
 
 void invalidateFilterPrimitiveParent(SVGElement*);
diff --git a/third_party/WebKit/Source/core/svg/SVGFitToViewBox.cpp b/third_party/WebKit/Source/core/svg/SVGFitToViewBox.cpp
index 5c20ee57..4f5e438c 100644
--- a/third_party/WebKit/Source/core/svg/SVGFitToViewBox.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGFitToViewBox.cpp
@@ -33,9 +33,9 @@
 
 class SVGAnimatedViewBoxRect : public SVGAnimatedRect {
 public:
-    static PassRefPtrWillBeRawPtr<SVGAnimatedRect> create(SVGElement* contextElement)
+    static RawPtr<SVGAnimatedRect> create(SVGElement* contextElement)
     {
-        return adoptRefWillBeNoop(new SVGAnimatedViewBoxRect(contextElement));
+        return new SVGAnimatedViewBoxRect(contextElement);
     }
 
     SVGParsingError setBaseValueAsString(const String&) override;
@@ -75,7 +75,7 @@
     visitor->trace(m_preserveAspectRatio);
 }
 
-AffineTransform SVGFitToViewBox::viewBoxToViewTransform(const FloatRect& viewBoxRect, PassRefPtrWillBeRawPtr<SVGPreserveAspectRatio> preserveAspectRatio, float viewWidth, float viewHeight)
+AffineTransform SVGFitToViewBox::viewBoxToViewTransform(const FloatRect& viewBoxRect, RawPtr<SVGPreserveAspectRatio> preserveAspectRatio, float viewWidth, float viewHeight)
 {
     if (!viewBoxRect.width() || !viewBoxRect.height() || !viewWidth || !viewHeight)
         return AffineTransform();
diff --git a/third_party/WebKit/Source/core/svg/SVGFitToViewBox.h b/third_party/WebKit/Source/core/svg/SVGFitToViewBox.h
index 8943200..c4a049e 100644
--- a/third_party/WebKit/Source/core/svg/SVGFitToViewBox.h
+++ b/third_party/WebKit/Source/core/svg/SVGFitToViewBox.h
@@ -34,14 +34,14 @@
 
 class AffineTransform;
 
-class SVGFitToViewBox : public WillBeGarbageCollectedMixin {
+class SVGFitToViewBox : public GarbageCollectedMixin {
 public:
     enum PropertyMapPolicy {
         PropertyMapPolicyAdd,
         PropertyMapPolicySkip,
     };
 
-    static AffineTransform viewBoxToViewTransform(const FloatRect& viewBoxRect, PassRefPtrWillBeRawPtr<SVGPreserveAspectRatio>, float viewWidth, float viewHeight);
+    static AffineTransform viewBoxToViewTransform(const FloatRect& viewBoxRect, RawPtr<SVGPreserveAspectRatio>, float viewWidth, float viewHeight);
 
     static bool isKnownAttribute(const QualifiedName&);
 
@@ -60,8 +60,8 @@
     void clearPreserveAspectRatio() { m_preserveAspectRatio = nullptr; }
 
 private:
-    RefPtrWillBeMember<SVGAnimatedRect> m_viewBox;
-    RefPtrWillBeMember<SVGAnimatedPreserveAspectRatio> m_preserveAspectRatio;
+    Member<SVGAnimatedRect> m_viewBox;
+    Member<SVGAnimatedPreserveAspectRatio> m_preserveAspectRatio;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGForeignObjectElement.h b/third_party/WebKit/Source/core/svg/SVGForeignObjectElement.h
index 35680f19..493cb31c 100644
--- a/third_party/WebKit/Source/core/svg/SVGForeignObjectElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGForeignObjectElement.h
@@ -54,10 +54,10 @@
 
     bool selfHasRelativeLengths() const override;
 
-    RefPtrWillBeMember<SVGAnimatedLength> m_x;
-    RefPtrWillBeMember<SVGAnimatedLength> m_y;
-    RefPtrWillBeMember<SVGAnimatedLength> m_width;
-    RefPtrWillBeMember<SVGAnimatedLength> m_height;
+    Member<SVGAnimatedLength> m_x;
+    Member<SVGAnimatedLength> m_y;
+    Member<SVGAnimatedLength> m_width;
+    Member<SVGAnimatedLength> m_height;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGGeometryElement.cpp b/third_party/WebKit/Source/core/svg/SVGGeometryElement.cpp
index 0b96cbe6..f285a60 100644
--- a/third_party/WebKit/Source/core/svg/SVGGeometryElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGGeometryElement.cpp
@@ -44,7 +44,7 @@
 {
 }
 
-bool SVGGeometryElement::isPointInFill(PassRefPtrWillBeRawPtr<SVGPointTearOff> point) const
+bool SVGGeometryElement::isPointInFill(RawPtr<SVGPointTearOff> point) const
 {
     document().updateLayoutIgnorePendingStylesheets();
 
@@ -58,7 +58,7 @@
     return toLayoutSVGShape(layoutObject())->nodeAtFloatPointInternal(request, point->target()->value(), hitRules);
 }
 
-bool SVGGeometryElement::isPointInStroke(PassRefPtrWillBeRawPtr<SVGPointTearOff> point) const
+bool SVGGeometryElement::isPointInStroke(RawPtr<SVGPointTearOff> point) const
 {
     document().updateLayoutIgnorePendingStylesheets();
 
diff --git a/third_party/WebKit/Source/core/svg/SVGGeometryElement.h b/third_party/WebKit/Source/core/svg/SVGGeometryElement.h
index 664b11b7..d1c4c6b2 100644
--- a/third_party/WebKit/Source/core/svg/SVGGeometryElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGGeometryElement.h
@@ -41,8 +41,8 @@
     DEFINE_WRAPPERTYPEINFO();
 public:
     virtual Path asPath() const = 0;
-    bool isPointInFill(PassRefPtrWillBeRawPtr<SVGPointTearOff>) const;
-    bool isPointInStroke(PassRefPtrWillBeRawPtr<SVGPointTearOff>) const;
+    bool isPointInFill(RawPtr<SVGPointTearOff>) const;
+    bool isPointInStroke(RawPtr<SVGPointTearOff>) const;
 
     void toClipPath(Path&) const;
 
diff --git a/third_party/WebKit/Source/core/svg/SVGGradientElement.h b/third_party/WebKit/Source/core/svg/SVGGradientElement.h
index b77dbaaf..9cd615be 100644
--- a/third_party/WebKit/Source/core/svg/SVGGradientElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGGradientElement.h
@@ -43,7 +43,7 @@
 class SVGGradientElement : public SVGElement,
                            public SVGURIReference {
     DEFINE_WRAPPERTYPEINFO();
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(SVGGradientElement);
+    USING_GARBAGE_COLLECTED_MIXIN(SVGGradientElement);
 public:
     Vector<Gradient::ColorStop> buildStops();
 
@@ -63,9 +63,9 @@
 
     void childrenChanged(const ChildrenChange&) final;
 
-    RefPtrWillBeMember<SVGAnimatedTransformList> m_gradientTransform;
-    RefPtrWillBeMember<SVGAnimatedEnumeration<SVGSpreadMethodType>> m_spreadMethod;
-    RefPtrWillBeMember<SVGAnimatedEnumeration<SVGUnitTypes::SVGUnitType>> m_gradientUnits;
+    Member<SVGAnimatedTransformList> m_gradientTransform;
+    Member<SVGAnimatedEnumeration<SVGSpreadMethodType>> m_spreadMethod;
+    Member<SVGAnimatedEnumeration<SVGUnitTypes::SVGUnitType>> m_gradientUnits;
 };
 
 inline bool isSVGGradientElement(const SVGElement& element)
diff --git a/third_party/WebKit/Source/core/svg/SVGGraphicsElement.cpp b/third_party/WebKit/Source/core/svg/SVGGraphicsElement.cpp
index 2e62f582..6e284f6 100644
--- a/third_party/WebKit/Source/core/svg/SVGGraphicsElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGGraphicsElement.cpp
@@ -100,12 +100,12 @@
     return computeCTM(ScreenScope, styleUpdateStrategy);
 }
 
-PassRefPtrWillBeRawPtr<SVGMatrixTearOff> SVGGraphicsElement::getCTMFromJavascript()
+RawPtr<SVGMatrixTearOff> SVGGraphicsElement::getCTMFromJavascript()
 {
     return SVGMatrixTearOff::create(getCTM());
 }
 
-PassRefPtrWillBeRawPtr<SVGMatrixTearOff> SVGGraphicsElement::getScreenCTMFromJavascript()
+RawPtr<SVGMatrixTearOff> SVGGraphicsElement::getScreenCTMFromJavascript()
 {
     return SVGMatrixTearOff::create(getScreenCTM());
 }
@@ -222,7 +222,7 @@
     return layoutObject()->objectBoundingBox();
 }
 
-PassRefPtrWillBeRawPtr<SVGRectTearOff> SVGGraphicsElement::getBBoxFromJavascript()
+RawPtr<SVGRectTearOff> SVGGraphicsElement::getBBoxFromJavascript()
 {
     return SVGRectTearOff::create(SVGRect::create(getBBox()), 0, PropertyIsNotAnimVal);
 }
diff --git a/third_party/WebKit/Source/core/svg/SVGGraphicsElement.h b/third_party/WebKit/Source/core/svg/SVGGraphicsElement.h
index a107e9a1..d73bc682 100644
--- a/third_party/WebKit/Source/core/svg/SVGGraphicsElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGGraphicsElement.h
@@ -37,7 +37,7 @@
 
 class CORE_EXPORT SVGGraphicsElement : public SVGElement, public SVGTests {
     DEFINE_WRAPPERTYPEINFO();
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(SVGGraphicsElement);
+    USING_GARBAGE_COLLECTED_MIXIN(SVGGraphicsElement);
 public:
     ~SVGGraphicsElement() override;
 
@@ -45,8 +45,8 @@
 
     AffineTransform getCTM(StyleUpdateStrategy = AllowStyleUpdate);
     AffineTransform getScreenCTM(StyleUpdateStrategy = AllowStyleUpdate);
-    PassRefPtrWillBeRawPtr<SVGMatrixTearOff> getCTMFromJavascript();
-    PassRefPtrWillBeRawPtr<SVGMatrixTearOff> getScreenCTMFromJavascript();
+    RawPtr<SVGMatrixTearOff> getCTMFromJavascript();
+    RawPtr<SVGMatrixTearOff> getScreenCTMFromJavascript();
 
     SVGElement* nearestViewportElement() const;
     SVGElement* farthestViewportElement() const;
@@ -57,7 +57,7 @@
     AffineTransform* animateMotionTransform() override;
 
     virtual FloatRect getBBox();
-    PassRefPtrWillBeRawPtr<SVGRectTearOff> getBBoxFromJavascript();
+    RawPtr<SVGRectTearOff> getBBoxFromJavascript();
 
     bool isValid() const final { return SVGTests::isValid(); }
 
@@ -76,7 +76,7 @@
 
     void svgAttributeChanged(const QualifiedName&) override;
 
-    RefPtrWillBeMember<SVGAnimatedTransformList> m_transform;
+    Member<SVGAnimatedTransformList> m_transform;
 
 private:
     bool isSVGGraphicsElement() const final { return true; }
diff --git a/third_party/WebKit/Source/core/svg/SVGImageElement.h b/third_party/WebKit/Source/core/svg/SVGImageElement.h
index 8373158..01f897df 100644
--- a/third_party/WebKit/Source/core/svg/SVGImageElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGImageElement.h
@@ -35,7 +35,7 @@
 class SVGImageElement final : public SVGGraphicsElement,
                               public SVGURIReference {
     DEFINE_WRAPPERTYPEINFO();
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(SVGImageElement);
+    USING_GARBAGE_COLLECTED_MIXIN(SVGImageElement);
 public:
     DECLARE_NODE_FACTORY(SVGImageElement);
     DECLARE_VIRTUAL_TRACE();
@@ -75,13 +75,13 @@
     void didMoveToNewDocument(Document& oldDocument) override;
     SVGImageLoader& imageLoader() const { return *m_imageLoader; }
 
-    RefPtrWillBeMember<SVGAnimatedLength> m_x;
-    RefPtrWillBeMember<SVGAnimatedLength> m_y;
-    RefPtrWillBeMember<SVGAnimatedLength> m_width;
-    RefPtrWillBeMember<SVGAnimatedLength> m_height;
-    RefPtrWillBeMember<SVGAnimatedPreserveAspectRatio> m_preserveAspectRatio;
+    Member<SVGAnimatedLength> m_x;
+    Member<SVGAnimatedLength> m_y;
+    Member<SVGAnimatedLength> m_width;
+    Member<SVGAnimatedLength> m_height;
+    Member<SVGAnimatedPreserveAspectRatio> m_preserveAspectRatio;
 
-    OwnPtrWillBeMember<SVGImageLoader> m_imageLoader;
+    Member<SVGImageLoader> m_imageLoader;
     bool m_needsLoaderURIUpdate : 1;
 };
 
diff --git a/third_party/WebKit/Source/core/svg/SVGImageLoader.h b/third_party/WebKit/Source/core/svg/SVGImageLoader.h
index 8e4a0f5..ce1ea622 100644
--- a/third_party/WebKit/Source/core/svg/SVGImageLoader.h
+++ b/third_party/WebKit/Source/core/svg/SVGImageLoader.h
@@ -28,9 +28,9 @@
 
 class SVGImageLoader final : public ImageLoader {
 public:
-    static PassOwnPtrWillBeRawPtr<SVGImageLoader> create(SVGImageElement* element)
+    static RawPtr<SVGImageLoader> create(SVGImageElement* element)
     {
-        return adoptPtrWillBeNoop(new SVGImageLoader(element));
+        return new SVGImageLoader(element);
     }
 
 private:
diff --git a/third_party/WebKit/Source/core/svg/SVGInteger.cpp b/third_party/WebKit/Source/core/svg/SVGInteger.cpp
index 4586c976..8f07eae 100644
--- a/third_party/WebKit/Source/core/svg/SVGInteger.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGInteger.cpp
@@ -40,7 +40,7 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<SVGInteger> SVGInteger::clone() const
+RawPtr<SVGInteger> SVGInteger::clone() const
 {
     return create(m_value);
 }
@@ -63,25 +63,25 @@
     return valid ? SVGParseStatus::NoError : SVGParseStatus::ExpectedInteger;
 }
 
-void SVGInteger::add(PassRefPtrWillBeRawPtr<SVGPropertyBase> other, SVGElement*)
+void SVGInteger::add(RawPtr<SVGPropertyBase> other, SVGElement*)
 {
     setValue(m_value + toSVGInteger(other)->value());
 }
 
-void SVGInteger::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, PassRefPtrWillBeRawPtr<SVGPropertyBase> from, PassRefPtrWillBeRawPtr<SVGPropertyBase> to, PassRefPtrWillBeRawPtr<SVGPropertyBase> toAtEndOfDuration, SVGElement*)
+void SVGInteger::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> from, RawPtr<SVGPropertyBase> to, RawPtr<SVGPropertyBase> toAtEndOfDuration, SVGElement*)
 {
     ASSERT(animationElement);
 
-    RefPtrWillBeRawPtr<SVGInteger> fromInteger = toSVGInteger(from);
-    RefPtrWillBeRawPtr<SVGInteger> toInteger = toSVGInteger(to);
-    RefPtrWillBeRawPtr<SVGInteger> toAtEndOfDurationInteger = toSVGInteger(toAtEndOfDuration);
+    RawPtr<SVGInteger> fromInteger = toSVGInteger(from);
+    RawPtr<SVGInteger> toInteger = toSVGInteger(to);
+    RawPtr<SVGInteger> toAtEndOfDurationInteger = toSVGInteger(toAtEndOfDuration);
 
     float animatedFloat = m_value;
     animationElement->animateAdditiveNumber(percentage, repeatCount, fromInteger->value(), toInteger->value(), toAtEndOfDurationInteger->value(), animatedFloat);
     m_value = static_cast<int>(roundf(animatedFloat));
 }
 
-float SVGInteger::calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase> other, SVGElement*)
+float SVGInteger::calculateDistance(RawPtr<SVGPropertyBase> other, SVGElement*)
 {
     return abs(m_value - toSVGInteger(other)->value());
 }
diff --git a/third_party/WebKit/Source/core/svg/SVGInteger.h b/third_party/WebKit/Source/core/svg/SVGInteger.h
index 98a2bd8..923138612 100644
--- a/third_party/WebKit/Source/core/svg/SVGInteger.h
+++ b/third_party/WebKit/Source/core/svg/SVGInteger.h
@@ -41,12 +41,12 @@
     typedef void TearOffType;
     typedef int PrimitiveType;
 
-    static PassRefPtrWillBeRawPtr<SVGInteger> create(int value = 0)
+    static RawPtr<SVGInteger> create(int value = 0)
     {
-        return adoptRefWillBeNoop(new SVGInteger(value));
+        return new SVGInteger(value);
     }
 
-    virtual PassRefPtrWillBeRawPtr<SVGInteger> clone() const;
+    virtual RawPtr<SVGInteger> clone() const;
 
     int value() const { return m_value; }
     void setValue(int value) { m_value = value; }
@@ -54,9 +54,9 @@
     String valueAsString() const override;
     SVGParsingError setValueAsString(const String&);
 
-    void add(PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*) override;
-    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, PassRefPtrWillBeRawPtr<SVGPropertyBase> from, PassRefPtrWillBeRawPtr<SVGPropertyBase> to, PassRefPtrWillBeRawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement* contextElement) override;
-    float calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase> to, SVGElement* contextElement) override;
+    void add(RawPtr<SVGPropertyBase>, SVGElement*) override;
+    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> from, RawPtr<SVGPropertyBase> to, RawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement* contextElement) override;
+    float calculateDistance(RawPtr<SVGPropertyBase> to, SVGElement* contextElement) override;
 
     static AnimatedPropertyType classType() { return AnimatedInteger; }
 
diff --git a/third_party/WebKit/Source/core/svg/SVGIntegerOptionalInteger.cpp b/third_party/WebKit/Source/core/svg/SVGIntegerOptionalInteger.cpp
index 762939a..26e1ce1 100644
--- a/third_party/WebKit/Source/core/svg/SVGIntegerOptionalInteger.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGIntegerOptionalInteger.cpp
@@ -35,7 +35,7 @@
 
 namespace blink {
 
-SVGIntegerOptionalInteger::SVGIntegerOptionalInteger(PassRefPtrWillBeRawPtr<SVGInteger> firstInteger, PassRefPtrWillBeRawPtr<SVGInteger> secondInteger)
+SVGIntegerOptionalInteger::SVGIntegerOptionalInteger(RawPtr<SVGInteger> firstInteger, RawPtr<SVGInteger> secondInteger)
     : SVGPropertyBase(classType())
     , m_firstInteger(firstInteger)
     , m_secondInteger(secondInteger)
@@ -49,12 +49,12 @@
     SVGPropertyBase::trace(visitor);
 }
 
-PassRefPtrWillBeRawPtr<SVGIntegerOptionalInteger> SVGIntegerOptionalInteger::clone() const
+RawPtr<SVGIntegerOptionalInteger> SVGIntegerOptionalInteger::clone() const
 {
     return SVGIntegerOptionalInteger::create(m_firstInteger->clone(), m_secondInteger->clone());
 }
 
-PassRefPtrWillBeRawPtr<SVGPropertyBase> SVGIntegerOptionalInteger::cloneForAnimation(const String& value) const
+RawPtr<SVGPropertyBase> SVGIntegerOptionalInteger::cloneForAnimation(const String& value) const
 {
     float floatX, floatY;
     if (!parseNumberOptionalNumber(value, floatX, floatY)) {
@@ -90,21 +90,21 @@
     return parseStatus;
 }
 
-void SVGIntegerOptionalInteger::add(PassRefPtrWillBeRawPtr<SVGPropertyBase> other, SVGElement*)
+void SVGIntegerOptionalInteger::add(RawPtr<SVGPropertyBase> other, SVGElement*)
 {
-    RefPtrWillBeRawPtr<SVGIntegerOptionalInteger> otherIntegerOptionalInteger = toSVGIntegerOptionalInteger(other);
+    RawPtr<SVGIntegerOptionalInteger> otherIntegerOptionalInteger = toSVGIntegerOptionalInteger(other);
 
     m_firstInteger->setValue(m_firstInteger->value() + otherIntegerOptionalInteger->m_firstInteger->value());
     m_secondInteger->setValue(m_secondInteger->value() + otherIntegerOptionalInteger->m_secondInteger->value());
 }
 
-void SVGIntegerOptionalInteger::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, PassRefPtrWillBeRawPtr<SVGPropertyBase> from, PassRefPtrWillBeRawPtr<SVGPropertyBase> to, PassRefPtrWillBeRawPtr<SVGPropertyBase> toAtEndOfDuration, SVGElement*)
+void SVGIntegerOptionalInteger::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> from, RawPtr<SVGPropertyBase> to, RawPtr<SVGPropertyBase> toAtEndOfDuration, SVGElement*)
 {
     ASSERT(animationElement);
 
-    RefPtrWillBeRawPtr<SVGIntegerOptionalInteger> fromInteger = toSVGIntegerOptionalInteger(from);
-    RefPtrWillBeRawPtr<SVGIntegerOptionalInteger> toInteger = toSVGIntegerOptionalInteger(to);
-    RefPtrWillBeRawPtr<SVGIntegerOptionalInteger> toAtEndOfDurationInteger = toSVGIntegerOptionalInteger(toAtEndOfDuration);
+    RawPtr<SVGIntegerOptionalInteger> fromInteger = toSVGIntegerOptionalInteger(from);
+    RawPtr<SVGIntegerOptionalInteger> toInteger = toSVGIntegerOptionalInteger(to);
+    RawPtr<SVGIntegerOptionalInteger> toAtEndOfDurationInteger = toSVGIntegerOptionalInteger(toAtEndOfDuration);
 
     float x = m_firstInteger->value();
     float y = m_secondInteger->value();
@@ -114,7 +114,7 @@
     m_secondInteger->setValue(static_cast<int>(roundf(y)));
 }
 
-float SVGIntegerOptionalInteger::calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase> other, SVGElement*)
+float SVGIntegerOptionalInteger::calculateDistance(RawPtr<SVGPropertyBase> other, SVGElement*)
 {
     // FIXME: Distance calculation is not possible for SVGIntegerOptionalInteger right now. We need the distance for every single value.
     return -1;
diff --git a/third_party/WebKit/Source/core/svg/SVGIntegerOptionalInteger.h b/third_party/WebKit/Source/core/svg/SVGIntegerOptionalInteger.h
index baff70f..97de9f2 100644
--- a/third_party/WebKit/Source/core/svg/SVGIntegerOptionalInteger.h
+++ b/third_party/WebKit/Source/core/svg/SVGIntegerOptionalInteger.h
@@ -43,33 +43,33 @@
     typedef void TearOffType;
     typedef void PrimitiveType;
 
-    static PassRefPtrWillBeRawPtr<SVGIntegerOptionalInteger> create(PassRefPtrWillBeRawPtr<SVGInteger> firstInteger, PassRefPtrWillBeRawPtr<SVGInteger> secondInteger)
+    static RawPtr<SVGIntegerOptionalInteger> create(RawPtr<SVGInteger> firstInteger, RawPtr<SVGInteger> secondInteger)
     {
-        return adoptRefWillBeNoop(new SVGIntegerOptionalInteger(firstInteger, secondInteger));
+        return new SVGIntegerOptionalInteger(firstInteger, secondInteger);
     }
 
-    PassRefPtrWillBeRawPtr<SVGIntegerOptionalInteger> clone() const;
-    PassRefPtrWillBeRawPtr<SVGPropertyBase> cloneForAnimation(const String&) const override;
+    RawPtr<SVGIntegerOptionalInteger> clone() const;
+    RawPtr<SVGPropertyBase> cloneForAnimation(const String&) const override;
 
     String valueAsString() const override;
     SVGParsingError setValueAsString(const String&);
 
-    void add(PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*) override;
-    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, PassRefPtrWillBeRawPtr<SVGPropertyBase> from, PassRefPtrWillBeRawPtr<SVGPropertyBase> to, PassRefPtrWillBeRawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement* contextElement) override;
-    float calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase> to, SVGElement* contextElement) override;
+    void add(RawPtr<SVGPropertyBase>, SVGElement*) override;
+    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> from, RawPtr<SVGPropertyBase> to, RawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement* contextElement) override;
+    float calculateDistance(RawPtr<SVGPropertyBase> to, SVGElement* contextElement) override;
 
     static AnimatedPropertyType classType() { return AnimatedIntegerOptionalInteger; }
 
-    PassRefPtrWillBeRawPtr<SVGInteger> firstInteger() const { return m_firstInteger; }
-    PassRefPtrWillBeRawPtr<SVGInteger> secondInteger() const { return m_secondInteger; }
+    RawPtr<SVGInteger> firstInteger() const { return m_firstInteger; }
+    RawPtr<SVGInteger> secondInteger() const { return m_secondInteger; }
 
     DECLARE_VIRTUAL_TRACE();
 
 protected:
-    SVGIntegerOptionalInteger(PassRefPtrWillBeRawPtr<SVGInteger> firstInteger, PassRefPtrWillBeRawPtr<SVGInteger> secondInteger);
+    SVGIntegerOptionalInteger(RawPtr<SVGInteger> firstInteger, RawPtr<SVGInteger> secondInteger);
 
-    RefPtrWillBeMember<SVGInteger> m_firstInteger;
-    RefPtrWillBeMember<SVGInteger> m_secondInteger;
+    Member<SVGInteger> m_firstInteger;
+    Member<SVGInteger> m_secondInteger;
 };
 
 DEFINE_SVG_PROPERTY_TYPE_CASTS(SVGIntegerOptionalInteger);
diff --git a/third_party/WebKit/Source/core/svg/SVGLength.cpp b/third_party/WebKit/Source/core/svg/SVGLength.cpp
index 467b063..14ef498 100644
--- a/third_party/WebKit/Source/core/svg/SVGLength.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGLength.cpp
@@ -53,14 +53,14 @@
     SVGPropertyBase::trace(visitor);
 }
 
-PassRefPtrWillBeRawPtr<SVGLength> SVGLength::clone() const
+RawPtr<SVGLength> SVGLength::clone() const
 {
-    return adoptRefWillBeNoop(new SVGLength(*this));
+    return new SVGLength(*this);
 }
 
-PassRefPtrWillBeRawPtr<SVGPropertyBase> SVGLength::cloneForAnimation(const String& value) const
+RawPtr<SVGPropertyBase> SVGLength::cloneForAnimation(const String& value) const
 {
-    RefPtrWillBeRawPtr<SVGLength> length = create();
+    RawPtr<SVGLength> length = create();
     length->m_unitMode = m_unitMode;
 
     if (length->setValueAsString(value) != SVGParseStatus::NoError)
@@ -137,7 +137,7 @@
     }
 
     CSSParserContext svgParserContext(SVGAttributeMode, 0);
-    RefPtrWillBeRawPtr<CSSValue> parsed = CSSParser::parseSingleValue(CSSPropertyX, string, svgParserContext);
+    RawPtr<CSSValue> parsed = CSSParser::parseSingleValue(CSSPropertyX, string, svgParserContext);
     if (!parsed || !parsed->isPrimitiveValue())
         return SVGParseStatus::ExpectedLength;
 
@@ -227,7 +227,7 @@
     return s_noNegativeValuesSet.contains(attrName);
 }
 
-void SVGLength::add(PassRefPtrWillBeRawPtr<SVGPropertyBase> other, SVGElement* contextElement)
+void SVGLength::add(RawPtr<SVGPropertyBase> other, SVGElement* contextElement)
 {
     SVGLengthContext lengthContext(contextElement);
     setValue(value(lengthContext) + toSVGLength(other)->value(lengthContext), lengthContext);
@@ -236,14 +236,14 @@
 void SVGLength::calculateAnimatedValue(SVGAnimationElement* animationElement,
     float percentage,
     unsigned repeatCount,
-    PassRefPtrWillBeRawPtr<SVGPropertyBase> fromValue,
-    PassRefPtrWillBeRawPtr<SVGPropertyBase> toValue,
-    PassRefPtrWillBeRawPtr<SVGPropertyBase> toAtEndOfDurationValue,
+    RawPtr<SVGPropertyBase> fromValue,
+    RawPtr<SVGPropertyBase> toValue,
+    RawPtr<SVGPropertyBase> toAtEndOfDurationValue,
     SVGElement* contextElement)
 {
-    RefPtrWillBeRawPtr<SVGLength> fromLength = toSVGLength(fromValue);
-    RefPtrWillBeRawPtr<SVGLength> toLength = toSVGLength(toValue);
-    RefPtrWillBeRawPtr<SVGLength> toAtEndOfDurationLength = toSVGLength(toAtEndOfDurationValue);
+    RawPtr<SVGLength> fromLength = toSVGLength(fromValue);
+    RawPtr<SVGLength> toLength = toSVGLength(toValue);
+    RawPtr<SVGLength> toAtEndOfDurationLength = toSVGLength(toAtEndOfDurationValue);
 
     SVGLengthContext lengthContext(contextElement);
     float animatedNumber = value(lengthContext);
@@ -257,10 +257,10 @@
     m_value = CSSPrimitiveValue::create(animatedNumber, newUnit);
 }
 
-float SVGLength::calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase> toValue, SVGElement* contextElement)
+float SVGLength::calculateDistance(RawPtr<SVGPropertyBase> toValue, SVGElement* contextElement)
 {
     SVGLengthContext lengthContext(contextElement);
-    RefPtrWillBeRawPtr<SVGLength> toLength = toSVGLength(toValue);
+    RawPtr<SVGLength> toLength = toSVGLength(toValue);
 
     return fabsf(toLength->value(lengthContext) - value(lengthContext));
 }
diff --git a/third_party/WebKit/Source/core/svg/SVGLength.h b/third_party/WebKit/Source/core/svg/SVGLength.h
index ea7d417..77c2f15 100644
--- a/third_party/WebKit/Source/core/svg/SVGLength.h
+++ b/third_party/WebKit/Source/core/svg/SVGLength.h
@@ -37,15 +37,15 @@
 public:
     typedef SVGLengthTearOff TearOffType;
 
-    static PassRefPtrWillBeRawPtr<SVGLength> create(SVGLengthMode mode = SVGLengthMode::Other)
+    static RawPtr<SVGLength> create(SVGLengthMode mode = SVGLengthMode::Other)
     {
-        return adoptRefWillBeNoop(new SVGLength(mode));
+        return new SVGLength(mode);
     }
 
     DECLARE_VIRTUAL_TRACE();
 
-    PassRefPtrWillBeRawPtr<SVGLength> clone() const;
-    PassRefPtrWillBeRawPtr<SVGPropertyBase> cloneForAnimation(const String&) const override;
+    RawPtr<SVGLength> clone() const;
+    RawPtr<SVGPropertyBase> cloneForAnimation(const String&) const override;
 
     CSSPrimitiveValue::UnitType typeWithCalcResolved() const { return m_value->typeWithCalcResolved(); }
     void setUnitType(CSSPrimitiveValue::UnitType);
@@ -91,9 +91,9 @@
     static SVGLengthMode lengthModeForAnimatedLengthAttribute(const QualifiedName&);
     static bool negativeValuesForbiddenForAnimatedLengthAttribute(const QualifiedName&);
 
-    void add(PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*) override;
-    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, PassRefPtrWillBeRawPtr<SVGPropertyBase> from, PassRefPtrWillBeRawPtr<SVGPropertyBase> to, PassRefPtrWillBeRawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement* contextElement) override;
-    float calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase> to, SVGElement* contextElement) override;
+    void add(RawPtr<SVGPropertyBase>, SVGElement*) override;
+    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> from, RawPtr<SVGPropertyBase> to, RawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement* contextElement) override;
+    float calculateDistance(RawPtr<SVGPropertyBase> to, SVGElement* contextElement) override;
 
     static AnimatedPropertyType classType() { return AnimatedLength; }
 
@@ -101,7 +101,7 @@
     SVGLength(SVGLengthMode);
     SVGLength(const SVGLength&);
 
-    RefPtrWillBeMember<CSSPrimitiveValue> m_value;
+    Member<CSSPrimitiveValue> m_value;
     unsigned m_unitMode : 2;
 };
 
diff --git a/third_party/WebKit/Source/core/svg/SVGLengthContext.h b/third_party/WebKit/Source/core/svg/SVGLengthContext.h
index ff73b761..8cf071b1 100644
--- a/third_party/WebKit/Source/core/svg/SVGLengthContext.h
+++ b/third_party/WebKit/Source/core/svg/SVGLengthContext.h
@@ -88,7 +88,7 @@
     float convertValueFromUserUnitsToCHS(float value) const;
     float convertValueFromCHSToUserUnits(float value) const;
 
-    RawPtrWillBeMember<const SVGElement> m_context;
+    Member<const SVGElement> m_context;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGLengthList.cpp b/third_party/WebKit/Source/core/svg/SVGLengthList.cpp
index df8cec0..f1aa7c9 100644
--- a/third_party/WebKit/Source/core/svg/SVGLengthList.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGLengthList.cpp
@@ -35,16 +35,16 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<SVGLengthList> SVGLengthList::clone()
+RawPtr<SVGLengthList> SVGLengthList::clone()
 {
-    RefPtrWillBeRawPtr<SVGLengthList> ret = SVGLengthList::create(m_mode);
+    RawPtr<SVGLengthList> ret = SVGLengthList::create(m_mode);
     ret->deepCopy(this);
     return ret.release();
 }
 
-PassRefPtrWillBeRawPtr<SVGPropertyBase> SVGLengthList::cloneForAnimation(const String& value) const
+RawPtr<SVGPropertyBase> SVGLengthList::cloneForAnimation(const String& value) const
 {
-    RefPtrWillBeRawPtr<SVGLengthList> ret = SVGLengthList::create(m_mode);
+    RawPtr<SVGLengthList> ret = SVGLengthList::create(m_mode);
     ret->setValueAsString(value);
     return ret.release();
 }
@@ -82,7 +82,7 @@
         if (valueString.isEmpty())
             break;
 
-        RefPtrWillBeRawPtr<SVGLength> length = SVGLength::create(m_mode);
+        RawPtr<SVGLength> length = SVGLength::create(m_mode);
         SVGParsingError lengthParseStatus = length->setValueAsString(valueString);
         if (lengthParseStatus != SVGParseStatus::NoError)
             return lengthParseStatus.offsetWith(start - listStart);
@@ -109,9 +109,9 @@
     return parseInternal(ptr, end);
 }
 
-void SVGLengthList::add(PassRefPtrWillBeRawPtr<SVGPropertyBase> other, SVGElement* contextElement)
+void SVGLengthList::add(RawPtr<SVGPropertyBase> other, SVGElement* contextElement)
 {
-    RefPtrWillBeRawPtr<SVGLengthList> otherList = toSVGLengthList(other);
+    RawPtr<SVGLengthList> otherList = toSVGLengthList(other);
 
     if (length() != otherList->length())
         return;
@@ -121,16 +121,16 @@
         at(i)->setValue(at(i)->value(lengthContext) + otherList->at(i)->value(lengthContext), lengthContext);
 }
 
-PassRefPtrWillBeRawPtr<SVGLength> SVGLengthList::createPaddingItem() const
+RawPtr<SVGLength> SVGLengthList::createPaddingItem() const
 {
     return SVGLength::create(m_mode);
 }
 
-void SVGLengthList::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, PassRefPtrWillBeRawPtr<SVGPropertyBase> fromValue, PassRefPtrWillBeRawPtr<SVGPropertyBase> toValue, PassRefPtrWillBeRawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement* contextElement)
+void SVGLengthList::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> fromValue, RawPtr<SVGPropertyBase> toValue, RawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement* contextElement)
 {
-    RefPtrWillBeRawPtr<SVGLengthList> fromList = toSVGLengthList(fromValue);
-    RefPtrWillBeRawPtr<SVGLengthList> toList = toSVGLengthList(toValue);
-    RefPtrWillBeRawPtr<SVGLengthList> toAtEndOfDurationList = toSVGLengthList(toAtEndOfDurationValue);
+    RawPtr<SVGLengthList> fromList = toSVGLengthList(fromValue);
+    RawPtr<SVGLengthList> toList = toSVGLengthList(toValue);
+    RawPtr<SVGLengthList> toAtEndOfDurationList = toSVGLengthList(toAtEndOfDurationValue);
 
     SVGLengthContext lengthContext(contextElement);
     ASSERT(m_mode == SVGLength::lengthModeForAnimatedLengthAttribute(animationElement->attributeName()));
@@ -160,7 +160,7 @@
     }
 }
 
-float SVGLengthList::calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase> to, SVGElement*)
+float SVGLengthList::calculateDistance(RawPtr<SVGPropertyBase> to, SVGElement*)
 {
     // FIXME: Distance calculation is not possible for SVGLengthList right now. We need the distance for every single value.
     return -1;
diff --git a/third_party/WebKit/Source/core/svg/SVGLengthList.h b/third_party/WebKit/Source/core/svg/SVGLengthList.h
index a379d13..173dd2a 100644
--- a/third_party/WebKit/Source/core/svg/SVGLengthList.h
+++ b/third_party/WebKit/Source/core/svg/SVGLengthList.h
@@ -43,9 +43,9 @@
 public:
     typedef SVGLengthListTearOff TearOffType;
 
-    static PassRefPtrWillBeRawPtr<SVGLengthList> create(SVGLengthMode mode = SVGLengthMode::Other)
+    static RawPtr<SVGLengthList> create(SVGLengthMode mode = SVGLengthMode::Other)
     {
-        return adoptRefWillBeNoop(new SVGLengthList(mode));
+        return new SVGLengthList(mode);
     }
 
     ~SVGLengthList() override;
@@ -53,14 +53,14 @@
     SVGParsingError setValueAsString(const String&);
 
     // SVGPropertyBase:
-    PassRefPtrWillBeRawPtr<SVGPropertyBase> cloneForAnimation(const String&) const override;
-    PassRefPtrWillBeRawPtr<SVGLengthList> clone() override;
+    RawPtr<SVGPropertyBase> cloneForAnimation(const String&) const override;
+    RawPtr<SVGLengthList> clone() override;
     String valueAsString() const override;
     SVGLengthMode unitMode() const { return m_mode; }
 
-    void add(PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*) override;
-    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, PassRefPtrWillBeRawPtr<SVGPropertyBase> fromValue, PassRefPtrWillBeRawPtr<SVGPropertyBase> toValue, PassRefPtrWillBeRawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement*) override;
-    float calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase> to, SVGElement*) override;
+    void add(RawPtr<SVGPropertyBase>, SVGElement*) override;
+    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> fromValue, RawPtr<SVGPropertyBase> toValue, RawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement*) override;
+    float calculateDistance(RawPtr<SVGPropertyBase> to, SVGElement*) override;
 
     static AnimatedPropertyType classType() { return AnimatedLengthList; }
 
@@ -69,7 +69,7 @@
 
     // Create SVGLength items used to adjust the list length
     // when animation from/to lists are longer than this list.
-    PassRefPtrWillBeRawPtr<SVGLength> createPaddingItem() const override;
+    RawPtr<SVGLength> createPaddingItem() const override;
 
     template <typename CharType>
     SVGParsingError parseInternal(const CharType*& ptr, const CharType* end);
diff --git a/third_party/WebKit/Source/core/svg/SVGLengthListTearOff.h b/third_party/WebKit/Source/core/svg/SVGLengthListTearOff.h
index 88bc6c8..584f24ba 100644
--- a/third_party/WebKit/Source/core/svg/SVGLengthListTearOff.h
+++ b/third_party/WebKit/Source/core/svg/SVGLengthListTearOff.h
@@ -41,13 +41,13 @@
     , public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<SVGLengthListTearOff> create(PassRefPtrWillBeRawPtr<SVGLengthList> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
+    static RawPtr<SVGLengthListTearOff> create(RawPtr<SVGLengthList> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
     {
-        return adoptRefWillBeNoop(new SVGLengthListTearOff(target, contextElement, propertyIsAnimVal, attributeName));
+        return new SVGLengthListTearOff(target, contextElement, propertyIsAnimVal, attributeName);
     }
 
 private:
-    SVGLengthListTearOff(PassRefPtrWillBeRawPtr<SVGLengthList> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
+    SVGLengthListTearOff(RawPtr<SVGLengthList> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
         : SVGListPropertyTearOffHelper<SVGLengthListTearOff, SVGLengthList>(target, contextElement, propertyIsAnimVal, attributeName)
     {
     }
diff --git a/third_party/WebKit/Source/core/svg/SVGLengthTearOff.cpp b/third_party/WebKit/Source/core/svg/SVGLengthTearOff.cpp
index 88da0e4..8724da5 100644
--- a/third_party/WebKit/Source/core/svg/SVGLengthTearOff.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGLengthTearOff.cpp
@@ -231,7 +231,7 @@
     commitChange();
 }
 
-SVGLengthTearOff::SVGLengthTearOff(PassRefPtrWillBeRawPtr<SVGLength> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName)
+SVGLengthTearOff::SVGLengthTearOff(RawPtr<SVGLength> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName)
     : SVGPropertyTearOff<SVGLength>(target, contextElement, propertyIsAnimVal, attributeName)
 {
 }
diff --git a/third_party/WebKit/Source/core/svg/SVGLengthTearOff.h b/third_party/WebKit/Source/core/svg/SVGLengthTearOff.h
index 29dfee9..0ddddc6 100644
--- a/third_party/WebKit/Source/core/svg/SVGLengthTearOff.h
+++ b/third_party/WebKit/Source/core/svg/SVGLengthTearOff.h
@@ -56,9 +56,9 @@
         SVG_LENGTHTYPE_PC = LengthTypePC
     };
 
-    static PassRefPtrWillBeRawPtr<SVGLengthTearOff> create(PassRefPtrWillBeRawPtr<SVGLength> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
+    static RawPtr<SVGLengthTearOff> create(RawPtr<SVGLength> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
     {
-        return adoptRefWillBeNoop(new SVGLengthTearOff(target, contextElement, propertyIsAnimVal, attributeName));
+        return new SVGLengthTearOff(target, contextElement, propertyIsAnimVal, attributeName);
     }
 
     SVGLengthType unitType();
@@ -75,7 +75,7 @@
     bool hasExposedLengthUnit();
 
 private:
-    SVGLengthTearOff(PassRefPtrWillBeRawPtr<SVGLength>, SVGElement* contextElement, PropertyIsAnimValType, const QualifiedName& attributeName = QualifiedName::null());
+    SVGLengthTearOff(RawPtr<SVGLength>, SVGElement* contextElement, PropertyIsAnimValType, const QualifiedName& attributeName = QualifiedName::null());
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGLineElement.h b/third_party/WebKit/Source/core/svg/SVGLineElement.h
index 81288a6..b3e4c22c 100644
--- a/third_party/WebKit/Source/core/svg/SVGLineElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGLineElement.h
@@ -50,10 +50,10 @@
 
     bool selfHasRelativeLengths() const override;
 
-    RefPtrWillBeMember<SVGAnimatedLength> m_x1;
-    RefPtrWillBeMember<SVGAnimatedLength> m_y1;
-    RefPtrWillBeMember<SVGAnimatedLength> m_x2;
-    RefPtrWillBeMember<SVGAnimatedLength> m_y2;
+    Member<SVGAnimatedLength> m_x1;
+    Member<SVGAnimatedLength> m_y1;
+    Member<SVGAnimatedLength> m_x2;
+    Member<SVGAnimatedLength> m_y2;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGLinearGradientElement.cpp b/third_party/WebKit/Source/core/svg/SVGLinearGradientElement.cpp
index 7c6605a8..c66a6b4 100644
--- a/third_party/WebKit/Source/core/svg/SVGLinearGradientElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGLinearGradientElement.cpp
@@ -127,7 +127,7 @@
     if (!layoutObject())
         return false;
 
-    WillBeHeapHashSet<RawPtrWillBeMember<SVGGradientElement>> processedGradients;
+    HeapHashSet<Member<SVGGradientElement>> processedGradients;
     SVGGradientElement* current = this;
 
     setGradientAttributes(current, attributes);
diff --git a/third_party/WebKit/Source/core/svg/SVGLinearGradientElement.h b/third_party/WebKit/Source/core/svg/SVGLinearGradientElement.h
index 03af3a7..e8728c6 100644
--- a/third_party/WebKit/Source/core/svg/SVGLinearGradientElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGLinearGradientElement.h
@@ -53,10 +53,10 @@
 
     bool selfHasRelativeLengths() const override;
 
-    RefPtrWillBeMember<SVGAnimatedLength> m_x1;
-    RefPtrWillBeMember<SVGAnimatedLength> m_y1;
-    RefPtrWillBeMember<SVGAnimatedLength> m_x2;
-    RefPtrWillBeMember<SVGAnimatedLength> m_y2;
+    Member<SVGAnimatedLength> m_x1;
+    Member<SVGAnimatedLength> m_y1;
+    Member<SVGAnimatedLength> m_x2;
+    Member<SVGAnimatedLength> m_y2;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGMPathElement.h b/third_party/WebKit/Source/core/svg/SVGMPathElement.h
index a9cdc20..0383f44 100644
--- a/third_party/WebKit/Source/core/svg/SVGMPathElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGMPathElement.h
@@ -33,7 +33,7 @@
 class SVGMPathElement final : public SVGElement,
                               public SVGURIReference {
     DEFINE_WRAPPERTYPEINFO();
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(SVGMPathElement);
+    USING_GARBAGE_COLLECTED_MIXIN(SVGMPathElement);
 public:
     DECLARE_NODE_FACTORY(SVGMPathElement);
 
diff --git a/third_party/WebKit/Source/core/svg/SVGMarkerElement.cpp b/third_party/WebKit/Source/core/svg/SVGMarkerElement.cpp
index fe1c822..dcd0d8f 100644
--- a/third_party/WebKit/Source/core/svg/SVGMarkerElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGMarkerElement.cpp
@@ -119,10 +119,10 @@
     setAttribute(SVGNames::orientAttr, "auto");
 }
 
-void SVGMarkerElement::setOrientToAngle(PassRefPtrWillBeRawPtr<SVGAngleTearOff> angle)
+void SVGMarkerElement::setOrientToAngle(RawPtr<SVGAngleTearOff> angle)
 {
     ASSERT(angle);
-    RefPtrWillBeRawPtr<SVGAngle> target = angle->target();
+    RawPtr<SVGAngle> target = angle->target();
     setAttribute(SVGNames::orientAttr, AtomicString(target->valueAsString()));
 }
 
diff --git a/third_party/WebKit/Source/core/svg/SVGMarkerElement.h b/third_party/WebKit/Source/core/svg/SVGMarkerElement.h
index 6a89d0c..2c61025 100644
--- a/third_party/WebKit/Source/core/svg/SVGMarkerElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGMarkerElement.h
@@ -41,7 +41,7 @@
 class SVGMarkerElement final : public SVGElement,
                                public SVGFitToViewBox {
     DEFINE_WRAPPERTYPEINFO();
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(SVGMarkerElement);
+    USING_GARBAGE_COLLECTED_MIXIN(SVGMarkerElement);
 public:
     // Forward declare enumerations in the W3C naming scheme, for IDL generation.
     enum {
@@ -61,7 +61,7 @@
     AffineTransform viewBoxToViewTransform(float viewWidth, float viewHeight) const;
 
     void setOrientToAuto();
-    void setOrientToAngle(PassRefPtrWillBeRawPtr<SVGAngleTearOff>);
+    void setOrientToAngle(RawPtr<SVGAngleTearOff>);
 
     SVGAnimatedLength* refX() const { return m_refX.get(); }
     SVGAnimatedLength* refY() const { return m_refY.get(); }
@@ -86,12 +86,12 @@
 
     bool selfHasRelativeLengths() const override;
 
-    RefPtrWillBeMember<SVGAnimatedLength> m_refX;
-    RefPtrWillBeMember<SVGAnimatedLength> m_refY;
-    RefPtrWillBeMember<SVGAnimatedLength> m_markerWidth;
-    RefPtrWillBeMember<SVGAnimatedLength> m_markerHeight;
-    RefPtrWillBeMember<SVGAnimatedAngle> m_orientAngle;
-    RefPtrWillBeMember<SVGAnimatedEnumeration<SVGMarkerUnitsType>> m_markerUnits;
+    Member<SVGAnimatedLength> m_refX;
+    Member<SVGAnimatedLength> m_refY;
+    Member<SVGAnimatedLength> m_markerWidth;
+    Member<SVGAnimatedLength> m_markerHeight;
+    Member<SVGAnimatedAngle> m_orientAngle;
+    Member<SVGAnimatedEnumeration<SVGMarkerUnitsType>> m_markerUnits;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGMaskElement.h b/third_party/WebKit/Source/core/svg/SVGMaskElement.h
index 2bae142..6e482f88 100644
--- a/third_party/WebKit/Source/core/svg/SVGMaskElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGMaskElement.h
@@ -34,7 +34,7 @@
 class SVGMaskElement final : public SVGElement,
                              public SVGTests {
     DEFINE_WRAPPERTYPEINFO();
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(SVGMaskElement);
+    USING_GARBAGE_COLLECTED_MIXIN(SVGMaskElement);
 public:
     DECLARE_NODE_FACTORY(SVGMaskElement);
 
@@ -63,12 +63,12 @@
 
     bool selfHasRelativeLengths() const override;
 
-    RefPtrWillBeMember<SVGAnimatedLength> m_x;
-    RefPtrWillBeMember<SVGAnimatedLength> m_y;
-    RefPtrWillBeMember<SVGAnimatedLength> m_width;
-    RefPtrWillBeMember<SVGAnimatedLength> m_height;
-    RefPtrWillBeMember<SVGAnimatedEnumeration<SVGUnitTypes::SVGUnitType>> m_maskUnits;
-    RefPtrWillBeMember<SVGAnimatedEnumeration<SVGUnitTypes::SVGUnitType>> m_maskContentUnits;
+    Member<SVGAnimatedLength> m_x;
+    Member<SVGAnimatedLength> m_y;
+    Member<SVGAnimatedLength> m_width;
+    Member<SVGAnimatedLength> m_height;
+    Member<SVGAnimatedEnumeration<SVGUnitTypes::SVGUnitType>> m_maskUnits;
+    Member<SVGAnimatedEnumeration<SVGUnitTypes::SVGUnitType>> m_maskContentUnits;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGMatrixTearOff.cpp b/third_party/WebKit/Source/core/svg/SVGMatrixTearOff.cpp
index c53610c..24944114 100644
--- a/third_party/WebKit/Source/core/svg/SVGMatrixTearOff.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGMatrixTearOff.cpp
@@ -97,70 +97,70 @@
 
 #undef DEFINE_SETTER
 
-PassRefPtrWillBeRawPtr<SVGMatrixTearOff> SVGMatrixTearOff::translate(double tx, double ty)
+RawPtr<SVGMatrixTearOff> SVGMatrixTearOff::translate(double tx, double ty)
 {
-    RefPtrWillBeRawPtr<SVGMatrixTearOff> matrix = create(value());
+    RawPtr<SVGMatrixTearOff> matrix = create(value());
     matrix->mutableValue()->translate(tx, ty);
     return matrix.release();
 }
 
-PassRefPtrWillBeRawPtr<SVGMatrixTearOff> SVGMatrixTearOff::scale(double s)
+RawPtr<SVGMatrixTearOff> SVGMatrixTearOff::scale(double s)
 {
-    RefPtrWillBeRawPtr<SVGMatrixTearOff> matrix = create(value());
+    RawPtr<SVGMatrixTearOff> matrix = create(value());
     matrix->mutableValue()->scale(s, s);
     return matrix.release();
 }
 
-PassRefPtrWillBeRawPtr<SVGMatrixTearOff> SVGMatrixTearOff::scaleNonUniform(double sx, double sy)
+RawPtr<SVGMatrixTearOff> SVGMatrixTearOff::scaleNonUniform(double sx, double sy)
 {
-    RefPtrWillBeRawPtr<SVGMatrixTearOff> matrix = create(value());
+    RawPtr<SVGMatrixTearOff> matrix = create(value());
     matrix->mutableValue()->scale(sx, sy);
     return matrix.release();
 }
 
-PassRefPtrWillBeRawPtr<SVGMatrixTearOff> SVGMatrixTearOff::rotate(double d)
+RawPtr<SVGMatrixTearOff> SVGMatrixTearOff::rotate(double d)
 {
-    RefPtrWillBeRawPtr<SVGMatrixTearOff> matrix = create(value());
+    RawPtr<SVGMatrixTearOff> matrix = create(value());
     matrix->mutableValue()->rotate(d);
     return matrix.release();
 }
 
-PassRefPtrWillBeRawPtr<SVGMatrixTearOff> SVGMatrixTearOff::flipX()
+RawPtr<SVGMatrixTearOff> SVGMatrixTearOff::flipX()
 {
-    RefPtrWillBeRawPtr<SVGMatrixTearOff> matrix = create(value());
+    RawPtr<SVGMatrixTearOff> matrix = create(value());
     matrix->mutableValue()->flipX();
     return matrix.release();
 }
 
-PassRefPtrWillBeRawPtr<SVGMatrixTearOff> SVGMatrixTearOff::flipY()
+RawPtr<SVGMatrixTearOff> SVGMatrixTearOff::flipY()
 {
-    RefPtrWillBeRawPtr<SVGMatrixTearOff> matrix = create(value());
+    RawPtr<SVGMatrixTearOff> matrix = create(value());
     matrix->mutableValue()->flipY();
     return matrix.release();
 }
 
-PassRefPtrWillBeRawPtr<SVGMatrixTearOff> SVGMatrixTearOff::skewX(double angle)
+RawPtr<SVGMatrixTearOff> SVGMatrixTearOff::skewX(double angle)
 {
-    RefPtrWillBeRawPtr<SVGMatrixTearOff> matrix = create(value());
+    RawPtr<SVGMatrixTearOff> matrix = create(value());
     matrix->mutableValue()->skewX(angle);
     return matrix.release();
 }
 
-PassRefPtrWillBeRawPtr<SVGMatrixTearOff> SVGMatrixTearOff::skewY(double angle)
+RawPtr<SVGMatrixTearOff> SVGMatrixTearOff::skewY(double angle)
 {
-    RefPtrWillBeRawPtr<SVGMatrixTearOff> matrix = create(value());
+    RawPtr<SVGMatrixTearOff> matrix = create(value());
     matrix->mutableValue()->skewY(angle);
     return matrix.release();
 }
 
-PassRefPtrWillBeRawPtr<SVGMatrixTearOff> SVGMatrixTearOff::multiply(PassRefPtrWillBeRawPtr<SVGMatrixTearOff> other)
+RawPtr<SVGMatrixTearOff> SVGMatrixTearOff::multiply(RawPtr<SVGMatrixTearOff> other)
 {
-    RefPtrWillBeRawPtr<SVGMatrixTearOff> matrix = create(value());
+    RawPtr<SVGMatrixTearOff> matrix = create(value());
     *matrix->mutableValue() *= other->value();
     return matrix.release();
 }
 
-PassRefPtrWillBeRawPtr<SVGMatrixTearOff> SVGMatrixTearOff::inverse(ExceptionState& exceptionState)
+RawPtr<SVGMatrixTearOff> SVGMatrixTearOff::inverse(ExceptionState& exceptionState)
 {
     AffineTransform transform = value().inverse();
     if (!value().isInvertible())
@@ -169,7 +169,7 @@
     return create(transform);
 }
 
-PassRefPtrWillBeRawPtr<SVGMatrixTearOff> SVGMatrixTearOff::rotateFromVector(double x, double y, ExceptionState& exceptionState)
+RawPtr<SVGMatrixTearOff> SVGMatrixTearOff::rotateFromVector(double x, double y, ExceptionState& exceptionState)
 {
     if (!x || !y)
         exceptionState.throwDOMException(InvalidAccessError, "Arguments cannot be zero.");
diff --git a/third_party/WebKit/Source/core/svg/SVGMatrixTearOff.h b/third_party/WebKit/Source/core/svg/SVGMatrixTearOff.h
index a10a1a92..db91ea0 100644
--- a/third_party/WebKit/Source/core/svg/SVGMatrixTearOff.h
+++ b/third_party/WebKit/Source/core/svg/SVGMatrixTearOff.h
@@ -45,17 +45,17 @@
 // SVGMatrixTearOff wraps a AffineTransform for Javascript.
 // Its instance can either hold a static value, or this can be teared off from |SVGTransform.matrix|.
 // This does not derive from SVGPropertyTearOff, as its instances are never tied to an animated property nor an XML attribute.
-class CORE_EXPORT SVGMatrixTearOff final : public RefCountedWillBeGarbageCollectedFinalized<SVGMatrixTearOff>, public ScriptWrappable {
+class CORE_EXPORT SVGMatrixTearOff final : public GarbageCollectedFinalized<SVGMatrixTearOff>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<SVGMatrixTearOff> create(const AffineTransform& value)
+    static RawPtr<SVGMatrixTearOff> create(const AffineTransform& value)
     {
-        return adoptRefWillBeNoop(new SVGMatrixTearOff(value));
+        return new SVGMatrixTearOff(value);
     }
 
-    static PassRefPtrWillBeRawPtr<SVGMatrixTearOff> create(SVGTransformTearOff* target)
+    static RawPtr<SVGMatrixTearOff> create(SVGTransformTearOff* target)
     {
-        return adoptRefWillBeNoop(new SVGMatrixTearOff(target));
+        return new SVGMatrixTearOff(target);
     }
 
     ~SVGMatrixTearOff();
@@ -74,17 +74,17 @@
     void setE(double, ExceptionState&);
     void setF(double, ExceptionState&);
 
-    PassRefPtrWillBeRawPtr<SVGMatrixTearOff> translate(double tx, double ty);
-    PassRefPtrWillBeRawPtr<SVGMatrixTearOff> scale(double);
-    PassRefPtrWillBeRawPtr<SVGMatrixTearOff> scaleNonUniform(double sx, double sy);
-    PassRefPtrWillBeRawPtr<SVGMatrixTearOff> rotate(double);
-    PassRefPtrWillBeRawPtr<SVGMatrixTearOff> flipX();
-    PassRefPtrWillBeRawPtr<SVGMatrixTearOff> flipY();
-    PassRefPtrWillBeRawPtr<SVGMatrixTearOff> skewX(double);
-    PassRefPtrWillBeRawPtr<SVGMatrixTearOff> skewY(double);
-    PassRefPtrWillBeRawPtr<SVGMatrixTearOff> multiply(PassRefPtrWillBeRawPtr<SVGMatrixTearOff>);
-    PassRefPtrWillBeRawPtr<SVGMatrixTearOff> inverse(ExceptionState&);
-    PassRefPtrWillBeRawPtr<SVGMatrixTearOff> rotateFromVector(double x, double y, ExceptionState&);
+    RawPtr<SVGMatrixTearOff> translate(double tx, double ty);
+    RawPtr<SVGMatrixTearOff> scale(double);
+    RawPtr<SVGMatrixTearOff> scaleNonUniform(double sx, double sy);
+    RawPtr<SVGMatrixTearOff> rotate(double);
+    RawPtr<SVGMatrixTearOff> flipX();
+    RawPtr<SVGMatrixTearOff> flipY();
+    RawPtr<SVGMatrixTearOff> skewX(double);
+    RawPtr<SVGMatrixTearOff> skewY(double);
+    RawPtr<SVGMatrixTearOff> multiply(RawPtr<SVGMatrixTearOff>);
+    RawPtr<SVGMatrixTearOff> inverse(ExceptionState&);
+    RawPtr<SVGMatrixTearOff> rotateFromVector(double x, double y, ExceptionState&);
 
     SVGTransformTearOff* contextTransform() { return m_contextTransform; }
 
@@ -101,7 +101,7 @@
 
     AffineTransform m_staticValue;
 
-    RawPtrWillBeMember<SVGTransformTearOff> m_contextTransform;
+    Member<SVGTransformTearOff> m_contextTransform;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGNumber.cpp b/third_party/WebKit/Source/core/svg/SVGNumber.cpp
index 2b0d97f..6175888 100644
--- a/third_party/WebKit/Source/core/svg/SVGNumber.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGNumber.cpp
@@ -40,7 +40,7 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<SVGNumber> SVGNumber::clone() const
+RawPtr<SVGNumber> SVGNumber::clone() const
 {
     return create(m_value);
 }
@@ -80,28 +80,28 @@
     return parse(ptr, end);
 }
 
-void SVGNumber::add(PassRefPtrWillBeRawPtr<SVGPropertyBase> other, SVGElement*)
+void SVGNumber::add(RawPtr<SVGPropertyBase> other, SVGElement*)
 {
     setValue(m_value + toSVGNumber(other)->value());
 }
 
-void SVGNumber::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, PassRefPtrWillBeRawPtr<SVGPropertyBase> from, PassRefPtrWillBeRawPtr<SVGPropertyBase> to, PassRefPtrWillBeRawPtr<SVGPropertyBase> toAtEndOfDuration, SVGElement*)
+void SVGNumber::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> from, RawPtr<SVGPropertyBase> to, RawPtr<SVGPropertyBase> toAtEndOfDuration, SVGElement*)
 {
     ASSERT(animationElement);
 
-    RefPtrWillBeRawPtr<SVGNumber> fromNumber = toSVGNumber(from);
-    RefPtrWillBeRawPtr<SVGNumber> toNumber = toSVGNumber(to);
-    RefPtrWillBeRawPtr<SVGNumber> toAtEndOfDurationNumber = toSVGNumber(toAtEndOfDuration);
+    RawPtr<SVGNumber> fromNumber = toSVGNumber(from);
+    RawPtr<SVGNumber> toNumber = toSVGNumber(to);
+    RawPtr<SVGNumber> toAtEndOfDurationNumber = toSVGNumber(toAtEndOfDuration);
 
     animationElement->animateAdditiveNumber(percentage, repeatCount, fromNumber->value(), toNumber->value(), toAtEndOfDurationNumber->value(), m_value);
 }
 
-float SVGNumber::calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase> other, SVGElement*)
+float SVGNumber::calculateDistance(RawPtr<SVGPropertyBase> other, SVGElement*)
 {
     return fabsf(m_value - toSVGNumber(other)->value());
 }
 
-PassRefPtrWillBeRawPtr<SVGNumber> SVGNumberAcceptPercentage::clone() const
+RawPtr<SVGNumber> SVGNumberAcceptPercentage::clone() const
 {
     return create(m_value);
 }
diff --git a/third_party/WebKit/Source/core/svg/SVGNumber.h b/third_party/WebKit/Source/core/svg/SVGNumber.h
index 7addb92..dc3a0263 100644
--- a/third_party/WebKit/Source/core/svg/SVGNumber.h
+++ b/third_party/WebKit/Source/core/svg/SVGNumber.h
@@ -44,12 +44,12 @@
     typedef SVGNumberTearOff TearOffType;
     typedef float PrimitiveType;
 
-    static PassRefPtrWillBeRawPtr<SVGNumber> create(float value = 0.0f)
+    static RawPtr<SVGNumber> create(float value = 0.0f)
     {
-        return adoptRefWillBeNoop(new SVGNumber(value));
+        return new SVGNumber(value);
     }
 
-    virtual PassRefPtrWillBeRawPtr<SVGNumber> clone() const;
+    virtual RawPtr<SVGNumber> clone() const;
 
     float value() const { return m_value; }
     void setValue(float value) { m_value = value; }
@@ -57,9 +57,9 @@
     String valueAsString() const override;
     virtual SVGParsingError setValueAsString(const String&);
 
-    void add(PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*) override;
-    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, PassRefPtrWillBeRawPtr<SVGPropertyBase> from, PassRefPtrWillBeRawPtr<SVGPropertyBase> to, PassRefPtrWillBeRawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement* contextElement) override;
-    float calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase> to, SVGElement* contextElement) override;
+    void add(RawPtr<SVGPropertyBase>, SVGElement*) override;
+    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> from, RawPtr<SVGPropertyBase> to, RawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement* contextElement) override;
+    float calculateDistance(RawPtr<SVGPropertyBase> to, SVGElement* contextElement) override;
 
     static AnimatedPropertyType classType() { return AnimatedNumber; }
 
@@ -80,12 +80,12 @@
 //   offset = "<number> | <percentage>"
 class SVGNumberAcceptPercentage final : public SVGNumber {
 public:
-    static PassRefPtrWillBeRawPtr<SVGNumberAcceptPercentage> create(float value = 0)
+    static RawPtr<SVGNumberAcceptPercentage> create(float value = 0)
     {
-        return adoptRefWillBeNoop(new SVGNumberAcceptPercentage(value));
+        return new SVGNumberAcceptPercentage(value);
     }
 
-    PassRefPtrWillBeRawPtr<SVGNumber> clone() const override;
+    RawPtr<SVGNumber> clone() const override;
     SVGParsingError setValueAsString(const String&) override;
 
 private:
diff --git a/third_party/WebKit/Source/core/svg/SVGNumberList.cpp b/third_party/WebKit/Source/core/svg/SVGNumberList.cpp
index ddc896d..0e156a1 100644
--- a/third_party/WebKit/Source/core/svg/SVGNumberList.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGNumberList.cpp
@@ -87,9 +87,9 @@
     return parse(ptr, end);
 }
 
-void SVGNumberList::add(PassRefPtrWillBeRawPtr<SVGPropertyBase> other, SVGElement* contextElement)
+void SVGNumberList::add(RawPtr<SVGPropertyBase> other, SVGElement* contextElement)
 {
-    RefPtrWillBeRawPtr<SVGNumberList> otherList = toSVGNumberList(other);
+    RawPtr<SVGNumberList> otherList = toSVGNumberList(other);
 
     if (length() != otherList->length())
         return;
@@ -98,11 +98,11 @@
         at(i)->setValue(at(i)->value() + otherList->at(i)->value());
 }
 
-void SVGNumberList::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, PassRefPtrWillBeRawPtr<SVGPropertyBase> fromValue, PassRefPtrWillBeRawPtr<SVGPropertyBase> toValue, PassRefPtrWillBeRawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement* contextElement)
+void SVGNumberList::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> fromValue, RawPtr<SVGPropertyBase> toValue, RawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement* contextElement)
 {
-    RefPtrWillBeRawPtr<SVGNumberList> fromList = toSVGNumberList(fromValue);
-    RefPtrWillBeRawPtr<SVGNumberList> toList = toSVGNumberList(toValue);
-    RefPtrWillBeRawPtr<SVGNumberList> toAtEndOfDurationList = toSVGNumberList(toAtEndOfDurationValue);
+    RawPtr<SVGNumberList> fromList = toSVGNumberList(fromValue);
+    RawPtr<SVGNumberList> toList = toSVGNumberList(toValue);
+    RawPtr<SVGNumberList> toAtEndOfDurationList = toSVGNumberList(toAtEndOfDurationValue);
 
     size_t fromListSize = fromList->length();
     size_t toListSize = toList->length();
@@ -122,7 +122,7 @@
     }
 }
 
-float SVGNumberList::calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase> to, SVGElement*)
+float SVGNumberList::calculateDistance(RawPtr<SVGPropertyBase> to, SVGElement*)
 {
     // FIXME: Distance calculation is not possible for SVGNumberList right now. We need the distance for every single value.
     return -1;
diff --git a/third_party/WebKit/Source/core/svg/SVGNumberList.h b/third_party/WebKit/Source/core/svg/SVGNumberList.h
index d3a194e..39ebb86 100644
--- a/third_party/WebKit/Source/core/svg/SVGNumberList.h
+++ b/third_party/WebKit/Source/core/svg/SVGNumberList.h
@@ -43,9 +43,9 @@
 public:
     typedef SVGNumberListTearOff TearOffType;
 
-    static PassRefPtrWillBeRawPtr<SVGNumberList> create()
+    static RawPtr<SVGNumberList> create()
     {
-        return adoptRefWillBeNoop(new SVGNumberList());
+        return new SVGNumberList();
     }
 
     ~SVGNumberList() override;
@@ -55,9 +55,9 @@
     // SVGPropertyBase:
     String valueAsString() const override;
 
-    void add(PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*) override;
-    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, PassRefPtrWillBeRawPtr<SVGPropertyBase> fromValue, PassRefPtrWillBeRawPtr<SVGPropertyBase> toValue, PassRefPtrWillBeRawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement*) override;
-    float calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase> to, SVGElement*) override;
+    void add(RawPtr<SVGPropertyBase>, SVGElement*) override;
+    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> fromValue, RawPtr<SVGPropertyBase> toValue, RawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement*) override;
+    float calculateDistance(RawPtr<SVGPropertyBase> to, SVGElement*) override;
 
     static AnimatedPropertyType classType() { return AnimatedNumberList; }
 
diff --git a/third_party/WebKit/Source/core/svg/SVGNumberListTearOff.h b/third_party/WebKit/Source/core/svg/SVGNumberListTearOff.h
index 91d71f6..6ea32d4 100644
--- a/third_party/WebKit/Source/core/svg/SVGNumberListTearOff.h
+++ b/third_party/WebKit/Source/core/svg/SVGNumberListTearOff.h
@@ -41,13 +41,13 @@
     , public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<SVGNumberListTearOff> create(PassRefPtrWillBeRawPtr<SVGNumberList> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
+    static RawPtr<SVGNumberListTearOff> create(RawPtr<SVGNumberList> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
     {
-        return adoptRefWillBeNoop(new SVGNumberListTearOff(target, contextElement, propertyIsAnimVal, attributeName));
+        return new SVGNumberListTearOff(target, contextElement, propertyIsAnimVal, attributeName);
     }
 
 private:
-    SVGNumberListTearOff(PassRefPtrWillBeRawPtr<SVGNumberList> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
+    SVGNumberListTearOff(RawPtr<SVGNumberList> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
         : SVGListPropertyTearOffHelper<SVGNumberListTearOff, SVGNumberList>(target, contextElement, propertyIsAnimVal, attributeName) { }
 };
 
diff --git a/third_party/WebKit/Source/core/svg/SVGNumberOptionalNumber.cpp b/third_party/WebKit/Source/core/svg/SVGNumberOptionalNumber.cpp
index be08a9d..e4883882 100644
--- a/third_party/WebKit/Source/core/svg/SVGNumberOptionalNumber.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGNumberOptionalNumber.cpp
@@ -35,7 +35,7 @@
 
 namespace blink {
 
-SVGNumberOptionalNumber::SVGNumberOptionalNumber(PassRefPtrWillBeRawPtr<SVGNumber> firstNumber, PassRefPtrWillBeRawPtr<SVGNumber> secondNumber)
+SVGNumberOptionalNumber::SVGNumberOptionalNumber(RawPtr<SVGNumber> firstNumber, RawPtr<SVGNumber> secondNumber)
     : SVGPropertyBase(classType())
     , m_firstNumber(firstNumber)
     , m_secondNumber(secondNumber)
@@ -49,12 +49,12 @@
     SVGPropertyBase::trace(visitor);
 }
 
-PassRefPtrWillBeRawPtr<SVGNumberOptionalNumber> SVGNumberOptionalNumber::clone() const
+RawPtr<SVGNumberOptionalNumber> SVGNumberOptionalNumber::clone() const
 {
     return SVGNumberOptionalNumber::create(m_firstNumber->clone(), m_secondNumber->clone());
 }
 
-PassRefPtrWillBeRawPtr<SVGPropertyBase> SVGNumberOptionalNumber::cloneForAnimation(const String& value) const
+RawPtr<SVGPropertyBase> SVGNumberOptionalNumber::cloneForAnimation(const String& value) const
 {
     float x, y;
     if (!parseNumberOptionalNumber(value, x, y)) {
@@ -87,21 +87,21 @@
     return parseStatus;
 }
 
-void SVGNumberOptionalNumber::add(PassRefPtrWillBeRawPtr<SVGPropertyBase> other, SVGElement*)
+void SVGNumberOptionalNumber::add(RawPtr<SVGPropertyBase> other, SVGElement*)
 {
-    RefPtrWillBeRawPtr<SVGNumberOptionalNumber> otherNumberOptionalNumber = toSVGNumberOptionalNumber(other);
+    RawPtr<SVGNumberOptionalNumber> otherNumberOptionalNumber = toSVGNumberOptionalNumber(other);
 
     m_firstNumber->setValue(m_firstNumber->value() + otherNumberOptionalNumber->m_firstNumber->value());
     m_secondNumber->setValue(m_secondNumber->value() + otherNumberOptionalNumber->m_secondNumber->value());
 }
 
-void SVGNumberOptionalNumber::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, PassRefPtrWillBeRawPtr<SVGPropertyBase> from, PassRefPtrWillBeRawPtr<SVGPropertyBase> to, PassRefPtrWillBeRawPtr<SVGPropertyBase> toAtEndOfDuration, SVGElement*)
+void SVGNumberOptionalNumber::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> from, RawPtr<SVGPropertyBase> to, RawPtr<SVGPropertyBase> toAtEndOfDuration, SVGElement*)
 {
     ASSERT(animationElement);
 
-    RefPtrWillBeRawPtr<SVGNumberOptionalNumber> fromNumber = toSVGNumberOptionalNumber(from);
-    RefPtrWillBeRawPtr<SVGNumberOptionalNumber> toNumber = toSVGNumberOptionalNumber(to);
-    RefPtrWillBeRawPtr<SVGNumberOptionalNumber> toAtEndOfDurationNumber = toSVGNumberOptionalNumber(toAtEndOfDuration);
+    RawPtr<SVGNumberOptionalNumber> fromNumber = toSVGNumberOptionalNumber(from);
+    RawPtr<SVGNumberOptionalNumber> toNumber = toSVGNumberOptionalNumber(to);
+    RawPtr<SVGNumberOptionalNumber> toAtEndOfDurationNumber = toSVGNumberOptionalNumber(toAtEndOfDuration);
 
     float x = m_firstNumber->value();
     float y = m_secondNumber->value();
@@ -111,7 +111,7 @@
     m_secondNumber->setValue(y);
 }
 
-float SVGNumberOptionalNumber::calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase> other, SVGElement*)
+float SVGNumberOptionalNumber::calculateDistance(RawPtr<SVGPropertyBase> other, SVGElement*)
 {
     // FIXME: Distance calculation is not possible for SVGNumberOptionalNumber right now. We need the distance for every single value.
     return -1;
diff --git a/third_party/WebKit/Source/core/svg/SVGNumberOptionalNumber.h b/third_party/WebKit/Source/core/svg/SVGNumberOptionalNumber.h
index 66c637f..f5b79140 100644
--- a/third_party/WebKit/Source/core/svg/SVGNumberOptionalNumber.h
+++ b/third_party/WebKit/Source/core/svg/SVGNumberOptionalNumber.h
@@ -43,33 +43,33 @@
     typedef void TearOffType;
     typedef void PrimitiveType;
 
-    static PassRefPtrWillBeRawPtr<SVGNumberOptionalNumber> create(PassRefPtrWillBeRawPtr<SVGNumber> firstNumber, PassRefPtrWillBeRawPtr<SVGNumber> secondNumber)
+    static RawPtr<SVGNumberOptionalNumber> create(RawPtr<SVGNumber> firstNumber, RawPtr<SVGNumber> secondNumber)
     {
-        return adoptRefWillBeNoop(new SVGNumberOptionalNumber(firstNumber, secondNumber));
+        return new SVGNumberOptionalNumber(firstNumber, secondNumber);
     }
 
-    PassRefPtrWillBeRawPtr<SVGNumberOptionalNumber> clone() const;
-    PassRefPtrWillBeRawPtr<SVGPropertyBase> cloneForAnimation(const String&) const override;
+    RawPtr<SVGNumberOptionalNumber> clone() const;
+    RawPtr<SVGPropertyBase> cloneForAnimation(const String&) const override;
 
     String valueAsString() const override;
     SVGParsingError setValueAsString(const String&);
 
-    void add(PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*) override;
-    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, PassRefPtrWillBeRawPtr<SVGPropertyBase> from, PassRefPtrWillBeRawPtr<SVGPropertyBase> to, PassRefPtrWillBeRawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement* contextElement) override;
-    float calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase> to, SVGElement* contextElement) override;
+    void add(RawPtr<SVGPropertyBase>, SVGElement*) override;
+    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> from, RawPtr<SVGPropertyBase> to, RawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement* contextElement) override;
+    float calculateDistance(RawPtr<SVGPropertyBase> to, SVGElement* contextElement) override;
 
     static AnimatedPropertyType classType() { return AnimatedNumberOptionalNumber; }
 
-    PassRefPtrWillBeRawPtr<SVGNumber> firstNumber() const { return m_firstNumber; }
-    PassRefPtrWillBeRawPtr<SVGNumber> secondNumber() const { return m_secondNumber; }
+    RawPtr<SVGNumber> firstNumber() const { return m_firstNumber; }
+    RawPtr<SVGNumber> secondNumber() const { return m_secondNumber; }
 
     DECLARE_VIRTUAL_TRACE();
 
 protected:
-    SVGNumberOptionalNumber(PassRefPtrWillBeRawPtr<SVGNumber> firstNumber, PassRefPtrWillBeRawPtr<SVGNumber> secondNumber);
+    SVGNumberOptionalNumber(RawPtr<SVGNumber> firstNumber, RawPtr<SVGNumber> secondNumber);
 
-    RefPtrWillBeMember<SVGNumber> m_firstNumber;
-    RefPtrWillBeMember<SVGNumber> m_secondNumber;
+    Member<SVGNumber> m_firstNumber;
+    Member<SVGNumber> m_secondNumber;
 };
 
 DEFINE_SVG_PROPERTY_TYPE_CASTS(SVGNumberOptionalNumber);
diff --git a/third_party/WebKit/Source/core/svg/SVGNumberTearOff.cpp b/third_party/WebKit/Source/core/svg/SVGNumberTearOff.cpp
index 746244e..e508d4c 100644
--- a/third_party/WebKit/Source/core/svg/SVGNumberTearOff.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGNumberTearOff.cpp
@@ -36,7 +36,7 @@
 
 namespace blink {
 
-SVGNumberTearOff::SVGNumberTearOff(PassRefPtrWillBeRawPtr<SVGNumber> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName)
+SVGNumberTearOff::SVGNumberTearOff(RawPtr<SVGNumber> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName)
     : SVGPropertyTearOff<SVGNumber>(target, contextElement, propertyIsAnimVal, attributeName)
 {
 }
diff --git a/third_party/WebKit/Source/core/svg/SVGNumberTearOff.h b/third_party/WebKit/Source/core/svg/SVGNumberTearOff.h
index 5f7b6ab5..d3eccb2 100644
--- a/third_party/WebKit/Source/core/svg/SVGNumberTearOff.h
+++ b/third_party/WebKit/Source/core/svg/SVGNumberTearOff.h
@@ -40,16 +40,16 @@
 class SVGNumberTearOff : public SVGPropertyTearOff<SVGNumber>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<SVGNumberTearOff> create(PassRefPtrWillBeRawPtr<SVGNumber> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
+    static RawPtr<SVGNumberTearOff> create(RawPtr<SVGNumber> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
     {
-        return adoptRefWillBeNoop(new SVGNumberTearOff(target, contextElement, propertyIsAnimVal, attributeName));
+        return new SVGNumberTearOff(target, contextElement, propertyIsAnimVal, attributeName);
     }
 
     void setValue(float, ExceptionState&);
     float value() { return target()->value(); }
 
 protected:
-    SVGNumberTearOff(PassRefPtrWillBeRawPtr<SVGNumber>, SVGElement* contextElement, PropertyIsAnimValType, const QualifiedName& attributeName = QualifiedName::null());
+    SVGNumberTearOff(RawPtr<SVGNumber>, SVGElement* contextElement, PropertyIsAnimValType, const QualifiedName& attributeName = QualifiedName::null());
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGPath.cpp b/third_party/WebKit/Source/core/svg/SVGPath.cpp
index 1837315..cc82bb4 100644
--- a/third_party/WebKit/Source/core/svg/SVGPath.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGPath.cpp
@@ -72,7 +72,7 @@
 {
 }
 
-SVGPath::SVGPath(PassRefPtrWillBeRawPtr<CSSPathValue> pathValue)
+SVGPath::SVGPath(RawPtr<CSSPathValue> pathValue)
     : SVGPropertyBase(classType())
     , m_pathValue(pathValue)
 {
@@ -89,7 +89,7 @@
 }
 
 
-PassRefPtrWillBeRawPtr<SVGPath> SVGPath::clone() const
+RawPtr<SVGPath> SVGPath::clone() const
 {
     return SVGPath::create(m_pathValue);
 }
@@ -102,14 +102,14 @@
     return parseStatus;
 }
 
-PassRefPtrWillBeRawPtr<SVGPropertyBase> SVGPath::cloneForAnimation(const String& value) const
+RawPtr<SVGPropertyBase> SVGPath::cloneForAnimation(const String& value) const
 {
     OwnPtr<SVGPathByteStream> byteStream = SVGPathByteStream::create();
     buildByteStreamFromString(value, *byteStream);
     return SVGPath::create(CSSPathValue::create(byteStream.release()));
 }
 
-void SVGPath::add(PassRefPtrWillBeRawPtr<SVGPropertyBase> other, SVGElement*)
+void SVGPath::add(RawPtr<SVGPropertyBase> other, SVGElement*)
 {
     const SVGPathByteStream& otherPathByteStream = toSVGPath(other)->byteStream();
     if (byteStream().size() != otherPathByteStream.size()
@@ -120,7 +120,7 @@
     m_pathValue = CSSPathValue::create(addPathByteStreams(byteStream(), otherPathByteStream));
 }
 
-void SVGPath::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, PassRefPtrWillBeRawPtr<SVGPropertyBase> fromValue, PassRefPtrWillBeRawPtr<SVGPropertyBase> toValue, PassRefPtrWillBeRawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement*)
+void SVGPath::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> fromValue, RawPtr<SVGPropertyBase> toValue, RawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement*)
 {
     ASSERT(animationElement);
     bool isToAnimation = animationElement->getAnimationMode() == ToAnimation;
@@ -167,7 +167,7 @@
     m_pathValue = CSSPathValue::create(newStream.release());
 }
 
-float SVGPath::calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase> to, SVGElement*)
+float SVGPath::calculateDistance(RawPtr<SVGPropertyBase> to, SVGElement*)
 {
     // FIXME: Support paced animations.
     return -1;
diff --git a/third_party/WebKit/Source/core/svg/SVGPath.h b/third_party/WebKit/Source/core/svg/SVGPath.h
index e25ddc7..0fcdd82 100644
--- a/third_party/WebKit/Source/core/svg/SVGPath.h
+++ b/third_party/WebKit/Source/core/svg/SVGPath.h
@@ -42,13 +42,13 @@
 public:
     typedef void TearOffType;
 
-    static PassRefPtrWillBeRawPtr<SVGPath> create()
+    static RawPtr<SVGPath> create()
     {
-        return adoptRefWillBeNoop(new SVGPath());
+        return new SVGPath();
     }
-    static PassRefPtrWillBeRawPtr<SVGPath> create(PassRefPtrWillBeRawPtr<CSSPathValue> pathValue)
+    static RawPtr<SVGPath> create(RawPtr<CSSPathValue> pathValue)
     {
-        return adoptRefWillBeNoop(new SVGPath(pathValue));
+        return new SVGPath(pathValue);
     }
 
     ~SVGPath() override;
@@ -58,14 +58,14 @@
     CSSPathValue* pathValue() const { return m_pathValue.get(); }
 
     // SVGPropertyBase:
-    PassRefPtrWillBeRawPtr<SVGPath> clone() const;
-    PassRefPtrWillBeRawPtr<SVGPropertyBase> cloneForAnimation(const String&) const override;
+    RawPtr<SVGPath> clone() const;
+    RawPtr<SVGPropertyBase> cloneForAnimation(const String&) const override;
     String valueAsString() const override;
     SVGParsingError setValueAsString(const String&);
 
-    void add(PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*) override;
-    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, PassRefPtrWillBeRawPtr<SVGPropertyBase> fromValue, PassRefPtrWillBeRawPtr<SVGPropertyBase> toValue, PassRefPtrWillBeRawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement*) override;
-    float calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase> to, SVGElement*) override;
+    void add(RawPtr<SVGPropertyBase>, SVGElement*) override;
+    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> fromValue, RawPtr<SVGPropertyBase> toValue, RawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement*) override;
+    float calculateDistance(RawPtr<SVGPropertyBase> to, SVGElement*) override;
 
     static AnimatedPropertyType classType() { return AnimatedPath; }
 
@@ -73,9 +73,9 @@
 
 private:
     SVGPath();
-    explicit SVGPath(PassRefPtrWillBeRawPtr<CSSPathValue>);
+    explicit SVGPath(RawPtr<CSSPathValue>);
 
-    RefPtrWillBeMember<CSSPathValue> m_pathValue;
+    Member<CSSPathValue> m_pathValue;
 };
 
 DEFINE_SVG_PROPERTY_TYPE_CASTS(SVGPath);
diff --git a/third_party/WebKit/Source/core/svg/SVGPathElement.cpp b/third_party/WebKit/Source/core/svg/SVGPathElement.cpp
index 39aaeabe..448e108 100644
--- a/third_party/WebKit/Source/core/svg/SVGPathElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGPathElement.cpp
@@ -32,9 +32,9 @@
 
 class SVGAnimatedPathLength final : public SVGAnimatedNumber {
 public:
-    static PassRefPtrWillBeRawPtr<SVGAnimatedPathLength> create(SVGPathElement* contextElement)
+    static RawPtr<SVGAnimatedPathLength> create(SVGPathElement* contextElement)
     {
-        return adoptRefWillBeNoop(new SVGAnimatedPathLength(contextElement));
+        return new SVGAnimatedPathLength(contextElement);
     }
 
     SVGParsingError setBaseValueAsString(const String& value) override
@@ -107,7 +107,7 @@
     return SVGPathQuery(pathByteStream()).getTotalLength();
 }
 
-PassRefPtrWillBeRawPtr<SVGPointTearOff> SVGPathElement::getPointAtLength(float length)
+RawPtr<SVGPointTearOff> SVGPathElement::getPointAtLength(float length)
 {
     document().updateLayoutIgnorePendingStylesheets();
     FloatPoint point = SVGPathQuery(pathByteStream()).getPointAtLength(length);
diff --git a/third_party/WebKit/Source/core/svg/SVGPathElement.h b/third_party/WebKit/Source/core/svg/SVGPathElement.h
index 4e1ab11..63bd89069 100644
--- a/third_party/WebKit/Source/core/svg/SVGPathElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGPathElement.h
@@ -39,7 +39,7 @@
     Path asPath() const override;
 
     float getTotalLength();
-    PassRefPtrWillBeRawPtr<SVGPointTearOff> getPointAtLength(float distance);
+    RawPtr<SVGPointTearOff> getPointAtLength(float distance);
     unsigned getPathSegAtLength(float distance);
 
     SVGAnimatedPath* path() const { return m_path.get(); }
@@ -66,8 +66,8 @@
 
     void invalidateMPathDependencies();
 
-    RefPtrWillBeMember<SVGAnimatedNumber> m_pathLength;
-    RefPtrWillBeMember<SVGAnimatedPath> m_path;
+    Member<SVGAnimatedNumber> m_pathLength;
+    Member<SVGAnimatedPath> m_path;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGPatternElement.cpp b/third_party/WebKit/Source/core/svg/SVGPatternElement.cpp
index 8ee29656..cfc89b1f 100644
--- a/third_party/WebKit/Source/core/svg/SVGPatternElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGPatternElement.cpp
@@ -150,7 +150,7 @@
 
 void SVGPatternElement::collectPatternAttributes(PatternAttributes& attributes) const
 {
-    WillBeHeapHashSet<RawPtrWillBeMember<const SVGPatternElement>> processedPatterns;
+    HeapHashSet<Member<const SVGPatternElement>> processedPatterns;
     const SVGPatternElement* current = this;
 
     while (true) {
diff --git a/third_party/WebKit/Source/core/svg/SVGPatternElement.h b/third_party/WebKit/Source/core/svg/SVGPatternElement.h
index e7f94e9..427da3e9 100644
--- a/third_party/WebKit/Source/core/svg/SVGPatternElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGPatternElement.h
@@ -41,7 +41,7 @@
                                 public SVGTests,
                                 public SVGFitToViewBox {
     DEFINE_WRAPPERTYPEINFO();
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(SVGPatternElement);
+    USING_GARBAGE_COLLECTED_MIXIN(SVGPatternElement);
 public:
     DECLARE_NODE_FACTORY(SVGPatternElement);
 
@@ -75,13 +75,13 @@
 
     bool selfHasRelativeLengths() const override;
 
-    RefPtrWillBeMember<SVGAnimatedLength> m_x;
-    RefPtrWillBeMember<SVGAnimatedLength> m_y;
-    RefPtrWillBeMember<SVGAnimatedLength> m_width;
-    RefPtrWillBeMember<SVGAnimatedLength> m_height;
-    RefPtrWillBeMember<SVGAnimatedTransformList> m_patternTransform;
-    RefPtrWillBeMember<SVGAnimatedEnumeration<SVGUnitTypes::SVGUnitType>> m_patternUnits;
-    RefPtrWillBeMember<SVGAnimatedEnumeration<SVGUnitTypes::SVGUnitType>> m_patternContentUnits;
+    Member<SVGAnimatedLength> m_x;
+    Member<SVGAnimatedLength> m_y;
+    Member<SVGAnimatedLength> m_width;
+    Member<SVGAnimatedLength> m_height;
+    Member<SVGAnimatedTransformList> m_patternTransform;
+    Member<SVGAnimatedEnumeration<SVGUnitTypes::SVGUnitType>> m_patternUnits;
+    Member<SVGAnimatedEnumeration<SVGUnitTypes::SVGUnitType>> m_patternContentUnits;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGPoint.cpp b/third_party/WebKit/Source/core/svg/SVGPoint.cpp
index aad0395..5d551f51 100644
--- a/third_party/WebKit/Source/core/svg/SVGPoint.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGPoint.cpp
@@ -47,7 +47,7 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<SVGPoint> SVGPoint::clone() const
+RawPtr<SVGPoint> SVGPoint::clone() const
 {
     return SVGPoint::create(m_value);
 }
@@ -103,19 +103,19 @@
     return builder.toString();
 }
 
-void SVGPoint::add(PassRefPtrWillBeRawPtr<SVGPropertyBase> other, SVGElement*)
+void SVGPoint::add(RawPtr<SVGPropertyBase> other, SVGElement*)
 {
     // SVGPoint is not animated by itself
     ASSERT_NOT_REACHED();
 }
 
-void SVGPoint::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, PassRefPtrWillBeRawPtr<SVGPropertyBase> fromValue, PassRefPtrWillBeRawPtr<SVGPropertyBase> toValue, PassRefPtrWillBeRawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement*)
+void SVGPoint::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> fromValue, RawPtr<SVGPropertyBase> toValue, RawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement*)
 {
     // SVGPoint is not animated by itself
     ASSERT_NOT_REACHED();
 }
 
-float SVGPoint::calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase> to, SVGElement* contextElement)
+float SVGPoint::calculateDistance(RawPtr<SVGPropertyBase> to, SVGElement* contextElement)
 {
     // SVGPoint is not animated by itself
     ASSERT_NOT_REACHED();
diff --git a/third_party/WebKit/Source/core/svg/SVGPoint.h b/third_party/WebKit/Source/core/svg/SVGPoint.h
index dcfea876..a4eba21 100644
--- a/third_party/WebKit/Source/core/svg/SVGPoint.h
+++ b/third_party/WebKit/Source/core/svg/SVGPoint.h
@@ -44,17 +44,17 @@
 public:
     typedef SVGPointTearOff TearOffType;
 
-    static PassRefPtrWillBeRawPtr<SVGPoint> create()
+    static RawPtr<SVGPoint> create()
     {
-        return adoptRefWillBeNoop(new SVGPoint());
+        return new SVGPoint();
     }
 
-    static PassRefPtrWillBeRawPtr<SVGPoint> create(const FloatPoint& point)
+    static RawPtr<SVGPoint> create(const FloatPoint& point)
     {
-        return adoptRefWillBeNoop(new SVGPoint(point));
+        return new SVGPoint(point);
     }
 
-    PassRefPtrWillBeRawPtr<SVGPoint> clone() const;
+    RawPtr<SVGPoint> clone() const;
 
     const FloatPoint& value() const { return m_value; }
     void setValue(const FloatPoint& value) { m_value = value; }
@@ -69,9 +69,9 @@
     String valueAsString() const override;
     SVGParsingError setValueAsString(const String&);
 
-    void add(PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*) override;
-    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, PassRefPtrWillBeRawPtr<SVGPropertyBase> from, PassRefPtrWillBeRawPtr<SVGPropertyBase> to, PassRefPtrWillBeRawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement* contextElement) override;
-    float calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase> to, SVGElement* contextElement) override;
+    void add(RawPtr<SVGPropertyBase>, SVGElement*) override;
+    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> from, RawPtr<SVGPropertyBase> to, RawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement* contextElement) override;
+    float calculateDistance(RawPtr<SVGPropertyBase> to, SVGElement* contextElement) override;
 
     static AnimatedPropertyType classType() { return AnimatedPoint; }
 
diff --git a/third_party/WebKit/Source/core/svg/SVGPointList.cpp b/third_party/WebKit/Source/core/svg/SVGPointList.cpp
index b58f3d21..e974c39 100644
--- a/third_party/WebKit/Source/core/svg/SVGPointList.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGPointList.cpp
@@ -102,9 +102,9 @@
     return parse(ptr, end);
 }
 
-void SVGPointList::add(PassRefPtrWillBeRawPtr<SVGPropertyBase> other, SVGElement* contextElement)
+void SVGPointList::add(RawPtr<SVGPropertyBase> other, SVGElement* contextElement)
 {
-    RefPtrWillBeRawPtr<SVGPointList> otherList = toSVGPointList(other);
+    RawPtr<SVGPointList> otherList = toSVGPointList(other);
 
     if (length() != otherList->length())
         return;
@@ -113,11 +113,11 @@
         at(i)->setValue(at(i)->value() + otherList->at(i)->value());
 }
 
-void SVGPointList::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, PassRefPtrWillBeRawPtr<SVGPropertyBase> fromValue, PassRefPtrWillBeRawPtr<SVGPropertyBase> toValue, PassRefPtrWillBeRawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement* contextElement)
+void SVGPointList::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> fromValue, RawPtr<SVGPropertyBase> toValue, RawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement* contextElement)
 {
-    RefPtrWillBeRawPtr<SVGPointList> fromList = toSVGPointList(fromValue);
-    RefPtrWillBeRawPtr<SVGPointList> toList = toSVGPointList(toValue);
-    RefPtrWillBeRawPtr<SVGPointList> toAtEndOfDurationList = toSVGPointList(toAtEndOfDurationValue);
+    RawPtr<SVGPointList> fromList = toSVGPointList(fromValue);
+    RawPtr<SVGPointList> toList = toSVGPointList(toValue);
+    RawPtr<SVGPointList> toAtEndOfDurationList = toSVGPointList(toAtEndOfDurationValue);
 
     size_t fromPointListSize = fromList->length();
     size_t toPointListSize = toList->length();
@@ -144,7 +144,7 @@
     }
 }
 
-float SVGPointList::calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase> to, SVGElement*)
+float SVGPointList::calculateDistance(RawPtr<SVGPropertyBase> to, SVGElement*)
 {
     // FIXME: Distance calculation is not possible for SVGPointList right now. We need the distance for every single value.
     return -1;
diff --git a/third_party/WebKit/Source/core/svg/SVGPointList.h b/third_party/WebKit/Source/core/svg/SVGPointList.h
index 60fb60b1..5af5e26 100644
--- a/third_party/WebKit/Source/core/svg/SVGPointList.h
+++ b/third_party/WebKit/Source/core/svg/SVGPointList.h
@@ -43,9 +43,9 @@
 public:
     typedef SVGPointListTearOff TearOffType;
 
-    static PassRefPtrWillBeRawPtr<SVGPointList> create()
+    static RawPtr<SVGPointList> create()
     {
-        return adoptRefWillBeNoop(new SVGPointList());
+        return new SVGPointList();
     }
 
     ~SVGPointList() override;
@@ -55,9 +55,9 @@
     // SVGPropertyBase:
     String valueAsString() const override;
 
-    void add(PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*) override;
-    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, PassRefPtrWillBeRawPtr<SVGPropertyBase> fromValue, PassRefPtrWillBeRawPtr<SVGPropertyBase> toValue, PassRefPtrWillBeRawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement*) override;
-    float calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase> to, SVGElement*) override;
+    void add(RawPtr<SVGPropertyBase>, SVGElement*) override;
+    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> fromValue, RawPtr<SVGPropertyBase> toValue, RawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement*) override;
+    float calculateDistance(RawPtr<SVGPropertyBase> to, SVGElement*) override;
 
     static AnimatedPropertyType classType() { return AnimatedPoints; }
 
diff --git a/third_party/WebKit/Source/core/svg/SVGPointListTearOff.h b/third_party/WebKit/Source/core/svg/SVGPointListTearOff.h
index b1cef04d..7d5b3f9 100644
--- a/third_party/WebKit/Source/core/svg/SVGPointListTearOff.h
+++ b/third_party/WebKit/Source/core/svg/SVGPointListTearOff.h
@@ -41,13 +41,13 @@
     , public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<SVGPointListTearOff> create(PassRefPtrWillBeRawPtr<SVGPointList> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
+    static RawPtr<SVGPointListTearOff> create(RawPtr<SVGPointList> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
     {
-        return adoptRefWillBeNoop(new SVGPointListTearOff(target, contextElement, propertyIsAnimVal, attributeName));
+        return new SVGPointListTearOff(target, contextElement, propertyIsAnimVal, attributeName);
     }
 
 private:
-    SVGPointListTearOff(PassRefPtrWillBeRawPtr<SVGPointList> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
+    SVGPointListTearOff(RawPtr<SVGPointList> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
         : SVGListPropertyTearOffHelper<SVGPointListTearOff, SVGPointList>(target, contextElement, propertyIsAnimVal, attributeName) { }
 };
 
diff --git a/third_party/WebKit/Source/core/svg/SVGPointTearOff.cpp b/third_party/WebKit/Source/core/svg/SVGPointTearOff.cpp
index f958e05..68a948c9 100644
--- a/third_party/WebKit/Source/core/svg/SVGPointTearOff.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGPointTearOff.cpp
@@ -37,7 +37,7 @@
 
 namespace blink {
 
-SVGPointTearOff::SVGPointTearOff(PassRefPtrWillBeRawPtr<SVGPoint> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName)
+SVGPointTearOff::SVGPointTearOff(RawPtr<SVGPoint> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName)
     : SVGPropertyTearOff<SVGPoint>(target, contextElement, propertyIsAnimVal, attributeName)
 {
 }
@@ -64,7 +64,7 @@
     commitChange();
 }
 
-PassRefPtrWillBeRawPtr<SVGPointTearOff> SVGPointTearOff::matrixTransform(PassRefPtrWillBeRawPtr<SVGMatrixTearOff> matrix)
+RawPtr<SVGPointTearOff> SVGPointTearOff::matrixTransform(RawPtr<SVGMatrixTearOff> matrix)
 {
     FloatPoint point = target()->matrixTransform(matrix->value());
     return SVGPointTearOff::create(SVGPoint::create(point), 0, PropertyIsNotAnimVal);
diff --git a/third_party/WebKit/Source/core/svg/SVGPointTearOff.h b/third_party/WebKit/Source/core/svg/SVGPointTearOff.h
index 674a459f..4e0044b 100644
--- a/third_party/WebKit/Source/core/svg/SVGPointTearOff.h
+++ b/third_party/WebKit/Source/core/svg/SVGPointTearOff.h
@@ -42,9 +42,9 @@
 class SVGPointTearOff : public SVGPropertyTearOff<SVGPoint>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<SVGPointTearOff> create(PassRefPtrWillBeRawPtr<SVGPoint> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
+    static RawPtr<SVGPointTearOff> create(RawPtr<SVGPoint> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
     {
-        return adoptRefWillBeNoop(new SVGPointTearOff(target, contextElement, propertyIsAnimVal, attributeName));
+        return new SVGPointTearOff(target, contextElement, propertyIsAnimVal, attributeName);
     }
 
     void setX(float, ExceptionState&);
@@ -52,10 +52,10 @@
     float x() { return target()->x(); }
     float y() { return target()->y(); }
 
-    PassRefPtrWillBeRawPtr<SVGPointTearOff> matrixTransform(PassRefPtrWillBeRawPtr<SVGMatrixTearOff>);
+    RawPtr<SVGPointTearOff> matrixTransform(RawPtr<SVGMatrixTearOff>);
 
 protected:
-    SVGPointTearOff(PassRefPtrWillBeRawPtr<SVGPoint>, SVGElement* contextElement, PropertyIsAnimValType, const QualifiedName& attributeName = QualifiedName::null());
+    SVGPointTearOff(RawPtr<SVGPoint>, SVGElement* contextElement, PropertyIsAnimValType, const QualifiedName& attributeName = QualifiedName::null());
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGPolyElement.cpp b/third_party/WebKit/Source/core/svg/SVGPolyElement.cpp
index f5916ed6..ab1217b 100644
--- a/third_party/WebKit/Source/core/svg/SVGPolyElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGPolyElement.cpp
@@ -43,7 +43,7 @@
 {
     Path path;
 
-    RefPtrWillBeRawPtr<SVGPointList> pointsValue = points()->currentValue();
+    RawPtr<SVGPointList> pointsValue = points()->currentValue();
     if (pointsValue->isEmpty())
         return path;
 
diff --git a/third_party/WebKit/Source/core/svg/SVGPolyElement.h b/third_party/WebKit/Source/core/svg/SVGPolyElement.h
index 7538fae..d42ab32 100644
--- a/third_party/WebKit/Source/core/svg/SVGPolyElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGPolyElement.h
@@ -33,8 +33,8 @@
 public:
     SVGAnimatedPointList* points() const { return m_points.get(); }
 
-    PassRefPtrWillBeRawPtr<SVGPointListTearOff> pointsFromJavascript() { return m_points->baseVal(); }
-    PassRefPtrWillBeRawPtr<SVGPointListTearOff> animatedPoints() { return m_points->animVal(); }
+    RawPtr<SVGPointListTearOff> pointsFromJavascript() { return m_points->baseVal(); }
+    RawPtr<SVGPointListTearOff> animatedPoints() { return m_points->animVal(); }
 
     DECLARE_VIRTUAL_TRACE();
 
@@ -47,7 +47,7 @@
     void svgAttributeChanged(const QualifiedName&) final;
 
 private:
-    RefPtrWillBeMember<SVGAnimatedPointList> m_points;
+    Member<SVGAnimatedPointList> m_points;
 
 };
 
diff --git a/third_party/WebKit/Source/core/svg/SVGPreserveAspectRatio.cpp b/third_party/WebKit/Source/core/svg/SVGPreserveAspectRatio.cpp
index 6f4f84f4..d6e561b 100644
--- a/third_party/WebKit/Source/core/svg/SVGPreserveAspectRatio.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGPreserveAspectRatio.cpp
@@ -41,9 +41,9 @@
     m_meetOrSlice = SVG_MEETORSLICE_MEET;
 }
 
-PassRefPtrWillBeRawPtr<SVGPreserveAspectRatio> SVGPreserveAspectRatio::clone() const
+RawPtr<SVGPreserveAspectRatio> SVGPreserveAspectRatio::clone() const
 {
-    RefPtrWillBeRawPtr<SVGPreserveAspectRatio> preserveAspectRatio = create();
+    RawPtr<SVGPreserveAspectRatio> preserveAspectRatio = create();
 
     preserveAspectRatio->m_align = m_align;
     preserveAspectRatio->m_meetOrSlice = m_meetOrSlice;
@@ -379,25 +379,25 @@
     return builder.toString();
 }
 
-void SVGPreserveAspectRatio::add(PassRefPtrWillBeRawPtr<SVGPropertyBase> other, SVGElement*)
+void SVGPreserveAspectRatio::add(RawPtr<SVGPropertyBase> other, SVGElement*)
 {
     ASSERT_NOT_REACHED();
 }
 
-void SVGPreserveAspectRatio::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, PassRefPtrWillBeRawPtr<SVGPropertyBase> fromValue, PassRefPtrWillBeRawPtr<SVGPropertyBase> toValue, PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*)
+void SVGPreserveAspectRatio::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> fromValue, RawPtr<SVGPropertyBase> toValue, RawPtr<SVGPropertyBase>, SVGElement*)
 {
     ASSERT(animationElement);
 
     bool useToValue;
     animationElement->animateDiscreteType(percentage, false, true, useToValue);
 
-    RefPtrWillBeRawPtr<SVGPreserveAspectRatio> preserveAspectRatioToUse = useToValue ? toSVGPreserveAspectRatio(toValue) : toSVGPreserveAspectRatio(fromValue);
+    RawPtr<SVGPreserveAspectRatio> preserveAspectRatioToUse = useToValue ? toSVGPreserveAspectRatio(toValue) : toSVGPreserveAspectRatio(fromValue);
 
     m_align = preserveAspectRatioToUse->m_align;
     m_meetOrSlice = preserveAspectRatioToUse->m_meetOrSlice;
 }
 
-float SVGPreserveAspectRatio::calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase> toValue, SVGElement* contextElement)
+float SVGPreserveAspectRatio::calculateDistance(RawPtr<SVGPropertyBase> toValue, SVGElement* contextElement)
 {
     // No paced animations for SVGPreserveAspectRatio.
     return -1;
diff --git a/third_party/WebKit/Source/core/svg/SVGPreserveAspectRatio.h b/third_party/WebKit/Source/core/svg/SVGPreserveAspectRatio.h
index ab4b61b..c2490ac 100644
--- a/third_party/WebKit/Source/core/svg/SVGPreserveAspectRatio.h
+++ b/third_party/WebKit/Source/core/svg/SVGPreserveAspectRatio.h
@@ -54,12 +54,12 @@
 
     typedef SVGPreserveAspectRatioTearOff TearOffType;
 
-    static PassRefPtrWillBeRawPtr<SVGPreserveAspectRatio> create()
+    static RawPtr<SVGPreserveAspectRatio> create()
     {
-        return adoptRefWillBeNoop(new SVGPreserveAspectRatio());
+        return new SVGPreserveAspectRatio();
     }
 
-    virtual PassRefPtrWillBeRawPtr<SVGPreserveAspectRatio> clone() const;
+    virtual RawPtr<SVGPreserveAspectRatio> clone() const;
 
     bool operator==(const SVGPreserveAspectRatio&) const;
     bool operator!=(const SVGPreserveAspectRatio& other) const { return !operator==(other); }
@@ -81,9 +81,9 @@
     bool parse(const UChar*& ptr, const UChar* end, bool validate);
     bool parse(const LChar*& ptr, const LChar* end, bool validate);
 
-    void add(PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*) override;
-    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, PassRefPtrWillBeRawPtr<SVGPropertyBase> from, PassRefPtrWillBeRawPtr<SVGPropertyBase> to, PassRefPtrWillBeRawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement* contextElement) override;
-    float calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase> to, SVGElement* contextElement) override;
+    void add(RawPtr<SVGPropertyBase>, SVGElement*) override;
+    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> from, RawPtr<SVGPropertyBase> to, RawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement* contextElement) override;
+    float calculateDistance(RawPtr<SVGPropertyBase> to, SVGElement* contextElement) override;
 
     static AnimatedPropertyType classType() { return AnimatedPreserveAspectRatio; }
 
diff --git a/third_party/WebKit/Source/core/svg/SVGPreserveAspectRatioTearOff.cpp b/third_party/WebKit/Source/core/svg/SVGPreserveAspectRatioTearOff.cpp
index de16fa60..99e45d7d 100644
--- a/third_party/WebKit/Source/core/svg/SVGPreserveAspectRatioTearOff.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGPreserveAspectRatioTearOff.cpp
@@ -64,7 +64,7 @@
     target()->setMeetOrSlice(static_cast<SVGPreserveAspectRatio::SVGMeetOrSliceType>(meetOrSlice));
 }
 
-SVGPreserveAspectRatioTearOff::SVGPreserveAspectRatioTearOff(PassRefPtrWillBeRawPtr<SVGPreserveAspectRatio> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName)
+SVGPreserveAspectRatioTearOff::SVGPreserveAspectRatioTearOff(RawPtr<SVGPreserveAspectRatio> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName)
     : SVGPropertyTearOff<SVGPreserveAspectRatio>(target, contextElement, propertyIsAnimVal, attributeName)
 {
 }
diff --git a/third_party/WebKit/Source/core/svg/SVGPreserveAspectRatioTearOff.h b/third_party/WebKit/Source/core/svg/SVGPreserveAspectRatioTearOff.h
index b7b78c9d..7500280 100644
--- a/third_party/WebKit/Source/core/svg/SVGPreserveAspectRatioTearOff.h
+++ b/third_party/WebKit/Source/core/svg/SVGPreserveAspectRatioTearOff.h
@@ -61,9 +61,9 @@
         SVG_MEETORSLICE_SLICE = SVGPreserveAspectRatio::SVG_MEETORSLICE_SLICE
     };
 
-    static PassRefPtrWillBeRawPtr<SVGPreserveAspectRatioTearOff> create(PassRefPtrWillBeRawPtr<SVGPreserveAspectRatio> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
+    static RawPtr<SVGPreserveAspectRatioTearOff> create(RawPtr<SVGPreserveAspectRatio> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
     {
-        return adoptRefWillBeNoop(new SVGPreserveAspectRatioTearOff(target, contextElement, propertyIsAnimVal, attributeName));
+        return new SVGPreserveAspectRatioTearOff(target, contextElement, propertyIsAnimVal, attributeName);
     }
 
     void setAlign(unsigned short, ExceptionState&);
@@ -72,7 +72,7 @@
     unsigned short meetOrSlice() { return target()->meetOrSlice(); }
 
 private:
-    SVGPreserveAspectRatioTearOff(PassRefPtrWillBeRawPtr<SVGPreserveAspectRatio>, SVGElement* contextElement, PropertyIsAnimValType, const QualifiedName& attributeName = QualifiedName::null());
+    SVGPreserveAspectRatioTearOff(RawPtr<SVGPreserveAspectRatio>, SVGElement* contextElement, PropertyIsAnimValType, const QualifiedName& attributeName = QualifiedName::null());
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGRadialGradientElement.cpp b/third_party/WebKit/Source/core/svg/SVGRadialGradientElement.cpp
index 39d82f2..cdce894 100644
--- a/third_party/WebKit/Source/core/svg/SVGRadialGradientElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGRadialGradientElement.cpp
@@ -138,7 +138,7 @@
     if (!layoutObject())
         return false;
 
-    WillBeHeapHashSet<RawPtrWillBeMember<SVGGradientElement>> processedGradients;
+    HeapHashSet<Member<SVGGradientElement>> processedGradients;
     SVGGradientElement* current = this;
 
     setGradientAttributes(current, attributes);
diff --git a/third_party/WebKit/Source/core/svg/SVGRadialGradientElement.h b/third_party/WebKit/Source/core/svg/SVGRadialGradientElement.h
index e9ce2c5..a804231 100644
--- a/third_party/WebKit/Source/core/svg/SVGRadialGradientElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGRadialGradientElement.h
@@ -55,12 +55,12 @@
 
     bool selfHasRelativeLengths() const override;
 
-    RefPtrWillBeMember<SVGAnimatedLength> m_cx;
-    RefPtrWillBeMember<SVGAnimatedLength> m_cy;
-    RefPtrWillBeMember<SVGAnimatedLength> m_r;
-    RefPtrWillBeMember<SVGAnimatedLength> m_fx;
-    RefPtrWillBeMember<SVGAnimatedLength> m_fy;
-    RefPtrWillBeMember<SVGAnimatedLength> m_fr;
+    Member<SVGAnimatedLength> m_cx;
+    Member<SVGAnimatedLength> m_cy;
+    Member<SVGAnimatedLength> m_r;
+    Member<SVGAnimatedLength> m_fx;
+    Member<SVGAnimatedLength> m_fy;
+    Member<SVGAnimatedLength> m_fr;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGRect.cpp b/third_party/WebKit/Source/core/svg/SVGRect.cpp
index 131aa14..b9f7e30d 100644
--- a/third_party/WebKit/Source/core/svg/SVGRect.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGRect.cpp
@@ -39,7 +39,7 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<SVGRect> SVGRect::clone() const
+RawPtr<SVGRect> SVGRect::clone() const
 {
     return SVGRect::create(m_value);
 }
@@ -104,17 +104,17 @@
     return builder.toString();
 }
 
-void SVGRect::add(PassRefPtrWillBeRawPtr<SVGPropertyBase> other, SVGElement*)
+void SVGRect::add(RawPtr<SVGPropertyBase> other, SVGElement*)
 {
     m_value += toSVGRect(other)->value();
 }
 
-void SVGRect::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, PassRefPtrWillBeRawPtr<SVGPropertyBase> fromValue, PassRefPtrWillBeRawPtr<SVGPropertyBase> toValue, PassRefPtrWillBeRawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement*)
+void SVGRect::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> fromValue, RawPtr<SVGPropertyBase> toValue, RawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement*)
 {
     ASSERT(animationElement);
-    RefPtrWillBeRawPtr<SVGRect> fromRect = animationElement->getAnimationMode() == ToAnimation ? PassRefPtrWillBeRawPtr<SVGRect>(this) : toSVGRect(fromValue);
-    RefPtrWillBeRawPtr<SVGRect> toRect = toSVGRect(toValue);
-    RefPtrWillBeRawPtr<SVGRect> toAtEndOfDurationRect = toSVGRect(toAtEndOfDurationValue);
+    RawPtr<SVGRect> fromRect = animationElement->getAnimationMode() == ToAnimation ? RawPtr<SVGRect>(this) : toSVGRect(fromValue);
+    RawPtr<SVGRect> toRect = toSVGRect(toValue);
+    RawPtr<SVGRect> toAtEndOfDurationRect = toSVGRect(toAtEndOfDurationValue);
 
     float animatedX = x();
     float animatedY = y();
@@ -128,7 +128,7 @@
     m_value = FloatRect(animatedX, animatedY, animatedWidth, animatedHeight);
 }
 
-float SVGRect::calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase> to, SVGElement* contextElement)
+float SVGRect::calculateDistance(RawPtr<SVGPropertyBase> to, SVGElement* contextElement)
 {
     // FIXME: Distance calculation is not possible for SVGRect right now. We need the distance for every single value.
     return -1;
diff --git a/third_party/WebKit/Source/core/svg/SVGRect.h b/third_party/WebKit/Source/core/svg/SVGRect.h
index 49eed08..3008d71 100644
--- a/third_party/WebKit/Source/core/svg/SVGRect.h
+++ b/third_party/WebKit/Source/core/svg/SVGRect.h
@@ -33,24 +33,24 @@
 public:
     typedef SVGRectTearOff TearOffType;
 
-    static PassRefPtrWillBeRawPtr<SVGRect> create()
+    static RawPtr<SVGRect> create()
     {
-        return adoptRefWillBeNoop(new SVGRect());
+        return new SVGRect();
     }
 
-    static PassRefPtrWillBeRawPtr<SVGRect> createInvalid()
+    static RawPtr<SVGRect> createInvalid()
     {
-        RefPtrWillBeRawPtr<SVGRect> rect = adoptRefWillBeNoop(new SVGRect());
+        RawPtr<SVGRect> rect = new SVGRect();
         rect->setInvalid();
         return rect.release();
     }
 
-    static PassRefPtrWillBeRawPtr<SVGRect> create(const FloatRect& rect)
+    static RawPtr<SVGRect> create(const FloatRect& rect)
     {
-        return adoptRefWillBeNoop(new SVGRect(rect));
+        return new SVGRect(rect);
     }
 
-    PassRefPtrWillBeRawPtr<SVGRect> clone() const;
+    RawPtr<SVGRect> clone() const;
 
     const FloatRect& value() const { return m_value; }
     void setValue(const FloatRect& v) { m_value = v; }
@@ -67,9 +67,9 @@
     String valueAsString() const override;
     SVGParsingError setValueAsString(const String&);
 
-    void add(PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*) override;
-    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, PassRefPtrWillBeRawPtr<SVGPropertyBase> from, PassRefPtrWillBeRawPtr<SVGPropertyBase> to, PassRefPtrWillBeRawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement* contextElement) override;
-    float calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase> to, SVGElement* contextElement) override;
+    void add(RawPtr<SVGPropertyBase>, SVGElement*) override;
+    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> from, RawPtr<SVGPropertyBase> to, RawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement* contextElement) override;
+    float calculateDistance(RawPtr<SVGPropertyBase> to, SVGElement* contextElement) override;
 
     bool isValid() const { return m_isValid; }
     void setInvalid();
diff --git a/third_party/WebKit/Source/core/svg/SVGRectElement.h b/third_party/WebKit/Source/core/svg/SVGRectElement.h
index 3963ebb..651cdc9d 100644
--- a/third_party/WebKit/Source/core/svg/SVGRectElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGRectElement.h
@@ -57,12 +57,12 @@
 
     LayoutObject* createLayoutObject(const ComputedStyle&) override;
 
-    RefPtrWillBeMember<SVGAnimatedLength> m_x;
-    RefPtrWillBeMember<SVGAnimatedLength> m_y;
-    RefPtrWillBeMember<SVGAnimatedLength> m_width;
-    RefPtrWillBeMember<SVGAnimatedLength> m_height;
-    RefPtrWillBeMember<SVGAnimatedLength> m_rx;
-    RefPtrWillBeMember<SVGAnimatedLength> m_ry;
+    Member<SVGAnimatedLength> m_x;
+    Member<SVGAnimatedLength> m_y;
+    Member<SVGAnimatedLength> m_width;
+    Member<SVGAnimatedLength> m_height;
+    Member<SVGAnimatedLength> m_rx;
+    Member<SVGAnimatedLength> m_ry;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGRectTearOff.cpp b/third_party/WebKit/Source/core/svg/SVGRectTearOff.cpp
index cb4f2224..3c05381 100644
--- a/third_party/WebKit/Source/core/svg/SVGRectTearOff.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGRectTearOff.cpp
@@ -36,7 +36,7 @@
 
 namespace blink {
 
-SVGRectTearOff::SVGRectTearOff(PassRefPtrWillBeRawPtr<SVGRect> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName)
+SVGRectTearOff::SVGRectTearOff(RawPtr<SVGRect> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName)
     : SVGPropertyTearOff<SVGRect>(target, contextElement, propertyIsAnimVal, attributeName)
 {
 }
diff --git a/third_party/WebKit/Source/core/svg/SVGRectTearOff.h b/third_party/WebKit/Source/core/svg/SVGRectTearOff.h
index 5d188f4..a99275ff 100644
--- a/third_party/WebKit/Source/core/svg/SVGRectTearOff.h
+++ b/third_party/WebKit/Source/core/svg/SVGRectTearOff.h
@@ -40,9 +40,9 @@
 class SVGRectTearOff : public SVGPropertyTearOff<SVGRect>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<SVGRectTearOff> create(PassRefPtrWillBeRawPtr<SVGRect> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
+    static RawPtr<SVGRectTearOff> create(RawPtr<SVGRect> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
     {
-        return adoptRefWillBeNoop(new SVGRectTearOff(target, contextElement, propertyIsAnimVal, attributeName));
+        return new SVGRectTearOff(target, contextElement, propertyIsAnimVal, attributeName);
     }
 
     void setX(float, ExceptionState&);
@@ -55,7 +55,7 @@
     float height() { return target()->height(); }
 
 private:
-    SVGRectTearOff(PassRefPtrWillBeRawPtr<SVGRect>, SVGElement* contextElement, PropertyIsAnimValType, const QualifiedName& attributeName = QualifiedName::null());
+    SVGRectTearOff(RawPtr<SVGRect>, SVGElement* contextElement, PropertyIsAnimValType, const QualifiedName& attributeName = QualifiedName::null());
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGResourceClient.cpp b/third_party/WebKit/Source/core/svg/SVGResourceClient.cpp
index 626c77b8f..8a6f020b 100644
--- a/third_party/WebKit/Source/core/svg/SVGResourceClient.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGResourceClient.cpp
@@ -17,7 +17,7 @@
 void SVGResourceClient::addFilterReferences(const FilterOperations& operations, const Document& document)
 {
     for (size_t i = 0; i < operations.size(); ++i) {
-        RefPtrWillBeRawPtr<FilterOperation> filterOperation = operations.operations().at(i);
+        RawPtr<FilterOperation> filterOperation = operations.operations().at(i);
         if (filterOperation->type() != FilterOperation::REFERENCE)
             continue;
         ReferenceFilterOperation* referenceFilterOperation = toReferenceFilterOperation(filterOperation.get());
@@ -51,7 +51,7 @@
     }
     m_internalFilterReferences.clear();
 
-    for (RefPtrWillBeRawPtr<DocumentResource> documentResource : m_externalFilterReferences)
+    for (RawPtr<DocumentResource> documentResource : m_externalFilterReferences)
         documentResource->removeClient(this);
     m_externalFilterReferences.clear();
 }
diff --git a/third_party/WebKit/Source/core/svg/SVGResourceClient.h b/third_party/WebKit/Source/core/svg/SVGResourceClient.h
index f1f6f70..e5f1ef33 100644
--- a/third_party/WebKit/Source/core/svg/SVGResourceClient.h
+++ b/third_party/WebKit/Source/core/svg/SVGResourceClient.h
@@ -30,8 +30,8 @@
     String debugName() const override { return "SVGResourceClient"; }
 
 private:
-    WillBePersistentHeapHashSet<RawPtrWillBeWeakMember<SVGFilterElement>> m_internalFilterReferences;
-    WillBePersistentHeapVector<RefPtrWillBeMember<DocumentResource>> m_externalFilterReferences;
+    PersistentHeapHashSet<WeakMember<SVGFilterElement>> m_internalFilterReferences;
+    PersistentHeapVector<Member<DocumentResource>> m_externalFilterReferences;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGSVGElement.cpp b/third_party/WebKit/Source/core/svg/SVGSVGElement.cpp
index 1e5c9bf..144d97b 100644
--- a/third_party/WebKit/Source/core/svg/SVGSVGElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGSVGElement.cpp
@@ -100,7 +100,7 @@
 #endif
 }
 
-PassRefPtrWillBeRawPtr<SVGRectTearOff> SVGSVGElement::viewport() const
+RawPtr<SVGRectTearOff> SVGSVGElement::viewport() const
 {
     // FIXME: This method doesn't follow the spec and is basically untested. Parent documents are not considered here.
     // As we have no test coverage for this, we're going to disable it completly for now.
@@ -134,9 +134,9 @@
 
 class SVGCurrentTranslateTearOff : public SVGPointTearOff {
 public:
-    static PassRefPtrWillBeRawPtr<SVGCurrentTranslateTearOff> create(SVGSVGElement* contextElement)
+    static RawPtr<SVGCurrentTranslateTearOff> create(SVGSVGElement* contextElement)
     {
-        return adoptRefWillBeNoop(new SVGCurrentTranslateTearOff(contextElement));
+        return new SVGCurrentTranslateTearOff(contextElement);
     }
 
     void commitChange() override
@@ -152,7 +152,7 @@
     }
 };
 
-PassRefPtrWillBeRawPtr<SVGPointTearOff> SVGSVGElement::currentTranslateFromJavascript()
+RawPtr<SVGPointTearOff> SVGSVGElement::currentTranslateFromJavascript()
 {
     return SVGCurrentTranslateTearOff::create(this);
 }
@@ -339,10 +339,10 @@
     return result;
 }
 
-PassRefPtrWillBeRawPtr<StaticNodeList> SVGSVGElement::collectIntersectionOrEnclosureList(const FloatRect& rect,
+RawPtr<StaticNodeList> SVGSVGElement::collectIntersectionOrEnclosureList(const FloatRect& rect,
     SVGElement* referenceElement, CheckIntersectionOrEnclosure mode) const
 {
-    WillBeHeapVector<RefPtrWillBeMember<Node>> nodes;
+    HeapVector<Member<Node>> nodes;
 
     const SVGElement* root = this;
     if (referenceElement) {
@@ -363,21 +363,21 @@
     return StaticNodeList::adopt(nodes);
 }
 
-PassRefPtrWillBeRawPtr<StaticNodeList> SVGSVGElement::getIntersectionList(PassRefPtrWillBeRawPtr<SVGRectTearOff> rect, SVGElement* referenceElement) const
+RawPtr<StaticNodeList> SVGSVGElement::getIntersectionList(RawPtr<SVGRectTearOff> rect, SVGElement* referenceElement) const
 {
     document().updateLayoutIgnorePendingStylesheets();
 
     return collectIntersectionOrEnclosureList(rect->target()->value(), referenceElement, CheckIntersection);
 }
 
-PassRefPtrWillBeRawPtr<StaticNodeList> SVGSVGElement::getEnclosureList(PassRefPtrWillBeRawPtr<SVGRectTearOff> rect, SVGElement* referenceElement) const
+RawPtr<StaticNodeList> SVGSVGElement::getEnclosureList(RawPtr<SVGRectTearOff> rect, SVGElement* referenceElement) const
 {
     document().updateLayoutIgnorePendingStylesheets();
 
     return collectIntersectionOrEnclosureList(rect->target()->value(), referenceElement, CheckEnclosure);
 }
 
-bool SVGSVGElement::checkIntersection(SVGElement* element, PassRefPtrWillBeRawPtr<SVGRectTearOff> rect) const
+bool SVGSVGElement::checkIntersection(SVGElement* element, RawPtr<SVGRectTearOff> rect) const
 {
     ASSERT(element);
     document().updateLayoutIgnorePendingStylesheets();
@@ -385,7 +385,7 @@
     return checkIntersectionOrEnclosure(*element, rect->target()->value(), CheckIntersection);
 }
 
-bool SVGSVGElement::checkEnclosure(SVGElement* element, PassRefPtrWillBeRawPtr<SVGRectTearOff> rect) const
+bool SVGSVGElement::checkEnclosure(SVGElement* element, RawPtr<SVGRectTearOff> rect) const
 {
     ASSERT(element);
     document().updateLayoutIgnorePendingStylesheets();
@@ -399,42 +399,42 @@
         frame->selection().clear();
 }
 
-PassRefPtrWillBeRawPtr<SVGNumberTearOff> SVGSVGElement::createSVGNumber()
+RawPtr<SVGNumberTearOff> SVGSVGElement::createSVGNumber()
 {
     return SVGNumberTearOff::create(SVGNumber::create(0.0f), 0, PropertyIsNotAnimVal);
 }
 
-PassRefPtrWillBeRawPtr<SVGLengthTearOff> SVGSVGElement::createSVGLength()
+RawPtr<SVGLengthTearOff> SVGSVGElement::createSVGLength()
 {
     return SVGLengthTearOff::create(SVGLength::create(), 0, PropertyIsNotAnimVal);
 }
 
-PassRefPtrWillBeRawPtr<SVGAngleTearOff> SVGSVGElement::createSVGAngle()
+RawPtr<SVGAngleTearOff> SVGSVGElement::createSVGAngle()
 {
     return SVGAngleTearOff::create(SVGAngle::create(), 0, PropertyIsNotAnimVal);
 }
 
-PassRefPtrWillBeRawPtr<SVGPointTearOff> SVGSVGElement::createSVGPoint()
+RawPtr<SVGPointTearOff> SVGSVGElement::createSVGPoint()
 {
     return SVGPointTearOff::create(SVGPoint::create(), 0, PropertyIsNotAnimVal);
 }
 
-PassRefPtrWillBeRawPtr<SVGMatrixTearOff> SVGSVGElement::createSVGMatrix()
+RawPtr<SVGMatrixTearOff> SVGSVGElement::createSVGMatrix()
 {
     return SVGMatrixTearOff::create(AffineTransform());
 }
 
-PassRefPtrWillBeRawPtr<SVGRectTearOff> SVGSVGElement::createSVGRect()
+RawPtr<SVGRectTearOff> SVGSVGElement::createSVGRect()
 {
     return SVGRectTearOff::create(SVGRect::create(), 0, PropertyIsNotAnimVal);
 }
 
-PassRefPtrWillBeRawPtr<SVGTransformTearOff> SVGSVGElement::createSVGTransform()
+RawPtr<SVGTransformTearOff> SVGSVGElement::createSVGTransform()
 {
     return SVGTransformTearOff::create(SVGTransform::create(SVG_TRANSFORM_MATRIX), 0, PropertyIsNotAnimVal);
 }
 
-PassRefPtrWillBeRawPtr<SVGTransformTearOff> SVGSVGElement::createSVGTransformFromMatrix(PassRefPtrWillBeRawPtr<SVGMatrixTearOff> matrix)
+RawPtr<SVGTransformTearOff> SVGSVGElement::createSVGTransformFromMatrix(RawPtr<SVGMatrixTearOff> matrix)
 {
     return SVGTransformTearOff::create(SVGTransform::create(matrix->value()), 0, PropertyIsNotAnimVal);
 }
@@ -644,7 +644,7 @@
         return SVGFitToViewBox::viewBoxToViewTransform(currentViewBoxRect(), preserveAspectRatio()->currentValue(), viewWidth, viewHeight);
 
     AffineTransform ctm = SVGFitToViewBox::viewBoxToViewTransform(currentViewBoxRect(), m_viewSpec->preserveAspectRatio()->currentValue(), viewWidth, viewHeight);
-    RefPtrWillBeRawPtr<SVGTransformList> transformList = m_viewSpec->transform();
+    RawPtr<SVGTransformList> transformList = m_viewSpec->transform();
     if (transformList->isEmpty())
         return ctm;
 
diff --git a/third_party/WebKit/Source/core/svg/SVGSVGElement.h b/third_party/WebKit/Source/core/svg/SVGSVGElement.h
index 6df4712..5be9d233 100644
--- a/third_party/WebKit/Source/core/svg/SVGSVGElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGSVGElement.h
@@ -45,7 +45,7 @@
                             public SVGFitToViewBox,
                             public SVGZoomAndPan {
     DEFINE_WRAPPERTYPEINFO();
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(SVGSVGElement);
+    USING_GARBAGE_COLLECTED_MIXIN(SVGSVGElement);
 public:
     DECLARE_NODE_FACTORY(SVGSVGElement);
 
@@ -55,7 +55,7 @@
 #endif
 
     // 'SVGSVGElement' functions
-    PassRefPtrWillBeRawPtr<SVGRectTearOff> viewport() const;
+    RawPtr<SVGRectTearOff> viewport() const;
 
     bool useCurrentView() const { return m_useCurrentView; }
     SVGViewSpec* currentView();
@@ -70,7 +70,7 @@
 
     FloatPoint currentTranslate() { return m_translation->value(); }
     void setCurrentTranslate(const FloatPoint&);
-    PassRefPtrWillBeRawPtr<SVGPointTearOff> currentTranslateFromJavascript();
+    RawPtr<SVGPointTearOff> currentTranslateFromJavascript();
 
     SMILTimeContainer* timeContainer() const { return m_timeContainer.get(); }
 
@@ -87,20 +87,20 @@
     void unsuspendRedrawAll() { }
     void forceRedraw() { }
 
-    PassRefPtrWillBeRawPtr<StaticNodeList> getIntersectionList(PassRefPtrWillBeRawPtr<SVGRectTearOff>, SVGElement* referenceElement) const;
-    PassRefPtrWillBeRawPtr<StaticNodeList> getEnclosureList(PassRefPtrWillBeRawPtr<SVGRectTearOff>, SVGElement* referenceElement) const;
-    bool checkIntersection(SVGElement*, PassRefPtrWillBeRawPtr<SVGRectTearOff>) const;
-    bool checkEnclosure(SVGElement*, PassRefPtrWillBeRawPtr<SVGRectTearOff>) const;
+    RawPtr<StaticNodeList> getIntersectionList(RawPtr<SVGRectTearOff>, SVGElement* referenceElement) const;
+    RawPtr<StaticNodeList> getEnclosureList(RawPtr<SVGRectTearOff>, SVGElement* referenceElement) const;
+    bool checkIntersection(SVGElement*, RawPtr<SVGRectTearOff>) const;
+    bool checkEnclosure(SVGElement*, RawPtr<SVGRectTearOff>) const;
     void deselectAll();
 
-    static PassRefPtrWillBeRawPtr<SVGNumberTearOff> createSVGNumber();
-    static PassRefPtrWillBeRawPtr<SVGLengthTearOff> createSVGLength();
-    static PassRefPtrWillBeRawPtr<SVGAngleTearOff> createSVGAngle();
-    static PassRefPtrWillBeRawPtr<SVGPointTearOff> createSVGPoint();
-    static PassRefPtrWillBeRawPtr<SVGMatrixTearOff> createSVGMatrix();
-    static PassRefPtrWillBeRawPtr<SVGRectTearOff> createSVGRect();
-    static PassRefPtrWillBeRawPtr<SVGTransformTearOff> createSVGTransform();
-    static PassRefPtrWillBeRawPtr<SVGTransformTearOff> createSVGTransformFromMatrix(PassRefPtrWillBeRawPtr<SVGMatrixTearOff>);
+    static RawPtr<SVGNumberTearOff> createSVGNumber();
+    static RawPtr<SVGLengthTearOff> createSVGLength();
+    static RawPtr<SVGAngleTearOff> createSVGAngle();
+    static RawPtr<SVGPointTearOff> createSVGPoint();
+    static RawPtr<SVGMatrixTearOff> createSVGMatrix();
+    static RawPtr<SVGRectTearOff> createSVGRect();
+    static RawPtr<SVGTransformTearOff> createSVGTransform();
+    static RawPtr<SVGTransformTearOff> createSVGTransformFromMatrix(RawPtr<SVGMatrixTearOff>);
 
     AffineTransform viewBoxToViewTransform(float viewWidth, float viewHeight) const;
 
@@ -148,19 +148,19 @@
     };
 
     bool checkIntersectionOrEnclosure(const SVGElement&, const FloatRect&, CheckIntersectionOrEnclosure) const;
-    PassRefPtrWillBeRawPtr<StaticNodeList> collectIntersectionOrEnclosureList(const FloatRect&, SVGElement*, CheckIntersectionOrEnclosure) const;
+    RawPtr<StaticNodeList> collectIntersectionOrEnclosureList(const FloatRect&, SVGElement*, CheckIntersectionOrEnclosure) const;
 
-    RefPtrWillBeMember<SVGAnimatedLength> m_x;
-    RefPtrWillBeMember<SVGAnimatedLength> m_y;
-    RefPtrWillBeMember<SVGAnimatedLength> m_width;
-    RefPtrWillBeMember<SVGAnimatedLength> m_height;
+    Member<SVGAnimatedLength> m_x;
+    Member<SVGAnimatedLength> m_y;
+    Member<SVGAnimatedLength> m_width;
+    Member<SVGAnimatedLength> m_height;
 
     AffineTransform localCoordinateSpaceTransform(SVGElement::CTMScope) const override;
 
     bool m_useCurrentView;
-    RefPtrWillBeMember<SMILTimeContainer> m_timeContainer;
-    RefPtrWillBeMember<SVGPoint> m_translation;
-    RefPtrWillBeMember<SVGViewSpec> m_viewSpec;
+    Member<SMILTimeContainer> m_timeContainer;
+    Member<SVGPoint> m_translation;
+    Member<SVGViewSpec> m_viewSpec;
     float m_currentScale;
 
     friend class SVGCurrentTranslateTearOff;
diff --git a/third_party/WebKit/Source/core/svg/SVGScriptElement.cpp b/third_party/WebKit/Source/core/svg/SVGScriptElement.cpp
index b749c82c..638e4178 100644
--- a/third_party/WebKit/Source/core/svg/SVGScriptElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGScriptElement.cpp
@@ -36,9 +36,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<SVGScriptElement> SVGScriptElement::create(Document& document, bool insertedByParser)
+RawPtr<SVGScriptElement> SVGScriptElement::create(Document& document, bool insertedByParser)
 {
-    return adoptRefWillBeNoop(new SVGScriptElement(document, insertedByParser, false));
+    return new SVGScriptElement(document, insertedByParser, false);
 }
 
 void SVGScriptElement::parseAttribute(const QualifiedName& name, const AtomicString& oldValue, const AtomicString& value)
@@ -147,9 +147,9 @@
     return href()->isSpecified();
 }
 
-PassRefPtrWillBeRawPtr<Element> SVGScriptElement::cloneElementWithoutAttributesAndChildren()
+RawPtr<Element> SVGScriptElement::cloneElementWithoutAttributesAndChildren()
 {
-    return adoptRefWillBeNoop(new SVGScriptElement(document(), false, m_loader->alreadyStarted()));
+    return new SVGScriptElement(document(), false, m_loader->alreadyStarted());
 }
 
 void SVGScriptElement::dispatchLoadEvent()
diff --git a/third_party/WebKit/Source/core/svg/SVGScriptElement.h b/third_party/WebKit/Source/core/svg/SVGScriptElement.h
index 7824efd..3f77ad7 100644
--- a/third_party/WebKit/Source/core/svg/SVGScriptElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGScriptElement.h
@@ -38,9 +38,9 @@
     , public SVGURIReference
     , public ScriptLoaderClient {
     DEFINE_WRAPPERTYPEINFO();
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(SVGScriptElement);
+    USING_GARBAGE_COLLECTED_MIXIN(SVGScriptElement);
 public:
-    static PassRefPtrWillBeRawPtr<SVGScriptElement> create(Document&, bool wasInsertedByParser);
+    static RawPtr<SVGScriptElement> create(Document&, bool wasInsertedByParser);
 
     ScriptLoader* loader() const { return m_loader.get(); }
 
@@ -78,10 +78,10 @@
 
     void dispatchLoadEvent() override;
 
-    PassRefPtrWillBeRawPtr<Element> cloneElementWithoutAttributesAndChildren() override;
+    RawPtr<Element> cloneElementWithoutAttributesAndChildren() override;
     bool layoutObjectIsNeeded(const ComputedStyle&) override { return false; }
 
-    OwnPtrWillBeMember<ScriptLoader> m_loader;
+    Member<ScriptLoader> m_loader;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGStaticStringList.cpp b/third_party/WebKit/Source/core/svg/SVGStaticStringList.cpp
index 8fd23a57..5c572e9f 100644
--- a/third_party/WebKit/Source/core/svg/SVGStaticStringList.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGStaticStringList.cpp
@@ -68,13 +68,13 @@
     return false;
 }
 
-PassRefPtrWillBeRawPtr<SVGPropertyBase> SVGStaticStringList::createAnimatedValue()
+RawPtr<SVGPropertyBase> SVGStaticStringList::createAnimatedValue()
 {
     ASSERT_NOT_REACHED();
     return nullptr;
 }
 
-void SVGStaticStringList::setAnimatedValue(PassRefPtrWillBeRawPtr<SVGPropertyBase>)
+void SVGStaticStringList::setAnimatedValue(RawPtr<SVGPropertyBase>)
 {
     ASSERT_NOT_REACHED();
 }
diff --git a/third_party/WebKit/Source/core/svg/SVGStaticStringList.h b/third_party/WebKit/Source/core/svg/SVGStaticStringList.h
index 6abf71d4..b6bcaac 100644
--- a/third_party/WebKit/Source/core/svg/SVGStaticStringList.h
+++ b/third_party/WebKit/Source/core/svg/SVGStaticStringList.h
@@ -43,9 +43,9 @@
 // Inherits SVGAnimatedPropertyBase to enable XML attribute synchronization, but this is never animated.
 class SVGStaticStringList final : public SVGAnimatedPropertyBase {
 public:
-    static PassRefPtrWillBeRawPtr<SVGStaticStringList> create(SVGElement* contextElement, const QualifiedName& attributeName)
+    static RawPtr<SVGStaticStringList> create(SVGElement* contextElement, const QualifiedName& attributeName)
     {
-        return adoptRefWillBeNoop(new SVGStaticStringList(contextElement, attributeName));
+        return new SVGStaticStringList(contextElement, attributeName);
     }
 
     ~SVGStaticStringList() override;
@@ -54,8 +54,8 @@
     SVGPropertyBase* currentValueBase() override;
     const SVGPropertyBase& baseValueBase() const override;
     bool isAnimating() const override;
-    PassRefPtrWillBeRawPtr<SVGPropertyBase> createAnimatedValue() override;
-    void setAnimatedValue(PassRefPtrWillBeRawPtr<SVGPropertyBase>) override;
+    RawPtr<SVGPropertyBase> createAnimatedValue() override;
+    void setAnimatedValue(RawPtr<SVGPropertyBase>) override;
     void animationEnded() override;
     bool needsSynchronizeAttribute() override;
 
@@ -69,8 +69,8 @@
 private:
     SVGStaticStringList(SVGElement*, const QualifiedName&);
 
-    RefPtrWillBeMember<SVGStringList> m_value;
-    RefPtrWillBeMember<SVGStringListTearOff> m_tearOff;
+    Member<SVGStringList> m_value;
+    Member<SVGStringListTearOff> m_tearOff;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGStopElement.h b/third_party/WebKit/Source/core/svg/SVGStopElement.h
index 0fcaee7a..43cab60 100644
--- a/third_party/WebKit/Source/core/svg/SVGStopElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGStopElement.h
@@ -47,7 +47,7 @@
     LayoutObject* createLayoutObject(const ComputedStyle&) override;
     bool layoutObjectIsNeeded(const ComputedStyle&) override;
 
-    RefPtrWillBeMember<SVGAnimatedNumber> m_offset;
+    Member<SVGAnimatedNumber> m_offset;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGString.cpp b/third_party/WebKit/Source/core/svg/SVGString.cpp
index ee89a05..f2b8329 100644
--- a/third_party/WebKit/Source/core/svg/SVGString.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGString.cpp
@@ -23,12 +23,12 @@
 
 namespace blink {
 
-void SVGString::add(PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*)
+void SVGString::add(RawPtr<SVGPropertyBase>, SVGElement*)
 {
     ASSERT_NOT_REACHED();
 }
 
-void SVGString::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, PassRefPtrWillBeRawPtr<SVGPropertyBase> from, PassRefPtrWillBeRawPtr<SVGPropertyBase> to, PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*)
+void SVGString::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> from, RawPtr<SVGPropertyBase> to, RawPtr<SVGPropertyBase>, SVGElement*)
 {
     ASSERT(animationElement);
 
@@ -38,7 +38,7 @@
     animationElement->animateDiscreteType<String>(percentage, fromString, toString, m_value);
 }
 
-float SVGString::calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*)
+float SVGString::calculateDistance(RawPtr<SVGPropertyBase>, SVGElement*)
 {
     // No paced animations for strings.
     return -1;
diff --git a/third_party/WebKit/Source/core/svg/SVGString.h b/third_party/WebKit/Source/core/svg/SVGString.h
index 0cd90e0e..ecd7d25 100644
--- a/third_party/WebKit/Source/core/svg/SVGString.h
+++ b/third_party/WebKit/Source/core/svg/SVGString.h
@@ -42,18 +42,18 @@
     typedef void TearOffType;
     typedef String PrimitiveType;
 
-    static PassRefPtrWillBeRawPtr<SVGString> create()
+    static RawPtr<SVGString> create()
     {
-        return adoptRefWillBeNoop(new SVGString());
+        return new SVGString();
     }
 
-    static PassRefPtrWillBeRawPtr<SVGString> create(const String& value)
+    static RawPtr<SVGString> create(const String& value)
     {
-        return adoptRefWillBeNoop(new SVGString(value));
+        return new SVGString(value);
     }
 
-    PassRefPtrWillBeRawPtr<SVGString> clone() const { return create(m_value); }
-    PassRefPtrWillBeRawPtr<SVGPropertyBase> cloneForAnimation(const String& value) const override
+    RawPtr<SVGString> clone() const { return create(m_value); }
+    RawPtr<SVGPropertyBase> cloneForAnimation(const String& value) const override
     {
         return create(value);
     }
@@ -65,9 +65,9 @@
         return SVGParseStatus::NoError;
     }
 
-    void add(PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*) override;
-    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, PassRefPtrWillBeRawPtr<SVGPropertyBase> from, PassRefPtrWillBeRawPtr<SVGPropertyBase> to, PassRefPtrWillBeRawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement*) override;
-    float calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase> to, SVGElement*) override;
+    void add(RawPtr<SVGPropertyBase>, SVGElement*) override;
+    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> from, RawPtr<SVGPropertyBase> to, RawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement*) override;
+    float calculateDistance(RawPtr<SVGPropertyBase> to, SVGElement*) override;
 
     const String& value() const { return m_value; }
     void setValue(const String& value) { m_value = value; }
diff --git a/third_party/WebKit/Source/core/svg/SVGStringList.cpp b/third_party/WebKit/Source/core/svg/SVGStringList.cpp
index 3de04d2..2ddcd53 100644
--- a/third_party/WebKit/Source/core/svg/SVGStringList.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGStringList.cpp
@@ -151,19 +151,19 @@
     return true;
 }
 
-void SVGStringList::add(PassRefPtrWillBeRawPtr<SVGPropertyBase> other, SVGElement* contextElement)
+void SVGStringList::add(RawPtr<SVGPropertyBase> other, SVGElement* contextElement)
 {
     // SVGStringList is never animated.
     ASSERT_NOT_REACHED();
 }
 
-void SVGStringList::calculateAnimatedValue(SVGAnimationElement*, float, unsigned, PassRefPtrWillBeRawPtr<SVGPropertyBase>, PassRefPtrWillBeRawPtr<SVGPropertyBase>, PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*)
+void SVGStringList::calculateAnimatedValue(SVGAnimationElement*, float, unsigned, RawPtr<SVGPropertyBase>, RawPtr<SVGPropertyBase>, RawPtr<SVGPropertyBase>, SVGElement*)
 {
     // SVGStringList is never animated.
     ASSERT_NOT_REACHED();
 }
 
-float SVGStringList::calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*)
+float SVGStringList::calculateDistance(RawPtr<SVGPropertyBase>, SVGElement*)
 {
     // SVGStringList is never animated.
     ASSERT_NOT_REACHED();
diff --git a/third_party/WebKit/Source/core/svg/SVGStringList.h b/third_party/WebKit/Source/core/svg/SVGStringList.h
index c11286b6..4aa2fd1 100644
--- a/third_party/WebKit/Source/core/svg/SVGStringList.h
+++ b/third_party/WebKit/Source/core/svg/SVGStringList.h
@@ -55,9 +55,9 @@
 public:
     typedef SVGStringListTearOff TearOffType;
 
-    static PassRefPtrWillBeRawPtr<SVGStringList> create()
+    static RawPtr<SVGStringList> create()
     {
-        return adoptRefWillBeNoop(new SVGStringList());
+        return new SVGStringList();
     }
 
     ~SVGStringList() override;
@@ -78,9 +78,9 @@
     SVGParsingError setValueAsString(const String&);
     String valueAsString() const override;
 
-    void add(PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*) override;
-    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, PassRefPtrWillBeRawPtr<SVGPropertyBase> fromValue, PassRefPtrWillBeRawPtr<SVGPropertyBase> toValue, PassRefPtrWillBeRawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement*) override;
-    float calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase> to, SVGElement*) override;
+    void add(RawPtr<SVGPropertyBase>, SVGElement*) override;
+    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> fromValue, RawPtr<SVGPropertyBase> toValue, RawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement*) override;
+    float calculateDistance(RawPtr<SVGPropertyBase> to, SVGElement*) override;
 
     static AnimatedPropertyType classType() { return AnimatedStringList; }
 
diff --git a/third_party/WebKit/Source/core/svg/SVGStringListTearOff.cpp b/third_party/WebKit/Source/core/svg/SVGStringListTearOff.cpp
index 80adbf22..c0252b1 100644
--- a/third_party/WebKit/Source/core/svg/SVGStringListTearOff.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGStringListTearOff.cpp
@@ -34,7 +34,7 @@
 
 namespace blink {
 
-SVGStringListTearOff::SVGStringListTearOff(PassRefPtrWillBeRawPtr<SVGStringList> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName)
+SVGStringListTearOff::SVGStringListTearOff(RawPtr<SVGStringList> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName)
     : SVGPropertyTearOff<SVGStringList>(target, contextElement, propertyIsAnimVal, attributeName)
 {
 }
diff --git a/third_party/WebKit/Source/core/svg/SVGStringListTearOff.h b/third_party/WebKit/Source/core/svg/SVGStringListTearOff.h
index 798e0de8..108ce9fd 100644
--- a/third_party/WebKit/Source/core/svg/SVGStringListTearOff.h
+++ b/third_party/WebKit/Source/core/svg/SVGStringListTearOff.h
@@ -40,9 +40,9 @@
 class SVGStringListTearOff : public SVGPropertyTearOff<SVGStringList>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<SVGStringListTearOff> create(PassRefPtrWillBeRawPtr<SVGStringList> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
+    static RawPtr<SVGStringListTearOff> create(RawPtr<SVGStringList> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
     {
-        return adoptRefWillBeNoop(new SVGStringListTearOff(target, contextElement, propertyIsAnimVal, attributeName));
+        return new SVGStringListTearOff(target, contextElement, propertyIsAnimVal, attributeName);
     }
 
     // SVGStringList DOM interface:
@@ -141,7 +141,7 @@
     }
 
 protected:
-    SVGStringListTearOff(PassRefPtrWillBeRawPtr<SVGStringList>, SVGElement*, PropertyIsAnimValType, const QualifiedName&);
+    SVGStringListTearOff(RawPtr<SVGStringList>, SVGElement*, PropertyIsAnimValType, const QualifiedName&);
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGStyleElement.cpp b/third_party/WebKit/Source/core/svg/SVGStyleElement.cpp
index ceb0dc87..24b7002 100644
--- a/third_party/WebKit/Source/core/svg/SVGStyleElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGStyleElement.cpp
@@ -31,7 +31,7 @@
 
 static SVGStyleEventSender& styleErrorEventSender()
 {
-    DEFINE_STATIC_LOCAL(OwnPtrWillBePersistent<SVGStyleEventSender>, sharedErrorEventSender, (SVGStyleEventSender::create(EventTypeNames::error)));
+    DEFINE_STATIC_LOCAL(Persistent<SVGStyleEventSender>, sharedErrorEventSender, (SVGStyleEventSender::create(EventTypeNames::error)));
     return *sharedErrorEventSender;
 }
 
@@ -50,9 +50,9 @@
 #endif
 }
 
-PassRefPtrWillBeRawPtr<SVGStyleElement> SVGStyleElement::create(Document& document, bool createdByParser)
+RawPtr<SVGStyleElement> SVGStyleElement::create(Document& document, bool createdByParser)
 {
-    return adoptRefWillBeNoop(new SVGStyleElement(document, createdByParser));
+    return new SVGStyleElement(document, createdByParser);
 }
 
 bool SVGStyleElement::disabled() const
diff --git a/third_party/WebKit/Source/core/svg/SVGStyleElement.h b/third_party/WebKit/Source/core/svg/SVGStyleElement.h
index f316e82..aa2b371 100644
--- a/third_party/WebKit/Source/core/svg/SVGStyleElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGStyleElement.h
@@ -34,9 +34,9 @@
 class SVGStyleElement final : public SVGElement
                             , public StyleElement {
     DEFINE_WRAPPERTYPEINFO();
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(SVGStyleElement);
+    USING_GARBAGE_COLLECTED_MIXIN(SVGStyleElement);
 public:
-    static PassRefPtrWillBeRawPtr<SVGStyleElement> create(Document&, bool createdByParser);
+    static RawPtr<SVGStyleElement> create(Document&, bool createdByParser);
     ~SVGStyleElement() override;
 
     using StyleElement::sheet;
diff --git a/third_party/WebKit/Source/core/svg/SVGSymbolElement.h b/third_party/WebKit/Source/core/svg/SVGSymbolElement.h
index 24e7cfcc..daa3cef7 100644
--- a/third_party/WebKit/Source/core/svg/SVGSymbolElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGSymbolElement.h
@@ -30,7 +30,7 @@
 class SVGSymbolElement final : public SVGElement,
                                public SVGFitToViewBox {
     DEFINE_WRAPPERTYPEINFO();
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(SVGSymbolElement);
+    USING_GARBAGE_COLLECTED_MIXIN(SVGSymbolElement);
 public:
     DECLARE_NODE_FACTORY(SVGSymbolElement);
 
diff --git a/third_party/WebKit/Source/core/svg/SVGTests.h b/third_party/WebKit/Source/core/svg/SVGTests.h
index 097c1607..d1cbfeb 100644
--- a/third_party/WebKit/Source/core/svg/SVGTests.h
+++ b/third_party/WebKit/Source/core/svg/SVGTests.h
@@ -31,7 +31,7 @@
 class QualifiedName;
 class SVGElement;
 
-class CORE_EXPORT SVGTests : public WillBeGarbageCollectedMixin {
+class CORE_EXPORT SVGTests : public GarbageCollectedMixin {
 public:
     // JS API
     SVGStringListTearOff* requiredFeatures() { return m_requiredFeatures->tearOff(); }
@@ -48,9 +48,9 @@
     explicit SVGTests(SVGElement* contextElement);
 
 private:
-    RefPtrWillBeMember<SVGStaticStringList> m_requiredFeatures;
-    RefPtrWillBeMember<SVGStaticStringList> m_requiredExtensions;
-    RefPtrWillBeMember<SVGStaticStringList> m_systemLanguage;
+    Member<SVGStaticStringList> m_requiredFeatures;
+    Member<SVGStaticStringList> m_requiredExtensions;
+    Member<SVGStaticStringList> m_systemLanguage;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGTextContentElement.cpp b/third_party/WebKit/Source/core/svg/SVGTextContentElement.cpp
index fe4a761..c5610a3 100644
--- a/third_party/WebKit/Source/core/svg/SVGTextContentElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGTextContentElement.cpp
@@ -50,9 +50,9 @@
 // It should return getComputedTextLength() when textLength is not specified manually.
 class SVGAnimatedTextLength final : public SVGAnimatedLength {
 public:
-    static PassRefPtrWillBeRawPtr<SVGAnimatedTextLength> create(SVGTextContentElement* contextElement)
+    static RawPtr<SVGAnimatedTextLength> create(SVGTextContentElement* contextElement)
     {
-        return adoptRefWillBeNoop(new SVGAnimatedTextLength(contextElement));
+        return new SVGAnimatedTextLength(contextElement);
     }
 
     SVGLengthTearOff* baseVal() override
@@ -117,7 +117,7 @@
     return SVGTextQuery(layoutObject()).subStringLength(charnum, nchars);
 }
 
-PassRefPtrWillBeRawPtr<SVGPointTearOff> SVGTextContentElement::getStartPositionOfChar(unsigned charnum, ExceptionState& exceptionState)
+RawPtr<SVGPointTearOff> SVGTextContentElement::getStartPositionOfChar(unsigned charnum, ExceptionState& exceptionState)
 {
     document().updateLayoutIgnorePendingStylesheets();
 
@@ -130,7 +130,7 @@
     return SVGPointTearOff::create(SVGPoint::create(point), 0, PropertyIsNotAnimVal);
 }
 
-PassRefPtrWillBeRawPtr<SVGPointTearOff> SVGTextContentElement::getEndPositionOfChar(unsigned charnum, ExceptionState& exceptionState)
+RawPtr<SVGPointTearOff> SVGTextContentElement::getEndPositionOfChar(unsigned charnum, ExceptionState& exceptionState)
 {
     document().updateLayoutIgnorePendingStylesheets();
 
@@ -143,7 +143,7 @@
     return SVGPointTearOff::create(SVGPoint::create(point), 0, PropertyIsNotAnimVal);
 }
 
-PassRefPtrWillBeRawPtr<SVGRectTearOff> SVGTextContentElement::getExtentOfChar(unsigned charnum, ExceptionState& exceptionState)
+RawPtr<SVGRectTearOff> SVGTextContentElement::getExtentOfChar(unsigned charnum, ExceptionState& exceptionState)
 {
     document().updateLayoutIgnorePendingStylesheets();
 
@@ -168,7 +168,7 @@
     return SVGTextQuery(layoutObject()).rotationOfCharacter(charnum);
 }
 
-int SVGTextContentElement::getCharNumAtPosition(PassRefPtrWillBeRawPtr<SVGPointTearOff> point, ExceptionState& exceptionState)
+int SVGTextContentElement::getCharNumAtPosition(RawPtr<SVGPointTearOff> point, ExceptionState& exceptionState)
 {
     document().updateLayoutIgnorePendingStylesheets();
     return SVGTextQuery(layoutObject()).characterNumberAtPosition(point->target()->value());
diff --git a/third_party/WebKit/Source/core/svg/SVGTextContentElement.h b/third_party/WebKit/Source/core/svg/SVGTextContentElement.h
index b7c71bc..06459c2 100644
--- a/third_party/WebKit/Source/core/svg/SVGTextContentElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGTextContentElement.h
@@ -53,11 +53,11 @@
     unsigned getNumberOfChars();
     float getComputedTextLength();
     float getSubStringLength(unsigned charnum, unsigned nchars, ExceptionState&);
-    PassRefPtrWillBeRawPtr<SVGPointTearOff> getStartPositionOfChar(unsigned charnum, ExceptionState&);
-    PassRefPtrWillBeRawPtr<SVGPointTearOff> getEndPositionOfChar(unsigned charnum, ExceptionState&);
-    PassRefPtrWillBeRawPtr<SVGRectTearOff> getExtentOfChar(unsigned charnum, ExceptionState&);
+    RawPtr<SVGPointTearOff> getStartPositionOfChar(unsigned charnum, ExceptionState&);
+    RawPtr<SVGPointTearOff> getEndPositionOfChar(unsigned charnum, ExceptionState&);
+    RawPtr<SVGRectTearOff> getExtentOfChar(unsigned charnum, ExceptionState&);
     float getRotationOfChar(unsigned charnum, ExceptionState&);
-    int getCharNumAtPosition(PassRefPtrWillBeRawPtr<SVGPointTearOff>, ExceptionState&);
+    int getCharNumAtPosition(RawPtr<SVGPointTearOff>, ExceptionState&);
     void selectSubString(unsigned charnum, unsigned nchars, ExceptionState&);
 
     static SVGTextContentElement* elementFromLineLayoutItem(const LineLayoutItem);
@@ -80,9 +80,9 @@
 private:
     bool isTextContent() const final { return true; }
 
-    RefPtrWillBeMember<SVGAnimatedLength> m_textLength;
+    Member<SVGAnimatedLength> m_textLength;
     bool m_textLengthIsSpecifiedByUser;
-    RefPtrWillBeMember<SVGAnimatedEnumeration<SVGLengthAdjustType>> m_lengthAdjust;
+    Member<SVGAnimatedEnumeration<SVGLengthAdjustType>> m_lengthAdjust;
 };
 
 inline bool isSVGTextContentElement(const SVGElement& element)
diff --git a/third_party/WebKit/Source/core/svg/SVGTextPathElement.h b/third_party/WebKit/Source/core/svg/SVGTextPathElement.h
index 5b88a78..09dfbf3 100644
--- a/third_party/WebKit/Source/core/svg/SVGTextPathElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGTextPathElement.h
@@ -45,7 +45,7 @@
 class SVGTextPathElement final : public SVGTextContentElement,
                                  public SVGURIReference {
     DEFINE_WRAPPERTYPEINFO();
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(SVGTextPathElement);
+    USING_GARBAGE_COLLECTED_MIXIN(SVGTextPathElement);
 public:
     // Forward declare enumerations in the W3C naming scheme, for IDL generation.
     enum {
@@ -83,9 +83,9 @@
 
     bool selfHasRelativeLengths() const override;
 
-    RefPtrWillBeMember<SVGAnimatedLength> m_startOffset;
-    RefPtrWillBeMember<SVGAnimatedEnumeration<SVGTextPathMethodType>> m_method;
-    RefPtrWillBeMember<SVGAnimatedEnumeration<SVGTextPathSpacingType>> m_spacing;
+    Member<SVGAnimatedLength> m_startOffset;
+    Member<SVGAnimatedEnumeration<SVGTextPathMethodType>> m_method;
+    Member<SVGAnimatedEnumeration<SVGTextPathSpacingType>> m_spacing;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGTextPositioningElement.h b/third_party/WebKit/Source/core/svg/SVGTextPositioningElement.h
index a8a5ca1d..d2359b4 100644
--- a/third_party/WebKit/Source/core/svg/SVGTextPositioningElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGTextPositioningElement.h
@@ -46,11 +46,11 @@
     void svgAttributeChanged(const QualifiedName&) final;
     bool isTextPositioning() const final { return true; }
 
-    RefPtrWillBeMember<SVGAnimatedLengthList> m_x;
-    RefPtrWillBeMember<SVGAnimatedLengthList> m_y;
-    RefPtrWillBeMember<SVGAnimatedLengthList> m_dx;
-    RefPtrWillBeMember<SVGAnimatedLengthList> m_dy;
-    RefPtrWillBeMember<SVGAnimatedNumberList> m_rotate;
+    Member<SVGAnimatedLengthList> m_x;
+    Member<SVGAnimatedLengthList> m_y;
+    Member<SVGAnimatedLengthList> m_dx;
+    Member<SVGAnimatedLengthList> m_dy;
+    Member<SVGAnimatedNumberList> m_rotate;
 };
 
 inline bool isSVGTextPositioningElement(const SVGElement& element)
diff --git a/third_party/WebKit/Source/core/svg/SVGTitleElement.cpp b/third_party/WebKit/Source/core/svg/SVGTitleElement.cpp
index ebe19d2..fb14fed5 100644
--- a/third_party/WebKit/Source/core/svg/SVGTitleElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGTitleElement.cpp
@@ -61,7 +61,7 @@
 
 void SVGTitleElement::setText(const String& value)
 {
-    RefPtrWillBeRawPtr<Node> protectFromMutationEvents(this);
+    RawPtr<Node> protectFromMutationEvents(this);
     ChildListMutationScope mutation(*this);
 
     {
diff --git a/third_party/WebKit/Source/core/svg/SVGTransform.cpp b/third_party/WebKit/Source/core/svg/SVGTransform.cpp
index 7e526f7..c978e3f 100644
--- a/third_party/WebKit/Source/core/svg/SVGTransform.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGTransform.cpp
@@ -64,12 +64,12 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<SVGTransform> SVGTransform::clone() const
+RawPtr<SVGTransform> SVGTransform::clone() const
 {
-    return adoptRefWillBeNoop(new SVGTransform(m_transformType, m_angle, m_center, m_matrix));
+    return new SVGTransform(m_transformType, m_angle, m_center, m_matrix);
 }
 
-PassRefPtrWillBeRawPtr<SVGPropertyBase> SVGTransform::cloneForAnimation(const String&) const
+RawPtr<SVGPropertyBase> SVGTransform::cloneForAnimation(const String&) const
 {
     // SVGTransform is never animated.
     ASSERT_NOT_REACHED();
@@ -235,19 +235,19 @@
     return builder.toString();
 }
 
-void SVGTransform::add(PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*)
+void SVGTransform::add(RawPtr<SVGPropertyBase>, SVGElement*)
 {
     // SVGTransform is not animated by itself.
     ASSERT_NOT_REACHED();
 }
 
-void SVGTransform::calculateAnimatedValue(SVGAnimationElement*, float, unsigned, PassRefPtrWillBeRawPtr<SVGPropertyBase>, PassRefPtrWillBeRawPtr<SVGPropertyBase>, PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*)
+void SVGTransform::calculateAnimatedValue(SVGAnimationElement*, float, unsigned, RawPtr<SVGPropertyBase>, RawPtr<SVGPropertyBase>, RawPtr<SVGPropertyBase>, SVGElement*)
 {
     // SVGTransform is not animated by itself.
     ASSERT_NOT_REACHED();
 }
 
-float SVGTransform::calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*)
+float SVGTransform::calculateDistance(RawPtr<SVGPropertyBase>, SVGElement*)
 {
     // SVGTransform is not animated by itself.
     ASSERT_NOT_REACHED();
diff --git a/third_party/WebKit/Source/core/svg/SVGTransform.h b/third_party/WebKit/Source/core/svg/SVGTransform.h
index ecdc20f..55d3d27 100644
--- a/third_party/WebKit/Source/core/svg/SVGTransform.h
+++ b/third_party/WebKit/Source/core/svg/SVGTransform.h
@@ -50,25 +50,25 @@
         ConstructZeroTransform
     };
 
-    static PassRefPtrWillBeRawPtr<SVGTransform> create()
+    static RawPtr<SVGTransform> create()
     {
-        return adoptRefWillBeNoop(new SVGTransform());
+        return new SVGTransform();
     }
 
-    static PassRefPtrWillBeRawPtr<SVGTransform> create(SVGTransformType type, ConstructionMode mode = ConstructIdentityTransform)
+    static RawPtr<SVGTransform> create(SVGTransformType type, ConstructionMode mode = ConstructIdentityTransform)
     {
-        return adoptRefWillBeNoop(new SVGTransform(type, mode));
+        return new SVGTransform(type, mode);
     }
 
-    static PassRefPtrWillBeRawPtr<SVGTransform> create(const AffineTransform& affineTransform)
+    static RawPtr<SVGTransform> create(const AffineTransform& affineTransform)
     {
-        return adoptRefWillBeNoop(new SVGTransform(affineTransform));
+        return new SVGTransform(affineTransform);
     }
 
     ~SVGTransform() override;
 
-    PassRefPtrWillBeRawPtr<SVGTransform> clone() const;
-    PassRefPtrWillBeRawPtr<SVGPropertyBase> cloneForAnimation(const String&) const override;
+    RawPtr<SVGTransform> clone() const;
+    RawPtr<SVGPropertyBase> cloneForAnimation(const String&) const override;
 
     SVGTransformType transformType() const { return m_transformType; }
 
@@ -94,9 +94,9 @@
 
     String valueAsString() const override;
 
-    void add(PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*) override;
-    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, PassRefPtrWillBeRawPtr<SVGPropertyBase> from, PassRefPtrWillBeRawPtr<SVGPropertyBase> to, PassRefPtrWillBeRawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement* contextElement) override;
-    float calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase> to, SVGElement* contextElement) override;
+    void add(RawPtr<SVGPropertyBase>, SVGElement*) override;
+    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> from, RawPtr<SVGPropertyBase> to, RawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement* contextElement) override;
+    float calculateDistance(RawPtr<SVGPropertyBase> to, SVGElement* contextElement) override;
 
     static AnimatedPropertyType classType() { return AnimatedTransform; }
 
diff --git a/third_party/WebKit/Source/core/svg/SVGTransformDistance.cpp b/third_party/WebKit/Source/core/svg/SVGTransformDistance.cpp
index 40bc24c..badf348e 100644
--- a/third_party/WebKit/Source/core/svg/SVGTransformDistance.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGTransformDistance.cpp
@@ -42,13 +42,13 @@
 {
 }
 
-SVGTransformDistance::SVGTransformDistance(PassRefPtrWillBeRawPtr<SVGTransform> passFromSVGTransform, PassRefPtrWillBeRawPtr<SVGTransform> passToSVGTransform)
+SVGTransformDistance::SVGTransformDistance(RawPtr<SVGTransform> passFromSVGTransform, RawPtr<SVGTransform> passToSVGTransform)
     : m_angle(0)
     , m_cx(0)
     , m_cy(0)
 {
-    RefPtrWillBeRawPtr<SVGTransform> fromSVGTransform = passFromSVGTransform;
-    RefPtrWillBeRawPtr<SVGTransform> toSVGTransform = passToSVGTransform;
+    RawPtr<SVGTransform> fromSVGTransform = passFromSVGTransform;
+    RawPtr<SVGTransform> toSVGTransform = passToSVGTransform;
 
     m_transformType = fromSVGTransform->transformType();
     ASSERT(m_transformType == toSVGTransform->transformType());
@@ -109,13 +109,13 @@
     return SVGTransformDistance();
 }
 
-PassRefPtrWillBeRawPtr<SVGTransform> SVGTransformDistance::addSVGTransforms(PassRefPtrWillBeRawPtr<SVGTransform> passFirst, PassRefPtrWillBeRawPtr<SVGTransform> passSecond, unsigned repeatCount)
+RawPtr<SVGTransform> SVGTransformDistance::addSVGTransforms(RawPtr<SVGTransform> passFirst, RawPtr<SVGTransform> passSecond, unsigned repeatCount)
 {
-    RefPtrWillBeRawPtr<SVGTransform> first = passFirst;
-    RefPtrWillBeRawPtr<SVGTransform> second = passSecond;
+    RawPtr<SVGTransform> first = passFirst;
+    RawPtr<SVGTransform> second = passSecond;
     ASSERT(first->transformType() == second->transformType());
 
-    RefPtrWillBeRawPtr<SVGTransform> transform = SVGTransform::create();
+    RawPtr<SVGTransform> transform = SVGTransform::create();
 
     switch (first->transformType()) {
     case SVG_TRANSFORM_MATRIX:
@@ -150,12 +150,12 @@
     return transform.release();
 }
 
-PassRefPtrWillBeRawPtr<SVGTransform> SVGTransformDistance::addToSVGTransform(PassRefPtrWillBeRawPtr<SVGTransform> passTransform) const
+RawPtr<SVGTransform> SVGTransformDistance::addToSVGTransform(RawPtr<SVGTransform> passTransform) const
 {
-    RefPtrWillBeRawPtr<SVGTransform> transform = passTransform;
+    RawPtr<SVGTransform> transform = passTransform;
     ASSERT(m_transformType == transform->transformType() || m_transformType == SVG_TRANSFORM_UNKNOWN);
 
-    RefPtrWillBeRawPtr<SVGTransform> newTransform = transform->clone();
+    RawPtr<SVGTransform> newTransform = transform->clone();
 
     switch (m_transformType) {
     case SVG_TRANSFORM_MATRIX:
diff --git a/third_party/WebKit/Source/core/svg/SVGTransformDistance.h b/third_party/WebKit/Source/core/svg/SVGTransformDistance.h
index 32e8a06..4ceccfc2 100644
--- a/third_party/WebKit/Source/core/svg/SVGTransformDistance.h
+++ b/third_party/WebKit/Source/core/svg/SVGTransformDistance.h
@@ -31,12 +31,12 @@
     STACK_ALLOCATED();
 public:
     SVGTransformDistance();
-    SVGTransformDistance(PassRefPtrWillBeRawPtr<SVGTransform> fromTransform, PassRefPtrWillBeRawPtr<SVGTransform> toTransform);
+    SVGTransformDistance(RawPtr<SVGTransform> fromTransform, RawPtr<SVGTransform> toTransform);
 
     SVGTransformDistance scaledDistance(float scaleFactor) const;
-    PassRefPtrWillBeRawPtr<SVGTransform> addToSVGTransform(PassRefPtrWillBeRawPtr<SVGTransform>) const;
+    RawPtr<SVGTransform> addToSVGTransform(RawPtr<SVGTransform>) const;
 
-    static PassRefPtrWillBeRawPtr<SVGTransform> addSVGTransforms(PassRefPtrWillBeRawPtr<SVGTransform>, PassRefPtrWillBeRawPtr<SVGTransform>, unsigned repeatCount = 1);
+    static RawPtr<SVGTransform> addSVGTransforms(RawPtr<SVGTransform>, RawPtr<SVGTransform>, unsigned repeatCount = 1);
 
     float distance() const;
 
diff --git a/third_party/WebKit/Source/core/svg/SVGTransformList.cpp b/third_party/WebKit/Source/core/svg/SVGTransformList.cpp
index 880a713..9a4a2a3e 100644
--- a/third_party/WebKit/Source/core/svg/SVGTransformList.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGTransformList.cpp
@@ -40,7 +40,7 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<SVGTransform> SVGTransformList::consolidate()
+RawPtr<SVGTransform> SVGTransformList::consolidate()
 {
     AffineTransform matrix;
     if (!concatenate(matrix))
@@ -153,9 +153,9 @@
     return SVGParseStatus::NoError;
 }
 
-PassRefPtrWillBeRawPtr<SVGTransform> createTransformFromValues(SVGTransformType type, const TransformArguments& arguments)
+RawPtr<SVGTransform> createTransformFromValues(SVGTransformType type, const TransformArguments& arguments)
 {
-    RefPtrWillBeRawPtr<SVGTransform> transform = SVGTransform::create();
+    RawPtr<SVGTransform> transform = SVGTransform::create();
     switch (type) {
     case SVG_TRANSFORM_SKEWX:
         transform->setSkewX(arguments[0]);
@@ -299,13 +299,13 @@
     return parseError;
 }
 
-PassRefPtrWillBeRawPtr<SVGPropertyBase> SVGTransformList::cloneForAnimation(const String& value) const
+RawPtr<SVGPropertyBase> SVGTransformList::cloneForAnimation(const String& value) const
 {
     ASSERT(RuntimeEnabledFeatures::webAnimationsSVGEnabled());
     return SVGListPropertyHelper::cloneForAnimation(value);
 }
 
-PassRefPtrWillBeRawPtr<SVGTransformList> SVGTransformList::create(SVGTransformType transformType, const String& value)
+RawPtr<SVGTransformList> SVGTransformList::create(SVGTransformType transformType, const String& value)
 {
     TransformArguments arguments;
     bool atEndOfValue = false;
@@ -323,30 +323,30 @@
         atEndOfValue = !skipOptionalSVGSpaces(ptr, end);
     }
 
-    RefPtrWillBeRawPtr<SVGTransformList> svgTransformList = SVGTransformList::create();
+    RawPtr<SVGTransformList> svgTransformList = SVGTransformList::create();
     if (atEndOfValue && status == SVGParseStatus::NoError)
         svgTransformList->append(createTransformFromValues(transformType, arguments));
     return svgTransformList.release();
 }
 
-void SVGTransformList::add(PassRefPtrWillBeRawPtr<SVGPropertyBase> other, SVGElement* contextElement)
+void SVGTransformList::add(RawPtr<SVGPropertyBase> other, SVGElement* contextElement)
 {
     if (isEmpty())
         return;
 
-    RefPtrWillBeRawPtr<SVGTransformList> otherList = toSVGTransformList(other);
+    RawPtr<SVGTransformList> otherList = toSVGTransformList(other);
     if (length() != otherList->length())
         return;
 
     ASSERT(length() == 1);
-    RefPtrWillBeRawPtr<SVGTransform> fromTransform = at(0);
-    RefPtrWillBeRawPtr<SVGTransform> toTransform = otherList->at(0);
+    RawPtr<SVGTransform> fromTransform = at(0);
+    RawPtr<SVGTransform> toTransform = otherList->at(0);
 
     ASSERT(fromTransform->transformType() == toTransform->transformType());
     initialize(SVGTransformDistance::addSVGTransforms(fromTransform, toTransform));
 }
 
-void SVGTransformList::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, PassRefPtrWillBeRawPtr<SVGPropertyBase> fromValue, PassRefPtrWillBeRawPtr<SVGPropertyBase> toValue, PassRefPtrWillBeRawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement* contextElement)
+void SVGTransformList::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> fromValue, RawPtr<SVGPropertyBase> toValue, RawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement* contextElement)
 {
     ASSERT(animationElement);
     bool isToAnimation = animationElement->getAnimationMode() == ToAnimation;
@@ -355,17 +355,17 @@
     // 'to' attribute value, which conflicts mathematically with the requirement for additive transform animations
     // to be post-multiplied. As a consequence, in SVG 1.1 the behavior of to animations for 'animateTransform' is undefined
     // FIXME: This is not taken into account yet.
-    RefPtrWillBeRawPtr<SVGTransformList> fromList = isToAnimation ? PassRefPtrWillBeRawPtr<SVGTransformList>(this) : toSVGTransformList(fromValue);
-    RefPtrWillBeRawPtr<SVGTransformList> toList = toSVGTransformList(toValue);
-    RefPtrWillBeRawPtr<SVGTransformList> toAtEndOfDurationList = toSVGTransformList(toAtEndOfDurationValue);
+    RawPtr<SVGTransformList> fromList = isToAnimation ? RawPtr<SVGTransformList>(this) : toSVGTransformList(fromValue);
+    RawPtr<SVGTransformList> toList = toSVGTransformList(toValue);
+    RawPtr<SVGTransformList> toAtEndOfDurationList = toSVGTransformList(toAtEndOfDurationValue);
 
     size_t toListSize = toList->length();
     if (!toListSize)
         return;
 
     // Get a reference to the from value before potentially cleaning it out (in the case of a To animation.)
-    RefPtrWillBeRawPtr<SVGTransform> toTransform = toList->at(0);
-    RefPtrWillBeRawPtr<SVGTransform> effectiveFrom = nullptr;
+    RawPtr<SVGTransform> toTransform = toList->at(0);
+    RawPtr<SVGTransform> effectiveFrom = nullptr;
     // If there's an existing 'from'/underlying value of the same type use that, else use a "zero transform".
     if (fromList->length() && fromList->at(0)->transformType() == toTransform->transformType())
         effectiveFrom = fromList->at(0);
@@ -376,21 +376,21 @@
     if (!isEmpty() && (!animationElement->isAdditive() || isToAnimation))
         clear();
 
-    RefPtrWillBeRawPtr<SVGTransform> currentTransform = SVGTransformDistance(effectiveFrom, toTransform).scaledDistance(percentage).addToSVGTransform(effectiveFrom);
+    RawPtr<SVGTransform> currentTransform = SVGTransformDistance(effectiveFrom, toTransform).scaledDistance(percentage).addToSVGTransform(effectiveFrom);
     if (animationElement->isAccumulated() && repeatCount) {
-        RefPtrWillBeRawPtr<SVGTransform> effectiveToAtEnd = !toAtEndOfDurationList->isEmpty() ? PassRefPtrWillBeRawPtr<SVGTransform>(toAtEndOfDurationList->at(0)) : SVGTransform::create(toTransform->transformType(), SVGTransform::ConstructZeroTransform);
+        RawPtr<SVGTransform> effectiveToAtEnd = !toAtEndOfDurationList->isEmpty() ? RawPtr<SVGTransform>(toAtEndOfDurationList->at(0)) : SVGTransform::create(toTransform->transformType(), SVGTransform::ConstructZeroTransform);
         append(SVGTransformDistance::addSVGTransforms(currentTransform, effectiveToAtEnd, repeatCount));
     } else {
         append(currentTransform);
     }
 }
 
-float SVGTransformList::calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase> toValue, SVGElement*)
+float SVGTransformList::calculateDistance(RawPtr<SVGPropertyBase> toValue, SVGElement*)
 {
     // FIXME: This is not correct in all cases. The spec demands that each component (translate x and y for example)
     // is paced separately. To implement this we need to treat each component as individual animation everywhere.
 
-    RefPtrWillBeRawPtr<SVGTransformList> toList = toSVGTransformList(toValue);
+    RawPtr<SVGTransformList> toList = toSVGTransformList(toValue);
     if (isEmpty() || length() != toList->length())
         return -1;
 
diff --git a/third_party/WebKit/Source/core/svg/SVGTransformList.h b/third_party/WebKit/Source/core/svg/SVGTransformList.h
index 144db38e..a8af43b 100644
--- a/third_party/WebKit/Source/core/svg/SVGTransformList.h
+++ b/third_party/WebKit/Source/core/svg/SVGTransformList.h
@@ -43,29 +43,29 @@
 public:
     typedef SVGTransformListTearOff TearOffType;
 
-    static PassRefPtrWillBeRawPtr<SVGTransformList> create()
+    static RawPtr<SVGTransformList> create()
     {
-        return adoptRefWillBeNoop(new SVGTransformList());
+        return new SVGTransformList();
     }
 
-    static PassRefPtrWillBeRawPtr<SVGTransformList> create(SVGTransformType, const String&);
+    static RawPtr<SVGTransformList> create(SVGTransformType, const String&);
 
     ~SVGTransformList() override;
 
-    PassRefPtrWillBeRawPtr<SVGTransform> consolidate();
+    RawPtr<SVGTransform> consolidate();
 
     bool concatenate(AffineTransform& result) const;
 
     // SVGPropertyBase:
-    PassRefPtrWillBeRawPtr<SVGPropertyBase> cloneForAnimation(const String&) const override;
+    RawPtr<SVGPropertyBase> cloneForAnimation(const String&) const override;
     String valueAsString() const override;
     SVGParsingError setValueAsString(const String&);
     bool parse(const UChar*& ptr, const UChar* end);
     bool parse(const LChar*& ptr, const LChar* end);
 
-    void add(PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*) override;
-    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, PassRefPtrWillBeRawPtr<SVGPropertyBase> fromValue, PassRefPtrWillBeRawPtr<SVGPropertyBase> toValue, PassRefPtrWillBeRawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement*) override;
-    float calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase> to, SVGElement*) override;
+    void add(RawPtr<SVGPropertyBase>, SVGElement*) override;
+    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> fromValue, RawPtr<SVGPropertyBase> toValue, RawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement*) override;
+    float calculateDistance(RawPtr<SVGPropertyBase> to, SVGElement*) override;
 
     static AnimatedPropertyType classType() { return AnimatedTransformList; }
 
diff --git a/third_party/WebKit/Source/core/svg/SVGTransformListTearOff.cpp b/third_party/WebKit/Source/core/svg/SVGTransformListTearOff.cpp
index 306e85ab..b70d4f9 100644
--- a/third_party/WebKit/Source/core/svg/SVGTransformListTearOff.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGTransformListTearOff.cpp
@@ -36,7 +36,7 @@
 
 namespace blink {
 
-SVGTransformListTearOff::SVGTransformListTearOff(PassRefPtrWillBeRawPtr<SVGTransformList> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
+SVGTransformListTearOff::SVGTransformListTearOff(RawPtr<SVGTransformList> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
     : SVGListPropertyTearOffHelper<SVGTransformListTearOff, SVGTransformList>(target, contextElement, propertyIsAnimVal, attributeName)
 {
 }
@@ -45,12 +45,12 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<SVGTransformTearOff> SVGTransformListTearOff::createSVGTransformFromMatrix(PassRefPtrWillBeRawPtr<SVGMatrixTearOff> matrix) const
+RawPtr<SVGTransformTearOff> SVGTransformListTearOff::createSVGTransformFromMatrix(RawPtr<SVGMatrixTearOff> matrix) const
 {
     return SVGSVGElement::createSVGTransformFromMatrix(matrix);
 }
 
-PassRefPtrWillBeRawPtr<SVGTransformTearOff> SVGTransformListTearOff::consolidate(ExceptionState& exceptionState)
+RawPtr<SVGTransformTearOff> SVGTransformListTearOff::consolidate(ExceptionState& exceptionState)
 {
     if (isImmutable()) {
         exceptionState.throwDOMException(NoModificationAllowedError, "The attribute is read-only.");
diff --git a/third_party/WebKit/Source/core/svg/SVGTransformListTearOff.h b/third_party/WebKit/Source/core/svg/SVGTransformListTearOff.h
index 8d172e5..d3ee4fd 100644
--- a/third_party/WebKit/Source/core/svg/SVGTransformListTearOff.h
+++ b/third_party/WebKit/Source/core/svg/SVGTransformListTearOff.h
@@ -42,18 +42,18 @@
     , public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<SVGTransformListTearOff> create(PassRefPtrWillBeRawPtr<SVGTransformList> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
+    static RawPtr<SVGTransformListTearOff> create(RawPtr<SVGTransformList> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
     {
-        return adoptRefWillBeNoop(new SVGTransformListTearOff(target, contextElement, propertyIsAnimVal, attributeName));
+        return new SVGTransformListTearOff(target, contextElement, propertyIsAnimVal, attributeName);
     }
 
     ~SVGTransformListTearOff() override;
 
-    PassRefPtrWillBeRawPtr<SVGTransformTearOff> createSVGTransformFromMatrix(PassRefPtrWillBeRawPtr<SVGMatrixTearOff>) const;
-    PassRefPtrWillBeRawPtr<SVGTransformTearOff> consolidate(ExceptionState&);
+    RawPtr<SVGTransformTearOff> createSVGTransformFromMatrix(RawPtr<SVGMatrixTearOff>) const;
+    RawPtr<SVGTransformTearOff> consolidate(ExceptionState&);
 
 private:
-    SVGTransformListTearOff(PassRefPtrWillBeRawPtr<SVGTransformList>, SVGElement*, PropertyIsAnimValType, const QualifiedName&);
+    SVGTransformListTearOff(RawPtr<SVGTransformList>, SVGElement*, PropertyIsAnimValType, const QualifiedName&);
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGTransformTearOff.cpp b/third_party/WebKit/Source/core/svg/SVGTransformTearOff.cpp
index d931a01..31418b4 100644
--- a/third_party/WebKit/Source/core/svg/SVGTransformTearOff.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGTransformTearOff.cpp
@@ -36,7 +36,7 @@
 
 namespace blink {
 
-SVGTransformTearOff::SVGTransformTearOff(PassRefPtrWillBeRawPtr<SVGTransform> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName)
+SVGTransformTearOff::SVGTransformTearOff(RawPtr<SVGTransform> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName)
     : SVGPropertyTearOff<SVGTransform>(target, contextElement, propertyIsAnimVal, attributeName)
 {
 }
@@ -60,7 +60,7 @@
     return m_matrixTearoff.get();
 }
 
-void SVGTransformTearOff::setMatrix(PassRefPtrWillBeRawPtr<SVGMatrixTearOff> matrix, ExceptionState& exceptionState)
+void SVGTransformTearOff::setMatrix(RawPtr<SVGMatrixTearOff> matrix, ExceptionState& exceptionState)
 {
     if (isImmutable()) {
         exceptionState.throwDOMException(NoModificationAllowedError, "The attribute is read-only.");
diff --git a/third_party/WebKit/Source/core/svg/SVGTransformTearOff.h b/third_party/WebKit/Source/core/svg/SVGTransformTearOff.h
index c9fb66e..a618e46 100644
--- a/third_party/WebKit/Source/core/svg/SVGTransformTearOff.h
+++ b/third_party/WebKit/Source/core/svg/SVGTransformTearOff.h
@@ -52,9 +52,9 @@
         SVG_TRANSFORM_SKEWY = blink::SVG_TRANSFORM_SKEWY,
     };
 
-    static PassRefPtrWillBeRawPtr<SVGTransformTearOff> create(PassRefPtrWillBeRawPtr<SVGTransform> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
+    static RawPtr<SVGTransformTearOff> create(RawPtr<SVGTransform> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
     {
-        return adoptRefWillBeNoop(new SVGTransformTearOff(target, contextElement, propertyIsAnimVal, attributeName));
+        return new SVGTransformTearOff(target, contextElement, propertyIsAnimVal, attributeName);
     }
 
     ~SVGTransformTearOff() override;
@@ -63,7 +63,7 @@
     SVGMatrixTearOff* matrix();
     float angle() { return target()->angle(); }
 
-    void setMatrix(PassRefPtrWillBeRawPtr<SVGMatrixTearOff>, ExceptionState&);
+    void setMatrix(RawPtr<SVGMatrixTearOff>, ExceptionState&);
     void setTranslate(float tx, float ty, ExceptionState&);
     void setScale(float sx, float sy, ExceptionState&);
     void setRotate(float angle, float cx, float cy, ExceptionState&);
@@ -73,9 +73,9 @@
     DECLARE_VIRTUAL_TRACE();
 
 private:
-    SVGTransformTearOff(PassRefPtrWillBeRawPtr<SVGTransform>, SVGElement* contextElement, PropertyIsAnimValType, const QualifiedName& attributeName);
+    SVGTransformTearOff(RawPtr<SVGTransform>, SVGElement* contextElement, PropertyIsAnimValType, const QualifiedName& attributeName);
 
-    RefPtrWillBeMember<SVGMatrixTearOff> m_matrixTearoff;
+    Member<SVGMatrixTearOff> m_matrixTearoff;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGURIReference.h b/third_party/WebKit/Source/core/svg/SVGURIReference.h
index 4653189d..cc05a4f5 100644
--- a/third_party/WebKit/Source/core/svg/SVGURIReference.h
+++ b/third_party/WebKit/Source/core/svg/SVGURIReference.h
@@ -30,7 +30,7 @@
 
 class Element;
 
-class CORE_EXPORT SVGURIReference : public WillBeGarbageCollectedMixin {
+class CORE_EXPORT SVGURIReference : public GarbageCollectedMixin {
 public:
     virtual ~SVGURIReference() { }
 
@@ -71,7 +71,7 @@
     explicit SVGURIReference(SVGElement*);
 
 private:
-    RefPtrWillBeMember<SVGAnimatedHref> m_href;
+    Member<SVGAnimatedHref> m_href;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGUnitTypes.h b/third_party/WebKit/Source/core/svg/SVGUnitTypes.h
index b084004..2ae0953b 100644
--- a/third_party/WebKit/Source/core/svg/SVGUnitTypes.h
+++ b/third_party/WebKit/Source/core/svg/SVGUnitTypes.h
@@ -27,7 +27,7 @@
 
 namespace blink {
 
-class SVGUnitTypes final : public RefCountedWillBeGarbageCollected<SVGUnitTypes>, public ScriptWrappable {
+class SVGUnitTypes final : public GarbageCollected<SVGUnitTypes>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
     enum SVGUnitType {
diff --git a/third_party/WebKit/Source/core/svg/SVGUseElement.cpp b/third_party/WebKit/Source/core/svg/SVGUseElement.cpp
index dc7abc81..c945586 100644
--- a/third_party/WebKit/Source/core/svg/SVGUseElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGUseElement.cpp
@@ -48,7 +48,7 @@
 
 static SVGUseEventSender& svgUseLoadEventSender()
 {
-    DEFINE_STATIC_LOCAL(OwnPtrWillBePersistent<SVGUseEventSender>, sharedLoadEventSender, (SVGUseEventSender::create(EventTypeNames::load)));
+    DEFINE_STATIC_LOCAL(Persistent<SVGUseEventSender>, sharedLoadEventSender, (SVGUseEventSender::create(EventTypeNames::load)));
     return *sharedLoadEventSender;
 }
 
@@ -74,10 +74,10 @@
 #endif
 }
 
-PassRefPtrWillBeRawPtr<SVGUseElement> SVGUseElement::create(Document& document)
+RawPtr<SVGUseElement> SVGUseElement::create(Document& document)
 {
     // Always build a user agent #shadow-root for SVGUseElement.
-    RefPtrWillBeRawPtr<SVGUseElement> use = adoptRefWillBeNoop(new SVGUseElement(document));
+    RawPtr<SVGUseElement> use = new SVGUseElement(document);
     use->ensureUserAgentShadowRoot();
     return use.release();
 }
@@ -385,16 +385,16 @@
 
 static void moveChildrenToReplacementElement(ContainerNode& sourceRoot, ContainerNode& destinationRoot)
 {
-    for (RefPtrWillBeRawPtr<Node> child = sourceRoot.firstChild(); child; ) {
-        RefPtrWillBeRawPtr<Node> nextChild = child->nextSibling();
+    for (RawPtr<Node> child = sourceRoot.firstChild(); child; ) {
+        RawPtr<Node> nextChild = child->nextSibling();
         destinationRoot.appendChild(child);
         child = nextChild.release();
     }
 }
 
-PassRefPtrWillBeRawPtr<Element> SVGUseElement::createInstanceTree(SVGElement& targetRoot) const
+RawPtr<Element> SVGUseElement::createInstanceTree(SVGElement& targetRoot) const
 {
-    RefPtrWillBeRawPtr<Element> instanceRoot = targetRoot.cloneElementWithChildren();
+    RawPtr<Element> instanceRoot = targetRoot.cloneElementWithChildren();
     ASSERT(instanceRoot->isSVGElement());
     if (isSVGSymbolElement(targetRoot)) {
         // Spec: The referenced 'symbol' and its contents are deep-cloned into
@@ -405,7 +405,7 @@
         // transferred to the generated 'svg'. If attributes width and/or
         // height are not specified, the generated 'svg' element will use
         // values of 100% for these attributes.
-        RefPtrWillBeRawPtr<SVGSVGElement> svgElement = SVGSVGElement::create(targetRoot.document());
+        RawPtr<SVGSVGElement> svgElement = SVGSVGElement::create(targetRoot.document());
         // Transfer all data (attributes, etc.) from the <symbol> to the new
         // <svg> element.
         svgElement->cloneDataFromElement(*instanceRoot);
@@ -436,7 +436,7 @@
 
     // Set up root SVG element in shadow tree.
     // Clone the target subtree into the shadow tree, not handling <use> and <symbol> yet.
-    RefPtrWillBeRawPtr<Element> instanceRoot = createInstanceTree(target);
+    RawPtr<Element> instanceRoot = createInstanceTree(target);
     m_targetElementInstance = toSVGElement(instanceRoot.get());
     ShadowRoot* shadowTreeRootElement = userAgentShadowRoot();
     shadowTreeRootElement->appendChild(instanceRoot.release());
@@ -600,7 +600,7 @@
     // actual shadow tree (after the special case modification for svg/symbol) we have
     // to walk it completely and expand all <use> elements.
     ShadowRoot* shadowRoot = userAgentShadowRoot();
-    for (RefPtrWillBeRawPtr<SVGUseElement> use = Traversal<SVGUseElement>::firstWithin(*shadowRoot); use; ) {
+    for (RawPtr<SVGUseElement> use = Traversal<SVGUseElement>::firstWithin(*shadowRoot); use; ) {
         ASSERT(!use->resourceIsStillLoading());
 
         SVGUseElement& originalUse = toSVGUseElement(*use->correspondingElement());
@@ -612,7 +612,7 @@
             return false;
         // Don't ASSERT(target) here, it may be "pending", too.
         // Setup sub-shadow tree root node
-        RefPtrWillBeRawPtr<SVGGElement> cloneParent = SVGGElement::create(originalUse.document());
+        RawPtr<SVGGElement> cloneParent = SVGGElement::create(originalUse.document());
         // Transfer all data (attributes, etc.) from <use> to the new <g> element.
         cloneParent->cloneDataFromElement(*use);
         cloneParent->setCorrespondingElement(&originalUse);
@@ -625,7 +625,7 @@
         if (target)
             cloneParent->appendChild(use->createInstanceTree(*target));
 
-        RefPtrWillBeRawPtr<SVGElement> replacingElement(cloneParent.get());
+        RawPtr<SVGElement> replacingElement(cloneParent.get());
 
         // Replace <use> with referenced content.
         use->parentNode()->replaceChild(cloneParent.release(), use);
@@ -647,11 +647,11 @@
 void SVGUseElement::invalidateDependentShadowTrees()
 {
     // Recursively invalidate dependent <use> shadow trees
-    const WillBeHeapHashSet<RawPtrWillBeWeakMember<SVGElement>>& rawInstances = instancesForElement();
-    WillBeHeapVector<RefPtrWillBeMember<SVGElement>> instances;
+    const HeapHashSet<WeakMember<SVGElement>>& rawInstances = instancesForElement();
+    HeapVector<Member<SVGElement>> instances;
     instances.appendRange(rawInstances.begin(), rawInstances.end());
     for (auto& instance : instances) {
-        if (RefPtrWillBeRawPtr<SVGUseElement> element = instance->correspondingUseElement()) {
+        if (RawPtr<SVGUseElement> element = instance->correspondingUseElement()) {
             ASSERT(element->inDocument());
             element->invalidateShadowTree();
         }
@@ -744,7 +744,7 @@
     return false;
 }
 
-void SVGUseElement::setDocumentResource(PassRefPtrWillBeRawPtr<DocumentResource> resource)
+void SVGUseElement::setDocumentResource(RawPtr<DocumentResource> resource)
 {
     if (m_resource == resource)
         return;
diff --git a/third_party/WebKit/Source/core/svg/SVGUseElement.h b/third_party/WebKit/Source/core/svg/SVGUseElement.h
index e5ea5486..040bb8c 100644
--- a/third_party/WebKit/Source/core/svg/SVGUseElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGUseElement.h
@@ -38,10 +38,10 @@
     public DocumentResourceClient {
 
     DEFINE_WRAPPERTYPEINFO();
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(SVGUseElement);
-    WILL_BE_USING_PRE_FINALIZER(SVGUseElement, dispose);
+    USING_GARBAGE_COLLECTED_MIXIN(SVGUseElement);
+    USING_PRE_FINALIZER(SVGUseElement, dispose);
 public:
-    static PassRefPtrWillBeRawPtr<SVGUseElement> create(Document&);
+    static RawPtr<SVGUseElement> create(Document&);
     ~SVGUseElement() override;
 
     void invalidateShadowTree();
@@ -91,7 +91,7 @@
     // Instance tree handling
     void buildShadowAndInstanceTree(SVGElement& target);
     void clearInstanceRoot();
-    PassRefPtrWillBeRawPtr<Element> createInstanceTree(SVGElement& targetRoot) const;
+    RawPtr<Element> createInstanceTree(SVGElement& targetRoot) const;
     void clearShadowTree();
     bool hasCycleUseReferencing(const SVGUseElement&, const ContainerNode& targetInstance, SVGElement*& newTarget) const;
     bool expandUseElementsInShadowTree();
@@ -106,17 +106,17 @@
     bool instanceTreeIsLoading() const;
     void notifyFinished(Resource*) override;
     String debugName() const override { return "SVGUseElement"; }
-    void setDocumentResource(PassRefPtrWillBeRawPtr<DocumentResource>);
+    void setDocumentResource(RawPtr<DocumentResource>);
 
-    RefPtrWillBeMember<SVGAnimatedLength> m_x;
-    RefPtrWillBeMember<SVGAnimatedLength> m_y;
-    RefPtrWillBeMember<SVGAnimatedLength> m_width;
-    RefPtrWillBeMember<SVGAnimatedLength> m_height;
+    Member<SVGAnimatedLength> m_x;
+    Member<SVGAnimatedLength> m_y;
+    Member<SVGAnimatedLength> m_width;
+    Member<SVGAnimatedLength> m_height;
 
     bool m_haveFiredLoadEvent;
     bool m_needsShadowTreeRecreation;
-    RefPtrWillBeMember<SVGElement> m_targetElementInstance;
-    RefPtrWillBeMember<DocumentResource> m_resource;
+    Member<SVGElement> m_targetElementInstance;
+    Member<DocumentResource> m_resource;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGViewElement.h b/third_party/WebKit/Source/core/svg/SVGViewElement.h
index 28ead0d..2c76b56 100644
--- a/third_party/WebKit/Source/core/svg/SVGViewElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGViewElement.h
@@ -35,7 +35,7 @@
                              public SVGFitToViewBox,
                              public SVGZoomAndPan {
     DEFINE_WRAPPERTYPEINFO();
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(SVGViewElement);
+    USING_GARBAGE_COLLECTED_MIXIN(SVGViewElement);
 public:
     DECLARE_NODE_FACTORY(SVGViewElement);
 
@@ -55,7 +55,7 @@
 
     bool layoutObjectIsNeeded(const ComputedStyle&) override { return false; }
 
-    RefPtrWillBeMember<SVGStaticStringList> m_viewTarget;
+    Member<SVGStaticStringList> m_viewTarget;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGViewSpec.h b/third_party/WebKit/Source/core/svg/SVGViewSpec.h
index 59e0223..2aada5de 100644
--- a/third_party/WebKit/Source/core/svg/SVGViewSpec.h
+++ b/third_party/WebKit/Source/core/svg/SVGViewSpec.h
@@ -28,18 +28,18 @@
 
 namespace blink {
 
-class SVGViewSpec final : public RefCountedWillBeGarbageCollectedFinalized<SVGViewSpec>, public ScriptWrappable, public SVGZoomAndPan, public SVGFitToViewBox {
+class SVGViewSpec final : public GarbageCollectedFinalized<SVGViewSpec>, public ScriptWrappable, public SVGZoomAndPan, public SVGFitToViewBox {
     DEFINE_WRAPPERTYPEINFO();
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(SVGViewSpec);
+    USING_GARBAGE_COLLECTED_MIXIN(SVGViewSpec);
 public:
 #if !ENABLE(OILPAN)
     using RefCounted<SVGViewSpec>::ref;
     using RefCounted<SVGViewSpec>::deref;
 #endif
 
-    static PassRefPtrWillBeRawPtr<SVGViewSpec> create(SVGSVGElement* contextElement)
+    static RawPtr<SVGViewSpec> create(SVGSVGElement* contextElement)
     {
-        return adoptRefWillBeNoop(new SVGViewSpec(contextElement));
+        return new SVGViewSpec(contextElement);
     }
 
     bool parseViewSpec(const String&);
@@ -49,7 +49,7 @@
 
     // JS API
     SVGTransformList* transform() { return m_transform ? m_transform->baseValue() : 0; }
-    PassRefPtrWillBeRawPtr<SVGTransformListTearOff> transformFromJavascript() { return m_transform ? m_transform->baseVal() : 0; }
+    RawPtr<SVGTransformListTearOff> transformFromJavascript() { return m_transform ? m_transform->baseVal() : 0; }
     SVGElement* viewTarget() const;
     String viewBoxString() const;
     String preserveAspectRatioString() const;
@@ -69,8 +69,8 @@
     template<typename CharType>
     bool parseViewSpecInternal(const CharType* ptr, const CharType* end);
 
-    RawPtrWillBeMember<SVGSVGElement> m_contextElement;
-    RefPtrWillBeMember<SVGAnimatedTransformList> m_transform;
+    Member<SVGSVGElement> m_contextElement;
+    Member<SVGAnimatedTransformList> m_transform;
     String m_viewTargetString;
 };
 
diff --git a/third_party/WebKit/Source/core/svg/SVGZoomEvent.cpp b/third_party/WebKit/Source/core/svg/SVGZoomEvent.cpp
index 4ad663b..f89bee93 100644
--- a/third_party/WebKit/Source/core/svg/SVGZoomEvent.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGZoomEvent.cpp
@@ -33,9 +33,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<SVGRectTearOff> SVGZoomEvent::zoomRectScreen() const
+RawPtr<SVGRectTearOff> SVGZoomEvent::zoomRectScreen() const
 {
-    RefPtrWillBeRawPtr<SVGRectTearOff> rectTearOff = SVGRectTearOff::create(SVGRect::create(), 0, PropertyIsNotAnimVal);
+    RawPtr<SVGRectTearOff> rectTearOff = SVGRectTearOff::create(SVGRect::create(), 0, PropertyIsNotAnimVal);
     rectTearOff->setIsReadOnlyProperty();
     return rectTearOff.release();
 }
@@ -45,9 +45,9 @@
     return m_previousScale;
 }
 
-PassRefPtrWillBeRawPtr<SVGPointTearOff> SVGZoomEvent::previousTranslate() const
+RawPtr<SVGPointTearOff> SVGZoomEvent::previousTranslate() const
 {
-    RefPtrWillBeRawPtr<SVGPointTearOff> pointTearOff = SVGPointTearOff::create(SVGPoint::create(m_previousTranslate), 0, PropertyIsNotAnimVal);
+    RawPtr<SVGPointTearOff> pointTearOff = SVGPointTearOff::create(SVGPoint::create(m_previousTranslate), 0, PropertyIsNotAnimVal);
     pointTearOff->setIsReadOnlyProperty();
     return pointTearOff.release();
 }
@@ -57,9 +57,9 @@
     return m_newScale;
 }
 
-PassRefPtrWillBeRawPtr<SVGPointTearOff> SVGZoomEvent::newTranslate() const
+RawPtr<SVGPointTearOff> SVGZoomEvent::newTranslate() const
 {
-    RefPtrWillBeRawPtr<SVGPointTearOff> pointTearOff = SVGPointTearOff::create(SVGPoint::create(m_newTranslate), 0, PropertyIsNotAnimVal);
+    RawPtr<SVGPointTearOff> pointTearOff = SVGPointTearOff::create(SVGPoint::create(m_newTranslate), 0, PropertyIsNotAnimVal);
     pointTearOff->setIsReadOnlyProperty();
     return pointTearOff.release();
 }
diff --git a/third_party/WebKit/Source/core/svg/SVGZoomEvent.h b/third_party/WebKit/Source/core/svg/SVGZoomEvent.h
index 134da5e..5528b72 100644
--- a/third_party/WebKit/Source/core/svg/SVGZoomEvent.h
+++ b/third_party/WebKit/Source/core/svg/SVGZoomEvent.h
@@ -32,21 +32,21 @@
 class SVGZoomEvent final : public UIEvent {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static PassRefPtrWillBeRawPtr<SVGZoomEvent> create()
+    static RawPtr<SVGZoomEvent> create()
     {
         return adoptRefWillBeNoop(new SVGZoomEvent);
     }
 
     // 'SVGZoomEvent' functions
-    PassRefPtrWillBeRawPtr<SVGRectTearOff> zoomRectScreen() const;
+    RawPtr<SVGRectTearOff> zoomRectScreen() const;
 
     float previousScale() const;
 
-    PassRefPtrWillBeRawPtr<SVGPointTearOff> previousTranslate() const;
+    RawPtr<SVGPointTearOff> previousTranslate() const;
 
     float newScale() const;
 
-    PassRefPtrWillBeRawPtr<SVGPointTearOff> newTranslate() const;
+    RawPtr<SVGPointTearOff> newTranslate() const;
 
     const AtomicString& interfaceName() const override;
 
diff --git a/third_party/WebKit/Source/core/svg/UnsafeSVGAttributeSanitizationTest.cpp b/third_party/WebKit/Source/core/svg/UnsafeSVGAttributeSanitizationTest.cpp
index a24c769..09a67183 100644
--- a/third_party/WebKit/Source/core/svg/UnsafeSVGAttributeSanitizationTest.cpp
+++ b/third_party/WebKit/Source/core/svg/UnsafeSVGAttributeSanitizationTest.cpp
@@ -271,9 +271,9 @@
 // SVG animation attributes.
 TEST(UnsafeSVGAttributeSanitizationTest, stringsShouldNotSupportAddition)
 {
-    RefPtrWillBeRawPtr<Document> document = Document::create();
-    RefPtrWillBeRawPtr<SVGElement> target = SVGAElement::create(*document);
-    RefPtrWillBeRawPtr<SVGAnimateElement> element = SVGAnimateElement::create(*document);
+    RawPtr<Document> document = Document::create();
+    RawPtr<SVGElement> target = SVGAElement::create(*document);
+    RawPtr<SVGAnimateElement> element = SVGAnimateElement::create(*document);
     element->setTargetElement(target.get());
     element->setAttributeName(XLinkNames::hrefAttr);
 
@@ -300,8 +300,8 @@
     attributes.append(Attribute(SVGNames::fromAttr, "/home"));
     attributes.append(Attribute(SVGNames::toAttr, "javascript:own3d()"));
 
-    RefPtrWillBeRawPtr<Document> document = Document::create();
-    RefPtrWillBeRawPtr<Element> element = SVGAnimateElement::create(*document);
+    RawPtr<Document> document = Document::create();
+    RawPtr<Element> element = SVGAnimateElement::create(*document);
     element->stripScriptingAttributes(attributes);
 
     EXPECT_EQ(3ul, attributes.size()) <<
@@ -322,8 +322,8 @@
     isJavaScriptURLAttribute_hrefContainingJavascriptURL)
 {
     Attribute attribute(SVGNames::hrefAttr, "javascript:alert()");
-    RefPtrWillBeRawPtr<Document> document = Document::create();
-    RefPtrWillBeRawPtr<Element> element = SVGAElement::create(*document);
+    RawPtr<Document> document = Document::create();
+    RawPtr<Element> element = SVGAElement::create(*document);
     EXPECT_TRUE(
         element->isJavaScriptURLAttribute(attribute)) <<
         "The 'a' element should identify an 'href' attribute with a "
@@ -335,8 +335,8 @@
     isJavaScriptURLAttribute_xlinkHrefContainingJavascriptURL)
 {
     Attribute attribute(XLinkNames::hrefAttr, "javascript:alert()");
-    RefPtrWillBeRawPtr<Document> document = Document::create();
-    RefPtrWillBeRawPtr<Element> element = SVGAElement::create(*document);
+    RawPtr<Document> document = Document::create();
+    RawPtr<Element> element = SVGAElement::create(*document);
     EXPECT_TRUE(
         element->isJavaScriptURLAttribute(attribute)) <<
         "The 'a' element should identify an 'xlink:href' attribute with a "
@@ -350,8 +350,8 @@
     QualifiedName hrefAlternatePrefix(
         "foo", "href", XLinkNames::xlinkNamespaceURI);
     Attribute evilAttribute(hrefAlternatePrefix, "javascript:alert()");
-    RefPtrWillBeRawPtr<Document> document = Document::create();
-    RefPtrWillBeRawPtr<Element> element = SVGAElement::create(*document);
+    RawPtr<Document> document = Document::create();
+    RawPtr<Element> element = SVGAElement::create(*document);
     EXPECT_TRUE(element->isJavaScriptURLAttribute(evilAttribute)) <<
         "The XLink 'href' attribute with a JavaScript URL value should be "
         "identified as a JavaScript URL attribute, even if the attribute "
@@ -363,8 +363,8 @@
     isSVGAnimationAttributeSettingJavaScriptURL_fromContainingJavaScriptURL)
 {
     Attribute evilAttribute(SVGNames::fromAttr, "javascript:alert()");
-    RefPtrWillBeRawPtr<Document> document = Document::create();
-    RefPtrWillBeRawPtr<Element> element = SVGAnimateElement::create(*document);
+    RawPtr<Document> document = Document::create();
+    RawPtr<Element> element = SVGAnimateElement::create(*document);
     EXPECT_TRUE(
         element->isSVGAnimationAttributeSettingJavaScriptURL(evilAttribute)) <<
         "The animate element should identify a 'from' attribute with a "
@@ -376,8 +376,8 @@
     isSVGAnimationAttributeSettingJavaScriptURL_toContainingJavaScripURL)
 {
     Attribute evilAttribute(SVGNames::toAttr, "javascript:window.close()");
-    RefPtrWillBeRawPtr<Document> document = Document::create();
-    RefPtrWillBeRawPtr<Element> element = SVGSetElement::create(*document);
+    RawPtr<Document> document = Document::create();
+    RawPtr<Element> element = SVGSetElement::create(*document);
     EXPECT_TRUE(
         element->isSVGAnimationAttributeSettingJavaScriptURL(evilAttribute)) <<
         "The set element should identify a 'to' attribute with a JavaScript "
@@ -389,8 +389,8 @@
     isSVGAnimationAttributeSettingJavaScriptURL_valuesContainingJavaScriptURL)
 {
     Attribute evilAttribute(SVGNames::valuesAttr, "hi!; javascript:confirm()");
-    RefPtrWillBeRawPtr<Document> document = Document::create();
-    RefPtrWillBeRawPtr<Element> element = SVGAnimateElement::create(*document);
+    RawPtr<Document> document = Document::create();
+    RawPtr<Element> element = SVGAnimateElement::create(*document);
     element = SVGAnimateElement::create(*document);
     EXPECT_TRUE(
         element->isSVGAnimationAttributeSettingJavaScriptURL(evilAttribute)) <<
@@ -403,8 +403,8 @@
     isSVGAnimationAttributeSettingJavaScriptURL_innocuousAnimationAttribute)
 {
     Attribute fineAttribute(SVGNames::fromAttr, "hello, world!");
-    RefPtrWillBeRawPtr<Document> document = Document::create();
-    RefPtrWillBeRawPtr<Element> element = SVGSetElement::create(*document);
+    RawPtr<Document> document = Document::create();
+    RawPtr<Element> element = SVGSetElement::create(*document);
     EXPECT_FALSE(
         element->isSVGAnimationAttributeSettingJavaScriptURL(fineAttribute)) <<
         "The animate element should not identify a 'from' attribute with an "
diff --git a/third_party/WebKit/Source/core/svg/animation/SMILTimeContainer.cpp b/third_party/WebKit/Source/core/svg/animation/SMILTimeContainer.cpp
index 1434a44..083aaec 100644
--- a/third_party/WebKit/Source/core/svg/animation/SMILTimeContainer.cpp
+++ b/third_party/WebKit/Source/core/svg/animation/SMILTimeContainer.cpp
@@ -91,7 +91,7 @@
 #endif
 
     ElementAttributePair key(target, attributeName);
-    OwnPtrWillBeMember<AnimationsLinkedHashSet>& scheduled = m_scheduledAnimations.add(key, nullptr).storedValue->value;
+    Member<AnimationsLinkedHashSet>& scheduled = m_scheduledAnimations.add(key, nullptr).storedValue->value;
     if (!scheduled)
         scheduled = adoptPtrWillBeNoop(new AnimationsLinkedHashSet);
     ASSERT(!scheduled->contains(animation));
@@ -386,7 +386,7 @@
 
 struct PriorityCompare {
     PriorityCompare(SMILTime elapsed) : m_elapsed(elapsed) {}
-    bool operator()(const RefPtrWillBeMember<SVGSMILElement>& a, const RefPtrWillBeMember<SVGSMILElement>& b)
+    bool operator()(const Member<SVGSMILElement>& a, const Member<SVGSMILElement>& b)
     {
         // FIXME: This should also consider possible timing relations between the elements.
         SMILTime aBegin = a->intervalBegin();
@@ -470,8 +470,8 @@
     if (m_documentOrderIndexesDirty)
         updateDocumentOrderIndexes();
 
-    WillBeHeapHashSet<ElementAttributePair> invalidKeys;
-    using AnimationsVector = WillBeHeapVector<RefPtrWillBeMember<SVGSMILElement>>;
+    HeapHashSet<ElementAttributePair> invalidKeys;
+    using AnimationsVector = HeapVector<Member<SVGSMILElement>>;
     AnimationsVector animationsToApply;
     AnimationsVector scheduledAnimationsInSameGroup;
     for (const auto& entry : m_scheduledAnimations) {
@@ -533,8 +533,8 @@
 
     for (unsigned i = 0; i < animationsToApplySize; ++i) {
         if (animationsToApply[i]->inDocument() && animationsToApply[i]->isSVGDiscardElement()) {
-            RefPtrWillBeRawPtr<SVGSMILElement> animDiscard = animationsToApply[i];
-            RefPtrWillBeRawPtr<SVGElement> targetElement = animDiscard->targetElement();
+            RawPtr<SVGSMILElement> animDiscard = animationsToApply[i];
+            RawPtr<SVGElement> targetElement = animDiscard->targetElement();
             if (targetElement && targetElement->inDocument()) {
                 targetElement->remove(IGNORE_EXCEPTION);
                 ASSERT(!targetElement->inDocument());
diff --git a/third_party/WebKit/Source/core/svg/animation/SMILTimeContainer.h b/third_party/WebKit/Source/core/svg/animation/SMILTimeContainer.h
index be0bacdf..6456820 100644
--- a/third_party/WebKit/Source/core/svg/animation/SMILTimeContainer.h
+++ b/third_party/WebKit/Source/core/svg/animation/SMILTimeContainer.h
@@ -45,9 +45,9 @@
 class SVGSMILElement;
 class SVGSVGElement;
 
-class SMILTimeContainer : public RefCountedWillBeGarbageCollectedFinalized<SMILTimeContainer>  {
+class SMILTimeContainer : public GarbageCollectedFinalized<SMILTimeContainer>  {
 public:
-    static PassRefPtrWillBeRawPtr<SMILTimeContainer> create(SVGSVGElement& owner) { return adoptRefWillBeNoop(new SMILTimeContainer(owner)); }
+    static RawPtr<SMILTimeContainer> create(SVGSVGElement& owner) { return new SMILTimeContainer(owner); }
     ~SMILTimeContainer();
 
     void schedule(SVGSMILElement*, SVGElement*, const QualifiedName&);
@@ -131,12 +131,12 @@
     Timer<SMILTimeContainer> m_wakeupTimer;
     Timer<SMILTimeContainer> m_animationPolicyOnceTimer;
 
-    using ElementAttributePair = std::pair<RawPtrWillBeWeakMember<SVGElement>, QualifiedName>;
-    using AnimationsLinkedHashSet = WillBeHeapLinkedHashSet<RawPtrWillBeWeakMember<SVGSMILElement>>;
-    using GroupedAnimationsMap = WillBeHeapHashMap<ElementAttributePair, OwnPtrWillBeMember<AnimationsLinkedHashSet>>;
+    using ElementAttributePair = std::pair<WeakMember<SVGElement>, QualifiedName>;
+    using AnimationsLinkedHashSet = HeapLinkedHashSet<WeakMember<SVGSMILElement>>;
+    using GroupedAnimationsMap = HeapHashMap<ElementAttributePair, Member<AnimationsLinkedHashSet>>;
     GroupedAnimationsMap m_scheduledAnimations;
 
-    RawPtrWillBeMember<SVGSVGElement> m_ownerSVGElement;
+    Member<SVGSVGElement> m_ownerSVGElement;
 
 #if ENABLE(ASSERT)
     bool m_preventScheduledAnimationsChanges;
diff --git a/third_party/WebKit/Source/core/svg/animation/SVGSMILElement.cpp b/third_party/WebKit/Source/core/svg/animation/SVGSMILElement.cpp
index decd78e..4c523d8 100644
--- a/third_party/WebKit/Source/core/svg/animation/SVGSMILElement.cpp
+++ b/third_party/WebKit/Source/core/svg/animation/SVGSMILElement.cpp
@@ -48,9 +48,9 @@
 
 class RepeatEvent final : public Event {
 public:
-    static PassRefPtrWillBeRawPtr<RepeatEvent> create(const AtomicString& type, int repeat)
+    static RawPtr<RepeatEvent> create(const AtomicString& type, int repeat)
     {
-        return adoptRefWillBeNoop(new RepeatEvent(type, false, false, repeat));
+        return new RepeatEvent(type, false, false, repeat);
     }
 
     ~RepeatEvent() override {}
@@ -81,25 +81,25 @@
 
 static SMILEventSender& smilEndEventSender()
 {
-    DEFINE_STATIC_LOCAL(OwnPtrWillBePersistent<SMILEventSender>, sender, (SMILEventSender::create(EventTypeNames::endEvent)));
+    DEFINE_STATIC_LOCAL(Persistent<SMILEventSender>, sender, (SMILEventSender::create(EventTypeNames::endEvent)));
     return *sender;
 }
 
 static SMILEventSender& smilBeginEventSender()
 {
-    DEFINE_STATIC_LOCAL(OwnPtrWillBePersistent<SMILEventSender>, sender, (SMILEventSender::create(EventTypeNames::beginEvent)));
+    DEFINE_STATIC_LOCAL(Persistent<SMILEventSender>, sender, (SMILEventSender::create(EventTypeNames::beginEvent)));
     return *sender;
 }
 
 static SMILEventSender& smilRepeatEventSender()
 {
-    DEFINE_STATIC_LOCAL(OwnPtrWillBePersistent<SMILEventSender>, sender, (SMILEventSender::create(EventTypeNames::repeatEvent)));
+    DEFINE_STATIC_LOCAL(Persistent<SMILEventSender>, sender, (SMILEventSender::create(EventTypeNames::repeatEvent)));
     return *sender;
 }
 
 static SMILEventSender& smilRepeatNEventSender()
 {
-    DEFINE_STATIC_LOCAL(OwnPtrWillBePersistent<SMILEventSender>, sender, (SMILEventSender::create(AtomicString("repeatn"))));
+    DEFINE_STATIC_LOCAL(Persistent<SMILEventSender>, sender, (SMILEventSender::create(AtomicString("repeatn"))));
     return *sender;
 }
 
@@ -108,9 +108,9 @@
 
 class ConditionEventListener final : public EventListener {
 public:
-    static PassRefPtrWillBeRawPtr<ConditionEventListener> create(SVGSMILElement* animation, SVGSMILElement::Condition* condition)
+    static RawPtr<ConditionEventListener> create(SVGSMILElement* animation, SVGSMILElement::Condition* condition)
     {
-        return adoptRefWillBeNoop(new ConditionEventListener(animation, condition));
+        return new ConditionEventListener(animation, condition);
     }
 
     static const ConditionEventListener* cast(const EventListener* listener)
@@ -144,8 +144,8 @@
 
     void handleEvent(ExecutionContext*, Event*) override;
 
-    RawPtrWillBeMember<SVGSMILElement> m_animation;
-    RawPtrWillBeMember<SVGSMILElement::Condition> m_condition;
+    Member<SVGSMILElement> m_animation;
+    Member<SVGSMILElement::Condition> m_condition;
 };
 
 bool ConditionEventListener::operator==(const EventListener& listener) const
@@ -162,7 +162,7 @@
     m_animation->handleConditionEvent(event, m_condition);
 }
 
-void SVGSMILElement::Condition::setEventListener(PassRefPtrWillBeRawPtr<ConditionEventListener> eventListener)
+void SVGSMILElement::Condition::setEventListener(RawPtr<ConditionEventListener> eventListener)
 {
     m_eventListener = eventListener;
 }
@@ -1233,7 +1233,7 @@
     // |loopBreaker| is used to avoid infinite recursions which may be caused from:
     // |notifyDependentsIntervalChanged| -> |createInstanceTimesFromSyncbase| -> |add{Begin,End}Time| -> |{begin,end}TimeChanged| -> |notifyDependentsIntervalChanged|
     // |loopBreaker| is defined as a Persistent<HeapHashSet<Member<SVGSMILElement>>>. This won't cause leaks because it is guaranteed to be empty after the root |notifyDependentsIntervalChanged| has exited.
-    DEFINE_STATIC_LOCAL(OwnPtrWillBePersistent<WillBeHeapHashSet<RawPtrWillBeMember<SVGSMILElement>>>, loopBreaker, (adoptPtrWillBeNoop(new WillBeHeapHashSet<RawPtrWillBeMember<SVGSMILElement>>())));
+    DEFINE_STATIC_LOCAL(Persistent<HeapHashSet<Member<SVGSMILElement>>>, loopBreaker, (new HeapHashSet<Member<SVGSMILElement>>()));
     if (!loopBreaker->add(this).isNewEntry)
         return;
 
diff --git a/third_party/WebKit/Source/core/svg/animation/SVGSMILElement.h b/third_party/WebKit/Source/core/svg/animation/SVGSMILElement.h
index 25afa72b..1be793cf 100644
--- a/third_party/WebKit/Source/core/svg/animation/SVGSMILElement.h
+++ b/third_party/WebKit/Source/core/svg/animation/SVGSMILElement.h
@@ -45,7 +45,7 @@
 
 // This class implements SMIL interval timing model as needed for SVG animation.
 class CORE_EXPORT SVGSMILElement : public SVGElement, public SVGTests {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(SVGSMILElement);
+    USING_GARBAGE_COLLECTED_MIXIN(SVGSMILElement);
 public:
     SVGSMILElement(const QualifiedName&, Document&);
     ~SVGSMILElement() override;
@@ -175,7 +175,7 @@
 
     // This represents conditions on elements begin or end list that need to be resolved on runtime
     // for example <animate begin="otherElement.begin + 8s; button.click" ... />
-    class Condition : public NoBaseWillBeGarbageCollectedFinalized<Condition> {
+    class Condition : public GarbageCollectedFinalized<Condition> {
     public:
         enum Type {
             EventBase,
@@ -184,9 +184,9 @@
         };
 
         Condition(Type, BeginOrEnd, const String& baseID, const String& name, SMILTime offset, int repeat = -1);
-        static PassOwnPtrWillBeRawPtr<Condition> create(Type type, BeginOrEnd beginOrEnd, const String& baseID, const String& name, SMILTime offset, int repeat = -1)
+        static RawPtr<Condition> create(Type type, BeginOrEnd beginOrEnd, const String& baseID, const String& name, SMILTime offset, int repeat = -1)
         {
-            return adoptPtrWillBeNoop(new Condition(type, beginOrEnd, baseID, name, offset, repeat));
+            return new Condition(type, beginOrEnd, baseID, name, offset, repeat);
         }
         ~Condition();
         DECLARE_TRACE();
@@ -200,7 +200,7 @@
         SVGSMILElement* syncBase() const { return m_syncBase.get(); }
         void setSyncBase(SVGSMILElement* element) { m_syncBase = element; }
         ConditionEventListener* eventListener() const { return m_eventListener.get(); }
-        void setEventListener(PassRefPtrWillBeRawPtr<ConditionEventListener>);
+        void setEventListener(RawPtr<ConditionEventListener>);
 
     private:
         Type m_type;
@@ -209,8 +209,8 @@
         String m_name;
         SMILTime m_offset;
         int m_repeat;
-        RefPtrWillBeMember<SVGSMILElement> m_syncBase;
-        RefPtrWillBeMember<ConditionEventListener> m_eventListener;
+        Member<SVGSMILElement> m_syncBase;
+        Member<ConditionEventListener> m_eventListener;
     };
     bool parseCondition(const String&, BeginOrEnd beginOrEnd);
     void parseBeginOrEnd(const String&, BeginOrEnd beginOrEnd);
@@ -239,16 +239,16 @@
     float calculateAnimationPercentAndRepeat(SMILTime elapsed, unsigned& repeat) const;
     SMILTime calculateNextProgressTime(SMILTime elapsed) const;
 
-    RawPtrWillBeMember<SVGElement> m_targetElement;
+    Member<SVGElement> m_targetElement;
 
-    WillBeHeapVector<OwnPtrWillBeMember<Condition>> m_conditions;
+    HeapVector<Member<Condition>> m_conditions;
     bool m_syncBaseConditionsConnected;
     bool m_hasEndEventConditions;
 
     bool m_isWaitingForFirstInterval;
     bool m_isScheduled;
 
-    using TimeDependentSet = WillBeHeapHashSet<RawPtrWillBeMember<SVGSMILElement>>;
+    using TimeDependentSet = HeapHashSet<Member<SVGSMILElement>>;
     TimeDependentSet m_syncBaseDependents;
 
     // Instance time lists
@@ -266,7 +266,7 @@
 
     SMILTime m_nextProgressTime;
 
-    RefPtrWillBeMember<SMILTimeContainer> m_timeContainer;
+    Member<SMILTimeContainer> m_timeContainer;
     unsigned m_documentOrderIndex;
 
     Vector<unsigned> m_repeatEventCountList;
diff --git a/third_party/WebKit/Source/core/svg/graphics/SVGImage.cpp b/third_party/WebKit/Source/core/svg/graphics/SVGImage.cpp
index 4b9ea2e..590b80a3 100644
--- a/third_party/WebKit/Source/core/svg/graphics/SVGImage.cpp
+++ b/third_party/WebKit/Source/core/svg/graphics/SVGImage.cpp
@@ -70,7 +70,7 @@
 {
     if (m_page) {
         // Store m_page in a local variable, clearing m_page, so that SVGImageChromeClient knows we're destructed.
-        OwnPtrWillBeRawPtr<Page> currentPage = m_page.release();
+        RawPtr<Page> currentPage = m_page.release();
         // Break both the loader and view references to the frame
         currentPage->willBeDestroyed();
     }
@@ -469,7 +469,7 @@
         // types.
         EventDispatchForbiddenScope::AllowUserAgentEvents allowUserAgentEvents;
 
-        DEFINE_STATIC_LOCAL(OwnPtrWillBePersistent<FrameLoaderClient>, dummyFrameLoaderClient, (EmptyFrameLoaderClient::create()));
+        DEFINE_STATIC_LOCAL(Persistent<FrameLoaderClient>, dummyFrameLoaderClient, (EmptyFrameLoaderClient::create()));
 
         if (m_page) {
             toLocalFrame(m_page->mainFrame())->loader().load(FrameLoadRequest(0, blankURL(), SubstituteData(data(), AtomicString("image/svg+xml"),
@@ -488,7 +488,7 @@
         // This will become an issue when SVGImage will be able to load other
         // SVGImage objects, but we're safe now, because SVGImage can only be
         // loaded by a top-level document.
-        OwnPtrWillBeRawPtr<Page> page;
+        RawPtr<Page> page;
         {
             TRACE_EVENT0("blink", "SVGImage::dataChanged::createPage");
             page = Page::create(pageClients);
@@ -509,7 +509,7 @@
             }
         }
 
-        RefPtrWillBeRawPtr<LocalFrame> frame = nullptr;
+        RawPtr<LocalFrame> frame = nullptr;
         {
             TRACE_EVENT0("blink", "SVGImage::dataChanged::createFrame");
             frame = LocalFrame::create(dummyFrameLoaderClient.get(), &page->frameHost(), 0);
diff --git a/third_party/WebKit/Source/core/svg/graphics/SVGImage.h b/third_party/WebKit/Source/core/svg/graphics/SVGImage.h
index a5d71c8..eb4efe0e 100644
--- a/third_party/WebKit/Source/core/svg/graphics/SVGImage.h
+++ b/third_party/WebKit/Source/core/svg/graphics/SVGImage.h
@@ -116,8 +116,8 @@
     void drawInternal(SkCanvas*, const SkPaint&, const FloatRect& fromRect, const FloatRect& toRect, RespectImageOrientationEnum,
         ImageClampingMode, const KURL&);
 
-    OwnPtrWillBePersistent<SVGImageChromeClient> m_chromeClient;
-    OwnPtrWillBePersistent<Page> m_page;
+    Persistent<SVGImageChromeClient> m_chromeClient;
+    Persistent<Page> m_page;
 
     // When an SVG image has no intrinsic size the size depends on the
     // default object size, which in turn depends on the
@@ -147,7 +147,7 @@
     }
 private:
     Image* m_image;
-    RawPtrWillBeMember<ImageObserver> m_observer;
+    Member<ImageObserver> m_observer;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/graphics/SVGImageChromeClient.cpp b/third_party/WebKit/Source/core/svg/graphics/SVGImageChromeClient.cpp
index a2556b1b..76418c6 100644
--- a/third_party/WebKit/Source/core/svg/graphics/SVGImageChromeClient.cpp
+++ b/third_party/WebKit/Source/core/svg/graphics/SVGImageChromeClient.cpp
@@ -44,9 +44,9 @@
 {
 }
 
-PassOwnPtrWillBeRawPtr<SVGImageChromeClient> SVGImageChromeClient::create(SVGImage* image)
+RawPtr<SVGImageChromeClient> SVGImageChromeClient::create(SVGImage* image)
 {
-    return adoptPtrWillBeNoop(new SVGImageChromeClient(image));
+    return new SVGImageChromeClient(image);
 }
 
 bool SVGImageChromeClient::isSVGImageChromeClient() const
@@ -106,7 +106,7 @@
     // The calls below may trigger GCs, so set up the required persistent
     // reference on the ImageResource which owns this SVGImage. By transitivity,
     // that will keep this SVGImageChromeClient object alive.
-    RawPtrWillBePersistent<ImageObserver> protect(m_image->getImageObserver());
+    Persistent<ImageObserver> protect(m_image->getImageObserver());
     m_image->frameView()->page()->animator().serviceScriptedAnimations(monotonicallyIncreasingTime());
     m_image->frameView()->updateAllLifecyclePhases();
 }
diff --git a/third_party/WebKit/Source/core/svg/graphics/SVGImageChromeClient.h b/third_party/WebKit/Source/core/svg/graphics/SVGImageChromeClient.h
index da99197..4a3c71aa 100644
--- a/third_party/WebKit/Source/core/svg/graphics/SVGImageChromeClient.h
+++ b/third_party/WebKit/Source/core/svg/graphics/SVGImageChromeClient.h
@@ -38,7 +38,7 @@
 
 class SVGImageChromeClient final : public EmptyChromeClient {
 public:
-    static PassOwnPtrWillBeRawPtr<SVGImageChromeClient> create(SVGImage*);
+    static RawPtr<SVGImageChromeClient> create(SVGImage*);
 
     bool isSVGImageChromeClient() const override;
 
diff --git a/third_party/WebKit/Source/core/svg/graphics/filters/SVGFEImage.cpp b/third_party/WebKit/Source/core/svg/graphics/filters/SVGFEImage.cpp
index a32427a..cb84c0e 100644
--- a/third_party/WebKit/Source/core/svg/graphics/filters/SVGFEImage.cpp
+++ b/third_party/WebKit/Source/core/svg/graphics/filters/SVGFEImage.cpp
@@ -41,7 +41,7 @@
 
 namespace blink {
 
-FEImage::FEImage(Filter* filter, PassRefPtr<Image> image, PassRefPtrWillBeRawPtr<SVGPreserveAspectRatio> preserveAspectRatio)
+FEImage::FEImage(Filter* filter, PassRefPtr<Image> image, RawPtr<SVGPreserveAspectRatio> preserveAspectRatio)
     : FilterEffect(filter)
     , m_image(image)
     , m_treeScope(nullptr)
@@ -50,7 +50,7 @@
     FilterEffect::setOperatingColorSpace(ColorSpaceDeviceRGB);
 }
 
-FEImage::FEImage(Filter* filter, TreeScope& treeScope, const String& href, PassRefPtrWillBeRawPtr<SVGPreserveAspectRatio> preserveAspectRatio)
+FEImage::FEImage(Filter* filter, TreeScope& treeScope, const String& href, RawPtr<SVGPreserveAspectRatio> preserveAspectRatio)
     : FilterEffect(filter)
     , m_treeScope(&treeScope)
     , m_href(href)
@@ -66,14 +66,14 @@
     FilterEffect::trace(visitor);
 }
 
-PassRefPtrWillBeRawPtr<FEImage> FEImage::createWithImage(Filter* filter, PassRefPtr<Image> image, PassRefPtrWillBeRawPtr<SVGPreserveAspectRatio> preserveAspectRatio)
+RawPtr<FEImage> FEImage::createWithImage(Filter* filter, PassRefPtr<Image> image, RawPtr<SVGPreserveAspectRatio> preserveAspectRatio)
 {
-    return adoptRefWillBeNoop(new FEImage(filter, image, preserveAspectRatio));
+    return new FEImage(filter, image, preserveAspectRatio);
 }
 
-PassRefPtrWillBeRawPtr<FEImage> FEImage::createWithIRIReference(Filter* filter, TreeScope& treeScope, const String& href, PassRefPtrWillBeRawPtr<SVGPreserveAspectRatio> preserveAspectRatio)
+RawPtr<FEImage> FEImage::createWithIRIReference(Filter* filter, TreeScope& treeScope, const String& href, RawPtr<SVGPreserveAspectRatio> preserveAspectRatio)
 {
-    return adoptRefWillBeNoop(new FEImage(filter, treeScope, href, preserveAspectRatio));
+    return new FEImage(filter, treeScope, href, preserveAspectRatio);
 }
 
 static FloatRect getLayoutObjectRepaintRect(LayoutObject* layoutObject)
diff --git a/third_party/WebKit/Source/core/svg/graphics/filters/SVGFEImage.h b/third_party/WebKit/Source/core/svg/graphics/filters/SVGFEImage.h
index 4b9f8875..c498bed 100644
--- a/third_party/WebKit/Source/core/svg/graphics/filters/SVGFEImage.h
+++ b/third_party/WebKit/Source/core/svg/graphics/filters/SVGFEImage.h
@@ -35,8 +35,8 @@
 
 class FEImage final : public FilterEffect {
 public:
-    static PassRefPtrWillBeRawPtr<FEImage> createWithImage(Filter*, PassRefPtr<Image>, PassRefPtrWillBeRawPtr<SVGPreserveAspectRatio>);
-    static PassRefPtrWillBeRawPtr<FEImage> createWithIRIReference(Filter*, TreeScope&, const String&, PassRefPtrWillBeRawPtr<SVGPreserveAspectRatio>);
+    static RawPtr<FEImage> createWithImage(Filter*, PassRefPtr<Image>, RawPtr<SVGPreserveAspectRatio>);
+    static RawPtr<FEImage> createWithIRIReference(Filter*, TreeScope&, const String&, RawPtr<SVGPreserveAspectRatio>);
 
     FloatRect determineAbsolutePaintRect(const FloatRect& requestedRect) override;
 
@@ -53,8 +53,8 @@
 
 private:
     ~FEImage() override {}
-    FEImage(Filter*, PassRefPtr<Image>, PassRefPtrWillBeRawPtr<SVGPreserveAspectRatio>);
-    FEImage(Filter*, TreeScope&, const String&, PassRefPtrWillBeRawPtr<SVGPreserveAspectRatio>);
+    FEImage(Filter*, PassRefPtr<Image>, RawPtr<SVGPreserveAspectRatio>);
+    FEImage(Filter*, TreeScope&, const String&, RawPtr<SVGPreserveAspectRatio>);
     LayoutObject* referencedLayoutObject() const;
 
     PassRefPtr<SkImageFilter> createImageFilterForLayoutObject(const LayoutObject&);
@@ -62,9 +62,9 @@
     RefPtr<Image> m_image;
 
     // m_treeScope will never be a dangling reference. See https://bugs.webkit.org/show_bug.cgi?id=99243
-    RawPtrWillBeMember<TreeScope> m_treeScope;
+    Member<TreeScope> m_treeScope;
     String m_href;
-    RefPtrWillBeMember<SVGPreserveAspectRatio> m_preserveAspectRatio;
+    Member<SVGPreserveAspectRatio> m_preserveAspectRatio;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/graphics/filters/SVGFilterBuilder.cpp b/third_party/WebKit/Source/core/svg/graphics/filters/SVGFilterBuilder.cpp
index 65eba36..7ac401b1 100644
--- a/third_party/WebKit/Source/core/svg/graphics/filters/SVGFilterBuilder.cpp
+++ b/third_party/WebKit/Source/core/svg/graphics/filters/SVGFilterBuilder.cpp
@@ -69,9 +69,9 @@
     m_effectReferences.add(effect, FilterEffectSet());
 }
 
-void SVGFilterGraphNodeMap::addPrimitive(LayoutObject* object, PassRefPtrWillBeRawPtr<FilterEffect> prpEffect)
+void SVGFilterGraphNodeMap::addPrimitive(LayoutObject* object, RawPtr<FilterEffect> prpEffect)
 {
-    RefPtrWillBeRawPtr<FilterEffect> effect = prpEffect;
+    RawPtr<FilterEffect> effect = prpEffect;
 
     // The effect must be a newly created filter effect.
     ASSERT(!m_effectReferences.contains(effect));
@@ -114,13 +114,13 @@
 }
 
 SVGFilterBuilder::SVGFilterBuilder(
-    PassRefPtrWillBeRawPtr<FilterEffect> sourceGraphic,
-    PassRefPtrWillBeRawPtr<SVGFilterGraphNodeMap> nodeMap,
+    RawPtr<FilterEffect> sourceGraphic,
+    RawPtr<SVGFilterGraphNodeMap> nodeMap,
     const SkPaint* fillPaint,
     const SkPaint* strokePaint)
     : m_nodeMap(nodeMap)
 {
-    RefPtrWillBeRawPtr<FilterEffect> sourceGraphicRef = sourceGraphic;
+    RawPtr<FilterEffect> sourceGraphicRef = sourceGraphic;
     m_builtinEffects.add(FilterInputKeywords::getSourceGraphic(), sourceGraphicRef);
     m_builtinEffects.add(FilterInputKeywords::sourceAlpha(), SourceAlpha::create(sourceGraphicRef.get()));
     if (fillPaint)
@@ -147,7 +147,7 @@
     // No layout has been performed, try to determine the property value
     // "manually" (used by external SVG files.)
     if (const StylePropertySet* propertySet = element.presentationAttributeStyle()) {
-        RefPtrWillBeRawPtr<CSSValue> cssValue = propertySet->getPropertyCSSValue(CSSPropertyColorInterpolationFilters);
+        RawPtr<CSSValue> cssValue = propertySet->getPropertyCSSValue(CSSPropertyColorInterpolationFilters);
         if (cssValue && cssValue->isPrimitiveValue()) {
             const CSSPrimitiveValue& primitiveValue = *((CSSPrimitiveValue*)cssValue.get());
             return primitiveValue.convertTo<EColorInterpolation>();
@@ -167,7 +167,7 @@
             continue;
 
         SVGFilterPrimitiveStandardAttributes* effectElement = static_cast<SVGFilterPrimitiveStandardAttributes*>(element);
-        RefPtrWillBeRawPtr<FilterEffect> effect = effectElement->build(this, filter);
+        RawPtr<FilterEffect> effect = effectElement->build(this, filter);
         if (!effect)
             continue;
 
@@ -185,7 +185,7 @@
     }
 }
 
-void SVGFilterBuilder::add(const AtomicString& id, PassRefPtrWillBeRawPtr<FilterEffect> effect)
+void SVGFilterBuilder::add(const AtomicString& id, RawPtr<FilterEffect> effect)
 {
     if (id.isEmpty()) {
         m_lastEffect = effect;
diff --git a/third_party/WebKit/Source/core/svg/graphics/filters/SVGFilterBuilder.h b/third_party/WebKit/Source/core/svg/graphics/filters/SVGFilterBuilder.h
index c258b1e..35a2dd6 100644
--- a/third_party/WebKit/Source/core/svg/graphics/filters/SVGFilterBuilder.h
+++ b/third_party/WebKit/Source/core/svg/graphics/filters/SVGFilterBuilder.h
@@ -39,17 +39,17 @@
 
 // A map from LayoutObject -> FilterEffect and FilterEffect -> dependent (downstream) FilterEffects ("reverse DAG").
 // Used during invalidations from changes to the primitives (graph nodes).
-class SVGFilterGraphNodeMap final : public RefCountedWillBeGarbageCollectedFinalized<SVGFilterGraphNodeMap> {
+class SVGFilterGraphNodeMap final : public GarbageCollectedFinalized<SVGFilterGraphNodeMap> {
 public:
-    static PassRefPtrWillBeRawPtr<SVGFilterGraphNodeMap> create()
+    static RawPtr<SVGFilterGraphNodeMap> create()
     {
         return adoptRefWillBeNoop(new SVGFilterGraphNodeMap);
     }
 
-    typedef WillBeHeapHashSet<RawPtrWillBeMember<FilterEffect>> FilterEffectSet;
+    typedef HeapHashSet<Member<FilterEffect>> FilterEffectSet;
 
     void addBuiltinEffect(FilterEffect*);
-    void addPrimitive(LayoutObject*, PassRefPtrWillBeRawPtr<FilterEffect>);
+    void addPrimitive(LayoutObject*, RawPtr<FilterEffect>);
 
     inline FilterEffectSet& effectReferences(FilterEffect* effect)
     {
@@ -70,16 +70,16 @@
 
     // The value is a list, which contains those filter effects,
     // which depends on the key filter effect.
-    WillBeHeapHashMap<RefPtrWillBeMember<FilterEffect>, FilterEffectSet> m_effectReferences;
-    WillBeHeapHashMap<LayoutObject*, RawPtrWillBeMember<FilterEffect>> m_effectRenderer;
+    HeapHashMap<Member<FilterEffect>, FilterEffectSet> m_effectReferences;
+    HeapHashMap<LayoutObject*, Member<FilterEffect>> m_effectRenderer;
 };
 
 class SVGFilterBuilder {
     STACK_ALLOCATED();
 public:
     SVGFilterBuilder(
-        PassRefPtrWillBeRawPtr<FilterEffect> sourceGraphic,
-        PassRefPtrWillBeRawPtr<SVGFilterGraphNodeMap> = nullptr,
+        RawPtr<FilterEffect> sourceGraphic,
+        RawPtr<SVGFilterGraphNodeMap> = nullptr,
         const SkPaint* fillPaint = nullptr,
         const SkPaint* strokePaint = nullptr);
 
@@ -89,16 +89,16 @@
     FilterEffect* lastEffect() const { return m_lastEffect.get(); }
 
 private:
-    void add(const AtomicString& id, PassRefPtrWillBeRawPtr<FilterEffect>);
+    void add(const AtomicString& id, RawPtr<FilterEffect>);
     void addBuiltinEffects();
 
-    typedef WillBeHeapHashMap<AtomicString, RefPtrWillBeMember<FilterEffect>> NamedFilterEffectMap;
+    typedef HeapHashMap<AtomicString, Member<FilterEffect>> NamedFilterEffectMap;
 
     NamedFilterEffectMap m_builtinEffects;
     NamedFilterEffectMap m_namedEffects;
 
-    RefPtrWillBeMember<FilterEffect> m_lastEffect;
-    RefPtrWillBeMember<SVGFilterGraphNodeMap> m_nodeMap;
+    Member<FilterEffect> m_lastEffect;
+    Member<SVGFilterGraphNodeMap> m_nodeMap;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/properties/SVGAnimatedProperty.h b/third_party/WebKit/Source/core/svg/properties/SVGAnimatedProperty.h
index db729ab..9a7ea3c 100644
--- a/third_party/WebKit/Source/core/svg/properties/SVGAnimatedProperty.h
+++ b/third_party/WebKit/Source/core/svg/properties/SVGAnimatedProperty.h
@@ -45,7 +45,7 @@
 
 class SVGElement;
 
-class SVGAnimatedPropertyBase : public RefCountedWillBeGarbageCollectedFinalized<SVGAnimatedPropertyBase> {
+class SVGAnimatedPropertyBase : public GarbageCollectedFinalized<SVGAnimatedPropertyBase> {
     WTF_MAKE_NONCOPYABLE(SVGAnimatedPropertyBase);
 public:
     virtual ~SVGAnimatedPropertyBase();
@@ -54,8 +54,8 @@
     virtual const SVGPropertyBase& baseValueBase() const = 0;
     virtual bool isAnimating() const = 0;
 
-    virtual PassRefPtrWillBeRawPtr<SVGPropertyBase> createAnimatedValue() = 0;
-    virtual void setAnimatedValue(PassRefPtrWillBeRawPtr<SVGPropertyBase>) = 0;
+    virtual RawPtr<SVGPropertyBase> createAnimatedValue() = 0;
+    virtual void setAnimatedValue(RawPtr<SVGPropertyBase>) = 0;
     virtual void animationEnded();
 
     virtual SVGParsingError setBaseValueAsString(const String&) = 0;
@@ -103,7 +103,7 @@
     // This raw pointer is safe since the SVG element is guaranteed to be kept
     // alive by a V8 wrapper.
     // See http://crbug.com/528275 for the detail.
-    RawPtrWillBeUntracedMember<SVGElement> m_contextElement;
+    UntracedMember<SVGElement> m_contextElement;
 
     const QualifiedName& m_attributeName;
 };
@@ -146,14 +146,14 @@
         return m_baseValue->setValueAsString(value);
     }
 
-    PassRefPtrWillBeRawPtr<SVGPropertyBase> createAnimatedValue() override
+    RawPtr<SVGPropertyBase> createAnimatedValue() override
     {
         return m_baseValue->clone();
     }
 
-    void setAnimatedValue(PassRefPtrWillBeRawPtr<SVGPropertyBase> passValue) override
+    void setAnimatedValue(RawPtr<SVGPropertyBase> passValue) override
     {
-        RefPtrWillBeRawPtr<SVGPropertyBase> value = passValue;
+        RawPtr<SVGPropertyBase> value = passValue;
         ASSERT(value->type() == Property::classType());
         m_currentValue = static_pointer_cast<Property>(value.release());
     }
@@ -173,15 +173,15 @@
     }
 
 protected:
-    SVGAnimatedPropertyCommon(SVGElement* contextElement, const QualifiedName& attributeName, PassRefPtrWillBeRawPtr<Property> initialValue)
+    SVGAnimatedPropertyCommon(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<Property> initialValue)
         : SVGAnimatedPropertyBase(Property::classType(), contextElement, attributeName)
         , m_baseValue(initialValue)
     {
     }
 
 private:
-    RefPtrWillBeMember<Property> m_baseValue;
-    RefPtrWillBeMember<Property> m_currentValue;
+    Member<Property> m_baseValue;
+    Member<Property> m_currentValue;
 };
 
 // Implementation of SVGAnimatedProperty which uses primitive types.
@@ -234,7 +234,7 @@
     }
 
 protected:
-    SVGAnimatedProperty(SVGElement* contextElement, const QualifiedName& attributeName, PassRefPtrWillBeRawPtr<Property> initialValue)
+    SVGAnimatedProperty(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<Property> initialValue)
         : SVGAnimatedPropertyCommon<Property>(contextElement, attributeName, initialValue)
         , m_baseValueUpdated(false)
     {
@@ -250,12 +250,12 @@
 template <typename Property, typename TearOffType>
 class SVGAnimatedProperty<Property, TearOffType, void> : public SVGAnimatedPropertyCommon<Property> {
 public:
-    static PassRefPtrWillBeRawPtr<SVGAnimatedProperty<Property>> create(SVGElement* contextElement, const QualifiedName& attributeName, PassRefPtrWillBeRawPtr<Property> initialValue)
+    static RawPtr<SVGAnimatedProperty<Property>> create(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<Property> initialValue)
     {
-        return adoptRefWillBeNoop(new SVGAnimatedProperty<Property>(contextElement, attributeName, initialValue));
+        return new SVGAnimatedProperty<Property>(contextElement, attributeName, initialValue);
     }
 
-    void setAnimatedValue(PassRefPtrWillBeRawPtr<SVGPropertyBase> value) override
+    void setAnimatedValue(RawPtr<SVGPropertyBase> value) override
     {
         SVGAnimatedPropertyCommon<Property>::setAnimatedValue(value);
         updateAnimValTearOffIfNeeded();
@@ -305,7 +305,7 @@
     }
 
 protected:
-    SVGAnimatedProperty(SVGElement* contextElement, const QualifiedName& attributeName, PassRefPtrWillBeRawPtr<Property> initialValue)
+    SVGAnimatedProperty(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<Property> initialValue)
         : SVGAnimatedPropertyCommon<Property>(contextElement, attributeName, initialValue)
     {
     }
@@ -322,8 +322,8 @@
     // When animated:
     //     m_animValTearOff targets m_currentValue.
     //     m_baseValTearOff targets m_baseValue.
-    RefPtrWillBeMember<TearOffType> m_baseValTearOff;
-    RefPtrWillBeMember<TearOffType> m_animValTearOff;
+    Member<TearOffType> m_baseValTearOff;
+    Member<TearOffType> m_animValTearOff;
 };
 
 // Implementation of SVGAnimatedProperty which doesn't use tear-off value types.
@@ -332,9 +332,9 @@
 template <typename Property>
 class SVGAnimatedProperty<Property, void, void> : public SVGAnimatedPropertyCommon<Property> {
 public:
-    static PassRefPtrWillBeRawPtr<SVGAnimatedProperty<Property>> create(SVGElement* contextElement, const QualifiedName& attributeName, PassRefPtrWillBeRawPtr<Property> initialValue)
+    static RawPtr<SVGAnimatedProperty<Property>> create(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<Property> initialValue)
     {
-        return adoptRefWillBeNoop(new SVGAnimatedProperty<Property>(contextElement, attributeName, initialValue));
+        return new SVGAnimatedProperty<Property>(contextElement, attributeName, initialValue);
     }
 
     bool needsSynchronizeAttribute() override
@@ -344,7 +344,7 @@
     }
 
 protected:
-    SVGAnimatedProperty(SVGElement* contextElement, const QualifiedName& attributeName, PassRefPtrWillBeRawPtr<Property> initialValue)
+    SVGAnimatedProperty(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<Property> initialValue)
         : SVGAnimatedPropertyCommon<Property>(contextElement, attributeName, initialValue)
     {
     }
diff --git a/third_party/WebKit/Source/core/svg/properties/SVGListPropertyHelper.h b/third_party/WebKit/Source/core/svg/properties/SVGListPropertyHelper.h
index 967a1f4..69e3b1f 100644
--- a/third_party/WebKit/Source/core/svg/properties/SVGListPropertyHelper.h
+++ b/third_party/WebKit/Source/core/svg/properties/SVGListPropertyHelper.h
@@ -77,7 +77,7 @@
     class ConstIterator {
         STACK_ALLOCATED();
     private:
-        typedef typename WillBeHeapVector<RefPtrWillBeMember<ItemPropertyType>>::const_iterator WrappedType;
+        typedef typename HeapVector<Member<ItemPropertyType>>::const_iterator WrappedType;
 
     public:
         ConstIterator(WrappedType it)
@@ -90,8 +90,8 @@
         bool operator==(const ConstIterator& o) const { return m_it == o.m_it; }
         bool operator!=(const ConstIterator& o) const { return m_it != o.m_it; }
 
-        PassRefPtrWillBeRawPtr<ItemPropertyType> operator*() { return *m_it; }
-        PassRefPtrWillBeRawPtr<ItemPropertyType> operator->() { return *m_it; }
+        RawPtr<ItemPropertyType> operator*() { return *m_it; }
+        RawPtr<ItemPropertyType> operator->() { return *m_it; }
 
     private:
         WrappedType m_it;
@@ -112,9 +112,9 @@
         return ConstIterator(m_values.end());
     }
 
-    void append(PassRefPtrWillBeRawPtr<ItemPropertyType> passNewItem)
+    void append(RawPtr<ItemPropertyType> passNewItem)
     {
-        RefPtrWillBeRawPtr<ItemPropertyType> newItem = passNewItem;
+        RawPtr<ItemPropertyType> newItem = passNewItem;
 
         ASSERT(newItem);
         m_values.append(newItem);
@@ -132,9 +132,9 @@
         return !length();
     }
 
-    virtual PassRefPtrWillBeRawPtr<Derived> clone()
+    virtual RawPtr<Derived> clone()
     {
-        RefPtrWillBeRawPtr<Derived> svgList = Derived::create();
+        RawPtr<Derived> svgList = Derived::create();
         svgList->deepCopy(static_cast<Derived*>(this));
         return svgList.release();
     }
@@ -148,12 +148,12 @@
 
     void clear();
 
-    PassRefPtrWillBeRawPtr<ItemPropertyType> initialize(PassRefPtrWillBeRawPtr<ItemPropertyType>);
-    PassRefPtrWillBeRawPtr<ItemPropertyType> getItem(size_t, ExceptionState&);
-    PassRefPtrWillBeRawPtr<ItemPropertyType> insertItemBefore(PassRefPtrWillBeRawPtr<ItemPropertyType>, size_t);
-    PassRefPtrWillBeRawPtr<ItemPropertyType> removeItem(size_t, ExceptionState&);
-    PassRefPtrWillBeRawPtr<ItemPropertyType> appendItem(PassRefPtrWillBeRawPtr<ItemPropertyType>);
-    PassRefPtrWillBeRawPtr<ItemPropertyType> replaceItem(PassRefPtrWillBeRawPtr<ItemPropertyType>, size_t, ExceptionState&);
+    RawPtr<ItemPropertyType> initialize(RawPtr<ItemPropertyType>);
+    RawPtr<ItemPropertyType> getItem(size_t, ExceptionState&);
+    RawPtr<ItemPropertyType> insertItemBefore(RawPtr<ItemPropertyType>, size_t);
+    RawPtr<ItemPropertyType> removeItem(size_t, ExceptionState&);
+    RawPtr<ItemPropertyType> appendItem(RawPtr<ItemPropertyType>);
+    RawPtr<ItemPropertyType> replaceItem(RawPtr<ItemPropertyType>, size_t, ExceptionState&);
 
     DEFINE_INLINE_VIRTUAL_TRACE()
     {
@@ -162,27 +162,27 @@
     }
 
 protected:
-    void deepCopy(PassRefPtrWillBeRawPtr<Derived>);
+    void deepCopy(RawPtr<Derived>);
 
-    bool adjustFromToListValues(PassRefPtrWillBeRawPtr<Derived> fromList, PassRefPtrWillBeRawPtr<Derived> toList, float percentage, AnimationMode);
+    bool adjustFromToListValues(RawPtr<Derived> fromList, RawPtr<Derived> toList, float percentage, AnimationMode);
 
-    virtual PassRefPtrWillBeRawPtr<ItemPropertyType> createPaddingItem() const
+    virtual RawPtr<ItemPropertyType> createPaddingItem() const
     {
         return ItemPropertyType::create();
     }
 
 private:
     inline bool checkIndexBound(size_t, ExceptionState&);
-    size_t findItem(PassRefPtrWillBeRawPtr<ItemPropertyType>);
+    size_t findItem(RawPtr<ItemPropertyType>);
 
-    WillBeHeapVector<RefPtrWillBeMember<ItemPropertyType>> m_values;
+    HeapVector<Member<ItemPropertyType>> m_values;
 
-    static PassRefPtrWillBeRawPtr<Derived> toDerived(PassRefPtrWillBeRawPtr<SVGPropertyBase> passBase)
+    static RawPtr<Derived> toDerived(RawPtr<SVGPropertyBase> passBase)
     {
         if (!passBase)
             return nullptr;
 
-        RefPtrWillBeRawPtr<SVGPropertyBase> base = passBase;
+        RawPtr<SVGPropertyBase> base = passBase;
         ASSERT(base->type() == Derived::classType());
         return static_pointer_cast<Derived>(base);
     }
@@ -207,8 +207,8 @@
 void SVGListPropertyHelper<Derived, ItemProperty>::clear()
 {
     // detach all list items as they are no longer part of this list
-    typename WillBeHeapVector<RefPtrWillBeMember<ItemPropertyType>>::const_iterator it = m_values.begin();
-    typename WillBeHeapVector<RefPtrWillBeMember<ItemPropertyType>>::const_iterator itEnd = m_values.end();
+    typename HeapVector<Member<ItemPropertyType>>::const_iterator it = m_values.begin();
+    typename HeapVector<Member<ItemPropertyType>>::const_iterator itEnd = m_values.end();
     for (; it != itEnd; ++it) {
         ASSERT((*it)->ownerList() == this);
         (*it)->setOwnerList(0);
@@ -218,9 +218,9 @@
 }
 
 template<typename Derived, typename ItemProperty>
-PassRefPtrWillBeRawPtr<ItemProperty> SVGListPropertyHelper<Derived, ItemProperty>::initialize(PassRefPtrWillBeRawPtr<ItemProperty> passNewItem)
+RawPtr<ItemProperty> SVGListPropertyHelper<Derived, ItemProperty>::initialize(RawPtr<ItemProperty> passNewItem)
 {
-    RefPtrWillBeRawPtr<ItemPropertyType> newItem = passNewItem;
+    RawPtr<ItemPropertyType> newItem = passNewItem;
 
     // Spec: Clears all existing current items from the list and re-initializes the list to hold the single item specified by the parameter.
     clear();
@@ -229,7 +229,7 @@
 }
 
 template<typename Derived, typename ItemProperty>
-PassRefPtrWillBeRawPtr<ItemProperty> SVGListPropertyHelper<Derived, ItemProperty>::getItem(size_t index, ExceptionState& exceptionState)
+RawPtr<ItemProperty> SVGListPropertyHelper<Derived, ItemProperty>::getItem(size_t index, ExceptionState& exceptionState)
 {
     if (!checkIndexBound(index, exceptionState))
         return nullptr;
@@ -240,13 +240,13 @@
 }
 
 template<typename Derived, typename ItemProperty>
-PassRefPtrWillBeRawPtr<ItemProperty> SVGListPropertyHelper<Derived, ItemProperty>::insertItemBefore(PassRefPtrWillBeRawPtr<ItemProperty> passNewItem, size_t index)
+RawPtr<ItemProperty> SVGListPropertyHelper<Derived, ItemProperty>::insertItemBefore(RawPtr<ItemProperty> passNewItem, size_t index)
 {
     // Spec: If the index is greater than or equal to length, then the new item is appended to the end of the list.
     if (index > m_values.size())
         index = m_values.size();
 
-    RefPtrWillBeRawPtr<ItemPropertyType> newItem = passNewItem;
+    RawPtr<ItemPropertyType> newItem = passNewItem;
 
     // Spec: Inserts a new item into the list at the specified position. The index of the item before which the new item is to be
     // inserted. The first item is number 0. If the index is equal to 0, then the new item is inserted at the front of the list.
@@ -257,23 +257,23 @@
 }
 
 template<typename Derived, typename ItemProperty>
-PassRefPtrWillBeRawPtr<ItemProperty> SVGListPropertyHelper<Derived, ItemProperty>::removeItem(size_t index, ExceptionState& exceptionState)
+RawPtr<ItemProperty> SVGListPropertyHelper<Derived, ItemProperty>::removeItem(size_t index, ExceptionState& exceptionState)
 {
     if (index >= m_values.size()) {
         exceptionState.throwDOMException(IndexSizeError, ExceptionMessages::indexExceedsMaximumBound("index", index, m_values.size()));
         return nullptr;
     }
     ASSERT(m_values.at(index)->ownerList() == this);
-    RefPtrWillBeRawPtr<ItemPropertyType> oldItem = m_values.at(index);
+    RawPtr<ItemPropertyType> oldItem = m_values.at(index);
     m_values.remove(index);
     oldItem->setOwnerList(0);
     return oldItem.release();
 }
 
 template<typename Derived, typename ItemProperty>
-PassRefPtrWillBeRawPtr<ItemProperty> SVGListPropertyHelper<Derived, ItemProperty>::appendItem(PassRefPtrWillBeRawPtr<ItemProperty> passNewItem)
+RawPtr<ItemProperty> SVGListPropertyHelper<Derived, ItemProperty>::appendItem(RawPtr<ItemProperty> passNewItem)
 {
-    RefPtrWillBeRawPtr<ItemPropertyType> newItem = passNewItem;
+    RawPtr<ItemPropertyType> newItem = passNewItem;
 
     // Append the value and wrapper at the end of the list.
     append(newItem);
@@ -282,12 +282,12 @@
 }
 
 template<typename Derived, typename ItemProperty>
-PassRefPtrWillBeRawPtr<ItemProperty> SVGListPropertyHelper<Derived, ItemProperty>::replaceItem(PassRefPtrWillBeRawPtr<ItemProperty> passNewItem, size_t index, ExceptionState& exceptionState)
+RawPtr<ItemProperty> SVGListPropertyHelper<Derived, ItemProperty>::replaceItem(RawPtr<ItemProperty> passNewItem, size_t index, ExceptionState& exceptionState)
 {
     if (!checkIndexBound(index, exceptionState))
         return nullptr;
 
-    RefPtrWillBeRawPtr<ItemPropertyType> newItem = passNewItem;
+    RawPtr<ItemPropertyType> newItem = passNewItem;
 
     if (m_values.isEmpty()) {
         // 'newItem' already lived in our list, we removed it, and now we're empty, which means there's nothing to replace.
@@ -296,7 +296,7 @@
     }
 
     // Update the value at the desired position 'index'.
-    RefPtrWillBeMember<ItemPropertyType>& position = m_values[index];
+    Member<ItemPropertyType>& position = m_values[index];
     ASSERT(position->ownerList() == this);
     position->setOwnerList(0);
     position = newItem;
@@ -317,29 +317,29 @@
 }
 
 template<typename Derived, typename ItemProperty>
-size_t SVGListPropertyHelper<Derived, ItemProperty>::findItem(PassRefPtrWillBeRawPtr<ItemPropertyType> item)
+size_t SVGListPropertyHelper<Derived, ItemProperty>::findItem(RawPtr<ItemPropertyType> item)
 {
     return m_values.find(item);
 }
 
 template<typename Derived, typename ItemProperty>
-void SVGListPropertyHelper<Derived, ItemProperty>::deepCopy(PassRefPtrWillBeRawPtr<Derived> passFrom)
+void SVGListPropertyHelper<Derived, ItemProperty>::deepCopy(RawPtr<Derived> passFrom)
 {
-    RefPtrWillBeRawPtr<Derived> from = passFrom;
+    RawPtr<Derived> from = passFrom;
 
     clear();
-    typename WillBeHeapVector<RefPtrWillBeMember<ItemPropertyType>>::const_iterator it = from->m_values.begin();
-    typename WillBeHeapVector<RefPtrWillBeMember<ItemPropertyType>>::const_iterator itEnd = from->m_values.end();
+    typename HeapVector<Member<ItemPropertyType>>::const_iterator it = from->m_values.begin();
+    typename HeapVector<Member<ItemPropertyType>>::const_iterator itEnd = from->m_values.end();
     for (; it != itEnd; ++it) {
         append((*it)->clone());
     }
 }
 
 template<typename Derived, typename ItemProperty>
-bool SVGListPropertyHelper<Derived, ItemProperty>::adjustFromToListValues(PassRefPtrWillBeRawPtr<Derived> passFromList, PassRefPtrWillBeRawPtr<Derived> passToList, float percentage, AnimationMode mode)
+bool SVGListPropertyHelper<Derived, ItemProperty>::adjustFromToListValues(RawPtr<Derived> passFromList, RawPtr<Derived> passToList, float percentage, AnimationMode mode)
 {
-    RefPtrWillBeRawPtr<Derived> fromList = passFromList;
-    RefPtrWillBeRawPtr<Derived> toList = passToList;
+    RawPtr<Derived> fromList = passFromList;
+    RawPtr<Derived> toList = passToList;
 
     // If no 'to' value is given, nothing to animate.
     size_t toListSize = toList->length();
diff --git a/third_party/WebKit/Source/core/svg/properties/SVGListPropertyTearOffHelper.h b/third_party/WebKit/Source/core/svg/properties/SVGListPropertyTearOffHelper.h
index 2ddd703..d189f6c 100644
--- a/third_party/WebKit/Source/core/svg/properties/SVGListPropertyTearOffHelper.h
+++ b/third_party/WebKit/Source/core/svg/properties/SVGListPropertyTearOffHelper.h
@@ -45,9 +45,9 @@
     typedef ItemProperty ItemPropertyType;
     typedef typename ItemPropertyType::TearOffType ItemTearOffType;
 
-    static PassRefPtrWillBeRawPtr<ItemPropertyType> getValueForInsertionFromTearOff(PassRefPtrWillBeRawPtr<ItemTearOffType> passNewItem, SVGElement* contextElement, const QualifiedName& attributeName)
+    static RawPtr<ItemPropertyType> getValueForInsertionFromTearOff(RawPtr<ItemTearOffType> passNewItem, SVGElement* contextElement, const QualifiedName& attributeName)
     {
-        RefPtrWillBeRawPtr<ItemTearOffType> newItem = passNewItem;
+        RawPtr<ItemTearOffType> newItem = passNewItem;
 
         // |newItem| is immutable, OR
         // |newItem| belongs to a SVGElement, but it does not belong to an animated list
@@ -67,7 +67,7 @@
         return newItem->target();
     }
 
-    static PassRefPtrWillBeRawPtr<ItemTearOffType> createTearOff(PassRefPtrWillBeRawPtr<ItemPropertyType> value, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName)
+    static RawPtr<ItemTearOffType> createTearOff(RawPtr<ItemPropertyType> value, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName)
     {
         return ItemTearOffType::create(value, contextElement, propertyIsAnimVal, attributeName);
     }
@@ -99,9 +99,9 @@
         toDerived()->target()->clear();
     }
 
-    PassRefPtrWillBeRawPtr<ItemTearOffType> initialize(PassRefPtrWillBeRawPtr<ItemTearOffType> passItem, ExceptionState& exceptionState)
+    RawPtr<ItemTearOffType> initialize(RawPtr<ItemTearOffType> passItem, ExceptionState& exceptionState)
     {
-        RefPtrWillBeRawPtr<ItemTearOffType> item = passItem;
+        RawPtr<ItemTearOffType> item = passItem;
 
         if (toDerived()->isImmutable()) {
             exceptionState.throwDOMException(NoModificationAllowedError, "The object is read-only.");
@@ -110,21 +110,21 @@
 
         ASSERT(item);
 
-        RefPtrWillBeRawPtr<ItemPropertyType> value = toDerived()->target()->initialize(getValueForInsertionFromTearOff(item));
+        RawPtr<ItemPropertyType> value = toDerived()->target()->initialize(getValueForInsertionFromTearOff(item));
         toDerived()->commitChange();
 
         return createItemTearOff(value.release());
     }
 
-    PassRefPtrWillBeRawPtr<ItemTearOffType> getItem(unsigned long index, ExceptionState& exceptionState)
+    RawPtr<ItemTearOffType> getItem(unsigned long index, ExceptionState& exceptionState)
     {
-        RefPtrWillBeRawPtr<ItemPropertyType> value = toDerived()->target()->getItem(index, exceptionState);
+        RawPtr<ItemPropertyType> value = toDerived()->target()->getItem(index, exceptionState);
         return createItemTearOff(value.release());
     }
 
-    PassRefPtrWillBeRawPtr<ItemTearOffType> insertItemBefore(PassRefPtrWillBeRawPtr<ItemTearOffType> passItem, unsigned long index, ExceptionState& exceptionState)
+    RawPtr<ItemTearOffType> insertItemBefore(RawPtr<ItemTearOffType> passItem, unsigned long index, ExceptionState& exceptionState)
     {
-        RefPtrWillBeRawPtr<ItemTearOffType> item = passItem;
+        RawPtr<ItemTearOffType> item = passItem;
 
         if (toDerived()->isImmutable()) {
             exceptionState.throwDOMException(NoModificationAllowedError, "The object is read-only.");
@@ -133,15 +133,15 @@
 
         ASSERT(item);
 
-        RefPtrWillBeRawPtr<ItemPropertyType> value = toDerived()->target()->insertItemBefore(getValueForInsertionFromTearOff(item), index);
+        RawPtr<ItemPropertyType> value = toDerived()->target()->insertItemBefore(getValueForInsertionFromTearOff(item), index);
         toDerived()->commitChange();
 
         return createItemTearOff(value.release());
     }
 
-    PassRefPtrWillBeRawPtr<ItemTearOffType> replaceItem(PassRefPtrWillBeRawPtr<ItemTearOffType> passItem, unsigned long index, ExceptionState& exceptionState)
+    RawPtr<ItemTearOffType> replaceItem(RawPtr<ItemTearOffType> passItem, unsigned long index, ExceptionState& exceptionState)
     {
-        RefPtrWillBeRawPtr<ItemTearOffType> item = passItem;
+        RawPtr<ItemTearOffType> item = passItem;
 
         if (toDerived()->isImmutable()) {
             exceptionState.throwDOMException(NoModificationAllowedError, "The object is read-only.");
@@ -150,34 +150,34 @@
 
         ASSERT(item);
 
-        RefPtrWillBeRawPtr<ItemPropertyType> value = toDerived()->target()->replaceItem(getValueForInsertionFromTearOff(item), index, exceptionState);
+        RawPtr<ItemPropertyType> value = toDerived()->target()->replaceItem(getValueForInsertionFromTearOff(item), index, exceptionState);
         toDerived()->commitChange();
 
         return createItemTearOff(value.release());
     }
 
-    bool anonymousIndexedSetter(unsigned index, PassRefPtrWillBeRawPtr<ItemTearOffType> passItem, ExceptionState& exceptionState)
+    bool anonymousIndexedSetter(unsigned index, RawPtr<ItemTearOffType> passItem, ExceptionState& exceptionState)
     {
         replaceItem(passItem, index, exceptionState);
         return true;
     }
 
-    PassRefPtrWillBeRawPtr<ItemTearOffType> removeItem(unsigned long index, ExceptionState& exceptionState)
+    RawPtr<ItemTearOffType> removeItem(unsigned long index, ExceptionState& exceptionState)
     {
         if (toDerived()->isImmutable()) {
             exceptionState.throwDOMException(NoModificationAllowedError, "The object is read-only.");
             return nullptr;
         }
 
-        RefPtrWillBeRawPtr<ItemPropertyType> value = toDerived()->target()->removeItem(index, exceptionState);
+        RawPtr<ItemPropertyType> value = toDerived()->target()->removeItem(index, exceptionState);
         toDerived()->commitChange();
 
         return createItemTearOff(value.release());
     }
 
-    PassRefPtrWillBeRawPtr<ItemTearOffType> appendItem(PassRefPtrWillBeRawPtr<ItemTearOffType> passItem, ExceptionState& exceptionState)
+    RawPtr<ItemTearOffType> appendItem(RawPtr<ItemTearOffType> passItem, ExceptionState& exceptionState)
     {
-        RefPtrWillBeRawPtr<ItemTearOffType> item = passItem;
+        RawPtr<ItemTearOffType> item = passItem;
 
         if (toDerived()->isImmutable()) {
             exceptionState.throwDOMException(NoModificationAllowedError, "The object is read-only.");
@@ -186,24 +186,24 @@
 
         ASSERT(item);
 
-        RefPtrWillBeRawPtr<ItemPropertyType> value = toDerived()->target()->appendItem(getValueForInsertionFromTearOff(item));
+        RawPtr<ItemPropertyType> value = toDerived()->target()->appendItem(getValueForInsertionFromTearOff(item));
         toDerived()->commitChange();
 
         return createItemTearOff(value.release());
     }
 
 protected:
-    SVGListPropertyTearOffHelper(PassRefPtrWillBeRawPtr<ListPropertyType> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
+    SVGListPropertyTearOffHelper(RawPtr<ListPropertyType> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
         : SVGPropertyTearOff<ListPropertyType>(target, contextElement, propertyIsAnimVal, attributeName)
     {
     }
 
-    PassRefPtrWillBeRawPtr<ItemPropertyType> getValueForInsertionFromTearOff(PassRefPtrWillBeRawPtr<ItemTearOffType> passNewItem)
+    RawPtr<ItemPropertyType> getValueForInsertionFromTearOff(RawPtr<ItemTearOffType> passNewItem)
     {
         return ItemTraits::getValueForInsertionFromTearOff(passNewItem, toDerived()->contextElement(), toDerived()->attributeName());
     }
 
-    PassRefPtrWillBeRawPtr<ItemTearOffType> createItemTearOff(PassRefPtrWillBeRawPtr<ItemPropertyType> value)
+    RawPtr<ItemTearOffType> createItemTearOff(RawPtr<ItemPropertyType> value)
     {
         if (!value)
             return nullptr;
diff --git a/third_party/WebKit/Source/core/svg/properties/SVGProperty.h b/third_party/WebKit/Source/core/svg/properties/SVGProperty.h
index f29a6f8..c081c4e 100644
--- a/third_party/WebKit/Source/core/svg/properties/SVGProperty.h
+++ b/third_party/WebKit/Source/core/svg/properties/SVGProperty.h
@@ -43,7 +43,7 @@
 class SVGElement;
 class SVGAnimationElement;
 
-class SVGPropertyBase : public RefCountedWillBeGarbageCollectedFinalized<SVGPropertyBase> {
+class SVGPropertyBase : public GarbageCollectedFinalized<SVGPropertyBase> {
     WTF_MAKE_NONCOPYABLE(SVGPropertyBase);
 
 public:
@@ -61,14 +61,14 @@
 
     // FIXME: remove this in WebAnimations transition.
     // This is used from SVGAnimatedNewPropertyAnimator for its animate-by-string implementation.
-    virtual PassRefPtrWillBeRawPtr<SVGPropertyBase> cloneForAnimation(const String&) const = 0;
+    virtual RawPtr<SVGPropertyBase> cloneForAnimation(const String&) const = 0;
 
     virtual String valueAsString() const = 0;
 
     // FIXME: remove below and just have this inherit AnimatableValue in WebAnimations transition.
-    virtual void add(PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*) = 0;
-    virtual void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, PassRefPtrWillBeRawPtr<SVGPropertyBase> from, PassRefPtrWillBeRawPtr<SVGPropertyBase> to, PassRefPtrWillBeRawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement*) = 0;
-    virtual float calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase> to, SVGElement*) = 0;
+    virtual void add(RawPtr<SVGPropertyBase>, SVGElement*) = 0;
+    virtual void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> from, RawPtr<SVGPropertyBase> to, RawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement*) = 0;
+    virtual float calculateDistance(RawPtr<SVGPropertyBase> to, SVGElement*) = 0;
 
     AnimatedPropertyType type() const
     {
@@ -104,14 +104,14 @@
     // cycles when SVG properties meet the off-heap InterpolationValue hierarchy.
     // Not tracing it is safe, albeit an undesirable state of affairs.
     // See http://crbug.com/528275 for the detail.
-    RawPtrWillBeUntracedMember<SVGPropertyBase> m_ownerList;
+    UntracedMember<SVGPropertyBase> m_ownerList;
 };
 
 #define DEFINE_SVG_PROPERTY_TYPE_CASTS(thisType)\
     DEFINE_TYPE_CASTS(thisType, SVGPropertyBase, value, value->type() == thisType::classType(), value.type() == thisType::classType());\
-    inline PassRefPtrWillBeRawPtr<thisType> to##thisType(PassRefPtrWillBeRawPtr<SVGPropertyBase> passBase)\
+    inline RawPtr<thisType> to##thisType(RawPtr<SVGPropertyBase> passBase)\
     {\
-        RefPtrWillBeRawPtr<SVGPropertyBase> base = passBase;\
+        RawPtr<SVGPropertyBase> base = passBase;\
         ASSERT(base->type() == thisType::classType());\
         return static_pointer_cast<thisType>(base.release());\
     }
diff --git a/third_party/WebKit/Source/core/svg/properties/SVGPropertyHelper.h b/third_party/WebKit/Source/core/svg/properties/SVGPropertyHelper.h
index 866d1e5..15828f4 100644
--- a/third_party/WebKit/Source/core/svg/properties/SVGPropertyHelper.h
+++ b/third_party/WebKit/Source/core/svg/properties/SVGPropertyHelper.h
@@ -17,9 +17,9 @@
     {
     }
 
-    virtual PassRefPtrWillBeRawPtr<SVGPropertyBase> cloneForAnimation(const String& value) const
+    virtual RawPtr<SVGPropertyBase> cloneForAnimation(const String& value) const
     {
-        RefPtrWillBeRawPtr<Derived> property = Derived::create();
+        RawPtr<Derived> property = Derived::create();
         property->setValueAsString(value);
         return property.release();
     }
diff --git a/third_party/WebKit/Source/core/svg/properties/SVGPropertyTearOff.h b/third_party/WebKit/Source/core/svg/properties/SVGPropertyTearOff.h
index e709281e..ef2d5ad 100644
--- a/third_party/WebKit/Source/core/svg/properties/SVGPropertyTearOff.h
+++ b/third_party/WebKit/Source/core/svg/properties/SVGPropertyTearOff.h
@@ -44,7 +44,7 @@
     PropertyIsAnimVal
 };
 
-class SVGPropertyTearOffBase : public RefCountedWillBeGarbageCollectedFinalized<SVGPropertyTearOffBase> {
+class SVGPropertyTearOffBase : public GarbageCollectedFinalized<SVGPropertyTearOffBase> {
 public:
     virtual ~SVGPropertyTearOffBase() { }
 
@@ -113,7 +113,7 @@
     // This raw pointer is safe since the SVG element is guaranteed to be kept
     // alive by a V8 wrapper.
     // See http://crbug.com/528275 for the detail.
-    RawPtrWillBeUntracedMember<SVGElement> m_contextElement;
+    UntracedMember<SVGElement> m_contextElement;
 
     PropertyIsAnimValType m_propertyIsAnimVal;
     bool m_isReadOnlyProperty;
@@ -131,7 +131,7 @@
         return m_target.get();
     }
 
-    void setTarget(PassRefPtrWillBeRawPtr<Property> target)
+    void setTarget(RawPtr<Property> target)
     {
         m_target = target;
     }
@@ -148,7 +148,7 @@
     }
 
 protected:
-    SVGPropertyTearOff(PassRefPtrWillBeRawPtr<Property> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
+    SVGPropertyTearOff(RawPtr<Property> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
         : SVGPropertyTearOffBase(contextElement, propertyIsAnimVal, attributeName)
         , m_target(target)
     {
@@ -156,7 +156,7 @@
     }
 
 private:
-    RefPtrWillBeMember<Property> m_target;
+    Member<Property> m_target;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/testing/Internals.cpp b/third_party/WebKit/Source/core/testing/Internals.cpp
index e80449eb..7544deed 100644
--- a/third_party/WebKit/Source/core/testing/Internals.cpp
+++ b/third_party/WebKit/Source/core/testing/Internals.cpp
@@ -2152,9 +2152,9 @@
     return SerializedScriptValueFactory::instance().createFromWire(value);
 }
 
-void Internals::forceReload(bool endToEnd)
+void Internals::forceReload(bool bypassCache)
 {
-    frame()->reload(endToEnd ? FrameLoadTypeReloadFromOrigin : FrameLoadTypeReload, NotClientRedirect);
+    frame()->reload(bypassCache ? FrameLoadTypeReloadBypassingCache : FrameLoadTypeReload, NotClientRedirect);
 }
 
 ClientRect* Internals::selectionBounds(ExceptionState& exceptionState)
diff --git a/third_party/WebKit/Source/core/testing/Internals.h b/third_party/WebKit/Source/core/testing/Internals.h
index 3c8a739..08d794a 100644
--- a/third_party/WebKit/Source/core/testing/Internals.h
+++ b/third_party/WebKit/Source/core/testing/Internals.h
@@ -304,7 +304,7 @@
 
     String markerTextForListItem(Element*);
 
-    void forceReload(bool endToEnd);
+    void forceReload(bool bypassCache);
 
     String getImageSourceURL(Element*);
 
diff --git a/third_party/WebKit/Source/core/workers/AbstractWorker.h b/third_party/WebKit/Source/core/workers/AbstractWorker.h
index a90cb60..72325fc 100644
--- a/third_party/WebKit/Source/core/workers/AbstractWorker.h
+++ b/third_party/WebKit/Source/core/workers/AbstractWorker.h
@@ -47,7 +47,7 @@
 
 class CORE_EXPORT AbstractWorker : public RefCountedGarbageCollectedEventTargetWithInlineData<AbstractWorker>, public ActiveDOMObject {
     REFCOUNTED_GARBAGE_COLLECTED_EVENT_TARGET(AbstractWorker);
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(AbstractWorker);
+    USING_GARBAGE_COLLECTED_MIXIN(AbstractWorker);
 public:
     // EventTarget APIs
     ExecutionContext* getExecutionContext() const final { return ActiveDOMObject::getExecutionContext(); }
diff --git a/third_party/WebKit/Source/core/workers/DedicatedWorkerGlobalScope.cpp b/third_party/WebKit/Source/core/workers/DedicatedWorkerGlobalScope.cpp
index ced72d1..34cc4dd 100644
--- a/third_party/WebKit/Source/core/workers/DedicatedWorkerGlobalScope.cpp
+++ b/third_party/WebKit/Source/core/workers/DedicatedWorkerGlobalScope.cpp
@@ -42,17 +42,17 @@
 
 namespace blink {
 
-PassRefPtrWillBeRawPtr<DedicatedWorkerGlobalScope> DedicatedWorkerGlobalScope::create(DedicatedWorkerThread* thread, PassOwnPtr<WorkerThreadStartupData> startupData, double timeOrigin)
+RawPtr<DedicatedWorkerGlobalScope> DedicatedWorkerGlobalScope::create(DedicatedWorkerThread* thread, PassOwnPtr<WorkerThreadStartupData> startupData, double timeOrigin)
 {
     // Note: startupData is finalized on return. After the relevant parts has been
     // passed along to the created 'context'.
-    RefPtrWillBeRawPtr<DedicatedWorkerGlobalScope> context = adoptRefWillBeNoop(new DedicatedWorkerGlobalScope(startupData->m_scriptURL, startupData->m_userAgent, thread, timeOrigin, startupData->m_starterOriginPrivilegeData.release(), startupData->m_workerClients.release()));
+    RawPtr<DedicatedWorkerGlobalScope> context = new DedicatedWorkerGlobalScope(startupData->m_scriptURL, startupData->m_userAgent, thread, timeOrigin, startupData->m_starterOriginPrivilegeData.release(), startupData->m_workerClients.release());
     context->applyContentSecurityPolicyFromVector(*startupData->m_contentSecurityPolicyHeaders);
     context->setAddressSpace(startupData->m_addressSpace);
     return context.release();
 }
 
-DedicatedWorkerGlobalScope::DedicatedWorkerGlobalScope(const KURL& url, const String& userAgent, DedicatedWorkerThread* thread, double timeOrigin, PassOwnPtr<SecurityOrigin::PrivilegeData> starterOriginPrivilegeData, PassOwnPtrWillBeRawPtr<WorkerClients> workerClients)
+DedicatedWorkerGlobalScope::DedicatedWorkerGlobalScope(const KURL& url, const String& userAgent, DedicatedWorkerThread* thread, double timeOrigin, PassOwnPtr<SecurityOrigin::PrivilegeData> starterOriginPrivilegeData, RawPtr<WorkerClients> workerClients)
     : WorkerGlobalScope(url, userAgent, thread, timeOrigin, starterOriginPrivilegeData, workerClients)
 {
 }
diff --git a/third_party/WebKit/Source/core/workers/DedicatedWorkerGlobalScope.h b/third_party/WebKit/Source/core/workers/DedicatedWorkerGlobalScope.h
index 7aa1da8..a9f2bf4 100644
--- a/third_party/WebKit/Source/core/workers/DedicatedWorkerGlobalScope.h
+++ b/third_party/WebKit/Source/core/workers/DedicatedWorkerGlobalScope.h
@@ -46,7 +46,7 @@
     DEFINE_WRAPPERTYPEINFO();
 public:
     typedef WorkerGlobalScope Base;
-    static PassRefPtrWillBeRawPtr<DedicatedWorkerGlobalScope> create(DedicatedWorkerThread*, PassOwnPtr<WorkerThreadStartupData>, double timeOrigin);
+    static RawPtr<DedicatedWorkerGlobalScope> create(DedicatedWorkerThread*, PassOwnPtr<WorkerThreadStartupData>, double timeOrigin);
     ~DedicatedWorkerGlobalScope() override;
 
     bool isDedicatedWorkerGlobalScope() const override { return true; }
@@ -65,7 +65,7 @@
     DECLARE_VIRTUAL_TRACE();
 
 private:
-    DedicatedWorkerGlobalScope(const KURL&, const String& userAgent, DedicatedWorkerThread*, double timeOrigin, PassOwnPtr<SecurityOrigin::PrivilegeData>, PassOwnPtrWillBeRawPtr<WorkerClients>);
+    DedicatedWorkerGlobalScope(const KURL&, const String& userAgent, DedicatedWorkerThread*, double timeOrigin, PassOwnPtr<SecurityOrigin::PrivilegeData>, RawPtr<WorkerClients>);
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/workers/DedicatedWorkerMessagingProxy.cpp b/third_party/WebKit/Source/core/workers/DedicatedWorkerMessagingProxy.cpp
index 9ba25f1..9d35077 100644
--- a/third_party/WebKit/Source/core/workers/DedicatedWorkerMessagingProxy.cpp
+++ b/third_party/WebKit/Source/core/workers/DedicatedWorkerMessagingProxy.cpp
@@ -9,7 +9,7 @@
 
 namespace blink {
 
-DedicatedWorkerMessagingProxy::DedicatedWorkerMessagingProxy(InProcessWorkerBase* workerObject, PassOwnPtrWillBeRawPtr<WorkerClients> workerClients)
+DedicatedWorkerMessagingProxy::DedicatedWorkerMessagingProxy(InProcessWorkerBase* workerObject, RawPtr<WorkerClients> workerClients)
     : WorkerMessagingProxy(workerObject, workerClients)
 {
 }
diff --git a/third_party/WebKit/Source/core/workers/DedicatedWorkerMessagingProxy.h b/third_party/WebKit/Source/core/workers/DedicatedWorkerMessagingProxy.h
index b2cfb4f1..1e166769 100644
--- a/third_party/WebKit/Source/core/workers/DedicatedWorkerMessagingProxy.h
+++ b/third_party/WebKit/Source/core/workers/DedicatedWorkerMessagingProxy.h
@@ -14,7 +14,7 @@
     WTF_MAKE_NONCOPYABLE(DedicatedWorkerMessagingProxy);
     USING_FAST_MALLOC(WorkerMessagingProxy);
 public:
-    DedicatedWorkerMessagingProxy(InProcessWorkerBase*, PassOwnPtrWillBeRawPtr<WorkerClients>);
+    DedicatedWorkerMessagingProxy(InProcessWorkerBase*, RawPtr<WorkerClients>);
     ~DedicatedWorkerMessagingProxy() override;
 
     PassOwnPtr<WorkerThread> createWorkerThread(double originTime) override;
diff --git a/third_party/WebKit/Source/core/workers/DedicatedWorkerThread.cpp b/third_party/WebKit/Source/core/workers/DedicatedWorkerThread.cpp
index 447c9a1..b1f6e4e 100644
--- a/third_party/WebKit/Source/core/workers/DedicatedWorkerThread.cpp
+++ b/third_party/WebKit/Source/core/workers/DedicatedWorkerThread.cpp
@@ -52,7 +52,7 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<WorkerGlobalScope> DedicatedWorkerThread::createWorkerGlobalScope(PassOwnPtr<WorkerThreadStartupData> startupData)
+RawPtr<WorkerGlobalScope> DedicatedWorkerThread::createWorkerGlobalScope(PassOwnPtr<WorkerThreadStartupData> startupData)
 {
     return DedicatedWorkerGlobalScope::create(this, startupData, m_timeOrigin);
 }
diff --git a/third_party/WebKit/Source/core/workers/DedicatedWorkerThread.h b/third_party/WebKit/Source/core/workers/DedicatedWorkerThread.h
index eede265..8e9fb10 100644
--- a/third_party/WebKit/Source/core/workers/DedicatedWorkerThread.h
+++ b/third_party/WebKit/Source/core/workers/DedicatedWorkerThread.h
@@ -45,7 +45,7 @@
     ~DedicatedWorkerThread() override;
 
 protected:
-    PassRefPtrWillBeRawPtr<WorkerGlobalScope> createWorkerGlobalScope(PassOwnPtr<WorkerThreadStartupData>) override;
+    RawPtr<WorkerGlobalScope> createWorkerGlobalScope(PassOwnPtr<WorkerThreadStartupData>) override;
     void postInitialize() override;
     WebThreadSupportingGC& backingThread() override;
 
diff --git a/third_party/WebKit/Source/core/workers/InProcessWorkerBase.h b/third_party/WebKit/Source/core/workers/InProcessWorkerBase.h
index 86c44b1..da0adb99 100644
--- a/third_party/WebKit/Source/core/workers/InProcessWorkerBase.h
+++ b/third_party/WebKit/Source/core/workers/InProcessWorkerBase.h
@@ -60,7 +60,7 @@
     void onFinished();
 
     RefPtr<WorkerScriptLoader> m_scriptLoader;
-    RefPtrWillBeMember<ContentSecurityPolicy> m_contentSecurityPolicy;
+    Member<ContentSecurityPolicy> m_contentSecurityPolicy;
     WorkerGlobalScopeProxy* m_contextProxy; // The proxy outlives the worker to perform thread shutdown.
 };
 
diff --git a/third_party/WebKit/Source/core/workers/SharedWorkerGlobalScope.cpp b/third_party/WebKit/Source/core/workers/SharedWorkerGlobalScope.cpp
index 1002f172..411e84f 100644
--- a/third_party/WebKit/Source/core/workers/SharedWorkerGlobalScope.cpp
+++ b/third_party/WebKit/Source/core/workers/SharedWorkerGlobalScope.cpp
@@ -40,25 +40,25 @@
 
 namespace blink {
 
-PassRefPtrWillBeRawPtr<MessageEvent> createConnectEvent(MessagePort* port)
+RawPtr<MessageEvent> createConnectEvent(MessagePort* port)
 {
-    RefPtrWillBeRawPtr<MessageEvent> event = MessageEvent::create(new MessagePortArray(1, port), String(), String(), port);
+    RawPtr<MessageEvent> event = MessageEvent::create(new MessagePortArray(1, port), String(), String(), port);
     event->initEvent(EventTypeNames::connect, false, false);
     return event.release();
 }
 
 // static
-PassRefPtrWillBeRawPtr<SharedWorkerGlobalScope> SharedWorkerGlobalScope::create(const String& name, SharedWorkerThread* thread, PassOwnPtr<WorkerThreadStartupData> startupData)
+RawPtr<SharedWorkerGlobalScope> SharedWorkerGlobalScope::create(const String& name, SharedWorkerThread* thread, PassOwnPtr<WorkerThreadStartupData> startupData)
 {
     // Note: startupData is finalized on return. After the relevant parts has been
     // passed along to the created 'context'.
-    RefPtrWillBeRawPtr<SharedWorkerGlobalScope> context = adoptRefWillBeNoop(new SharedWorkerGlobalScope(name, startupData->m_scriptURL, startupData->m_userAgent, thread, startupData->m_starterOriginPrivilegeData.release(), startupData->m_workerClients.release()));
+    RawPtr<SharedWorkerGlobalScope> context = new SharedWorkerGlobalScope(name, startupData->m_scriptURL, startupData->m_userAgent, thread, startupData->m_starterOriginPrivilegeData.release(), startupData->m_workerClients.release());
     context->applyContentSecurityPolicyFromVector(*startupData->m_contentSecurityPolicyHeaders);
     context->setAddressSpace(startupData->m_addressSpace);
     return context.release();
 }
 
-SharedWorkerGlobalScope::SharedWorkerGlobalScope(const String& name, const KURL& url, const String& userAgent, SharedWorkerThread* thread, PassOwnPtr<SecurityOrigin::PrivilegeData> starterOriginPrivilegeData, PassOwnPtrWillBeRawPtr<WorkerClients> workerClients)
+SharedWorkerGlobalScope::SharedWorkerGlobalScope(const String& name, const KURL& url, const String& userAgent, SharedWorkerThread* thread, PassOwnPtr<SecurityOrigin::PrivilegeData> starterOriginPrivilegeData, RawPtr<WorkerClients> workerClients)
     : WorkerGlobalScope(url, userAgent, thread, monotonicallyIncreasingTime(), starterOriginPrivilegeData, workerClients)
     , m_name(name)
 {
@@ -81,7 +81,7 @@
 void SharedWorkerGlobalScope::logExceptionToConsole(const String& errorMessage, int scriptId, const String& sourceURL, int lineNumber, int columnNumber, PassRefPtr<ScriptCallStack> callStack)
 {
     WorkerGlobalScope::logExceptionToConsole(errorMessage, scriptId, sourceURL, lineNumber, columnNumber, callStack);
-    RefPtrWillBeRawPtr<ConsoleMessage> consoleMessage = ConsoleMessage::create(JSMessageSource, ErrorMessageLevel, errorMessage, sourceURL, lineNumber, columnNumber);
+    RawPtr<ConsoleMessage> consoleMessage = ConsoleMessage::create(JSMessageSource, ErrorMessageLevel, errorMessage, sourceURL, lineNumber, columnNumber);
     consoleMessage->setScriptId(scriptId);
     consoleMessage->setCallStack(callStack);
     addMessageToWorkerConsole(consoleMessage.release());
diff --git a/third_party/WebKit/Source/core/workers/SharedWorkerGlobalScope.h b/third_party/WebKit/Source/core/workers/SharedWorkerGlobalScope.h
index e30c5f1..f1b5f218 100644
--- a/third_party/WebKit/Source/core/workers/SharedWorkerGlobalScope.h
+++ b/third_party/WebKit/Source/core/workers/SharedWorkerGlobalScope.h
@@ -46,7 +46,7 @@
     DEFINE_WRAPPERTYPEINFO();
 public:
     typedef WorkerGlobalScope Base;
-    static PassRefPtrWillBeRawPtr<SharedWorkerGlobalScope> create(const String& name, SharedWorkerThread*, PassOwnPtr<WorkerThreadStartupData>);
+    static RawPtr<SharedWorkerGlobalScope> create(const String& name, SharedWorkerThread*, PassOwnPtr<WorkerThreadStartupData>);
     ~SharedWorkerGlobalScope() override;
 
     bool isSharedWorkerGlobalScope() const override { return true; }
@@ -63,13 +63,13 @@
     DECLARE_VIRTUAL_TRACE();
 
 private:
-    SharedWorkerGlobalScope(const String& name, const KURL&, const String& userAgent, SharedWorkerThread*, PassOwnPtr<SecurityOrigin::PrivilegeData>, PassOwnPtrWillBeRawPtr<WorkerClients>);
+    SharedWorkerGlobalScope(const String& name, const KURL&, const String& userAgent, SharedWorkerThread*, PassOwnPtr<SecurityOrigin::PrivilegeData>, RawPtr<WorkerClients>);
     void logExceptionToConsole(const String& errorMessage, int scriptId, const String& sourceURL, int lineNumber, int columnNumber, PassRefPtr<ScriptCallStack>) override;
 
     String m_name;
 };
 
-CORE_EXPORT PassRefPtrWillBeRawPtr<MessageEvent> createConnectEvent(MessagePort*);
+CORE_EXPORT RawPtr<MessageEvent> createConnectEvent(MessagePort*);
 
 } // namespace blink
 
diff --git a/third_party/WebKit/Source/core/workers/SharedWorkerThread.cpp b/third_party/WebKit/Source/core/workers/SharedWorkerThread.cpp
index 4fffc92..393fda5e 100644
--- a/third_party/WebKit/Source/core/workers/SharedWorkerThread.cpp
+++ b/third_party/WebKit/Source/core/workers/SharedWorkerThread.cpp
@@ -50,7 +50,7 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<WorkerGlobalScope> SharedWorkerThread::createWorkerGlobalScope(PassOwnPtr<WorkerThreadStartupData> startupData)
+RawPtr<WorkerGlobalScope> SharedWorkerThread::createWorkerGlobalScope(PassOwnPtr<WorkerThreadStartupData> startupData)
 {
     return SharedWorkerGlobalScope::create(m_name, this, startupData);
 }
diff --git a/third_party/WebKit/Source/core/workers/SharedWorkerThread.h b/third_party/WebKit/Source/core/workers/SharedWorkerThread.h
index fdc95720..28d7a217 100644
--- a/third_party/WebKit/Source/core/workers/SharedWorkerThread.h
+++ b/third_party/WebKit/Source/core/workers/SharedWorkerThread.h
@@ -44,7 +44,7 @@
     ~SharedWorkerThread() override;
 
 protected:
-    PassRefPtrWillBeRawPtr<WorkerGlobalScope> createWorkerGlobalScope(PassOwnPtr<WorkerThreadStartupData>) override;
+    RawPtr<WorkerGlobalScope> createWorkerGlobalScope(PassOwnPtr<WorkerThreadStartupData>) override;
     WebThreadSupportingGC& backingThread() override;
 
 private:
diff --git a/third_party/WebKit/Source/core/workers/WorkerClients.h b/third_party/WebKit/Source/core/workers/WorkerClients.h
index 9f66167..e993c42 100644
--- a/third_party/WebKit/Source/core/workers/WorkerClients.h
+++ b/third_party/WebKit/Source/core/workers/WorkerClients.h
@@ -39,14 +39,13 @@
 // This is created on the main thread, passed to the worker thread and
 // attached to WorkerGlobalScope when it is created.
 // This class can be used to provide "client" implementations to Workers.
-class WorkerClients final : public NoBaseWillBeGarbageCollectedFinalized<WorkerClients>, public WillBeHeapSupplementable<WorkerClients> {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(WorkerClients);
+class WorkerClients final : public GarbageCollectedFinalized<WorkerClients>, public HeapSupplementable<WorkerClients> {
+    USING_GARBAGE_COLLECTED_MIXIN(WorkerClients);
     WTF_MAKE_NONCOPYABLE(WorkerClients);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(WorkerClients);
 public:
-    static PassOwnPtrWillBeRawPtr<WorkerClients> create()
+    static RawPtr<WorkerClients> create()
     {
-        return adoptPtrWillBeNoop(new WorkerClients());
+        return new WorkerClients();
     }
 
     virtual ~WorkerClients() { }
diff --git a/third_party/WebKit/Source/core/workers/WorkerConsole.cpp b/third_party/WebKit/Source/core/workers/WorkerConsole.cpp
index 33f96f7..ac0e060 100644
--- a/third_party/WebKit/Source/core/workers/WorkerConsole.cpp
+++ b/third_party/WebKit/Source/core/workers/WorkerConsole.cpp
@@ -46,7 +46,7 @@
 {
 }
 
-void WorkerConsole::reportMessageToConsole(PassRefPtrWillBeRawPtr<ConsoleMessage> consoleMessage)
+void WorkerConsole::reportMessageToConsole(RawPtr<ConsoleMessage> consoleMessage)
 {
     m_scope->addConsoleMessage(consoleMessage);
 }
diff --git a/third_party/WebKit/Source/core/workers/WorkerConsole.h b/third_party/WebKit/Source/core/workers/WorkerConsole.h
index f5d81eb..86b318c 100644
--- a/third_party/WebKit/Source/core/workers/WorkerConsole.h
+++ b/third_party/WebKit/Source/core/workers/WorkerConsole.h
@@ -57,12 +57,12 @@
 
 protected:
     ExecutionContext* context() override;
-    void reportMessageToConsole(PassRefPtrWillBeRawPtr<ConsoleMessage>) override;
+    void reportMessageToConsole(RawPtr<ConsoleMessage>) override;
 
 private:
     explicit WorkerConsole(WorkerGlobalScope*);
 
-    RawPtrWillBeMember<WorkerGlobalScope> m_scope;
+    Member<WorkerGlobalScope> m_scope;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/workers/WorkerEventQueue.cpp b/third_party/WebKit/Source/core/workers/WorkerEventQueue.cpp
index 2603c72..8d17b745 100644
--- a/third_party/WebKit/Source/core/workers/WorkerEventQueue.cpp
+++ b/third_party/WebKit/Source/core/workers/WorkerEventQueue.cpp
@@ -33,9 +33,9 @@
 
 namespace blink {
 
-PassOwnPtrWillBeRawPtr<WorkerEventQueue> WorkerEventQueue::create(ExecutionContext* context)
+RawPtr<WorkerEventQueue> WorkerEventQueue::create(ExecutionContext* context)
 {
-    return adoptPtrWillBeNoop(new WorkerEventQueue(context));
+    return new WorkerEventQueue(context);
 }
 
 WorkerEventQueue::WorkerEventQueue(ExecutionContext* context)
@@ -60,7 +60,7 @@
 
 class WorkerEventQueue::EventDispatcherTask : public ExecutionContextTask {
 public:
-    static PassOwnPtr<EventDispatcherTask> create(PassRefPtrWillBeRawPtr<Event> event, WorkerEventQueue* eventQueue)
+    static PassOwnPtr<EventDispatcherTask> create(RawPtr<Event> event, WorkerEventQueue* eventQueue)
     {
         return adoptPtr(new EventDispatcherTask(event, eventQueue));
     }
@@ -71,13 +71,13 @@
             m_eventQueue->removeEvent(m_event.get());
     }
 
-    void dispatchEvent(ExecutionContext*, PassRefPtrWillBeRawPtr<Event> prpEvent)
+    void dispatchEvent(ExecutionContext*, RawPtr<Event> prpEvent)
     {
-        // Stash the event on the stack in a RefPtrWillBeRawPtr; trying to do this
+        // Stash the event on the stack in a RawPtr; trying to do this
         // in a single line causes an optimization bug with MSVC. MSVC generates code
-        // that passes the event arg (forcing PassRefPtrWillBeRawPtr to be released)
+        // that passes the event arg (forcing RawPtr to be released)
         // before the target is queried.
-        RefPtrWillBeRawPtr<Event> event = prpEvent;
+        RawPtr<Event> event = prpEvent;
         event->target()->dispatchEvent(event);
     }
 
@@ -97,15 +97,15 @@
     }
 
 private:
-    EventDispatcherTask(PassRefPtrWillBeRawPtr<Event> event, WorkerEventQueue* eventQueue)
+    EventDispatcherTask(RawPtr<Event> event, WorkerEventQueue* eventQueue)
         : m_event(event)
         , m_eventQueue(eventQueue)
         , m_isCancelled(false)
     {
     }
 
-    RefPtrWillBePersistent<Event> m_event;
-    RawPtrWillBePersistent<WorkerEventQueue> m_eventQueue;
+    Persistent<Event> m_event;
+    Persistent<WorkerEventQueue> m_eventQueue;
     bool m_isCancelled;
 };
 
@@ -115,11 +115,11 @@
     m_eventTaskMap.remove(event);
 }
 
-bool WorkerEventQueue::enqueueEvent(PassRefPtrWillBeRawPtr<Event> prpEvent)
+bool WorkerEventQueue::enqueueEvent(RawPtr<Event> prpEvent)
 {
     if (m_isClosed)
         return false;
-    RefPtrWillBeRawPtr<Event> event = prpEvent;
+    RawPtr<Event> event = prpEvent;
     InspectorInstrumentation::didEnqueueEvent(event->target(), event.get());
     OwnPtr<EventDispatcherTask> task = EventDispatcherTask::create(event, this);
     m_eventTaskMap.add(event.release(), task.get());
diff --git a/third_party/WebKit/Source/core/workers/WorkerEventQueue.h b/third_party/WebKit/Source/core/workers/WorkerEventQueue.h
index eadb70a7..74755ad 100644
--- a/third_party/WebKit/Source/core/workers/WorkerEventQueue.h
+++ b/third_party/WebKit/Source/core/workers/WorkerEventQueue.h
@@ -39,15 +39,14 @@
 class ExecutionContext;
 
 class WorkerEventQueue final : public EventQueue {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(WorkerEventQueue);
 public:
 
-    static PassOwnPtrWillBeRawPtr<WorkerEventQueue> create(ExecutionContext*);
+    static RawPtr<WorkerEventQueue> create(ExecutionContext*);
     ~WorkerEventQueue() override;
     DECLARE_TRACE();
 
     // EventQueue
-    bool enqueueEvent(PassRefPtrWillBeRawPtr<Event>) override;
+    bool enqueueEvent(RawPtr<Event>) override;
     bool cancelEvent(Event*) override;
     void close() override;
 
@@ -55,11 +54,11 @@
     explicit WorkerEventQueue(ExecutionContext*);
     void removeEvent(Event*);
 
-    RawPtrWillBeMember<ExecutionContext> m_executionContext;
+    Member<ExecutionContext> m_executionContext;
     bool m_isClosed;
 
     class EventDispatcherTask;
-    using EventTaskMap = WillBeHeapHashMap<RefPtrWillBeMember<Event>, EventDispatcherTask*>;
+    using EventTaskMap = HeapHashMap<Member<Event>, EventDispatcherTask*>;
     EventTaskMap m_eventTaskMap;
 };
 
diff --git a/third_party/WebKit/Source/core/workers/WorkerGlobalScope.cpp b/third_party/WebKit/Source/core/workers/WorkerGlobalScope.cpp
index b2fb529..acff95c 100644
--- a/third_party/WebKit/Source/core/workers/WorkerGlobalScope.cpp
+++ b/third_party/WebKit/Source/core/workers/WorkerGlobalScope.cpp
@@ -71,7 +71,7 @@
 
 namespace blink {
 
-WorkerGlobalScope::WorkerGlobalScope(const KURL& url, const String& userAgent, WorkerThread* thread, double timeOrigin, PassOwnPtr<SecurityOrigin::PrivilegeData> starterOriginPrivilageData, PassOwnPtrWillBeRawPtr<WorkerClients> workerClients)
+WorkerGlobalScope::WorkerGlobalScope(const KURL& url, const String& userAgent, WorkerThread* thread, double timeOrigin, PassOwnPtr<SecurityOrigin::PrivilegeData> starterOriginPrivilageData, RawPtr<WorkerClients> workerClients)
     : m_url(url)
     , m_userAgent(userAgent)
     , m_v8CacheOptions(V8CacheOptionsDefault)
@@ -103,7 +103,7 @@
 void WorkerGlobalScope::applyContentSecurityPolicyFromVector(const Vector<CSPHeaderAndType>& headers)
 {
     if (!contentSecurityPolicy()) {
-        RefPtrWillBeRawPtr<ContentSecurityPolicy> csp = ContentSecurityPolicy::create();
+        RawPtr<ContentSecurityPolicy> csp = ContentSecurityPolicy::create();
         setContentSecurityPolicy(csp);
     }
     for (const auto& policyAndType : headers)
@@ -206,7 +206,7 @@
     // Event listeners would keep DOMWrapperWorld objects alive for too long. Also, they have references to JS objects,
     // which become dangling once Heap is destroyed.
     for (auto it = m_eventListeners.begin(); it != m_eventListeners.end(); ) {
-        RefPtrWillBeRawPtr<V8AbstractEventListener> listener = *it;
+        RawPtr<V8AbstractEventListener> listener = *it;
         // clearListenerObject() will unregister the listener from
         // m_eventListeners, and invalidate the iterator, so we have to advance
         // it first.
@@ -266,9 +266,9 @@
         InspectorInstrumentation::scriptImported(&executionContext, scriptLoader->identifier(), scriptLoader->script());
         scriptLoaded(scriptLoader->script().length(), scriptLoader->cachedMetadata() ? scriptLoader->cachedMetadata()->size() : 0);
 
-        RefPtrWillBeRawPtr<ErrorEvent> errorEvent = nullptr;
+        RawPtr<ErrorEvent> errorEvent = nullptr;
         OwnPtr<Vector<char>> cachedMetaData(scriptLoader->releaseCachedMetadata());
-        OwnPtrWillBeRawPtr<CachedMetadataHandler> handler(createWorkerScriptCachedMetadataHandler(completeURL, cachedMetaData.get()));
+        RawPtr<CachedMetadataHandler> handler(createWorkerScriptCachedMetadataHandler(completeURL, cachedMetaData.get()));
         m_scriptController->evaluate(ScriptSourceCode(scriptLoader->script(), scriptLoader->responseURL()), &errorEvent, handler.get(), m_v8CacheOptions);
         if (errorEvent) {
             m_scriptController->rethrowExceptionFromImportedScript(errorEvent.release(), exceptionState);
@@ -285,7 +285,7 @@
 void WorkerGlobalScope::logExceptionToConsole(const String& errorMessage, int, const String& sourceURL, int lineNumber, int columnNumber, PassRefPtr<ScriptCallStack> callStack)
 {
     unsigned long exceptionId = ++m_workerExceptionUniqueIdentifier;
-    RefPtrWillBeRawPtr<ConsoleMessage> consoleMessage = ConsoleMessage::create(JSMessageSource, ErrorMessageLevel, errorMessage, sourceURL, lineNumber, columnNumber);
+    RawPtr<ConsoleMessage> consoleMessage = ConsoleMessage::create(JSMessageSource, ErrorMessageLevel, errorMessage, sourceURL, lineNumber, columnNumber);
     consoleMessage->setCallStack(callStack);
     m_pendingMessages.set(exceptionId, consoleMessage);
 
@@ -297,15 +297,15 @@
     InspectorInstrumentation::scriptExecutionBlockedByCSP(this, directiveText);
 }
 
-void WorkerGlobalScope::addConsoleMessage(PassRefPtrWillBeRawPtr<ConsoleMessage> prpConsoleMessage)
+void WorkerGlobalScope::addConsoleMessage(RawPtr<ConsoleMessage> prpConsoleMessage)
 {
     ASSERT(isContextThread());
-    RefPtrWillBeRawPtr<ConsoleMessage> consoleMessage = prpConsoleMessage;
+    RawPtr<ConsoleMessage> consoleMessage = prpConsoleMessage;
     thread()->workerReportingProxy().reportConsoleMessage(consoleMessage);
     addMessageToWorkerConsole(consoleMessage.release());
 }
 
-void WorkerGlobalScope::addMessageToWorkerConsole(PassRefPtrWillBeRawPtr<ConsoleMessage> consoleMessage)
+void WorkerGlobalScope::addMessageToWorkerConsole(RawPtr<ConsoleMessage> consoleMessage)
 {
     ASSERT(isContextThread());
     m_messageStorage->reportMessage(this, consoleMessage);
@@ -366,7 +366,7 @@
 
 void WorkerGlobalScope::exceptionHandled(int exceptionId, bool isHandled)
 {
-    RefPtrWillBeRawPtr<ConsoleMessage> consoleMessage = m_pendingMessages.take(exceptionId);
+    RawPtr<ConsoleMessage> consoleMessage = m_pendingMessages.take(exceptionId);
     if (!isHandled)
         addConsoleMessage(consoleMessage.release());
 }
diff --git a/third_party/WebKit/Source/core/workers/WorkerGlobalScope.h b/third_party/WebKit/Source/core/workers/WorkerGlobalScope.h
index 5816921..042871f 100644
--- a/third_party/WebKit/Source/core/workers/WorkerGlobalScope.h
+++ b/third_party/WebKit/Source/core/workers/WorkerGlobalScope.h
@@ -64,10 +64,10 @@
 class WorkerNavigator;
 class WorkerThread;
 
-class CORE_EXPORT WorkerGlobalScope : public EventTargetWithInlineData, public RefCountedWillBeNoBase<WorkerGlobalScope>, public SecurityContext, public WorkerOrWorkletGlobalScope, public WillBeHeapSupplementable<WorkerGlobalScope>, public DOMWindowBase64 {
+class CORE_EXPORT WorkerGlobalScope : public EventTargetWithInlineData, public SecurityContext, public WorkerOrWorkletGlobalScope, public HeapSupplementable<WorkerGlobalScope>, public DOMWindowBase64 {
     DEFINE_WRAPPERTYPEINFO();
     REFCOUNTED_EVENT_TARGET(WorkerGlobalScope);
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(WorkerGlobalScope);
+    USING_GARBAGE_COLLECTED_MIXIN(WorkerGlobalScope);
 public:
     ~WorkerGlobalScope() override;
 
@@ -110,7 +110,7 @@
     // WorkerUtils
     virtual void importScripts(const Vector<String>& urls, ExceptionState&);
     // Returns null if caching is not supported.
-    virtual PassOwnPtrWillBeRawPtr<CachedMetadataHandler> createWorkerScriptCachedMetadataHandler(const KURL& scriptURL, const Vector<char>* metaData) { return nullptr; }
+    virtual RawPtr<CachedMetadataHandler> createWorkerScriptCachedMetadataHandler(const KURL& scriptURL, const Vector<char>* metaData) { return nullptr; }
 
     WorkerNavigator* navigator() const;
 
@@ -138,7 +138,7 @@
     using SecurityContext::getSecurityOrigin;
     using SecurityContext::contentSecurityPolicy;
 
-    void addConsoleMessage(PassRefPtrWillBeRawPtr<ConsoleMessage>) final;
+    void addConsoleMessage(RawPtr<ConsoleMessage>) final;
     ConsoleMessageStorage* messageStorage();
 
     void exceptionHandled(int exceptionId, bool isHandled);
@@ -153,11 +153,11 @@
     DECLARE_VIRTUAL_TRACE();
 
 protected:
-    WorkerGlobalScope(const KURL&, const String& userAgent, WorkerThread*, double timeOrigin, PassOwnPtr<SecurityOrigin::PrivilegeData>, PassOwnPtrWillBeRawPtr<WorkerClients>);
+    WorkerGlobalScope(const KURL&, const String& userAgent, WorkerThread*, double timeOrigin, PassOwnPtr<SecurityOrigin::PrivilegeData>, RawPtr<WorkerClients>);
     void applyContentSecurityPolicyFromVector(const Vector<CSPHeaderAndType>& headers);
 
     void logExceptionToConsole(const String& errorMessage, int scriptId, const String& sourceURL, int lineNumber, int columnNumber, PassRefPtr<ScriptCallStack>) override;
-    void addMessageToWorkerConsole(PassRefPtrWillBeRawPtr<ConsoleMessage>);
+    void addMessageToWorkerConsole(RawPtr<ConsoleMessage>);
     void setV8CacheOptions(V8CacheOptions v8CacheOptions) { m_v8CacheOptions = v8CacheOptions; }
 
     void removeURLFromMemoryCache(const KURL&) override;
@@ -185,31 +185,31 @@
     String m_userAgent;
     V8CacheOptions m_v8CacheOptions;
 
-    mutable PersistentWillBeMember<WorkerConsole> m_console;
-    mutable PersistentWillBeMember<WorkerLocation> m_location;
-    mutable PersistentWillBeMember<WorkerNavigator> m_navigator;
+    mutable Member<WorkerConsole> m_console;
+    mutable Member<WorkerLocation> m_location;
+    mutable Member<WorkerNavigator> m_navigator;
 
     mutable UseCounter::CountBits m_deprecationWarningBits;
 
-    OwnPtrWillBeMember<WorkerOrWorkletScriptController> m_scriptController;
+    Member<WorkerOrWorkletScriptController> m_scriptController;
     WorkerThread* m_thread;
 
-    RefPtrWillBeMember<WorkerInspectorController> m_workerInspectorController;
+    Member<WorkerInspectorController> m_workerInspectorController;
     bool m_closing;
 
-    OwnPtrWillBeMember<WorkerEventQueue> m_eventQueue;
+    Member<WorkerEventQueue> m_eventQueue;
 
-    OwnPtrWillBeMember<WorkerClients> m_workerClients;
+    Member<WorkerClients> m_workerClients;
 
     DOMTimerCoordinator m_timers;
 
     double m_timeOrigin;
 
-    OwnPtrWillBeMember<ConsoleMessageStorage> m_messageStorage;
+    Member<ConsoleMessageStorage> m_messageStorage;
 
     unsigned long m_workerExceptionUniqueIdentifier;
-    WillBeHeapHashMap<unsigned long, RefPtrWillBeMember<ConsoleMessage>> m_pendingMessages;
-    WillBeHeapListHashSet<RefPtrWillBeMember<V8AbstractEventListener>> m_eventListeners;
+    HeapHashMap<unsigned long, Member<ConsoleMessage>> m_pendingMessages;
+    HeapListHashSet<Member<V8AbstractEventListener>> m_eventListeners;
 };
 
 DEFINE_TYPE_CASTS(WorkerGlobalScope, ExecutionContext, context, context->isWorkerGlobalScope(), context.isWorkerGlobalScope());
diff --git a/third_party/WebKit/Source/core/workers/WorkerGlobalScopeProxyProvider.cpp b/third_party/WebKit/Source/core/workers/WorkerGlobalScopeProxyProvider.cpp
index 02d1286..2477a55 100644
--- a/third_party/WebKit/Source/core/workers/WorkerGlobalScopeProxyProvider.cpp
+++ b/third_party/WebKit/Source/core/workers/WorkerGlobalScopeProxyProvider.cpp
@@ -36,7 +36,7 @@
 
 WorkerGlobalScopeProxyProvider* WorkerGlobalScopeProxyProvider::from(Page& page)
 {
-    return static_cast<WorkerGlobalScopeProxyProvider*>(WillBeHeapSupplement<Page>::from(page, supplementName()));
+    return static_cast<WorkerGlobalScopeProxyProvider*>(HeapSupplement<Page>::from(page, supplementName()));
 }
 
 const char* WorkerGlobalScopeProxyProvider::supplementName()
@@ -44,9 +44,9 @@
     return "WorkerGlobalScopeProxyProvider";
 }
 
-void provideWorkerGlobalScopeProxyProviderTo(Page& page, PassOwnPtrWillBeRawPtr<WorkerGlobalScopeProxyProvider> provider)
+void provideWorkerGlobalScopeProxyProviderTo(Page& page, RawPtr<WorkerGlobalScopeProxyProvider> provider)
 {
-    WillBeHeapSupplement<Page>::provideTo(page, WorkerGlobalScopeProxyProvider::supplementName(), provider);
+    HeapSupplement<Page>::provideTo(page, WorkerGlobalScopeProxyProvider::supplementName(), provider);
 }
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/workers/WorkerGlobalScopeProxyProvider.h b/third_party/WebKit/Source/core/workers/WorkerGlobalScopeProxyProvider.h
index c99bc58..5e19338 100644
--- a/third_party/WebKit/Source/core/workers/WorkerGlobalScopeProxyProvider.h
+++ b/third_party/WebKit/Source/core/workers/WorkerGlobalScopeProxyProvider.h
@@ -43,7 +43,7 @@
 class WorkerGlobalScopeProxy;
 class Worker;
 
-class WorkerGlobalScopeProxyProvider : public WillBeHeapSupplement<Page> {
+class WorkerGlobalScopeProxyProvider : public HeapSupplement<Page> {
     WTF_MAKE_NONCOPYABLE(WorkerGlobalScopeProxyProvider);
 public:
     WorkerGlobalScopeProxyProvider() { }
@@ -55,7 +55,7 @@
     static const char* supplementName();
 };
 
-CORE_EXPORT void provideWorkerGlobalScopeProxyProviderTo(Page&, PassOwnPtrWillBeRawPtr<WorkerGlobalScopeProxyProvider>);
+CORE_EXPORT void provideWorkerGlobalScopeProxyProviderTo(Page&, RawPtr<WorkerGlobalScopeProxyProvider>);
 
 } // namespace blink
 
diff --git a/third_party/WebKit/Source/core/workers/WorkerInspectorProxy.cpp b/third_party/WebKit/Source/core/workers/WorkerInspectorProxy.cpp
index 97bbd41..db48fbc 100644
--- a/third_party/WebKit/Source/core/workers/WorkerInspectorProxy.cpp
+++ b/third_party/WebKit/Source/core/workers/WorkerInspectorProxy.cpp
@@ -39,9 +39,9 @@
 {
 }
 
-PassOwnPtrWillBeRawPtr<WorkerInspectorProxy> WorkerInspectorProxy::create()
+RawPtr<WorkerInspectorProxy> WorkerInspectorProxy::create()
 {
-    return adoptPtrWillBeNoop(new WorkerInspectorProxy());
+    return new WorkerInspectorProxy();
 }
 
 WorkerInspectorProxy::~WorkerInspectorProxy()
diff --git a/third_party/WebKit/Source/core/workers/WorkerInspectorProxy.h b/third_party/WebKit/Source/core/workers/WorkerInspectorProxy.h
index fcbc0fe..36e281e4 100644
--- a/third_party/WebKit/Source/core/workers/WorkerInspectorProxy.h
+++ b/third_party/WebKit/Source/core/workers/WorkerInspectorProxy.h
@@ -19,10 +19,9 @@
 
 // A proxy for talking to the worker inspector on the worker thread.
 // All of these methods should be called on the main thread.
-class CORE_EXPORT WorkerInspectorProxy final : public NoBaseWillBeGarbageCollectedFinalized<WorkerInspectorProxy> {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(WorkerInspectorProxy);
+class CORE_EXPORT WorkerInspectorProxy final : public GarbageCollectedFinalized<WorkerInspectorProxy> {
 public:
-    static PassOwnPtrWillBeRawPtr<WorkerInspectorProxy> create();
+    static RawPtr<WorkerInspectorProxy> create();
 
     ~WorkerInspectorProxy();
     DECLARE_TRACE();
@@ -49,14 +48,14 @@
     Document* getDocument() { return m_document; }
     const String& inspectorId();
 
-    using WorkerInspectorProxySet = WillBePersistentHeapHashSet<RawPtrWillBeWeakMember<WorkerInspectorProxy>>;
+    using WorkerInspectorProxySet = PersistentHeapHashSet<WeakMember<WorkerInspectorProxy>>;
     static const WorkerInspectorProxySet& allProxies();
 
 private:
     WorkerInspectorProxy();
 
     WorkerThread* m_workerThread;
-    RawPtrWillBeMember<Document> m_document;
+    Member<Document> m_document;
     PageInspector* m_pageInspector;
     String m_url;
     String m_inspectorId;
diff --git a/third_party/WebKit/Source/core/workers/WorkerMessagingProxy.cpp b/third_party/WebKit/Source/core/workers/WorkerMessagingProxy.cpp
index f856705..272bda7 100644
--- a/third_party/WebKit/Source/core/workers/WorkerMessagingProxy.cpp
+++ b/third_party/WebKit/Source/core/workers/WorkerMessagingProxy.cpp
@@ -71,7 +71,7 @@
 
 } // namespace
 
-WorkerMessagingProxy::WorkerMessagingProxy(InProcessWorkerBase* workerObject, PassOwnPtrWillBeRawPtr<WorkerClients> workerClients)
+WorkerMessagingProxy::WorkerMessagingProxy(InProcessWorkerBase* workerObject, RawPtr<WorkerClients> workerClients)
     : m_executionContext(workerObject->getExecutionContext())
     , m_workerObjectProxy(WorkerObjectProxy::create(this))
     , m_workerObject(workerObject)
@@ -169,7 +169,7 @@
     // We don't bother checking the askedToTerminate() flag here, because exceptions should *always* be reported even if the thread is terminated.
     // This is intentionally different than the behavior in MessageWorkerTask, because terminated workers no longer deliver messages (section 4.6 of the WebWorker spec), but they do report exceptions.
 
-    RefPtrWillBeRawPtr<ErrorEvent> event = ErrorEvent::create(errorMessage, sourceURL, lineNumber, columnNumber, nullptr);
+    RawPtr<ErrorEvent> event = ErrorEvent::create(errorMessage, sourceURL, lineNumber, columnNumber, nullptr);
     DispatchEventResult dispatchResult = m_workerObject->dispatchEvent(event);
     postTaskToWorkerGlobalScope(createCrossThreadTask(&processExceptionOnWorkerGlobalScope, exceptionId, dispatchResult != DispatchEventResult::NotCanceled));
 }
@@ -185,7 +185,7 @@
     if (!frame)
         return;
 
-    RefPtrWillBeRawPtr<ConsoleMessage> consoleMessage = ConsoleMessage::create(source, level, message, sourceURL, lineNumber);
+    RawPtr<ConsoleMessage> consoleMessage = ConsoleMessage::create(source, level, message, sourceURL, lineNumber);
     consoleMessage->setWorkerInspectorProxy(m_workerInspectorProxy.get());
     frame->console().addMessage(consoleMessage.release());
 }
diff --git a/third_party/WebKit/Source/core/workers/WorkerMessagingProxy.h b/third_party/WebKit/Source/core/workers/WorkerMessagingProxy.h
index 48ef8be..617ce7d 100644
--- a/third_party/WebKit/Source/core/workers/WorkerMessagingProxy.h
+++ b/third_party/WebKit/Source/core/workers/WorkerMessagingProxy.h
@@ -76,7 +76,7 @@
     ExecutionContext* getExecutionContext() const { return m_executionContext.get(); }
 
 protected:
-    WorkerMessagingProxy(InProcessWorkerBase*, PassOwnPtrWillBeRawPtr<WorkerClients>);
+    WorkerMessagingProxy(InProcessWorkerBase*, RawPtr<WorkerClients>);
     ~WorkerMessagingProxy() override;
 
     virtual PassOwnPtr<WorkerThread> createWorkerThread(double originTime) = 0;
@@ -94,7 +94,7 @@
     void postTaskToLoader(PassOwnPtr<ExecutionContextTask>) override;
     bool postTaskToWorkerGlobalScope(PassOwnPtr<ExecutionContextTask>) override;
 
-    RefPtrWillBePersistent<ExecutionContext> m_executionContext;
+    Persistent<ExecutionContext> m_executionContext;
     OwnPtr<WorkerObjectProxy> m_workerObjectProxy;
     WeakPersistent<InProcessWorkerBase> m_workerObject;
     bool m_mayBeDestroyed;
@@ -106,9 +106,9 @@
     bool m_askedToTerminate;
 
     Vector<OwnPtr<ExecutionContextTask>> m_queuedEarlyTasks; // Tasks are queued here until there's a thread object created.
-    OwnPtrWillBePersistent<WorkerInspectorProxy> m_workerInspectorProxy;
+    Persistent<WorkerInspectorProxy> m_workerInspectorProxy;
 
-    OwnPtrWillBePersistent<WorkerClients> m_workerClients;
+    Persistent<WorkerClients> m_workerClients;
 
     RefPtr<WorkerLoaderProxy> m_loaderProxy;
 };
diff --git a/third_party/WebKit/Source/core/workers/WorkerObjectProxy.cpp b/third_party/WebKit/Source/core/workers/WorkerObjectProxy.cpp
index 0836b25e..64d0247 100644
--- a/third_party/WebKit/Source/core/workers/WorkerObjectProxy.cpp
+++ b/third_party/WebKit/Source/core/workers/WorkerObjectProxy.cpp
@@ -71,7 +71,7 @@
     getExecutionContext()->postTask(BLINK_FROM_HERE, createCrossThreadTask(&WorkerMessagingProxy::reportException, m_messagingProxy, errorMessage, lineNumber, columnNumber, sourceURL, exceptionId));
 }
 
-void WorkerObjectProxy::reportConsoleMessage(PassRefPtrWillBeRawPtr<ConsoleMessage> consoleMessage)
+void WorkerObjectProxy::reportConsoleMessage(RawPtr<ConsoleMessage> consoleMessage)
 {
     getExecutionContext()->postTask(BLINK_FROM_HERE, createCrossThreadTask(&WorkerMessagingProxy::reportConsoleMessage, m_messagingProxy, consoleMessage->source(), consoleMessage->level(), consoleMessage->message(), consoleMessage->lineNumber(), consoleMessage->url()));
 }
diff --git a/third_party/WebKit/Source/core/workers/WorkerObjectProxy.h b/third_party/WebKit/Source/core/workers/WorkerObjectProxy.h
index c1a60c7..98d363d 100644
--- a/third_party/WebKit/Source/core/workers/WorkerObjectProxy.h
+++ b/third_party/WebKit/Source/core/workers/WorkerObjectProxy.h
@@ -65,7 +65,7 @@
 
     // WorkerReportingProxy overrides.
     void reportException(const String& errorMessage, int lineNumber, int columnNumber, const String& sourceURL, int exceptionId) override;
-    void reportConsoleMessage(PassRefPtrWillBeRawPtr<ConsoleMessage>) override;
+    void reportConsoleMessage(RawPtr<ConsoleMessage>) override;
     void postMessageToPageInspector(const String&) override;
     void postWorkerConsoleAgentEnabled() override;
     void didEvaluateWorkerScript(bool success) override { }
diff --git a/third_party/WebKit/Source/core/workers/WorkerReportingProxy.h b/third_party/WebKit/Source/core/workers/WorkerReportingProxy.h
index 448c778..dcd0853 100644
--- a/third_party/WebKit/Source/core/workers/WorkerReportingProxy.h
+++ b/third_party/WebKit/Source/core/workers/WorkerReportingProxy.h
@@ -47,7 +47,7 @@
     virtual ~WorkerReportingProxy() { }
 
     virtual void reportException(const String& errorMessage, int lineNumber, int columnNumber, const String& sourceURL, int exceptionId) = 0;
-    virtual void reportConsoleMessage(PassRefPtrWillBeRawPtr<ConsoleMessage>) = 0;
+    virtual void reportConsoleMessage(RawPtr<ConsoleMessage>) = 0;
     virtual void postMessageToPageInspector(const String&) = 0;
     virtual void postWorkerConsoleAgentEnabled() = 0;
 
diff --git a/third_party/WebKit/Source/core/workers/WorkerScriptLoader.h b/third_party/WebKit/Source/core/workers/WorkerScriptLoader.h
index b067a07..cd96284 100644
--- a/third_party/WebKit/Source/core/workers/WorkerScriptLoader.h
+++ b/third_party/WebKit/Source/core/workers/WorkerScriptLoader.h
@@ -80,7 +80,7 @@
     const Vector<char>* cachedMetadata() const { return m_cachedMetadata.get(); }
 
     ContentSecurityPolicy* contentSecurityPolicy() { return m_contentSecurityPolicy.get(); }
-    PassRefPtrWillBeRawPtr<ContentSecurityPolicy> releaseContentSecurityPolicy() { return m_contentSecurityPolicy.release(); }
+    RawPtr<ContentSecurityPolicy> releaseContentSecurityPolicy() { return m_contentSecurityPolicy.release(); }
 
     WebAddressSpace responseAddressSpace() const { return m_responseAddressSpace; }
 
@@ -122,7 +122,7 @@
     long long m_appCacheID;
     OwnPtr<Vector<char>> m_cachedMetadata;
     WebURLRequest::RequestContext m_requestContext;
-    RefPtrWillBePersistent<ContentSecurityPolicy> m_contentSecurityPolicy;
+    Persistent<ContentSecurityPolicy> m_contentSecurityPolicy;
     WebAddressSpace m_responseAddressSpace;
 };
 
diff --git a/third_party/WebKit/Source/core/workers/WorkerThread.cpp b/third_party/WebKit/Source/core/workers/WorkerThread.cpp
index 7b31a57..5ae35a9 100644
--- a/third_party/WebKit/Source/core/workers/WorkerThread.cpp
+++ b/third_party/WebKit/Source/core/workers/WorkerThread.cpp
@@ -232,7 +232,7 @@
         m_workerReportingProxy.didInitializeWorkerContext();
     }
 
-    OwnPtrWillBeRawPtr<CachedMetadataHandler> handler(workerGlobalScope()->createWorkerScriptCachedMetadataHandler(scriptURL, cachedMetaData.get()));
+    RawPtr<CachedMetadataHandler> handler(workerGlobalScope()->createWorkerScriptCachedMetadataHandler(scriptURL, cachedMetaData.get()));
     bool success = m_workerGlobalScope->scriptController()->evaluate(ScriptSourceCode(sourceCode, scriptURL), nullptr, handler.get(), v8CacheOptions);
     m_workerGlobalScope->didEvaluateWorkerScript();
     m_workerReportingProxy.didEvaluateWorkerScript(success);
diff --git a/third_party/WebKit/Source/core/workers/WorkerThread.h b/third_party/WebKit/Source/core/workers/WorkerThread.h
index cf6ccda..02f7a8bd 100644
--- a/third_party/WebKit/Source/core/workers/WorkerThread.h
+++ b/third_party/WebKit/Source/core/workers/WorkerThread.h
@@ -118,7 +118,7 @@
     WorkerThread(PassRefPtr<WorkerLoaderProxy>, WorkerReportingProxy&);
 
     // Factory method for creating a new worker context for the thread.
-    virtual PassRefPtrWillBeRawPtr<WorkerGlobalScope> createWorkerGlobalScope(PassOwnPtr<WorkerThreadStartupData>) = 0;
+    virtual RawPtr<WorkerGlobalScope> createWorkerGlobalScope(PassOwnPtr<WorkerThreadStartupData>) = 0;
 
     virtual void postInitialize() { }
 
@@ -165,7 +165,7 @@
     // This lock protects |m_workerGlobalScope|, |m_terminated|, |m_shutdown|, |m_isolate|, |m_runningDebuggerTask|, |m_shouldTerminateV8Execution| and |m_microtaskRunner|.
     Mutex m_threadStateMutex;
 
-    RefPtrWillBePersistent<WorkerGlobalScope> m_workerGlobalScope;
+    Persistent<WorkerGlobalScope> m_workerGlobalScope;
 
     v8::Isolate* m_isolate;
 
diff --git a/third_party/WebKit/Source/core/workers/WorkerThreadStartupData.cpp b/third_party/WebKit/Source/core/workers/WorkerThreadStartupData.cpp
index 9891853..63697685 100644
--- a/third_party/WebKit/Source/core/workers/WorkerThreadStartupData.cpp
+++ b/third_party/WebKit/Source/core/workers/WorkerThreadStartupData.cpp
@@ -34,7 +34,7 @@
 
 namespace blink {
 
-WorkerThreadStartupData::WorkerThreadStartupData(const KURL& scriptURL, const String& userAgent, const String& sourceCode, PassOwnPtr<Vector<char>> cachedMetaData, WorkerThreadStartMode startMode, const PassOwnPtr<Vector<CSPHeaderAndType>> contentSecurityPolicyHeaders, const SecurityOrigin* starterOrigin, PassOwnPtrWillBeRawPtr<WorkerClients> workerClients, WebAddressSpace addressSpace, V8CacheOptions v8CacheOptions)
+WorkerThreadStartupData::WorkerThreadStartupData(const KURL& scriptURL, const String& userAgent, const String& sourceCode, PassOwnPtr<Vector<char>> cachedMetaData, WorkerThreadStartMode startMode, const PassOwnPtr<Vector<CSPHeaderAndType>> contentSecurityPolicyHeaders, const SecurityOrigin* starterOrigin, RawPtr<WorkerClients> workerClients, WebAddressSpace addressSpace, V8CacheOptions v8CacheOptions)
     : m_scriptURL(scriptURL.copy())
     , m_userAgent(userAgent.isolatedCopy())
     , m_sourceCode(sourceCode.isolatedCopy())
diff --git a/third_party/WebKit/Source/core/workers/WorkerThreadStartupData.h b/third_party/WebKit/Source/core/workers/WorkerThreadStartupData.h
index 1cdaffb8..7bfa82e27 100644
--- a/third_party/WebKit/Source/core/workers/WorkerThreadStartupData.h
+++ b/third_party/WebKit/Source/core/workers/WorkerThreadStartupData.h
@@ -50,7 +50,7 @@
     WTF_MAKE_NONCOPYABLE(WorkerThreadStartupData);
     USING_FAST_MALLOC(WorkerThreadStartupData);
 public:
-    static PassOwnPtr<WorkerThreadStartupData> create(const KURL& scriptURL, const String& userAgent, const String& sourceCode, PassOwnPtr<Vector<char>> cachedMetaData, WorkerThreadStartMode startMode, const PassOwnPtr<Vector<CSPHeaderAndType>> contentSecurityPolicyHeaders, const SecurityOrigin* starterOrigin, PassOwnPtrWillBeRawPtr<WorkerClients> workerClients, WebAddressSpace addressSpace, V8CacheOptions v8CacheOptions = V8CacheOptionsDefault)
+    static PassOwnPtr<WorkerThreadStartupData> create(const KURL& scriptURL, const String& userAgent, const String& sourceCode, PassOwnPtr<Vector<char>> cachedMetaData, WorkerThreadStartMode startMode, const PassOwnPtr<Vector<CSPHeaderAndType>> contentSecurityPolicyHeaders, const SecurityOrigin* starterOrigin, RawPtr<WorkerClients> workerClients, WebAddressSpace addressSpace, V8CacheOptions v8CacheOptions = V8CacheOptionsDefault)
     {
         return adoptPtr(new WorkerThreadStartupData(scriptURL, userAgent, sourceCode, cachedMetaData, startMode, contentSecurityPolicyHeaders, starterOrigin, workerClients, addressSpace, v8CacheOptions));
     }
@@ -84,14 +84,14 @@
     // to happen on a thread different than the thread creating the
     // persistent reference. If the worker thread creation context
     // supplies no extra 'clients', m_workerClients can be left as empty/null.
-    OwnPtrWillBeCrossThreadPersistent<WorkerClients> m_workerClients;
+    CrossThreadPersistent<WorkerClients> m_workerClients;
 
     WebAddressSpace m_addressSpace;
 
     V8CacheOptions m_v8CacheOptions;
 
 private:
-    WorkerThreadStartupData(const KURL& scriptURL, const String& userAgent, const String& sourceCode, PassOwnPtr<Vector<char>> cachedMetaData, WorkerThreadStartMode, const PassOwnPtr<Vector<CSPHeaderAndType>> contentSecurityPolicyHeaders, const SecurityOrigin*, PassOwnPtrWillBeRawPtr<WorkerClients>, WebAddressSpace, V8CacheOptions);
+    WorkerThreadStartupData(const KURL& scriptURL, const String& userAgent, const String& sourceCode, PassOwnPtr<Vector<char>> cachedMetaData, WorkerThreadStartMode, const PassOwnPtr<Vector<CSPHeaderAndType>> contentSecurityPolicyHeaders, const SecurityOrigin*, RawPtr<WorkerClients>, WebAddressSpace, V8CacheOptions);
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/workers/WorkerThreadTestHelper.h b/third_party/WebKit/Source/core/workers/WorkerThreadTestHelper.h
index 50e50c3..6cad1567 100644
--- a/third_party/WebKit/Source/core/workers/WorkerThreadTestHelper.h
+++ b/third_party/WebKit/Source/core/workers/WorkerThreadTestHelper.h
@@ -53,7 +53,7 @@
     ~MockWorkerReportingProxy() override { }
 
     MOCK_METHOD5(reportException, void(const String& errorMessage, int lineNumber, int columnNumber, const String& sourceURL, int exceptionId));
-    MOCK_METHOD1(reportConsoleMessage, void(PassRefPtrWillBeRawPtr<ConsoleMessage>));
+    MOCK_METHOD1(reportConsoleMessage, void(RawPtr<ConsoleMessage>));
     MOCK_METHOD1(postMessageToPageInspector, void(const String&));
     MOCK_METHOD0(postWorkerConsoleAgentEnabled, void());
     MOCK_METHOD1(didEvaluateWorkerScript, void(bool success));
@@ -69,7 +69,7 @@
 public:
     typedef WorkerGlobalScope Base;
 
-    FakeWorkerGlobalScope(const KURL& url, const String& userAgent, WorkerThread* thread, PassOwnPtr<SecurityOrigin::PrivilegeData> starterOriginPrivilegeData, PassOwnPtrWillBeRawPtr<WorkerClients> workerClients)
+    FakeWorkerGlobalScope(const KURL& url, const String& userAgent, WorkerThread* thread, PassOwnPtr<SecurityOrigin::PrivilegeData> starterOriginPrivilegeData, RawPtr<WorkerClients> workerClients)
         : WorkerGlobalScope(url, userAgent, thread, monotonicallyIncreasingTime(), starterOriginPrivilegeData, workerClients)
         , m_thread(thread)
     {
@@ -124,9 +124,9 @@
         WorkerThread::willDestroyIsolate();
     }
 
-    PassRefPtrWillBeRawPtr<WorkerGlobalScope> createWorkerGlobalScope(PassOwnPtr<WorkerThreadStartupData> startupData) override
+    RawPtr<WorkerGlobalScope> createWorkerGlobalScope(PassOwnPtr<WorkerThreadStartupData> startupData) override
     {
-        return adoptRefWillBeNoop(new FakeWorkerGlobalScope(startupData->m_scriptURL, startupData->m_userAgent, this, startupData->m_starterOriginPrivilegeData.release(), startupData->m_workerClients.release()));
+        return new FakeWorkerGlobalScope(startupData->m_scriptURL, startupData->m_userAgent, this, startupData->m_starterOriginPrivilegeData.release(), startupData->m_workerClients.release());
     }
 
     void waitUntilScriptLoaded()
@@ -145,7 +145,7 @@
         CSPHeaderAndType headerAndType("contentSecurityPolicy", ContentSecurityPolicyHeaderTypeReport);
         headers->append(headerAndType);
 
-        OwnPtrWillBeRawPtr<WorkerClients> clients = nullptr;
+        RawPtr<WorkerClients> clients = nullptr;
 
         start(WorkerThreadStartupData::create(
             KURL(ParsedURLString, "http://fake.url/"),
diff --git a/third_party/WebKit/Source/core/xml/DOMParser.cpp b/third_party/WebKit/Source/core/xml/DOMParser.cpp
index 8864939..b797964 100644
--- a/third_party/WebKit/Source/core/xml/DOMParser.cpp
+++ b/third_party/WebKit/Source/core/xml/DOMParser.cpp
@@ -24,9 +24,9 @@
 
 namespace blink {
 
-PassRefPtrWillBeRawPtr<Document> DOMParser::parseFromString(const String& str, const String& type)
+RawPtr<Document> DOMParser::parseFromString(const String& str, const String& type)
 {
-    RefPtrWillBeRawPtr<Document> doc = DOMImplementation::createDocument(type, DocumentInit(KURL(), nullptr, m_contextDocument), false);
+    RawPtr<Document> doc = DOMImplementation::createDocument(type, DocumentInit(KURL(), nullptr, m_contextDocument), false);
     doc->setContent(str);
     return doc.release();
 }
diff --git a/third_party/WebKit/Source/core/xml/DOMParser.h b/third_party/WebKit/Source/core/xml/DOMParser.h
index 34074da7..76e5718 100644
--- a/third_party/WebKit/Source/core/xml/DOMParser.h
+++ b/third_party/WebKit/Source/core/xml/DOMParser.h
@@ -35,14 +35,14 @@
         return new DOMParser(document);
     }
 
-    PassRefPtrWillBeRawPtr<Document> parseFromString(const String&, const String& type);
+    RawPtr<Document> parseFromString(const String&, const String& type);
 
     DECLARE_TRACE();
 
 private:
     explicit DOMParser(Document&);
 
-    WeakPtrWillBeWeakMember<Document> m_contextDocument;
+    WeakMember<Document> m_contextDocument;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/xml/DocumentXPathEvaluator.cpp b/third_party/WebKit/Source/core/xml/DocumentXPathEvaluator.cpp
index e5a699a..b2bec9d7 100644
--- a/third_party/WebKit/Source/core/xml/DocumentXPathEvaluator.cpp
+++ b/third_party/WebKit/Source/core/xml/DocumentXPathEvaluator.cpp
@@ -35,17 +35,17 @@
 {
 }
 
-DocumentXPathEvaluator& DocumentXPathEvaluator::from(WillBeHeapSupplementable<Document>& document)
+DocumentXPathEvaluator& DocumentXPathEvaluator::from(HeapSupplementable<Document>& document)
 {
-    DocumentXPathEvaluator* cache = static_cast<DocumentXPathEvaluator*>(WillBeHeapSupplement<Document>::from(document, supplementName()));
+    DocumentXPathEvaluator* cache = static_cast<DocumentXPathEvaluator*>(HeapSupplement<Document>::from(document, supplementName()));
     if (!cache) {
         cache = new DocumentXPathEvaluator();
-        WillBeHeapSupplement<Document>::provideTo(document, supplementName(), adoptPtrWillBeNoop(cache));
+        HeapSupplement<Document>::provideTo(document, supplementName(), adoptPtrWillBeNoop(cache));
     }
     return *cache;
 }
 
-XPathExpression* DocumentXPathEvaluator::createExpression(WillBeHeapSupplementable<Document>& document, const String& expression, XPathNSResolver* resolver, ExceptionState& exceptionState)
+XPathExpression* DocumentXPathEvaluator::createExpression(HeapSupplementable<Document>& document, const String& expression, XPathNSResolver* resolver, ExceptionState& exceptionState)
 {
     DocumentXPathEvaluator& suplement = from(document);
     if (!suplement.m_xpathEvaluator)
@@ -53,7 +53,7 @@
     return suplement.m_xpathEvaluator->createExpression(expression, resolver, exceptionState);
 }
 
-XPathNSResolver* DocumentXPathEvaluator::createNSResolver(WillBeHeapSupplementable<Document>& document, Node* nodeResolver)
+XPathNSResolver* DocumentXPathEvaluator::createNSResolver(HeapSupplementable<Document>& document, Node* nodeResolver)
 {
     DocumentXPathEvaluator& suplement = from(document);
     if (!suplement.m_xpathEvaluator)
@@ -61,7 +61,7 @@
     return suplement.m_xpathEvaluator->createNSResolver(nodeResolver);
 }
 
-XPathResult* DocumentXPathEvaluator::evaluate(WillBeHeapSupplementable<Document>& document, const String& expression,
+XPathResult* DocumentXPathEvaluator::evaluate(HeapSupplementable<Document>& document, const String& expression,
     Node* contextNode, XPathNSResolver* resolver, unsigned short type,
     const ScriptValue&, ExceptionState& exceptionState)
 {
@@ -74,7 +74,7 @@
 DEFINE_TRACE(DocumentXPathEvaluator)
 {
     visitor->trace(m_xpathEvaluator);
-    WillBeHeapSupplement<Document>::trace(visitor);
+    HeapSupplement<Document>::trace(visitor);
 }
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/xml/DocumentXPathEvaluator.h b/third_party/WebKit/Source/core/xml/DocumentXPathEvaluator.h
index 62e4cc1..2887a8e 100644
--- a/third_party/WebKit/Source/core/xml/DocumentXPathEvaluator.h
+++ b/third_party/WebKit/Source/core/xml/DocumentXPathEvaluator.h
@@ -36,16 +36,15 @@
 class XPathExpression;
 class XPathResult;
 
-class DocumentXPathEvaluator final : public NoBaseWillBeGarbageCollected<DocumentXPathEvaluator>, public WillBeHeapSupplement<Document> {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(DocumentXPathEvaluator);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(DocumentXPathEvaluator);
+class DocumentXPathEvaluator final : public GarbageCollected<DocumentXPathEvaluator>, public HeapSupplement<Document> {
+    USING_GARBAGE_COLLECTED_MIXIN(DocumentXPathEvaluator);
 public:
-    static DocumentXPathEvaluator& from(WillBeHeapSupplementable<Document>&);
+    static DocumentXPathEvaluator& from(HeapSupplementable<Document>&);
 
-    static XPathExpression* createExpression(WillBeHeapSupplementable<Document>&,
+    static XPathExpression* createExpression(HeapSupplementable<Document>&,
         const String& expression, XPathNSResolver*, ExceptionState&);
-    static XPathNSResolver* createNSResolver(WillBeHeapSupplementable<Document>&, Node* nodeResolver);
-    static XPathResult* evaluate(WillBeHeapSupplementable<Document>&,
+    static XPathNSResolver* createNSResolver(HeapSupplementable<Document>&, Node* nodeResolver);
+    static XPathResult* evaluate(HeapSupplementable<Document>&,
         const String& expression, Node* contextNode, XPathNSResolver*,
         unsigned short type, const ScriptValue&, ExceptionState&);
 
@@ -56,7 +55,7 @@
 
     static const char* supplementName() { return "DocumentXPathEvaluator"; }
 
-    PersistentWillBeMember<XPathEvaluator> m_xpathEvaluator;
+    Member<XPathEvaluator> m_xpathEvaluator;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/xml/DocumentXSLT.cpp b/third_party/WebKit/Source/core/xml/DocumentXSLT.cpp
index 54d5c60..32ba2b9a 100644
--- a/third_party/WebKit/Source/core/xml/DocumentXSLT.cpp
+++ b/third_party/WebKit/Source/core/xml/DocumentXSLT.cpp
@@ -21,11 +21,11 @@
 namespace blink {
 
 class DOMContentLoadedListener final : public V8AbstractEventListener, public ProcessingInstruction::DetachableEventListener {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(DOMContentLoadedListener);
+    USING_GARBAGE_COLLECTED_MIXIN(DOMContentLoadedListener);
 public:
-    static PassRefPtrWillBeRawPtr<DOMContentLoadedListener> create(ScriptState* scriptState, ProcessingInstruction* pi)
+    static RawPtr<DOMContentLoadedListener> create(ScriptState* scriptState, ProcessingInstruction* pi)
     {
-        return adoptRefWillBeNoop(new DOMContentLoadedListener(scriptState, pi));
+        return new DOMContentLoadedListener(scriptState, pi);
     }
 
 #if !ENABLE(OILPAN)
@@ -98,7 +98,7 @@
     // If this event listener is attached to a ProcessingInstruction, keep a
     // weak reference back to it. That ProcessingInstruction is responsible for
     // detaching itself and clear out the reference.
-    RawPtrWillBeMember<ProcessingInstruction> m_processingInstruction;
+    Member<ProcessingInstruction> m_processingInstruction;
 };
 
 DocumentXSLT::DocumentXSLT()
@@ -151,7 +151,7 @@
     ScriptState* scriptState = ScriptState::forMainWorld(document.frame());
     if (!scriptState)
         return false;
-    RefPtrWillBeRawPtr<DOMContentLoadedListener> listener = DOMContentLoadedListener::create(scriptState, pi);
+    RawPtr<DOMContentLoadedListener> listener = DOMContentLoadedListener::create(scriptState, pi);
     document.addEventListener(EventTypeNames::DOMContentLoaded, listener, false);
     ASSERT(!pi->eventListenerForXSLT());
     pi->setEventListenerForXSLT(listener.release());
@@ -192,16 +192,16 @@
 
 bool DocumentXSLT::hasTransformSourceDocument(Document& document)
 {
-    return static_cast<DocumentXSLT*>(WillBeHeapSupplement<Document>::from(document, supplementName()));
+    return static_cast<DocumentXSLT*>(HeapSupplement<Document>::from(document, supplementName()));
 }
 
 
-DocumentXSLT& DocumentXSLT::from(WillBeHeapSupplementable<Document>& document)
+DocumentXSLT& DocumentXSLT::from(HeapSupplementable<Document>& document)
 {
-    DocumentXSLT* supplement = static_cast<DocumentXSLT*>(WillBeHeapSupplement<Document>::from(document, supplementName()));
+    DocumentXSLT* supplement = static_cast<DocumentXSLT*>(HeapSupplement<Document>::from(document, supplementName()));
     if (!supplement) {
         supplement = new DocumentXSLT();
-        WillBeHeapSupplement<Document>::provideTo(document, supplementName(), adoptPtrWillBeNoop(supplement));
+        HeapSupplement<Document>::provideTo(document, supplementName(), adoptPtrWillBeNoop(supplement));
     }
     return *supplement;
 }
@@ -209,7 +209,7 @@
 DEFINE_TRACE(DocumentXSLT)
 {
     visitor->trace(m_transformSourceDocument);
-    WillBeHeapSupplement<Document>::trace(visitor);
+    HeapSupplement<Document>::trace(visitor);
 }
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/xml/DocumentXSLT.h b/third_party/WebKit/Source/core/xml/DocumentXSLT.h
index 85fb99c..bc6e200 100644
--- a/third_party/WebKit/Source/core/xml/DocumentXSLT.h
+++ b/third_party/WebKit/Source/core/xml/DocumentXSLT.h
@@ -14,10 +14,9 @@
 class Document;
 class ProcessingInstruction;
 
-class DocumentXSLT final : public NoBaseWillBeGarbageCollected<DocumentXSLT>, public WillBeHeapSupplement<Document> {
+class DocumentXSLT final : public GarbageCollected<DocumentXSLT>, public HeapSupplement<Document> {
     WTF_MAKE_NONCOPYABLE(DocumentXSLT);
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(DocumentXSLT);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(DocumentXSLT);
+    USING_GARBAGE_COLLECTED_MIXIN(DocumentXSLT);
 public:
     Document* transformSourceDocument()
     {
@@ -30,7 +29,7 @@
         m_transformSourceDocument = document;
     }
 
-    static DocumentXSLT& from(WillBeHeapSupplementable<Document>&);
+    static DocumentXSLT& from(HeapSupplementable<Document>&);
     static const char* supplementName();
 
     // The following static methods don't use any instance of DocumentXSLT.
@@ -47,7 +46,7 @@
 private:
     DocumentXSLT();
 
-    RefPtrWillBeMember<Document> m_transformSourceDocument;
+    Member<Document> m_transformSourceDocument;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/xml/NativeXPathNSResolver.cpp b/third_party/WebKit/Source/core/xml/NativeXPathNSResolver.cpp
index a50c157..042ea43b 100644
--- a/third_party/WebKit/Source/core/xml/NativeXPathNSResolver.cpp
+++ b/third_party/WebKit/Source/core/xml/NativeXPathNSResolver.cpp
@@ -31,7 +31,7 @@
 
 namespace blink {
 
-NativeXPathNSResolver::NativeXPathNSResolver(PassRefPtrWillBeRawPtr<Node> node)
+NativeXPathNSResolver::NativeXPathNSResolver(RawPtr<Node> node)
     : m_node(node)
 {
 }
diff --git a/third_party/WebKit/Source/core/xml/NativeXPathNSResolver.h b/third_party/WebKit/Source/core/xml/NativeXPathNSResolver.h
index 78b222e..fc58cc9e 100644
--- a/third_party/WebKit/Source/core/xml/NativeXPathNSResolver.h
+++ b/third_party/WebKit/Source/core/xml/NativeXPathNSResolver.h
@@ -35,7 +35,7 @@
 
 class NativeXPathNSResolver final : public XPathNSResolver {
 public:
-    static NativeXPathNSResolver* create(PassRefPtrWillBeRawPtr<Node> node)
+    static NativeXPathNSResolver* create(RawPtr<Node> node)
     {
         return new NativeXPathNSResolver(node);
     }
@@ -45,9 +45,9 @@
     DECLARE_VIRTUAL_TRACE();
 
 private:
-    explicit NativeXPathNSResolver(PassRefPtrWillBeRawPtr<Node>);
+    explicit NativeXPathNSResolver(RawPtr<Node>);
 
-    RefPtrWillBeMember<Node> m_node;
+    Member<Node> m_node;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/xml/XPathExpressionNode.h b/third_party/WebKit/Source/core/xml/XPathExpressionNode.h
index ff3cc34f..b963bf4 100644
--- a/third_party/WebKit/Source/core/xml/XPathExpressionNode.h
+++ b/third_party/WebKit/Source/core/xml/XPathExpressionNode.h
@@ -42,7 +42,7 @@
 public:
     explicit EvaluationContext(Node&);
 
-    RefPtrWillBeMember<Node> node;
+    Member<Node> node;
     unsigned long size;
     unsigned long position;
     HashMap<String, String> variableBindings;
diff --git a/third_party/WebKit/Source/core/xml/XPathFunctions.cpp b/third_party/WebKit/Source/core/xml/XPathFunctions.cpp
index 791dbc1d..bed7240 100644
--- a/third_party/WebKit/Source/core/xml/XPathFunctions.cpp
+++ b/third_party/WebKit/Source/core/xml/XPathFunctions.cpp
@@ -331,7 +331,7 @@
 
     TreeScope& contextScope = context.node->treeScope();
     NodeSet* result(NodeSet::create());
-    WillBeHeapHashSet<RawPtrWillBeMember<Node>> resultSet;
+    HeapHashSet<Member<Node>> resultSet;
 
     unsigned startPos = 0;
     unsigned length = idList.length();
diff --git a/third_party/WebKit/Source/core/xml/XPathNodeSet.cpp b/third_party/WebKit/Source/core/xml/XPathNodeSet.cpp
index c37c0d2..5a52d5b 100644
--- a/third_party/WebKit/Source/core/xml/XPathNodeSet.cpp
+++ b/third_party/WebKit/Source/core/xml/XPathNodeSet.cpp
@@ -38,7 +38,7 @@
 // even traverse in reasonable time).
 const unsigned traversalSortCutoff = 10000;
 
-typedef WillBeHeapVector<RawPtrWillBeMember<Node>> NodeSetVector;
+typedef HeapVector<Member<Node>> NodeSetVector;
 
 NodeSet* NodeSet::create(const NodeSet& other)
 {
@@ -55,7 +55,7 @@
     return parents[parents.size() - 1 - depth];
 }
 
-static void sortBlock(unsigned from, unsigned to, WillBeHeapVector<NodeSetVector>& parentMatrix, bool mayContainAttributeNodes)
+static void sortBlock(unsigned from, unsigned to, HeapVector<NodeSetVector>& parentMatrix, bool mayContainAttributeNodes)
 {
     // Should not call this function with less that two nodes to sort.
     ASSERT(from + 1 < to);
@@ -123,7 +123,7 @@
     // Children nodes of the common ancestor induce a subdivision of our
     // node-set. Sort it according to this subdivision, and recursively sort
     // each group.
-    WillBeHeapHashSet<RawPtrWillBeMember<Node>> parentNodes;
+    HeapHashSet<Member<Node>> parentNodes;
     for (unsigned i = from; i < to; ++i)
         parentNodes.add(parentWithDepth(commonAncestorDepth + 1, parentMatrix[i]));
 
@@ -170,7 +170,7 @@
 
     bool containsAttributeNodes = false;
 
-    WillBeHeapVector<NodeSetVector> parentMatrix(nodeCount);
+    HeapVector<NodeSetVector> parentMatrix(nodeCount);
     for (unsigned i = 0; i < nodeCount; ++i) {
         NodeSetVector& parentsVector = parentMatrix[i];
         Node* n = m_nodes[i].get();
@@ -187,12 +187,12 @@
 
     // It is not possible to just assign the result to m_nodes, because some
     // nodes may get dereferenced and destroyed.
-    WillBeHeapVector<RefPtrWillBeMember<Node>> sortedNodes;
+    HeapVector<Member<Node>> sortedNodes;
     sortedNodes.reserveInitialCapacity(nodeCount);
     for (unsigned i = 0; i < nodeCount; ++i)
         sortedNodes.append(parentMatrix[i][0]);
 
-    const_cast<WillBeHeapVector<RefPtrWillBeMember<Node>>&>(m_nodes).swap(sortedNodes);
+    const_cast<HeapVector<Member<Node>>&>(m_nodes).swap(sortedNodes);
 }
 
 static Node* findRootNode(Node* node)
@@ -210,7 +210,7 @@
 
 void NodeSet::traversalSort() const
 {
-    WillBeHeapHashSet<RawPtrWillBeMember<Node>> nodes;
+    HeapHashSet<Member<Node>> nodes;
     bool containsAttributeNodes = false;
 
     unsigned nodeCount = m_nodes.size();
@@ -222,7 +222,7 @@
             containsAttributeNodes = true;
     }
 
-    WillBeHeapVector<RefPtrWillBeMember<Node>> sortedNodes;
+    HeapVector<Member<Node>> sortedNodes;
     sortedNodes.reserveInitialCapacity(nodeCount);
 
     for (Node& n : NodeTraversal::startsAt(findRootNode(m_nodes.first().get()))) {
@@ -235,14 +235,14 @@
         Element* element = toElement(&n);
         AttributeCollection attributes = element->attributes();
         for (auto& attribute : attributes) {
-            RefPtrWillBeRawPtr<Attr> attr = element->attrIfExists(attribute.name());
+            RawPtr<Attr> attr = element->attrIfExists(attribute.name());
             if (attr && nodes.contains(attr.get()))
                 sortedNodes.append(attr);
         }
     }
 
     ASSERT(sortedNodes.size() == nodeCount);
-    const_cast<WillBeHeapVector<RefPtrWillBeMember<Node>>&>(m_nodes).swap(sortedNodes);
+    const_cast<HeapVector<Member<Node>>&>(m_nodes).swap(sortedNodes);
 }
 
 void NodeSet::reverse()
diff --git a/third_party/WebKit/Source/core/xml/XPathNodeSet.h b/third_party/WebKit/Source/core/xml/XPathNodeSet.h
index c6ffede..7ffce04 100644
--- a/third_party/WebKit/Source/core/xml/XPathNodeSet.h
+++ b/third_party/WebKit/Source/core/xml/XPathNodeSet.h
@@ -49,7 +49,7 @@
     void swap(NodeSet& other) { std::swap(m_isSorted, other.m_isSorted); std::swap(m_subtreesAreDisjoint, other.m_subtreesAreDisjoint); m_nodes.swap(other.m_nodes); }
 
     // NodeSet itself does not verify that nodes in it are unique.
-    void append(PassRefPtrWillBeRawPtr<Node> node) { m_nodes.append(node); }
+    void append(RawPtr<Node> node) { m_nodes.append(node); }
     void append(const NodeSet& nodeSet) { m_nodes.appendVector(nodeSet.m_nodes); }
 
     // Returns the set's first node in document order, or 0 if the set is empty.
@@ -78,7 +78,7 @@
 
     bool m_isSorted;
     bool m_subtreesAreDisjoint;
-    WillBeHeapVector<RefPtrWillBeMember<Node>> m_nodes;
+    HeapVector<Member<Node>> m_nodes;
 };
 
 } // namespace XPath
diff --git a/third_party/WebKit/Source/core/xml/XPathPath.cpp b/third_party/WebKit/Source/core/xml/XPathPath.cpp
index 1894e01..52f3b44 100644
--- a/third_party/WebKit/Source/core/xml/XPathPath.cpp
+++ b/third_party/WebKit/Source/core/xml/XPathPath.cpp
@@ -132,7 +132,7 @@
     for (unsigned i = 0; i < m_steps.size(); i++) {
         Step* step = m_steps[i];
         NodeSet* newNodes = NodeSet::create();
-        WillBeHeapHashSet<RawPtrWillBeMember<Node>> newNodesSet;
+        HeapHashSet<Member<Node>> newNodesSet;
 
         bool needToCheckForDuplicateNodes = !nodes.subtreesAreDisjoint() || (step->getAxis() != Step::ChildAxis && step->getAxis() != Step::SelfAxis
             && step->getAxis() != Step::DescendantAxis && step->getAxis() != Step::DescendantOrSelfAxis && step->getAxis() != Step::AttributeAxis);
diff --git a/third_party/WebKit/Source/core/xml/XPathPredicate.cpp b/third_party/WebKit/Source/core/xml/XPathPredicate.cpp
index 1800749..8099390 100644
--- a/third_party/WebKit/Source/core/xml/XPathPredicate.cpp
+++ b/third_party/WebKit/Source/core/xml/XPathPredicate.cpp
@@ -256,7 +256,7 @@
     NodeSet& resultSet = lhsResult.modifiableNodeSet(context);
     const NodeSet& rhsNodes = rhs.toNodeSet(&context);
 
-    WillBeHeapHashSet<RawPtrWillBeMember<Node>> nodes;
+    HeapHashSet<Member<Node>> nodes;
     for (size_t i = 0; i < resultSet.size(); ++i)
         nodes.add(resultSet[i]);
 
diff --git a/third_party/WebKit/Source/core/xml/XPathResult.cpp b/third_party/WebKit/Source/core/xml/XPathResult.cpp
index 57baf16..b55320b81 100644
--- a/third_party/WebKit/Source/core/xml/XPathResult.cpp
+++ b/third_party/WebKit/Source/core/xml/XPathResult.cpp
@@ -36,8 +36,6 @@
 
 using namespace XPath;
 
-DEFINE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(XPathResult);
-
 XPathResult::XPathResult(EvaluationContext& context, const Value& value)
     : m_value(value)
     , m_nodeSetPosition(0)
diff --git a/third_party/WebKit/Source/core/xml/XPathResult.h b/third_party/WebKit/Source/core/xml/XPathResult.h
index 3b15465..927af13a 100644
--- a/third_party/WebKit/Source/core/xml/XPathResult.h
+++ b/third_party/WebKit/Source/core/xml/XPathResult.h
@@ -44,7 +44,6 @@
 
 // TODO(Oilpan): remove Finalized when transition type for m_document is.
 class XPathResult final : public GarbageCollectedFinalized<XPathResult>, public ScriptWrappable {
-    DECLARE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(XPathResult);
     DEFINE_WRAPPERTYPEINFO();
 public:
     enum XPathResultType {
@@ -91,7 +90,7 @@
     unsigned m_nodeSetPosition;
     Member<XPath::NodeSet> m_nodeSet; // FIXME: why duplicate the node set stored in m_value?
     unsigned short m_resultType;
-    RefPtrWillBeMember<Document> m_document;
+    Member<Document> m_document;
     uint64_t m_domTreeVersion;
 };
 
diff --git a/third_party/WebKit/Source/core/xml/XPathStep.cpp b/third_party/WebKit/Source/core/xml/XPathStep.cpp
index 32db6be..dfcfa13 100644
--- a/third_party/WebKit/Source/core/xml/XPathStep.cpp
+++ b/third_party/WebKit/Source/core/xml/XPathStep.cpp
@@ -371,7 +371,7 @@
         // Avoid lazily creating attribute nodes for attributes that we do not
         // need anyway.
         if (nodeTest().getKind() == NodeTest::NameTest && nodeTest().data() != starAtom) {
-            RefPtrWillBeRawPtr<Attr> attr = contextElement->getAttributeNodeNS(nodeTest().namespaceURI(), nodeTest().data());
+            RawPtr<Attr> attr = contextElement->getAttributeNodeNS(nodeTest().namespaceURI(), nodeTest().data());
             // In XPath land, namespace nodes are not accessible on the attribute axis.
             if (attr && attr->namespaceURI() != XMLNSNames::xmlnsNamespaceURI) {
                 // Still need to check merged predicates.
@@ -383,7 +383,7 @@
 
         AttributeCollection attributes = contextElement->attributes();
         for (auto& attribute : attributes) {
-            RefPtrWillBeRawPtr<Attr> attr = contextElement->ensureAttr(attribute.name());
+            RawPtr<Attr> attr = contextElement->ensureAttr(attribute.name());
             if (nodeMatches(evaluationContext, attr.get(), AttributeAxis, nodeTest()))
                 nodes.append(attr.release());
         }
diff --git a/third_party/WebKit/Source/core/xml/XSLImportRule.cpp b/third_party/WebKit/Source/core/xml/XSLImportRule.cpp
index 6d240ca..4fa86876 100644
--- a/third_party/WebKit/Source/core/xml/XSLImportRule.cpp
+++ b/third_party/WebKit/Source/core/xml/XSLImportRule.cpp
@@ -100,7 +100,7 @@
     ResourceLoaderOptions fetchOptions(ResourceFetcher::defaultResourceOptions());
     FetchRequest request(ResourceRequest(ownerDocument->completeURL(absHref)), FetchInitiatorTypeNames::xml, fetchOptions);
     request.setOriginRestriction(FetchRequest::RestrictToSameOrigin);
-    RefPtrWillBeRawPtr<XSLStyleSheetResource> resource = XSLStyleSheetResource::fetchSynchronously(request, ownerDocument->fetcher());
+    RawPtr<XSLStyleSheetResource> resource = XSLStyleSheetResource::fetchSynchronously(request, ownerDocument->fetcher());
     if (!resource || !resource->sheet())
         return;
 
diff --git a/third_party/WebKit/Source/core/xml/XSLImportRule.h b/third_party/WebKit/Source/core/xml/XSLImportRule.h
index c023f78c..349166b 100644
--- a/third_party/WebKit/Source/core/xml/XSLImportRule.h
+++ b/third_party/WebKit/Source/core/xml/XSLImportRule.h
@@ -54,9 +54,9 @@
 
     void setXSLStyleSheet(const String& href, const KURL& baseURL, const String& sheet);
 
-    RawPtrWillBeMember<XSLStyleSheet> m_parentStyleSheet;
+    Member<XSLStyleSheet> m_parentStyleSheet;
     String m_strHref;
-    RefPtrWillBeMember<XSLStyleSheet> m_styleSheet;
+    Member<XSLStyleSheet> m_styleSheet;
     bool m_loading;
 };
 
diff --git a/third_party/WebKit/Source/core/xml/XSLStyleSheet.h b/third_party/WebKit/Source/core/xml/XSLStyleSheet.h
index 4a439ee..c8daf2f 100644
--- a/third_party/WebKit/Source/core/xml/XSLStyleSheet.h
+++ b/third_party/WebKit/Source/core/xml/XSLStyleSheet.h
@@ -36,29 +36,29 @@
 
 class XSLStyleSheet final : public StyleSheet {
 public:
-    static PassRefPtrWillBeRawPtr<XSLStyleSheet> create(XSLImportRule* parentImport, const String& originalURL, const KURL& finalURL)
+    static RawPtr<XSLStyleSheet> create(XSLImportRule* parentImport, const String& originalURL, const KURL& finalURL)
     {
         ASSERT(RuntimeEnabledFeatures::xsltEnabled());
-        return adoptRefWillBeNoop(new XSLStyleSheet(parentImport, originalURL, finalURL));
+        return new XSLStyleSheet(parentImport, originalURL, finalURL);
     }
-    static PassRefPtrWillBeRawPtr<XSLStyleSheet> create(ProcessingInstruction* parentNode, const String& originalURL, const KURL& finalURL)
+    static RawPtr<XSLStyleSheet> create(ProcessingInstruction* parentNode, const String& originalURL, const KURL& finalURL)
     {
         ASSERT(RuntimeEnabledFeatures::xsltEnabled());
-        return adoptRefWillBeNoop(new XSLStyleSheet(parentNode, originalURL, finalURL, false));
+        return new XSLStyleSheet(parentNode, originalURL, finalURL, false);
     }
-    static PassRefPtrWillBeRawPtr<XSLStyleSheet> createEmbedded(ProcessingInstruction* parentNode, const KURL& finalURL)
+    static RawPtr<XSLStyleSheet> createEmbedded(ProcessingInstruction* parentNode, const KURL& finalURL)
     {
         ASSERT(RuntimeEnabledFeatures::xsltEnabled());
-        return adoptRefWillBeNoop(new XSLStyleSheet(parentNode, finalURL.getString(), finalURL, true));
+        return new XSLStyleSheet(parentNode, finalURL.getString(), finalURL, true);
     }
 
     // Taking an arbitrary node is unsafe, because owner node pointer can become
     // stale. XSLTProcessor ensures that the stylesheet doesn't outlive its
     // parent, in part by not exposing it to JavaScript.
-    static PassRefPtrWillBeRawPtr<XSLStyleSheet> createForXSLTProcessor(Document* document, Node* stylesheetRootNode, const String& originalURL, const KURL& finalURL)
+    static RawPtr<XSLStyleSheet> createForXSLTProcessor(Document* document, Node* stylesheetRootNode, const String& originalURL, const KURL& finalURL)
     {
         ASSERT(RuntimeEnabledFeatures::xsltEnabled());
-        return adoptRefWillBeNoop(new XSLStyleSheet(document, stylesheetRootNode, originalURL, finalURL, false));
+        return new XSLStyleSheet(document, stylesheetRootNode, originalURL, finalURL, false);
     }
 
     ~XSLStyleSheet() override;
@@ -103,12 +103,12 @@
     XSLStyleSheet(Document* ownerDocument, Node* styleSheetRootNode, const String& originalURL, const KURL& finalURL, bool embedded);
     XSLStyleSheet(XSLImportRule* parentImport, const String& originalURL, const KURL& finalURL);
 
-    RawPtrWillBeMember<Node> m_ownerNode;
+    Member<Node> m_ownerNode;
     String m_originalURL;
     KURL m_finalURL;
     bool m_isDisabled;
 
-    PersistentHeapVectorWillBeHeapVector<Member<XSLImportRule>> m_children;
+    HeapVector<Member<XSLImportRule>> m_children;
 
     bool m_embedded;
     bool m_processed;
@@ -117,8 +117,8 @@
     bool m_stylesheetDocTaken;
     bool m_compilationFailed;
 
-    RawPtrWillBeMember<XSLStyleSheet> m_parentStyleSheet;
-    RefPtrWillBeMember<Document> m_ownerDocument;
+    Member<XSLStyleSheet> m_parentStyleSheet;
+    Member<Document> m_ownerDocument;
 };
 
 DEFINE_TYPE_CASTS(XSLStyleSheet, StyleSheet, sheet, !sheet->isCSSStyleSheet(), !sheet.isCSSStyleSheet());
diff --git a/third_party/WebKit/Source/core/xml/XSLTProcessor.cpp b/third_party/WebKit/Source/core/xml/XSLTProcessor.cpp
index 774add4..f6ed118e 100644
--- a/third_party/WebKit/Source/core/xml/XSLTProcessor.cpp
+++ b/third_party/WebKit/Source/core/xml/XSLTProcessor.cpp
@@ -40,8 +40,8 @@
 static inline void transformTextStringToXHTMLDocumentString(String& text)
 {
     // Modify the output so that it is a well-formed XHTML document with a <pre> tag enclosing the text.
-    text.replaceWithLiteral('&', "&amp;");
-    text.replaceWithLiteral('<', "&lt;");
+    text.replace('&', "&amp;");
+    text.replace('<', "&lt;");
     text = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
         "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n"
         "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n"
@@ -60,14 +60,14 @@
 #endif
 }
 
-PassRefPtrWillBeRawPtr<Document> XSLTProcessor::createDocumentFromSource(const String& sourceString,
+RawPtr<Document> XSLTProcessor::createDocumentFromSource(const String& sourceString,
     const String& sourceEncoding, const String& sourceMIMEType, Node* sourceNode, LocalFrame* frame)
 {
-    RefPtrWillBeRawPtr<Document> ownerDocument(sourceNode->document());
+    RawPtr<Document> ownerDocument(sourceNode->document());
     bool sourceIsDocument = (sourceNode == ownerDocument.get());
     String documentSource = sourceString;
 
-    RefPtrWillBeRawPtr<Document> result = nullptr;
+    RawPtr<Document> result = nullptr;
     DocumentInit init(sourceIsDocument ? ownerDocument->url() : KURL(), frame);
 
     bool forceXHTML = sourceMIMEType == "text/plain";
@@ -75,7 +75,7 @@
         transformTextStringToXHTMLDocumentString(documentSource);
 
     if (frame) {
-        RefPtrWillBeRawPtr<Document> oldDocument = frame->document();
+        RawPtr<Document> oldDocument = frame->document();
         // Before parsing, we need to save & detach the old document and get the new document
         // in place. Document::detach() tears down the FrameView, so remember whether or not
         // there was one.
@@ -91,7 +91,7 @@
             result->updateSecurityOrigin(oldDocument->getSecurityOrigin());
             result->setCookieURL(oldDocument->cookieURL());
 
-            RefPtrWillBeRawPtr<ContentSecurityPolicy> csp = ContentSecurityPolicy::create();
+            RawPtr<ContentSecurityPolicy> csp = ContentSecurityPolicy::create();
             csp->copyStateFrom(oldDocument->contentSecurityPolicy());
             result->initContentSecurityPolicy(csp);
         }
@@ -107,7 +107,7 @@
     return result.release();
 }
 
-PassRefPtrWillBeRawPtr<Document> XSLTProcessor::transformToDocument(Node* sourceNode)
+RawPtr<Document> XSLTProcessor::transformToDocument(Node* sourceNode)
 {
     String resultMIMEType;
     String resultString;
@@ -117,7 +117,7 @@
     return createDocumentFromSource(resultString, resultEncoding, resultMIMEType, sourceNode, 0);
 }
 
-PassRefPtrWillBeRawPtr<DocumentFragment> XSLTProcessor::transformToFragment(Node* sourceNode, Document* outputDoc)
+RawPtr<DocumentFragment> XSLTProcessor::transformToFragment(Node* sourceNode, Document* outputDoc)
 {
     String resultMIMEType;
     String resultString;
diff --git a/third_party/WebKit/Source/core/xml/XSLTProcessor.h b/third_party/WebKit/Source/core/xml/XSLTProcessor.h
index 093f76d..1ee94ab2 100644
--- a/third_party/WebKit/Source/core/xml/XSLTProcessor.h
+++ b/third_party/WebKit/Source/core/xml/XSLTProcessor.h
@@ -49,17 +49,17 @@
     }
     ~XSLTProcessor();
 
-    void setXSLStyleSheet(PassRefPtrWillBeRawPtr<XSLStyleSheet> styleSheet) { m_stylesheet = styleSheet; }
+    void setXSLStyleSheet(RawPtr<XSLStyleSheet> styleSheet) { m_stylesheet = styleSheet; }
     bool transformToString(Node* source, String& resultMIMEType, String& resultString, String& resultEncoding);
-    PassRefPtrWillBeRawPtr<Document> createDocumentFromSource(const String& source, const String& sourceEncoding, const String& sourceMIMEType, Node* sourceNode, LocalFrame*);
+    RawPtr<Document> createDocumentFromSource(const String& source, const String& sourceEncoding, const String& sourceMIMEType, Node* sourceNode, LocalFrame*);
 
     // DOM methods
-    void importStylesheet(PassRefPtrWillBeRawPtr<Node> style)
+    void importStylesheet(RawPtr<Node> style)
     {
         m_stylesheetRootNode = style;
     }
-    PassRefPtrWillBeRawPtr<DocumentFragment> transformToFragment(Node* source, Document* ouputDoc);
-    PassRefPtrWillBeRawPtr<Document> transformToDocument(Node* source);
+    RawPtr<DocumentFragment> transformToFragment(Node* source, Document* ouputDoc);
+    RawPtr<Document> transformToDocument(Node* source);
 
     void setParameter(const String& namespaceURI, const String& localName, const String& value);
     String getParameter(const String& namespaceURI, const String& localName) const;
@@ -83,9 +83,9 @@
         : m_document(&document)
     { }
 
-    RefPtrWillBeMember<XSLStyleSheet> m_stylesheet;
-    RefPtrWillBeMember<Node> m_stylesheetRootNode;
-    RefPtrWillBeMember<Document> m_document;
+    Member<XSLStyleSheet> m_stylesheet;
+    Member<Node> m_stylesheetRootNode;
+    Member<Document> m_document;
     ParameterMap m_parameters;
 };
 
diff --git a/third_party/WebKit/Source/core/xml/XSLTProcessorLibxslt.cpp b/third_party/WebKit/Source/core/xml/XSLTProcessorLibxslt.cpp
index f14fcc7..204684f 100644
--- a/third_party/WebKit/Source/core/xml/XSLTProcessorLibxslt.cpp
+++ b/third_party/WebKit/Source/core/xml/XSLTProcessorLibxslt.cpp
@@ -103,7 +103,7 @@
         ResourceLoaderOptions fetchOptions(ResourceFetcher::defaultResourceOptions());
         FetchRequest request(ResourceRequest(url), FetchInitiatorTypeNames::xml, fetchOptions);
         request.setOriginRestriction(FetchRequest::RestrictToSameOrigin);
-        RefPtrWillBeRawPtr<Resource> resource = RawResource::fetchSynchronously(request, globalResourceFetcher);
+        RawPtr<Resource> resource = RawResource::fetchSynchronously(request, globalResourceFetcher);
         if (!resource || !globalProcessor)
             return nullptr;
 
@@ -226,7 +226,7 @@
     WTF::Partitions::fastFree(params);
 }
 
-static xsltStylesheetPtr xsltStylesheetPointer(Document* document, RefPtrWillBeMember<XSLStyleSheet>& cachedStylesheet, Node* stylesheetRootNode)
+static xsltStylesheetPtr xsltStylesheetPointer(Document* document, Member<XSLStyleSheet>& cachedStylesheet, Node* stylesheetRootNode)
 {
     if (!cachedStylesheet && stylesheetRootNode) {
         // When using importStylesheet, we will use the given document as the imported stylesheet's owner.
@@ -250,7 +250,7 @@
 
 static inline xmlDocPtr xmlDocPtrFromNode(Node* sourceNode, bool& shouldDelete)
 {
-    RefPtrWillBeRawPtr<Document> ownerDocument(sourceNode->document());
+    RawPtr<Document> ownerDocument(sourceNode->document());
     bool sourceIsDocument = (sourceNode == ownerDocument.get());
 
     xmlDocPtr sourceDoc = nullptr;
@@ -285,7 +285,7 @@
 
 bool XSLTProcessor::transformToString(Node* sourceNode, String& mimeType, String& resultString, String& resultEncoding)
 {
-    RefPtrWillBeRawPtr<Document> ownerDocument(sourceNode->document());
+    RawPtr<Document> ownerDocument(sourceNode->document());
 
     setXSLTLoadCallBack(docLoaderFunc, this, ownerDocument->fetcher());
     xsltStylesheetPtr sheet = xsltStylesheetPointer(m_document.get(), m_stylesheet, m_stylesheetRootNode.get());
diff --git a/third_party/WebKit/Source/core/xml/parser/XMLDocumentParser.cpp b/third_party/WebKit/Source/core/xml/parser/XMLDocumentParser.cpp
index 57941e4..11aa9607 100644
--- a/third_party/WebKit/Source/core/xml/parser/XMLDocumentParser.cpp
+++ b/third_party/WebKit/Source/core/xml/parser/XMLDocumentParser.cpp
@@ -375,7 +375,7 @@
 
     // JavaScript can detach the parser. Make sure this is not released
     // before the end of this method.
-    RefPtrWillBeRawPtr<XMLDocumentParser> protect(this);
+    RawPtr<XMLDocumentParser> protect(this);
 
     doWrite(source.toString());
 }
@@ -462,7 +462,7 @@
     // However, FrameLoader::stop calls DocumentParser::finish unconditionally.
 
     // flush may ending up executing arbitrary script, and possibly detach the parser.
-    RefPtrWillBeRawPtr<XMLDocumentParser> protect(this);
+    RawPtr<XMLDocumentParser> protect(this);
     flush();
     if (isDetached())
         return;
@@ -489,7 +489,7 @@
     m_pendingScript->removeClient(this);
     m_pendingScript = nullptr;
 
-    RefPtrWillBeRawPtr<Element> e = m_scriptElement;
+    RawPtr<Element> e = m_scriptElement;
     m_scriptElement = nullptr;
 
     ScriptLoader* scriptLoader = toScriptLoaderIfPossible(e.get());
@@ -497,7 +497,7 @@
 
     // JavaScript can detach this parser, make sure it's kept alive even if
     // detached.
-    RefPtrWillBeRawPtr<XMLDocumentParser> protect(this);
+    RawPtr<XMLDocumentParser> protect(this);
 
     if (errorOccurred) {
         scriptLoader->dispatchErrorEvent();
@@ -538,7 +538,7 @@
         return true;
     }
 
-    RefPtrWillBeRawPtr<XMLDocumentParser> parser = XMLDocumentParser::create(fragment, contextElement, parserContentPolicy);
+    RawPtr<XMLDocumentParser> parser = XMLDocumentParser::create(fragment, contextElement, parserContentPolicy);
     bool wellFormed = parser->appendFragmentSource(chunk);
 
     // Do not call finish(). Current finish() and doEnd() implementations touch
@@ -674,7 +674,7 @@
         XMLDocumentParserScope scope(0);
         // FIXME: We should restore the original global error handler as well.
         FetchRequest request(ResourceRequest(url), FetchInitiatorTypeNames::xml, ResourceFetcher::defaultResourceOptions());
-        RefPtrWillBeRawPtr<Resource> resource = RawResource::fetchSynchronously(request, document->fetcher());
+        RawPtr<Resource> resource = RawResource::fetchSynchronously(request, document->fetcher());
         if (resource && !resource->errorOccurred()) {
             data = resource->resourceBuffer();
             finalURL = resource->response().url();
@@ -834,7 +834,7 @@
 #endif
 
     // Add namespaces based on the parent node
-    WillBeHeapVector<RawPtrWillBeMember<Element>> elemStack;
+    HeapVector<Member<Element>> elemStack;
     while (parentElement) {
         elemStack.append(parentElement);
 
@@ -908,7 +908,7 @@
     if (parseString.length()) {
         // JavaScript may cause the parser to detach during parseChunk
         // keep this alive until this function is done.
-        RefPtrWillBeRawPtr<XMLDocumentParser> protect(this);
+        RawPtr<XMLDocumentParser> protect(this);
 
         XMLDocumentParserScope scope(document());
         TemporaryChange<bool> encodingScope(m_isCurrentlyParsing8BitChunk, parseString.is8Bit());
@@ -1022,7 +1022,7 @@
     m_sawFirstElement = true;
 
     QualifiedName qName(prefix, localName, adjustedURI);
-    RefPtrWillBeRawPtr<Element> newElement = m_currentNode->document().createElement(qName, true);
+    RawPtr<Element> newElement = m_currentNode->document().createElement(qName, true);
     if (!newElement) {
         stopParsing();
         return;
@@ -1086,12 +1086,12 @@
 
     // JavaScript can detach the parser. Make sure this is not released before
     // the end of this method.
-    RefPtrWillBeRawPtr<XMLDocumentParser> protect(this);
+    RawPtr<XMLDocumentParser> protect(this);
 
     if (!updateLeafTextNode())
         return;
 
-    RefPtrWillBeRawPtr<ContainerNode> n = m_currentNode;
+    RawPtr<ContainerNode> n = m_currentNode;
     if (m_currentNode->isElementNode())
         toElement(n.get())->finishParsingChildren();
 
@@ -1205,7 +1205,7 @@
 
     // ### handle exceptions
     TrackExceptionState exceptionState;
-    RefPtrWillBeRawPtr<ProcessingInstruction> pi = m_currentNode->document().createProcessingInstruction(target, data, exceptionState);
+    RawPtr<ProcessingInstruction> pi = m_currentNode->document().createProcessingInstruction(target, data, exceptionState);
     if (exceptionState.hadException())
         return;
 
diff --git a/third_party/WebKit/Source/core/xml/parser/XMLDocumentParser.h b/third_party/WebKit/Source/core/xml/parser/XMLDocumentParser.h
index 8eb344d..4b3bd21 100644
--- a/third_party/WebKit/Source/core/xml/parser/XMLDocumentParser.h
+++ b/third_party/WebKit/Source/core/xml/parser/XMLDocumentParser.h
@@ -65,15 +65,14 @@
 };
 
 class XMLDocumentParser final : public ScriptableDocumentParser, public ScriptResourceClient {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(XMLDocumentParser);
 public:
-    static PassRefPtrWillBeRawPtr<XMLDocumentParser> create(Document& document, FrameView* view)
+    static RawPtr<XMLDocumentParser> create(Document& document, FrameView* view)
     {
-        return adoptRefWillBeNoop(new XMLDocumentParser(document, view));
+        return new XMLDocumentParser(document, view);
     }
-    static PassRefPtrWillBeRawPtr<XMLDocumentParser> create(DocumentFragment* fragment, Element* element, ParserContentPolicy parserContentPolicy)
+    static RawPtr<XMLDocumentParser> create(DocumentFragment* fragment, Element* element, ParserContentPolicy parserContentPolicy)
     {
-        return adoptRefWillBeNoop(new XMLDocumentParser(fragment, element, parserContentPolicy));
+        return new XMLDocumentParser(fragment, element, parserContentPolicy);
     }
     ~XMLDocumentParser() override;
     DECLARE_VIRTUAL_TRACE();
@@ -167,10 +166,10 @@
     Deque<OwnPtr<PendingCallback>> m_pendingCallbacks;
     Vector<xmlChar> m_bufferedText;
 
-    RawPtrWillBeMember<ContainerNode> m_currentNode;
-    WillBeHeapVector<RawPtrWillBeMember<ContainerNode>> m_currentNodeStack;
+    Member<ContainerNode> m_currentNode;
+    HeapVector<Member<ContainerNode>> m_currentNodeStack;
 
-    RefPtrWillBeMember<Text> m_leafTextNode;
+    Member<Text> m_leafTextNode;
 
     bool m_isCurrentlyParsing8BitChunk;
     bool m_sawError;
@@ -184,8 +183,8 @@
 
     XMLErrors m_xmlErrors;
 
-    RefPtrWillBeMember<ScriptResource> m_pendingScript;
-    RefPtrWillBeMember<Element> m_scriptElement;
+    Member<ScriptResource> m_pendingScript;
+    Member<Element> m_scriptElement;
     TextPosition m_scriptStartPosition;
 
     bool m_parsingFragment;
diff --git a/third_party/WebKit/Source/core/xml/parser/XMLDocumentParserScope.h b/third_party/WebKit/Source/core/xml/parser/XMLDocumentParserScope.h
index 6095e763..60ebc40a 100644
--- a/third_party/WebKit/Source/core/xml/parser/XMLDocumentParserScope.h
+++ b/third_party/WebKit/Source/core/xml/parser/XMLDocumentParserScope.h
@@ -45,7 +45,7 @@
     static Document* currentDocument;
 
 private:
-    RawPtrWillBeMember<Document> m_oldDocument;
+    Member<Document> m_oldDocument;
 
     xmlGenericErrorFunc m_oldGenericErrorFunc;
     xmlStructuredErrorFunc m_oldStructuredErrorFunc;
diff --git a/third_party/WebKit/Source/core/xml/parser/XMLErrors.cpp b/third_party/WebKit/Source/core/xml/parser/XMLErrors.cpp
index a8253df..3eab71f47 100644
--- a/third_party/WebKit/Source/core/xml/parser/XMLErrors.cpp
+++ b/third_party/WebKit/Source/core/xml/parser/XMLErrors.cpp
@@ -88,19 +88,19 @@
     m_errorMessages.append(message);
 }
 
-static inline PassRefPtrWillBeRawPtr<Element> createXHTMLParserErrorHeader(Document* doc, const String& errorMessages)
+static inline RawPtr<Element> createXHTMLParserErrorHeader(Document* doc, const String& errorMessages)
 {
-    RefPtrWillBeRawPtr<Element> reportElement = doc->createElement(QualifiedName(nullAtom, "parsererror", xhtmlNamespaceURI), true);
+    RawPtr<Element> reportElement = doc->createElement(QualifiedName(nullAtom, "parsererror", xhtmlNamespaceURI), true);
 
     Vector<Attribute> reportAttributes;
     reportAttributes.append(Attribute(styleAttr, "display: block; white-space: pre; border: 2px solid #c77; padding: 0 1em 0 1em; margin: 1em; background-color: #fdd; color: black"));
     reportElement->parserSetAttributes(reportAttributes);
 
-    RefPtrWillBeRawPtr<Element> h3 = doc->createElement(h3Tag, true);
+    RawPtr<Element> h3 = doc->createElement(h3Tag, true);
     reportElement->parserAppendChild(h3.get());
     h3->parserAppendChild(doc->createTextNode("This page contains the following errors:"));
 
-    RefPtrWillBeRawPtr<Element> fixed = doc->createElement(divTag, true);
+    RawPtr<Element> fixed = doc->createElement(divTag, true);
     Vector<Attribute> fixedAttributes;
     fixedAttributes.append(Attribute(styleAttr, "font-family:monospace;font-size:12px"));
     fixed->parserSetAttributes(fixedAttributes);
@@ -122,22 +122,22 @@
     // where the errors are located)
 
     // Create elements for display
-    RefPtrWillBeRawPtr<Element> documentElement = m_document->documentElement();
+    RawPtr<Element> documentElement = m_document->documentElement();
     if (!documentElement) {
-        RefPtrWillBeRawPtr<Element> rootElement = m_document->createElement(htmlTag, true);
-        RefPtrWillBeRawPtr<Element> body = m_document->createElement(bodyTag, true);
+        RawPtr<Element> rootElement = m_document->createElement(htmlTag, true);
+        RawPtr<Element> body = m_document->createElement(bodyTag, true);
         rootElement->parserAppendChild(body);
         m_document->parserAppendChild(rootElement);
         documentElement = body.get();
     } else if (documentElement->namespaceURI() == SVGNames::svgNamespaceURI) {
-        RefPtrWillBeRawPtr<Element> rootElement = m_document->createElement(htmlTag, true);
-        RefPtrWillBeRawPtr<Element> head = m_document->createElement(headTag, true);
-        RefPtrWillBeRawPtr<Element> style = m_document->createElement(styleTag, true);
+        RawPtr<Element> rootElement = m_document->createElement(htmlTag, true);
+        RawPtr<Element> head = m_document->createElement(headTag, true);
+        RawPtr<Element> style = m_document->createElement(styleTag, true);
         head->parserAppendChild(style);
         style->parserAppendChild(m_document->createTextNode("html, body { height: 100% } parsererror + svg { width: 100%; height: 100% }"));
         style->finishParsingChildren();
         rootElement->parserAppendChild(head);
-        RefPtrWillBeRawPtr<Element> body = m_document->createElement(bodyTag, true);
+        RawPtr<Element> body = m_document->createElement(bodyTag, true);
         rootElement->parserAppendChild(body);
 
         m_document->parserRemoveChild(*documentElement);
@@ -149,12 +149,12 @@
     }
 
     String errorMessages = m_errorMessages.toString();
-    RefPtrWillBeRawPtr<Element> reportElement = createXHTMLParserErrorHeader(m_document, errorMessages);
+    RawPtr<Element> reportElement = createXHTMLParserErrorHeader(m_document, errorMessages);
 
     if (DocumentXSLT::hasTransformSourceDocument(*m_document)) {
         Vector<Attribute> attributes;
         attributes.append(Attribute(styleAttr, "white-space: normal"));
-        RefPtrWillBeRawPtr<Element> paragraph = m_document->createElement(pTag, true);
+        RawPtr<Element> paragraph = m_document->createElement(pTag, true);
         paragraph->parserSetAttributes(attributes);
         paragraph->parserAppendChild(m_document->createTextNode("This document was created as the result of an XSL transformation. The line and column numbers given are from the transformed result."));
         reportElement->parserAppendChild(paragraph.release());
diff --git a/third_party/WebKit/Source/core/xml/parser/XMLErrors.h b/third_party/WebKit/Source/core/xml/parser/XMLErrors.h
index 89f7154..9848d3f 100644
--- a/third_party/WebKit/Source/core/xml/parser/XMLErrors.h
+++ b/third_party/WebKit/Source/core/xml/parser/XMLErrors.h
@@ -53,7 +53,7 @@
 private:
     void appendErrorMessage(const String& typeString, TextPosition, const char* message);
 
-    RawPtrWillBeMember<Document> m_document;
+    Member<Document> m_document;
 
     int m_errorCount;
     TextPosition m_lastErrorPosition;
diff --git a/third_party/WebKit/Source/modules/accessibility/AXObject.cpp b/third_party/WebKit/Source/modules/accessibility/AXObject.cpp
index 83703b1..4e1e14b 100644
--- a/third_party/WebKit/Source/modules/accessibility/AXObject.cpp
+++ b/third_party/WebKit/Source/modules/accessibility/AXObject.cpp
@@ -1112,16 +1112,10 @@
 
 AXObject* AXObject::elementAccessibilityHitTest(const IntPoint& point) const
 {
-    // Check if there are any mock elements or child frames that need to be handled.
+    // Check if there are any mock elements that need to be handled.
     for (const auto& child : m_children) {
         if (child->isMockObject() && child->elementRect().contains(point))
             return child->elementAccessibilityHitTest(point);
-
-        if (child->isWebArea()) {
-            FrameView* frameView = child->documentFrameView();
-            if (frameView)
-                return child->accessibilityHitTest(IntPoint(point - frameView->frameRect().location()));
-        }
     }
 
     return const_cast<AXObject*>(this);
diff --git a/third_party/WebKit/Source/modules/credentialmanager/Credential.h b/third_party/WebKit/Source/modules/credentialmanager/Credential.h
index 1baa1d1..b14f027 100644
--- a/third_party/WebKit/Source/modules/credentialmanager/Credential.h
+++ b/third_party/WebKit/Source/modules/credentialmanager/Credential.h
@@ -6,6 +6,7 @@
 #define Credential_h
 
 #include "bindings/core/v8/ScriptWrappable.h"
+#include "modules/ModulesExport.h"
 #include "platform/credentialmanager/PlatformCredential.h"
 #include "platform/heap/Handle.h"
 #include "platform/weborigin/KURL.h"
@@ -14,7 +15,7 @@
 
 class ExceptionState;
 
-class Credential : public GarbageCollectedFinalized<Credential>, public ScriptWrappable {
+class MODULES_EXPORT Credential : public GarbageCollectedFinalized<Credential>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
     virtual ~Credential();
diff --git a/third_party/WebKit/Source/modules/credentialmanager/FederatedCredential.h b/third_party/WebKit/Source/modules/credentialmanager/FederatedCredential.h
index c4b9657..403000a 100644
--- a/third_party/WebKit/Source/modules/credentialmanager/FederatedCredential.h
+++ b/third_party/WebKit/Source/modules/credentialmanager/FederatedCredential.h
@@ -7,6 +7,7 @@
 
 #include "bindings/core/v8/ScriptWrappable.h"
 #include "bindings/core/v8/SerializedScriptValue.h"
+#include "modules/ModulesExport.h"
 #include "modules/credentialmanager/Credential.h"
 #include "platform/heap/Handle.h"
 #include "platform/weborigin/KURL.h"
@@ -16,7 +17,7 @@
 class FederatedCredentialData;
 class WebFederatedCredential;
 
-class FederatedCredential final : public Credential {
+class MODULES_EXPORT FederatedCredential final : public Credential {
     DEFINE_WRAPPERTYPEINFO();
 public:
     static FederatedCredential* create(const FederatedCredentialData&, ExceptionState&);
diff --git a/third_party/WebKit/Source/modules/credentialmanager/PasswordCredential.cpp b/third_party/WebKit/Source/modules/credentialmanager/PasswordCredential.cpp
index 84d20e4f..98392e0 100644
--- a/third_party/WebKit/Source/modules/credentialmanager/PasswordCredential.cpp
+++ b/third_party/WebKit/Source/modules/credentialmanager/PasswordCredential.cpp
@@ -6,9 +6,12 @@
 
 #include "bindings/core/v8/Dictionary.h"
 #include "bindings/core/v8/ExceptionState.h"
+#include "core/HTMLNames.h"
 #include "core/dom/ExecutionContext.h"
 #include "core/dom/URLSearchParams.h"
+#include "core/html/FormAssociatedElement.h"
 #include "core/html/FormData.h"
+#include "core/html/HTMLFormElement.h"
 #include "modules/credentialmanager/FormDataOptions.h"
 #include "modules/credentialmanager/PasswordCredentialData.h"
 #include "platform/credentialmanager/PlatformPasswordCredential.h"
@@ -41,6 +44,66 @@
     return new PasswordCredential(data.id(), data.password(), data.name(), iconURL);
 }
 
+// https://w3c.github.io/webappsec-credential-management/#passwordcredential-form-constructor
+PasswordCredential* PasswordCredential::create(HTMLFormElement* form, ExceptionState& exceptionState)
+{
+    // Extract data from the form, then use the extracted |formData| object's
+    // value to populate |data|.
+    FormData* formData = FormData::create(form);
+    PasswordCredentialData data;
+
+    AtomicString idName;
+    AtomicString passwordName;
+    for (FormAssociatedElement* element : form->associatedElements()) {
+        // If |element| isn't a "submittable element" with string data, then it
+        // won't have a matching value in |formData|, and we can safely skip it.
+        FileOrUSVString result;
+        formData->get(element->name(), result);
+        if (!result.isUSVString())
+            continue;
+
+        AtomicString autocomplete = toHTMLElement(element)->fastGetAttribute(HTMLNames::autocompleteAttr);
+        if (equalIgnoringCase(autocomplete, "current-password") || equalIgnoringCase(autocomplete, "new-password")) {
+            data.setPassword(result.getAsUSVString());
+            passwordName = element->name();
+        } else if (equalIgnoringCase(autocomplete, "photo")) {
+            data.setIconURL(result.getAsUSVString());
+        } else if (equalIgnoringCase(autocomplete, "name") || equalIgnoringCase(autocomplete, "nickname")) {
+            data.setName(result.getAsUSVString());
+        } else if (equalIgnoringCase(autocomplete, "username")) {
+            data.setId(result.getAsUSVString());
+            idName = element->name();
+        }
+    }
+
+    // Create a PasswordCredential using the data gathered above.
+    PasswordCredential* credential = PasswordCredential::create(data, exceptionState);
+    if (exceptionState.hadException())
+        return nullptr;
+    ASSERT(credential);
+
+    // After creating the Credential, populate its 'additionalData', 'idName', and 'passwordName' attributes.
+    // If the form's 'enctype' is anything other than multipart, generate a URLSearchParams using the
+    // data in |formData|.
+    credential->setIdName(idName);
+    credential->setPasswordName(passwordName);
+
+    FormDataOrURLSearchParams additionalData;
+    if (form->enctype() == "multipart/form-data") {
+        additionalData.setFormData(formData);
+    } else {
+        URLSearchParams* params = URLSearchParams::create(URLSearchParamsInit());
+        for (const FormData::Entry* entry : formData->entries()) {
+            if (entry->isString())
+                params->append(entry->name().data(), entry->value().data());
+        }
+        additionalData.setURLSearchParams(params);
+    }
+
+    credential->setAdditionalData(additionalData);
+    return credential;
+}
+
 PasswordCredential::PasswordCredential(WebPasswordCredential* webPasswordCredential)
     : Credential(webPasswordCredential->getPlatformCredential())
     , m_idName("username")
diff --git a/third_party/WebKit/Source/modules/credentialmanager/PasswordCredential.h b/third_party/WebKit/Source/modules/credentialmanager/PasswordCredential.h
index c34b11a..9fc45a21 100644
--- a/third_party/WebKit/Source/modules/credentialmanager/PasswordCredential.h
+++ b/third_party/WebKit/Source/modules/credentialmanager/PasswordCredential.h
@@ -8,6 +8,7 @@
 #include "bindings/core/v8/ScriptWrappable.h"
 #include "bindings/core/v8/SerializedScriptValue.h"
 #include "bindings/modules/v8/UnionTypesModules.h"
+#include "modules/ModulesExport.h"
 #include "modules/credentialmanager/Credential.h"
 #include "platform/heap/Handle.h"
 #include "platform/network/EncodedFormData.h"
@@ -17,15 +18,17 @@
 
 class FormData;
 class FormDataOptions;
+class HTMLFormElement;
 class PasswordCredentialData;
 class WebPasswordCredential;
 
 using CredentialPostBodyType = FormDataOrURLSearchParams;
 
-class PasswordCredential final : public Credential {
+class MODULES_EXPORT PasswordCredential final : public Credential {
     DEFINE_WRAPPERTYPEINFO();
 public:
     static PasswordCredential* create(const PasswordCredentialData&, ExceptionState&);
+    static PasswordCredential* create(HTMLFormElement*, ExceptionState&);
     static PasswordCredential* create(WebPasswordCredential*);
 
     // PasswordCredential.idl
diff --git a/third_party/WebKit/Source/modules/credentialmanager/PasswordCredential.idl b/third_party/WebKit/Source/modules/credentialmanager/PasswordCredential.idl
index 2e91a60e5..d4d44fc 100644
--- a/third_party/WebKit/Source/modules/credentialmanager/PasswordCredential.idl
+++ b/third_party/WebKit/Source/modules/credentialmanager/PasswordCredential.idl
@@ -8,6 +8,7 @@
     RuntimeEnabled=CredentialManager,
     RaisesException=Constructor,
     Constructor(PasswordCredentialData data),
+    Constructor(HTMLFormElement form),
     Exposed=Window,
 ] interface PasswordCredential : Credential {
     attribute USVString idName;
diff --git a/third_party/WebKit/Source/modules/credentialmanager/PasswordCredentialTest.cpp b/third_party/WebKit/Source/modules/credentialmanager/PasswordCredentialTest.cpp
new file mode 100644
index 0000000..d9792053
--- /dev/null
+++ b/third_party/WebKit/Source/modules/credentialmanager/PasswordCredentialTest.cpp
@@ -0,0 +1,140 @@
+// Copyright 2016 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 "modules/credentialmanager/PasswordCredential.h"
+
+#include "bindings/core/v8/ExceptionState.h"
+#include "bindings/core/v8/ExceptionStatePlaceholder.h"
+#include "core/dom/ExceptionCode.h"
+#include "core/dom/URLSearchParams.h"
+#include "core/frame/FrameView.h"
+#include "core/html/FormData.h"
+#include "core/html/HTMLDocument.h"
+#include "core/html/HTMLFormElement.h"
+#include "core/html/forms/FormController.h"
+#include "core/testing/DummyPageHolder.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "wtf/text/StringBuilder.h"
+
+namespace blink {
+
+class PasswordCredentialTest : public ::testing::Test {
+protected:
+    void SetUp() override
+    {
+        m_dummyPageHolder = DummyPageHolder::create();
+        m_document = toHTMLDocument(&m_dummyPageHolder->document());
+    }
+
+    HTMLDocument& document() const { return *m_document; }
+
+    HTMLFormElement* populateForm(const char* enctype, const char* html)
+    {
+        StringBuilder b;
+        b.appendLiteral("<!DOCTYPE html><html><body><form id='theForm' enctype='");
+        b.append(enctype);
+        b.appendLiteral("'>");
+        b.append(html);
+        b.appendLiteral("</form></body></html>");
+        document().documentElement()->setInnerHTML(b.toString(), ASSERT_NO_EXCEPTION);
+        document().view()->updateAllLifecyclePhases();
+        HTMLFormElement* form = toHTMLFormElement(document().getElementById("theForm"));
+        EXPECT_NE(nullptr, form);
+        return form;
+    }
+
+private:
+    OwnPtr<DummyPageHolder> m_dummyPageHolder;
+    RefPtrWillBePersistent<HTMLDocument> m_document;
+};
+
+TEST_F(PasswordCredentialTest, CreateFromMultipartForm)
+{
+    HTMLFormElement* form = populateForm("multipart/form-data",
+        "<input type='text' name='theId' value='musterman' autocomplete='username'>"
+        "<input type='text' name='thePassword' value='sekrit' autocomplete='current-password'>"
+        "<input type='text' name='theIcon' value='https://example.com/photo' autocomplete='photo'>"
+        "<input type='text' name='theExtraField' value='extra'>"
+        "<input type='text' name='theName' value='friendly name' autocomplete='name'>");
+    PasswordCredential* credential = PasswordCredential::create(form, ASSERT_NO_EXCEPTION);
+    ASSERT_NE(nullptr, credential);
+    EXPECT_EQ("theId", credential->idName());
+    EXPECT_EQ("thePassword", credential->passwordName());
+
+    EXPECT_EQ("musterman", credential->id());
+    EXPECT_EQ("sekrit", credential->password());
+    EXPECT_EQ(KURL(ParsedURLString, "https://example.com/photo"), credential->iconURL());
+    EXPECT_EQ("friendly name", credential->name());
+    EXPECT_EQ("password", credential->type());
+
+    FormDataOrURLSearchParams additionalData;
+    credential->additionalData(additionalData);
+    ASSERT_TRUE(additionalData.isFormData());
+    EXPECT_TRUE(additionalData.getAsFormData()->has("theId"));
+    EXPECT_TRUE(additionalData.getAsFormData()->has("thePassword"));
+    EXPECT_TRUE(additionalData.getAsFormData()->has("theIcon"));
+    EXPECT_TRUE(additionalData.getAsFormData()->has("theName"));
+    EXPECT_TRUE(additionalData.getAsFormData()->has("theExtraField"));
+}
+
+TEST_F(PasswordCredentialTest, CreateFromURLEncodedForm)
+{
+    HTMLFormElement* form = populateForm("application/x-www-form-urlencoded",
+        "<input type='text' name='theId' value='musterman' autocomplete='username'>"
+        "<input type='text' name='thePassword' value='sekrit' autocomplete='current-password'>"
+        "<input type='text' name='theIcon' value='https://example.com/photo' autocomplete='photo'>"
+        "<input type='text' name='theExtraField' value='extra'>"
+        "<input type='text' name='theName' value='friendly name' autocomplete='name'>");
+    PasswordCredential* credential = PasswordCredential::create(form, ASSERT_NO_EXCEPTION);
+    ASSERT_NE(nullptr, credential);
+    EXPECT_EQ("theId", credential->idName());
+    EXPECT_EQ("thePassword", credential->passwordName());
+
+    EXPECT_EQ("musterman", credential->id());
+    EXPECT_EQ("sekrit", credential->password());
+    EXPECT_EQ(KURL(ParsedURLString, "https://example.com/photo"), credential->iconURL());
+    EXPECT_EQ("friendly name", credential->name());
+    EXPECT_EQ("password", credential->type());
+
+    FormDataOrURLSearchParams additionalData;
+    credential->additionalData(additionalData);
+    ASSERT_TRUE(additionalData.isURLSearchParams());
+    EXPECT_TRUE(additionalData.getAsURLSearchParams()->has("theId"));
+    EXPECT_TRUE(additionalData.getAsURLSearchParams()->has("thePassword"));
+    EXPECT_TRUE(additionalData.getAsURLSearchParams()->has("theIcon"));
+    EXPECT_TRUE(additionalData.getAsURLSearchParams()->has("theName"));
+    EXPECT_TRUE(additionalData.getAsURLSearchParams()->has("theExtraField"));
+}
+
+TEST_F(PasswordCredentialTest, CreateFromFormNoPassword)
+{
+    HTMLFormElement* form = populateForm("multipart/form-data",
+        "<input type='text' name='theId' value='musterman' autocomplete='username'>"
+        "<!-- No password field -->"
+        "<input type='text' name='theIcon' value='https://example.com/photo' autocomplete='photo'>"
+        "<input type='text' name='theName' value='friendly name' autocomplete='name'>");
+    TrackExceptionState exceptionState;
+    PasswordCredential* credential = PasswordCredential::create(form, exceptionState);
+    EXPECT_EQ(nullptr, credential);
+    EXPECT_TRUE(exceptionState.hadException());
+    EXPECT_EQ(V8TypeError, exceptionState.code());
+    EXPECT_EQ("'password' must not be empty.", exceptionState.message());
+}
+
+TEST_F(PasswordCredentialTest, CreateFromFormNoId)
+{
+    HTMLFormElement* form = populateForm("multipart/form-data",
+        "<!-- No username field. -->"
+        "<input type='text' name='thePassword' value='sekrit' autocomplete='current-password'>"
+        "<input type='text' name='theIcon' value='https://example.com/photo' autocomplete='photo'>"
+        "<input type='text' name='theName' value='friendly name' autocomplete='name'>");
+    TrackExceptionState exceptionState;
+    PasswordCredential* credential = PasswordCredential::create(form, exceptionState);
+    EXPECT_EQ(nullptr, credential);
+    EXPECT_TRUE(exceptionState.hadException());
+    EXPECT_EQ(V8TypeError, exceptionState.code());
+    EXPECT_EQ("'id' must not be empty.", exceptionState.message());
+}
+
+} // namespace blink
diff --git a/third_party/WebKit/Source/modules/modules.gypi b/third_party/WebKit/Source/modules/modules.gypi
index 2dc76f0..e5040ad7 100644
--- a/third_party/WebKit/Source/modules/modules.gypi
+++ b/third_party/WebKit/Source/modules/modules.gypi
@@ -1974,6 +1974,7 @@
       'canvas2d/CanvasRenderingContext2DAPITest.cpp',
       'canvas2d/CanvasRenderingContext2DTest.cpp',
       'compositorworker/CompositorWorkerThreadTest.cpp',
+      'credentialmanager/PasswordCredentialTest.cpp',
       'csspaint/PaintRenderingContext2DTest.cpp',
       'fetch/BodyStreamBufferTest.cpp',
       'fetch/CompositeDataConsumerHandleTest.cpp',
diff --git a/third_party/WebKit/Source/platform/BUILD.gn b/third_party/WebKit/Source/platform/BUILD.gn
index 0e755d25..bb54aff 100644
--- a/third_party/WebKit/Source/platform/BUILD.gn
+++ b/third_party/WebKit/Source/platform/BUILD.gn
@@ -461,6 +461,7 @@
     "//cc:test_support",
     "//cc/blink",
     "//testing/gmock",
+    "//testing/gtest:gtest",
   ]
 
   deps = [
diff --git a/third_party/WebKit/Source/platform/HostWindow.h b/third_party/WebKit/Source/platform/HostWindow.h
index b5bf80a..45f683c 100644
--- a/third_party/WebKit/Source/platform/HostWindow.h
+++ b/third_party/WebKit/Source/platform/HostWindow.h
@@ -36,9 +36,8 @@
 class Widget;
 struct WebScreenInfo;
 
-class PLATFORM_EXPORT HostWindow : public NoBaseWillBeGarbageCollectedFinalized<HostWindow> {
+class PLATFORM_EXPORT HostWindow : public GarbageCollectedFinalized<HostWindow> {
     WTF_MAKE_NONCOPYABLE(HostWindow);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(HostWindow);
 public:
     HostWindow() { }
     virtual ~HostWindow() { }
diff --git a/third_party/WebKit/Source/platform/LifecycleContextTest.cpp b/third_party/WebKit/Source/platform/LifecycleContextTest.cpp
index f89f0f50..50c1e10 100644
--- a/third_party/WebKit/Source/platform/LifecycleContextTest.cpp
+++ b/third_party/WebKit/Source/platform/LifecycleContextTest.cpp
@@ -33,12 +33,12 @@
 
 class TestingObserver;
 
-class DummyContext final : public NoBaseWillBeGarbageCollectedFinalized<DummyContext>, public LifecycleNotifier<DummyContext, TestingObserver> {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(DummyContext);
+class DummyContext final : public GarbageCollectedFinalized<DummyContext>, public LifecycleNotifier<DummyContext, TestingObserver> {
+    USING_GARBAGE_COLLECTED_MIXIN(DummyContext);
 public:
-    static PassOwnPtrWillBeRawPtr<DummyContext> create()
+    static RawPtr<DummyContext> create()
     {
-        return adoptPtrWillBeNoop(new DummyContext());
+        return new DummyContext();
     }
 
     DEFINE_INLINE_TRACE()
@@ -47,12 +47,12 @@
     }
 };
 
-class TestingObserver final : public NoBaseWillBeGarbageCollectedFinalized<TestingObserver>, public LifecycleObserver<DummyContext, TestingObserver, DummyContext> {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(TestingObserver);
+class TestingObserver final : public GarbageCollectedFinalized<TestingObserver>, public LifecycleObserver<DummyContext, TestingObserver, DummyContext> {
+    USING_GARBAGE_COLLECTED_MIXIN(TestingObserver);
 public:
-    static PassOwnPtrWillBeRawPtr<TestingObserver> create(DummyContext* context)
+    static RawPtr<TestingObserver> create(DummyContext* context)
     {
-        return adoptPtrWillBeNoop(new TestingObserver(context));
+        return new TestingObserver(context);
     }
 
     void contextDestroyed() override
@@ -73,7 +73,7 @@
 
     void unobserve() { setContext(nullptr); }
 
-    void setObserverToRemoveAndDestroy(PassOwnPtrWillBeRawPtr<TestingObserver> observerToRemoveOnDestruct)
+    void setObserverToRemoveAndDestroy(RawPtr<TestingObserver> observerToRemoveOnDestruct)
     {
         ASSERT(!m_observerToRemoveOnDestruct);
         m_observerToRemoveOnDestruct = observerToRemoveOnDestruct;
@@ -89,14 +89,14 @@
     {
     }
 
-    OwnPtrWillBeMember<TestingObserver> m_observerToRemoveOnDestruct;
+    Member<TestingObserver> m_observerToRemoveOnDestruct;
     bool m_contextDestroyedCalled;
 };
 
 TEST(LifecycleContextTest, shouldObserveContextDestroyed)
 {
-    OwnPtrWillBeRawPtr<DummyContext> context = DummyContext::create();
-    OwnPtrWillBePersistent<TestingObserver> observer = TestingObserver::create(context.get());
+    RawPtr<DummyContext> context = DummyContext::create();
+    Persistent<TestingObserver> observer = TestingObserver::create(context.get());
 
     EXPECT_EQ(observer->lifecycleContext(), context.get());
     EXPECT_FALSE(observer->contextDestroyedCalled());
@@ -109,8 +109,8 @@
 
 TEST(LifecycleContextTest, shouldNotObserveContextDestroyedIfUnobserve)
 {
-    OwnPtrWillBeRawPtr<DummyContext> context = DummyContext::create();
-    OwnPtrWillBePersistent<TestingObserver> observer = TestingObserver::create(context.get());
+    RawPtr<DummyContext> context = DummyContext::create();
+    Persistent<TestingObserver> observer = TestingObserver::create(context.get());
     observer->unobserve();
     context->notifyContextDestroyed();
     context = nullptr;
@@ -123,9 +123,9 @@
 {
     // FIXME: Oilpan: this test can be removed when the LifecycleNotifier<T>::m_observers
     // hash set is on the heap and membership is handled implicitly by the garbage collector.
-    OwnPtrWillBeRawPtr<DummyContext> context = DummyContext::create();
-    OwnPtrWillBePersistent<TestingObserver> observer = TestingObserver::create(context.get());
-    OwnPtrWillBeRawPtr<TestingObserver> innerObserver = TestingObserver::create(context.get());
+    RawPtr<DummyContext> context = DummyContext::create();
+    Persistent<TestingObserver> observer = TestingObserver::create(context.get());
+    RawPtr<TestingObserver> innerObserver = TestingObserver::create(context.get());
     // Attach the observer to the other. When 'observer' is notified
     // of destruction, it will remove & destroy 'innerObserver'.
     observer->setObserverToRemoveAndDestroy(innerObserver.release());
diff --git a/third_party/WebKit/Source/platform/LifecycleNotifier.h b/third_party/WebKit/Source/platform/LifecycleNotifier.h
index d3a3089..7e654cf 100644
--- a/third_party/WebKit/Source/platform/LifecycleNotifier.h
+++ b/third_party/WebKit/Source/platform/LifecycleNotifier.h
@@ -34,7 +34,7 @@
 namespace blink {
 
 template<typename T, typename Observer>
-class LifecycleNotifier : public virtual WillBeGarbageCollectedMixin {
+class LifecycleNotifier : public virtual GarbageCollectedMixin {
 public:
     virtual ~LifecycleNotifier();
 
@@ -72,7 +72,7 @@
     IterationType m_iterating;
 
 protected:
-    using ObserverSet = WillBeHeapHashSet<RawPtrWillBeWeakMember<Observer>>;
+    using ObserverSet = HeapHashSet<WeakMember<Observer>>;
 
     ObserverSet m_observers;
 
@@ -106,7 +106,7 @@
         return;
 
     TemporaryChange<IterationType> scope(m_iterating, IteratingOverAll);
-    Vector<RawPtrWillBeUntracedMember<Observer>> snapshotOfObservers;
+    Vector<UntracedMember<Observer>> snapshotOfObservers;
     copyToVector(m_observers, snapshotOfObservers);
     for (Observer* observer : snapshotOfObservers) {
         // FIXME: Oilpan: At the moment, it's possible that the Observer is
diff --git a/third_party/WebKit/Source/platform/LifecycleObserver.h b/third_party/WebKit/Source/platform/LifecycleObserver.h
index 30c65bd..09a9b3d 100644
--- a/third_party/WebKit/Source/platform/LifecycleObserver.h
+++ b/third_party/WebKit/Source/platform/LifecycleObserver.h
@@ -33,7 +33,7 @@
 namespace blink {
 
 template<typename T, typename Observer, typename Notifier>
-class LifecycleObserver : public WillBeGarbageCollectedMixin {
+class LifecycleObserver : public GarbageCollectedMixin {
 public:
     using Context = T;
 
@@ -44,7 +44,6 @@
     }
 #endif
 
-    EAGERLY_FINALIZE_WILL_BE_REMOVED();
     DEFINE_INLINE_VIRTUAL_TRACE()
     {
         visitor->trace(m_lifecycleContext);
@@ -70,7 +69,7 @@
     }
 
 private:
-    RawPtrWillBeWeakMember<Context> m_lifecycleContext;
+    WeakMember<Context> m_lifecycleContext;
 };
 
 template<typename T, typename Observer, typename Notifier>
diff --git a/third_party/WebKit/Source/platform/MemoryPurgeController.h b/third_party/WebKit/Source/platform/MemoryPurgeController.h
index a23fcc71..f1308a5f 100644
--- a/third_party/WebKit/Source/platform/MemoryPurgeController.h
+++ b/third_party/WebKit/Source/platform/MemoryPurgeController.h
@@ -21,7 +21,7 @@
 // interface to be informed when they should reduce memory consumption.
 // MemoryPurgeController assumes that subclasses of MemoryPurgeClient are
 // WillBes.
-class PLATFORM_EXPORT MemoryPurgeClient : public WillBeGarbageCollectedMixin {
+class PLATFORM_EXPORT MemoryPurgeClient : public GarbageCollectedMixin {
 public:
     virtual ~MemoryPurgeClient() { }
 
@@ -36,13 +36,12 @@
 // for reducing memory consumption and notifies its clients.
 // Since we want to control memory per tab, MemoryPurgeController is owned by
 // Page.
-class PLATFORM_EXPORT MemoryPurgeController final : public NoBaseWillBeGarbageCollectedFinalized<MemoryPurgeController> {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(MemoryPurgeController);
+class PLATFORM_EXPORT MemoryPurgeController final : public GarbageCollectedFinalized<MemoryPurgeController> {
     WTF_MAKE_NONCOPYABLE(MemoryPurgeController);
 public:
     static void onMemoryPressure(WebMemoryPressureLevel);
 
-    static PassOwnPtrWillBeRawPtr<MemoryPurgeController> create()
+    static RawPtr<MemoryPurgeController> create()
     {
         return adoptPtrWillBeNoop(new MemoryPurgeController);
     }
@@ -71,7 +70,7 @@
 private:
     MemoryPurgeController();
 
-    WillBeHeapHashSet<RawPtrWillBeWeakMember<MemoryPurgeClient>> m_clients;
+    HeapHashSet<WeakMember<MemoryPurgeClient>> m_clients;
     DeviceKind m_deviceKind;
 };
 
diff --git a/third_party/WebKit/Source/platform/PopupMenu.h b/third_party/WebKit/Source/platform/PopupMenu.h
index d9f58b1..98a4757d 100644
--- a/third_party/WebKit/Source/platform/PopupMenu.h
+++ b/third_party/WebKit/Source/platform/PopupMenu.h
@@ -27,7 +27,7 @@
 
 namespace blink {
 
-class PopupMenu : public RefCountedWillBeGarbageCollectedFinalized<PopupMenu> {
+class PopupMenu : public GarbageCollectedFinalized<PopupMenu> {
 public:
     virtual ~PopupMenu() { }
     DEFINE_INLINE_VIRTUAL_TRACE() { }
diff --git a/third_party/WebKit/Source/platform/RuntimeEnabledFeatures.in b/third_party/WebKit/Source/platform/RuntimeEnabledFeatures.in
index b1d83c5e..c67d888 100644
--- a/third_party/WebKit/Source/platform/RuntimeEnabledFeatures.in
+++ b/third_party/WebKit/Source/platform/RuntimeEnabledFeatures.in
@@ -42,6 +42,7 @@
 CSSApplyAtRules status=experimental, depends_on=CSSVariables
 CSSAdditiveAnimations status=experimental, depends_on=StackedCSSPropertyAnimations
 CSSBackdropFilter status=experimental
+CSSBoxReflectFilter
 CSSCompositing status=stable
 CSSContainment status=experimental
 CSSFontDisplay status=experimental
diff --git a/third_party/WebKit/Source/platform/Supplementable.h b/third_party/WebKit/Source/platform/Supplementable.h
index 5a2ce733..be18a18 100644
--- a/third_party/WebKit/Source/platform/Supplementable.h
+++ b/third_party/WebKit/Source/platform/Supplementable.h
@@ -121,7 +121,7 @@
     virtual ~SupplementTracing() { }
     // FIXME: Oilpan: this trace() method is only provided to minimize
     // the use of ENABLE(OILPAN) for Supplements deriving from the
-    // transition type WillBeHeapSupplement<>.
+    // transition type HeapSupplement<>.
     //
     // When that transition type is removed (or its use is substantially
     // reduced), remove this dummy trace method also.
diff --git a/third_party/WebKit/Source/platform/Widget.h b/third_party/WebKit/Source/platform/Widget.h
index d5f1b6a..e62f780 100644
--- a/third_party/WebKit/Source/platform/Widget.h
+++ b/third_party/WebKit/Source/platform/Widget.h
@@ -48,7 +48,7 @@
 // Widgets are connected in a hierarchy, with the restriction that plugins and
 // scrollbars are always leaves of the tree. Only FrameView can have children
 // (and therefore the Widget class has no concept of children).
-class PLATFORM_EXPORT Widget : public RefCountedWillBeGarbageCollectedFinalized<Widget> {
+class PLATFORM_EXPORT Widget : public GarbageCollectedFinalized<Widget> {
 public:
     Widget();
     virtual ~Widget();
@@ -124,7 +124,7 @@
     virtual void dispose() { }
 
 private:
-    RawPtrWillBeMember<Widget> m_parent;
+    Member<Widget> m_parent;
     IntRect m_frame;
     bool m_selfVisible;
     bool m_parentVisible;
diff --git a/third_party/WebKit/Source/platform/animation/CompositorAnimationPlayerTest.cpp b/third_party/WebKit/Source/platform/animation/CompositorAnimationPlayerTest.cpp
index 563f331..d0d3db1 100644
--- a/third_party/WebKit/Source/platform/animation/CompositorAnimationPlayerTest.cpp
+++ b/third_party/WebKit/Source/platform/animation/CompositorAnimationPlayerTest.cpp
@@ -10,7 +10,7 @@
 #include "platform/animation/CompositorAnimationPlayerClient.h"
 #include "platform/animation/CompositorAnimationTimeline.h"
 #include "platform/animation/CompositorTargetProperty.h"
-#include "testing/gtest/include/gtest/gtest.h"
+#include "platform/testing/CompositorTest.h"
 
 namespace blink {
 
@@ -46,10 +46,12 @@
     scoped_ptr<CompositorAnimationPlayer> m_player;
 };
 
+class CompositorAnimationPlayerTest : public CompositorTest {
+};
 
 // Test that when the animation delegate is null, the animation player
 // doesn't forward the finish notification.
-TEST(CompositorAnimationPlayerTest, NullDelegate)
+TEST_F(CompositorAnimationPlayerTest, NullDelegate)
 {
     scoped_ptr<CompositorAnimationDelegateForTesting> delegate(new CompositorAnimationDelegateForTesting);
 
@@ -69,7 +71,7 @@
     EXPECT_FALSE(delegate->m_finished);
 }
 
-TEST(CompositorAnimationPlayerTest, NotifyFromCCAfterCompositorPlayerDeletion)
+TEST_F(CompositorAnimationPlayerTest, NotifyFromCCAfterCompositorPlayerDeletion)
 {
     scoped_ptr<CompositorAnimationDelegateForTesting> delegate(new CompositorAnimationDelegateForTesting);
 
@@ -87,7 +89,7 @@
     EXPECT_FALSE(delegate->m_finished);
 }
 
-TEST(CompositorAnimationPlayerTest, CompositorPlayerDeletionDetachesFromCCTimeline)
+TEST_F(CompositorAnimationPlayerTest, CompositorPlayerDeletionDetachesFromCCTimeline)
 {
     scoped_ptr<CompositorAnimationTimeline> timeline(new CompositorAnimationTimeline);
     scoped_ptr<CompositorAnimationPlayerTestClient> client(new CompositorAnimationPlayerTestClient);
diff --git a/third_party/WebKit/Source/platform/animation/CompositorAnimationTimelineTest.cpp b/third_party/WebKit/Source/platform/animation/CompositorAnimationTimelineTest.cpp
new file mode 100644
index 0000000..0bbf113
--- /dev/null
+++ b/third_party/WebKit/Source/platform/animation/CompositorAnimationTimelineTest.cpp
@@ -0,0 +1,40 @@
+// Copyright 2016 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/animation/CompositorAnimationTimeline.h"
+
+#include "base/memory/ref_counted.h"
+#include "cc/animation/animation_host.h"
+#include "platform/animation/CompositorAnimationPlayer.h"
+#include "platform/testing/CompositorTest.h"
+#include "platform/testing/WebLayerTreeViewImplForTesting.h"
+
+namespace blink {
+
+class CompositorAnimationTimelineTest : public CompositorTest {
+};
+
+TEST_F(CompositorAnimationTimelineTest, CompositorTimelineDeletionDetachesFromAnimationHost)
+{
+    OwnPtr<CompositorAnimationTimeline> timeline = adoptPtr(new CompositorAnimationTimeline);
+
+    scoped_refptr<cc::AnimationTimeline> ccTimeline = timeline->animationTimeline();
+    EXPECT_FALSE(ccTimeline->animation_host());
+
+    OwnPtr<WebLayerTreeView> layerTreeHost = adoptPtr(new WebLayerTreeViewImplForTesting);
+    DCHECK(layerTreeHost);
+
+    layerTreeHost->attachCompositorAnimationTimeline(timeline->animationTimeline());
+    cc::AnimationHost* animationHost = ccTimeline->animation_host();
+    EXPECT_TRUE(animationHost);
+    EXPECT_TRUE(animationHost->GetTimelineById(ccTimeline->id()));
+
+    // Delete CompositorAnimationTimeline while attached to host.
+    timeline = nullptr;
+
+    EXPECT_FALSE(ccTimeline->animation_host());
+    EXPECT_FALSE(animationHost->GetTimelineById(ccTimeline->id()));
+}
+
+} // namespace blink
diff --git a/third_party/WebKit/Source/platform/blink_platform.gypi b/third_party/WebKit/Source/platform/blink_platform.gypi
index 18eb856b..9b15c6b 100644
--- a/third_party/WebKit/Source/platform/blink_platform.gypi
+++ b/third_party/WebKit/Source/platform/blink_platform.gypi
@@ -668,6 +668,8 @@
       'graphics/filters/DistantLightSource.h',
       'graphics/filters/FEBlend.cpp',
       'graphics/filters/FEBlend.h',
+      'graphics/filters/FEBoxReflect.cpp',
+      'graphics/filters/FEBoxReflect.h',
       'graphics/filters/FEColorMatrix.cpp',
       'graphics/filters/FEColorMatrix.h',
       'graphics/filters/FEComponentTransfer.cpp',
@@ -1019,6 +1021,8 @@
       'transforms/MatrixTransformOperation.h',
       'transforms/PerspectiveTransformOperation.cpp',
       'transforms/PerspectiveTransformOperation.h',
+      'transforms/Rotation.cpp',
+      'transforms/Rotation.h',
       'transforms/RotateTransformOperation.cpp',
       'transforms/RotateTransformOperation.h',
       'transforms/ScaleTransformOperation.cpp',
@@ -1129,6 +1133,7 @@
       'animation/AnimationTranslationUtilTest.cpp',
       'animation/CompositorAnimationPlayerTest.cpp',
       'animation/CompositorAnimationTest.cpp',
+      'animation/CompositorAnimationTimelineTest.cpp',
       'animation/CompositorFloatAnimationCurveTest.cpp',
       'animation/TimingFunctionTest.cpp',
       'animation/UnitBezierTest.cpp',
@@ -1209,6 +1214,7 @@
       'transforms/TransformOperationsTest.cpp',
       'transforms/TransformTestHelper.h',
       'transforms/TransformationMatrixTest.cpp',
+      'transforms/RotationTest.cpp',
       'web_process_memory_dump_impl_test.cc',
       'weborigin/KnownPortsTest.cpp',
       'weborigin/KURLTest.cpp',
@@ -1234,6 +1240,8 @@
       'threading/BackgroundTaskRunnerTest.cpp',
     ],
     'platform_test_support_files': [
+      'testing/CompositorTest.cpp',
+      'testing/CompositorTest.h',
       'testing/FakeDisplayItemClient.h',
       'testing/FontTestHelpers.cpp',
       'testing/FontTestHelpers.h',
diff --git a/third_party/WebKit/Source/platform/exported/WebScrollbarImpl.h b/third_party/WebKit/Source/platform/exported/WebScrollbarImpl.h
index a72fb49..e934e9ab6 100644
--- a/third_party/WebKit/Source/platform/exported/WebScrollbarImpl.h
+++ b/third_party/WebKit/Source/platform/exported/WebScrollbarImpl.h
@@ -66,7 +66,7 @@
 private:
     explicit WebScrollbarImpl(Scrollbar*);
 
-    RefPtrWillBePersistent<Scrollbar> m_scrollbar;
+    Persistent<Scrollbar> m_scrollbar;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/platform/fonts/Font.cpp b/third_party/WebKit/Source/platform/fonts/Font.cpp
index f019c49..a6fc2b1 100644
--- a/third_party/WebKit/Source/platform/fonts/Font.cpp
+++ b/third_party/WebKit/Source/platform/fonts/Font.cpp
@@ -95,7 +95,7 @@
         && (m_fontFallbackList ? m_fontFallbackList->generation() : 0) == (other.m_fontFallbackList ? other.m_fontFallbackList->generation() : 0);
 }
 
-void Font::update(PassRefPtrWillBeRawPtr<FontSelector> fontSelector) const
+void Font::update(RawPtr<FontSelector> fontSelector) const
 {
     // FIXME: It is pretty crazy that we are willing to just poke into a RefPtr, but it ends up
     // being reasonably safe (because inherited fonts in the render tree pick up the new
diff --git a/third_party/WebKit/Source/platform/fonts/Font.h b/third_party/WebKit/Source/platform/fonts/Font.h
index 0b677a8..15a04e86 100644
--- a/third_party/WebKit/Source/platform/fonts/Font.h
+++ b/third_party/WebKit/Source/platform/fonts/Font.h
@@ -74,7 +74,7 @@
 
     const FontDescription& getFontDescription() const { return m_fontDescription; }
 
-    void update(PassRefPtrWillBeRawPtr<FontSelector>) const;
+    void update(RawPtr<FontSelector>) const;
 
     enum CustomFontNotReadyAction { DoNotPaintIfFontNotReady, UseFallbackIfFontNotReady };
     bool drawText(SkCanvas*, const TextRunPaintInfo&, const FloatPoint&, float deviceScaleFactor, const SkPaint&) const;
diff --git a/third_party/WebKit/Source/platform/fonts/FontCache.cpp b/third_party/WebKit/Source/platform/fonts/FontCache.cpp
index 593d819..0600609 100644
--- a/third_party/WebKit/Source/platform/fonts/FontCache.cpp
+++ b/third_party/WebKit/Source/platform/fonts/FontCache.cpp
@@ -295,9 +295,9 @@
 
 static bool invalidateFontCache = false;
 
-WillBeHeapHashSet<RawPtrWillBeWeakMember<FontCacheClient>>& fontCacheClients()
+HeapHashSet<WeakMember<FontCacheClient>>& fontCacheClients()
 {
-    DEFINE_STATIC_LOCAL(OwnPtrWillBePersistent<WillBeHeapHashSet<RawPtrWillBeWeakMember<FontCacheClient>>>, clients, (adoptPtrWillBeNoop(new WillBeHeapHashSet<RawPtrWillBeWeakMember<FontCacheClient>>())));
+    DEFINE_STATIC_LOCAL(Persistent<HeapHashSet<WeakMember<FontCacheClient>>>, clients, (new HeapHashSet<WeakMember<FontCacheClient>>()));
     invalidateFontCache = true;
     return *clients;
 }
@@ -337,11 +337,11 @@
 
     gGeneration++;
 
-    WillBeHeapVector<RefPtrWillBeMember<FontCacheClient>> clients;
+    HeapVector<Member<FontCacheClient>> clients;
     size_t numClients = fontCacheClients().size();
     clients.reserveInitialCapacity(numClients);
-    WillBeHeapHashSet<RawPtrWillBeWeakMember<FontCacheClient>>::iterator end = fontCacheClients().end();
-    for (WillBeHeapHashSet<RawPtrWillBeWeakMember<FontCacheClient>>::iterator it = fontCacheClients().begin(); it != end; ++it)
+    HeapHashSet<WeakMember<FontCacheClient>>::iterator end = fontCacheClients().end();
+    for (HeapHashSet<WeakMember<FontCacheClient>>::iterator it = fontCacheClients().begin(); it != end; ++it)
         clients.append(*it);
 
     ASSERT(numClients == clients.size());
diff --git a/third_party/WebKit/Source/platform/fonts/FontCacheClient.h b/third_party/WebKit/Source/platform/fonts/FontCacheClient.h
index 0021a3c..1f57f16 100644
--- a/third_party/WebKit/Source/platform/fonts/FontCacheClient.h
+++ b/third_party/WebKit/Source/platform/fonts/FontCacheClient.h
@@ -37,7 +37,7 @@
 
 namespace blink {
 
-class PLATFORM_EXPORT FontCacheClient : public RefCountedWillBeGarbageCollectedFinalized<FontCacheClient> {
+class PLATFORM_EXPORT FontCacheClient : public GarbageCollectedFinalized<FontCacheClient> {
 public:
     virtual ~FontCacheClient() { }
 
diff --git a/third_party/WebKit/Source/platform/fonts/FontFallbackList.cpp b/third_party/WebKit/Source/platform/fonts/FontFallbackList.cpp
index 2dae03c..85f610d 100644
--- a/third_party/WebKit/Source/platform/fonts/FontFallbackList.cpp
+++ b/third_party/WebKit/Source/platform/fonts/FontFallbackList.cpp
@@ -50,7 +50,7 @@
 {
 }
 
-void FontFallbackList::invalidate(PassRefPtrWillBeRawPtr<FontSelector> fontSelector)
+void FontFallbackList::invalidate(RawPtr<FontSelector> fontSelector)
 {
     releaseFontData();
     m_fontList.clear();
diff --git a/third_party/WebKit/Source/platform/fonts/FontFallbackList.h b/third_party/WebKit/Source/platform/fonts/FontFallbackList.h
index b390032..be7f0954 100644
--- a/third_party/WebKit/Source/platform/fonts/FontFallbackList.h
+++ b/third_party/WebKit/Source/platform/fonts/FontFallbackList.h
@@ -68,7 +68,7 @@
 
     ~FontFallbackList() { releaseFontData(); }
     bool isValid() const;
-    void invalidate(PassRefPtrWillBeRawPtr<FontSelector>);
+    void invalidate(RawPtr<FontSelector>);
 
     bool loadingCustomFonts() const;
     bool shouldSkipDrawing() const;
@@ -129,7 +129,7 @@
     GlyphPages m_pages;
     GlyphPageTreeNodeBase* m_pageZero;
     mutable const SimpleFontData* m_cachedPrimarySimpleFontData;
-    RefPtrWillBePersistent<FontSelector> m_fontSelector;
+    Persistent<FontSelector> m_fontSelector;
     unsigned m_fontSelectorVersion;
     mutable int m_familyIndex;
     unsigned short m_generation;
diff --git a/third_party/WebKit/Source/platform/graphics/BitmapImageTest.cpp b/third_party/WebKit/Source/platform/graphics/BitmapImageTest.cpp
index 8aa3f8d..52094f2 100644
--- a/third_party/WebKit/Source/platform/graphics/BitmapImageTest.cpp
+++ b/third_party/WebKit/Source/platform/graphics/BitmapImageTest.cpp
@@ -42,8 +42,8 @@
 
 class BitmapImageTest : public ::testing::Test {
 public:
-    class FakeImageObserver : public NoBaseWillBeGarbageCollectedFinalized<FakeImageObserver>, public ImageObserver {
-        WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(FakeImageObserver);
+    class FakeImageObserver : public GarbageCollectedFinalized<FakeImageObserver>, public ImageObserver {
+        USING_GARBAGE_COLLECTED_MIXIN(FakeImageObserver);
     public:
         FakeImageObserver() : m_lastDecodedSizeChangedDelta(0) { }
 
@@ -140,7 +140,7 @@
         m_image = BitmapImage::create(m_imageObserver.get());
     }
 
-    OwnPtrWillBePersistent<FakeImageObserver> m_imageObserver;
+    Persistent<FakeImageObserver> m_imageObserver;
     RefPtr<BitmapImage> m_image;
 
 private:
diff --git a/third_party/WebKit/Source/platform/graphics/GraphicsLayer.h b/third_party/WebKit/Source/platform/graphics/GraphicsLayer.h
index 9130653..ca6581cd 100644
--- a/third_party/WebKit/Source/platform/graphics/GraphicsLayer.h
+++ b/third_party/WebKit/Source/platform/graphics/GraphicsLayer.h
@@ -352,7 +352,7 @@
 
     OwnPtr<ContentLayerDelegate> m_contentLayerDelegate;
 
-    RawPtrWillBeWeakPersistent<ScrollableArea> m_scrollableArea;
+    WeakPersistent<ScrollableArea> m_scrollableArea;
     GraphicsLayerDebugInfo m_debugInfo;
     int m_3dRenderingContext;
 
diff --git a/third_party/WebKit/Source/platform/graphics/GraphicsLayerTest.cpp b/third_party/WebKit/Source/platform/graphics/GraphicsLayerTest.cpp
index 889af6c1..26b816f 100644
--- a/third_party/WebKit/Source/platform/graphics/GraphicsLayerTest.cpp
+++ b/third_party/WebKit/Source/platform/graphics/GraphicsLayerTest.cpp
@@ -163,10 +163,10 @@
     layerTreeView()->detachCompositorAnimationTimeline(compositorTimeline->animationTimeline());
 }
 
-class FakeScrollableArea : public NoBaseWillBeGarbageCollectedFinalized<FakeScrollableArea>, public ScrollableArea {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(FakeScrollableArea);
+class FakeScrollableArea : public GarbageCollectedFinalized<FakeScrollableArea>, public ScrollableArea {
+    USING_GARBAGE_COLLECTED_MIXIN(FakeScrollableArea);
 public:
-    static PassOwnPtrWillBeRawPtr<FakeScrollableArea> create()
+    static RawPtr<FakeScrollableArea> create()
     {
         return adoptPtrWillBeNoop(new FakeScrollableArea);
     }
@@ -206,7 +206,7 @@
 
 TEST_F(GraphicsLayerTest, applyScrollToScrollableArea)
 {
-    OwnPtrWillBeRawPtr<FakeScrollableArea> scrollableArea = FakeScrollableArea::create();
+    RawPtr<FakeScrollableArea> scrollableArea = FakeScrollableArea::create();
     m_graphicsLayer->setScrollableArea(scrollableArea.get(), false);
 
     WebDoublePoint scrollPosition(7, 9);
diff --git a/third_party/WebKit/Source/platform/graphics/GraphicsTypes.h b/third_party/WebKit/Source/platform/graphics/GraphicsTypes.h
index 610906b..a8cb842e 100644
--- a/third_party/WebKit/Source/platform/graphics/GraphicsTypes.h
+++ b/third_party/WebKit/Source/platform/graphics/GraphicsTypes.h
@@ -173,6 +173,13 @@
     RULE_EVENODD = SkPath::kEvenOdd_FillType
 };
 
+enum ReflectionDirection {
+    // Vertically flipped (to appear above or below).
+    VerticalReflection,
+    // Horizontally flipped (to appear to the left or right).
+    HorizontalReflection,
+};
+
 PLATFORM_EXPORT String compositeOperatorName(CompositeOperator, WebBlendMode);
 PLATFORM_EXPORT bool parseCompositeAndBlendOperator(const String&, CompositeOperator&, WebBlendMode&);
 
diff --git a/third_party/WebKit/Source/platform/graphics/Image.h b/third_party/WebKit/Source/platform/graphics/Image.h
index 0f89990..88851568 100644
--- a/third_party/WebKit/Source/platform/graphics/Image.h
+++ b/third_party/WebKit/Source/platform/graphics/Image.h
@@ -162,7 +162,7 @@
     //
     // The observer (an ImageResource) is an untraced member, with the ImageResource
     // being responsible of clearing itself out.
-    RawPtrWillBeUntracedMember<ImageObserver> m_imageObserver;
+    UntracedMember<ImageObserver> m_imageObserver;
 };
 
 #define DEFINE_IMAGE_TYPE_CASTS(typeName) \
diff --git a/third_party/WebKit/Source/platform/graphics/ImageObserver.h b/third_party/WebKit/Source/platform/graphics/ImageObserver.h
index ab72e6c..0b585c02 100644
--- a/third_party/WebKit/Source/platform/graphics/ImageObserver.h
+++ b/third_party/WebKit/Source/platform/graphics/ImageObserver.h
@@ -36,7 +36,7 @@
 
 // Interface for notification about changes to an image, including decoding,
 // drawing, and animating.
-class PLATFORM_EXPORT ImageObserver : public WillBeGarbageCollectedMixin {
+class PLATFORM_EXPORT ImageObserver : public GarbageCollectedMixin {
 protected:
     virtual ~ImageObserver();
 public:
diff --git a/third_party/WebKit/Source/platform/graphics/filters/FEBlend.cpp b/third_party/WebKit/Source/platform/graphics/filters/FEBlend.cpp
index daf34d0..451ffed 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/FEBlend.cpp
+++ b/third_party/WebKit/Source/platform/graphics/filters/FEBlend.cpp
@@ -37,9 +37,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<FEBlend> FEBlend::create(Filter* filter, WebBlendMode mode)
+RawPtr<FEBlend> FEBlend::create(Filter* filter, WebBlendMode mode)
 {
-    return adoptRefWillBeNoop(new FEBlend(filter, mode));
+    return new FEBlend(filter, mode);
 }
 
 WebBlendMode FEBlend::blendMode() const
diff --git a/third_party/WebKit/Source/platform/graphics/filters/FEBlend.h b/third_party/WebKit/Source/platform/graphics/filters/FEBlend.h
index 96d650e0d..1adc52e 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/FEBlend.h
+++ b/third_party/WebKit/Source/platform/graphics/filters/FEBlend.h
@@ -30,7 +30,7 @@
 
 class PLATFORM_EXPORT FEBlend final : public FilterEffect {
 public:
-    static PassRefPtrWillBeRawPtr<FEBlend> create(Filter*, WebBlendMode);
+    static RawPtr<FEBlend> create(Filter*, WebBlendMode);
 
     WebBlendMode blendMode() const;
     bool setBlendMode(WebBlendMode);
diff --git a/third_party/WebKit/Source/platform/graphics/filters/FEBoxReflect.cpp b/third_party/WebKit/Source/platform/graphics/filters/FEBoxReflect.cpp
new file mode 100644
index 0000000..a7c41db1
--- /dev/null
+++ b/third_party/WebKit/Source/platform/graphics/filters/FEBoxReflect.cpp
@@ -0,0 +1,59 @@
+// Copyright 2016 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/graphics/filters/FEBoxReflect.h"
+
+#include "platform/geometry/FloatRect.h"
+#include "platform/graphics/filters/SkiaImageFilterBuilder.h"
+#include "wtf/Assertions.h"
+
+namespace blink {
+
+PassRefPtrWillBeRawPtr<FEBoxReflect> FEBoxReflect::create(Filter* filter, ReflectionDirection direction, float offset)
+{
+    return adoptRefWillBeNoop(new FEBoxReflect(filter, direction, offset));
+}
+
+FEBoxReflect::FEBoxReflect(Filter* filter, ReflectionDirection direction, float offset)
+    : FilterEffect(filter)
+    , m_reflectionDirection(direction)
+    , m_offset(offset)
+{
+}
+
+FEBoxReflect::~FEBoxReflect()
+{
+}
+
+FloatRect FEBoxReflect::mapRect(const FloatRect& rect, bool forward)
+{
+    SkMatrix flipMatrix = SkiaImageFilterBuilder().matrixForBoxReflectFilter(
+        m_reflectionDirection, m_offset);
+    if (!forward) {
+        bool inverted = flipMatrix.invert(&flipMatrix);
+        DCHECK(inverted) << "box reflect matrix must be invertible";
+    }
+
+    SkRect reflection(rect);
+    flipMatrix.mapRect(&reflection);
+
+    FloatRect result = rect;
+    result.unite(reflection);
+    return result;
+}
+
+TextStream& FEBoxReflect::externalRepresentation(TextStream& ts, int indent) const
+{
+    // Only called for SVG layout tree printing.
+    ASSERT_NOT_REACHED();
+    return ts;
+}
+
+PassRefPtr<SkImageFilter> FEBoxReflect::createImageFilter(SkiaImageFilterBuilder& builder)
+{
+    RefPtr<SkImageFilter> input(builder.build(inputEffect(0), operatingColorSpace()));
+    return builder.buildBoxReflectFilter(m_reflectionDirection, m_offset, nullptr, input.get());
+}
+
+} // namespace blink
diff --git a/third_party/WebKit/Source/platform/graphics/filters/FEBoxReflect.h b/third_party/WebKit/Source/platform/graphics/filters/FEBoxReflect.h
new file mode 100644
index 0000000..00ace338
--- /dev/null
+++ b/third_party/WebKit/Source/platform/graphics/filters/FEBoxReflect.h
@@ -0,0 +1,34 @@
+// Copyright 2016 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 FEBoxReflect_h
+#define FEBoxReflect_h
+
+#include "platform/PlatformExport.h"
+#include "platform/graphics/GraphicsTypes.h"
+#include "platform/graphics/filters/FilterEffect.h"
+
+namespace blink {
+
+// Used to implement the -webkit-box-reflect property as a filter.
+class PLATFORM_EXPORT FEBoxReflect final : public FilterEffect {
+public:
+    static PassRefPtrWillBeRawPtr<FEBoxReflect> create(Filter*, ReflectionDirection, float offset);
+
+    // FilterEffect implementation
+    FloatRect mapRect(const FloatRect&, bool forward = true) final;
+    TextStream& externalRepresentation(TextStream&, int indentation) const final;
+    PassRefPtr<SkImageFilter> createImageFilter(SkiaImageFilterBuilder&) final;
+
+private:
+    FEBoxReflect(Filter*, ReflectionDirection, float offset);
+    ~FEBoxReflect() final;
+
+    ReflectionDirection m_reflectionDirection;
+    float m_offset;
+};
+
+} // namespace blink
+
+#endif // FEBoxReflect_h
diff --git a/third_party/WebKit/Source/platform/graphics/filters/FEColorMatrix.cpp b/third_party/WebKit/Source/platform/graphics/filters/FEColorMatrix.cpp
index 5c44249..0c348b6a 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/FEColorMatrix.cpp
+++ b/third_party/WebKit/Source/platform/graphics/filters/FEColorMatrix.cpp
@@ -39,9 +39,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<FEColorMatrix> FEColorMatrix::create(Filter* filter, ColorMatrixType type, const Vector<float>& values)
+RawPtr<FEColorMatrix> FEColorMatrix::create(Filter* filter, ColorMatrixType type, const Vector<float>& values)
 {
-    return adoptRefWillBeNoop(new FEColorMatrix(filter, type, values));
+    return new FEColorMatrix(filter, type, values);
 }
 
 ColorMatrixType FEColorMatrix::type() const
diff --git a/third_party/WebKit/Source/platform/graphics/filters/FEColorMatrix.h b/third_party/WebKit/Source/platform/graphics/filters/FEColorMatrix.h
index 039c3355..3bc868b 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/FEColorMatrix.h
+++ b/third_party/WebKit/Source/platform/graphics/filters/FEColorMatrix.h
@@ -38,7 +38,7 @@
 
 class PLATFORM_EXPORT FEColorMatrix final : public FilterEffect {
 public:
-    static PassRefPtrWillBeRawPtr<FEColorMatrix> create(Filter*, ColorMatrixType, const Vector<float>&);
+    static RawPtr<FEColorMatrix> create(Filter*, ColorMatrixType, const Vector<float>&);
 
     ColorMatrixType type() const;
     bool setType(ColorMatrixType);
diff --git a/third_party/WebKit/Source/platform/graphics/filters/FEComponentTransfer.cpp b/third_party/WebKit/Source/platform/graphics/filters/FEComponentTransfer.cpp
index 68adbf8..3834235 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/FEComponentTransfer.cpp
+++ b/third_party/WebKit/Source/platform/graphics/filters/FEComponentTransfer.cpp
@@ -45,10 +45,10 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<FEComponentTransfer> FEComponentTransfer::create(Filter* filter, const ComponentTransferFunction& redFunc,
+RawPtr<FEComponentTransfer> FEComponentTransfer::create(Filter* filter, const ComponentTransferFunction& redFunc,
     const ComponentTransferFunction& greenFunc, const ComponentTransferFunction& blueFunc, const ComponentTransferFunction& alphaFunc)
 {
-    return adoptRefWillBeNoop(new FEComponentTransfer(filter, redFunc, greenFunc, blueFunc, alphaFunc));
+    return new FEComponentTransfer(filter, redFunc, greenFunc, blueFunc, alphaFunc);
 }
 
 static void identity(unsigned char*, const ComponentTransferFunction&)
diff --git a/third_party/WebKit/Source/platform/graphics/filters/FEComponentTransfer.h b/third_party/WebKit/Source/platform/graphics/filters/FEComponentTransfer.h
index 173e3c9..cc70b04e 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/FEComponentTransfer.h
+++ b/third_party/WebKit/Source/platform/graphics/filters/FEComponentTransfer.h
@@ -62,7 +62,7 @@
 
 class PLATFORM_EXPORT FEComponentTransfer final : public FilterEffect {
 public:
-    static PassRefPtrWillBeRawPtr<FEComponentTransfer> create(Filter*, const ComponentTransferFunction& redFunc, const ComponentTransferFunction& greenFunc,
+    static RawPtr<FEComponentTransfer> create(Filter*, const ComponentTransferFunction& redFunc, const ComponentTransferFunction& greenFunc,
         const ComponentTransferFunction& blueFunc, const ComponentTransferFunction& alphaFunc);
 
     TextStream& externalRepresentation(TextStream&, int indention) const override;
diff --git a/third_party/WebKit/Source/platform/graphics/filters/FEComposite.cpp b/third_party/WebKit/Source/platform/graphics/filters/FEComposite.cpp
index ec70f56..035ee87b 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/FEComposite.cpp
+++ b/third_party/WebKit/Source/platform/graphics/filters/FEComposite.cpp
@@ -42,9 +42,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<FEComposite> FEComposite::create(Filter* filter, const CompositeOperationType& type, float k1, float k2, float k3, float k4)
+RawPtr<FEComposite> FEComposite::create(Filter* filter, const CompositeOperationType& type, float k1, float k2, float k3, float k4)
 {
-    return adoptRefWillBeNoop(new FEComposite(filter, type, k1, k2, k3, k4));
+    return new FEComposite(filter, type, k1, k2, k3, k4);
 }
 
 CompositeOperationType FEComposite::operation() const
diff --git a/third_party/WebKit/Source/platform/graphics/filters/FEComposite.h b/third_party/WebKit/Source/platform/graphics/filters/FEComposite.h
index 3f39ea4e..863b3852 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/FEComposite.h
+++ b/third_party/WebKit/Source/platform/graphics/filters/FEComposite.h
@@ -41,7 +41,7 @@
 
 class PLATFORM_EXPORT FEComposite final : public FilterEffect {
 public:
-    static PassRefPtrWillBeRawPtr<FEComposite> create(Filter*, const CompositeOperationType&, float, float, float, float);
+    static RawPtr<FEComposite> create(Filter*, const CompositeOperationType&, float, float, float, float);
 
     CompositeOperationType operation() const;
     bool setOperation(CompositeOperationType);
diff --git a/third_party/WebKit/Source/platform/graphics/filters/FEConvolveMatrix.cpp b/third_party/WebKit/Source/platform/graphics/filters/FEConvolveMatrix.cpp
index d66b38a..1a020c0 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/FEConvolveMatrix.cpp
+++ b/third_party/WebKit/Source/platform/graphics/filters/FEConvolveMatrix.cpp
@@ -46,12 +46,12 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<FEConvolveMatrix> FEConvolveMatrix::create(Filter* filter, const IntSize& kernelSize,
+RawPtr<FEConvolveMatrix> FEConvolveMatrix::create(Filter* filter, const IntSize& kernelSize,
     float divisor, float bias, const IntPoint& targetOffset, EdgeModeType edgeMode,
     bool preserveAlpha, const Vector<float>& kernelMatrix)
 {
-    return adoptRefWillBeNoop(new FEConvolveMatrix(filter, kernelSize, divisor, bias, targetOffset, edgeMode,
-        preserveAlpha, kernelMatrix));
+    return new FEConvolveMatrix(filter, kernelSize, divisor, bias, targetOffset, edgeMode,
+        preserveAlpha, kernelMatrix);
 }
 
 FloatRect FEConvolveMatrix::mapPaintRect(const FloatRect& rect, bool forward)
diff --git a/third_party/WebKit/Source/platform/graphics/filters/FEConvolveMatrix.h b/third_party/WebKit/Source/platform/graphics/filters/FEConvolveMatrix.h
index 4f85e92..244e9bb7 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/FEConvolveMatrix.h
+++ b/third_party/WebKit/Source/platform/graphics/filters/FEConvolveMatrix.h
@@ -41,7 +41,7 @@
 
 class PLATFORM_EXPORT FEConvolveMatrix final : public FilterEffect {
 public:
-    static PassRefPtrWillBeRawPtr<FEConvolveMatrix> create(Filter*, const IntSize&,
+    static RawPtr<FEConvolveMatrix> create(Filter*, const IntSize&,
         float, float, const IntPoint&, EdgeModeType, bool, const Vector<float>&);
 
     bool setDivisor(float);
diff --git a/third_party/WebKit/Source/platform/graphics/filters/FEDiffuseLighting.cpp b/third_party/WebKit/Source/platform/graphics/filters/FEDiffuseLighting.cpp
index bfb899a5..7a843d3 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/FEDiffuseLighting.cpp
+++ b/third_party/WebKit/Source/platform/graphics/filters/FEDiffuseLighting.cpp
@@ -33,10 +33,10 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<FEDiffuseLighting> FEDiffuseLighting::create(Filter* filter, const Color& lightingColor,
+RawPtr<FEDiffuseLighting> FEDiffuseLighting::create(Filter* filter, const Color& lightingColor,
     float surfaceScale, float diffuseConstant, PassRefPtr<LightSource> lightSource)
 {
-    return adoptRefWillBeNoop(new FEDiffuseLighting(filter, lightingColor, surfaceScale, diffuseConstant, lightSource));
+    return new FEDiffuseLighting(filter, lightingColor, surfaceScale, diffuseConstant, lightSource);
 }
 
 FEDiffuseLighting::~FEDiffuseLighting()
diff --git a/third_party/WebKit/Source/platform/graphics/filters/FEDiffuseLighting.h b/third_party/WebKit/Source/platform/graphics/filters/FEDiffuseLighting.h
index 49e2c9b..185093c 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/FEDiffuseLighting.h
+++ b/third_party/WebKit/Source/platform/graphics/filters/FEDiffuseLighting.h
@@ -31,7 +31,7 @@
 
 class PLATFORM_EXPORT FEDiffuseLighting final : public FELighting {
 public:
-    static PassRefPtrWillBeRawPtr<FEDiffuseLighting> create(Filter*, const Color&, float, float,
+    static RawPtr<FEDiffuseLighting> create(Filter*, const Color&, float, float,
         PassRefPtr<LightSource>);
     ~FEDiffuseLighting() override;
 
diff --git a/third_party/WebKit/Source/platform/graphics/filters/FEDisplacementMap.cpp b/third_party/WebKit/Source/platform/graphics/filters/FEDisplacementMap.cpp
index 900e2b3..d562fa0 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/FEDisplacementMap.cpp
+++ b/third_party/WebKit/Source/platform/graphics/filters/FEDisplacementMap.cpp
@@ -39,10 +39,10 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<FEDisplacementMap> FEDisplacementMap::create(Filter* filter, ChannelSelectorType xChannelSelector,
+RawPtr<FEDisplacementMap> FEDisplacementMap::create(Filter* filter, ChannelSelectorType xChannelSelector,
     ChannelSelectorType yChannelSelector, float scale)
 {
-    return adoptRefWillBeNoop(new FEDisplacementMap(filter, xChannelSelector, yChannelSelector, scale));
+    return new FEDisplacementMap(filter, xChannelSelector, yChannelSelector, scale);
 }
 
 FloatRect FEDisplacementMap::mapPaintRect(const FloatRect& rect, bool)
diff --git a/third_party/WebKit/Source/platform/graphics/filters/FEDisplacementMap.h b/third_party/WebKit/Source/platform/graphics/filters/FEDisplacementMap.h
index 43410d2..547874e0 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/FEDisplacementMap.h
+++ b/third_party/WebKit/Source/platform/graphics/filters/FEDisplacementMap.h
@@ -37,7 +37,7 @@
 
 class PLATFORM_EXPORT FEDisplacementMap final : public FilterEffect {
 public:
-    static PassRefPtrWillBeRawPtr<FEDisplacementMap> create(Filter*, ChannelSelectorType xChannelSelector, ChannelSelectorType yChannelSelector, float);
+    static RawPtr<FEDisplacementMap> create(Filter*, ChannelSelectorType xChannelSelector, ChannelSelectorType yChannelSelector, float);
 
     ChannelSelectorType xChannelSelector() const;
     bool setXChannelSelector(const ChannelSelectorType);
diff --git a/third_party/WebKit/Source/platform/graphics/filters/FEDropShadow.cpp b/third_party/WebKit/Source/platform/graphics/filters/FEDropShadow.cpp
index 366e457..40e7cf36 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/FEDropShadow.cpp
+++ b/third_party/WebKit/Source/platform/graphics/filters/FEDropShadow.cpp
@@ -39,9 +39,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<FEDropShadow> FEDropShadow::create(Filter* filter, float stdX, float stdY, float dx, float dy, const Color& shadowColor, float shadowOpacity)
+RawPtr<FEDropShadow> FEDropShadow::create(Filter* filter, float stdX, float stdY, float dx, float dy, const Color& shadowColor, float shadowOpacity)
 {
-    return adoptRefWillBeNoop(new FEDropShadow(filter, stdX, stdY, dx, dy, shadowColor, shadowOpacity));
+    return new FEDropShadow(filter, stdX, stdY, dx, dy, shadowColor, shadowOpacity);
 }
 
 FloatRect FEDropShadow::mapRect(const FloatRect& rect, bool forward)
diff --git a/third_party/WebKit/Source/platform/graphics/filters/FEDropShadow.h b/third_party/WebKit/Source/platform/graphics/filters/FEDropShadow.h
index bd76c2cb..8b4fda1 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/FEDropShadow.h
+++ b/third_party/WebKit/Source/platform/graphics/filters/FEDropShadow.h
@@ -28,7 +28,7 @@
 
 class PLATFORM_EXPORT FEDropShadow final : public FilterEffect {
 public:
-    static PassRefPtrWillBeRawPtr<FEDropShadow> create(Filter*, float, float, float, float, const Color&, float);
+    static RawPtr<FEDropShadow> create(Filter*, float, float, float, float, const Color&, float);
 
     FloatRect mapRect(const FloatRect&, bool forward = true) final;
 
diff --git a/third_party/WebKit/Source/platform/graphics/filters/FEFlood.cpp b/third_party/WebKit/Source/platform/graphics/filters/FEFlood.cpp
index 050feb3..205f898 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/FEFlood.cpp
+++ b/third_party/WebKit/Source/platform/graphics/filters/FEFlood.cpp
@@ -38,9 +38,9 @@
     FilterEffect::setOperatingColorSpace(ColorSpaceDeviceRGB);
 }
 
-PassRefPtrWillBeRawPtr<FEFlood> FEFlood::create(Filter* filter, const Color& floodColor, float floodOpacity)
+RawPtr<FEFlood> FEFlood::create(Filter* filter, const Color& floodColor, float floodOpacity)
 {
-    return adoptRefWillBeNoop(new FEFlood(filter, floodColor, floodOpacity));
+    return new FEFlood(filter, floodColor, floodOpacity);
 }
 
 Color FEFlood::floodColor() const
diff --git a/third_party/WebKit/Source/platform/graphics/filters/FEFlood.h b/third_party/WebKit/Source/platform/graphics/filters/FEFlood.h
index 6949434..38146fe 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/FEFlood.h
+++ b/third_party/WebKit/Source/platform/graphics/filters/FEFlood.h
@@ -30,7 +30,7 @@
 
 class PLATFORM_EXPORT FEFlood final: public FilterEffect {
 public:
-    static PassRefPtrWillBeRawPtr<FEFlood> create(Filter*, const Color&, float);
+    static RawPtr<FEFlood> create(Filter*, const Color&, float);
 
     Color floodColor() const;
     bool setFloodColor(const Color &);
diff --git a/third_party/WebKit/Source/platform/graphics/filters/FEGaussianBlur.cpp b/third_party/WebKit/Source/platform/graphics/filters/FEGaussianBlur.cpp
index fd0a3a1..a6a8593 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/FEGaussianBlur.cpp
+++ b/third_party/WebKit/Source/platform/graphics/filters/FEGaussianBlur.cpp
@@ -45,9 +45,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<FEGaussianBlur> FEGaussianBlur::create(Filter* filter, float x, float y)
+RawPtr<FEGaussianBlur> FEGaussianBlur::create(Filter* filter, float x, float y)
 {
-    return adoptRefWillBeNoop(new FEGaussianBlur(filter, x, y));
+    return new FEGaussianBlur(filter, x, y);
 }
 
 IntSize FEGaussianBlur::calculateUnscaledKernelSize(const FloatPoint& std)
diff --git a/third_party/WebKit/Source/platform/graphics/filters/FEGaussianBlur.h b/third_party/WebKit/Source/platform/graphics/filters/FEGaussianBlur.h
index d5345a3..7f33b17 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/FEGaussianBlur.h
+++ b/third_party/WebKit/Source/platform/graphics/filters/FEGaussianBlur.h
@@ -29,7 +29,7 @@
 
 class PLATFORM_EXPORT FEGaussianBlur final : public FilterEffect {
 public:
-    static PassRefPtrWillBeRawPtr<FEGaussianBlur> create(Filter*, float, float);
+    static RawPtr<FEGaussianBlur> create(Filter*, float, float);
 
     FloatRect mapRect(const FloatRect&, bool forward = true) final;
     FloatRect determineAbsolutePaintRect(const FloatRect& requestedRect) override;
diff --git a/third_party/WebKit/Source/platform/graphics/filters/FEMerge.cpp b/third_party/WebKit/Source/platform/graphics/filters/FEMerge.cpp
index 881a82c..6bb6b3090 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/FEMerge.cpp
+++ b/third_party/WebKit/Source/platform/graphics/filters/FEMerge.cpp
@@ -34,9 +34,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<FEMerge> FEMerge::create(Filter* filter)
+RawPtr<FEMerge> FEMerge::create(Filter* filter)
 {
-    return adoptRefWillBeNoop(new FEMerge(filter));
+    return new FEMerge(filter);
 }
 
 PassRefPtr<SkImageFilter> FEMerge::createImageFilter(SkiaImageFilterBuilder& builder)
diff --git a/third_party/WebKit/Source/platform/graphics/filters/FEMerge.h b/third_party/WebKit/Source/platform/graphics/filters/FEMerge.h
index a794829..415ecbb 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/FEMerge.h
+++ b/third_party/WebKit/Source/platform/graphics/filters/FEMerge.h
@@ -29,7 +29,7 @@
 
 class PLATFORM_EXPORT FEMerge final : public FilterEffect {
 public:
-    static PassRefPtrWillBeRawPtr<FEMerge> create(Filter*);
+    static RawPtr<FEMerge> create(Filter*);
 
     TextStream& externalRepresentation(TextStream&, int indention) const override;
 
diff --git a/third_party/WebKit/Source/platform/graphics/filters/FEMorphology.cpp b/third_party/WebKit/Source/platform/graphics/filters/FEMorphology.cpp
index d10cbe7..bfd21cb9 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/FEMorphology.cpp
+++ b/third_party/WebKit/Source/platform/graphics/filters/FEMorphology.cpp
@@ -39,9 +39,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<FEMorphology> FEMorphology::create(Filter* filter, MorphologyOperatorType type, float radiusX, float radiusY)
+RawPtr<FEMorphology> FEMorphology::create(Filter* filter, MorphologyOperatorType type, float radiusX, float radiusY)
 {
-    return adoptRefWillBeNoop(new FEMorphology(filter, type, radiusX, radiusY));
+    return new FEMorphology(filter, type, radiusX, radiusY);
 }
 
 MorphologyOperatorType FEMorphology::morphologyOperator() const
diff --git a/third_party/WebKit/Source/platform/graphics/filters/FEMorphology.h b/third_party/WebKit/Source/platform/graphics/filters/FEMorphology.h
index 11060d98..46aecbc 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/FEMorphology.h
+++ b/third_party/WebKit/Source/platform/graphics/filters/FEMorphology.h
@@ -35,7 +35,7 @@
 
 class PLATFORM_EXPORT FEMorphology final : public FilterEffect {
 public:
-    static PassRefPtrWillBeRawPtr<FEMorphology> create(Filter*, MorphologyOperatorType, float radiusX, float radiusY);
+    static RawPtr<FEMorphology> create(Filter*, MorphologyOperatorType, float radiusX, float radiusY);
     MorphologyOperatorType morphologyOperator() const;
     bool setMorphologyOperator(MorphologyOperatorType);
 
diff --git a/third_party/WebKit/Source/platform/graphics/filters/FEOffset.cpp b/third_party/WebKit/Source/platform/graphics/filters/FEOffset.cpp
index b43da65..7e8a2aa 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/FEOffset.cpp
+++ b/third_party/WebKit/Source/platform/graphics/filters/FEOffset.cpp
@@ -38,9 +38,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<FEOffset> FEOffset::create(Filter* filter, float dx, float dy)
+RawPtr<FEOffset> FEOffset::create(Filter* filter, float dx, float dy)
 {
-    return adoptRefWillBeNoop(new FEOffset(filter, dx, dy));
+    return new FEOffset(filter, dx, dy);
 }
 
 float FEOffset::dx() const
diff --git a/third_party/WebKit/Source/platform/graphics/filters/FEOffset.h b/third_party/WebKit/Source/platform/graphics/filters/FEOffset.h
index 8fec4ce..8783055 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/FEOffset.h
+++ b/third_party/WebKit/Source/platform/graphics/filters/FEOffset.h
@@ -29,7 +29,7 @@
 
 class PLATFORM_EXPORT FEOffset final : public FilterEffect {
 public:
-    static PassRefPtrWillBeRawPtr<FEOffset> create(Filter*, float dx, float dy);
+    static RawPtr<FEOffset> create(Filter*, float dx, float dy);
 
     float dx() const;
     void setDx(float);
diff --git a/third_party/WebKit/Source/platform/graphics/filters/FESpecularLighting.cpp b/third_party/WebKit/Source/platform/graphics/filters/FESpecularLighting.cpp
index b4cc656..270aed1 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/FESpecularLighting.cpp
+++ b/third_party/WebKit/Source/platform/graphics/filters/FESpecularLighting.cpp
@@ -35,11 +35,11 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<FESpecularLighting> FESpecularLighting::create(Filter* filter, const Color& lightingColor,
+RawPtr<FESpecularLighting> FESpecularLighting::create(Filter* filter, const Color& lightingColor,
     float surfaceScale, float specularConstant, float specularExponent, PassRefPtr<LightSource> lightSource)
 {
-    return adoptRefWillBeNoop(new FESpecularLighting(filter, lightingColor, surfaceScale, specularConstant, specularExponent,
-        lightSource));
+    return new FESpecularLighting(filter, lightingColor, surfaceScale, specularConstant, specularExponent,
+        lightSource);
 }
 
 FESpecularLighting::~FESpecularLighting()
diff --git a/third_party/WebKit/Source/platform/graphics/filters/FESpecularLighting.h b/third_party/WebKit/Source/platform/graphics/filters/FESpecularLighting.h
index 0d189d446..9328afd 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/FESpecularLighting.h
+++ b/third_party/WebKit/Source/platform/graphics/filters/FESpecularLighting.h
@@ -29,7 +29,7 @@
 
 class PLATFORM_EXPORT FESpecularLighting final : public FELighting {
 public:
-    static PassRefPtrWillBeRawPtr<FESpecularLighting> create(Filter*, const Color&, float, float,
+    static RawPtr<FESpecularLighting> create(Filter*, const Color&, float, float,
         float, PassRefPtr<LightSource>);
     ~FESpecularLighting() override;
 
diff --git a/third_party/WebKit/Source/platform/graphics/filters/FETile.cpp b/third_party/WebKit/Source/platform/graphics/filters/FETile.cpp
index 8981017..992bcdc 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/FETile.cpp
+++ b/third_party/WebKit/Source/platform/graphics/filters/FETile.cpp
@@ -33,9 +33,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<FETile> FETile::create(Filter* filter)
+RawPtr<FETile> FETile::create(Filter* filter)
 {
-    return adoptRefWillBeNoop(new FETile(filter));
+    return new FETile(filter);
 }
 
 FloatRect FETile::mapPaintRect(const FloatRect& rect, bool forward)
diff --git a/third_party/WebKit/Source/platform/graphics/filters/FETile.h b/third_party/WebKit/Source/platform/graphics/filters/FETile.h
index 22d6de1..5475909 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/FETile.h
+++ b/third_party/WebKit/Source/platform/graphics/filters/FETile.h
@@ -29,7 +29,7 @@
 
 class PLATFORM_EXPORT FETile final : public FilterEffect {
 public:
-    static PassRefPtrWillBeRawPtr<FETile> create(Filter*);
+    static RawPtr<FETile> create(Filter*);
 
     FloatRect mapPaintRect(const FloatRect&, bool forward = true) final;
 
diff --git a/third_party/WebKit/Source/platform/graphics/filters/FETurbulence.cpp b/third_party/WebKit/Source/platform/graphics/filters/FETurbulence.cpp
index ed4b6db..bc956599 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/FETurbulence.cpp
+++ b/third_party/WebKit/Source/platform/graphics/filters/FETurbulence.cpp
@@ -44,9 +44,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<FETurbulence> FETurbulence::create(Filter* filter, TurbulenceType type, float baseFrequencyX, float baseFrequencyY, int numOctaves, float seed, bool stitchTiles)
+RawPtr<FETurbulence> FETurbulence::create(Filter* filter, TurbulenceType type, float baseFrequencyX, float baseFrequencyY, int numOctaves, float seed, bool stitchTiles)
 {
-    return adoptRefWillBeNoop(new FETurbulence(filter, type, baseFrequencyX, baseFrequencyY, numOctaves, seed, stitchTiles));
+    return new FETurbulence(filter, type, baseFrequencyX, baseFrequencyY, numOctaves, seed, stitchTiles);
 }
 
 TurbulenceType FETurbulence::type() const
diff --git a/third_party/WebKit/Source/platform/graphics/filters/FETurbulence.h b/third_party/WebKit/Source/platform/graphics/filters/FETurbulence.h
index 7a46e6e..7b5364a 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/FETurbulence.h
+++ b/third_party/WebKit/Source/platform/graphics/filters/FETurbulence.h
@@ -39,7 +39,7 @@
 
 class PLATFORM_EXPORT FETurbulence final : public FilterEffect {
 public:
-    static PassRefPtrWillBeRawPtr<FETurbulence> create(Filter*, TurbulenceType, float, float, int, float, bool);
+    static RawPtr<FETurbulence> create(Filter*, TurbulenceType, float, float, int, float, bool);
 
     TurbulenceType type() const;
     bool setType(TurbulenceType);
diff --git a/third_party/WebKit/Source/platform/graphics/filters/Filter.cpp b/third_party/WebKit/Source/platform/graphics/filters/Filter.cpp
index 3749b3b..3ba1b29 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/Filter.cpp
+++ b/third_party/WebKit/Source/platform/graphics/filters/Filter.cpp
@@ -48,14 +48,14 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<Filter> Filter::create(const FloatRect& referenceBox, const FloatRect& filterRegion, float scale, UnitScaling unitScaling)
+RawPtr<Filter> Filter::create(const FloatRect& referenceBox, const FloatRect& filterRegion, float scale, UnitScaling unitScaling)
 {
-    return adoptRefWillBeNoop(new Filter(referenceBox, filterRegion, scale, unitScaling));
+    return new Filter(referenceBox, filterRegion, scale, unitScaling);
 }
 
-PassRefPtrWillBeRawPtr<Filter> Filter::create(float scale)
+RawPtr<Filter> Filter::create(float scale)
 {
-    return adoptRefWillBeNoop(new Filter(FloatRect(), FloatRect(), scale, UserSpace));
+    return new Filter(FloatRect(), FloatRect(), scale, UserSpace);
 }
 
 DEFINE_TRACE(Filter)
@@ -101,7 +101,7 @@
         point.z() * sqrtf(referenceBox().size().diagonalLengthSquared() / 2));
 }
 
-void Filter::setLastEffect(PassRefPtrWillBeRawPtr<FilterEffect> effect)
+void Filter::setLastEffect(RawPtr<FilterEffect> effect)
 {
     m_lastEffect = effect;
 }
diff --git a/third_party/WebKit/Source/platform/graphics/filters/Filter.h b/third_party/WebKit/Source/platform/graphics/filters/Filter.h
index 530b070f7..160197b 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/Filter.h
+++ b/third_party/WebKit/Source/platform/graphics/filters/Filter.h
@@ -34,7 +34,7 @@
 class SourceGraphic;
 class FilterEffect;
 
-class PLATFORM_EXPORT Filter final : public RefCountedWillBeGarbageCollectedFinalized<Filter> {
+class PLATFORM_EXPORT Filter final : public GarbageCollectedFinalized<Filter> {
     WTF_MAKE_NONCOPYABLE(Filter);
 public:
     enum UnitScaling {
@@ -42,8 +42,8 @@
         BoundingBox
     };
 
-    static PassRefPtrWillBeRawPtr<Filter> create(const FloatRect& referenceBox, const FloatRect& filterRegion, float scale, UnitScaling);
-    static PassRefPtrWillBeRawPtr<Filter> create(float scale);
+    static RawPtr<Filter> create(const FloatRect& referenceBox, const FloatRect& filterRegion, float scale, UnitScaling);
+    static RawPtr<Filter> create(float scale);
 
     ~Filter();
     DECLARE_TRACE();
@@ -62,7 +62,7 @@
     const FloatRect& filterRegion() const { return m_filterRegion; }
     const FloatRect& referenceBox() const { return m_referenceBox; }
 
-    void setLastEffect(PassRefPtrWillBeRawPtr<FilterEffect>);
+    void setLastEffect(RawPtr<FilterEffect>);
     FilterEffect* lastEffect() const { return m_lastEffect.get(); }
 
     SourceGraphic* getSourceGraphic() const { return m_sourceGraphic.get(); }
@@ -75,8 +75,8 @@
     float m_scale;
     UnitScaling m_unitScaling;
 
-    RefPtrWillBeMember<SourceGraphic> m_sourceGraphic;
-    RefPtrWillBeMember<FilterEffect> m_lastEffect;
+    Member<SourceGraphic> m_sourceGraphic;
+    Member<FilterEffect> m_lastEffect;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/platform/graphics/filters/FilterEffect.cpp b/third_party/WebKit/Source/platform/graphics/filters/FilterEffect.cpp
index 602731d..d0f1c4c 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/FilterEffect.cpp
+++ b/third_party/WebKit/Source/platform/graphics/filters/FilterEffect.cpp
@@ -201,7 +201,7 @@
 
 bool FilterEffect::inputsTaintOrigin() const
 {
-    for (const RefPtrWillBeMember<FilterEffect>& effect : m_inputEffects) {
+    for (const Member<FilterEffect>& effect : m_inputEffects) {
         if (effect->originTainted())
             return true;
     }
diff --git a/third_party/WebKit/Source/platform/graphics/filters/FilterEffect.h b/third_party/WebKit/Source/platform/graphics/filters/FilterEffect.h
index 83dde80..1fcf6ff 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/FilterEffect.h
+++ b/third_party/WebKit/Source/platform/graphics/filters/FilterEffect.h
@@ -44,7 +44,7 @@
 
 class SkiaImageFilterBuilder;
 
-typedef WillBeHeapVector<RefPtrWillBeMember<FilterEffect>> FilterEffectVector;
+typedef HeapVector<Member<FilterEffect>> FilterEffectVector;
 
 enum FilterEffectType {
     FilterEffectTypeUnknown,
@@ -61,7 +61,7 @@
 
 typedef int DetermineSubregionFlags;
 
-class PLATFORM_EXPORT FilterEffect : public RefCountedWillBeGarbageCollectedFinalized<FilterEffect> {
+class PLATFORM_EXPORT FilterEffect : public GarbageCollectedFinalized<FilterEffect> {
     WTF_MAKE_NONCOPYABLE(FilterEffect);
 public:
     virtual ~FilterEffect();
@@ -175,7 +175,7 @@
     // The maximum size of a filter primitive. In SVG this is the primitive subregion in absolute coordinate space.
     // The absolute paint rect should never be bigger than m_maxEffectRect.
     FloatRect m_maxEffectRect;
-    RawPtrWillBeMember<Filter> m_filter;
+    Member<Filter> m_filter;
 
     // The following member variables are SVG specific and will move to LayoutSVGResourceFilterPrimitive.
     // See bug https://bugs.webkit.org/show_bug.cgi?id=45614.
diff --git a/third_party/WebKit/Source/platform/graphics/filters/FilterOperation.cpp b/third_party/WebKit/Source/platform/graphics/filters/FilterOperation.cpp
index 65ef29fb8..dff2edfb 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/FilterOperation.cpp
+++ b/third_party/WebKit/Source/platform/graphics/filters/FilterOperation.cpp
@@ -29,7 +29,7 @@
 
 namespace blink {
 
-PassRefPtrWillBeRawPtr<FilterOperation> FilterOperation::blend(const FilterOperation* from, const FilterOperation* to, double progress)
+RawPtr<FilterOperation> FilterOperation::blend(const FilterOperation* from, const FilterOperation* to, double progress)
 {
     ASSERT(from || to);
     if (to)
@@ -43,7 +43,7 @@
     FilterOperation::trace(visitor);
 }
 
-PassRefPtrWillBeRawPtr<FilterOperation> BasicColorMatrixFilterOperation::blend(const FilterOperation* from, double progress) const
+RawPtr<FilterOperation> BasicColorMatrixFilterOperation::blend(const FilterOperation* from, double progress) const
 {
     double fromAmount;
     if (from) {
@@ -82,7 +82,7 @@
     return BasicColorMatrixFilterOperation::create(result, m_type);
 }
 
-PassRefPtrWillBeRawPtr<FilterOperation> BasicComponentTransferFilterOperation::blend(const FilterOperation* from, double progress) const
+RawPtr<FilterOperation> BasicComponentTransferFilterOperation::blend(const FilterOperation* from, double progress) const
 {
     double fromAmount;
     if (from) {
@@ -120,7 +120,7 @@
     return BasicComponentTransferFilterOperation::create(result, m_type);
 }
 
-PassRefPtrWillBeRawPtr<FilterOperation> BlurFilterOperation::blend(const FilterOperation* from, double progress) const
+RawPtr<FilterOperation> BlurFilterOperation::blend(const FilterOperation* from, double progress) const
 {
     LengthType lengthType = m_stdDeviation.type();
     if (!from)
@@ -130,7 +130,7 @@
     return BlurFilterOperation::create(m_stdDeviation.blend(fromOp->m_stdDeviation, progress, ValueRangeNonNegative));
 }
 
-PassRefPtrWillBeRawPtr<FilterOperation> DropShadowFilterOperation::blend(const FilterOperation* from, double progress) const
+RawPtr<FilterOperation> DropShadowFilterOperation::blend(const FilterOperation* from, double progress) const
 {
     if (!from) {
         return DropShadowFilterOperation::create(
@@ -146,5 +146,19 @@
         blink::blend(fromOp->getColor(), m_color, progress));
 }
 
+PassRefPtrWillBeRawPtr<FilterOperation> BoxReflectFilterOperation::blend(const FilterOperation* from, double progress) const
+{
+    ASSERT_NOT_REACHED();
+    return nullptr;
+}
+
+bool BoxReflectFilterOperation::operator==(const FilterOperation& o) const
+{
+    if (!isSameType(o))
+        return false;
+    const auto& other = static_cast<const BoxReflectFilterOperation&>(o);
+    return m_direction == other.m_direction && m_offset == other.m_offset;
+}
+
 } // namespace blink
 
diff --git a/third_party/WebKit/Source/platform/graphics/filters/FilterOperation.h b/third_party/WebKit/Source/platform/graphics/filters/FilterOperation.h
index f7a2668..8dd8707 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/FilterOperation.h
+++ b/third_party/WebKit/Source/platform/graphics/filters/FilterOperation.h
@@ -29,6 +29,7 @@
 #include "platform/Length.h"
 #include "platform/PlatformExport.h"
 #include "platform/graphics/Color.h"
+#include "platform/graphics/GraphicsTypes.h"
 #include "platform/graphics/filters/Filter.h"
 #include "platform/heap/Handle.h"
 #include "wtf/Noncopyable.h"
@@ -41,7 +42,7 @@
 
 // CSS Filters
 
-class PLATFORM_EXPORT FilterOperation : public RefCountedWillBeGarbageCollectedFinalized<FilterOperation> {
+class PLATFORM_EXPORT FilterOperation : public GarbageCollectedFinalized<FilterOperation> {
     WTF_MAKE_NONCOPYABLE(FilterOperation);
 public:
     enum OperationType {
@@ -56,6 +57,7 @@
         CONTRAST,
         BLUR,
         DROP_SHADOW,
+        BOX_REFLECT,
         NONE
     };
 
@@ -74,6 +76,7 @@
         case DROP_SHADOW:
             return true;
         case REFERENCE:
+        case BOX_REFLECT:
             return false;
         case NONE:
             break;
@@ -85,7 +88,7 @@
     virtual ~FilterOperation() { }
     DEFINE_INLINE_VIRTUAL_TRACE() { }
 
-    static PassRefPtrWillBeRawPtr<FilterOperation> blend(const FilterOperation* from, const FilterOperation* to, double progress);
+    static RawPtr<FilterOperation> blend(const FilterOperation* from, const FilterOperation* to, double progress);
     virtual bool operator==(const FilterOperation&) const = 0;
     bool operator!=(const FilterOperation& o) const { return !(*this == o); }
 
@@ -106,7 +109,7 @@
     OperationType m_type;
 
 private:
-    virtual PassRefPtrWillBeRawPtr<FilterOperation> blend(const FilterOperation* from, double progress) const = 0;
+    virtual RawPtr<FilterOperation> blend(const FilterOperation* from, double progress) const = 0;
 };
 
 #define DEFINE_FILTER_OPERATION_TYPE_CASTS(thisType, operationType) \
@@ -114,9 +117,9 @@
 
 class PLATFORM_EXPORT ReferenceFilterOperation : public FilterOperation {
 public:
-    static PassRefPtrWillBeRawPtr<ReferenceFilterOperation> create(const String& url, const AtomicString& fragment)
+    static RawPtr<ReferenceFilterOperation> create(const String& url, const AtomicString& fragment)
     {
-        return adoptRefWillBeNoop(new ReferenceFilterOperation(url, fragment));
+        return new ReferenceFilterOperation(url, fragment);
     }
 
     bool affectsOpacity() const override { return true; }
@@ -126,12 +129,12 @@
     const AtomicString& fragment() const { return m_fragment; }
 
     Filter* getFilter() const { return m_filter.get(); }
-    void setFilter(PassRefPtrWillBeRawPtr<Filter> filter) { m_filter = filter; }
+    void setFilter(RawPtr<Filter> filter) { m_filter = filter; }
 
     DECLARE_VIRTUAL_TRACE();
 
 private:
-    PassRefPtrWillBeRawPtr<FilterOperation> blend(const FilterOperation* from, double progress) const override
+    RawPtr<FilterOperation> blend(const FilterOperation* from, double progress) const override
     {
         ASSERT_NOT_REACHED();
         return nullptr;
@@ -154,7 +157,7 @@
 
     String m_url;
     AtomicString m_fragment;
-    RefPtrWillBeMember<Filter> m_filter;
+    Member<Filter> m_filter;
 };
 
 DEFINE_FILTER_OPERATION_TYPE_CASTS(ReferenceFilterOperation, REFERENCE);
@@ -163,16 +166,16 @@
 // For HUE_ROTATE, the angle of rotation is stored in m_amount.
 class PLATFORM_EXPORT BasicColorMatrixFilterOperation : public FilterOperation {
 public:
-    static PassRefPtrWillBeRawPtr<BasicColorMatrixFilterOperation> create(double amount, OperationType type)
+    static RawPtr<BasicColorMatrixFilterOperation> create(double amount, OperationType type)
     {
-        return adoptRefWillBeNoop(new BasicColorMatrixFilterOperation(amount, type));
+        return new BasicColorMatrixFilterOperation(amount, type);
     }
 
     double amount() const { return m_amount; }
 
 
 private:
-    PassRefPtrWillBeRawPtr<FilterOperation> blend(const FilterOperation* from, double progress) const override;
+    RawPtr<FilterOperation> blend(const FilterOperation* from, double progress) const override;
     bool operator==(const FilterOperation& o) const override
     {
         if (!isSameType(o))
@@ -201,9 +204,9 @@
 // INVERT, BRIGHTNESS, CONTRAST and OPACITY are variations on a basic component transfer effect.
 class PLATFORM_EXPORT BasicComponentTransferFilterOperation : public FilterOperation {
 public:
-    static PassRefPtrWillBeRawPtr<BasicComponentTransferFilterOperation> create(double amount, OperationType type)
+    static RawPtr<BasicComponentTransferFilterOperation> create(double amount, OperationType type)
     {
-        return adoptRefWillBeNoop(new BasicComponentTransferFilterOperation(amount, type));
+        return new BasicComponentTransferFilterOperation(amount, type);
     }
 
     double amount() const { return m_amount; }
@@ -212,7 +215,7 @@
 
 
 private:
-    PassRefPtrWillBeRawPtr<FilterOperation> blend(const FilterOperation* from, double progress) const override;
+    RawPtr<FilterOperation> blend(const FilterOperation* from, double progress) const override;
     bool operator==(const FilterOperation& o) const override
     {
         if (!isSameType(o))
@@ -240,9 +243,9 @@
 
 class PLATFORM_EXPORT BlurFilterOperation : public FilterOperation {
 public:
-    static PassRefPtrWillBeRawPtr<BlurFilterOperation> create(const Length& stdDeviation)
+    static RawPtr<BlurFilterOperation> create(const Length& stdDeviation)
     {
-        return adoptRefWillBeNoop(new BlurFilterOperation(stdDeviation));
+        return new BlurFilterOperation(stdDeviation);
     }
 
     const Length& stdDeviation() const { return m_stdDeviation; }
@@ -252,7 +255,7 @@
 
 
 private:
-    PassRefPtrWillBeRawPtr<FilterOperation> blend(const FilterOperation* from, double progress) const override;
+    RawPtr<FilterOperation> blend(const FilterOperation* from, double progress) const override;
     bool operator==(const FilterOperation& o) const override
     {
         if (!isSameType(o))
@@ -274,9 +277,9 @@
 
 class PLATFORM_EXPORT DropShadowFilterOperation : public FilterOperation {
 public:
-    static PassRefPtrWillBeRawPtr<DropShadowFilterOperation> create(const IntPoint& location, int stdDeviation, Color color)
+    static RawPtr<DropShadowFilterOperation> create(const IntPoint& location, int stdDeviation, Color color)
     {
-        return adoptRefWillBeNoop(new DropShadowFilterOperation(location, stdDeviation, color));
+        return new DropShadowFilterOperation(location, stdDeviation, color);
     }
 
     int x() const { return m_location.x(); }
@@ -290,7 +293,7 @@
 
 
 private:
-    PassRefPtrWillBeRawPtr<FilterOperation> blend(const FilterOperation* from, double progress) const override;
+    RawPtr<FilterOperation> blend(const FilterOperation* from, double progress) const override;
     bool operator==(const FilterOperation& o) const override
     {
         if (!isSameType(o))
@@ -314,7 +317,35 @@
 
 DEFINE_FILTER_OPERATION_TYPE_CASTS(DropShadowFilterOperation, DROP_SHADOW);
 
-} // namespace blink
+class PLATFORM_EXPORT BoxReflectFilterOperation : public FilterOperation {
+public:
+    static PassRefPtrWillBeRawPtr<BoxReflectFilterOperation> create(ReflectionDirection direction, float offset)
+    {
+        return adoptRefWillBeNoop(new BoxReflectFilterOperation(direction, offset));
+    }
 
+    ReflectionDirection direction() const { return m_direction; }
+    float offset() const { return m_offset; }
+
+    bool affectsOpacity() const override { return true; }
+    bool movesPixels() const override { return true; }
+
+private:
+    PassRefPtrWillBeRawPtr<FilterOperation> blend(const FilterOperation* from, double progress) const override;
+    bool operator==(const FilterOperation&) const override;
+
+    BoxReflectFilterOperation(ReflectionDirection direction, float offset)
+        : FilterOperation(BOX_REFLECT)
+        , m_direction(direction)
+        , m_offset(offset)
+    {
+    }
+
+    ReflectionDirection m_direction;
+    float m_offset;
+};
+DEFINE_FILTER_OPERATION_TYPE_CASTS(BoxReflectFilterOperation, BOX_REFLECT);
+
+} // namespace blink
 
 #endif // FilterOperation_h
diff --git a/third_party/WebKit/Source/platform/graphics/filters/FilterOperations.cpp b/third_party/WebKit/Source/platform/graphics/filters/FilterOperations.cpp
index e1db93e..093ddf9 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/FilterOperations.cpp
+++ b/third_party/WebKit/Source/platform/graphics/filters/FilterOperations.cpp
@@ -105,7 +105,10 @@
 {
     for (size_t i = 0; i < m_operations.size(); ++i) {
         FilterOperation::OperationType operationType = m_operations.at(i)->type();
-        if (operationType == FilterOperation::BLUR || operationType == FilterOperation::DROP_SHADOW || operationType == FilterOperation::REFERENCE)
+        if (operationType == FilterOperation::BLUR
+            || operationType == FilterOperation::DROP_SHADOW
+            || operationType == FilterOperation::REFERENCE
+            || operationType == FilterOperation::BOX_REFLECT)
             return true;
     }
     return false;
@@ -152,6 +155,10 @@
             }
             break;
         }
+        case FilterOperation::BOX_REFLECT: {
+            // Already accounted for at all call sites.
+            break;
+        }
         default:
             break;
         }
@@ -176,4 +183,3 @@
 }
 
 } // namespace blink
-
diff --git a/third_party/WebKit/Source/platform/graphics/filters/FilterOperations.h b/third_party/WebKit/Source/platform/graphics/filters/FilterOperations.h
index dc3f53f9..6d6ca129 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/FilterOperations.h
+++ b/third_party/WebKit/Source/platform/graphics/filters/FilterOperations.h
@@ -59,7 +59,7 @@
         m_operations.clear();
     }
 
-    typedef WillBeHeapVector<RefPtrWillBeMember<FilterOperation>> FilterOperationVector;
+    typedef HeapVector<Member<FilterOperation>> FilterOperationVector;
 
     FilterOperationVector& operations() { return m_operations; }
     const FilterOperationVector& operations() const { return m_operations; }
diff --git a/third_party/WebKit/Source/platform/graphics/filters/ImageFilterBuilderTest.cpp b/third_party/WebKit/Source/platform/graphics/filters/ImageFilterBuilderTest.cpp
index aff86a9..206ad4a 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/ImageFilterBuilderTest.cpp
+++ b/third_party/WebKit/Source/platform/graphics/filters/ImageFilterBuilderTest.cpp
@@ -40,20 +40,20 @@
     void colorSpaceTest()
     {
         // Build filter tree
-        RefPtrWillBeRawPtr<Filter> referenceFilter = Filter::create(1.0f);
+        RawPtr<Filter> referenceFilter = Filter::create(1.0f);
 
         // Add a dummy source graphic input
-        RefPtrWillBeRawPtr<FilterEffect> sourceEffect = referenceFilter->getSourceGraphic();
+        RawPtr<FilterEffect> sourceEffect = referenceFilter->getSourceGraphic();
         sourceEffect->setOperatingColorSpace(ColorSpaceDeviceRGB);
 
         // Add a blur effect (with input : source)
-        RefPtrWillBeRawPtr<FilterEffect> blurEffect =
+        RawPtr<FilterEffect> blurEffect =
             FEGaussianBlur::create(referenceFilter.get(), 3.0f, 3.0f);
         blurEffect->setOperatingColorSpace(ColorSpaceLinearRGB);
         blurEffect->inputEffects().append(sourceEffect);
 
         // Add a blend effect (with inputs : blur, source)
-        RefPtrWillBeRawPtr<FilterEffect> blendEffect =
+        RawPtr<FilterEffect> blendEffect =
             FEBlend::create(referenceFilter.get(), WebBlendModeNormal);
         blendEffect->setOperatingColorSpace(ColorSpaceDeviceRGB);
         FilterEffectVector& blendInputs = blendEffect->inputEffects();
@@ -62,7 +62,7 @@
         blendInputs.append(blurEffect);
 
         // Add a merge effect (with inputs : blur, blend)
-        RefPtrWillBeRawPtr<FilterEffect> mergeEffect = FEMerge::create(referenceFilter.get());
+        RawPtr<FilterEffect> mergeEffect = FEMerge::create(referenceFilter.get());
         mergeEffect->setOperatingColorSpace(ColorSpaceLinearRGB);
         FilterEffectVector& mergeInputs = mergeEffect->inputEffects();
         mergeInputs.reserveCapacity(2);
diff --git a/third_party/WebKit/Source/platform/graphics/filters/PaintFilterEffect.cpp b/third_party/WebKit/Source/platform/graphics/filters/PaintFilterEffect.cpp
index 7addc0d..1d7263ed 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/PaintFilterEffect.cpp
+++ b/third_party/WebKit/Source/platform/graphics/filters/PaintFilterEffect.cpp
@@ -21,9 +21,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<PaintFilterEffect> PaintFilterEffect::create(Filter* filter, const SkPaint& paint)
+RawPtr<PaintFilterEffect> PaintFilterEffect::create(Filter* filter, const SkPaint& paint)
 {
-    return adoptRefWillBeNoop(new PaintFilterEffect(filter, paint));
+    return new PaintFilterEffect(filter, paint);
 }
 
 PassRefPtr<SkImageFilter> PaintFilterEffect::createImageFilter(SkiaImageFilterBuilder&)
diff --git a/third_party/WebKit/Source/platform/graphics/filters/PaintFilterEffect.h b/third_party/WebKit/Source/platform/graphics/filters/PaintFilterEffect.h
index d972c4b..a216773c 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/PaintFilterEffect.h
+++ b/third_party/WebKit/Source/platform/graphics/filters/PaintFilterEffect.h
@@ -12,7 +12,7 @@
 
 class PLATFORM_EXPORT PaintFilterEffect : public FilterEffect {
 public:
-    static PassRefPtrWillBeRawPtr<PaintFilterEffect> create(Filter*, const SkPaint&);
+    static RawPtr<PaintFilterEffect> create(Filter*, const SkPaint&);
     ~PaintFilterEffect() override;
 
     FilterEffectType getFilterEffectType() const override { return FilterEffectTypeSourceInput; }
diff --git a/third_party/WebKit/Source/platform/graphics/filters/SkiaImageFilterBuilder.cpp b/third_party/WebKit/Source/platform/graphics/filters/SkiaImageFilterBuilder.cpp
index 4724206..150b48b 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/SkiaImageFilterBuilder.cpp
+++ b/third_party/WebKit/Source/platform/graphics/filters/SkiaImageFilterBuilder.cpp
@@ -34,6 +34,8 @@
 #include "platform/graphics/filters/FilterOperations.h"
 #include "platform/graphics/filters/SourceGraphic.h"
 #include "platform/graphics/skia/SkiaUtils.h"
+#include "third_party/skia/include/core/SkXfermode.h"
+#include "third_party/skia/include/effects/SkXfermodeImageFilter.h"
 
 namespace blink {
 
@@ -160,6 +162,15 @@
             filters->appendDropShadowFilter(drop.location(), drop.stdDeviation(), drop.getColor());
             break;
         }
+        case FilterOperation::BOX_REFLECT: {
+            // TODO(jbroman): Consider explaining box reflect to the compositor,
+            // instead of calling this a "reference filter".
+            const auto& reflectOperation = toBoxReflectFilterOperation(op);
+            RefPtr<SkImageFilter> imageFilter = buildBoxReflectFilter(
+                reflectOperation.direction(), reflectOperation.offset(), nullptr, nullFilter);
+            filters->appendReferenceFilter(imageFilter.get());
+            break;
+        }
         case FilterOperation::NONE:
             break;
         }
@@ -176,4 +187,40 @@
     return adoptRef(SkImageFilter::CreateMatrixFilter(affineTransformToSkMatrix(transform), kHigh_SkFilterQuality, input));
 }
 
+SkMatrix SkiaImageFilterBuilder::matrixForBoxReflectFilter(ReflectionDirection direction, float offset)
+{
+    SkMatrix flipMatrix;
+    switch (direction) {
+    case VerticalReflection:
+        flipMatrix.setScale(1, -1);
+        flipMatrix.postTranslate(0, offset);
+        break;
+    case HorizontalReflection:
+        flipMatrix.setScale(-1, 1);
+        flipMatrix.postTranslate(offset, 0);
+        break;
+    default:
+        // MSVC requires that SkMatrix be initialized in this unreachable case.
+        NOTREACHED();
+        flipMatrix.reset();
+        break;
+    }
+    return flipMatrix;
+}
+
+PassRefPtr<SkImageFilter> SkiaImageFilterBuilder::buildBoxReflectFilter(ReflectionDirection direction, float offset, Image* maskImage, SkImageFilter* input)
+{
+    RefPtr<SkImageFilter> maskedInput = input;
+    // TODO(jbroman): If a mask image is provided, mask!
+
+    SkMatrix flipMatrix = matrixForBoxReflectFilter(direction, offset);
+    RefPtr<SkImageFilter> flipImageFilter = adoptRef(SkImageFilter::CreateMatrixFilter(
+        flipMatrix, kNone_SkFilterQuality, maskedInput.get()));
+
+    RefPtr<SkImageFilter> combineImageFilter = adoptRef(SkXfermodeImageFilter::Create(
+        nullptr, flipImageFilter.get(), input));
+
+    return combineImageFilter.release();
+}
+
 } // namespace blink
diff --git a/third_party/WebKit/Source/platform/graphics/filters/SkiaImageFilterBuilder.h b/third_party/WebKit/Source/platform/graphics/filters/SkiaImageFilterBuilder.h
index 737b5ed..efbcdf5 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/SkiaImageFilterBuilder.h
+++ b/third_party/WebKit/Source/platform/graphics/filters/SkiaImageFilterBuilder.h
@@ -30,14 +30,18 @@
 #include "platform/geometry/FloatSize.h"
 #include "platform/graphics/ColorSpace.h"
 #include "platform/graphics/CompositorFilterOperations.h"
+#include "platform/graphics/GraphicsTypes.h"
 #include "platform/heap/Handle.h"
 
 class SkImageFilter;
+class SkMatrix;
 
 namespace blink {
+
 class AffineTransform;
 class FilterEffect;
 class FilterOperations;
+class Image;
 
 class PLATFORM_EXPORT SkiaImageFilterBuilder {
     STACK_ALLOCATED();
@@ -50,6 +54,10 @@
 
     PassRefPtr<SkImageFilter> transformColorSpace(
         SkImageFilter* input, ColorSpace srcColorSpace, ColorSpace dstColorSpace);
+
+    SkMatrix matrixForBoxReflectFilter(ReflectionDirection, float offset);
+    PassRefPtr<SkImageFilter> buildBoxReflectFilter(
+        ReflectionDirection, float offset, Image* maskImage, SkImageFilter* input);
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/platform/graphics/filters/SourceAlpha.cpp b/third_party/WebKit/Source/platform/graphics/filters/SourceAlpha.cpp
index 4be8097..c29793d 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/SourceAlpha.cpp
+++ b/third_party/WebKit/Source/platform/graphics/filters/SourceAlpha.cpp
@@ -29,9 +29,9 @@
 
 namespace blink {
 
-PassRefPtrWillBeRawPtr<SourceAlpha> SourceAlpha::create(FilterEffect* sourceEffect)
+RawPtr<SourceAlpha> SourceAlpha::create(FilterEffect* sourceEffect)
 {
-    return adoptRefWillBeNoop(new SourceAlpha(sourceEffect));
+    return new SourceAlpha(sourceEffect);
 }
 
 SourceAlpha::SourceAlpha(FilterEffect* sourceEffect)
diff --git a/third_party/WebKit/Source/platform/graphics/filters/SourceAlpha.h b/third_party/WebKit/Source/platform/graphics/filters/SourceAlpha.h
index 8537da5..3b2d8ea 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/SourceAlpha.h
+++ b/third_party/WebKit/Source/platform/graphics/filters/SourceAlpha.h
@@ -27,7 +27,7 @@
 
 class PLATFORM_EXPORT SourceAlpha final : public FilterEffect {
 public:
-    static PassRefPtrWillBeRawPtr<SourceAlpha> create(FilterEffect*);
+    static RawPtr<SourceAlpha> create(FilterEffect*);
 
     FloatRect determineAbsolutePaintRect(const FloatRect& requestedRect) override;
 
diff --git a/third_party/WebKit/Source/platform/graphics/filters/SourceGraphic.cpp b/third_party/WebKit/Source/platform/graphics/filters/SourceGraphic.cpp
index 82df5540..7293c5e 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/SourceGraphic.cpp
+++ b/third_party/WebKit/Source/platform/graphics/filters/SourceGraphic.cpp
@@ -37,9 +37,9 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<SourceGraphic> SourceGraphic::create(Filter* filter)
+RawPtr<SourceGraphic> SourceGraphic::create(Filter* filter)
 {
-    return adoptRefWillBeNoop(new SourceGraphic(filter));
+    return new SourceGraphic(filter);
 }
 
 FloatRect SourceGraphic::determineAbsolutePaintRect(const FloatRect& requestedRect)
diff --git a/third_party/WebKit/Source/platform/graphics/filters/SourceGraphic.h b/third_party/WebKit/Source/platform/graphics/filters/SourceGraphic.h
index 1add9e1..58c2f44 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/SourceGraphic.h
+++ b/third_party/WebKit/Source/platform/graphics/filters/SourceGraphic.h
@@ -31,7 +31,7 @@
 
 class PLATFORM_EXPORT SourceGraphic final : public FilterEffect {
 public:
-    static PassRefPtrWillBeRawPtr<SourceGraphic> create(Filter*);
+    static RawPtr<SourceGraphic> create(Filter*);
     ~SourceGraphic() override;
 
     FloatRect determineAbsolutePaintRect(const FloatRect& requestedRect) override;
diff --git a/third_party/WebKit/Source/platform/mac/ScrollAnimatorMac.h b/third_party/WebKit/Source/platform/mac/ScrollAnimatorMac.h
index 010c54e..cdc362b6 100644
--- a/third_party/WebKit/Source/platform/mac/ScrollAnimatorMac.h
+++ b/third_party/WebKit/Source/platform/mac/ScrollAnimatorMac.h
@@ -47,7 +47,7 @@
 class Scrollbar;
 
 class PLATFORM_EXPORT ScrollAnimatorMac : public ScrollAnimatorBase {
-    WILL_BE_USING_PRE_FINALIZER(ScrollAnimatorMac, dispose);
+    USING_PRE_FINALIZER(ScrollAnimatorMac, dispose);
 public:
     ScrollAnimatorMac(ScrollableArea*);
     ~ScrollAnimatorMac() override;
diff --git a/third_party/WebKit/Source/platform/mac/ScrollAnimatorMac.mm b/third_party/WebKit/Source/platform/mac/ScrollAnimatorMac.mm
index ad91da4..4012cc3 100644
--- a/third_party/WebKit/Source/platform/mac/ScrollAnimatorMac.mm
+++ b/third_party/WebKit/Source/platform/mac/ScrollAnimatorMac.mm
@@ -673,9 +673,9 @@
 
 namespace blink {
 
-PassOwnPtrWillBeRawPtr<ScrollAnimatorBase> ScrollAnimatorBase::create(ScrollableArea* scrollableArea)
+RawPtr<ScrollAnimatorBase> ScrollAnimatorBase::create(ScrollableArea* scrollableArea)
 {
-    return adoptPtrWillBeNoop(new ScrollAnimatorMac(scrollableArea));
+    return new ScrollAnimatorMac(scrollableArea);
 }
 
 ScrollAnimatorMac::ScrollAnimatorMac(ScrollableArea* scrollableArea)
diff --git a/third_party/WebKit/Source/platform/mhtml/ArchiveResource.cpp b/third_party/WebKit/Source/platform/mhtml/ArchiveResource.cpp
index b8d521b..367e95cde 100644
--- a/third_party/WebKit/Source/platform/mhtml/ArchiveResource.cpp
+++ b/third_party/WebKit/Source/platform/mhtml/ArchiveResource.cpp
@@ -49,15 +49,15 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<ArchiveResource> ArchiveResource::create(
+RawPtr<ArchiveResource> ArchiveResource::create(
     PassRefPtr<SharedBuffer> data,
     const KURL& url,
     const String& contentID,
     const AtomicString& mimeType,
     const AtomicString& textEncoding)
 {
-    return adoptRefWillBeNoop(new ArchiveResource(
-        data, url, contentID, mimeType, textEncoding));
+    return new ArchiveResource(
+        data, url, contentID, mimeType, textEncoding);
 }
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/platform/mhtml/ArchiveResource.h b/third_party/WebKit/Source/platform/mhtml/ArchiveResource.h
index b886c4f..434cc667 100644
--- a/third_party/WebKit/Source/platform/mhtml/ArchiveResource.h
+++ b/third_party/WebKit/Source/platform/mhtml/ArchiveResource.h
@@ -37,9 +37,9 @@
 
 namespace blink {
 
-class PLATFORM_EXPORT ArchiveResource final : public RefCountedWillBeGarbageCollectedFinalized<ArchiveResource> {
+class PLATFORM_EXPORT ArchiveResource final : public GarbageCollectedFinalized<ArchiveResource> {
 public:
-    static PassRefPtrWillBeRawPtr<ArchiveResource> create(
+    static RawPtr<ArchiveResource> create(
         PassRefPtr<SharedBuffer>,
         const KURL&,
         const String& contentId,
diff --git a/third_party/WebKit/Source/platform/mhtml/MHTMLArchive.cpp b/third_party/WebKit/Source/platform/mhtml/MHTMLArchive.cpp
index d3d73902..da1f0b6 100644
--- a/third_party/WebKit/Source/platform/mhtml/MHTMLArchive.cpp
+++ b/third_party/WebKit/Source/platform/mhtml/MHTMLArchive.cpp
@@ -71,18 +71,18 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<MHTMLArchive> MHTMLArchive::create(const KURL& url, SharedBuffer* data)
+RawPtr<MHTMLArchive> MHTMLArchive::create(const KURL& url, SharedBuffer* data)
 {
     // For security reasons we only load MHTML pages from local URLs.
     if (!SchemeRegistry::shouldTreatURLSchemeAsLocal(url.protocol()))
         return nullptr;
 
     MHTMLParser parser(data);
-    WillBeHeapVector<RefPtrWillBeMember<ArchiveResource>> resources = parser.parseArchive();
+    HeapVector<Member<ArchiveResource>> resources = parser.parseArchive();
     if (resources.isEmpty())
         return nullptr; // Invalid MHTML file.
 
-    RefPtrWillBeRawPtr<MHTMLArchive> archive = adoptRefWillBeNoop(new MHTMLArchive);
+    RawPtr<MHTMLArchive> archive = adoptRefWillBeNoop(new MHTMLArchive);
     // The first document suitable resource is the main resource of the top frame.
     for (size_t i = 0; i < resources.size(); ++i) {
         const AtomicString& mimeType = resources[i]->mimeType();
@@ -220,7 +220,7 @@
     outputBuffer.append(asciiString.data(), asciiString.length());
 }
 
-void MHTMLArchive::setMainResource(PassRefPtrWillBeRawPtr<ArchiveResource> mainResource)
+void MHTMLArchive::setMainResource(RawPtr<ArchiveResource> mainResource)
 {
     m_mainResource = mainResource;
 }
diff --git a/third_party/WebKit/Source/platform/mhtml/MHTMLArchive.h b/third_party/WebKit/Source/platform/mhtml/MHTMLArchive.h
index 2ce0ab5..d0bca90 100644
--- a/third_party/WebKit/Source/platform/mhtml/MHTMLArchive.h
+++ b/third_party/WebKit/Source/platform/mhtml/MHTMLArchive.h
@@ -47,9 +47,9 @@
 
 struct SerializedResource;
 
-class PLATFORM_EXPORT MHTMLArchive final : public RefCountedWillBeGarbageCollectedFinalized<MHTMLArchive> {
+class PLATFORM_EXPORT MHTMLArchive final : public GarbageCollectedFinalized<MHTMLArchive> {
 public:
-    static PassRefPtrWillBeRawPtr<MHTMLArchive> create(const KURL&, SharedBuffer*);
+    static RawPtr<MHTMLArchive> create(const KURL&, SharedBuffer*);
     ~MHTMLArchive();
 
     // Binary encoding results in smaller MHTML files but they might not work in other browsers.
@@ -90,7 +90,7 @@
         const String& boundary,
         SharedBuffer& outputBuffer);
 
-    typedef WillBeHeapHashMap<String, RefPtrWillBeMember<ArchiveResource>> SubArchiveResources;
+    typedef HeapHashMap<String, Member<ArchiveResource>> SubArchiveResources;
 
     ArchiveResource* mainResource() { return m_mainResource.get(); }
     ArchiveResource* subresourceForURL(const KURL&) const;
@@ -100,10 +100,10 @@
 private:
     MHTMLArchive();
 
-    void setMainResource(PassRefPtrWillBeRawPtr<ArchiveResource>);
+    void setMainResource(RawPtr<ArchiveResource>);
     void addSubresource(ArchiveResource*);
 
-    RefPtrWillBeMember<ArchiveResource> m_mainResource;
+    Member<ArchiveResource> m_mainResource;
     SubArchiveResources m_subresources;
 };
 
diff --git a/third_party/WebKit/Source/platform/mhtml/MHTMLParser.cpp b/third_party/WebKit/Source/platform/mhtml/MHTMLParser.cpp
index 87b9488..3a06937 100644
--- a/third_party/WebKit/Source/platform/mhtml/MHTMLParser.cpp
+++ b/third_party/WebKit/Source/platform/mhtml/MHTMLParser.cpp
@@ -44,11 +44,11 @@
 namespace blink {
 
 // This class is a limited MIME parser used to parse the MIME headers of MHTML files.
-class MIMEHeader : public RefCountedWillBeGarbageCollectedFinalized<MIMEHeader> {
+class MIMEHeader : public GarbageCollectedFinalized<MIMEHeader> {
 public:
-    static PassRefPtrWillBeRawPtr<MIMEHeader> create()
+    static RawPtr<MIMEHeader> create()
     {
-        return adoptRefWillBeNoop(new MIMEHeader());
+        return new MIMEHeader();
     }
 
     enum Encoding {
@@ -60,7 +60,7 @@
         Unknown
     };
 
-    static PassRefPtrWillBeRawPtr<MIMEHeader> parseHeader(SharedBufferChunkReader* crLFLineReader);
+    static RawPtr<MIMEHeader> parseHeader(SharedBufferChunkReader* crLFLineReader);
 
     bool isMultipart() const { return m_contentType.startsWith("multipart/", TextCaseInsensitive); }
 
@@ -130,9 +130,9 @@
     return keyValuePairs;
 }
 
-PassRefPtrWillBeRawPtr<MIMEHeader> MIMEHeader::parseHeader(SharedBufferChunkReader* buffer)
+RawPtr<MIMEHeader> MIMEHeader::parseHeader(SharedBufferChunkReader* buffer)
 {
-    RefPtrWillBeRawPtr<MIMEHeader> mimeHeader = MIMEHeader::create();
+    RawPtr<MIMEHeader> mimeHeader = MIMEHeader::create();
     KeyValueMap keyValuePairs = retrieveKeyValuePairs(buffer);
     KeyValueMap::iterator mimeParametersIterator = keyValuePairs.find("content-type");
     if (mimeParametersIterator != keyValuePairs.end()) {
@@ -206,16 +206,16 @@
 {
 }
 
-WillBeHeapVector<RefPtrWillBeMember<ArchiveResource>> MHTMLParser::parseArchive()
+HeapVector<Member<ArchiveResource>> MHTMLParser::parseArchive()
 {
-    RefPtrWillBeRawPtr<MIMEHeader> header = MIMEHeader::parseHeader(&m_lineReader);
-    WillBeHeapVector<RefPtrWillBeMember<ArchiveResource>> resources;
+    RawPtr<MIMEHeader> header = MIMEHeader::parseHeader(&m_lineReader);
+    HeapVector<Member<ArchiveResource>> resources;
     if (!parseArchiveWithHeader(header.get(), resources))
         resources.clear();
     return resources;
 }
 
-bool MHTMLParser::parseArchiveWithHeader(MIMEHeader* header, WillBeHeapVector<RefPtrWillBeMember<ArchiveResource>>& resources)
+bool MHTMLParser::parseArchiveWithHeader(MIMEHeader* header, HeapVector<Member<ArchiveResource>>& resources)
 {
     if (!header) {
         DLOG(ERROR) << "Failed to parse MHTML part: no header.";
@@ -225,7 +225,7 @@
     if (!header->isMultipart()) {
         // With IE a page with no resource is not multi-part.
         bool endOfArchiveReached = false;
-        RefPtrWillBeRawPtr<ArchiveResource> resource = parseNextPart(*header, String(), String(), endOfArchiveReached);
+        RawPtr<ArchiveResource> resource = parseNextPart(*header, String(), String(), endOfArchiveReached);
         if (!resource)
             return false;
         resources.append(resource);
@@ -237,7 +237,7 @@
 
     bool endOfArchive = false;
     while (!endOfArchive) {
-        RefPtrWillBeRawPtr<MIMEHeader> resourceHeader = MIMEHeader::parseHeader(&m_lineReader);
+        RawPtr<MIMEHeader> resourceHeader = MIMEHeader::parseHeader(&m_lineReader);
         if (!resourceHeader) {
             DLOG(ERROR) << "Failed to parse MHTML, invalid MIME header.";
             return false;
@@ -253,7 +253,7 @@
             continue;
         }
 
-        RefPtrWillBeRawPtr<ArchiveResource> resource = parseNextPart(*resourceHeader, header->endOfPartBoundary(), header->endOfDocumentBoundary(), endOfArchive);
+        RawPtr<ArchiveResource> resource = parseNextPart(*resourceHeader, header->endOfPartBoundary(), header->endOfDocumentBoundary(), endOfArchive);
         if (!resource) {
             DLOG(ERROR) << "Failed to parse MHTML part.";
             return false;
@@ -264,7 +264,7 @@
 }
 
 
-PassRefPtrWillBeRawPtr<ArchiveResource> MHTMLParser::parseNextPart(const MIMEHeader& mimeHeader, const String& endOfPartBoundary, const String& endOfDocumentBoundary, bool& endOfArchiveReached)
+RawPtr<ArchiveResource> MHTMLParser::parseNextPart(const MIMEHeader& mimeHeader, const String& endOfPartBoundary, const String& endOfDocumentBoundary, bool& endOfArchiveReached)
 {
     ASSERT(endOfPartBoundary.isEmpty() == endOfDocumentBoundary.isEmpty());
 
diff --git a/third_party/WebKit/Source/platform/mhtml/MHTMLParser.h b/third_party/WebKit/Source/platform/mhtml/MHTMLParser.h
index 4e7fdb6..9134e9e 100644
--- a/third_party/WebKit/Source/platform/mhtml/MHTMLParser.h
+++ b/third_party/WebKit/Source/platform/mhtml/MHTMLParser.h
@@ -52,7 +52,7 @@
 public:
     explicit MHTMLParser(SharedBuffer*);
 
-    WillBeHeapVector<RefPtrWillBeMember<ArchiveResource>> parseArchive();
+    HeapVector<Member<ArchiveResource>> parseArchive();
 
     // Translates |contentIDFromMimeHeader| (of the form "<foo@bar.com>")
     // into a cid-scheme URI (of the form "cid:foo@bar.com").
@@ -63,8 +63,8 @@
     static KURL convertContentIDToURI(const String& contentID);
 
 private:
-    bool parseArchiveWithHeader(MIMEHeader*, WillBeHeapVector<RefPtrWillBeMember<ArchiveResource>>&);
-    PassRefPtrWillBeRawPtr<ArchiveResource> parseNextPart(const MIMEHeader&, const String& endOfPartBoundary, const String& endOfDocumentBoundary, bool& endOfArchiveReached);
+    bool parseArchiveWithHeader(MIMEHeader*, HeapVector<Member<ArchiveResource>>&);
+    RawPtr<ArchiveResource> parseNextPart(const MIMEHeader&, const String& endOfPartBoundary, const String& endOfDocumentBoundary, bool& endOfArchiveReached);
 
     SharedBufferChunkReader m_lineReader;
 };
diff --git a/third_party/WebKit/Source/platform/network/ResourceRequest.h b/third_party/WebKit/Source/platform/network/ResourceRequest.h
index 9793022..f97b9ff 100644
--- a/third_party/WebKit/Source/platform/network/ResourceRequest.h
+++ b/third_party/WebKit/Source/platform/network/ResourceRequest.h
@@ -42,12 +42,14 @@
 
 namespace blink {
 
+// Should be same with WebURLRequest::CachePolicy.
+// TODO(crbug.com/599364): Merge this with WebURLRequest::CachePolicy
 enum ResourceRequestCachePolicy {
     UseProtocolCachePolicy, // normal load
-    ReloadIgnoringCacheData, // reload
+    ValidatingCacheData, // reload
+    BypassingCache, // end-to-end reload
     ReturnCacheDataElseLoad, // back/forward or encoding change - allow stale data
     ReturnCacheDataDontLoad, // results of a post - allow stale data and only use cache
-    ReloadBypassingCache, // end-to-end reload
 };
 
 enum ResourceRequestBlockedReason {
diff --git a/third_party/WebKit/Source/platform/scroll/ProgrammaticScrollAnimator.cpp b/third_party/WebKit/Source/platform/scroll/ProgrammaticScrollAnimator.cpp
index b98713e..61ecc6f 100644
--- a/third_party/WebKit/Source/platform/scroll/ProgrammaticScrollAnimator.cpp
+++ b/third_party/WebKit/Source/platform/scroll/ProgrammaticScrollAnimator.cpp
@@ -15,9 +15,9 @@
 
 namespace blink {
 
-PassOwnPtrWillBeRawPtr<ProgrammaticScrollAnimator> ProgrammaticScrollAnimator::create(ScrollableArea* scrollableArea)
+RawPtr<ProgrammaticScrollAnimator> ProgrammaticScrollAnimator::create(ScrollableArea* scrollableArea)
 {
-    return adoptPtrWillBeNoop(new ProgrammaticScrollAnimator(scrollableArea));
+    return new ProgrammaticScrollAnimator(scrollableArea);
 }
 
 ProgrammaticScrollAnimator::ProgrammaticScrollAnimator(ScrollableArea* scrollableArea)
diff --git a/third_party/WebKit/Source/platform/scroll/ProgrammaticScrollAnimator.h b/third_party/WebKit/Source/platform/scroll/ProgrammaticScrollAnimator.h
index fd09f72..f7d6604 100644
--- a/third_party/WebKit/Source/platform/scroll/ProgrammaticScrollAnimator.h
+++ b/third_party/WebKit/Source/platform/scroll/ProgrammaticScrollAnimator.h
@@ -23,9 +23,8 @@
 // CSSOM View scroll APIs.
 class ProgrammaticScrollAnimator : public ScrollAnimatorCompositorCoordinator {
     WTF_MAKE_NONCOPYABLE(ProgrammaticScrollAnimator);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(ProgrammaticScrollAnimator);
 public:
-    static PassOwnPtrWillBeRawPtr<ProgrammaticScrollAnimator> create(ScrollableArea*);
+    static RawPtr<ProgrammaticScrollAnimator> create(ScrollableArea*);
 
     virtual ~ProgrammaticScrollAnimator();
 
@@ -50,7 +49,7 @@
 
     void notifyPositionChanged(const DoublePoint&);
 
-    RawPtrWillBeMember<ScrollableArea> m_scrollableArea;
+    Member<ScrollableArea> m_scrollableArea;
     OwnPtr<CompositorScrollOffsetAnimationCurve> m_animationCurve;
     FloatPoint m_targetOffset;
     double m_startTime;
diff --git a/third_party/WebKit/Source/platform/scroll/ScrollAnimator.cpp b/third_party/WebKit/Source/platform/scroll/ScrollAnimator.cpp
index af234083..1bbd920a 100644
--- a/third_party/WebKit/Source/platform/scroll/ScrollAnimator.cpp
+++ b/third_party/WebKit/Source/platform/scroll/ScrollAnimator.cpp
@@ -53,11 +53,11 @@
 
 } // namespace
 
-PassOwnPtrWillBeRawPtr<ScrollAnimatorBase> ScrollAnimatorBase::create(ScrollableArea* scrollableArea)
+RawPtr<ScrollAnimatorBase> ScrollAnimatorBase::create(ScrollableArea* scrollableArea)
 {
     if (scrollableArea && scrollableArea->scrollAnimatorEnabled())
-        return adoptPtrWillBeNoop(new ScrollAnimator(scrollableArea));
-    return adoptPtrWillBeNoop(new ScrollAnimatorBase(scrollableArea));
+        return new ScrollAnimator(scrollableArea);
+    return new ScrollAnimatorBase(scrollableArea);
 }
 
 ScrollAnimator::ScrollAnimator(ScrollableArea* scrollableArea, WTF::TimeFunction timeFunction)
diff --git a/third_party/WebKit/Source/platform/scroll/ScrollAnimatorBase.h b/third_party/WebKit/Source/platform/scroll/ScrollAnimatorBase.h
index 4acba921..a6f2c02 100644
--- a/third_party/WebKit/Source/platform/scroll/ScrollAnimatorBase.h
+++ b/third_party/WebKit/Source/platform/scroll/ScrollAnimatorBase.h
@@ -48,7 +48,7 @@
 
 class PLATFORM_EXPORT ScrollAnimatorBase : public ScrollAnimatorCompositorCoordinator {
 public:
-    static PassOwnPtrWillBeRawPtr<ScrollAnimatorBase> create(ScrollableArea*);
+    static RawPtr<ScrollAnimatorBase> create(ScrollableArea*);
 
     virtual ~ScrollAnimatorBase();
 
@@ -118,7 +118,7 @@
 
     virtual void notifyPositionChanged();
 
-    RawPtrWillBeMember<ScrollableArea> m_scrollableArea;
+    Member<ScrollableArea> m_scrollableArea;
 
     FloatPoint m_currentPos;
 };
diff --git a/third_party/WebKit/Source/platform/scroll/ScrollAnimatorCompositorCoordinator.h b/third_party/WebKit/Source/platform/scroll/ScrollAnimatorCompositorCoordinator.h
index 333848e..06fc1196 100644
--- a/third_party/WebKit/Source/platform/scroll/ScrollAnimatorCompositorCoordinator.h
+++ b/third_party/WebKit/Source/platform/scroll/ScrollAnimatorCompositorCoordinator.h
@@ -23,10 +23,9 @@
 class CompositorAnimationPlayer;
 class CompositorAnimationTimeline;
 
-class PLATFORM_EXPORT ScrollAnimatorCompositorCoordinator : public NoBaseWillBeGarbageCollectedFinalized<ScrollAnimatorCompositorCoordinator>, private CompositorAnimationPlayerClient, CompositorAnimationDelegate {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(ScrollAnimatorCompositorCoordinator);
+class PLATFORM_EXPORT ScrollAnimatorCompositorCoordinator : public GarbageCollectedFinalized<ScrollAnimatorCompositorCoordinator>, private CompositorAnimationPlayerClient, CompositorAnimationDelegate {
     WTF_MAKE_NONCOPYABLE(ScrollAnimatorCompositorCoordinator);
-    WILL_BE_USING_PRE_FINALIZER(ScrollAnimatorCompositorCoordinator, dispose);
+    USING_PRE_FINALIZER(ScrollAnimatorCompositorCoordinator, dispose);
 public:
     virtual ~ScrollAnimatorCompositorCoordinator();
 
diff --git a/third_party/WebKit/Source/platform/scroll/ScrollAnimatorTest.cpp b/third_party/WebKit/Source/platform/scroll/ScrollAnimatorTest.cpp
index bd79b7b..3bc1b30 100644
--- a/third_party/WebKit/Source/platform/scroll/ScrollAnimatorTest.cpp
+++ b/third_party/WebKit/Source/platform/scroll/ScrollAnimatorTest.cpp
@@ -50,12 +50,12 @@
 
 namespace {
 
-class MockScrollableArea : public NoBaseWillBeGarbageCollectedFinalized<MockScrollableArea>, public ScrollableArea {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(MockScrollableArea);
+class MockScrollableArea : public GarbageCollectedFinalized<MockScrollableArea>, public ScrollableArea {
+    USING_GARBAGE_COLLECTED_MIXIN(MockScrollableArea);
 public:
-    static PassOwnPtrWillBeRawPtr<MockScrollableArea> create(bool scrollAnimatorEnabled)
+    static RawPtr<MockScrollableArea> create(bool scrollAnimatorEnabled)
     {
-        return adoptPtrWillBeNoop(new MockScrollableArea(scrollAnimatorEnabled));
+        return new MockScrollableArea(scrollAnimatorEnabled);
     }
 
     MOCK_CONST_METHOD0(visualRectForScrollbarParts, LayoutRect());
@@ -134,8 +134,8 @@
 
 TEST(ScrollAnimatorTest, MainThreadStates)
 {
-    OwnPtrWillBeRawPtr<MockScrollableArea> scrollableArea = MockScrollableArea::create(true);
-    OwnPtrWillBeRawPtr<ScrollAnimator> scrollAnimator = adoptPtrWillBeNoop(new ScrollAnimator(scrollableArea.get(), getMockedTime));
+    RawPtr<MockScrollableArea> scrollableArea = MockScrollableArea::create(true);
+    RawPtr<ScrollAnimator> scrollAnimator = new ScrollAnimator(scrollableArea.get(), getMockedTime);
 
     EXPECT_CALL(*scrollableArea, minimumScrollPosition()).Times(AtLeast(1))
         .WillRepeatedly(Return(IntPoint()));
@@ -181,8 +181,8 @@
 
 TEST(ScrollAnimatorTest, MainThreadEnabled)
 {
-    OwnPtrWillBeRawPtr<MockScrollableArea> scrollableArea = MockScrollableArea::create(true);
-    OwnPtrWillBeRawPtr<ScrollAnimator> scrollAnimator = adoptPtrWillBeNoop(new ScrollAnimator(scrollableArea.get(), getMockedTime));
+    RawPtr<MockScrollableArea> scrollableArea = MockScrollableArea::create(true);
+    RawPtr<ScrollAnimator> scrollAnimator = new ScrollAnimator(scrollableArea.get(), getMockedTime);
 
     EXPECT_CALL(*scrollableArea, minimumScrollPosition()).Times(AtLeast(1)).WillRepeatedly(Return(IntPoint()));
     EXPECT_CALL(*scrollableArea, maximumScrollPosition()).Times(AtLeast(1)).WillRepeatedly(Return(IntPoint(1000, 1000)));
@@ -258,8 +258,8 @@
 // non-smooth scroll offset animation.
 TEST(ScrollAnimatorTest, AnimatedScrollAborted)
 {
-    OwnPtrWillBeRawPtr<MockScrollableArea> scrollableArea = MockScrollableArea::create(true);
-    OwnPtrWillBeRawPtr<ScrollAnimator> scrollAnimator = adoptPtrWillBeNoop(new ScrollAnimator(scrollableArea.get(), getMockedTime));
+    RawPtr<MockScrollableArea> scrollableArea = MockScrollableArea::create(true);
+    RawPtr<ScrollAnimator> scrollAnimator = new ScrollAnimator(scrollableArea.get(), getMockedTime);
 
     EXPECT_CALL(*scrollableArea, minimumScrollPosition()).Times(AtLeast(1))
         .WillRepeatedly(Return(IntPoint()));
@@ -305,8 +305,8 @@
 // completed on the main thread.
 TEST(ScrollAnimatorTest, AnimatedScrollTakeover)
 {
-    OwnPtrWillBeRawPtr<MockScrollableArea> scrollableArea = MockScrollableArea::create(true);
-    OwnPtrWillBeRawPtr<TestScrollAnimator> scrollAnimator = adoptPtrWillBeNoop(new TestScrollAnimator(scrollableArea.get(), getMockedTime));
+    RawPtr<MockScrollableArea> scrollableArea = MockScrollableArea::create(true);
+    RawPtr<TestScrollAnimator> scrollAnimator = new TestScrollAnimator(scrollableArea.get(), getMockedTime);
 
     EXPECT_CALL(*scrollableArea, minimumScrollPosition()).Times(AtLeast(1))
         .WillRepeatedly(Return(IntPoint()));
@@ -354,8 +354,8 @@
 
 TEST(ScrollAnimatorTest, Disabled)
 {
-    OwnPtrWillBeRawPtr<MockScrollableArea> scrollableArea = MockScrollableArea::create(false);
-    OwnPtrWillBeRawPtr<ScrollAnimator> scrollAnimator = adoptPtrWillBeNoop(new ScrollAnimator(scrollableArea.get(), getMockedTime));
+    RawPtr<MockScrollableArea> scrollableArea = MockScrollableArea::create(false);
+    RawPtr<ScrollAnimator> scrollAnimator = new ScrollAnimator(scrollableArea.get(), getMockedTime);
 
     EXPECT_CALL(*scrollableArea, minimumScrollPosition()).Times(AtLeast(1)).WillRepeatedly(Return(IntPoint()));
     EXPECT_CALL(*scrollableArea, maximumScrollPosition()).Times(AtLeast(1)).WillRepeatedly(Return(IntPoint(1000, 1000)));
@@ -387,10 +387,8 @@
 // See crbug.com/598548.
 TEST(ScrollAnimatorTest, CancellingAnimationResetsState)
 {
-    OwnPtrWillBeRawPtr<MockScrollableArea> scrollableArea =
-        MockScrollableArea::create(true);
-    OwnPtrWillBeRawPtr<ScrollAnimator> scrollAnimator = adoptPtrWillBeNoop(
-        new ScrollAnimator(scrollableArea.get(), getMockedTime));
+    RawPtr<MockScrollableArea> scrollableArea = MockScrollableArea::create(true);
+    RawPtr<ScrollAnimator> scrollAnimator = new ScrollAnimator(scrollableArea.get(), getMockedTime);
 
     EXPECT_CALL(*scrollableArea, minimumScrollPosition()).Times(AtLeast(1))
         .WillRepeatedly(Return(IntPoint()));
diff --git a/third_party/WebKit/Source/platform/scroll/ScrollableArea.cpp b/third_party/WebKit/Source/platform/scroll/ScrollableArea.cpp
index 904518d..839bd06c 100644
--- a/third_party/WebKit/Source/platform/scroll/ScrollableArea.cpp
+++ b/third_party/WebKit/Source/platform/scroll/ScrollableArea.cpp
@@ -54,7 +54,7 @@
 #if ENABLE(ASSERT) && ENABLE(OILPAN)
     VerifyEagerFinalization verifyEager;
 #endif
-    OwnPtrWillBeMember<void*> pointer[2];
+    Member<void*> pointer[2];
     unsigned bitfields : 16;
     IntPoint origin;
 };
diff --git a/third_party/WebKit/Source/platform/scroll/ScrollableArea.h b/third_party/WebKit/Source/platform/scroll/ScrollableArea.h
index 06c64bf..cea0e0e 100644
--- a/third_party/WebKit/Source/platform/scroll/ScrollableArea.h
+++ b/third_party/WebKit/Source/platform/scroll/ScrollableArea.h
@@ -63,7 +63,7 @@
 };
 
 #if ENABLE(OILPAN)
-// Oilpan: Using the transition type WillBeGarbageCollectedMixin is
+// Oilpan: Using the transition type GarbageCollectedMixin is
 // problematic non-Oilpan as the type expands to DummyBase, exporting it
 // also from 'platform' as a result. Bringing about duplicate DummyBases
 // as core also exports same; with component build linking fails as a
@@ -326,8 +326,8 @@
     virtual int documentStep(ScrollbarOrientation) const;
     virtual float pixelStep(ScrollbarOrientation) const;
 
-    mutable OwnPtrWillBeMember<ScrollAnimatorBase> m_scrollAnimator;
-    mutable OwnPtrWillBeMember<ProgrammaticScrollAnimator> m_programmaticScrollAnimator;
+    mutable Member<ScrollAnimatorBase> m_scrollAnimator;
+    mutable Member<ProgrammaticScrollAnimator> m_programmaticScrollAnimator;
 
     unsigned m_scrollbarOverlayStyle : 2; // ScrollbarOverlayStyle
 
diff --git a/third_party/WebKit/Source/platform/scroll/ScrollableAreaTest.cpp b/third_party/WebKit/Source/platform/scroll/ScrollableAreaTest.cpp
index 36a0ee41..52d9f73 100644
--- a/third_party/WebKit/Source/platform/scroll/ScrollableAreaTest.cpp
+++ b/third_party/WebKit/Source/platform/scroll/ScrollableAreaTest.cpp
@@ -20,12 +20,12 @@
 using testing::_;
 using testing::Return;
 
-class MockScrollableArea : public NoBaseWillBeGarbageCollectedFinalized<MockScrollableArea>, public ScrollableArea {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(MockScrollableArea);
+class MockScrollableArea : public GarbageCollectedFinalized<MockScrollableArea>, public ScrollableArea {
+    USING_GARBAGE_COLLECTED_MIXIN(MockScrollableArea);
 public:
-    static PassOwnPtrWillBeRawPtr<MockScrollableArea> create(const IntPoint& maximumScrollPosition)
+    static RawPtr<MockScrollableArea> create(const IntPoint& maximumScrollPosition)
     {
-        return adoptPtrWillBeNoop(new MockScrollableArea(maximumScrollPosition));
+        return new MockScrollableArea(maximumScrollPosition);
     }
 
     MOCK_CONST_METHOD0(visualRectForScrollbarParts, LayoutRect());
@@ -96,7 +96,7 @@
 
 TEST_F(ScrollableAreaTest, ScrollAnimatorCurrentPositionShouldBeSync)
 {
-    OwnPtrWillBeRawPtr<MockScrollableArea> scrollableArea = MockScrollableArea::create(IntPoint(0, 100));
+    RawPtr<MockScrollableArea> scrollableArea = MockScrollableArea::create(IntPoint(0, 100));
     scrollableArea->setScrollPosition(IntPoint(0, 10000), CompositorScroll);
     EXPECT_EQ(100.0, scrollableArea->scrollAnimator().currentPosition().y());
 }
@@ -114,8 +114,8 @@
 TEST_F(ScrollableAreaTest, ScrollbarTrackAndThumbRepaint)
 {
     ScrollbarThemeWithMockInvalidation theme;
-    OwnPtrWillBeRawPtr<MockScrollableArea> scrollableArea = MockScrollableArea::create(IntPoint(0, 100));
-    RefPtrWillBeRawPtr<Scrollbar> scrollbar = Scrollbar::createForTesting(scrollableArea.get(), HorizontalScrollbar, RegularScrollbar, &theme);
+    RawPtr<MockScrollableArea> scrollableArea = MockScrollableArea::create(IntPoint(0, 100));
+    RawPtr<Scrollbar> scrollbar = Scrollbar::createForTesting(scrollableArea.get(), HorizontalScrollbar, RegularScrollbar, &theme);
 
     EXPECT_CALL(theme, shouldRepaintAllPartsOnInvalidation()).WillRepeatedly(Return(true));
     EXPECT_TRUE(scrollbar->trackNeedsRepaint());
@@ -164,7 +164,7 @@
 TEST_F(ScrollableAreaTest, ScrollbarGraphicsLayerInvalidation)
 {
     ScrollbarTheme::setMockScrollbarsEnabled(true);
-    OwnPtrWillBeRawPtr<MockScrollableArea> scrollableArea = MockScrollableArea::create(IntPoint(0, 100));
+    RawPtr<MockScrollableArea> scrollableArea = MockScrollableArea::create(IntPoint(0, 100));
     MockGraphicsLayerClient graphicsLayerClient;
     MockGraphicsLayer graphicsLayer(&graphicsLayerClient);
     graphicsLayer.setDrawsContent(true);
@@ -172,7 +172,7 @@
 
     EXPECT_CALL(*scrollableArea, layerForHorizontalScrollbar()).WillRepeatedly(Return(&graphicsLayer));
 
-    RefPtrWillBeRawPtr<Scrollbar> scrollbar = Scrollbar::create(scrollableArea.get(), HorizontalScrollbar, RegularScrollbar, nullptr);
+    RawPtr<Scrollbar> scrollbar = Scrollbar::create(scrollableArea.get(), HorizontalScrollbar, RegularScrollbar, nullptr);
     graphicsLayer.resetTrackedPaintInvalidations();
     scrollbar->setNeedsPaintInvalidation(NoPart);
     EXPECT_TRUE(graphicsLayer.hasTrackedPaintInvalidations());
@@ -184,9 +184,9 @@
 TEST_F(ScrollableAreaTest, InvalidatesNonCompositedScrollbarsWhenThumbMoves)
 {
     ScrollbarThemeWithMockInvalidation theme;
-    OwnPtrWillBeRawPtr<MockScrollableArea> scrollableArea = MockScrollableArea::create(IntPoint(100, 100));
-    RefPtrWillBeRawPtr<Scrollbar> horizontalScrollbar = Scrollbar::createForTesting(scrollableArea.get(), HorizontalScrollbar, RegularScrollbar, &theme);
-    RefPtrWillBeRawPtr<Scrollbar> verticalScrollbar = Scrollbar::createForTesting(scrollableArea.get(), VerticalScrollbar, RegularScrollbar, &theme);
+    RawPtr<MockScrollableArea> scrollableArea = MockScrollableArea::create(IntPoint(100, 100));
+    RawPtr<Scrollbar> horizontalScrollbar = Scrollbar::createForTesting(scrollableArea.get(), HorizontalScrollbar, RegularScrollbar, &theme);
+    RawPtr<Scrollbar> verticalScrollbar = Scrollbar::createForTesting(scrollableArea.get(), VerticalScrollbar, RegularScrollbar, &theme);
     EXPECT_CALL(*scrollableArea, horizontalScrollbar()).WillRepeatedly(Return(horizontalScrollbar.get()));
     EXPECT_CALL(*scrollableArea, verticalScrollbar()).WillRepeatedly(Return(verticalScrollbar.get()));
 
@@ -216,11 +216,11 @@
 TEST_F(ScrollableAreaTest, InvalidatesCompositedScrollbarsIfPartsNeedRepaint)
 {
     ScrollbarThemeWithMockInvalidation theme;
-    OwnPtrWillBeRawPtr<MockScrollableArea> scrollableArea = MockScrollableArea::create(IntPoint(100, 100));
-    RefPtrWillBeRawPtr<Scrollbar> horizontalScrollbar = Scrollbar::createForTesting(scrollableArea.get(), HorizontalScrollbar, RegularScrollbar, &theme);
+    RawPtr<MockScrollableArea> scrollableArea = MockScrollableArea::create(IntPoint(100, 100));
+    RawPtr<Scrollbar> horizontalScrollbar = Scrollbar::createForTesting(scrollableArea.get(), HorizontalScrollbar, RegularScrollbar, &theme);
     horizontalScrollbar->clearTrackNeedsRepaint();
     horizontalScrollbar->clearThumbNeedsRepaint();
-    RefPtrWillBeRawPtr<Scrollbar> verticalScrollbar = Scrollbar::createForTesting(scrollableArea.get(), VerticalScrollbar, RegularScrollbar, &theme);
+    RawPtr<Scrollbar> verticalScrollbar = Scrollbar::createForTesting(scrollableArea.get(), VerticalScrollbar, RegularScrollbar, &theme);
     verticalScrollbar->clearTrackNeedsRepaint();
     verticalScrollbar->clearThumbNeedsRepaint();
     EXPECT_CALL(*scrollableArea, horizontalScrollbar()).WillRepeatedly(Return(horizontalScrollbar.get()));
@@ -281,7 +281,7 @@
 
 TEST_F(ScrollableAreaTest, RecalculatesScrollbarOverlayIfBackgroundChanges)
 {
-    OwnPtrWillBeRawPtr<MockScrollableArea> scrollableArea = MockScrollableArea::create(IntPoint(0, 100));
+    RawPtr<MockScrollableArea> scrollableArea = MockScrollableArea::create(IntPoint(0, 100));
 
     EXPECT_EQ(ScrollbarOverlayStyleDefault, scrollableArea->getScrollbarOverlayStyle());
     scrollableArea->recalculateScrollbarOverlayStyle(Color(34, 85, 51));
diff --git a/third_party/WebKit/Source/platform/scroll/Scrollbar.cpp b/third_party/WebKit/Source/platform/scroll/Scrollbar.cpp
index 420833e..25516fd 100644
--- a/third_party/WebKit/Source/platform/scroll/Scrollbar.cpp
+++ b/third_party/WebKit/Source/platform/scroll/Scrollbar.cpp
@@ -42,14 +42,14 @@
 
 namespace blink {
 
-PassRefPtrWillBeRawPtr<Scrollbar> Scrollbar::create(ScrollableArea* scrollableArea, ScrollbarOrientation orientation, ScrollbarControlSize size, HostWindow* hostWindow)
+RawPtr<Scrollbar> Scrollbar::create(ScrollableArea* scrollableArea, ScrollbarOrientation orientation, ScrollbarControlSize size, HostWindow* hostWindow)
 {
-    return adoptRefWillBeNoop(new Scrollbar(scrollableArea, orientation, size, hostWindow));
+    return new Scrollbar(scrollableArea, orientation, size, hostWindow);
 }
 
-PassRefPtrWillBeRawPtr<Scrollbar> Scrollbar::createForTesting(ScrollableArea* scrollableArea, ScrollbarOrientation orientation, ScrollbarControlSize size, ScrollbarTheme* theme)
+RawPtr<Scrollbar> Scrollbar::createForTesting(ScrollableArea* scrollableArea, ScrollbarOrientation orientation, ScrollbarControlSize size, ScrollbarTheme* theme)
 {
-    return adoptRefWillBeNoop(new Scrollbar(scrollableArea, orientation, size, nullptr, theme));
+    return new Scrollbar(scrollableArea, orientation, size, nullptr, theme);
 }
 
 Scrollbar::Scrollbar(ScrollableArea* scrollableArea, ScrollbarOrientation orientation, ScrollbarControlSize controlSize, HostWindow* hostWindow, ScrollbarTheme* theme)
diff --git a/third_party/WebKit/Source/platform/scroll/Scrollbar.h b/third_party/WebKit/Source/platform/scroll/Scrollbar.h
index e6b117b7..2556f104 100644
--- a/third_party/WebKit/Source/platform/scroll/Scrollbar.h
+++ b/third_party/WebKit/Source/platform/scroll/Scrollbar.h
@@ -48,10 +48,10 @@
 
 class PLATFORM_EXPORT Scrollbar : public Widget, public ScrollbarThemeClient {
 public:
-    static PassRefPtrWillBeRawPtr<Scrollbar> create(ScrollableArea*, ScrollbarOrientation, ScrollbarControlSize, HostWindow*);
+    static RawPtr<Scrollbar> create(ScrollableArea*, ScrollbarOrientation, ScrollbarControlSize, HostWindow*);
 
     // Theme object ownership remains with the caller and it must outlive the scrollbar.
-    static PassRefPtrWillBeRawPtr<Scrollbar> createForTesting(ScrollableArea*, ScrollbarOrientation, ScrollbarControlSize, ScrollbarTheme*);
+    static RawPtr<Scrollbar> createForTesting(ScrollableArea*, ScrollbarOrientation, ScrollbarControlSize, ScrollbarTheme*);
 
     ~Scrollbar() override;
 
@@ -192,11 +192,11 @@
     ScrollDirectionPhysical pressedPartScrollDirectionPhysical();
     ScrollGranularity pressedPartScrollGranularity();
 
-    RawPtrWillBeMember<ScrollableArea> m_scrollableArea;
+    Member<ScrollableArea> m_scrollableArea;
     ScrollbarOrientation m_orientation;
     ScrollbarControlSize m_controlSize;
     ScrollbarTheme& m_theme;
-    RawPtrWillBeMember<HostWindow> m_hostWindow;
+    Member<HostWindow> m_hostWindow;
 
     int m_visibleSize;
     int m_totalSize;
diff --git a/third_party/WebKit/Source/platform/testing/CompositorTest.cpp b/third_party/WebKit/Source/platform/testing/CompositorTest.cpp
new file mode 100644
index 0000000..289c69d
--- /dev/null
+++ b/third_party/WebKit/Source/platform/testing/CompositorTest.cpp
@@ -0,0 +1,19 @@
+// Copyright 2016 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/testing/CompositorTest.h"
+
+namespace blink {
+
+CompositorTest::CompositorTest()
+    : m_runner(new base::TestMockTimeTaskRunner)
+    , m_runnerHandle(m_runner)
+{
+}
+
+CompositorTest::~CompositorTest()
+{
+}
+
+} // namespace blink
diff --git a/third_party/WebKit/Source/platform/testing/CompositorTest.h b/third_party/WebKit/Source/platform/testing/CompositorTest.h
new file mode 100644
index 0000000..d418278
--- /dev/null
+++ b/third_party/WebKit/Source/platform/testing/CompositorTest.h
@@ -0,0 +1,32 @@
+// Copyright 2016 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 CompositorTest_h
+#define CompositorTest_h
+
+#include "base/memory/ref_counted.h"
+#include "base/test/test_mock_time_task_runner.h"
+#include "base/thread_task_runner_handle.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "wtf/Noncopyable.h"
+
+namespace blink {
+
+class CompositorTest : public testing::Test {
+    WTF_MAKE_NONCOPYABLE(CompositorTest);
+
+public:
+    CompositorTest();
+    virtual ~CompositorTest();
+
+protected:
+    // Mock task runner is initialized here because tests create
+    // WebLayerTreeViewImplForTesting which needs the current task runner handle.
+    scoped_refptr<base::TestMockTimeTaskRunner> m_runner;
+    base::ThreadTaskRunnerHandle m_runnerHandle;
+};
+
+} // namespace blink
+
+#endif // CompositorTest_h
diff --git a/third_party/WebKit/Source/platform/testing/FontTestHelpers.cpp b/third_party/WebKit/Source/platform/testing/FontTestHelpers.cpp
index 7988632..93a9186 100644
--- a/third_party/WebKit/Source/platform/testing/FontTestHelpers.cpp
+++ b/third_party/WebKit/Source/platform/testing/FontTestHelpers.cpp
@@ -20,12 +20,12 @@
 
 class TestFontSelector : public FontSelector {
 public:
-    static PassRefPtrWillBeRawPtr<TestFontSelector> create(const String& path)
+    static RawPtr<TestFontSelector> create(const String& path)
     {
         RefPtr<SharedBuffer> fontBuffer = testing::readFromFile(path);
         String otsParseMessage;
-        return adoptRefWillBeNoop(new TestFontSelector(FontCustomPlatformData::create(
-            fontBuffer.get(), otsParseMessage)));
+        return new TestFontSelector(FontCustomPlatformData::create(
+            fontBuffer.get(), otsParseMessage));
     }
 
     ~TestFontSelector() override { }
diff --git a/third_party/WebKit/Source/platform/text/LocaleWinTest.cpp b/third_party/WebKit/Source/platform/text/LocaleWinTest.cpp
index 7309b17..a4ebc278 100644
--- a/third_party/WebKit/Source/platform/text/LocaleWinTest.cpp
+++ b/third_party/WebKit/Source/platform/text/LocaleWinTest.cpp
@@ -215,7 +215,7 @@
     // Month format for EnglishUS:
     //  "MMMM, yyyy" on Windows 7 or older.
     //  "MMMM yyyy" on Window 8 or later.
-    EXPECT_STREQ("MMMM yyyy", monthFormat(EnglishUS).replaceWithLiteral(',', "").utf8().data());
+    EXPECT_STREQ("MMMM yyyy", monthFormat(EnglishUS).replace(',', "").utf8().data());
     EXPECT_STREQ("MMMM yyyy", monthFormat(FrenchFR).utf8().data());
     EXPECT_STREQ("yyyy\xE5\xB9\xB4M\xE6\x9C\x88", monthFormat(JapaneseJP).utf8().data());
 }
diff --git a/third_party/WebKit/Source/platform/text/TextCheckerClient.h b/third_party/WebKit/Source/platform/text/TextCheckerClient.h
index 80ee0b71..8bcec6655 100644
--- a/third_party/WebKit/Source/platform/text/TextCheckerClient.h
+++ b/third_party/WebKit/Source/platform/text/TextCheckerClient.h
@@ -43,7 +43,7 @@
 
     virtual void checkSpellingOfString(const String&, int* misspellingLocation, int* misspellingLength) = 0;
     virtual void checkGrammarOfString(const String&, Vector<GrammarDetail>&, int* badGrammarLocation, int* badGrammarLength) = 0;
-    virtual void requestCheckingOfString(PassRefPtrWillBeRawPtr<TextCheckingRequest>) = 0;
+    virtual void requestCheckingOfString(RawPtr<TextCheckingRequest>) = 0;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/platform/text/TextChecking.h b/third_party/WebKit/Source/platform/text/TextChecking.h
index 096baf1..28fd125 100644
--- a/third_party/WebKit/Source/platform/text/TextChecking.h
+++ b/third_party/WebKit/Source/platform/text/TextChecking.h
@@ -108,7 +108,7 @@
     Vector<unsigned> m_offsets;
 };
 
-class TextCheckingRequest : public RefCountedWillBeGarbageCollectedFinalized<TextCheckingRequest> {
+class TextCheckingRequest : public GarbageCollectedFinalized<TextCheckingRequest> {
 public:
     virtual ~TextCheckingRequest() { }
     DEFINE_INLINE_VIRTUAL_TRACE() { }
diff --git a/third_party/WebKit/Source/platform/text/UnicodeUtilities.cpp b/third_party/WebKit/Source/platform/text/UnicodeUtilities.cpp
index 9a14846..55d47b10 100644
--- a/third_party/WebKit/Source/platform/text/UnicodeUtilities.cpp
+++ b/third_party/WebKit/Source/platform/text/UnicodeUtilities.cpp
@@ -77,7 +77,7 @@
     s.replace(rightSingleQuotationMarkCharacter, '\'');
     // Replace soft hyphen with an ignorable character so that their presence or absence will
     // not affect string comparison.
-    s.replace(softHyphenCharacter, 0);
+    s.replace(softHyphenCharacter, static_cast<UChar>('\0'));
 }
 
 static bool isNonLatin1Separator(UChar32 character)
diff --git a/third_party/WebKit/Source/platform/transforms/RotateTransformOperation.cpp b/third_party/WebKit/Source/platform/transforms/RotateTransformOperation.cpp
index f263310..653f60a 100644
--- a/third_party/WebKit/Source/platform/transforms/RotateTransformOperation.cpp
+++ b/third_party/WebKit/Source/platform/transforms/RotateTransformOperation.cpp
@@ -21,62 +21,19 @@
 
 #include "platform/transforms/RotateTransformOperation.h"
 
-#include "platform/animation/AnimationUtilities.h"
-#include "platform/geometry/FloatPoint3D.h"
-#include "wtf/MathExtras.h"
-#include <algorithm>
-
 namespace blink {
 
-static const double angleEpsilon = 1e-4;
-
-FloatPoint3D RotateTransformOperation::axis() const
+bool RotateTransformOperation::operator==(const TransformOperation& other) const
 {
-    return FloatPoint3D(x(), y(), z());
+    if (!isSameType(other))
+        return false;
+    const Rotation& otherRotation = toRotateTransformOperation(other).m_rotation;
+    return m_rotation.axis == otherRotation.axis && m_rotation.angle == otherRotation.angle;
 }
 
-bool RotateTransformOperation::shareSameAxis(const RotateTransformOperation* from, const RotateTransformOperation* to, FloatPoint3D* axis, double* fromAngle, double* toAngle)
+bool RotateTransformOperation::getCommonAxis(const RotateTransformOperation* a, const RotateTransformOperation* b, FloatPoint3D& resultAxis, double& resultAngleA, double& resultAngleB)
 {
-    *axis = FloatPoint3D(0, 0, 1);
-    *fromAngle = 0;
-    *toAngle = 0;
-
-    if (!from && !to)
-        return true;
-
-    bool fromZero = !from || from->axis().isZero() || fabs(from->angle()) < angleEpsilon;
-    bool toZero = !to || to->axis().isZero() || fabs(to->angle()) < angleEpsilon;
-
-    if (fromZero && toZero)
-        return true;
-
-    if (fromZero) {
-        *axis = to->axis();
-        *toAngle = to->angle();
-        return true;
-    }
-
-    if (toZero) {
-        *axis = from->axis();
-        *fromAngle = from->angle();
-        return true;
-    }
-
-    FloatPoint3D fromAxis = from->axis();
-    FloatPoint3D toAxis = to->axis();
-
-    double fromSquared = fromAxis.lengthSquared();
-    double toSquared   = toAxis.lengthSquared();
-
-    double dot = fromAxis.dot(toAxis);
-    double error = std::abs(1 - (dot * dot) / (fromSquared * toSquared));
-
-    if (error > angleEpsilon)
-        return false;
-    *axis = from->axis();
-    *fromAngle = from->angle();
-    *toAngle = to->angle();
-    return true;
+    return Rotation::getCommonAxis(a ? a->m_rotation : Rotation(), b ? b->m_rotation : Rotation(), resultAxis, resultAngleA, resultAngleB);
 }
 
 PassRefPtr<TransformOperation> RotateTransformOperation::blend(const TransformOperation* from, double progress, bool blendToIdentity)
@@ -85,69 +42,14 @@
         return this;
 
     if (blendToIdentity)
-        return RotateTransformOperation::create(m_x, m_y, m_z, m_angle - m_angle * progress, m_type);
-
-    const RotateTransformOperation* fromOp = static_cast<const RotateTransformOperation*>(from);
+        return RotateTransformOperation::create(Rotation(axis(), angle() * (1 - progress)), m_type);
 
     // Optimize for single axis rotation
-    if (!fromOp) {
-        double fromAngle = fromOp ? fromOp->m_angle : 0;
-        return RotateTransformOperation::create(fromOp ? fromOp->m_x : m_x,
-                                                fromOp ? fromOp->m_y : m_y,
-                                                fromOp ? fromOp->m_z : m_z,
-                                                blink::blend(fromAngle, m_angle, progress), m_type);
-    }
-    double fromAngle;
-    double toAngle;
-    FloatPoint3D axis;
+    if (!from)
+        return RotateTransformOperation::create(Rotation(axis(), angle() * progress), m_type);
 
-    if (shareSameAxis(fromOp, this, &axis, &fromAngle, &toAngle))
-        return RotateTransformOperation::create(axis.x(), axis.y(), axis.z(), blink::blend(fromAngle, toAngle, progress), m_type);
-
-    const RotateTransformOperation* toOp = this;
-
-    // Create the 2 rotation matrices
-    TransformationMatrix fromT;
-    TransformationMatrix toT;
-    fromT.rotate3d((fromOp ? fromOp->m_x : 0),
-        (fromOp ? fromOp->m_y : 0),
-        (fromOp ? fromOp->m_z : 1),
-        (fromOp ? fromOp->m_angle : 0));
-
-    toT.rotate3d((toOp ? toOp->m_x : 0),
-        (toOp ? toOp->m_y : 0),
-        (toOp ? toOp->m_z : 1),
-        (toOp ? toOp->m_angle : 0));
-
-    // Blend them
-    toT.blend(fromT, progress);
-
-    // Extract the result as a quaternion
-    TransformationMatrix::DecomposedType decomp;
-    if (!toT.decompose(decomp)) {
-        // If we can't decompose, bail out of interpolation.
-        const RotateTransformOperation* usedOperation = progress > 0.5 ? this : fromOp;
-        return RotateTransformOperation::create(usedOperation->x(), usedOperation->y(), usedOperation->z(), usedOperation->angle(), Rotate3D);
-    }
-
-    // Convert that to Axis/Angle form
-    double x = -decomp.quaternionX;
-    double y = -decomp.quaternionY;
-    double z = -decomp.quaternionZ;
-    double length = std::sqrt(x * x + y * y + z * z);
-    double angle = 0;
-
-    if (length > 0.00001) {
-        x /= length;
-        y /= length;
-        z /= length;
-        angle = rad2deg(std::acos(decomp.quaternionW) * 2);
-    } else {
-        x = 0;
-        y = 0;
-        z = 1;
-    }
-    return RotateTransformOperation::create(x, y, z, angle, Rotate3D);
+    return RotateTransformOperation::create(
+        Rotation::slerp(toRotateTransformOperation(*from).m_rotation, m_rotation, progress), Rotate3D);
 }
 
 bool RotateTransformOperation::canBlendWith(const TransformOperation& other) const
diff --git a/third_party/WebKit/Source/platform/transforms/RotateTransformOperation.h b/third_party/WebKit/Source/platform/transforms/RotateTransformOperation.h
index 559d19be..ba6e623b 100644
--- a/third_party/WebKit/Source/platform/transforms/RotateTransformOperation.h
+++ b/third_party/WebKit/Source/platform/transforms/RotateTransformOperation.h
@@ -25,6 +25,8 @@
 #ifndef RotateTransformOperation_h
 #define RotateTransformOperation_h
 
+#include "platform/geometry/FloatPoint3D.h"
+#include "platform/transforms/Rotation.h"
 #include "platform/transforms/TransformOperation.h"
 
 namespace blink {
@@ -33,59 +35,52 @@
 public:
     static PassRefPtr<RotateTransformOperation> create(double angle, OperationType type)
     {
-        return adoptRef(new RotateTransformOperation(0, 0, 1, angle, type));
+        return create(Rotation(FloatPoint3D(0, 0, 1), angle), type);
     }
 
     static PassRefPtr<RotateTransformOperation> create(double x, double y, double z, double angle, OperationType type)
     {
-        return adoptRef(new RotateTransformOperation(x, y, z, angle, type));
+        return create(Rotation(FloatPoint3D(x, y, z), angle), type);
     }
 
-    double x() const { return m_x; }
-    double y() const { return m_y; }
-    double z() const { return m_z; }
-    double angle() const { return m_angle; }
+    static PassRefPtr<RotateTransformOperation> create(const Rotation& rotation, OperationType type)
+    {
+        return adoptRef(new RotateTransformOperation(rotation, type));
+    }
 
-    FloatPoint3D axis() const;
-    static bool shareSameAxis(const RotateTransformOperation* fromRotation, const RotateTransformOperation* toRotation, FloatPoint3D* axis, double* fromAngle, double* toAngle);
+    double x() const { return m_rotation.axis.x(); }
+    double y() const { return m_rotation.axis.y(); }
+    double z() const { return m_rotation.axis.z(); }
+    double angle() const { return m_rotation.angle; }
+    const FloatPoint3D& axis() const { return m_rotation.axis; }
+
+    static bool getCommonAxis(const RotateTransformOperation*, const RotateTransformOperation*, FloatPoint3D& resultAxis, double& resultAngleA, double& resultAngleB);
 
     virtual bool canBlendWith(const TransformOperation& other) const;
     OperationType type() const override { return m_type; }
 
     void apply(TransformationMatrix& transform, const FloatSize& /*borderBoxSize*/) const override
     {
-        transform.rotate3d(m_x, m_y, m_z, m_angle);
+        transform.rotate3d(m_rotation);
     }
 
     static bool isMatchingOperationType(OperationType type) { return type == Rotate || type == RotateX || type == RotateY || type == RotateZ || type == Rotate3D; }
 
 private:
-    bool operator==(const TransformOperation& o) const override
-    {
-        if (!isSameType(o))
-            return false;
-        const RotateTransformOperation* r = static_cast<const RotateTransformOperation*>(&o);
-        return m_x == r->m_x && m_y == r->m_y && m_z == r->m_z && m_angle == r->m_angle;
-    }
+    bool operator==(const TransformOperation&) const override;
 
     PassRefPtr<TransformOperation> blend(const TransformOperation* from, double progress, bool blendToIdentity = false) override;
     PassRefPtr<TransformOperation> zoom(double factor) final { return this; }
 
-    RotateTransformOperation(double x, double y, double z, double angle, OperationType type)
-        : m_x(x)
-        , m_y(y)
-        , m_z(z)
-        , m_angle(angle)
+    RotateTransformOperation(const Rotation& rotation, OperationType type)
+        : m_rotation(rotation)
         , m_type(type)
     {
         ASSERT(isMatchingOperationType(type));
     }
 
-    double m_x;
-    double m_y;
-    double m_z;
-    double m_angle;
-    OperationType m_type;
+    const Rotation m_rotation;
+    const OperationType m_type;
 };
 
 DEFINE_TRANSFORM_TYPE_CASTS(RotateTransformOperation);
diff --git a/third_party/WebKit/Source/platform/transforms/Rotation.cpp b/third_party/WebKit/Source/platform/transforms/Rotation.cpp
new file mode 100644
index 0000000..9bb4dd9
--- /dev/null
+++ b/third_party/WebKit/Source/platform/transforms/Rotation.cpp
@@ -0,0 +1,111 @@
+/*
+ * Copyright (C) 1999 Antti Koivisto (koivisto@kde.org)
+ * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB.  If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "platform/transforms/Rotation.h"
+
+#include "platform/animation/AnimationUtilities.h"
+#include "platform/transforms/TransformationMatrix.h"
+
+namespace blink {
+
+namespace {
+
+const double kAngleEpsilon = 1e-4;
+
+Rotation extractFromMatrix(const TransformationMatrix& matrix, const Rotation& fallbackValue)
+{
+    TransformationMatrix::DecomposedType decomp;
+    if (!matrix.decompose(decomp))
+        return fallbackValue;
+    double x = -decomp.quaternionX;
+    double y = -decomp.quaternionY;
+    double z = -decomp.quaternionZ;
+    double length = std::sqrt(x * x + y * y + z * z);
+    double angle = 0;
+    if (length > 0.00001) {
+        x /= length;
+        y /= length;
+        z /= length;
+        angle = rad2deg(std::acos(decomp.quaternionW) * 2);
+    } else {
+        x = 0;
+        y = 0;
+        z = 1;
+    }
+    return Rotation(FloatPoint3D(x, y, z), angle);
+}
+
+} // namespace
+
+bool Rotation::getCommonAxis(const Rotation& a, const Rotation& b, FloatPoint3D& resultAxis, double& resultAngleA, double& resultAngleB)
+{
+    resultAxis = FloatPoint3D(0, 0, 1);
+    resultAngleA = 0;
+    resultAngleB = 0;
+
+    bool isZeroA = a.axis.isZero() || fabs(a.angle) < kAngleEpsilon;
+    bool isZeroB = b.axis.isZero() || fabs(b.angle) < kAngleEpsilon;
+
+    if (isZeroA && isZeroB)
+        return true;
+
+    if (isZeroA) {
+        resultAxis = b.axis;
+        resultAngleB = b.angle;
+        return true;
+    }
+
+    if (isZeroB) {
+        resultAxis = a.axis;
+        resultAngleA = a.angle;
+        return true;
+    }
+
+    double aSquared = a.axis.lengthSquared();
+    double bSquared = b.axis.lengthSquared();
+    double dot = a.axis.dot(b.axis);
+    double error = std::abs(1 - (dot * dot) / (aSquared * bSquared));
+    if (error > kAngleEpsilon)
+        return false;
+
+    resultAxis = a.axis;
+    resultAngleA = a.angle;
+    resultAngleB = b.angle;
+    return true;
+}
+
+Rotation Rotation::slerp(const Rotation& from, const Rotation& to, double progress)
+{
+    double fromAngle;
+    double toAngle;
+    FloatPoint3D axis;
+    if (getCommonAxis(from, to, axis, fromAngle, toAngle))
+        return Rotation(axis, blink::blend(fromAngle, toAngle, progress));
+
+    TransformationMatrix fromMatrix;
+    TransformationMatrix toMatrix;
+    fromMatrix.rotate3d(from);
+    toMatrix.rotate3d(to);
+    toMatrix.blend(fromMatrix, progress);
+    return extractFromMatrix(toMatrix, progress < 0.5 ? from : to);
+}
+
+} // namespace blink
diff --git a/third_party/WebKit/Source/platform/transforms/Rotation.h b/third_party/WebKit/Source/platform/transforms/Rotation.h
new file mode 100644
index 0000000..6fc4dad
--- /dev/null
+++ b/third_party/WebKit/Source/platform/transforms/Rotation.h
@@ -0,0 +1,40 @@
+// Copyright 2016 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 Rotation_h
+#define Rotation_h
+
+#include "platform/geometry/FloatPoint3D.h"
+
+namespace blink {
+
+struct PLATFORM_EXPORT Rotation {
+    Rotation()
+        : axis(0, 0, 0)
+        , angle(0)
+    { }
+
+    Rotation(const FloatPoint3D& axis, double angle)
+        : axis(axis)
+        , angle(angle)
+    { }
+
+    // If either rotation is effectively "zero" or both rotations share the same normalized axes this function returns true
+    // and the "non-zero" axis is returned as resultAxis and the effective angles are returned as resultAngleA and resultAngleB.
+    // Otherwise false is returned.
+    static bool getCommonAxis(const Rotation& /*a*/, const Rotation& /*b*/, FloatPoint3D& resultAxis, double& resultAngleA, double& resultAngleB);
+
+    // A progress of 0 corresponds to "from" and a progress of 1 corresponds to "to".
+    static Rotation slerp(const Rotation& from, const Rotation& to, double progress);
+
+    // No restrictions on the axis vector.
+    FloatPoint3D axis;
+
+    // Measured in degrees.
+    double angle;
+};
+
+} // namespace blink
+
+#endif // Rotation_h
diff --git a/third_party/WebKit/Source/platform/transforms/RotationTest.cpp b/third_party/WebKit/Source/platform/transforms/RotationTest.cpp
new file mode 100644
index 0000000..6ff28a5
--- /dev/null
+++ b/third_party/WebKit/Source/platform/transforms/RotationTest.cpp
@@ -0,0 +1,71 @@
+// Copyright 2016 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/transforms/Rotation.h"
+
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace blink {
+
+TEST(RotationTest, GetCommonAxisTest)
+{
+    FloatPoint3D axis;
+    double angleA;
+    double angleB;
+
+    EXPECT_TRUE(Rotation::getCommonAxis(
+        Rotation(FloatPoint3D(0, 0, 0), 0),
+        Rotation(FloatPoint3D(1, 2, 3), 100),
+        axis, angleA, angleB));
+    EXPECT_EQ(FloatPoint3D(1, 2, 3), axis);
+    EXPECT_EQ(0, angleA);
+    EXPECT_EQ(100, angleB);
+
+    EXPECT_TRUE(Rotation::getCommonAxis(
+        Rotation(FloatPoint3D(1, 2, 3), 100),
+        Rotation(FloatPoint3D(0, 0, 0), 0),
+        axis, angleA, angleB));
+    EXPECT_EQ(FloatPoint3D(1, 2, 3), axis);
+    EXPECT_EQ(100, angleA);
+    EXPECT_EQ(0, angleB);
+
+    EXPECT_TRUE(Rotation::getCommonAxis(
+        Rotation(FloatPoint3D(0, 0, 0), 100),
+        Rotation(FloatPoint3D(1, 2, 3), 100),
+        axis, angleA, angleB));
+    EXPECT_EQ(FloatPoint3D(1, 2, 3), axis);
+    EXPECT_EQ(0, angleA);
+    EXPECT_EQ(100, angleB);
+
+    EXPECT_TRUE(Rotation::getCommonAxis(
+        Rotation(FloatPoint3D(3, 2, 1), 0),
+        Rotation(FloatPoint3D(1, 2, 3), 100),
+        axis, angleA, angleB));
+    EXPECT_EQ(FloatPoint3D(1, 2, 3), axis);
+    EXPECT_EQ(0, angleA);
+    EXPECT_EQ(100, angleB);
+
+    EXPECT_TRUE(Rotation::getCommonAxis(
+        Rotation(FloatPoint3D(1, 2, 3), 50),
+        Rotation(FloatPoint3D(1, 2, 3), 100),
+        axis, angleA, angleB));
+    EXPECT_EQ(FloatPoint3D(1, 2, 3), axis);
+    EXPECT_EQ(50, angleA);
+    EXPECT_EQ(100, angleB);
+
+    EXPECT_TRUE(Rotation::getCommonAxis(
+        Rotation(FloatPoint3D(1, 2, 3), 50),
+        Rotation(FloatPoint3D(2, 4, 6), 100),
+        axis, angleA, angleB));
+    EXPECT_EQ(FloatPoint3D(1, 2, 3), axis);
+    EXPECT_EQ(50, angleA);
+    EXPECT_EQ(100, angleB);
+
+    EXPECT_FALSE(Rotation::getCommonAxis(
+        Rotation(FloatPoint3D(1, 2, 3), 50),
+        Rotation(FloatPoint3D(3, 2, 1), 100),
+        axis, angleA, angleB));
+}
+
+} // namespace blink
diff --git a/third_party/WebKit/Source/platform/transforms/TransformOperations.cpp b/third_party/WebKit/Source/platform/transforms/TransformOperations.cpp
index 6c428073..6cae557 100644
--- a/third_party/WebKit/Source/platform/transforms/TransformOperations.cpp
+++ b/third_party/WebKit/Source/platform/transforms/TransformOperations.cpp
@@ -333,8 +333,8 @@
                 double fromAngle;
                 double toAngle;
                 FloatPoint3D axis;
-                if (!RotateTransformOperation::shareSameAxis(fromRotation, toRotation, &axis, &fromAngle, &toAngle)) {
-                    return(false);
+                if (!RotateTransformOperation::getCommonAxis(fromRotation, toRotation, axis, fromAngle, toAngle)) {
+                    return false;
                 }
 
                 if (!fromRotation) {
diff --git a/third_party/WebKit/Source/platform/transforms/TransformationMatrix.cpp b/third_party/WebKit/Source/platform/transforms/TransformationMatrix.cpp
index f013a3f..a161aed 100644
--- a/third_party/WebKit/Source/platform/transforms/TransformationMatrix.cpp
+++ b/third_party/WebKit/Source/platform/transforms/TransformationMatrix.cpp
@@ -33,6 +33,7 @@
 #include "platform/geometry/IntRect.h"
 #include "platform/geometry/LayoutRect.h"
 #include "platform/transforms/AffineTransform.h"
+#include "platform/transforms/Rotation.h"
 
 #include "wtf/Assertions.h"
 #include "wtf/MathExtras.h"
@@ -850,6 +851,11 @@
     return *this;
 }
 
+TransformationMatrix& TransformationMatrix::rotate3d(const Rotation& rotation)
+{
+    return rotate3d(rotation.axis.x(), rotation.axis.y(), rotation.axis.z(), rotation.angle);
+}
+
 TransformationMatrix& TransformationMatrix::rotate3d(double x, double y, double z, double angle)
 {
     // Normalize the axis of rotation
diff --git a/third_party/WebKit/Source/platform/transforms/TransformationMatrix.h b/third_party/WebKit/Source/platform/transforms/TransformationMatrix.h
index 1da688c..694bfec 100644
--- a/third_party/WebKit/Source/platform/transforms/TransformationMatrix.h
+++ b/third_party/WebKit/Source/platform/transforms/TransformationMatrix.h
@@ -44,6 +44,7 @@
 class FloatRect;
 class FloatQuad;
 class FloatBox;
+struct Rotation;
 #if CPU(X86_64)
 #define TRANSFORMATION_MATRIX_USE_X86_64_SSE2
 #endif
@@ -263,6 +264,7 @@
 
     TransformationMatrix& rotate(double d) { return rotate3d(0, 0, d); }
     TransformationMatrix& rotate3d(double rx, double ry, double rz);
+    TransformationMatrix& rotate3d(const Rotation&);
 
     // The vector (x,y,z) is normalized if it's not already. A vector of
     // (0,0,0) uses a vector of (0,0,1).
diff --git a/third_party/WebKit/Source/web/AssertMatchingEnums.cpp b/third_party/WebKit/Source/web/AssertMatchingEnums.cpp
index d0c1ed9f..2452c60a 100644
--- a/third_party/WebKit/Source/web/AssertMatchingEnums.cpp
+++ b/third_party/WebKit/Source/web/AssertMatchingEnums.cpp
@@ -730,7 +730,7 @@
 STATIC_ASSERT_ENUM(WebFrameLoadType::ReplaceCurrentItem, FrameLoadTypeReplaceCurrentItem);
 STATIC_ASSERT_ENUM(WebFrameLoadType::InitialInChildFrame, FrameLoadTypeInitialInChildFrame);
 STATIC_ASSERT_ENUM(WebFrameLoadType::InitialHistoryLoad, FrameLoadTypeInitialHistoryLoad);
-STATIC_ASSERT_ENUM(WebFrameLoadType::ReloadFromOrigin, FrameLoadTypeReloadFromOrigin);
+STATIC_ASSERT_ENUM(WebFrameLoadType::ReloadBypassingCache, FrameLoadTypeReloadBypassingCache);
 
 STATIC_ASSERT_ENUM(FrameDetachType::Remove, WebFrameClient::DetachType::Remove);
 STATIC_ASSERT_ENUM(FrameDetachType::Swap, WebFrameClient::DetachType::Swap);
diff --git a/third_party/WebKit/Source/web/AssociatedURLLoader.cpp b/third_party/WebKit/Source/web/AssociatedURLLoader.cpp
index 570718ff..62f393e 100644
--- a/third_party/WebKit/Source/web/AssociatedURLLoader.cpp
+++ b/third_party/WebKit/Source/web/AssociatedURLLoader.cpp
@@ -287,7 +287,7 @@
     m_client->didFail(m_loader, m_error);
 }
 
-AssociatedURLLoader::AssociatedURLLoader(PassRefPtrWillBeRawPtr<WebLocalFrameImpl> frameImpl, const WebURLLoaderOptions& options)
+AssociatedURLLoader::AssociatedURLLoader(RawPtr<WebLocalFrameImpl> frameImpl, const WebURLLoaderOptions& options)
     : m_frameImpl(frameImpl)
     , m_options(options)
     , m_client(0)
diff --git a/third_party/WebKit/Source/web/AssociatedURLLoader.h b/third_party/WebKit/Source/web/AssociatedURLLoader.h
index df5712f..4f22667 100644
--- a/third_party/WebKit/Source/web/AssociatedURLLoader.h
+++ b/third_party/WebKit/Source/web/AssociatedURLLoader.h
@@ -47,7 +47,7 @@
 class AssociatedURLLoader final : public WebURLLoader {
     WTF_MAKE_NONCOPYABLE(AssociatedURLLoader);
 public:
-    AssociatedURLLoader(PassRefPtrWillBeRawPtr<WebLocalFrameImpl>, const WebURLLoaderOptions&);
+    AssociatedURLLoader(RawPtr<WebLocalFrameImpl>, const WebURLLoaderOptions&);
     ~AssociatedURLLoader();
 
     // WebURLLoader methods:
@@ -61,7 +61,7 @@
 
     class ClientAdapter;
 
-    RefPtrWillBePersistent<WebLocalFrameImpl> m_frameImpl;
+    Persistent<WebLocalFrameImpl> m_frameImpl;
     WebURLLoaderOptions m_options;
     WebURLLoaderClient* m_client;
     OwnPtr<ClientAdapter> m_clientAdapter;
diff --git a/third_party/WebKit/Source/web/AudioOutputDeviceClientImpl.cpp b/third_party/WebKit/Source/web/AudioOutputDeviceClientImpl.cpp
index a430be4..392bdba 100644
--- a/third_party/WebKit/Source/web/AudioOutputDeviceClientImpl.cpp
+++ b/third_party/WebKit/Source/web/AudioOutputDeviceClientImpl.cpp
@@ -11,9 +11,9 @@
 
 namespace blink {
 
-PassOwnPtrWillBeRawPtr<AudioOutputDeviceClientImpl> AudioOutputDeviceClientImpl::create()
+RawPtr<AudioOutputDeviceClientImpl> AudioOutputDeviceClientImpl::create()
 {
-    return adoptPtrWillBeNoop(new AudioOutputDeviceClientImpl());
+    return new AudioOutputDeviceClientImpl();
 }
 
 AudioOutputDeviceClientImpl::AudioOutputDeviceClientImpl()
diff --git a/third_party/WebKit/Source/web/AudioOutputDeviceClientImpl.h b/third_party/WebKit/Source/web/AudioOutputDeviceClientImpl.h
index 5d6fed9..99ac1b1 100644
--- a/third_party/WebKit/Source/web/AudioOutputDeviceClientImpl.h
+++ b/third_party/WebKit/Source/web/AudioOutputDeviceClientImpl.h
@@ -10,18 +10,18 @@
 
 namespace blink {
 
-class AudioOutputDeviceClientImpl : public NoBaseWillBeGarbageCollectedFinalized<AudioOutputDeviceClientImpl>, public AudioOutputDeviceClient {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(AudioOutputDeviceClientImpl);
+class AudioOutputDeviceClientImpl : public GarbageCollectedFinalized<AudioOutputDeviceClientImpl>, public AudioOutputDeviceClient {
+    USING_GARBAGE_COLLECTED_MIXIN(AudioOutputDeviceClientImpl);
     WTF_MAKE_NONCOPYABLE(AudioOutputDeviceClientImpl);
 public:
-    static PassOwnPtrWillBeRawPtr<AudioOutputDeviceClientImpl> create();
+    static RawPtr<AudioOutputDeviceClientImpl> create();
 
     ~AudioOutputDeviceClientImpl() override;
 
     // AudioOutputDeviceClient implementation.
     void checkIfAudioSinkExistsAndIsAuthorized(ExecutionContext*, const WebString& sinkId, PassOwnPtr<WebSetSinkIdCallbacks>) override;
 
-    // NoBaseWillBeGarbageCollectedFinalized implementation.
+    // GarbageCollectedFinalized implementation.
     DEFINE_INLINE_VIRTUAL_TRACE() { AudioOutputDeviceClient::trace(visitor); }
 
 private:
diff --git a/third_party/WebKit/Source/web/ChromeClientImpl.cpp b/third_party/WebKit/Source/web/ChromeClientImpl.cpp
index 57d04b83..5ab1636 100644
--- a/third_party/WebKit/Source/web/ChromeClientImpl.cpp
+++ b/third_party/WebKit/Source/web/ChromeClientImpl.cpp
@@ -168,9 +168,9 @@
 {
 }
 
-PassOwnPtrWillBeRawPtr<ChromeClientImpl> ChromeClientImpl::create(WebViewImpl* webView)
+RawPtr<ChromeClientImpl> ChromeClientImpl::create(WebViewImpl* webView)
 {
-    return adoptPtrWillBeNoop(new ChromeClientImpl(webView));
+    return new ChromeClientImpl(webView);
 }
 
 void* ChromeClientImpl::webView() const
@@ -657,10 +657,10 @@
         m_webView->client()->printPage(WebLocalFrameImpl::fromFrame(frame));
 }
 
-PassOwnPtrWillBeRawPtr<ColorChooser> ChromeClientImpl::openColorChooser(LocalFrame* frame, ColorChooserClient* chooserClient, const Color&)
+RawPtr<ColorChooser> ChromeClientImpl::openColorChooser(LocalFrame* frame, ColorChooserClient* chooserClient, const Color&)
 {
     notifyPopupOpeningObservers();
-    OwnPtrWillBeRawPtr<ColorChooserUIController> controller = nullptr;
+    RawPtr<ColorChooserUIController> controller = nullptr;
     if (RuntimeEnabledFeatures::pagePopupEnabled())
         controller = ColorChooserPopupUIController::create(frame, this, chooserClient);
     else
@@ -669,7 +669,7 @@
     return controller.release();
 }
 
-PassRefPtrWillBeRawPtr<DateTimeChooser> ChromeClientImpl::openDateTimeChooser(DateTimeChooserClient* pickerClient, const DateTimeChooserParameters& parameters)
+RawPtr<DateTimeChooser> ChromeClientImpl::openDateTimeChooser(DateTimeChooserClient* pickerClient, const DateTimeChooserParameters& parameters)
 {
     notifyPopupOpeningObservers();
 #if ENABLE(INPUT_MULTIPLE_FIELDS_UI)
@@ -876,11 +876,11 @@
     return m_webView->hasOpenedPopup();
 }
 
-PassRefPtrWillBeRawPtr<PopupMenu> ChromeClientImpl::openPopupMenu(LocalFrame& frame, HTMLSelectElement& select)
+RawPtr<PopupMenu> ChromeClientImpl::openPopupMenu(LocalFrame& frame, HTMLSelectElement& select)
 {
     notifyPopupOpeningObservers();
     if (WebViewImpl::useExternalPopupMenus())
-        return adoptRefWillBeNoop(new ExternalPopupMenu(frame, select, *m_webView));
+        return new ExternalPopupMenu(frame, select, *m_webView);
 
     ASSERT(RuntimeEnabledFeatures::pagePopupEnabled());
     return PopupMenuImpl::create(this, select);
@@ -960,7 +960,7 @@
         client->draggableRegionsChanged();
 }
 
-void ChromeClientImpl::didAssociateFormControls(const WillBeHeapVector<RefPtrWillBeMember<Element>>& elements, LocalFrame* frame)
+void ChromeClientImpl::didAssociateFormControls(const HeapVector<Member<Element>>& elements, LocalFrame* frame)
 {
     WebLocalFrameImpl* webframe = WebLocalFrameImpl::fromFrame(frame);
     if (webframe->autofillClient())
diff --git a/third_party/WebKit/Source/web/ChromeClientImpl.h b/third_party/WebKit/Source/web/ChromeClientImpl.h
index 2ebcbee..c1f32b34 100644
--- a/third_party/WebKit/Source/web/ChromeClientImpl.h
+++ b/third_party/WebKit/Source/web/ChromeClientImpl.h
@@ -48,7 +48,7 @@
 // Handles window-level notifications from core on behalf of a WebView.
 class WEB_EXPORT ChromeClientImpl final : public ChromeClient {
 public:
-    static PassOwnPtrWillBeRawPtr<ChromeClientImpl> create(WebViewImpl*);
+    static RawPtr<ChromeClientImpl> create(WebViewImpl*);
     ~ChromeClientImpl() override;
 
     void* webView() const override;
@@ -106,8 +106,8 @@
     void dispatchViewportPropertiesDidChange(const ViewportDescription&) const override;
     void printDelegate(LocalFrame*) override;
     void annotatedRegionsChanged() override;
-    PassOwnPtrWillBeRawPtr<ColorChooser> openColorChooser(LocalFrame*, ColorChooserClient*, const Color&) override;
-    PassRefPtrWillBeRawPtr<DateTimeChooser> openDateTimeChooser(DateTimeChooserClient*, const DateTimeChooserParameters&) override;
+    RawPtr<ColorChooser> openColorChooser(LocalFrame*, ColorChooserClient*, const Color&) override;
+    RawPtr<DateTimeChooser> openDateTimeChooser(DateTimeChooserClient*, const DateTimeChooserParameters&) override;
     void openFileChooser(LocalFrame*, PassRefPtr<FileChooser>) override;
     void enumerateChosenDirectory(FileChooser*) override;
     void setCursor(const Cursor&, LocalFrame* localRoot) override;
@@ -142,7 +142,7 @@
     void setCursorOverridden(bool);
 
     bool hasOpenedPopup() const override;
-    PassRefPtrWillBeRawPtr<PopupMenu> openPopupMenu(LocalFrame&, HTMLSelectElement&) override;
+    RawPtr<PopupMenu> openPopupMenu(LocalFrame&, HTMLSelectElement&) override;
     PagePopup* openPagePopup(PagePopupClient*);
     void closePagePopup(PagePopup*);
     DOMWindow* pagePopupWindowForTesting() const override;
@@ -153,7 +153,7 @@
     void requestPointerUnlock() override;
 
     // AutofillClient pass throughs:
-    void didAssociateFormControls(const WillBeHeapVector<RefPtrWillBeMember<Element>>&, LocalFrame*) override;
+    void didAssociateFormControls(const HeapVector<Member<Element>>&, LocalFrame*) override;
     void handleKeyboardEventOnTextField(HTMLInputElement&, KeyboardEvent&) override;
     void didChangeValueInTextField(HTMLFormControlElement&) override;
     void didEndEditingOnTextField(HTMLInputElement&) override;
diff --git a/third_party/WebKit/Source/web/ColorChooserPopupUIController.h b/third_party/WebKit/Source/web/ColorChooserPopupUIController.h
index 30995601..ae7a7ada 100644
--- a/third_party/WebKit/Source/web/ColorChooserPopupUIController.h
+++ b/third_party/WebKit/Source/web/ColorChooserPopupUIController.h
@@ -37,11 +37,11 @@
 class PagePopup;
 
 class ColorChooserPopupUIController final : public ColorChooserUIController, public PagePopupClient  {
-    WILL_BE_USING_PRE_FINALIZER(ColorChooserPopupUIController, dispose);
+    USING_PRE_FINALIZER(ColorChooserPopupUIController, dispose);
 public:
-    static PassOwnPtrWillBeRawPtr<ColorChooserPopupUIController> create(LocalFrame* frame, ChromeClientImpl* chromeClient, ColorChooserClient* client)
+    static RawPtr<ColorChooserPopupUIController> create(LocalFrame* frame, ChromeClientImpl* chromeClient, ColorChooserClient* client)
     {
-        return adoptPtrWillBeNoop(new ColorChooserPopupUIController(frame, chromeClient, client));
+        return new ColorChooserPopupUIController(frame, chromeClient, client);
     }
 
     ~ColorChooserPopupUIController() override;
@@ -70,7 +70,7 @@
     void openPopup();
     void dispose();
 
-    RawPtrWillBeMember<ChromeClientImpl> m_chromeClient;
+    Member<ChromeClientImpl> m_chromeClient;
     PagePopup* m_popup;
     Locale& m_locale;
 };
diff --git a/third_party/WebKit/Source/web/ColorChooserUIController.h b/third_party/WebKit/Source/web/ColorChooserUIController.h
index fa2a88c..51005f41 100644
--- a/third_party/WebKit/Source/web/ColorChooserUIController.h
+++ b/third_party/WebKit/Source/web/ColorChooserUIController.h
@@ -38,12 +38,12 @@
 class LocalFrame;
 class WebColorChooser;
 
-class ColorChooserUIController : public NoBaseWillBeGarbageCollectedFinalized<ColorChooserUIController>, public WebColorChooserClient, public ColorChooser {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(ColorChooserUIController);
+class ColorChooserUIController : public GarbageCollectedFinalized<ColorChooserUIController>, public WebColorChooserClient, public ColorChooser {
+    USING_GARBAGE_COLLECTED_MIXIN(ColorChooserUIController);
 public:
-    static PassOwnPtrWillBeRawPtr<ColorChooserUIController> create(LocalFrame* frame, ColorChooserClient* client)
+    static RawPtr<ColorChooserUIController> create(LocalFrame* frame, ColorChooserClient* client)
     {
-        return adoptPtrWillBeNoop(new ColorChooserUIController(frame, client));
+        return new ColorChooserUIController(frame, client);
     }
 
     ~ColorChooserUIController() override;
@@ -65,9 +65,9 @@
 
     void openColorChooser();
     OwnPtr<WebColorChooser> m_chooser;
-    RawPtrWillBeMember<ColorChooserClient> m_client;
+    Member<ColorChooserClient> m_client;
 
-    RawPtrWillBeMember<LocalFrame> m_frame;
+    Member<LocalFrame> m_frame;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/web/ContextFeaturesClientImpl.cpp b/third_party/WebKit/Source/web/ContextFeaturesClientImpl.cpp
index 066139c..4f61b87 100644
--- a/third_party/WebKit/Source/web/ContextFeaturesClientImpl.cpp
+++ b/third_party/WebKit/Source/web/ContextFeaturesClientImpl.cpp
@@ -38,8 +38,8 @@
 
 namespace blink {
 
-class ContextFeaturesCache final : public NoBaseWillBeGarbageCollectedFinalized<ContextFeaturesCache>, public WillBeHeapSupplement<Document> {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(ContextFeaturesCache);
+class ContextFeaturesCache final : public GarbageCollectedFinalized<ContextFeaturesCache>, public HeapSupplement<Document> {
+    USING_GARBAGE_COLLECTED_MIXIN(ContextFeaturesCache);
 public:
     class Entry {
     public:
@@ -90,7 +90,7 @@
 
     DEFINE_INLINE_VIRTUAL_TRACE()
     {
-        WillBeHeapSupplement<Document>::trace(visitor);
+        HeapSupplement<Document>::trace(visitor);
     }
 
 private:
@@ -105,10 +105,10 @@
 
 ContextFeaturesCache& ContextFeaturesCache::from(Document& document)
 {
-    ContextFeaturesCache* cache = static_cast<ContextFeaturesCache*>(WillBeHeapSupplement<Document>::from(document, supplementName()));
+    ContextFeaturesCache* cache = static_cast<ContextFeaturesCache*>(HeapSupplement<Document>::from(document, supplementName()));
     if (!cache) {
         cache = new ContextFeaturesCache();
-        WillBeHeapSupplement<Document>::provideTo(document, supplementName(), adoptPtrWillBeNoop(cache));
+        HeapSupplement<Document>::provideTo(document, supplementName(), adoptPtrWillBeNoop(cache));
     }
 
     return *cache;
diff --git a/third_party/WebKit/Source/web/ContextMenuClientImpl.cpp b/third_party/WebKit/Source/web/ContextMenuClientImpl.cpp
index 3dce1b8..2a716322 100644
--- a/third_party/WebKit/Source/web/ContextMenuClientImpl.cpp
+++ b/third_party/WebKit/Source/web/ContextMenuClientImpl.cpp
@@ -113,7 +113,7 @@
         return String();
 
     // Caret and range selections always return valid normalized ranges.
-    RefPtrWillBeRawPtr<Range> selectionRange = createRange(selection.toNormalizedEphemeralRange());
+    RawPtr<Range> selectionRange = createRange(selection.toNormalizedEphemeralRange());
     DocumentMarkerVector markers = selectedFrame->document()->markers().markersInRange(EphemeralRange(selectionRange.get()), DocumentMarker::MisspellingMarkers());
     if (markers.size() != 1)
         return String();
@@ -121,7 +121,7 @@
     hash = markers[0]->hash();
 
     // Cloning a range fails only for invalid ranges.
-    RefPtrWillBeRawPtr<Range> markerRange = selectionRange->cloneRange();
+    RawPtr<Range> markerRange = selectionRange->cloneRange();
     markerRange->setStart(markerRange->startContainer(), markers[0]->startOffset());
     markerRange->setEnd(markerRange->endContainer(), markers[0]->endOffset());
 
@@ -277,7 +277,7 @@
 
     if (selectedFrame != m_webView->page()->mainFrame()) {
         data.frameURL = urlFromFrame(selectedFrame);
-        RefPtrWillBeRawPtr<HistoryItem> historyItem = selectedFrame->loader().currentItem();
+        RawPtr<HistoryItem> historyItem = selectedFrame->loader().currentItem();
         if (historyItem)
             data.frameHistoryItem = WebHistoryItem(historyItem);
     }
diff --git a/third_party/WebKit/Source/web/DatabaseClientImpl.cpp b/third_party/WebKit/Source/web/DatabaseClientImpl.cpp
index 44a05c7..be93f9f 100644
--- a/third_party/WebKit/Source/web/DatabaseClientImpl.cpp
+++ b/third_party/WebKit/Source/web/DatabaseClientImpl.cpp
@@ -37,9 +37,9 @@
 
 namespace blink {
 
-PassOwnPtrWillBeRawPtr<DatabaseClientImpl> DatabaseClientImpl::create()
+RawPtr<DatabaseClientImpl> DatabaseClientImpl::create()
 {
-    return adoptPtrWillBeNoop(new DatabaseClientImpl());
+    return new DatabaseClientImpl();
 }
 
 DatabaseClientImpl::~DatabaseClientImpl()
diff --git a/third_party/WebKit/Source/web/DatabaseClientImpl.h b/third_party/WebKit/Source/web/DatabaseClientImpl.h
index 6f51a4d..77baea6 100644
--- a/third_party/WebKit/Source/web/DatabaseClientImpl.h
+++ b/third_party/WebKit/Source/web/DatabaseClientImpl.h
@@ -36,10 +36,10 @@
 
 namespace blink {
 
-class DatabaseClientImpl final : public NoBaseWillBeGarbageCollectedFinalized<DatabaseClientImpl>, public DatabaseClient {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(DatabaseClientImpl);
+class DatabaseClientImpl final : public GarbageCollectedFinalized<DatabaseClientImpl>, public DatabaseClient {
+    USING_GARBAGE_COLLECTED_MIXIN(DatabaseClientImpl);
 public:
-    static PassOwnPtrWillBeRawPtr<DatabaseClientImpl> create();
+    static RawPtr<DatabaseClientImpl> create();
 
     ~DatabaseClientImpl() override;
     DECLARE_VIRTUAL_TRACE();
diff --git a/third_party/WebKit/Source/web/DateTimeChooserImpl.cpp b/third_party/WebKit/Source/web/DateTimeChooserImpl.cpp
index 49aa97e..c63522a 100644
--- a/third_party/WebKit/Source/web/DateTimeChooserImpl.cpp
+++ b/third_party/WebKit/Source/web/DateTimeChooserImpl.cpp
@@ -57,9 +57,9 @@
     m_popup = m_chromeClient->openPagePopup(this);
 }
 
-PassRefPtrWillBeRawPtr<DateTimeChooserImpl> DateTimeChooserImpl::create(ChromeClientImpl* chromeClient, DateTimeChooserClient* client, const DateTimeChooserParameters& parameters)
+RawPtr<DateTimeChooserImpl> DateTimeChooserImpl::create(ChromeClientImpl* chromeClient, DateTimeChooserClient* client, const DateTimeChooserParameters& parameters)
 {
-    return adoptRefWillBeNoop(new DateTimeChooserImpl(chromeClient, client, parameters));
+    return new DateTimeChooserImpl(chromeClient, client, parameters);
 }
 
 DateTimeChooserImpl::~DateTimeChooserImpl()
@@ -187,7 +187,7 @@
 
 void DateTimeChooserImpl::setValueAndClosePopup(int numValue, const String& stringValue)
 {
-    RefPtrWillBeRawPtr<DateTimeChooserImpl> protector(this);
+    RawPtr<DateTimeChooserImpl> protector(this);
     if (numValue >= 0)
         setValue(stringValue);
     endChooser();
diff --git a/third_party/WebKit/Source/web/DateTimeChooserImpl.h b/third_party/WebKit/Source/web/DateTimeChooserImpl.h
index f59c111..320906f 100644
--- a/third_party/WebKit/Source/web/DateTimeChooserImpl.h
+++ b/third_party/WebKit/Source/web/DateTimeChooserImpl.h
@@ -45,7 +45,7 @@
 
 class DateTimeChooserImpl final : public DateTimeChooser, public PagePopupClient {
 public:
-    static PassRefPtrWillBeRawPtr<DateTimeChooserImpl> create(ChromeClientImpl*, DateTimeChooserClient*, const DateTimeChooserParameters&);
+    static RawPtr<DateTimeChooserImpl> create(ChromeClientImpl*, DateTimeChooserClient*, const DateTimeChooserParameters&);
     ~DateTimeChooserImpl() override;
 
     // DateTimeChooser functions:
@@ -66,8 +66,8 @@
     Element& ownerElement() override;
     void didClosePopup() override;
 
-    RawPtrWillBeMember<ChromeClientImpl> m_chromeClient;
-    RawPtrWillBeMember<DateTimeChooserClient> m_client;
+    Member<ChromeClientImpl> m_chromeClient;
+    Member<DateTimeChooserClient> m_client;
     PagePopup* m_popup;
     DateTimeChooserParameters m_parameters;
     OwnPtr<Locale> m_locale;
diff --git a/third_party/WebKit/Source/web/DevToolsEmulator.cpp b/third_party/WebKit/Source/web/DevToolsEmulator.cpp
index d75cbf58..63821c41 100644
--- a/third_party/WebKit/Source/web/DevToolsEmulator.cpp
+++ b/third_party/WebKit/Source/web/DevToolsEmulator.cpp
@@ -81,9 +81,9 @@
 {
 }
 
-PassOwnPtrWillBeRawPtr<DevToolsEmulator> DevToolsEmulator::create(WebViewImpl* webViewImpl)
+RawPtr<DevToolsEmulator> DevToolsEmulator::create(WebViewImpl* webViewImpl)
 {
-    return adoptPtrWillBeNoop(new DevToolsEmulator(webViewImpl));
+    return new DevToolsEmulator(webViewImpl);
 }
 
 DEFINE_TRACE(DevToolsEmulator)
diff --git a/third_party/WebKit/Source/web/DevToolsEmulator.h b/third_party/WebKit/Source/web/DevToolsEmulator.h
index b4038fa5..3392e55 100644
--- a/third_party/WebKit/Source/web/DevToolsEmulator.h
+++ b/third_party/WebKit/Source/web/DevToolsEmulator.h
@@ -18,10 +18,10 @@
 class WebInputEvent;
 class WebViewImpl;
 
-class DevToolsEmulator final : public NoBaseWillBeGarbageCollectedFinalized<DevToolsEmulator> {
+class DevToolsEmulator final : public GarbageCollectedFinalized<DevToolsEmulator> {
 public:
     ~DevToolsEmulator();
-    static PassOwnPtrWillBeRawPtr<DevToolsEmulator> create(WebViewImpl*);
+    static RawPtr<DevToolsEmulator> create(WebViewImpl*);
     DECLARE_TRACE();
 
     // Settings overrides.
diff --git a/third_party/WebKit/Source/web/DragClientImpl.cpp b/third_party/WebKit/Source/web/DragClientImpl.cpp
index 052a633..bf8f662 100644
--- a/third_party/WebKit/Source/web/DragClientImpl.cpp
+++ b/third_party/WebKit/Source/web/DragClientImpl.cpp
@@ -59,7 +59,7 @@
 void DragClientImpl::startDrag(DragImage* dragImage, const IntPoint& dragImageOrigin, const IntPoint& eventPos, DataTransfer* dataTransfer, LocalFrame* frame, bool isLinkDrag)
 {
     // Add a ref to the frame just in case a load occurs mid-drag.
-    RefPtrWillBeRawPtr<LocalFrame> frameProtector(frame);
+    RawPtr<LocalFrame> frameProtector(frame);
 
     WebDragData dragData = dataTransfer->dataObject()->toWebDragData();
     WebDragOperationsMask dragOperationMask = static_cast<WebDragOperationsMask>(dataTransfer->sourceOperation());
diff --git a/third_party/WebKit/Source/web/ExternalDateTimeChooser.cpp b/third_party/WebKit/Source/web/ExternalDateTimeChooser.cpp
index 9c3be66e..ba6b512f 100644
--- a/third_party/WebKit/Source/web/ExternalDateTimeChooser.cpp
+++ b/third_party/WebKit/Source/web/ExternalDateTimeChooser.cpp
@@ -62,7 +62,7 @@
         delete this;
     }
 
-    RefPtrWillBePersistent<ExternalDateTimeChooser> m_chooser;
+    Persistent<ExternalDateTimeChooser> m_chooser;
 };
 
 ExternalDateTimeChooser::~ExternalDateTimeChooser()
@@ -81,10 +81,10 @@
     ASSERT(client);
 }
 
-PassRefPtrWillBeRawPtr<ExternalDateTimeChooser> ExternalDateTimeChooser::create(ChromeClientImpl* chromeClient, WebViewClient* webViewClient, DateTimeChooserClient* client, const DateTimeChooserParameters& parameters)
+RawPtr<ExternalDateTimeChooser> ExternalDateTimeChooser::create(ChromeClientImpl* chromeClient, WebViewClient* webViewClient, DateTimeChooserClient* client, const DateTimeChooserParameters& parameters)
 {
     ASSERT(chromeClient);
-    RefPtrWillBeRawPtr<ExternalDateTimeChooser> chooser = adoptRefWillBeNoop(new ExternalDateTimeChooser(client));
+    RawPtr<ExternalDateTimeChooser> chooser = new ExternalDateTimeChooser(client);
     if (!chooser->openDateTimeChooser(chromeClient, webViewClient, parameters))
         chooser.clear();
     return chooser.release();
diff --git a/third_party/WebKit/Source/web/ExternalDateTimeChooser.h b/third_party/WebKit/Source/web/ExternalDateTimeChooser.h
index 5eb2010..bb2ba823 100644
--- a/third_party/WebKit/Source/web/ExternalDateTimeChooser.h
+++ b/third_party/WebKit/Source/web/ExternalDateTimeChooser.h
@@ -40,7 +40,7 @@
 
 class ExternalDateTimeChooser final : public DateTimeChooser {
 public:
-    static PassRefPtrWillBeRawPtr<ExternalDateTimeChooser> create(ChromeClientImpl*, WebViewClient*, DateTimeChooserClient*, const DateTimeChooserParameters&);
+    static RawPtr<ExternalDateTimeChooser> create(ChromeClientImpl*, WebViewClient*, DateTimeChooserClient*, const DateTimeChooserParameters&);
     ~ExternalDateTimeChooser() override;
     DECLARE_VIRTUAL_TRACE();
 
@@ -57,7 +57,7 @@
     void endChooser() override;
     AXObject* rootAXObject() override;
 
-    RawPtrWillBeMember<DateTimeChooserClient> m_client;
+    Member<DateTimeChooserClient> m_client;
 };
 
 }
diff --git a/third_party/WebKit/Source/web/ExternalPopupMenu.cpp b/third_party/WebKit/Source/web/ExternalPopupMenu.cpp
index 2e2275b..08717cc 100644
--- a/third_party/WebKit/Source/web/ExternalPopupMenu.cpp
+++ b/third_party/WebKit/Source/web/ExternalPopupMenu.cpp
@@ -152,7 +152,7 @@
     if (m_shownDOMTreeVersion == m_ownerElement->document().domTreeVersion())
         return;
     m_needsUpdate = true;
-    m_ownerElement->document().postTask(BLINK_FROM_HERE, createSameThreadTask(&ExternalPopupMenu::update, PassRefPtrWillBeRawPtr<ExternalPopupMenu>(this)));
+    m_ownerElement->document().postTask(BLINK_FROM_HERE, createSameThreadTask(&ExternalPopupMenu::update, RawPtr<ExternalPopupMenu>(this)));
 }
 
 void ExternalPopupMenu::update()
@@ -187,7 +187,7 @@
     // derefed. This ensures it does not get deleted while we are running this
     // method.
     int popupMenuItemIndex = toPopupMenuItemIndex(index, *m_ownerElement);
-    RefPtrWillBeRawPtr<ExternalPopupMenu> guard(this);
+    RawPtr<ExternalPopupMenu> guard(this);
 
     if (m_ownerElement) {
         m_ownerElement->popupDidHide();
@@ -206,8 +206,8 @@
     // Calling methods on the HTMLSelectElement might lead to this object being
     // derefed. This ensures it does not get deleted while we are running this
     // method.
-    RefPtrWillBeRawPtr<ExternalPopupMenu> protect(this);
-    RefPtrWillBeRawPtr<HTMLSelectElement> ownerElement(m_ownerElement.get());
+    RawPtr<ExternalPopupMenu> protect(this);
+    RawPtr<HTMLSelectElement> ownerElement(m_ownerElement.get());
     ownerElement->popupDidHide();
 
     if (indices.size() == 0) {
@@ -223,7 +223,7 @@
 void ExternalPopupMenu::didCancel()
 {
     // See comment in didAcceptIndex on why we need this.
-    RefPtrWillBeRawPtr<ExternalPopupMenu> guard(this);
+    RawPtr<ExternalPopupMenu> guard(this);
 
     if (m_ownerElement)
         m_ownerElement->popupDidHide();
@@ -232,7 +232,7 @@
 
 void ExternalPopupMenu::getPopupMenuInfo(WebPopupMenuInfo& info, HTMLSelectElement& ownerElement)
 {
-    const WillBeHeapVector<RawPtrWillBeMember<HTMLElement>>& listItems = ownerElement.listItems();
+    const HeapVector<Member<HTMLElement>>& listItems = ownerElement.listItems();
     size_t itemCount = listItems.size();
     size_t count = 0;
     Vector<WebMenuItemInfo> items(itemCount);
@@ -277,7 +277,7 @@
         return externalPopupMenuItemIndex;
 
     int indexTracker = 0;
-    const WillBeHeapVector<RawPtrWillBeMember<HTMLElement>>& items = ownerElement.listItems();
+    const HeapVector<Member<HTMLElement>>& items = ownerElement.listItems();
     for (int i = 0; i < static_cast<int>(items.size()); ++i) {
         if (ownerElement.itemIsDisplayNone(*items[i]))
             continue;
@@ -293,7 +293,7 @@
         return popupMenuItemIndex;
 
     size_t indexTracker = 0;
-    const WillBeHeapVector<RawPtrWillBeMember<HTMLElement>>& items = ownerElement.listItems();
+    const HeapVector<Member<HTMLElement>>& items = ownerElement.listItems();
     for (int i = 0; i < static_cast<int>(items.size()); ++i) {
         if (ownerElement.itemIsDisplayNone(*items[i]))
             continue;
diff --git a/third_party/WebKit/Source/web/ExternalPopupMenu.h b/third_party/WebKit/Source/web/ExternalPopupMenu.h
index 790f9b3..a637cf7 100644
--- a/third_party/WebKit/Source/web/ExternalPopupMenu.h
+++ b/third_party/WebKit/Source/web/ExternalPopupMenu.h
@@ -82,8 +82,8 @@
     void dispatchEvent(Timer<ExternalPopupMenu>*);
     void update();
 
-    RawPtrWillBeMember<HTMLSelectElement> m_ownerElement;
-    RefPtrWillBeMember<LocalFrame> m_localFrame;
+    Member<HTMLSelectElement> m_ownerElement;
+    Member<LocalFrame> m_localFrame;
     WebViewImpl& m_webView;
     OwnPtr<WebMouseEvent> m_syntheticEvent;
     Timer<ExternalPopupMenu> m_dispatchEventTimer;
diff --git a/third_party/WebKit/Source/web/ExternalPopupMenuTest.cpp b/third_party/WebKit/Source/web/ExternalPopupMenuTest.cpp
index 407c7f6..ff9d3aa 100644
--- a/third_party/WebKit/Source/web/ExternalPopupMenuTest.cpp
+++ b/third_party/WebKit/Source/web/ExternalPopupMenuTest.cpp
@@ -33,7 +33,7 @@
     void SetUp() override
     {
         m_dummyPageHolder = DummyPageHolder::create(IntSize(800, 600));
-        RefPtrWillBeRawPtr<HTMLSelectElement> element = HTMLSelectElement::create(m_dummyPageHolder->document());
+        RawPtr<HTMLSelectElement> element = HTMLSelectElement::create(m_dummyPageHolder->document());
         // Set the 4th an 5th items to have "display: none" property
         element->setInnerHTML("<option><option><option><option style='display:none;'><option style='display:none;'><option><option>", ASSERT_NO_EXCEPTION);
         m_dummyPageHolder->document().body()->appendChild(element.get(), ASSERT_NO_EXCEPTION);
@@ -42,7 +42,7 @@
     }
 
     OwnPtr<DummyPageHolder> m_dummyPageHolder;
-    RefPtrWillBePersistent<HTMLSelectElement> m_ownerElement;
+    Persistent<HTMLSelectElement> m_ownerElement;
 };
 
 TEST_F(ExternalPopupMenuDisplayNoneItemsTest, PopupMenuInfoSizeTest)
diff --git a/third_party/WebKit/Source/web/FrameLoaderClientImpl.cpp b/third_party/WebKit/Source/web/FrameLoaderClientImpl.cpp
index d032b8bb..881f8a6 100644
--- a/third_party/WebKit/Source/web/FrameLoaderClientImpl.cpp
+++ b/third_party/WebKit/Source/web/FrameLoaderClientImpl.cpp
@@ -129,9 +129,9 @@
 {
 }
 
-PassOwnPtrWillBeRawPtr<FrameLoaderClientImpl> FrameLoaderClientImpl::create(WebLocalFrameImpl* frame)
+RawPtr<FrameLoaderClientImpl> FrameLoaderClientImpl::create(WebLocalFrameImpl* frame)
 {
-    return adoptPtrWillBeNoop(new FrameLoaderClientImpl(frame));
+    return new FrameLoaderClientImpl(frame);
 }
 
 FrameLoaderClientImpl::~FrameLoaderClientImpl()
@@ -382,7 +382,7 @@
 {
     // Alert the client that the frame is being detached. This is the last
     // chance we have to communicate with the client.
-    RefPtrWillBeRawPtr<WebLocalFrameImpl> protector(m_webFrame.get());
+    RawPtr<WebLocalFrameImpl> protector(m_webFrame.get());
 
     WebFrameClient* client = m_webFrame->client();
     if (!client)
@@ -734,9 +734,9 @@
         client->didMatchCSS(m_webFrame, WebVector<WebString>(addedSelectors), WebVector<WebString>(removedSelectors));
 }
 
-PassRefPtrWillBeRawPtr<DocumentLoader> FrameLoaderClientImpl::createDocumentLoader(LocalFrame* frame, const ResourceRequest& request, const SubstituteData& data)
+RawPtr<DocumentLoader> FrameLoaderClientImpl::createDocumentLoader(LocalFrame* frame, const ResourceRequest& request, const SubstituteData& data)
 {
-    RefPtrWillBeRawPtr<WebDataSourceImpl> ds = WebDataSourceImpl::create(frame, request, data);
+    RawPtr<WebDataSourceImpl> ds = WebDataSourceImpl::create(frame, request, data);
     if (m_webFrame->client())
         m_webFrame->client()->didCreateDataSource(m_webFrame, ds.get());
     return ds.release();
@@ -768,7 +768,7 @@
     m_webFrame->createFrameView();
 }
 
-PassRefPtrWillBeRawPtr<LocalFrame> FrameLoaderClientImpl::createFrame(
+RawPtr<LocalFrame> FrameLoaderClientImpl::createFrame(
     const FrameLoadRequest& request,
     const AtomicString& name,
     HTMLFrameOwnerElement* ownerElement)
@@ -784,7 +784,7 @@
     return m_webFrame->client()->canCreatePluginWithoutRenderer(mimeType);
 }
 
-PassRefPtrWillBeRawPtr<Widget> FrameLoaderClientImpl::createPlugin(
+RawPtr<Widget> FrameLoaderClientImpl::createPlugin(
     HTMLPlugInElement* element,
     const KURL& url,
     const Vector<String>& paramNames,
@@ -808,7 +808,7 @@
         return nullptr;
 
     // The container takes ownership of the WebPlugin.
-    RefPtrWillBeRawPtr<WebPluginContainerImpl> container =
+    RawPtr<WebPluginContainerImpl> container =
         WebPluginContainerImpl::create(element, webPlugin);
 
     if (!webPlugin->initialize(container.get()))
@@ -1058,7 +1058,7 @@
     return m_webFrame->client()->frameBlameContext();
 }
 
-PassOwnPtrWillBeRawPtr<LinkResource> FrameLoaderClientImpl::createServiceWorkerLinkResource(HTMLLinkElement* owner)
+RawPtr<LinkResource> FrameLoaderClientImpl::createServiceWorkerLinkResource(HTMLLinkElement* owner)
 {
     return ServiceWorkerLinkResource::create(owner);
 }
diff --git a/third_party/WebKit/Source/web/FrameLoaderClientImpl.h b/third_party/WebKit/Source/web/FrameLoaderClientImpl.h
index 542bb739..381ae74 100644
--- a/third_party/WebKit/Source/web/FrameLoaderClientImpl.h
+++ b/third_party/WebKit/Source/web/FrameLoaderClientImpl.h
@@ -44,7 +44,7 @@
 
 class FrameLoaderClientImpl final : public FrameLoaderClient {
 public:
-    static PassOwnPtrWillBeRawPtr<FrameLoaderClientImpl> create(WebLocalFrameImpl*);
+    static RawPtr<FrameLoaderClientImpl> create(WebLocalFrameImpl*);
 
     ~FrameLoaderClientImpl() override;
 
@@ -119,13 +119,13 @@
     void didRunContentWithCertificateErrors(const KURL&, const CString& securityInfo, const WebURL& mainResourceUrl, const CString& mainResourceSecurityInfo) override;
     void didChangePerformanceTiming() override;
     void selectorMatchChanged(const Vector<String>& addedSelectors, const Vector<String>& removedSelectors) override;
-    PassRefPtrWillBeRawPtr<DocumentLoader> createDocumentLoader(LocalFrame*, const ResourceRequest&, const SubstituteData&) override;
+    RawPtr<DocumentLoader> createDocumentLoader(LocalFrame*, const ResourceRequest&, const SubstituteData&) override;
     WTF::String userAgent() override;
     WTF::String doNotTrackValue() override;
     void transitionToCommittedForNewPage() override;
-    PassRefPtrWillBeRawPtr<LocalFrame> createFrame(const FrameLoadRequest&, const WTF::AtomicString& name, HTMLFrameOwnerElement*) override;
+    RawPtr<LocalFrame> createFrame(const FrameLoadRequest&, const WTF::AtomicString& name, HTMLFrameOwnerElement*) override;
     virtual bool canCreatePluginWithoutRenderer(const String& mimeType) const;
-    PassRefPtrWillBeRawPtr<Widget> createPlugin(
+    RawPtr<Widget> createPlugin(
         HTMLPlugInElement*, const KURL&,
         const Vector<WTF::String>&, const Vector<WTF::String>&,
         const WTF::String&, bool loadManually, DetachedPluginPolicy) override;
@@ -184,7 +184,7 @@
 
     BlameContext* frameBlameContext() override;
 
-    PassOwnPtrWillBeRawPtr<LinkResource> createServiceWorkerLinkResource(HTMLLinkElement*) override;
+    RawPtr<LinkResource> createServiceWorkerLinkResource(HTMLLinkElement*) override;
 
 private:
     explicit FrameLoaderClientImpl(WebLocalFrameImpl*);
@@ -193,7 +193,7 @@
 
     // The WebFrame that owns this object and manages its lifetime. Therefore,
     // the web frame object is guaranteed to exist.
-    RawPtrWillBeMember<WebLocalFrameImpl> m_webFrame;
+    Member<WebLocalFrameImpl> m_webFrame;
 
     String m_userAgent;
 };
diff --git a/third_party/WebKit/Source/web/FullscreenController.cpp b/third_party/WebKit/Source/web/FullscreenController.cpp
index 14c1c32f..11b1ac3 100644
--- a/third_party/WebKit/Source/web/FullscreenController.cpp
+++ b/third_party/WebKit/Source/web/FullscreenController.cpp
@@ -45,9 +45,9 @@
 
 namespace blink {
 
-PassOwnPtrWillBeRawPtr<FullscreenController> FullscreenController::create(WebViewImpl* webViewImpl)
+RawPtr<FullscreenController> FullscreenController::create(WebViewImpl* webViewImpl)
 {
-    return adoptPtrWillBeNoop(new FullscreenController(webViewImpl));
+    return new FullscreenController(webViewImpl);
 }
 
 FullscreenController::FullscreenController(WebViewImpl* webViewImpl)
@@ -63,7 +63,7 @@
     if (!m_provisionalFullScreenElement)
         return;
 
-    RefPtrWillBeRawPtr<Element> element = m_provisionalFullScreenElement.release();
+    RawPtr<Element> element = m_provisionalFullScreenElement.release();
     Document& document = element->document();
     m_fullScreenFrame = document.frame();
 
diff --git a/third_party/WebKit/Source/web/FullscreenController.h b/third_party/WebKit/Source/web/FullscreenController.h
index 0a29a85..0b2565a6 100644
--- a/third_party/WebKit/Source/web/FullscreenController.h
+++ b/third_party/WebKit/Source/web/FullscreenController.h
@@ -44,9 +44,9 @@
 class LocalFrame;
 class WebViewImpl;
 
-class FullscreenController final : public NoBaseWillBeGarbageCollected<FullscreenController> {
+class FullscreenController final : public GarbageCollected<FullscreenController> {
 public:
-    static PassOwnPtrWillBeRawPtr<FullscreenController> create(WebViewImpl*);
+    static RawPtr<FullscreenController> create(WebViewImpl*);
 
     void didEnterFullScreen();
     void didExitFullScreen();
@@ -74,10 +74,10 @@
     FloatPoint m_exitFullscreenVisualViewportOffset;
 
     // If set, the WebView is transitioning to fullscreen for this element.
-    RefPtrWillBeMember<Element> m_provisionalFullScreenElement;
+    Member<Element> m_provisionalFullScreenElement;
 
     // If set, the WebView is in fullscreen mode for an element in this frame.
-    RefPtrWillBeMember<LocalFrame> m_fullScreenFrame;
+    Member<LocalFrame> m_fullScreenFrame;
 
     bool m_isCancelingFullScreen;
 };
diff --git a/third_party/WebKit/Source/web/GeolocationClientProxy.h b/third_party/WebKit/Source/web/GeolocationClientProxy.h
index 1089d6f..76528dd 100644
--- a/third_party/WebKit/Source/web/GeolocationClientProxy.h
+++ b/third_party/WebKit/Source/web/GeolocationClientProxy.h
@@ -37,9 +37,9 @@
 
 class GeolocationClientProxy final : public GeolocationClient {
 public:
-    static PassOwnPtrWillBeRawPtr<GeolocationClientProxy> create(WebGeolocationClient* client)
+    static RawPtr<GeolocationClientProxy> create(WebGeolocationClient* client)
     {
-        return adoptPtrWillBeNoop(new GeolocationClientProxy(client));
+        return new GeolocationClientProxy(client);
     }
 
     ~GeolocationClientProxy() override;
@@ -58,7 +58,7 @@
     explicit GeolocationClientProxy(WebGeolocationClient*);
 
     WebGeolocationClient* m_client;
-    PersistentWillBeMember<GeolocationPosition> m_lastPosition;
+    Member<GeolocationPosition> m_lastPosition;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/web/InspectorEmulationAgent.cpp b/third_party/WebKit/Source/web/InspectorEmulationAgent.cpp
index a8aa24b..fa68d774 100644
--- a/third_party/WebKit/Source/web/InspectorEmulationAgent.cpp
+++ b/third_party/WebKit/Source/web/InspectorEmulationAgent.cpp
@@ -21,9 +21,9 @@
 static const char emulatedMedia[] = "emulatedMedia";
 }
 
-PassOwnPtrWillBeRawPtr<InspectorEmulationAgent> InspectorEmulationAgent::create(WebLocalFrameImpl* webLocalFrameImpl, Client* client)
+RawPtr<InspectorEmulationAgent> InspectorEmulationAgent::create(WebLocalFrameImpl* webLocalFrameImpl, Client* client)
 {
-    return adoptPtrWillBeNoop(new InspectorEmulationAgent(webLocalFrameImpl, client));
+    return new InspectorEmulationAgent(webLocalFrameImpl, client);
 }
 
 InspectorEmulationAgent::InspectorEmulationAgent(WebLocalFrameImpl* webLocalFrameImpl, Client* client)
diff --git a/third_party/WebKit/Source/web/InspectorEmulationAgent.h b/third_party/WebKit/Source/web/InspectorEmulationAgent.h
index 87e2168..f3e906b 100644
--- a/third_party/WebKit/Source/web/InspectorEmulationAgent.h
+++ b/third_party/WebKit/Source/web/InspectorEmulationAgent.h
@@ -22,7 +22,7 @@
         virtual void setCPUThrottlingRate(double rate) {}
     };
 
-    static PassOwnPtrWillBeRawPtr<InspectorEmulationAgent> create(WebLocalFrameImpl*, Client*);
+    static RawPtr<InspectorEmulationAgent> create(WebLocalFrameImpl*, Client*);
     ~InspectorEmulationAgent() override;
 
     // protocol::Dispatcher::EmulationCommandHandler implementation.
@@ -43,7 +43,7 @@
     InspectorEmulationAgent(WebLocalFrameImpl*, Client*);
     WebViewImpl* webViewImpl();
 
-    RawPtrWillBeMember<WebLocalFrameImpl> m_webLocalFrameImpl;
+    Member<WebLocalFrameImpl> m_webLocalFrameImpl;
     Client* m_client;
 };
 
diff --git a/third_party/WebKit/Source/web/InspectorOverlay.cpp b/third_party/WebKit/Source/web/InspectorOverlay.cpp
index b53fd0f..a18cd7d 100644
--- a/third_party/WebKit/Source/web/InspectorOverlay.cpp
+++ b/third_party/WebKit/Source/web/InspectorOverlay.cpp
@@ -122,15 +122,15 @@
     }
 
 private:
-    RawPtrWillBeMember<InspectorOverlay> m_overlay;
+    Member<InspectorOverlay> m_overlay;
 };
 
 
 class InspectorOverlay::InspectorOverlayChromeClient final : public EmptyChromeClient {
 public:
-    static PassOwnPtrWillBeRawPtr<InspectorOverlayChromeClient> create(ChromeClient& client, InspectorOverlay& overlay)
+    static RawPtr<InspectorOverlayChromeClient> create(ChromeClient& client, InspectorOverlay& overlay)
     {
-        return adoptPtrWillBeNoop(new InspectorOverlayChromeClient(client, overlay));
+        return new InspectorOverlayChromeClient(client, overlay);
     }
 
     DEFINE_INLINE_VIRTUAL_TRACE()
@@ -172,8 +172,8 @@
         , m_overlay(&overlay)
     { }
 
-    RawPtrWillBeMember<ChromeClient> m_client;
-    RawPtrWillBeMember<InspectorOverlay> m_overlay;
+    Member<ChromeClient> m_client;
+    Member<InspectorOverlay> m_overlay;
 };
 
 
@@ -414,7 +414,7 @@
         return;
 
     String selectors = m_nodeHighlightConfig.selectorList;
-    RefPtrWillBeRawPtr<StaticElementList> elements = nullptr;
+    RawPtr<StaticElementList> elements = nullptr;
     TrackExceptionState exceptionState;
     ContainerNode* queryBase = m_highlightNode->containingShadowRoot();
     if (!queryBase)
@@ -468,7 +468,7 @@
 
     ScriptForbiddenScope::AllowUserAgentScript allowScript;
 
-    DEFINE_STATIC_LOCAL(OwnPtrWillBePersistent<FrameLoaderClient>, dummyFrameLoaderClient, (EmptyFrameLoaderClient::create()));
+    DEFINE_STATIC_LOCAL(Persistent<FrameLoaderClient>, dummyFrameLoaderClient, (EmptyFrameLoaderClient::create()));
     Page::PageClients pageClients;
     fillWithEmptyClients(pageClients);
     ASSERT(!m_overlayChromeClient);
@@ -495,7 +495,7 @@
     // through some non-composited paint function.
     overlaySettings.setAcceleratedCompositingEnabled(false);
 
-    RefPtrWillBeRawPtr<LocalFrame> frame = LocalFrame::create(dummyFrameLoaderClient.get(), &m_overlayPage->frameHost(), 0);
+    RawPtr<LocalFrame> frame = LocalFrame::create(dummyFrameLoaderClient.get(), &m_overlayPage->frameHost(), 0);
     frame->setView(FrameView::create(frame.get()));
     frame->init();
     FrameLoader& loader = frame->loader();
diff --git a/third_party/WebKit/Source/web/InspectorOverlay.h b/third_party/WebKit/Source/web/InspectorOverlay.h
index bc2a614e2..522266d 100644
--- a/third_party/WebKit/Source/web/InspectorOverlay.h
+++ b/third_party/WebKit/Source/web/InspectorOverlay.h
@@ -64,16 +64,15 @@
 }
 
 class InspectorOverlay final
-    : public NoBaseWillBeGarbageCollectedFinalized<InspectorOverlay>
+    : public GarbageCollectedFinalized<InspectorOverlay>
     , public InspectorDOMAgent::Client
     , public InspectorProfilerAgent::Client
     , public InspectorOverlayHost::Listener {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(InspectorOverlay);
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(InspectorOverlay);
+    USING_GARBAGE_COLLECTED_MIXIN(InspectorOverlay);
 public:
-    static PassOwnPtrWillBeRawPtr<InspectorOverlay> create(WebViewImpl* webViewImpl)
+    static RawPtr<InspectorOverlay> create(WebViewImpl* webViewImpl)
     {
-        return adoptPtrWillBeNoop(new InspectorOverlay(webViewImpl));
+        return new InspectorOverlay(webViewImpl);
     }
 
     ~InspectorOverlay() override;
@@ -146,13 +145,13 @@
 
     WebViewImpl* m_webViewImpl;
     String m_pausedInDebuggerMessage;
-    RefPtrWillBeMember<Node> m_highlightNode;
-    RefPtrWillBeMember<Node> m_eventTargetNode;
+    Member<Node> m_highlightNode;
+    Member<Node> m_eventTargetNode;
     InspectorHighlightConfig m_nodeHighlightConfig;
     OwnPtr<FloatQuad> m_highlightQuad;
-    OwnPtrWillBeMember<Page> m_overlayPage;
-    OwnPtrWillBeMember<InspectorOverlayChromeClient> m_overlayChromeClient;
-    RefPtrWillBeMember<InspectorOverlayHost> m_overlayHost;
+    Member<Page> m_overlayPage;
+    Member<InspectorOverlayChromeClient> m_overlayChromeClient;
+    Member<InspectorOverlayHost> m_overlayHost;
     InspectorHighlightConfig m_quadHighlightConfig;
     bool m_drawViewSize;
     bool m_resizeTimerActive;
@@ -161,12 +160,12 @@
     int m_suspendCount;
     bool m_inLayout;
     bool m_needsUpdate;
-    RawPtrWillBeMember<InspectorDebuggerAgent> m_debuggerAgent;
-    RawPtrWillBeMember<InspectorDOMAgent> m_domAgent;
-    RawPtrWillBeMember<InspectorCSSAgent> m_cssAgent;
-    OwnPtrWillBeMember<LayoutEditor> m_layoutEditor;
+    Member<InspectorDebuggerAgent> m_debuggerAgent;
+    Member<InspectorDOMAgent> m_domAgent;
+    Member<InspectorCSSAgent> m_cssAgent;
+    Member<LayoutEditor> m_layoutEditor;
     OwnPtr<PageOverlay> m_pageOverlay;
-    RefPtrWillBeMember<Node> m_hoveredNodeForInspectMode;
+    Member<Node> m_hoveredNodeForInspectMode;
     InspectorDOMAgent::SearchMode m_inspectMode;
     OwnPtr<InspectorHighlightConfig> m_inspectModeHighlightConfig;
 };
diff --git a/third_party/WebKit/Source/web/InspectorRenderingAgent.cpp b/third_party/WebKit/Source/web/InspectorRenderingAgent.cpp
index a7e2aa3..93a3ede8 100644
--- a/third_party/WebKit/Source/web/InspectorRenderingAgent.cpp
+++ b/third_party/WebKit/Source/web/InspectorRenderingAgent.cpp
@@ -21,9 +21,9 @@
 static const char showSizeOnResize[] = "showSizeOnResize";
 }
 
-PassOwnPtrWillBeRawPtr<InspectorRenderingAgent> InspectorRenderingAgent::create(WebLocalFrameImpl* webLocalFrameImpl, InspectorOverlay* overlay)
+RawPtr<InspectorRenderingAgent> InspectorRenderingAgent::create(WebLocalFrameImpl* webLocalFrameImpl, InspectorOverlay* overlay)
 {
-    return adoptPtrWillBeNoop(new InspectorRenderingAgent(webLocalFrameImpl, overlay));
+    return new InspectorRenderingAgent(webLocalFrameImpl, overlay);
 }
 
 InspectorRenderingAgent::InspectorRenderingAgent(WebLocalFrameImpl* webLocalFrameImpl, InspectorOverlay* overlay)
diff --git a/third_party/WebKit/Source/web/InspectorRenderingAgent.h b/third_party/WebKit/Source/web/InspectorRenderingAgent.h
index 8604f41e..5578d3f4 100644
--- a/third_party/WebKit/Source/web/InspectorRenderingAgent.h
+++ b/third_party/WebKit/Source/web/InspectorRenderingAgent.h
@@ -16,7 +16,7 @@
 class InspectorRenderingAgent final : public InspectorBaseAgent<InspectorRenderingAgent, protocol::Frontend::Rendering>, public protocol::Backend::Rendering {
     WTF_MAKE_NONCOPYABLE(InspectorRenderingAgent);
 public:
-    static PassOwnPtrWillBeRawPtr<InspectorRenderingAgent> create(WebLocalFrameImpl*, InspectorOverlay*);
+    static RawPtr<InspectorRenderingAgent> create(WebLocalFrameImpl*, InspectorOverlay*);
 
     // protocol::Dispatcher::PageCommandHandler implementation.
     void setShowPaintRects(ErrorString*, bool show) override;
@@ -36,8 +36,8 @@
     bool compositingEnabled(ErrorString*);
     WebViewImpl* webViewImpl();
 
-    RawPtrWillBeMember<WebLocalFrameImpl> m_webLocalFrameImpl;
-    RawPtrWillBeMember<InspectorOverlay> m_overlay;
+    Member<WebLocalFrameImpl> m_webLocalFrameImpl;
+    Member<InspectorOverlay> m_overlay;
 };
 
 
diff --git a/third_party/WebKit/Source/web/LinkHighlightImpl.h b/third_party/WebKit/Source/web/LinkHighlightImpl.h
index dacd07e9..0fb4b02 100644
--- a/third_party/WebKit/Source/web/LinkHighlightImpl.h
+++ b/third_party/WebKit/Source/web/LinkHighlightImpl.h
@@ -95,7 +95,7 @@
     OwnPtr<WebLayer> m_clipLayer;
     Path m_path;
 
-    RefPtrWillBePersistent<Node> m_node;
+    Persistent<Node> m_node;
     WebViewImpl* m_owningWebViewImpl;
     GraphicsLayer* m_currentGraphicsLayer;
     OwnPtr<CompositorAnimationPlayer> m_compositorPlayer;
diff --git a/third_party/WebKit/Source/web/LinkHighlightImplTest.cpp b/third_party/WebKit/Source/web/LinkHighlightImplTest.cpp
index 05ce3f23..565f132 100644
--- a/third_party/WebKit/Source/web/LinkHighlightImplTest.cpp
+++ b/third_party/WebKit/Source/web/LinkHighlightImplTest.cpp
@@ -226,7 +226,7 @@
     touchEvent.data.tap.height = 30;
 
     Vector<IntRect> goodTargets;
-    WillBeHeapVector<RawPtrWillBeMember<Node>> highlightNodes;
+    HeapVector<Member<Node>> highlightNodes;
     IntRect boundingBox(touchEvent.x - touchEvent.data.tap.width / 2, touchEvent.y - touchEvent.data.tap.height / 2, touchEvent.data.tap.width, touchEvent.data.tap.height);
     findGoodTouchTargets(boundingBox, webViewImpl->mainFrameImpl()->frame(), goodTargets, highlightNodes);
 
diff --git a/third_party/WebKit/Source/web/NavigatorContentUtilsClientImpl.cpp b/third_party/WebKit/Source/web/NavigatorContentUtilsClientImpl.cpp
index 410ba433..b28a424 100644
--- a/third_party/WebKit/Source/web/NavigatorContentUtilsClientImpl.cpp
+++ b/third_party/WebKit/Source/web/NavigatorContentUtilsClientImpl.cpp
@@ -9,9 +9,9 @@
 
 namespace blink {
 
-PassOwnPtrWillBeRawPtr<NavigatorContentUtilsClientImpl> NavigatorContentUtilsClientImpl::create(WebLocalFrameImpl* webFrame)
+RawPtr<NavigatorContentUtilsClientImpl> NavigatorContentUtilsClientImpl::create(WebLocalFrameImpl* webFrame)
 {
-    return adoptPtrWillBeNoop(new NavigatorContentUtilsClientImpl(webFrame));
+    return new NavigatorContentUtilsClientImpl(webFrame);
 }
 
 NavigatorContentUtilsClientImpl::NavigatorContentUtilsClientImpl(WebLocalFrameImpl* webFrame)
diff --git a/third_party/WebKit/Source/web/NavigatorContentUtilsClientImpl.h b/third_party/WebKit/Source/web/NavigatorContentUtilsClientImpl.h
index 13a8e536..edb4689 100644
--- a/third_party/WebKit/Source/web/NavigatorContentUtilsClientImpl.h
+++ b/third_party/WebKit/Source/web/NavigatorContentUtilsClientImpl.h
@@ -15,7 +15,7 @@
 
 class NavigatorContentUtilsClientImpl final : public NavigatorContentUtilsClient {
 public:
-    static PassOwnPtrWillBeRawPtr<NavigatorContentUtilsClientImpl> create(WebLocalFrameImpl*);
+    static RawPtr<NavigatorContentUtilsClientImpl> create(WebLocalFrameImpl*);
     ~NavigatorContentUtilsClientImpl() override { }
 
     void registerProtocolHandler(const String& scheme, const KURL&, const String& title) override;
@@ -27,7 +27,7 @@
 private:
     explicit NavigatorContentUtilsClientImpl(WebLocalFrameImpl*);
 
-    RawPtrWillBeMember<WebLocalFrameImpl> m_webFrame;
+    Member<WebLocalFrameImpl> m_webFrame;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/web/NotificationPermissionClientImpl.cpp b/third_party/WebKit/Source/web/NotificationPermissionClientImpl.cpp
index 9334e3f..885b0b48 100644
--- a/third_party/WebKit/Source/web/NotificationPermissionClientImpl.cpp
+++ b/third_party/WebKit/Source/web/NotificationPermissionClientImpl.cpp
@@ -44,9 +44,9 @@
 
 } // namespace
 
-PassOwnPtrWillBeRawPtr<NotificationPermissionClientImpl> NotificationPermissionClientImpl::create()
+RawPtr<NotificationPermissionClientImpl> NotificationPermissionClientImpl::create()
 {
-    return adoptPtrWillBeNoop(new NotificationPermissionClientImpl());
+    return new NotificationPermissionClientImpl();
 }
 
 NotificationPermissionClientImpl::NotificationPermissionClientImpl()
diff --git a/third_party/WebKit/Source/web/NotificationPermissionClientImpl.h b/third_party/WebKit/Source/web/NotificationPermissionClientImpl.h
index 106c3be..7ec4717 100644
--- a/third_party/WebKit/Source/web/NotificationPermissionClientImpl.h
+++ b/third_party/WebKit/Source/web/NotificationPermissionClientImpl.h
@@ -10,17 +10,17 @@
 
 namespace blink {
 
-class NotificationPermissionClientImpl : public NoBaseWillBeGarbageCollectedFinalized<NotificationPermissionClientImpl>, public NotificationPermissionClient {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(NotificationPermissionClientImpl);
+class NotificationPermissionClientImpl : public GarbageCollectedFinalized<NotificationPermissionClientImpl>, public NotificationPermissionClient {
+    USING_GARBAGE_COLLECTED_MIXIN(NotificationPermissionClientImpl);
 public:
-    static PassOwnPtrWillBeRawPtr<NotificationPermissionClientImpl> create();
+    static RawPtr<NotificationPermissionClientImpl> create();
 
     ~NotificationPermissionClientImpl() override;
 
     // NotificationPermissionClient implementation.
     ScriptPromise requestPermission(ScriptState*, NotificationPermissionCallback*) override;
 
-    // NoBaseWillBeGarbageCollectedFinalized implementation.
+    // GarbageCollectedFinalized implementation.
     DEFINE_INLINE_VIRTUAL_TRACE() { NotificationPermissionClient::trace(visitor); }
 
 private:
diff --git a/third_party/WebKit/Source/web/PopupMenuImpl.cpp b/third_party/WebKit/Source/web/PopupMenuImpl.cpp
index e01f0fc..8a6001f 100644
--- a/third_party/WebKit/Source/web/PopupMenuImpl.cpp
+++ b/third_party/WebKit/Source/web/PopupMenuImpl.cpp
@@ -103,11 +103,11 @@
 } // anonymous namespace
 
 class PopupMenuCSSFontSelector : public CSSFontSelector, private CSSFontSelectorClient {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(PopupMenuCSSFontSelector);
+    USING_GARBAGE_COLLECTED_MIXIN(PopupMenuCSSFontSelector);
 public:
-    static PassRefPtrWillBeRawPtr<PopupMenuCSSFontSelector> create(Document* document, CSSFontSelector* ownerFontSelector)
+    static RawPtr<PopupMenuCSSFontSelector> create(Document* document, CSSFontSelector* ownerFontSelector)
     {
-        return adoptRefWillBeNoop(new PopupMenuCSSFontSelector(document, ownerFontSelector));
+        return new PopupMenuCSSFontSelector(document, ownerFontSelector);
     }
 
     ~PopupMenuCSSFontSelector();
@@ -123,7 +123,7 @@
 
     void fontsNeedUpdate(CSSFontSelector*) override;
 
-    RefPtrWillBeMember<CSSFontSelector> m_ownerFontSelector;
+    Member<CSSFontSelector> m_ownerFontSelector;
 };
 
 PopupMenuCSSFontSelector::PopupMenuCSSFontSelector(Document* document, CSSFontSelector* ownerFontSelector)
@@ -233,9 +233,9 @@
 
 // ----------------------------------------------------------------
 
-PassRefPtrWillBeRawPtr<PopupMenuImpl> PopupMenuImpl::create(ChromeClientImpl* chromeClient, HTMLSelectElement& ownerElement)
+RawPtr<PopupMenuImpl> PopupMenuImpl::create(ChromeClientImpl* chromeClient, HTMLSelectElement& ownerElement)
 {
-    return adoptRefWillBeNoop(new PopupMenuImpl(chromeClient, ownerElement));
+    return new PopupMenuImpl(chromeClient, ownerElement);
 }
 
 PopupMenuImpl::PopupMenuImpl(ChromeClientImpl* chromeClient, HTMLSelectElement& ownerElement)
@@ -273,7 +273,7 @@
     ItemIterationContext context(*ownerStyle, data);
     context.serializeBaseStyle();
     PagePopupClient::addString("children: [\n", data);
-    const WillBeHeapVector<RawPtrWillBeMember<HTMLElement>>& items = ownerElement.listItems();
+    const HeapVector<Member<HTMLElement>>& items = ownerElement.listItems();
     for (; context.m_listIndex < items.size(); ++context.m_listIndex) {
         Element& child = *items[context.m_listIndex];
         if (!isHTMLOptGroupElement(child.parentNode()))
@@ -406,7 +406,7 @@
 {
     ASSERT(m_popup);
     ASSERT(m_ownerElement);
-    RefPtrWillBeRawPtr<PopupMenuImpl> protector(this);
+    RawPtr<PopupMenuImpl> protector(this);
     bool success;
     int listIndex = stringValue.toInt(&success);
     ASSERT(success);
@@ -423,7 +423,7 @@
     // Other browsers dispatch click events before and after showing the popup.
     if (m_ownerElement) {
         PlatformMouseEvent event;
-        RefPtrWillBeRawPtr<Element> owner = &ownerElement();
+        RawPtr<Element> owner = &ownerElement();
         owner->dispatchMouseEvent(event, EventTypeNames::mouseup);
         owner->dispatchMouseEvent(event, EventTypeNames::click);
     }
@@ -442,7 +442,7 @@
 {
     // Clearing m_popup first to prevent from trying to close the popup again.
     m_popup = nullptr;
-    RefPtrWillBeRawPtr<PopupMenuImpl> protector(this);
+    RawPtr<PopupMenuImpl> protector(this);
     if (m_ownerElement)
         m_ownerElement->popupDidHide();
 }
@@ -488,7 +488,7 @@
     if (m_needsUpdate)
         return;
     m_needsUpdate = true;
-    ownerElement().document().postTask(BLINK_FROM_HERE, createSameThreadTask(&PopupMenuImpl::update, PassRefPtrWillBeRawPtr<PopupMenuImpl>(this)));
+    ownerElement().document().postTask(BLINK_FROM_HERE, createSameThreadTask(&PopupMenuImpl::update, RawPtr<PopupMenuImpl>(this)));
 }
 
 void PopupMenuImpl::update()
@@ -512,7 +512,7 @@
     ItemIterationContext context(*m_ownerElement->computedStyle(), data.get());
     context.serializeBaseStyle();
     PagePopupClient::addString("children: [", data.get());
-    const WillBeHeapVector<RawPtrWillBeMember<HTMLElement>>& items = m_ownerElement->listItems();
+    const HeapVector<Member<HTMLElement>>& items = m_ownerElement->listItems();
     for (; context.m_listIndex < items.size(); ++context.m_listIndex) {
         Element& child = *items[context.m_listIndex];
         if (!isHTMLOptGroupElement(child.parentNode()))
diff --git a/third_party/WebKit/Source/web/PopupMenuImpl.h b/third_party/WebKit/Source/web/PopupMenuImpl.h
index 2d6366f..fc655f2 100644
--- a/third_party/WebKit/Source/web/PopupMenuImpl.h
+++ b/third_party/WebKit/Source/web/PopupMenuImpl.h
@@ -20,7 +20,7 @@
 
 class PopupMenuImpl final : public PopupMenu, public PagePopupClient {
 public:
-    static PassRefPtrWillBeRawPtr<PopupMenuImpl> create(ChromeClientImpl*, HTMLSelectElement&);
+    static RawPtr<PopupMenuImpl> create(ChromeClientImpl*, HTMLSelectElement&);
     ~PopupMenuImpl() override;
     DECLARE_VIRTUAL_TRACE();
 
@@ -53,8 +53,8 @@
     Locale& locale() override;
     void didClosePopup() override;
 
-    RawPtrWillBeMember<ChromeClientImpl> m_chromeClient;
-    RawPtrWillBeMember<HTMLSelectElement> m_ownerElement;
+    Member<ChromeClientImpl> m_chromeClient;
+    Member<HTMLSelectElement> m_ownerElement;
     PagePopup* m_popup;
     bool m_needsUpdate;
 };
diff --git a/third_party/WebKit/Source/web/PrerendererClientImpl.h b/third_party/WebKit/Source/web/PrerendererClientImpl.h
index b3dab0f..78b472c 100644
--- a/third_party/WebKit/Source/web/PrerendererClientImpl.h
+++ b/third_party/WebKit/Source/web/PrerendererClientImpl.h
@@ -41,8 +41,8 @@
 class Prerender;
 class WebPrerendererClient;
 
-class PrerendererClientImpl final : public NoBaseWillBeGarbageCollected<PrerendererClientImpl>, public PrerendererClient {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(PrerendererClientImpl);
+class PrerendererClientImpl final : public GarbageCollected<PrerendererClientImpl>, public PrerendererClient {
+    USING_GARBAGE_COLLECTED_MIXIN(PrerendererClientImpl);
     WTF_MAKE_NONCOPYABLE(PrerendererClientImpl);
 public:
     explicit PrerendererClientImpl(WebPrerendererClient*);
diff --git a/third_party/WebKit/Source/web/RemoteFrameClientImpl.cpp b/third_party/WebKit/Source/web/RemoteFrameClientImpl.cpp
index cb741e9..6a38461 100644
--- a/third_party/WebKit/Source/web/RemoteFrameClientImpl.cpp
+++ b/third_party/WebKit/Source/web/RemoteFrameClientImpl.cpp
@@ -40,9 +40,9 @@
 {
 }
 
-PassOwnPtrWillBeRawPtr<RemoteFrameClientImpl> RemoteFrameClientImpl::create(WebRemoteFrameImpl* webFrame)
+RawPtr<RemoteFrameClientImpl> RemoteFrameClientImpl::create(WebRemoteFrameImpl* webFrame)
 {
-    return adoptPtrWillBeNoop(new RemoteFrameClientImpl(webFrame));
+    return new RemoteFrameClientImpl(webFrame);
 }
 
 DEFINE_TRACE(RemoteFrameClientImpl)
@@ -63,7 +63,7 @@
 void RemoteFrameClientImpl::detached(FrameDetachType type)
 {
     // Alert the client that the frame is being detached.
-    RefPtrWillBeRawPtr<WebRemoteFrameImpl> protector(m_webFrame.get());
+    RawPtr<WebRemoteFrameImpl> protector(m_webFrame.get());
 
     WebRemoteFrameClient* client = m_webFrame->client();
     if (!client)
@@ -141,7 +141,7 @@
 void RemoteFrameClientImpl::reload(FrameLoadType loadType, ClientRedirectPolicy clientRedirectPolicy)
 {
     if (m_webFrame->client())
-        m_webFrame->client()->reload(loadType == FrameLoadTypeReloadFromOrigin, clientRedirectPolicy == ClientRedirect);
+        m_webFrame->client()->reload(loadType == FrameLoadTypeReloadBypassingCache, clientRedirectPolicy == ClientRedirect);
 }
 
 unsigned RemoteFrameClientImpl::backForwardLength()
diff --git a/third_party/WebKit/Source/web/RemoteFrameClientImpl.h b/third_party/WebKit/Source/web/RemoteFrameClientImpl.h
index 2dcc200c..cb4165e 100644
--- a/third_party/WebKit/Source/web/RemoteFrameClientImpl.h
+++ b/third_party/WebKit/Source/web/RemoteFrameClientImpl.h
@@ -12,7 +12,7 @@
 
 class RemoteFrameClientImpl final : public RemoteFrameClient {
 public:
-    static PassOwnPtrWillBeRawPtr<RemoteFrameClientImpl> create(WebRemoteFrameImpl*);
+    static RawPtr<RemoteFrameClientImpl> create(WebRemoteFrameImpl*);
 
     DECLARE_VIRTUAL_TRACE();
 
@@ -45,7 +45,7 @@
 private:
     explicit RemoteFrameClientImpl(WebRemoteFrameImpl*);
 
-    RawPtrWillBeMember<WebRemoteFrameImpl> m_webFrame;
+    Member<WebRemoteFrameImpl> m_webFrame;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/web/RemoteFrameOwner.h b/third_party/WebKit/Source/web/RemoteFrameOwner.h
index 5773e94..517b96fd 100644
--- a/third_party/WebKit/Source/web/RemoteFrameOwner.h
+++ b/third_party/WebKit/Source/web/RemoteFrameOwner.h
@@ -16,12 +16,12 @@
 // 1. Allows the local frame's loader to retrieve sandbox flags associated with
 //    its owner element in another process.
 // 2. Trigger a load event on its owner element once it finishes a load.
-class RemoteFrameOwner final : public RefCountedWillBeGarbageCollectedFinalized<RemoteFrameOwner>, public FrameOwner {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(RemoteFrameOwner);
+class RemoteFrameOwner final : public GarbageCollectedFinalized<RemoteFrameOwner>, public FrameOwner {
+    USING_GARBAGE_COLLECTED_MIXIN(RemoteFrameOwner);
 public:
-    static PassRefPtrWillBeRawPtr<RemoteFrameOwner> create(SandboxFlags flags, const WebFrameOwnerProperties& frameOwnerProperties)
+    static RawPtr<RemoteFrameOwner> create(SandboxFlags flags, const WebFrameOwnerProperties& frameOwnerProperties)
     {
-        return adoptRefWillBeNoop(new RemoteFrameOwner(flags, frameOwnerProperties));
+        return new RemoteFrameOwner(flags, frameOwnerProperties);
     }
 
     // FrameOwner overrides:
@@ -47,7 +47,7 @@
 private:
     RemoteFrameOwner(SandboxFlags, const WebFrameOwnerProperties&);
 
-    RawPtrWillBeMember<Frame> m_frame;
+    Member<Frame> m_frame;
     SandboxFlags m_sandboxFlags;
     ScrollbarMode m_scrolling;
     int m_marginWidth;
diff --git a/third_party/WebKit/Source/web/RotationViewportAnchor.h b/third_party/WebKit/Source/web/RotationViewportAnchor.h
index 9d512c5..6aa3130 100644
--- a/third_party/WebKit/Source/web/RotationViewportAnchor.h
+++ b/third_party/WebKit/Source/web/RotationViewportAnchor.h
@@ -51,7 +51,7 @@
     // normalized to the outer viewport size.
     FloatSize m_normalizedVisualViewportOffset;
 
-    RefPtrWillBeMember<Node> m_anchorNode;
+    Member<Node> m_anchorNode;
     LayoutRect m_anchorNodeBounds;
 
     FloatSize m_anchorInInnerViewCoords;
diff --git a/third_party/WebKit/Source/web/ServiceWorkerGlobalScopeClientImpl.cpp b/third_party/WebKit/Source/web/ServiceWorkerGlobalScopeClientImpl.cpp
index ba5b028..b2da136 100644
--- a/third_party/WebKit/Source/web/ServiceWorkerGlobalScopeClientImpl.cpp
+++ b/third_party/WebKit/Source/web/ServiceWorkerGlobalScopeClientImpl.cpp
@@ -38,9 +38,9 @@
 
 namespace blink {
 
-PassOwnPtrWillBeRawPtr<ServiceWorkerGlobalScopeClient> ServiceWorkerGlobalScopeClientImpl::create(WebServiceWorkerContextClient& client)
+RawPtr<ServiceWorkerGlobalScopeClient> ServiceWorkerGlobalScopeClientImpl::create(WebServiceWorkerContextClient& client)
 {
-    return adoptPtrWillBeNoop(new ServiceWorkerGlobalScopeClientImpl(client));
+    return new ServiceWorkerGlobalScopeClientImpl(client);
 }
 
 ServiceWorkerGlobalScopeClientImpl::~ServiceWorkerGlobalScopeClientImpl()
diff --git a/third_party/WebKit/Source/web/ServiceWorkerGlobalScopeClientImpl.h b/third_party/WebKit/Source/web/ServiceWorkerGlobalScopeClientImpl.h
index 2f1f9ce..3a2e4c8 100644
--- a/third_party/WebKit/Source/web/ServiceWorkerGlobalScopeClientImpl.h
+++ b/third_party/WebKit/Source/web/ServiceWorkerGlobalScopeClientImpl.h
@@ -42,11 +42,10 @@
 class WebServiceWorkerResponse;
 class WebURL;
 
-class ServiceWorkerGlobalScopeClientImpl final : public NoBaseWillBeGarbageCollectedFinalized<ServiceWorkerGlobalScopeClientImpl>, public ServiceWorkerGlobalScopeClient {
-    USING_FAST_MALLOC_WILL_BE_REMOVED(ServiceWorkerGlobalScopeClientImpl);
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(ServiceWorkerGlobalScopeClientImpl);
+class ServiceWorkerGlobalScopeClientImpl final : public GarbageCollectedFinalized<ServiceWorkerGlobalScopeClientImpl>, public ServiceWorkerGlobalScopeClient {
+    USING_GARBAGE_COLLECTED_MIXIN(ServiceWorkerGlobalScopeClientImpl);
 public:
-    static PassOwnPtrWillBeRawPtr<ServiceWorkerGlobalScopeClient> create(WebServiceWorkerContextClient&);
+    static RawPtr<ServiceWorkerGlobalScopeClient> create(WebServiceWorkerContextClient&);
     ~ServiceWorkerGlobalScopeClientImpl() override;
 
     void getClient(const WebString&, WebServiceWorkerClientCallbacks*) override;
diff --git a/third_party/WebKit/Source/web/ServiceWorkerGlobalScopeProxy.cpp b/third_party/WebKit/Source/web/ServiceWorkerGlobalScopeProxy.cpp
index 898d22db..c9c4d368 100644
--- a/third_party/WebKit/Source/web/ServiceWorkerGlobalScopeProxy.cpp
+++ b/third_party/WebKit/Source/web/ServiceWorkerGlobalScopeProxy.cpp
@@ -74,9 +74,9 @@
 
 namespace blink {
 
-PassOwnPtrWillBeRawPtr<ServiceWorkerGlobalScopeProxy> ServiceWorkerGlobalScopeProxy::create(WebEmbeddedWorkerImpl& embeddedWorker, Document& document, WebServiceWorkerContextClient& client)
+RawPtr<ServiceWorkerGlobalScopeProxy> ServiceWorkerGlobalScopeProxy::create(WebEmbeddedWorkerImpl& embeddedWorker, Document& document, WebServiceWorkerContextClient& client)
 {
-    return adoptPtrWillBeNoop(new ServiceWorkerGlobalScopeProxy(embeddedWorker, document, client));
+    return new ServiceWorkerGlobalScopeProxy(embeddedWorker, document, client);
 }
 
 ServiceWorkerGlobalScopeProxy::~ServiceWorkerGlobalScopeProxy()
@@ -99,7 +99,7 @@
 void ServiceWorkerGlobalScopeProxy::dispatchActivateEvent(int eventID)
 {
     WaitUntilObserver* observer = WaitUntilObserver::create(workerGlobalScope(), WaitUntilObserver::Activate, eventID);
-    RefPtrWillBeRawPtr<Event> event(ExtendableEvent::create(EventTypeNames::activate, ExtendableEventInit(), observer));
+    RawPtr<Event> event(ExtendableEvent::create(EventTypeNames::activate, ExtendableEventInit(), observer));
     workerGlobalScope()->dispatchExtendableEvent(event.release(), observer);
 }
 
@@ -119,7 +119,7 @@
         source = ServiceWorkerClient::create(client);
     WaitUntilObserver* observer = WaitUntilObserver::create(workerGlobalScope(), WaitUntilObserver::Message, eventID);
 
-    RefPtrWillBeRawPtr<Event> event(ExtendableMessageEvent::create(value, origin, ports, source, observer));
+    RawPtr<Event> event(ExtendableMessageEvent::create(value, origin, ports, source, observer));
     workerGlobalScope()->dispatchExtendableEvent(event.release(), observer);
 }
 
@@ -135,7 +135,7 @@
     ServiceWorker* source = ServiceWorker::from(m_workerGlobalScope->getExecutionContext(), handle.release());
     WaitUntilObserver* observer = WaitUntilObserver::create(workerGlobalScope(), WaitUntilObserver::Message, eventID);
 
-    RefPtrWillBeRawPtr<Event> event(ExtendableMessageEvent::create(value, origin, ports, source, observer));
+    RawPtr<Event> event(ExtendableMessageEvent::create(value, origin, ports, source, observer));
     workerGlobalScope()->dispatchExtendableEvent(event.release(), observer);
 }
 
@@ -158,7 +158,7 @@
 void ServiceWorkerGlobalScopeProxy::dispatchInstallEvent(int eventID)
 {
     WaitUntilObserver* observer = WaitUntilObserver::create(workerGlobalScope(), WaitUntilObserver::Install, eventID);
-    RefPtrWillBeRawPtr<Event> event;
+    RawPtr<Event> event;
     if (RuntimeEnabledFeatures::foreignFetchEnabled())
         event = InstallEvent::create(EventTypeNames::install, ExtendableEventInit(), observer);
     else
@@ -180,7 +180,7 @@
     eventInit.setNotification(Notification::create(workerGlobalScope(), notificationID, data, true /* showing */));
     if (0 <= actionIndex && actionIndex < static_cast<int>(data.actions.size()))
         eventInit.setAction(data.actions[actionIndex].action);
-    RefPtrWillBeRawPtr<Event> event(NotificationEvent::create(EventTypeNames::notificationclick, eventInit, observer));
+    RawPtr<Event> event(NotificationEvent::create(EventTypeNames::notificationclick, eventInit, observer));
     workerGlobalScope()->dispatchExtendableEvent(event.release(), observer);
 }
 
@@ -190,14 +190,14 @@
     NotificationEventInit eventInit;
     eventInit.setAction(WTF::String()); // initialize as null.
     eventInit.setNotification(Notification::create(workerGlobalScope(), notificationID, data, false /* showing */));
-    RefPtrWillBeRawPtr<Event> event(NotificationEvent::create(EventTypeNames::notificationclose, eventInit, observer));
+    RawPtr<Event> event(NotificationEvent::create(EventTypeNames::notificationclose, eventInit, observer));
     workerGlobalScope()->dispatchExtendableEvent(event.release(), observer);
 }
 
 void ServiceWorkerGlobalScopeProxy::dispatchPushEvent(int eventID, const WebString& data)
 {
     WaitUntilObserver* observer = WaitUntilObserver::create(workerGlobalScope(), WaitUntilObserver::Push, eventID);
-    RefPtrWillBeRawPtr<Event> event(PushEvent::create(EventTypeNames::push, PushMessageData::create(data), observer));
+    RawPtr<Event> event(PushEvent::create(EventTypeNames::push, PushMessageData::create(data), observer));
     workerGlobalScope()->dispatchExtendableEvent(event.release(), observer);
 }
 
@@ -215,7 +215,7 @@
         return;
     }
     WaitUntilObserver* observer = WaitUntilObserver::create(workerGlobalScope(), WaitUntilObserver::Sync, eventID);
-    RefPtrWillBeRawPtr<Event> event(SyncEvent::create(EventTypeNames::sync, tag, lastChance == IsLastChance, observer));
+    RawPtr<Event> event(SyncEvent::create(EventTypeNames::sync, tag, lastChance == IsLastChance, observer));
     workerGlobalScope()->dispatchExtendableEvent(event.release(), observer);
 }
 
@@ -224,7 +224,7 @@
     MessagePortArray* ports = MessagePort::toMessagePortArray(workerGlobalScope(), webChannels);
     WebSerializedScriptValue value = WebSerializedScriptValue::fromString(message);
     // FIXME: Have proper source for this MessageEvent.
-    RefPtrWillBeRawPtr<MessageEvent> event = MessageEvent::create(ports, value, webClient.origin.string());
+    RawPtr<MessageEvent> event = MessageEvent::create(ports, value, webClient.origin.string());
     event->setType(EventTypeNames::crossoriginmessage);
     workerGlobalScope()->dispatchEvent(event);
 }
@@ -234,7 +234,7 @@
     client().reportException(errorMessage, lineNumber, columnNumber, sourceURL);
 }
 
-void ServiceWorkerGlobalScopeProxy::reportConsoleMessage(PassRefPtrWillBeRawPtr<ConsoleMessage> consoleMessage)
+void ServiceWorkerGlobalScopeProxy::reportConsoleMessage(RawPtr<ConsoleMessage> consoleMessage)
 {
     client().reportConsoleMessage(consoleMessage->source(), consoleMessage->level(), consoleMessage->message(), consoleMessage->lineNumber(), consoleMessage->url());
 }
@@ -325,7 +325,7 @@
     eventInit.setRequest(request);
     eventInit.setClientId(webRequest.isMainResourceLoad() ? WebString() : webRequest.clientId());
     eventInit.setIsReload(webRequest.isReload());
-    RefPtrWillBeRawPtr<FetchEvent> fetchEvent(FetchEvent::create(eventTypeName, eventInit, observer));
+    RawPtr<FetchEvent> fetchEvent(FetchEvent::create(eventTypeName, eventInit, observer));
     DispatchEventResult dispatchResult = workerGlobalScope()->dispatchEvent(fetchEvent.release());
     observer->didDispatchEvent(dispatchResult);
 }
diff --git a/third_party/WebKit/Source/web/ServiceWorkerGlobalScopeProxy.h b/third_party/WebKit/Source/web/ServiceWorkerGlobalScopeProxy.h
index a57cb5c8..8a84d698 100644
--- a/third_party/WebKit/Source/web/ServiceWorkerGlobalScopeProxy.h
+++ b/third_party/WebKit/Source/web/ServiceWorkerGlobalScopeProxy.h
@@ -61,13 +61,12 @@
 // workerThreadTerminated() is called by its corresponding
 // WorkerGlobalScope.
 class ServiceWorkerGlobalScopeProxy final
-    : public NoBaseWillBeGarbageCollectedFinalized<ServiceWorkerGlobalScopeProxy>
+    : public GarbageCollectedFinalized<ServiceWorkerGlobalScopeProxy>
     , public WebServiceWorkerContextProxy
     , public WorkerReportingProxy {
     WTF_MAKE_NONCOPYABLE(ServiceWorkerGlobalScopeProxy);
-    USING_FAST_MALLOC_WILL_BE_REMOVED(ServiceWorkerGlobalScopeProxy);
 public:
-    static PassOwnPtrWillBeRawPtr<ServiceWorkerGlobalScopeProxy> create(WebEmbeddedWorkerImpl&, Document&, WebServiceWorkerContextClient&);
+    static RawPtr<ServiceWorkerGlobalScopeProxy> create(WebEmbeddedWorkerImpl&, Document&, WebServiceWorkerContextClient&);
     ~ServiceWorkerGlobalScopeProxy() override;
 
     // WebServiceWorkerContextProxy overrides:
@@ -89,7 +88,7 @@
 
     // WorkerReportingProxy overrides:
     void reportException(const String& errorMessage, int lineNumber, int columnNumber, const String& sourceURL, int exceptionId) override;
-    void reportConsoleMessage(PassRefPtrWillBeRawPtr<ConsoleMessage>) override;
+    void reportConsoleMessage(RawPtr<ConsoleMessage>) override;
     void postMessageToPageInspector(const String&) override;
     void postWorkerConsoleAgentEnabled() override { }
     void didEvaluateWorkerScript(bool success) override;
@@ -120,11 +119,11 @@
     // Non-null until the WebEmbeddedWorkerImpl explicitly detach()es
     // as part of its finalization.
     WebEmbeddedWorkerImpl* m_embeddedWorker;
-    RawPtrWillBeMember<Document> m_document;
+    Member<Document> m_document;
 
     WebServiceWorkerContextClient* m_client;
 
-    RawPtrWillBeMember<ServiceWorkerGlobalScope> m_workerGlobalScope;
+    Member<ServiceWorkerGlobalScope> m_workerGlobalScope;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/web/SpellCheckerClientImpl.cpp b/third_party/WebKit/Source/web/SpellCheckerClientImpl.cpp
index c00c22a..25d322f 100644
--- a/third_party/WebKit/Source/web/SpellCheckerClientImpl.cpp
+++ b/third_party/WebKit/Source/web/SpellCheckerClientImpl.cpp
@@ -137,7 +137,7 @@
         *misspellingLength = spellLength;
 }
 
-void SpellCheckerClientImpl::requestCheckingOfString(PassRefPtrWillBeRawPtr<TextCheckingRequest> request)
+void SpellCheckerClientImpl::requestCheckingOfString(RawPtr<TextCheckingRequest> request)
 {
     if (m_webView->spellCheckClient()) {
         const String& text = request->data().text();
diff --git a/third_party/WebKit/Source/web/SpellCheckerClientImpl.h b/third_party/WebKit/Source/web/SpellCheckerClientImpl.h
index 4755b19..81e47191 100644
--- a/third_party/WebKit/Source/web/SpellCheckerClientImpl.h
+++ b/third_party/WebKit/Source/web/SpellCheckerClientImpl.h
@@ -53,7 +53,7 @@
     void updateSpellingUIWithMisspelledWord(const String&) override;
     void showSpellingUI(bool show) override;
     bool spellingUIIsShowing() override;
-    void requestCheckingOfString(PassRefPtrWillBeRawPtr<TextCheckingRequest>) override;
+    void requestCheckingOfString(RawPtr<TextCheckingRequest>) override;
 
     TextCheckerClient& textChecker() override { return *this; }
 
diff --git a/third_party/WebKit/Source/web/StorageQuotaClientImpl.h b/third_party/WebKit/Source/web/StorageQuotaClientImpl.h
index a0373148..37f4291a 100644
--- a/third_party/WebKit/Source/web/StorageQuotaClientImpl.h
+++ b/third_party/WebKit/Source/web/StorageQuotaClientImpl.h
@@ -36,12 +36,12 @@
 
 namespace blink {
 
-class StorageQuotaClientImpl : public NoBaseWillBeGarbageCollectedFinalized<StorageQuotaClientImpl>, public StorageQuotaClient {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(StorageQuotaClientImpl);
+class StorageQuotaClientImpl : public GarbageCollectedFinalized<StorageQuotaClientImpl>, public StorageQuotaClient {
+    USING_GARBAGE_COLLECTED_MIXIN(StorageQuotaClientImpl);
 public:
-    static PassOwnPtrWillBeRawPtr<StorageQuotaClientImpl> create()
+    static RawPtr<StorageQuotaClientImpl> create()
     {
-        return adoptPtrWillBeNoop(new StorageQuotaClientImpl());
+        return new StorageQuotaClientImpl();
     }
 
     ~StorageQuotaClientImpl() override;
diff --git a/third_party/WebKit/Source/web/SuspendableScriptExecutor.cpp b/third_party/WebKit/Source/web/SuspendableScriptExecutor.cpp
index 451911c..fbd3ce7 100644
--- a/third_party/WebKit/Source/web/SuspendableScriptExecutor.cpp
+++ b/third_party/WebKit/Source/web/SuspendableScriptExecutor.cpp
@@ -14,7 +14,7 @@
 
 namespace blink {
 
-void SuspendableScriptExecutor::createAndRun(LocalFrame* frame, int worldID, const WillBeHeapVector<ScriptSourceCode>& sources, int extensionGroup, bool userGesture, WebScriptExecutionCallback* callback)
+void SuspendableScriptExecutor::createAndRun(LocalFrame* frame, int worldID, const HeapVector<ScriptSourceCode>& sources, int extensionGroup, bool userGesture, WebScriptExecutionCallback* callback)
 {
     SuspendableScriptExecutor* executor = new SuspendableScriptExecutor(frame, worldID, sources, extensionGroup, userGesture, callback);
     executor->run();
@@ -27,7 +27,7 @@
     dispose();
 }
 
-SuspendableScriptExecutor::SuspendableScriptExecutor(LocalFrame* frame, int worldID, const WillBeHeapVector<ScriptSourceCode>& sources, int extensionGroup, bool userGesture, WebScriptExecutionCallback* callback)
+SuspendableScriptExecutor::SuspendableScriptExecutor(LocalFrame* frame, int worldID, const HeapVector<ScriptSourceCode>& sources, int extensionGroup, bool userGesture, WebScriptExecutionCallback* callback)
     : SuspendableTimer(frame->document())
     , m_frame(frame)
     , m_sources(sources)
diff --git a/third_party/WebKit/Source/web/SuspendableScriptExecutor.h b/third_party/WebKit/Source/web/SuspendableScriptExecutor.h
index b0b4d7a43..efeea11 100644
--- a/third_party/WebKit/Source/web/SuspendableScriptExecutor.h
+++ b/third_party/WebKit/Source/web/SuspendableScriptExecutor.h
@@ -16,9 +16,9 @@
 class WebScriptExecutionCallback;
 
 class SuspendableScriptExecutor final : public GarbageCollectedFinalized<SuspendableScriptExecutor>, public SuspendableTimer {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(SuspendableScriptExecutor);
+    USING_GARBAGE_COLLECTED_MIXIN(SuspendableScriptExecutor);
 public:
-    static void createAndRun(LocalFrame*, int worldID, const WillBeHeapVector<ScriptSourceCode>& sources, int extensionGroup, bool userGesture, WebScriptExecutionCallback*);
+    static void createAndRun(LocalFrame*, int worldID, const HeapVector<ScriptSourceCode>& sources, int extensionGroup, bool userGesture, WebScriptExecutionCallback*);
     ~SuspendableScriptExecutor() override;
 
     void contextDestroyed() override;
@@ -26,7 +26,7 @@
     DECLARE_VIRTUAL_TRACE();
 
 private:
-    SuspendableScriptExecutor(LocalFrame*, int worldID, const WillBeHeapVector<ScriptSourceCode>& sources, int extensionGroup, bool userGesture, WebScriptExecutionCallback*);
+    SuspendableScriptExecutor(LocalFrame*, int worldID, const HeapVector<ScriptSourceCode>& sources, int extensionGroup, bool userGesture, WebScriptExecutionCallback*);
 
     void fired() override;
 
@@ -34,8 +34,8 @@
     void executeAndDestroySelf();
     void dispose();
 
-    RefPtrWillBeMember<LocalFrame> m_frame;
-    WillBeHeapVector<ScriptSourceCode> m_sources;
+    Member<LocalFrame> m_frame;
+    HeapVector<ScriptSourceCode> m_sources;
     WebScriptExecutionCallback* m_callback;
 
     SelfKeepAlive<SuspendableScriptExecutor> m_keepAlive;
diff --git a/third_party/WebKit/Source/web/TextFinder.cpp b/third_party/WebKit/Source/web/TextFinder.cpp
index 2b239c6..8cc306a 100644
--- a/third_party/WebKit/Source/web/TextFinder.cpp
+++ b/third_party/WebKit/Source/web/TextFinder.cpp
@@ -58,7 +58,7 @@
 
 namespace blink {
 
-TextFinder::FindMatch::FindMatch(PassRefPtrWillBeRawPtr<Range> range, int ordinal)
+TextFinder::FindMatch::FindMatch(RawPtr<Range> range, int ordinal)
     : m_range(range)
     , m_ordinal(ordinal)
 {
@@ -69,11 +69,11 @@
     visitor->trace(m_range);
 }
 
-class TextFinder::DeferredScopeStringMatches : public NoBaseWillBeGarbageCollectedFinalized<TextFinder::DeferredScopeStringMatches> {
+class TextFinder::DeferredScopeStringMatches : public GarbageCollectedFinalized<TextFinder::DeferredScopeStringMatches> {
 public:
-    static PassOwnPtrWillBeRawPtr<DeferredScopeStringMatches> create(TextFinder* textFinder, int identifier, const WebString& searchText, const WebFindOptions& options, bool reset)
+    static RawPtr<DeferredScopeStringMatches> create(TextFinder* textFinder, int identifier, const WebString& searchText, const WebFindOptions& options, bool reset)
     {
-        return adoptPtrWillBeNoop(new DeferredScopeStringMatches(textFinder, identifier, searchText, options, reset));
+        return new DeferredScopeStringMatches(textFinder, identifier, searchText, options, reset);
     }
 
     DEFINE_INLINE_TRACE()
@@ -105,7 +105,7 @@
     }
 
     Timer<DeferredScopeStringMatches> m_timer;
-    RawPtrWillBeMember<TextFinder> m_textFinder;
+    Member<TextFinder> m_textFinder;
     const int m_identifier;
     const WebString m_searchText;
     const WebFindOptions m_options;
@@ -313,7 +313,7 @@
             // Not found.
             break;
         }
-        RefPtrWillBeRawPtr<Range> resultRange = Range::create(result.document(), toPositionInDOMTree(result.startPosition()), toPositionInDOMTree(result.endPosition()));
+        RawPtr<Range> resultRange = Range::create(result.document(), toPositionInDOMTree(result.startPosition()), toPositionInDOMTree(result.endPosition()));
         if (resultRange->collapsed()) {
             // resultRange will be collapsed if the matched text spans over multiple TreeScopes.
             // FIXME: Show such matches to users.
@@ -510,7 +510,7 @@
 
     // Remove any invalid matches from the cache.
     if (deadMatches) {
-        WillBeHeapVector<FindMatch> filteredMatches;
+        HeapVector<FindMatch> filteredMatches;
         filteredMatches.reserveCapacity(m_findMatchesCache.size() - deadMatches);
 
         for (const FindMatch& match : m_findMatchesCache) {
@@ -603,7 +603,7 @@
 {
     ASSERT_WITH_SECURITY_IMPLICATION(index < m_findMatchesCache.size());
 
-    RefPtrWillBeRawPtr<Range> range = m_findMatchesCache[index].m_range;
+    RawPtr<Range> range = m_findMatchesCache[index].m_range;
     if (!range->boundaryPointsValid() || !range->startContainer()->inDocument())
         return -1;
 
@@ -650,9 +650,9 @@
     return ordinalOfFirstMatch() + m_activeMatchIndexInCurrentFrame + 1;
 }
 
-PassOwnPtrWillBeRawPtr<TextFinder> TextFinder::create(WebLocalFrameImpl& ownerFrame)
+RawPtr<TextFinder> TextFinder::create(WebLocalFrameImpl& ownerFrame)
 {
-    return adoptPtrWillBeNoop(new TextFinder(ownerFrame));
+    return new TextFinder(ownerFrame);
 }
 
 TextFinder::TextFinder(WebLocalFrameImpl& ownerFrame)
diff --git a/third_party/WebKit/Source/web/TextFinder.h b/third_party/WebKit/Source/web/TextFinder.h
index dc00ee4..587bf7b2 100644
--- a/third_party/WebKit/Source/web/TextFinder.h
+++ b/third_party/WebKit/Source/web/TextFinder.h
@@ -52,10 +52,10 @@
 
 template <typename T> class WebVector;
 
-class WEB_EXPORT TextFinder final : public NoBaseWillBeGarbageCollectedFinalized<TextFinder> {
+class WEB_EXPORT TextFinder final : public GarbageCollectedFinalized<TextFinder> {
     WTF_MAKE_NONCOPYABLE(TextFinder);
 public:
-    static PassOwnPtrWillBeRawPtr<TextFinder> create(WebLocalFrameImpl& ownerFrame);
+    static RawPtr<TextFinder> create(WebLocalFrameImpl& ownerFrame);
 
     bool find(
         int identifier, const WebString& searchText, const WebFindOptions&,
@@ -94,11 +94,11 @@
     class FindMatch {
         DISALLOW_NEW_EXCEPT_PLACEMENT_NEW();
     public:
-        FindMatch(PassRefPtrWillBeRawPtr<Range>, int ordinal);
+        FindMatch(RawPtr<Range>, int ordinal);
 
         DECLARE_TRACE();
 
-        RefPtrWillBeMember<Range> m_range;
+        Member<Range> m_range;
 
         // 1-based index within this frame.
         int m_ordinal;
@@ -205,14 +205,14 @@
     // Returns the ordinal of the first match in the owner frame.
     int ordinalOfFirstMatch() const;
 
-    RawPtrWillBeMember<WebLocalFrameImpl> m_ownerFrame;
+    Member<WebLocalFrameImpl> m_ownerFrame;
 
     // A way for the main frame to keep track of which frame has an active
     // match. Should be 0 for all other frames.
-    RawPtrWillBeMember<WebLocalFrameImpl> m_currentActiveMatchFrame;
+    Member<WebLocalFrameImpl> m_currentActiveMatchFrame;
 
     // The range of the active match for the current frame.
-    RefPtrWillBeMember<Range> m_activeMatch;
+    Member<Range> m_activeMatch;
 
     // The index of the active match for the current frame.
     int m_activeMatchIndexInCurrentFrame;
@@ -222,7 +222,7 @@
     //
     // This range is collapsed to the end position of the last successful
     // search; the new search should start from this position.
-    RefPtrWillBeMember<Range> m_resumeScopingFromRange;
+    Member<Range> m_resumeScopingFromRange;
 
     // Keeps track of the last string this frame searched for. This is used for
     // short-circuiting searches in the following scenarios: When a frame has
@@ -254,14 +254,14 @@
     int m_nextInvalidateAfter;
 
     // A list of all of the pending calls to scopeStringMatches.
-    WillBeHeapVector<OwnPtrWillBeMember<DeferredScopeStringMatches>> m_deferredScopingWork;
+    HeapVector<Member<DeferredScopeStringMatches>> m_deferredScopingWork;
 
     // Version number incremented on the main frame only whenever the document
     // find-in-page match markers change. It should be 0 for all other frames.
     int m_findMatchMarkersVersion;
 
     // Local cache of the find match markers currently displayed for this frame.
-    WillBeHeapVector<FindMatch> m_findMatchesCache;
+    HeapVector<FindMatch> m_findMatchesCache;
 
     // Contents size when find-in-page match rects were last computed for this
     // frame's cache.
diff --git a/third_party/WebKit/Source/web/ValidationMessageClientImpl.cpp b/third_party/WebKit/Source/web/ValidationMessageClientImpl.cpp
index cc1399d..34c5944 100644
--- a/third_party/WebKit/Source/web/ValidationMessageClientImpl.cpp
+++ b/third_party/WebKit/Source/web/ValidationMessageClientImpl.cpp
@@ -47,9 +47,9 @@
 {
 }
 
-PassOwnPtrWillBeRawPtr<ValidationMessageClientImpl> ValidationMessageClientImpl::create(WebViewImpl& webView)
+RawPtr<ValidationMessageClientImpl> ValidationMessageClientImpl::create(WebViewImpl& webView)
 {
-    return adoptPtrWillBeNoop(new ValidationMessageClientImpl(webView));
+    return new ValidationMessageClientImpl(webView);
 }
 
 ValidationMessageClientImpl::~ValidationMessageClientImpl()
diff --git a/third_party/WebKit/Source/web/ValidationMessageClientImpl.h b/third_party/WebKit/Source/web/ValidationMessageClientImpl.h
index 7d829cd2..52cd159 100644
--- a/third_party/WebKit/Source/web/ValidationMessageClientImpl.h
+++ b/third_party/WebKit/Source/web/ValidationMessageClientImpl.h
@@ -37,10 +37,10 @@
 class FrameView;
 class WebViewImpl;
 
-class ValidationMessageClientImpl final : public NoBaseWillBeGarbageCollectedFinalized<ValidationMessageClientImpl>, public ValidationMessageClient {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(ValidationMessageClientImpl);
+class ValidationMessageClientImpl final : public GarbageCollectedFinalized<ValidationMessageClientImpl>, public ValidationMessageClient {
+    USING_GARBAGE_COLLECTED_MIXIN(ValidationMessageClientImpl);
 public:
-    static PassOwnPtrWillBeRawPtr<ValidationMessageClientImpl> create(WebViewImpl&);
+    static RawPtr<ValidationMessageClientImpl> create(WebViewImpl&);
     ~ValidationMessageClientImpl() override;
 
     DECLARE_VIRTUAL_TRACE();
@@ -57,7 +57,7 @@
     void willBeDestroyed() override;
 
     WebViewImpl& m_webView;
-    RawPtrWillBeMember<const Element> m_currentAnchor;
+    Member<const Element> m_currentAnchor;
     String m_message;
     IntRect m_lastAnchorRectInScreen;
     float m_lastPageScaleFactor;
diff --git a/third_party/WebKit/Source/web/ViewportAnchor.h b/third_party/WebKit/Source/web/ViewportAnchor.h
index 0726c17..187aaa1 100644
--- a/third_party/WebKit/Source/web/ViewportAnchor.h
+++ b/third_party/WebKit/Source/web/ViewportAnchor.h
@@ -51,8 +51,8 @@
     {
     }
 
-    RawPtrWillBeMember<FrameView> m_rootFrameView;
-    RawPtrWillBeMember<VisualViewport> m_visualViewport;
+    Member<FrameView> m_rootFrameView;
+    Member<VisualViewport> m_visualViewport;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/web/WebDOMEvent.cpp b/third_party/WebKit/Source/web/WebDOMEvent.cpp
index 19e08dc..fba00fff 100644
--- a/third_party/WebKit/Source/web/WebDOMEvent.cpp
+++ b/third_party/WebKit/Source/web/WebDOMEvent.cpp
@@ -45,17 +45,17 @@
     m_private = other.m_private;
 }
 
-void WebDOMEvent::assign(const PassRefPtrWillBeRawPtr<Event>& event)
+void WebDOMEvent::assign(const RawPtr<Event>& event)
 {
     m_private = event;
 }
 
-WebDOMEvent::WebDOMEvent(const PassRefPtrWillBeRawPtr<Event>& event)
+WebDOMEvent::WebDOMEvent(const RawPtr<Event>& event)
     : m_private(event)
 {
 }
 
-WebDOMEvent::operator PassRefPtrWillBeRawPtr<Event>() const
+WebDOMEvent::operator RawPtr<Event>() const
 {
     return m_private.get();
 }
diff --git a/third_party/WebKit/Source/web/WebDOMMediaStreamTrack.cpp b/third_party/WebKit/Source/web/WebDOMMediaStreamTrack.cpp
index 5df8120d..58ec9d4 100644
--- a/third_party/WebKit/Source/web/WebDOMMediaStreamTrack.cpp
+++ b/third_party/WebKit/Source/web/WebDOMMediaStreamTrack.cpp
@@ -35,7 +35,7 @@
 
 namespace blink {
 
-WebDOMMediaStreamTrack::WebDOMMediaStreamTrack(PassRefPtrWillBeRawPtr<MediaStreamTrack> track)
+WebDOMMediaStreamTrack::WebDOMMediaStreamTrack(RawPtr<MediaStreamTrack> track)
     : m_private(track)
 {
 }
diff --git a/third_party/WebKit/Source/web/WebDOMMessageEvent.cpp b/third_party/WebKit/Source/web/WebDOMMessageEvent.cpp
index 15e8236..d16262a 100644
--- a/third_party/WebKit/Source/web/WebDOMMessageEvent.cpp
+++ b/third_party/WebKit/Source/web/WebDOMMessageEvent.cpp
@@ -51,7 +51,7 @@
         window = sourceFrame->toImplBase()->frame()->domWindow();
     MessagePortArray* ports = nullptr;
     if (!targetDocument.isNull()) {
-        RefPtrWillBeRawPtr<Document> coreDocument = PassRefPtrWillBeRawPtr<Document>(targetDocument);
+        RawPtr<Document> coreDocument = RawPtr<Document>(targetDocument);
         ports = MessagePort::toMessagePortArray(coreDocument.get(), channels);
     }
     // Use an empty array for |ports| when it is null because this function
diff --git a/third_party/WebKit/Source/web/WebDataSourceImpl.cpp b/third_party/WebKit/Source/web/WebDataSourceImpl.cpp
index 658656ee..03b0c52 100644
--- a/third_party/WebKit/Source/web/WebDataSourceImpl.cpp
+++ b/third_party/WebKit/Source/web/WebDataSourceImpl.cpp
@@ -37,9 +37,9 @@
 
 namespace blink {
 
-PassRefPtrWillBeRawPtr<WebDataSourceImpl> WebDataSourceImpl::create(LocalFrame* frame, const ResourceRequest& request, const SubstituteData& data)
+RawPtr<WebDataSourceImpl> WebDataSourceImpl::create(LocalFrame* frame, const ResourceRequest& request, const SubstituteData& data)
 {
-    return adoptRefWillBeNoop(new WebDataSourceImpl(frame, request, data));
+    return new WebDataSourceImpl(frame, request, data);
 }
 
 const WebURLRequest& WebDataSourceImpl::originalRequest() const
@@ -143,7 +143,7 @@
 
 void WebDataSourceImpl::detachFromFrame()
 {
-    RefPtrWillBeRawPtr<DocumentLoader> protect(this);
+    RawPtr<DocumentLoader> protect(this);
 
     DocumentLoader::detachFromFrame();
     m_extraData.clear();
diff --git a/third_party/WebKit/Source/web/WebDataSourceImpl.h b/third_party/WebKit/Source/web/WebDataSourceImpl.h
index 035385fb..5cacb5b 100644
--- a/third_party/WebKit/Source/web/WebDataSourceImpl.h
+++ b/third_party/WebKit/Source/web/WebDataSourceImpl.h
@@ -45,7 +45,7 @@
 
 class WebDataSourceImpl final : public DocumentLoader, public WebDataSource {
 public:
-    static PassRefPtrWillBeRawPtr<WebDataSourceImpl> create(LocalFrame*, const ResourceRequest&, const SubstituteData&);
+    static RawPtr<WebDataSourceImpl> create(LocalFrame*, const ResourceRequest&, const SubstituteData&);
 
     static WebDataSourceImpl* fromDocumentLoader(DocumentLoader* loader)
     {
diff --git a/third_party/WebKit/Source/web/WebDevToolsAgentImpl.cpp b/third_party/WebKit/Source/web/WebDevToolsAgentImpl.cpp
index 893809f..4fe3913 100644
--- a/third_party/WebKit/Source/web/WebDevToolsAgentImpl.cpp
+++ b/third_party/WebKit/Source/web/WebDevToolsAgentImpl.cpp
@@ -178,7 +178,7 @@
         agent->flushPendingProtocolNotifications();
 
         Vector<WebViewImpl*> views;
-        WillBeHeapVector<RawPtrWillBeMember<WebFrameWidgetImpl>> widgets;
+        HeapVector<Member<WebFrameWidgetImpl>> widgets;
 
         // 1. Disable input events.
         const HashSet<WebViewImpl*>& viewImpls = WebViewImpl::allInstances();
@@ -218,7 +218,7 @@
                 (*it)->setIgnoreInputEvents(false);
             }
         }
-        for (WillBeHeapVector<RawPtrWillBeMember<WebFrameWidgetImpl>>::iterator it = widgets.begin(); it != widgets.end(); ++it) {
+        for (HeapVector<Member<WebFrameWidgetImpl>>::iterator it = widgets.begin(); it != widgets.end(); ++it) {
             if (m_frozenWidgets.contains(*it)) {
                 // The widget was not closed during the dispatch.
                 (*it)->setIgnoreInputEvents(false);
@@ -265,7 +265,7 @@
 ClientMessageLoopAdapter* ClientMessageLoopAdapter::s_instance = nullptr;
 
 // static
-PassOwnPtrWillBeRawPtr<WebDevToolsAgentImpl> WebDevToolsAgentImpl::create(WebLocalFrameImpl* frame, WebDevToolsAgentClient* client)
+RawPtr<WebDevToolsAgentImpl> WebDevToolsAgentImpl::create(WebLocalFrameImpl* frame, WebDevToolsAgentClient* client)
 {
     WebViewImpl* view = frame->viewImpl();
     // TODO(dgozman): sometimes view->mainFrameImpl() does return null, even though |frame| is meant to be main frame.
@@ -297,7 +297,7 @@
 WebDevToolsAgentImpl::WebDevToolsAgentImpl(
     WebLocalFrameImpl* webLocalFrameImpl,
     WebDevToolsAgentClient* client,
-    PassOwnPtrWillBeRawPtr<InspectorOverlay> overlay)
+    RawPtr<InspectorOverlay> overlay)
     : m_client(client)
     , m_webLocalFrameImpl(webLocalFrameImpl)
     , m_attached(false)
@@ -388,27 +388,27 @@
     MainThreadDebugger* mainThreadDebugger = MainThreadDebugger::instance();
     v8::Isolate* isolate = V8PerIsolateData::mainThreadIsolate();
 
-    OwnPtrWillBeRawPtr<InspectorInspectorAgent> inspectorAgent = InspectorInspectorAgent::create();
+    RawPtr<InspectorInspectorAgent> inspectorAgent = InspectorInspectorAgent::create();
     InspectorInspectorAgent* inspectorAgentPtr = inspectorAgent.get();
     m_agents.append(inspectorAgent.release());
 
-    OwnPtrWillBeRawPtr<PageRuntimeAgent> pageRuntimeAgent = PageRuntimeAgent::create(this, mainThreadDebugger->debugger(), m_inspectedFrames.get(), mainThreadDebugger->contextGroupId(m_inspectedFrames->root()));
+    RawPtr<PageRuntimeAgent> pageRuntimeAgent = PageRuntimeAgent::create(this, mainThreadDebugger->debugger(), m_inspectedFrames.get(), mainThreadDebugger->contextGroupId(m_inspectedFrames->root()));
     V8RuntimeAgent* runtimeAgent = pageRuntimeAgent->v8Agent();
     m_agents.append(pageRuntimeAgent.release());
 
-    OwnPtrWillBeRawPtr<InspectorDOMAgent> domAgent = InspectorDOMAgent::create(isolate, m_inspectedFrames.get(), runtimeAgent, m_overlay.get());
+    RawPtr<InspectorDOMAgent> domAgent = InspectorDOMAgent::create(isolate, m_inspectedFrames.get(), runtimeAgent, m_overlay.get());
     m_domAgent = domAgent.get();
     m_agents.append(domAgent.release());
 
-    OwnPtrWillBeRawPtr<InspectorLayerTreeAgent> layerTreeAgent = InspectorLayerTreeAgent::create(m_inspectedFrames.get());
+    RawPtr<InspectorLayerTreeAgent> layerTreeAgent = InspectorLayerTreeAgent::create(m_inspectedFrames.get());
     m_layerTreeAgent = layerTreeAgent.get();
     m_agents.append(layerTreeAgent.release());
 
-    OwnPtrWillBeRawPtr<InspectorResourceAgent> resourceAgent = InspectorResourceAgent::create(m_inspectedFrames.get());
+    RawPtr<InspectorResourceAgent> resourceAgent = InspectorResourceAgent::create(m_inspectedFrames.get());
     m_resourceAgent = resourceAgent.get();
     m_agents.append(resourceAgent.release());
 
-    OwnPtrWillBeRawPtr<InspectorCSSAgent> cssAgent = InspectorCSSAgent::create(m_domAgent, m_inspectedFrames.get(), m_resourceAgent, m_resourceContentLoader.get());
+    RawPtr<InspectorCSSAgent> cssAgent = InspectorCSSAgent::create(m_domAgent, m_inspectedFrames.get(), m_resourceAgent, m_resourceContentLoader.get());
     InspectorCSSAgent* cssAgentPtr = cssAgent.get();
     m_agents.append(cssAgent.release());
 
@@ -420,19 +420,19 @@
 
     m_agents.append(InspectorIndexedDBAgent::create(m_inspectedFrames.get()));
 
-    OwnPtrWillBeRawPtr<InspectorDebuggerAgent> debuggerAgent = PageDebuggerAgent::create(m_inspectedFrames.get(), runtimeAgent);
+    RawPtr<InspectorDebuggerAgent> debuggerAgent = PageDebuggerAgent::create(m_inspectedFrames.get(), runtimeAgent);
     InspectorDebuggerAgent* debuggerAgentPtr = debuggerAgent.get();
     m_agents.append(debuggerAgent.release());
 
-    OwnPtrWillBeRawPtr<PageConsoleAgent> pageConsoleAgent = PageConsoleAgent::create(runtimeAgent, debuggerAgentPtr->v8Agent(), m_domAgent, m_inspectedFrames.get());
+    RawPtr<PageConsoleAgent> pageConsoleAgent = PageConsoleAgent::create(runtimeAgent, debuggerAgentPtr->v8Agent(), m_domAgent, m_inspectedFrames.get());
     PageConsoleAgent* pageConsoleAgentPtr = pageConsoleAgent.get();
     m_agents.append(pageConsoleAgent.release());
 
-    OwnPtrWillBeRawPtr<InspectorWorkerAgent> workerAgent = InspectorWorkerAgent::create(m_inspectedFrames.get(), pageConsoleAgentPtr);
+    RawPtr<InspectorWorkerAgent> workerAgent = InspectorWorkerAgent::create(m_inspectedFrames.get(), pageConsoleAgentPtr);
     InspectorWorkerAgent* workerAgentPtr = workerAgent.get();
     m_agents.append(workerAgent.release());
 
-    OwnPtrWillBeRawPtr<InspectorTracingAgent> tracingAgent = InspectorTracingAgent::create(this, workerAgentPtr, m_inspectedFrames.get());
+    RawPtr<InspectorTracingAgent> tracingAgent = InspectorTracingAgent::create(this, workerAgentPtr, m_inspectedFrames.get());
     m_tracingAgent = tracingAgent.get();
     m_agents.append(tracingAgent.release());
 
@@ -444,7 +444,7 @@
 
     m_agents.append(InspectorHeapProfilerAgent::create(isolate, runtimeAgent));
 
-    OwnPtrWillBeRawPtr<InspectorPageAgent> pageAgent = InspectorPageAgent::create(m_inspectedFrames.get(), this, m_resourceContentLoader.get(), debuggerAgentPtr);
+    RawPtr<InspectorPageAgent> pageAgent = InspectorPageAgent::create(m_inspectedFrames.get(), this, m_resourceContentLoader.get(), debuggerAgentPtr);
     m_pageAgent = pageAgent.get();
     m_agents.append(pageAgent.release());
 
diff --git a/third_party/WebKit/Source/web/WebDevToolsAgentImpl.h b/third_party/WebKit/Source/web/WebDevToolsAgentImpl.h
index e3c2c97a..99f56ea 100644
--- a/third_party/WebKit/Source/web/WebDevToolsAgentImpl.h
+++ b/third_party/WebKit/Source/web/WebDevToolsAgentImpl.h
@@ -69,7 +69,7 @@
 }
 
 class WebDevToolsAgentImpl final
-    : public NoBaseWillBeGarbageCollectedFinalized<WebDevToolsAgentImpl>
+    : public GarbageCollectedFinalized<WebDevToolsAgentImpl>
     , public WebDevToolsAgent
     , public InspectorEmulationAgent::Client
     , public InspectorTracingAgent::Client
@@ -78,7 +78,7 @@
     , public protocol::FrontendChannel
     , private WebThread::TaskObserver {
 public:
-    static PassOwnPtrWillBeRawPtr<WebDevToolsAgentImpl> create(WebLocalFrameImpl*, WebDevToolsAgentClient*);
+    static RawPtr<WebDevToolsAgentImpl> create(WebLocalFrameImpl*, WebDevToolsAgentClient*);
     ~WebDevToolsAgentImpl() override;
     void dispose();
     DECLARE_VIRTUAL_TRACE();
@@ -109,7 +109,7 @@
     WebString evaluateInWebInspectorOverlay(const WebString& script) override;
 
 private:
-    WebDevToolsAgentImpl(WebLocalFrameImpl*, WebDevToolsAgentClient*, PassOwnPtrWillBeRawPtr<InspectorOverlay>);
+    WebDevToolsAgentImpl(WebLocalFrameImpl*, WebDevToolsAgentClient*, RawPtr<InspectorOverlay>);
 
     // InspectorTracingAgent::Client implementation.
     void enableTracing(const WTF::String& categoryFilter) override;
@@ -141,22 +141,22 @@
     static void runDebuggerTask(int sessionId, PassOwnPtr<WebDevToolsAgent::MessageDescriptor>);
 
     WebDevToolsAgentClient* m_client;
-    RawPtrWillBeMember<WebLocalFrameImpl> m_webLocalFrameImpl;
+    Member<WebLocalFrameImpl> m_webLocalFrameImpl;
     bool m_attached;
 #if ENABLE(ASSERT)
     bool m_hasBeenDisposed;
 #endif
 
-    RefPtrWillBeMember<InstrumentingAgents> m_instrumentingAgents;
-    OwnPtrWillBeMember<InspectorResourceContentLoader> m_resourceContentLoader;
-    OwnPtrWillBeMember<InspectorOverlay> m_overlay;
-    OwnPtrWillBeMember<InspectedFrames> m_inspectedFrames;
+    Member<InstrumentingAgents> m_instrumentingAgents;
+    Member<InspectorResourceContentLoader> m_resourceContentLoader;
+    Member<InspectorOverlay> m_overlay;
+    Member<InspectedFrames> m_inspectedFrames;
 
-    RawPtrWillBeMember<InspectorDOMAgent> m_domAgent;
-    RawPtrWillBeMember<InspectorPageAgent> m_pageAgent;
-    RawPtrWillBeMember<InspectorResourceAgent> m_resourceAgent;
-    RawPtrWillBeMember<InspectorLayerTreeAgent> m_layerTreeAgent;
-    RawPtrWillBeMember<InspectorTracingAgent> m_tracingAgent;
+    Member<InspectorDOMAgent> m_domAgent;
+    Member<InspectorPageAgent> m_pageAgent;
+    Member<InspectorResourceAgent> m_resourceAgent;
+    Member<InspectorLayerTreeAgent> m_layerTreeAgent;
+    Member<InspectorTracingAgent> m_tracingAgent;
 
     OwnPtr<protocol::Dispatcher> m_inspectorBackendDispatcher;
     OwnPtr<protocol::Frontend> m_inspectorFrontend;
diff --git a/third_party/WebKit/Source/web/WebDevToolsFrontendImpl.cpp b/third_party/WebKit/Source/web/WebDevToolsFrontendImpl.cpp
index 74edde68..853465ab 100644
--- a/third_party/WebKit/Source/web/WebDevToolsFrontendImpl.cpp
+++ b/third_party/WebKit/Source/web/WebDevToolsFrontendImpl.cpp
@@ -110,7 +110,7 @@
     return m_client ? m_client->isUnderTest() : false;
 }
 
-void WebDevToolsFrontendImpl::showContextMenu(LocalFrame* targetFrame, float x, float y, PassRefPtrWillBeRawPtr<ContextMenuProvider> menuProvider)
+void WebDevToolsFrontendImpl::showContextMenu(LocalFrame* targetFrame, float x, float y, RawPtr<ContextMenuProvider> menuProvider)
 {
     WebLocalFrameImpl::fromFrame(targetFrame)->viewImpl()->showContextMenuAtPoint(x, y, menuProvider);
 }
diff --git a/third_party/WebKit/Source/web/WebDevToolsFrontendImpl.h b/third_party/WebKit/Source/web/WebDevToolsFrontendImpl.h
index 4d9e770f..4f7ab6e 100644
--- a/third_party/WebKit/Source/web/WebDevToolsFrontendImpl.h
+++ b/third_party/WebKit/Source/web/WebDevToolsFrontendImpl.h
@@ -55,14 +55,14 @@
 
     bool isUnderTest() override;
 
-    void showContextMenu(LocalFrame*, float x, float y, PassRefPtrWillBeRawPtr<ContextMenuProvider>) override;
+    void showContextMenu(LocalFrame*, float x, float y, RawPtr<ContextMenuProvider>) override;
 
     void setInjectedScriptForOrigin(const String& origin, const String& source) override;
 
 private:
-    RefPtrWillBePersistent<WebLocalFrameImpl> m_webFrame;
+    Persistent<WebLocalFrameImpl> m_webFrame;
     WebDevToolsFrontendClient* m_client;
-    RefPtrWillBePersistent<DevToolsHost> m_devtoolsHost;
+    Persistent<DevToolsHost> m_devtoolsHost;
     typedef HashMap<String, String> InjectedScriptForOriginMap;
     InjectedScriptForOriginMap m_injectedScriptForOrigin;
 };
diff --git a/third_party/WebKit/Source/web/WebDocument.cpp b/third_party/WebKit/Source/web/WebDocument.cpp
index e1a0c23..f7eb3888 100644
--- a/third_party/WebKit/Source/web/WebDocument.cpp
+++ b/third_party/WebKit/Source/web/WebDocument.cpp
@@ -181,7 +181,7 @@
 
 void WebDocument::forms(WebVector<WebFormElement>& results) const
 {
-    RefPtrWillBeRawPtr<HTMLCollection> forms = const_cast<Document*>(constUnwrap<Document>())->forms();
+    RawPtr<HTMLCollection> forms = const_cast<Document*>(constUnwrap<Document>())->forms();
     size_t sourceLength = forms->length();
     Vector<WebFormElement> temp;
     temp.reserveCapacity(sourceLength);
@@ -211,16 +211,16 @@
 
 void WebDocument::insertStyleSheet(const WebString& sourceCode)
 {
-    RefPtrWillBeRawPtr<Document> document = unwrap<Document>();
+    RawPtr<Document> document = unwrap<Document>();
     ASSERT(document);
-    RefPtrWillBeRawPtr<StyleSheetContents> parsedSheet = StyleSheetContents::create(CSSParserContext(*document, 0));
+    RawPtr<StyleSheetContents> parsedSheet = StyleSheetContents::create(CSSParserContext(*document, 0));
     parsedSheet->parseString(sourceCode);
     document->styleEngine().injectAuthorSheet(parsedSheet);
 }
 
 void WebDocument::watchCSSSelectors(const WebVector<WebString>& webSelectors)
 {
-    RefPtrWillBeRawPtr<Document> document = unwrap<Document>();
+    RawPtr<Document> document = unwrap<Document>();
     CSSSelectorWatch* watch = CSSSelectorWatch::fromIfExists(*document);
     if (!watch && webSelectors.isEmpty())
         return;
@@ -328,20 +328,20 @@
     return DocumentStatisticsCollector::collectStatistics(*unwrap<Document>());
 }
 
-WebDocument::WebDocument(const PassRefPtrWillBeRawPtr<Document>& elem)
+WebDocument::WebDocument(const RawPtr<Document>& elem)
     : WebNode(elem)
 {
 }
 
 DEFINE_WEB_NODE_TYPE_CASTS(WebDocument, constUnwrap<Node>()->isDocumentNode());
 
-WebDocument& WebDocument::operator=(const PassRefPtrWillBeRawPtr<Document>& elem)
+WebDocument& WebDocument::operator=(const RawPtr<Document>& elem)
 {
     m_private = elem;
     return *this;
 }
 
-WebDocument::operator PassRefPtrWillBeRawPtr<Document>() const
+WebDocument::operator RawPtr<Document>() const
 {
     return toDocument(m_private.get());
 }
diff --git a/third_party/WebKit/Source/web/WebElement.cpp b/third_party/WebKit/Source/web/WebElement.cpp
index 6fbe2539..9202795 100644
--- a/third_party/WebKit/Source/web/WebElement.cpp
+++ b/third_party/WebKit/Source/web/WebElement.cpp
@@ -158,20 +158,20 @@
     return WebImage(unwrap<Element>()->imageContents());
 }
 
-WebElement::WebElement(const PassRefPtrWillBeRawPtr<Element>& elem)
+WebElement::WebElement(const RawPtr<Element>& elem)
     : WebNode(elem)
 {
 }
 
 DEFINE_WEB_NODE_TYPE_CASTS(WebElement, isElementNode());
 
-WebElement& WebElement::operator=(const PassRefPtrWillBeRawPtr<Element>& elem)
+WebElement& WebElement::operator=(const RawPtr<Element>& elem)
 {
     m_private = elem;
     return *this;
 }
 
-WebElement::operator PassRefPtrWillBeRawPtr<Element>() const
+WebElement::operator RawPtr<Element>() const
 {
     return toElement(m_private.get());
 }
diff --git a/third_party/WebKit/Source/web/WebElementCollection.cpp b/third_party/WebKit/Source/web/WebElementCollection.cpp
index 51f51af..280e71d 100644
--- a/third_party/WebKit/Source/web/WebElementCollection.cpp
+++ b/third_party/WebKit/Source/web/WebElementCollection.cpp
@@ -48,12 +48,12 @@
     m_private = other.m_private;
 }
 
-WebElementCollection::WebElementCollection(const PassRefPtrWillBeRawPtr<HTMLCollection>& col)
+WebElementCollection::WebElementCollection(const RawPtr<HTMLCollection>& col)
     : m_private(col)
 {
 }
 
-WebElementCollection& WebElementCollection::operator=(const PassRefPtrWillBeRawPtr<HTMLCollection>& col)
+WebElementCollection& WebElementCollection::operator=(const RawPtr<HTMLCollection>& col)
 {
     m_private = col;
     return *this;
diff --git a/third_party/WebKit/Source/web/WebElementTest.cpp b/third_party/WebKit/Source/web/WebElementTest.cpp
index 2edb5ab4..9800e18 100644
--- a/third_party/WebKit/Source/web/WebElementTest.cpp
+++ b/third_party/WebKit/Source/web/WebElementTest.cpp
@@ -115,7 +115,7 @@
     EXPECT_TRUE(testElement().hasNonEmptyLayoutSize());
 
     insertHTML(s_emptyBlock);
-    RefPtrWillBeRawPtr<ShadowRoot> root = document().getElementById("testElement")->createShadowRootInternal(ShadowRootType::V0, ASSERT_NO_EXCEPTION);
+    RawPtr<ShadowRoot> root = document().getElementById("testElement")->createShadowRootInternal(ShadowRootType::V0, ASSERT_NO_EXCEPTION);
     root->setInnerHTML("<div>Hello World</div>", ASSERT_NO_EXCEPTION);
     EXPECT_TRUE(testElement().hasNonEmptyLayoutSize());
 }
diff --git a/third_party/WebKit/Source/web/WebEmbeddedWorkerImpl.cpp b/third_party/WebKit/Source/web/WebEmbeddedWorkerImpl.cpp
index 6615a27..edb4683 100644
--- a/third_party/WebKit/Source/web/WebEmbeddedWorkerImpl.cpp
+++ b/third_party/WebKit/Source/web/WebEmbeddedWorkerImpl.cpp
@@ -348,7 +348,7 @@
     // FIXME: this document's origin is pristine and without any extra privileges. (crbug.com/254993)
     SecurityOrigin* starterOrigin = document->getSecurityOrigin();
 
-    OwnPtrWillBeRawPtr<WorkerClients> workerClients = WorkerClients::create();
+    RawPtr<WorkerClients> workerClients = WorkerClients::create();
     provideContentSettingsClientToWorker(workerClients.get(), m_contentSettingsClient.release());
     provideServiceWorkerGlobalScopeClientToWorker(workerClients.get(), ServiceWorkerGlobalScopeClientImpl::create(*m_workerContextClient));
     provideServiceWorkerContainerClientToWorker(workerClients.get(), adoptPtr(m_workerContextClient->createServiceWorkerProvider()));
diff --git a/third_party/WebKit/Source/web/WebEmbeddedWorkerImpl.h b/third_party/WebKit/Source/web/WebEmbeddedWorkerImpl.h
index 264e7e9..369ef4e 100644
--- a/third_party/WebKit/Source/web/WebEmbeddedWorkerImpl.h
+++ b/third_party/WebKit/Source/web/WebEmbeddedWorkerImpl.h
@@ -108,15 +108,15 @@
 
     OwnPtr<WorkerThread> m_workerThread;
     RefPtr<WorkerLoaderProxy> m_loaderProxy;
-    OwnPtrWillBePersistent<ServiceWorkerGlobalScopeProxy> m_workerGlobalScopeProxy;
-    OwnPtrWillBePersistent<WorkerInspectorProxy> m_workerInspectorProxy;
+    Persistent<ServiceWorkerGlobalScopeProxy> m_workerGlobalScopeProxy;
+    Persistent<WorkerInspectorProxy> m_workerInspectorProxy;
 
     // 'shadow page' - created to proxy loading requests from the worker.
     // Both WebView and WebFrame objects are close()'ed (where they're
     // deref'ed) when this EmbeddedWorkerImpl is destructed, therefore they
     // are guaranteed to exist while this object is around.
     WebView* m_webView;
-    RefPtrWillBePersistent<WebLocalFrameImpl> m_mainFrame;
+    Persistent<WebLocalFrameImpl> m_mainFrame;
 
     bool m_loadingShadowPage;
     bool m_askedToTerminate;
diff --git a/third_party/WebKit/Source/web/WebFormControlElement.cpp b/third_party/WebKit/Source/web/WebFormControlElement.cpp
index b8cd1ea8..63aa552 100644
--- a/third_party/WebKit/Source/web/WebFormControlElement.cpp
+++ b/third_party/WebKit/Source/web/WebFormControlElement.cpp
@@ -176,20 +176,20 @@
     return WebFormElement(constUnwrap<HTMLFormControlElement>()->form());
 }
 
-WebFormControlElement::WebFormControlElement(const PassRefPtrWillBeRawPtr<HTMLFormControlElement>& elem)
+WebFormControlElement::WebFormControlElement(const RawPtr<HTMLFormControlElement>& elem)
     : WebElement(elem)
 {
 }
 
 DEFINE_WEB_NODE_TYPE_CASTS(WebFormControlElement, isElementNode() && constUnwrap<Element>()->isFormControlElement());
 
-WebFormControlElement& WebFormControlElement::operator=(const PassRefPtrWillBeRawPtr<HTMLFormControlElement>& elem)
+WebFormControlElement& WebFormControlElement::operator=(const RawPtr<HTMLFormControlElement>& elem)
 {
     m_private = elem;
     return *this;
 }
 
-WebFormControlElement::operator PassRefPtrWillBeRawPtr<HTMLFormControlElement>() const
+WebFormControlElement::operator RawPtr<HTMLFormControlElement>() const
 {
     return toHTMLFormControlElement(m_private.get());
 }
diff --git a/third_party/WebKit/Source/web/WebFormElement.cpp b/third_party/WebKit/Source/web/WebFormElement.cpp
index 18a3511..c4caf24 100644
--- a/third_party/WebKit/Source/web/WebFormElement.cpp
+++ b/third_party/WebKit/Source/web/WebFormElement.cpp
@@ -65,7 +65,7 @@
 void WebFormElement::getNamedElements(const WebString& name,
                                       WebVector<WebNode>& result)
 {
-    WillBeHeapVector<RefPtrWillBeMember<Element>> tempVector;
+    HeapVector<Member<Element>> tempVector;
     unwrap<HTMLFormElement>()->getNamedElements(name, tempVector);
     result.assign(tempVector);
 }
@@ -93,20 +93,20 @@
     unwrap<HTMLFormElement>()->finishRequestAutocomplete(static_cast<HTMLFormElement::AutocompleteResult>(result));
 }
 
-WebFormElement::WebFormElement(const PassRefPtrWillBeRawPtr<HTMLFormElement>& e)
+WebFormElement::WebFormElement(const RawPtr<HTMLFormElement>& e)
     : WebElement(e)
 {
 }
 
 DEFINE_WEB_NODE_TYPE_CASTS(WebFormElement, isHTMLFormElement(constUnwrap<Node>()));
 
-WebFormElement& WebFormElement::operator=(const PassRefPtrWillBeRawPtr<HTMLFormElement>& e)
+WebFormElement& WebFormElement::operator=(const RawPtr<HTMLFormElement>& e)
 {
     m_private = e;
     return *this;
 }
 
-WebFormElement::operator PassRefPtrWillBeRawPtr<HTMLFormElement>() const
+WebFormElement::operator RawPtr<HTMLFormElement>() const
 {
     return toHTMLFormElement(m_private.get());
 }
diff --git a/third_party/WebKit/Source/web/WebFrame.cpp b/third_party/WebKit/Source/web/WebFrame.cpp
index 528378db..1ef98bd 100644
--- a/third_party/WebKit/Source/web/WebFrame.cpp
+++ b/third_party/WebKit/Source/web/WebFrame.cpp
@@ -28,7 +28,7 @@
 bool WebFrame::swap(WebFrame* frame)
 {
     using std::swap;
-    RefPtrWillBeRawPtr<Frame> oldFrame = toImplBase()->frame();
+    RawPtr<Frame> oldFrame = toImplBase()->frame();
 #if !ENABLE(OILPAN)
     RefPtr<WebFrameImplBase> protectThis = toImplBase();
 #endif
@@ -276,7 +276,7 @@
 
 WebFrame* WebFrame::fromFrameOwnerElement(const WebElement& webElement)
 {
-    Element* element = PassRefPtrWillBeRawPtr<Element>(webElement).get();
+    Element* element = RawPtr<Element>(webElement).get();
 
     if (!element->isFrameOwnerElement())
         return nullptr;
diff --git a/third_party/WebKit/Source/web/WebFrameImplBase.h b/third_party/WebKit/Source/web/WebFrameImplBase.h
index 758374699..2ac187c 100644
--- a/third_party/WebKit/Source/web/WebFrameImplBase.h
+++ b/third_party/WebKit/Source/web/WebFrameImplBase.h
@@ -28,7 +28,7 @@
 // implementation as an instance of the base class, but has no inheritance
 // relationship with it. The cost is a virtual indirection, but this is nicer
 // than the previous manual dispatch emulating real virtual dispatch.
-class WEB_EXPORT WebFrameImplBase : public RefCountedWillBeGarbageCollectedFinalized<WebFrameImplBase> {
+class WEB_EXPORT WebFrameImplBase : public GarbageCollectedFinalized<WebFrameImplBase> {
 public:
     virtual ~WebFrameImplBase();
 
diff --git a/third_party/WebKit/Source/web/WebFrameSerializerImpl.h b/third_party/WebKit/Source/web/WebFrameSerializerImpl.h
index e948769..160d4a8 100644
--- a/third_party/WebKit/Source/web/WebFrameSerializerImpl.h
+++ b/third_party/WebKit/Source/web/WebFrameSerializerImpl.h
@@ -81,7 +81,7 @@
 
 private:
     // Specified frame which need to be serialized;
-    RawPtrWillBeMember<WebLocalFrameImpl> m_specifiedWebLocalFrameImpl;
+    Member<WebLocalFrameImpl> m_specifiedWebLocalFrameImpl;
     // Pointer of WebFrameSerializerClient
     WebFrameSerializerClient* m_client;
     // Pointer of WebFrameSerializer::LinkRewritingDelegate
@@ -100,12 +100,12 @@
 
         const KURL& url;
         const WTF::TextEncoding& textEncoding;
-        RawPtrWillBeMember<Document> document;
+        Member<Document> document;
         bool isHTMLDocument; // document.isHTMLDocument()
         bool haveSeenDocType;
         bool haveAddedCharsetDeclaration;
         // This meta element need to be skipped when serializing DOM.
-        RawPtrWillBeMember<const Element> skipMetaElement;
+        Member<const Element> skipMetaElement;
         bool haveAddedXMLProcessingDirective;
         // Flag indicates whether we have added additional contents before end tag.
         // This flag will be re-assigned in each call of function
diff --git a/third_party/WebKit/Source/web/WebFrameWidgetImpl.cpp b/third_party/WebKit/Source/web/WebFrameWidgetImpl.cpp
index d30af3f..15be6d5 100644
--- a/third_party/WebKit/Source/web/WebFrameWidgetImpl.cpp
+++ b/third_party/WebKit/Source/web/WebFrameWidgetImpl.cpp
@@ -207,7 +207,7 @@
     if (!m_localRoot)
         return;
 
-    RefPtrWillBeRawPtr<FrameView> view = m_localRoot->frameView();
+    RawPtr<FrameView> view = m_localRoot->frameView();
     if (!view)
         return;
 
@@ -331,7 +331,7 @@
     if (m_mouseCaptureNode && WebInputEvent::isMouseEventType(inputEvent.type)) {
         TRACE_EVENT1("input", "captured mouse event", "type", inputEvent.type);
         // Save m_mouseCaptureNode since mouseCaptureLost() will clear it.
-        RefPtrWillBeRawPtr<Node> node = m_mouseCaptureNode;
+        RawPtr<Node> node = m_mouseCaptureNode;
 
         // Not all platforms call mouseCaptureLost() directly.
         if (inputEvent.type == WebInputEvent::MouseUp)
@@ -423,7 +423,7 @@
     page()->focusController().setFocused(enable);
     if (enable) {
         page()->focusController().setActive(true);
-        RefPtrWillBeRawPtr<LocalFrame> focusedFrame = page()->focusController().focusedFrame();
+        RawPtr<LocalFrame> focusedFrame = page()->focusController().focusedFrame();
         if (focusedFrame) {
             Element* element = focusedFrame->document()->focusedElement();
             if (element && focusedFrame->selection().selection().isNone()) {
@@ -768,7 +768,7 @@
     // event.
     m_suppressNextKeypressEvent = false;
 
-    RefPtrWillBeRawPtr<Frame> focusedFrame = focusedCoreFrame();
+    RawPtr<Frame> focusedFrame = focusedCoreFrame();
     if (focusedFrame && focusedFrame->isRemoteFrame()) {
         WebRemoteFrameImpl* webFrame = WebRemoteFrameImpl::fromFrame(*toRemoteFrame(focusedFrame.get()));
         webFrame->client()->forwardInputEvent(&event);
@@ -778,7 +778,7 @@
     if (!focusedFrame || !focusedFrame->isLocalFrame())
         return WebInputEventResult::NotHandled;
 
-    RefPtrWillBeRawPtr<LocalFrame> frame = toLocalFrame(focusedFrame.get());
+    RawPtr<LocalFrame> frame = toLocalFrame(focusedFrame.get());
 
     PlatformKeyboardEventBuilder evt(event);
 
diff --git a/third_party/WebKit/Source/web/WebFrameWidgetImpl.h b/third_party/WebKit/Source/web/WebFrameWidgetImpl.h
index 371f353f..6ee4035 100644
--- a/third_party/WebKit/Source/web/WebFrameWidgetImpl.h
+++ b/third_party/WebKit/Source/web/WebFrameWidgetImpl.h
@@ -59,9 +59,9 @@
 class WebMouseWheelEvent;
 class WebFrameWidgetImpl;
 
-using WebFrameWidgetsSet = WillBePersistentHeapHashSet<RawPtrWillBeWeakMember<WebFrameWidgetImpl>>;
+using WebFrameWidgetsSet = PersistentHeapHashSet<WeakMember<WebFrameWidgetImpl>>;
 
-class WebFrameWidgetImpl final : public RefCountedWillBeGarbageCollectedFinalized<WebFrameWidgetImpl>
+class WebFrameWidgetImpl final : public GarbageCollectedFinalized<WebFrameWidgetImpl>
     , public WebFrameWidget
     , public PageWidgetEventHandler {
 public:
@@ -200,12 +200,12 @@
 
     // WebFrameWidget is associated with a subtree of the frame tree, corresponding to a maximal
     // connected tree of LocalFrames. This member points to the root of that subtree.
-    RawPtrWillBeMember<WebLocalFrameImpl> m_localRoot;
+    Member<WebLocalFrameImpl> m_localRoot;
 
     WebSize m_size;
 
     // If set, the (plugin) node which has mouse capture.
-    RefPtrWillBeMember<Node> m_mouseCaptureNode;
+    Member<Node> m_mouseCaptureNode;
     RefPtr<UserGestureToken> m_mouseCaptureGestureToken;
 
     WebLayerTreeView* m_layerTreeView;
diff --git a/third_party/WebKit/Source/web/WebGeolocationController.cpp b/third_party/WebKit/Source/web/WebGeolocationController.cpp
index c39a4d3..1c9f17a 100644
--- a/third_party/WebKit/Source/web/WebGeolocationController.cpp
+++ b/third_party/WebKit/Source/web/WebGeolocationController.cpp
@@ -37,11 +37,11 @@
 
 // TODO(Oilpan): once GeolocationController is always on the heap,
 // shorten out this GeolocationControllerPrivate intermediary.
-class GeolocationControllerPrivate final : public RefCountedWillBeGarbageCollected<GeolocationControllerPrivate> {
+class GeolocationControllerPrivate final : public GarbageCollected<GeolocationControllerPrivate> {
 public:
-    static PassRefPtrWillBeRawPtr<GeolocationControllerPrivate> create(GeolocationController* controller)
+    static RawPtr<GeolocationControllerPrivate> create(GeolocationController* controller)
     {
-        return adoptRefWillBeNoop(new GeolocationControllerPrivate(controller));
+        return new GeolocationControllerPrivate(controller);
     }
 
     static GeolocationController& controller(const WebPrivatePtr<GeolocationControllerPrivate>& controller)
@@ -65,7 +65,7 @@
     // Non-Oilpan, this bare pointer is owned as a supplement and kept alive
     // by the frame of the WebLocalFrame which creates the WebGeolocationController
     // object that wraps it all up.
-    RawPtrWillBeMember<GeolocationController> m_controller;
+    Member<GeolocationController> m_controller;
 };
 
 WebGeolocationController::WebGeolocationController(GeolocationController* controller)
diff --git a/third_party/WebKit/Source/web/WebHelperPluginImpl.cpp b/third_party/WebKit/Source/web/WebHelperPluginImpl.cpp
index c14111a..15c57f13 100644
--- a/third_party/WebKit/Source/web/WebHelperPluginImpl.cpp
+++ b/third_party/WebKit/Source/web/WebHelperPluginImpl.cpp
@@ -76,14 +76,14 @@
     Vector<String> attributeNames;
     Vector<String> attributeValues;
     ASSERT(frame->frame()->document()->url().isValid());
-    m_pluginContainer = adoptRefWillBeNoop(toWebPluginContainerImpl(frame->frame()->loader().client()->createPlugin(
+    m_pluginContainer = toWebPluginContainerImpl(frame->frame()->loader().client()->createPlugin(
         m_objectElement.get(),
         frame->frame()->document()->url(),
         attributeNames,
         attributeValues,
         pluginType,
         false,
-        FrameLoaderClient::AllowDetachedPlugin).leakRef()));
+        FrameLoaderClient::AllowDetachedPlugin).leakRef());
 
     if (!m_pluginContainer)
         return false;
diff --git a/third_party/WebKit/Source/web/WebHelperPluginImpl.h b/third_party/WebKit/Source/web/WebHelperPluginImpl.h
index 0482f0c..89a09a2 100644
--- a/third_party/WebKit/Source/web/WebHelperPluginImpl.h
+++ b/third_party/WebKit/Source/web/WebHelperPluginImpl.h
@@ -66,8 +66,8 @@
     void reallyDestroy(Timer<WebHelperPluginImpl>*);
 
     Timer<WebHelperPluginImpl> m_destructionTimer;
-    RefPtrWillBePersistent<HTMLObjectElement> m_objectElement;
-    RefPtrWillBePersistent<WebPluginContainerImpl> m_pluginContainer;
+    Persistent<HTMLObjectElement> m_objectElement;
+    Persistent<WebPluginContainerImpl> m_pluginContainer;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/web/WebHistoryItem.cpp b/third_party/WebKit/Source/web/WebHistoryItem.cpp
index 54e6d82..2271435 100644
--- a/third_party/WebKit/Source/web/WebHistoryItem.cpp
+++ b/third_party/WebKit/Source/web/WebHistoryItem.cpp
@@ -219,18 +219,18 @@
     return results;
 }
 
-WebHistoryItem::WebHistoryItem(const PassRefPtrWillBeRawPtr<HistoryItem>& item)
+WebHistoryItem::WebHistoryItem(const RawPtr<HistoryItem>& item)
     : m_private(item)
 {
 }
 
-WebHistoryItem& WebHistoryItem::operator=(const PassRefPtrWillBeRawPtr<HistoryItem>& item)
+WebHistoryItem& WebHistoryItem::operator=(const RawPtr<HistoryItem>& item)
 {
     m_private = item;
     return *this;
 }
 
-WebHistoryItem::operator PassRefPtrWillBeRawPtr<HistoryItem>() const
+WebHistoryItem::operator RawPtr<HistoryItem>() const
 {
     return m_private.get();
 }
diff --git a/third_party/WebKit/Source/web/WebHitTestResult.cpp b/third_party/WebKit/Source/web/WebHitTestResult.cpp
index dd9214a..00e01f48 100644
--- a/third_party/WebKit/Source/web/WebHitTestResult.cpp
+++ b/third_party/WebKit/Source/web/WebHitTestResult.cpp
@@ -38,10 +38,10 @@
 
 namespace blink {
 
-class WebHitTestResultPrivate : public RefCountedWillBeGarbageCollectedFinalized<WebHitTestResultPrivate> {
+class WebHitTestResultPrivate : public GarbageCollectedFinalized<WebHitTestResultPrivate> {
 public:
-    static PassRefPtrWillBeRawPtr<WebHitTestResultPrivate> create(const HitTestResult&);
-    static PassRefPtrWillBeRawPtr<WebHitTestResultPrivate> create(const WebHitTestResultPrivate&);
+    static RawPtr<WebHitTestResultPrivate> create(const HitTestResult&);
+    static RawPtr<WebHitTestResultPrivate> create(const WebHitTestResultPrivate&);
     DEFINE_INLINE_TRACE() { visitor->trace(m_result); }
     const HitTestResult& result() const { return m_result; }
 
@@ -62,14 +62,14 @@
 {
 }
 
-PassRefPtrWillBeRawPtr<WebHitTestResultPrivate> WebHitTestResultPrivate::create(const HitTestResult& result)
+RawPtr<WebHitTestResultPrivate> WebHitTestResultPrivate::create(const HitTestResult& result)
 {
-    return adoptRefWillBeNoop(new WebHitTestResultPrivate(result));
+    return new WebHitTestResultPrivate(result);
 }
 
-PassRefPtrWillBeRawPtr<WebHitTestResultPrivate> WebHitTestResultPrivate::create(const WebHitTestResultPrivate& result)
+RawPtr<WebHitTestResultPrivate> WebHitTestResultPrivate::create(const WebHitTestResultPrivate& result)
 {
-    return adoptRefWillBeNoop(new WebHitTestResultPrivate(result));
+    return new WebHitTestResultPrivate(result);
 }
 
 WebNode WebHitTestResult::node() const
diff --git a/third_party/WebKit/Source/web/WebInputElement.cpp b/third_party/WebKit/Source/web/WebInputElement.cpp
index 6b3e478..b487761 100644
--- a/third_party/WebKit/Source/web/WebInputElement.cpp
+++ b/third_party/WebKit/Source/web/WebInputElement.cpp
@@ -144,20 +144,20 @@
     unwrap<HTMLInputElement>()->setShouldRevealPassword(value);
 }
 
-WebInputElement::WebInputElement(const PassRefPtrWillBeRawPtr<HTMLInputElement>& elem)
+WebInputElement::WebInputElement(const RawPtr<HTMLInputElement>& elem)
     : WebFormControlElement(elem)
 {
 }
 
 DEFINE_WEB_NODE_TYPE_CASTS(WebInputElement, isHTMLInputElement(constUnwrap<Node>()));
 
-WebInputElement& WebInputElement::operator=(const PassRefPtrWillBeRawPtr<HTMLInputElement>& elem)
+WebInputElement& WebInputElement::operator=(const RawPtr<HTMLInputElement>& elem)
 {
     m_private = elem;
     return *this;
 }
 
-WebInputElement::operator PassRefPtrWillBeRawPtr<HTMLInputElement>() const
+WebInputElement::operator RawPtr<HTMLInputElement>() const
 {
     return toHTMLInputElement(m_private.get());
 }
diff --git a/third_party/WebKit/Source/web/WebLabelElement.cpp b/third_party/WebKit/Source/web/WebLabelElement.cpp
index fb0e90a..e8ff88b 100644
--- a/third_party/WebKit/Source/web/WebLabelElement.cpp
+++ b/third_party/WebKit/Source/web/WebLabelElement.cpp
@@ -42,20 +42,20 @@
     return WebElement(unwrap<HTMLLabelElement>()->control());
 }
 
-WebLabelElement::WebLabelElement(const PassRefPtrWillBeRawPtr<HTMLLabelElement>& elem)
+WebLabelElement::WebLabelElement(const RawPtr<HTMLLabelElement>& elem)
     : WebElement(elem)
 {
 }
 
 DEFINE_WEB_NODE_TYPE_CASTS(WebLabelElement, isHTMLLabelElement(constUnwrap<Node>()));
 
-WebLabelElement& WebLabelElement::operator=(const PassRefPtrWillBeRawPtr<HTMLLabelElement>& elem)
+WebLabelElement& WebLabelElement::operator=(const RawPtr<HTMLLabelElement>& elem)
 {
     m_private = elem;
     return *this;
 }
 
-WebLabelElement::operator PassRefPtrWillBeRawPtr<HTMLLabelElement>() const
+WebLabelElement::operator RawPtr<HTMLLabelElement>() const
 {
     return toHTMLLabelElement(m_private.get());
 }
diff --git a/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp b/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp
index 07c7cca..370c44a3 100644
--- a/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp
+++ b/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp
@@ -246,9 +246,9 @@
 
 static int frameCount = 0;
 
-static WillBeHeapVector<ScriptSourceCode> createSourcesVector(const WebScriptSource* sourcesIn, unsigned numSources)
+static HeapVector<ScriptSourceCode> createSourcesVector(const WebScriptSource* sourcesIn, unsigned numSources)
 {
-    WillBeHeapVector<ScriptSourceCode> sources;
+    HeapVector<ScriptSourceCode> sources;
     sources.append(sourcesIn, numSources);
     return sources;
 }
@@ -411,7 +411,7 @@
 private:
     void dispatchEventsForPrintingOnAllFrames()
     {
-        WillBeHeapVector<RefPtrWillBeMember<Document>> documents;
+        HeapVector<Member<Document>> documents;
         for (Frame* currentFrame = frame(); currentFrame; currentFrame = currentFrame->tree().traverseNext(frame())) {
             if (currentFrame->isLocalFrame())
                 documents.append(toLocalFrame(currentFrame)->document());
@@ -483,7 +483,7 @@
 
 private:
     // Set when printing.
-    RawPtrWillBeMember<WebPluginContainerImpl> m_plugin;
+    Member<WebPluginContainerImpl> m_plugin;
     WebPrintParams m_printParams;
 };
 
@@ -542,7 +542,7 @@
 
 WebLocalFrame* WebLocalFrame::fromFrameOwnerElement(const WebElement& element)
 {
-    return WebLocalFrameImpl::fromFrameOwnerElement(PassRefPtrWillBeRawPtr<Element>(element).get());
+    return WebLocalFrameImpl::fromFrameOwnerElement(RawPtr<Element>(element).get());
 }
 
 bool WebLocalFrameImpl::isWebLocalFrame() const
@@ -725,7 +725,7 @@
     RELEASE_ASSERT(worldID > 0);
     RELEASE_ASSERT(worldID < EmbedderWorldIdLimit);
 
-    WillBeHeapVector<ScriptSourceCode> sources = createSourcesVector(sourcesIn, numSources);
+    HeapVector<ScriptSourceCode> sources = createSourcesVector(sourcesIn, numSources);
     v8::HandleScope handleScope(toIsolate(frame()));
     frame()->script().executeScriptInIsolatedWorld(worldID, sources, extensionGroup, 0);
 }
@@ -804,7 +804,7 @@
     RELEASE_ASSERT(worldID > 0);
     RELEASE_ASSERT(worldID < EmbedderWorldIdLimit);
 
-    WillBeHeapVector<ScriptSourceCode> sources = createSourcesVector(sourcesIn, numSources);
+    HeapVector<ScriptSourceCode> sources = createSourcesVector(sourcesIn, numSources);
 
     if (results) {
         Vector<v8::Local<v8::Value>> scriptResults;
@@ -863,7 +863,7 @@
     // requests.
     ASSERT(frame());
     WebFrameLoadType loadType = ignoreCache ?
-        WebFrameLoadType::ReloadFromOrigin : WebFrameLoadType::Reload;
+        WebFrameLoadType::ReloadBypassingCache : WebFrameLoadType::Reload;
     WebURLRequest request = requestForReload(loadType, overrideUrl);
     if (request.isNull())
         return;
@@ -1166,7 +1166,7 @@
 void WebLocalFrameImpl::selectRange(const WebRange& webRange)
 {
     TRACE_EVENT0("blink", "WebLocalFrameImpl::selectRange");
-    if (RefPtrWillBeRawPtr<Range> range = static_cast<PassRefPtrWillBeRawPtr<Range>>(webRange))
+    if (RawPtr<Range> range = static_cast<RawPtr<Range>>(webRange))
         frame()->selection().setSelectedRange(range.get(), VP_DEFAULT_AFFINITY, SelectionDirectionalMode::NonDirectional, NotUserTriggered);
 }
 
@@ -1264,9 +1264,9 @@
     }
 
     if (pluginContainer && pluginContainer->supportsPaginatedPrint())
-        m_printContext = adoptPtrWillBeNoop(new ChromePluginPrintContext(frame(), pluginContainer, printParams));
+        m_printContext = new ChromePluginPrintContext(frame(), pluginContainer, printParams);
     else
-        m_printContext = adoptPtrWillBeNoop(new ChromePrintContext(frame()));
+        m_printContext = new ChromePrintContext(frame());
 
     FloatRect rect(0, 0, static_cast<float>(printParams.printContentArea.width), static_cast<float>(printParams.printContentArea.height));
     m_printContext->begin(rect.width(), rect.height());
@@ -1415,7 +1415,7 @@
 
 WebLocalFrameImpl* WebLocalFrameImpl::createProvisional(WebFrameClient* client, WebRemoteFrame* oldWebFrame, WebSandboxFlags flags, const WebFrameOwnerProperties& frameOwnerProperties)
 {
-    RefPtrWillBeRawPtr<WebLocalFrameImpl> webFrame = adoptRefWillBeNoop(new WebLocalFrameImpl(oldWebFrame, client));
+    RawPtr<WebLocalFrameImpl> webFrame = new WebLocalFrameImpl(oldWebFrame, client);
     Frame* oldFrame = oldWebFrame->toImplBase()->frame();
     webFrame->setParent(oldWebFrame->parent());
     webFrame->setOpener(oldWebFrame->opener());
@@ -1423,9 +1423,9 @@
     // When a core Frame is created with no owner, it attempts to set itself as
     // the main frame of the Page. However, this is a provisional frame, and may
     // disappear, so Page::m_mainFrame can't be updated just yet.
-    OwnPtrWillBeRawPtr<FrameOwner> tempOwner = DummyFrameOwner::create();
+    RawPtr<FrameOwner> tempOwner = DummyFrameOwner::create();
     // TODO(dcheng): This block is very similar to initializeCoreFrame. Try to reuse it here.
-    RefPtrWillBeRawPtr<LocalFrame> frame = LocalFrame::create(webFrame->m_frameLoaderClientImpl.get(), oldFrame->host(), tempOwner.get());
+    RawPtr<LocalFrame> frame = LocalFrame::create(webFrame->m_frameLoaderClientImpl.get(), oldFrame->host(), tempOwner.get());
     // Set the name and unique name directly, bypassing any of the normal logic
     // to calculate unique name.
     frame->tree().setPrecalculatedName(toWebRemoteFrameImpl(oldWebFrame)->frame()->tree().name(), toWebRemoteFrameImpl(oldWebFrame)->frame()->tree().uniqueName());
@@ -1502,7 +1502,7 @@
 }
 #endif
 
-void WebLocalFrameImpl::setCoreFrame(PassRefPtrWillBeRawPtr<LocalFrame> frame)
+void WebLocalFrameImpl::setCoreFrame(RawPtr<LocalFrame> frame)
 {
     m_frame = frame;
 
@@ -1558,7 +1558,7 @@
     frame()->init();
 }
 
-PassRefPtrWillBeRawPtr<LocalFrame> WebLocalFrameImpl::createChildFrame(const FrameLoadRequest& request,
+RawPtr<LocalFrame> WebLocalFrameImpl::createChildFrame(const FrameLoadRequest& request,
     const AtomicString& name, HTMLFrameOwnerElement* ownerElement)
 {
     ASSERT(m_client);
@@ -1573,7 +1573,7 @@
     // which can identify the element.
     AtomicString uniqueName = frame()->tree().calculateUniqueNameForNewChildFrame(
         name, ownerElement->getAttribute(ownerElement->subResourceAttributeName()));
-    RefPtrWillBeRawPtr<WebLocalFrameImpl> webframeChild = toWebLocalFrameImpl(m_client->createChildFrame(this, scope, name, uniqueName, static_cast<WebSandboxFlags>(ownerElement->getSandboxFlags()), ownerProperties));
+    RawPtr<WebLocalFrameImpl> webframeChild = toWebLocalFrameImpl(m_client->createChildFrame(this, scope, name, uniqueName, static_cast<WebSandboxFlags>(ownerElement->getSandboxFlags()), ownerProperties));
     if (!webframeChild)
         return nullptr;
 
@@ -1585,9 +1585,9 @@
 
     // If we're moving in the back/forward list, we might want to replace the content
     // of this child frame with whatever was there at that point.
-    RefPtrWillBeRawPtr<HistoryItem> childItem = nullptr;
+    RawPtr<HistoryItem> childItem = nullptr;
     if (isBackForwardLoadType(frame()->loader().loadType()) && !frame()->document()->loadEventFinished())
-        childItem = PassRefPtrWillBeRawPtr<HistoryItem>(webframeChild->client()->historyItemForNewChildFrame());
+        childItem = RawPtr<HistoryItem>(webframeChild->client()->historyItemForNewChildFrame());
 
     FrameLoadRequest newRequest = request;
     FrameLoadType loadType = FrameLoadTypeStandard;
@@ -1798,7 +1798,7 @@
     if (!frame()->document() || !frame()->page())
         return;
 
-    RefPtrWillBeRawPtr<Document> ownerDocument(frame()->document());
+    RawPtr<Document> ownerDocument(frame()->document());
 
     // Protect privileged pages against bookmarklets and other javascript manipulations.
     if (SchemeRegistry::shouldTreatURLSchemeAsNotAllowingJavascriptURLs(frame()->document()->url().protocol()))
@@ -1895,7 +1895,7 @@
 WebURLRequest WebLocalFrameImpl::requestFromHistoryItem(const WebHistoryItem& item,
     WebURLRequest::CachePolicy cachePolicy) const
 {
-    RefPtrWillBeRawPtr<HistoryItem> historyItem = PassRefPtrWillBeRawPtr<HistoryItem>(item);
+    RawPtr<HistoryItem> historyItem = RawPtr<HistoryItem>(item);
     ResourceRequest request = FrameLoader::resourceRequestFromHistoryItem(
         historyItem.get(), static_cast<ResourceRequestCachePolicy>(cachePolicy));
     return WrappedResourceRequest(request);
@@ -1926,7 +1926,7 @@
     FrameLoadRequest frameRequest = FrameLoadRequest(nullptr, resourceRequest);
     if (isClientRedirect)
         frameRequest.setClientRedirect(ClientRedirect);
-    RefPtrWillBeRawPtr<HistoryItem> historyItem = PassRefPtrWillBeRawPtr<HistoryItem>(item);
+    RawPtr<HistoryItem> historyItem = RawPtr<HistoryItem>(item);
     frame()->loader().load(
         frameRequest, static_cast<FrameLoadType>(webFrameLoadType), historyItem.get(),
         static_cast<HistoryLoadType>(webHistoryLoadType));
@@ -1957,7 +1957,7 @@
     if (isClientRedirect)
         frameRequest.setClientRedirect(ClientRedirect);
 
-    RefPtrWillBeRawPtr<HistoryItem> historyItem = PassRefPtrWillBeRawPtr<HistoryItem>(item);
+    RawPtr<HistoryItem> historyItem = RawPtr<HistoryItem>(item);
     frame()->loader().load(
         frameRequest, static_cast<FrameLoadType>(webFrameLoadType), historyItem.get(),
         static_cast<HistoryLoadType>(webHistoryLoadType));
diff --git a/third_party/WebKit/Source/web/WebLocalFrameImpl.h b/third_party/WebKit/Source/web/WebLocalFrameImpl.h
index b73a952..3056ec88 100644
--- a/third_party/WebKit/Source/web/WebLocalFrameImpl.h
+++ b/third_party/WebKit/Source/web/WebLocalFrameImpl.h
@@ -262,7 +262,7 @@
     static WebLocalFrameImpl* createProvisional(WebFrameClient*, WebRemoteFrame*, WebSandboxFlags, const WebFrameOwnerProperties&);
     ~WebLocalFrameImpl() override;
 
-    PassRefPtrWillBeRawPtr<LocalFrame> createChildFrame(const FrameLoadRequest&, const AtomicString& name, HTMLFrameOwnerElement*);
+    RawPtr<LocalFrame> createChildFrame(const FrameLoadRequest&, const AtomicString& name, HTMLFrameOwnerElement*);
 
     void didChangeContentsSize(const IntSize&);
 
@@ -359,21 +359,21 @@
     WebRemoteFrame* toWebRemoteFrame() override;
 
     // Sets the local core frame and registers destruction observers.
-    void setCoreFrame(PassRefPtrWillBeRawPtr<LocalFrame>);
+    void setCoreFrame(RawPtr<LocalFrame>);
 
     void loadJavaScriptURL(const KURL&);
 
     WebPlugin* focusedPluginIfInputMethodSupported();
     ScrollableArea* layoutViewportScrollableArea() const;
 
-    OwnPtrWillBeMember<FrameLoaderClientImpl> m_frameLoaderClientImpl;
+    Member<FrameLoaderClientImpl> m_frameLoaderClientImpl;
 
     // The embedder retains a reference to the WebCore LocalFrame while it is active in the DOM. This
     // reference is released when the frame is removed from the DOM or the entire page is closed.
     // FIXME: These will need to change to WebFrame when we introduce WebFrameProxy.
-    RefPtrWillBeMember<LocalFrame> m_frame;
+    Member<LocalFrame> m_frame;
 
-    OwnPtrWillBeMember<WebDevToolsAgentImpl> m_devToolsAgent;
+    Member<WebDevToolsAgentImpl> m_devToolsAgent;
 
     // This is set if the frame is the root of a local frame tree, and requires a widget for layout.
     WebFrameWidget* m_frameWidget;
@@ -384,11 +384,11 @@
     OwnPtr<SharedWorkerRepositoryClientImpl> m_sharedWorkerRepositoryClient;
 
     // Will be initialized after first call to find() or scopeStringMatches().
-    OwnPtrWillBeMember<TextFinder> m_textFinder;
+    Member<TextFinder> m_textFinder;
 
     // Valid between calls to BeginPrint() and EndPrint(). Containts the print
     // information. Is used by PrintPage().
-    OwnPtrWillBeMember<ChromePrintContext> m_printContext;
+    Member<ChromePrintContext> m_printContext;
 
     // Stores the additional input events offset and scale when device metrics emulation is enabled.
     IntSize m_inputEventsOffsetForEmulation;
@@ -396,7 +396,7 @@
 
     UserMediaClientImpl m_userMediaClientImpl;
 
-    OwnPtrWillBeMember<GeolocationClientProxy> m_geolocationClientProxy;
+    Member<GeolocationClientProxy> m_geolocationClientProxy;
 
     WebDevToolsFrontendImpl* m_webDevToolsFrontend;
 
diff --git a/third_party/WebKit/Source/web/WebMetaElement.cpp b/third_party/WebKit/Source/web/WebMetaElement.cpp
index 185347e1..fdee7336 100644
--- a/third_party/WebKit/Source/web/WebMetaElement.cpp
+++ b/third_party/WebKit/Source/web/WebMetaElement.cpp
@@ -16,20 +16,20 @@
     return String(constUnwrap<HTMLMetaElement>()->computeEncoding().name());
 }
 
-WebMetaElement::WebMetaElement(const PassRefPtrWillBeRawPtr<HTMLMetaElement>& element)
+WebMetaElement::WebMetaElement(const RawPtr<HTMLMetaElement>& element)
     : WebElement(element)
 {
 }
 
 DEFINE_WEB_NODE_TYPE_CASTS(WebMetaElement, isHTMLMetaElement(constUnwrap<Node>()));
 
-WebMetaElement& WebMetaElement::operator=(const PassRefPtrWillBeRawPtr<HTMLMetaElement>& element)
+WebMetaElement& WebMetaElement::operator=(const RawPtr<HTMLMetaElement>& element)
 {
     m_private = element;
     return *this;
 }
 
-WebMetaElement::operator PassRefPtrWillBeRawPtr<HTMLMetaElement>() const
+WebMetaElement::operator RawPtr<HTMLMetaElement>() const
 {
     return toHTMLMetaElement(m_private.get());
 }
diff --git a/third_party/WebKit/Source/web/WebNode.cpp b/third_party/WebKit/Source/web/WebNode.cpp
index ed7f5ec5..9bdeae6 100644
--- a/third_party/WebKit/Source/web/WebNode.cpp
+++ b/third_party/WebKit/Source/web/WebNode.cpp
@@ -257,7 +257,7 @@
     if (!m_private->isContainerNode())
         return;
     TrackExceptionState exceptionState;
-    RefPtrWillBeRawPtr<StaticElementList> elements = toContainerNode(m_private.get())->querySelectorAll(selector, exceptionState);
+    RawPtr<StaticElementList> elements = toContainerNode(m_private.get())->querySelectorAll(selector, exceptionState);
     ec = exceptionState.code();
     if (exceptionState.hadException())
         return;
@@ -305,18 +305,18 @@
     return cache ? WebAXObject(cache->get(node)) : WebAXObject();
 }
 
-WebNode::WebNode(const PassRefPtrWillBeRawPtr<Node>& node)
+WebNode::WebNode(const RawPtr<Node>& node)
     : m_private(node)
 {
 }
 
-WebNode& WebNode::operator=(const PassRefPtrWillBeRawPtr<Node>& node)
+WebNode& WebNode::operator=(const RawPtr<Node>& node)
 {
     m_private = node;
     return *this;
 }
 
-WebNode::operator PassRefPtrWillBeRawPtr<Node>() const
+WebNode::operator RawPtr<Node>() const
 {
     return m_private.get();
 }
diff --git a/third_party/WebKit/Source/web/WebOptionElement.cpp b/third_party/WebKit/Source/web/WebOptionElement.cpp
index 0cad361..eb5fce4 100644
--- a/third_party/WebKit/Source/web/WebOptionElement.cpp
+++ b/third_party/WebKit/Source/web/WebOptionElement.cpp
@@ -52,20 +52,20 @@
     return constUnwrap<HTMLOptionElement>()->label();
 }
 
-WebOptionElement::WebOptionElement(const PassRefPtrWillBeRawPtr<HTMLOptionElement>& elem)
+WebOptionElement::WebOptionElement(const RawPtr<HTMLOptionElement>& elem)
     : WebElement(elem)
 {
 }
 
 DEFINE_WEB_NODE_TYPE_CASTS(WebOptionElement, isHTMLOptionElement(constUnwrap<Node>()));
 
-WebOptionElement& WebOptionElement::operator=(const PassRefPtrWillBeRawPtr<HTMLOptionElement>& elem)
+WebOptionElement& WebOptionElement::operator=(const RawPtr<HTMLOptionElement>& elem)
 {
     m_private = elem;
     return *this;
 }
 
-WebOptionElement::operator PassRefPtrWillBeRawPtr<HTMLOptionElement>() const
+WebOptionElement::operator RawPtr<HTMLOptionElement>() const
 {
     return toHTMLOptionElement(m_private.get());
 }
diff --git a/third_party/WebKit/Source/web/WebPagePopupImpl.cpp b/third_party/WebKit/Source/web/WebPagePopupImpl.cpp
index 15b3ac5..5b7c2bab 100644
--- a/third_party/WebKit/Source/web/WebPagePopupImpl.cpp
+++ b/third_party/WebKit/Source/web/WebPagePopupImpl.cpp
@@ -67,9 +67,9 @@
 
 class PagePopupChromeClient final : public EmptyChromeClient {
 public:
-    static PassOwnPtrWillBeRawPtr<PagePopupChromeClient> create(WebPagePopupImpl* popup)
+    static RawPtr<PagePopupChromeClient> create(WebPagePopupImpl* popup)
     {
-        return adoptPtrWillBeNoop(new PagePopupChromeClient(popup));
+        return new PagePopupChromeClient(popup);
     }
 
     void setWindowRect(const IntRect& rect) override
@@ -277,8 +277,8 @@
     m_page->settings().setScrollAnimatorEnabled(m_webView->page()->settings().scrollAnimatorEnabled());
 
     provideContextFeaturesTo(*m_page, adoptPtr(new PagePopupFeaturesClient()));
-    DEFINE_STATIC_LOCAL(OwnPtrWillBePersistent<FrameLoaderClient>, emptyFrameLoaderClient, (EmptyFrameLoaderClient::create()));
-    RefPtrWillBeRawPtr<LocalFrame> frame = LocalFrame::create(emptyFrameLoaderClient.get(), &m_page->frameHost(), 0);
+    DEFINE_STATIC_LOCAL(Persistent<FrameLoaderClient>, emptyFrameLoaderClient, (EmptyFrameLoaderClient::create()));
+    RawPtr<LocalFrame> frame = LocalFrame::create(emptyFrameLoaderClient.get(), &m_page->frameHost(), 0);
     frame->setPagePopupOwner(m_popupClient->ownerElement());
     frame->setView(FrameView::create(frame.get()));
     frame->init();
diff --git a/third_party/WebKit/Source/web/WebPagePopupImpl.h b/third_party/WebKit/Source/web/WebPagePopupImpl.h
index 8031c57..87f88db 100644
--- a/third_party/WebKit/Source/web/WebPagePopupImpl.h
+++ b/third_party/WebKit/Source/web/WebPagePopupImpl.h
@@ -106,8 +106,8 @@
     WebWidgetClient* m_widgetClient;
     WebRect m_windowRectInScreen;
     WebViewImpl* m_webView;
-    OwnPtrWillBePersistent<Page> m_page;
-    OwnPtrWillBePersistent<PagePopupChromeClient> m_chromeClient;
+    Persistent<Page> m_page;
+    Persistent<PagePopupChromeClient> m_chromeClient;
     PagePopupClient* m_popupClient;
     bool m_closing;
 
diff --git a/third_party/WebKit/Source/web/WebPepperSocketImpl.cpp b/third_party/WebKit/Source/web/WebPepperSocketImpl.cpp
index aad6baee..c49cf0d 100644
--- a/third_party/WebKit/Source/web/WebPepperSocketImpl.cpp
+++ b/third_party/WebKit/Source/web/WebPepperSocketImpl.cpp
@@ -53,7 +53,7 @@
     , m_bufferedAmount(0)
     , m_bufferedAmountAfterClose(0)
 {
-    RefPtrWillBeRawPtr<Document> coreDocument = PassRefPtrWillBeRawPtr<Document>(document);
+    RawPtr<Document> coreDocument = RawPtr<Document>(document);
     m_private = DocumentWebSocketChannel::create(coreDocument.get(), m_channelProxy.get());
 }
 
diff --git a/third_party/WebKit/Source/web/WebPerformance.cpp b/third_party/WebKit/Source/web/WebPerformance.cpp
index b0cb6f8b..95b1812 100644
--- a/third_party/WebKit/Source/web/WebPerformance.cpp
+++ b/third_party/WebKit/Source/web/WebPerformance.cpp
@@ -190,12 +190,12 @@
     return millisecondsToSeconds(m_private->timing()->firstContentfulPaint());
 }
 
-WebPerformance::WebPerformance(const PassRefPtrWillBeRawPtr<Performance>& performance)
+WebPerformance::WebPerformance(const RawPtr<Performance>& performance)
     : m_private(performance)
 {
 }
 
-WebPerformance& WebPerformance::operator=(const PassRefPtrWillBeRawPtr<Performance>& performance)
+WebPerformance& WebPerformance::operator=(const RawPtr<Performance>& performance)
 {
     m_private = performance;
     return *this;
diff --git a/third_party/WebKit/Source/web/WebPluginContainerImpl.cpp b/third_party/WebKit/Source/web/WebPluginContainerImpl.cpp
index 471292df..c46a25054 100644
--- a/third_party/WebKit/Source/web/WebPluginContainerImpl.cpp
+++ b/third_party/WebKit/Source/web/WebPluginContainerImpl.cpp
@@ -202,7 +202,7 @@
     if (!m_webPlugin->acceptsInputEvents())
         return;
 
-    RefPtrWillBeRawPtr<WebPluginContainerImpl> protector(this);
+    RawPtr<WebPluginContainerImpl> protector(this);
     // The events we pass are defined at:
     //    http://devedge-temp.mozilla.org/library/manuals/2002/plugin/1.0/structures5.html#1000000
     // Don't take the documentation as truth, however.  There are many cases
@@ -401,7 +401,7 @@
 
 void WebPluginContainerImpl::dispatchProgressEvent(const WebString& type, bool lengthComputable, unsigned long long loaded, unsigned long long total, const WebString& url)
 {
-    RefPtrWillBeRawPtr<ProgressEvent> event;
+    RawPtr<ProgressEvent> event;
     if (url.isEmpty()) {
         event = ProgressEvent::create(type, lengthComputable, loaded, total);
     } else {
@@ -624,7 +624,7 @@
     // v8ScriptableObject below. crbug.com/458776. Hold a reference to the
     // plugin container to prevent this from happening. For Oilpan, 'this'
     // is already stack reachable, so redundant.
-    RefPtrWillBeRawPtr<WebPluginContainerImpl> protector(this);
+    RawPtr<WebPluginContainerImpl> protector(this);
 
     v8::Local<v8::Object> object = m_webPlugin->v8ScriptableObject(isolate);
 
@@ -640,16 +640,6 @@
     return object;
 }
 
-bool WebPluginContainerImpl::getFormValue(String& value)
-{
-    WebString webValue;
-    if (m_webPlugin->getFormValue(webValue)) {
-        value = webValue;
-        return true;
-    }
-    return false;
-}
-
 bool WebPluginContainerImpl::supportsKeyboardFocus() const
 {
     return m_webPlugin->supportsKeyboardFocus();
diff --git a/third_party/WebKit/Source/web/WebPluginContainerImpl.h b/third_party/WebKit/Source/web/WebPluginContainerImpl.h
index 86e7188..79b21a3 100644
--- a/third_party/WebKit/Source/web/WebPluginContainerImpl.h
+++ b/third_party/WebKit/Source/web/WebPluginContainerImpl.h
@@ -62,18 +62,17 @@
 struct WebPrintPresetOptions;
 
 class WEB_EXPORT WebPluginContainerImpl final : public PluginView, WTF_NON_EXPORTED_BASE(public WebPluginContainer), public LocalFrameLifecycleObserver {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(WebPluginContainerImpl);
-    WILL_BE_USING_PRE_FINALIZER(WebPluginContainerImpl, dispose);
+    USING_GARBAGE_COLLECTED_MIXIN(WebPluginContainerImpl);
+    USING_PRE_FINALIZER(WebPluginContainerImpl, dispose);
 public:
-    static PassRefPtrWillBeRawPtr<WebPluginContainerImpl> create(HTMLPlugInElement* element, WebPlugin* webPlugin)
+    static RawPtr<WebPluginContainerImpl> create(HTMLPlugInElement* element, WebPlugin* webPlugin)
     {
-        return adoptRefWillBeNoop(new WebPluginContainerImpl(element, webPlugin));
+        return new WebPluginContainerImpl(element, webPlugin);
     }
 
     // PluginView methods
     WebLayer* platformLayer() const override;
     v8::Local<v8::Object> scriptableObject(v8::Isolate*) override;
-    bool getFormValue(String&) override;
     bool supportsKeyboardFocus() const override;
     bool supportsInputMethod() const override;
     bool canProcessDrag() const override;
@@ -191,7 +190,7 @@
 
     friend class WebPluginContainerTest;
 
-    RawPtrWillBeMember<HTMLPlugInElement> m_element;
+    Member<HTMLPlugInElement> m_element;
     WebPlugin* m_webPlugin;
 
     WebLayer* m_webLayer;
diff --git a/third_party/WebKit/Source/web/WebPluginDocument.cpp b/third_party/WebKit/Source/web/WebPluginDocument.cpp
index a8e9c3d..e45be7b 100644
--- a/third_party/WebKit/Source/web/WebPluginDocument.cpp
+++ b/third_party/WebKit/Source/web/WebPluginDocument.cpp
@@ -51,20 +51,20 @@
 }
 
 
-WebPluginDocument::WebPluginDocument(const PassRefPtrWillBeRawPtr<PluginDocument>& elem)
+WebPluginDocument::WebPluginDocument(const RawPtr<PluginDocument>& elem)
     : WebDocument(elem)
 {
 }
 
 DEFINE_WEB_NODE_TYPE_CASTS(WebPluginDocument, isDocumentNode() && constUnwrap<Document>()->isPluginDocument());
 
-WebPluginDocument& WebPluginDocument::operator=(const PassRefPtrWillBeRawPtr<PluginDocument>& elem)
+WebPluginDocument& WebPluginDocument::operator=(const RawPtr<PluginDocument>& elem)
 {
     m_private = elem;
     return *this;
 }
 
-WebPluginDocument::operator PassRefPtrWillBeRawPtr<PluginDocument>() const
+WebPluginDocument::operator RawPtr<PluginDocument>() const
 {
     return static_cast<PluginDocument*>(m_private.get());
 }
diff --git a/third_party/WebKit/Source/web/WebRange.cpp b/third_party/WebKit/Source/web/WebRange.cpp
index 211f321..c1f700c 100644
--- a/third_party/WebKit/Source/web/WebRange.cpp
+++ b/third_party/WebKit/Source/web/WebRange.cpp
@@ -82,12 +82,12 @@
     return createRange(PlainTextRange(start, start + length).createRange(*scope));
 }
 
-WebRange::WebRange(const PassRefPtrWillBeRawPtr<Range>& range)
+WebRange::WebRange(const RawPtr<Range>& range)
     : m_private(range)
 {
 }
 
-WebRange::operator PassRefPtrWillBeRawPtr<Range>() const
+WebRange::operator RawPtr<Range>() const
 {
     return m_private.get();
 }
diff --git a/third_party/WebKit/Source/web/WebRemoteFrameImpl.cpp b/third_party/WebKit/Source/web/WebRemoteFrameImpl.cpp
index 17bbfae7..fbf358e1 100644
--- a/third_party/WebKit/Source/web/WebRemoteFrameImpl.cpp
+++ b/third_party/WebKit/Source/web/WebRemoteFrameImpl.cpp
@@ -583,7 +583,7 @@
 {
     WebLocalFrameImpl* child = WebLocalFrameImpl::create(scope, client, opener);
     insertAfter(child, previousSibling);
-    RefPtrWillBeRawPtr<RemoteFrameOwner> owner = RemoteFrameOwner::create(static_cast<SandboxFlags>(sandboxFlags), frameOwnerProperties);
+    RawPtr<RemoteFrameOwner> owner = RemoteFrameOwner::create(static_cast<SandboxFlags>(sandboxFlags), frameOwnerProperties);
     // FIXME: currently this calls LocalFrame::init() on the created LocalFrame, which may
     // result in the browser observing two navigations to about:blank (one from the initial
     // frame creation, and one from swapping it into the remote process). FrameLoader might
@@ -606,12 +606,12 @@
 {
     WebRemoteFrameImpl* child = WebRemoteFrameImpl::create(scope, client, opener);
     appendChild(child);
-    RefPtrWillBeRawPtr<RemoteFrameOwner> owner = RemoteFrameOwner::create(static_cast<SandboxFlags>(sandboxFlags), WebFrameOwnerProperties());
+    RawPtr<RemoteFrameOwner> owner = RemoteFrameOwner::create(static_cast<SandboxFlags>(sandboxFlags), WebFrameOwnerProperties());
     child->initializeCoreFrame(frame()->host(), owner.get(), name, uniqueName);
     return child;
 }
 
-void WebRemoteFrameImpl::setCoreFrame(PassRefPtrWillBeRawPtr<RemoteFrame> frame)
+void WebRemoteFrameImpl::setCoreFrame(RawPtr<RemoteFrame> frame)
 {
     m_frame = frame;
 }
diff --git a/third_party/WebKit/Source/web/WebRemoteFrameImpl.h b/third_party/WebKit/Source/web/WebRemoteFrameImpl.h
index beef5a4e..222137c 100644
--- a/third_party/WebKit/Source/web/WebRemoteFrameImpl.h
+++ b/third_party/WebKit/Source/web/WebRemoteFrameImpl.h
@@ -140,7 +140,7 @@
     void initializeCoreFrame(FrameHost*, FrameOwner*, const AtomicString& name, const AtomicString& uniqueName) override;
     RemoteFrame* frame() const override { return m_frame.get(); }
 
-    void setCoreFrame(PassRefPtrWillBeRawPtr<RemoteFrame>);
+    void setCoreFrame(RawPtr<RemoteFrame>);
 
     WebRemoteFrameClient* client() const { return m_client; }
 
@@ -178,8 +178,8 @@
     bool isWebRemoteFrame() const override;
     WebRemoteFrame* toWebRemoteFrame() override;
 
-    OwnPtrWillBeMember<RemoteFrameClientImpl> m_frameClient;
-    RefPtrWillBeMember<RemoteFrame> m_frame;
+    Member<RemoteFrameClientImpl> m_frameClient;
+    Member<RemoteFrame> m_frame;
     WebRemoteFrameClient* m_client;
 
 #if ENABLE(OILPAN)
diff --git a/third_party/WebKit/Source/web/WebSearchableFormData.cpp b/third_party/WebKit/Source/web/WebSearchableFormData.cpp
index 19b1561..40bbd9b38 100644
--- a/third_party/WebKit/Source/web/WebSearchableFormData.cpp
+++ b/third_party/WebKit/Source/web/WebSearchableFormData.cpp
@@ -102,7 +102,7 @@
 // selected state.
 bool isSelectInDefaultState(const HTMLSelectElement& select)
 {
-    const WillBeHeapVector<RawPtrWillBeMember<HTMLElement>>& listItems = select.listItems();
+    const HeapVector<Member<HTMLElement>>& listItems = select.listItems();
     if (select.multiple() || select.size() > 1) {
         for (const auto& item : listItems) {
             if (!isHTMLOptionElement(*item))
@@ -232,8 +232,8 @@
 
 WebSearchableFormData::WebSearchableFormData(const WebFormElement& form, const WebInputElement& selectedInputElement)
 {
-    RefPtrWillBeRawPtr<HTMLFormElement> formElement = static_cast<PassRefPtrWillBeRawPtr<HTMLFormElement>>(form);
-    HTMLInputElement* inputElement = static_cast<PassRefPtrWillBeRawPtr<HTMLInputElement>>(selectedInputElement).get();
+    RawPtr<HTMLFormElement> formElement = static_cast<RawPtr<HTMLFormElement>>(form);
+    HTMLInputElement* inputElement = static_cast<RawPtr<HTMLInputElement>>(selectedInputElement).get();
 
     // Only consider forms that GET data.
     // Allow HTTPS only when an input element is provided.
diff --git a/third_party/WebKit/Source/web/WebSelectElement.cpp b/third_party/WebKit/Source/web/WebSelectElement.cpp
index 3d5bb85..16b26010 100644
--- a/third_party/WebKit/Source/web/WebSelectElement.cpp
+++ b/third_party/WebKit/Source/web/WebSelectElement.cpp
@@ -40,7 +40,7 @@
 
 WebVector<WebElement> WebSelectElement::listItems() const
 {
-    const WillBeHeapVector<RawPtrWillBeMember<HTMLElement>>& sourceItems = constUnwrap<HTMLSelectElement>()->listItems();
+    const HeapVector<Member<HTMLElement>>& sourceItems = constUnwrap<HTMLSelectElement>()->listItems();
     WebVector<WebElement> items(sourceItems.size());
     for (size_t i = 0; i < sourceItems.size(); ++i)
         items[i] = WebElement(sourceItems[i].get());
@@ -48,20 +48,20 @@
     return items;
 }
 
-WebSelectElement::WebSelectElement(const PassRefPtrWillBeRawPtr<HTMLSelectElement>& element)
+WebSelectElement::WebSelectElement(const RawPtr<HTMLSelectElement>& element)
     : WebFormControlElement(element)
 {
 }
 
 DEFINE_WEB_NODE_TYPE_CASTS(WebSelectElement, isHTMLSelectElement(constUnwrap<Node>()));
 
-WebSelectElement& WebSelectElement::operator=(const PassRefPtrWillBeRawPtr<HTMLSelectElement>& element)
+WebSelectElement& WebSelectElement::operator=(const RawPtr<HTMLSelectElement>& element)
 {
     m_private = element;
     return *this;
 }
 
-WebSelectElement::operator PassRefPtrWillBeRawPtr<HTMLSelectElement>() const
+WebSelectElement::operator RawPtr<HTMLSelectElement>() const
 {
     return toHTMLSelectElement(m_private.get());
 }
diff --git a/third_party/WebKit/Source/web/WebSettingsImpl.h b/third_party/WebKit/Source/web/WebSettingsImpl.h
index 7babca7..dcb5a0ac 100644
--- a/third_party/WebKit/Source/web/WebSettingsImpl.h
+++ b/third_party/WebKit/Source/web/WebSettingsImpl.h
@@ -213,7 +213,7 @@
 
 private:
     Settings* m_settings;
-    RawPtrWillBeUntracedMember<DevToolsEmulator> m_devToolsEmulator;
+    UntracedMember<DevToolsEmulator> m_devToolsEmulator;
     bool m_showFPSCounter;
     bool m_showPaintRects;
     bool m_renderVSyncNotificationEnabled;
diff --git a/third_party/WebKit/Source/web/WebSharedWorkerImpl.cpp b/third_party/WebKit/Source/web/WebSharedWorkerImpl.cpp
index 5abee88..abf6665 100644
--- a/third_party/WebKit/Source/web/WebSharedWorkerImpl.cpp
+++ b/third_party/WebKit/Source/web/WebSharedWorkerImpl.cpp
@@ -217,7 +217,7 @@
     // Not suppported in SharedWorker.
 }
 
-void WebSharedWorkerImpl::reportConsoleMessage(PassRefPtrWillBeRawPtr<ConsoleMessage>)
+void WebSharedWorkerImpl::reportConsoleMessage(RawPtr<ConsoleMessage>)
 {
     // Not supported in SharedWorker.
 }
@@ -323,11 +323,11 @@
     // FIXME: this document's origin is pristine and without any extra privileges. (crbug.com/254993)
     SecurityOrigin* starterOrigin = document->getSecurityOrigin();
 
-    OwnPtrWillBeRawPtr<WorkerClients> workerClients = WorkerClients::create();
+    RawPtr<WorkerClients> workerClients = WorkerClients::create();
     provideLocalFileSystemToWorker(workerClients.get(), LocalFileSystemClient::create());
     WebSecurityOrigin webSecurityOrigin(m_loadingDocument->getSecurityOrigin());
     provideContentSettingsClientToWorker(workerClients.get(), adoptPtr(m_client->createWorkerContentSettingsClientProxy(webSecurityOrigin)));
-    RefPtrWillBeRawPtr<ContentSecurityPolicy> contentSecurityPolicy = m_mainScriptLoader->releaseContentSecurityPolicy();
+    RawPtr<ContentSecurityPolicy> contentSecurityPolicy = m_mainScriptLoader->releaseContentSecurityPolicy();
     WorkerThreadStartMode startMode = m_workerInspectorProxy->workerStartMode(document);
     OwnPtr<WorkerThreadStartupData> startupData = WorkerThreadStartupData::create(
         m_url,
diff --git a/third_party/WebKit/Source/web/WebSharedWorkerImpl.h b/third_party/WebKit/Source/web/WebSharedWorkerImpl.h
index 20c16bb4..89c1ae0 100644
--- a/third_party/WebKit/Source/web/WebSharedWorkerImpl.h
+++ b/third_party/WebKit/Source/web/WebSharedWorkerImpl.h
@@ -77,7 +77,7 @@
     // WorkerReportingProxy methods:
     void reportException(
         const WTF::String&, int, int, const WTF::String&, int) override;
-    void reportConsoleMessage(PassRefPtrWillBeRawPtr<ConsoleMessage>) override;
+    void reportConsoleMessage(RawPtr<ConsoleMessage>) override;
     void postMessageToPageInspector(const WTF::String&) override;
     void postWorkerConsoleAgentEnabled() override { }
     void didEvaluateWorkerScript(bool success) override { }
@@ -135,15 +135,15 @@
     bool postTaskToWorkerGlobalScope(PassOwnPtr<ExecutionContextTask>);
 
     // 'shadow page' - created to proxy loading requests from the worker.
-    RefPtrWillBePersistent<ExecutionContext> m_loadingDocument;
+    Persistent<ExecutionContext> m_loadingDocument;
     WebView* m_webView;
-    RefPtrWillBePersistent<WebLocalFrameImpl> m_mainFrame;
+    Persistent<WebLocalFrameImpl> m_mainFrame;
     bool m_askedToTerminate;
 
     // This one is bound to and used only on the main thread.
     OwnPtr<WebServiceWorkerNetworkProvider> m_networkProvider;
 
-    OwnPtrWillBePersistent<WorkerInspectorProxy> m_workerInspectorProxy;
+    Persistent<WorkerInspectorProxy> m_workerInspectorProxy;
 
     OwnPtr<WorkerThread> m_workerThread;
 
diff --git a/third_party/WebKit/Source/web/WebSurroundingText.cpp b/third_party/WebKit/Source/web/WebSurroundingText.cpp
index f2411c7..0bbc7e67 100644
--- a/third_party/WebKit/Source/web/WebSurroundingText.cpp
+++ b/third_party/WebKit/Source/web/WebSurroundingText.cpp
@@ -47,7 +47,7 @@
 
 void WebSurroundingText::initialize(const WebRange& webRange, size_t maxLength)
 {
-    if (RefPtrWillBeRawPtr<Range> range = static_cast<PassRefPtrWillBeRawPtr<Range>>(webRange))
+    if (RawPtr<Range> range = static_cast<RawPtr<Range>>(webRange))
         m_private.reset(new SurroundingText(*range, maxLength));
 }
 
diff --git a/third_party/WebKit/Source/web/WebTextCheckingCompletionImpl.h b/third_party/WebKit/Source/web/WebTextCheckingCompletionImpl.h
index 7856cd2d..2047c052 100644
--- a/third_party/WebKit/Source/web/WebTextCheckingCompletionImpl.h
+++ b/third_party/WebKit/Source/web/WebTextCheckingCompletionImpl.h
@@ -40,7 +40,7 @@
 
 class WebTextCheckingCompletionImpl final : public WebTextCheckingCompletion {
 public:
-    explicit WebTextCheckingCompletionImpl(PassRefPtrWillBeRawPtr<TextCheckingRequest> request)
+    explicit WebTextCheckingCompletionImpl(RawPtr<TextCheckingRequest> request)
         : m_request(request)
     {
     }
@@ -51,7 +51,7 @@
 private:
     virtual ~WebTextCheckingCompletionImpl() { }
 
-    RefPtrWillBePersistent<TextCheckingRequest> m_request;
+    Persistent<TextCheckingRequest> m_request;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/web/WebViewFrameWidget.h b/third_party/WebKit/Source/web/WebViewFrameWidget.h
index 3c739ab6..a8a76efb 100644
--- a/third_party/WebKit/Source/web/WebViewFrameWidget.h
+++ b/third_party/WebKit/Source/web/WebViewFrameWidget.h
@@ -101,7 +101,7 @@
 private:
     WebWidgetClient* m_client;
     RefPtr<WebViewImpl> m_webView;
-    RefPtrWillBePersistent<WebLocalFrameImpl> m_mainFrame;
+    Persistent<WebLocalFrameImpl> m_mainFrame;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/web/WebViewImpl.cpp b/third_party/WebKit/Source/web/WebViewImpl.cpp
index 92b230f..1e934d3 100644
--- a/third_party/WebKit/Source/web/WebViewImpl.cpp
+++ b/third_party/WebKit/Source/web/WebViewImpl.cpp
@@ -279,9 +279,9 @@
 
 class EmptyEventListener final : public EventListener {
 public:
-    static PassRefPtrWillBeRawPtr<EmptyEventListener> create()
+    static RawPtr<EmptyEventListener> create()
     {
-        return adoptRefWillBeNoop(new EmptyEventListener());
+        return new EmptyEventListener();
     }
 
     bool operator==(const EventListener& other) const override
@@ -854,7 +854,7 @@
 
             if (m_webSettings->multiTargetTapNotificationEnabled()) {
                 Vector<IntRect> goodTargets;
-                WillBeHeapVector<RawPtrWillBeMember<Node>> highlightNodes;
+                HeapVector<Member<Node>> highlightNodes;
                 findGoodTouchTargets(boundingBox, mainFrameImpl()->frame(), goodTargets, highlightNodes);
                 // FIXME: replace touch adjustment code when numberOfGoodTargets == 1?
                 // Single candidate case is currently handled by: https://bugs.webkit.org/show_bug.cgi?id=85101
@@ -1093,7 +1093,7 @@
         return WebInputEventResult::HandledSystem;
     }
 
-    RefPtrWillBeRawPtr<Frame> focusedFrame = focusedCoreFrame();
+    RawPtr<Frame> focusedFrame = focusedCoreFrame();
     if (focusedFrame && focusedFrame->isRemoteFrame()) {
         WebRemoteFrameImpl* webFrame = WebRemoteFrameImpl::fromFrame(*toRemoteFrame(focusedFrame.get()));
         webFrame->client()->forwardInputEvent(&event);
@@ -1407,13 +1407,13 @@
 {
     Node* touchNode = bestTapNode(targetedTapEvent);
 
-    WillBeHeapVector<RawPtrWillBeMember<Node>> highlightNodes;
+    HeapVector<Member<Node>> highlightNodes;
     highlightNodes.append(touchNode);
 
     enableTapHighlights(highlightNodes);
 }
 
-void WebViewImpl::enableTapHighlights(WillBeHeapVector<RawPtrWillBeMember<Node>>& highlightNodes)
+void WebViewImpl::enableTapHighlights(HeapVector<Member<Node>>& highlightNodes)
 {
     if (highlightNodes.isEmpty())
         return;
@@ -1547,7 +1547,7 @@
 }
 #endif
 
-void WebViewImpl::showContextMenuAtPoint(float x, float y, PassRefPtrWillBeRawPtr<ContextMenuProvider> menuProvider)
+void WebViewImpl::showContextMenuAtPoint(float x, float y, RawPtr<ContextMenuProvider> menuProvider)
 {
     if (!page()->mainFrame()->isLocalFrame())
         return;
@@ -2172,7 +2172,7 @@
     if (m_mouseCaptureNode && WebInputEvent::isMouseEventType(inputEvent.type)) {
         TRACE_EVENT1("input", "captured mouse event", "type", inputEvent.type);
         // Save m_mouseCaptureNode since mouseCaptureLost() will clear it.
-        RefPtrWillBeRawPtr<Node> node = m_mouseCaptureNode;
+        RawPtr<Node> node = m_mouseCaptureNode;
 
         // Not all platforms call mouseCaptureLost() directly.
         if (inputEvent.type == WebInputEvent::MouseUp)
@@ -2248,7 +2248,7 @@
     m_page->focusController().setFocused(enable);
     if (enable) {
         m_page->focusController().setActive(true);
-        RefPtrWillBeRawPtr<LocalFrame> focusedFrame = m_page->focusController().focusedFrame();
+        RawPtr<LocalFrame> focusedFrame = m_page->focusController().focusedFrame();
         if (focusedFrame) {
             Element* element = focusedFrame->document()->focusedElement();
             if (element && focusedFrame->selection().selection().isNone()) {
@@ -2280,7 +2280,7 @@
         if (!frame)
             return;
 
-        RefPtrWillBeRawPtr<LocalFrame> focusedFrame = m_page->focusController().focusedFrame();
+        RawPtr<LocalFrame> focusedFrame = m_page->focusController().focusedFrame();
         if (focusedFrame) {
             // Finish an ongoing composition to delete the composition node.
             if (focusedFrame->inputMethodController().hasComposition()) {
@@ -2901,17 +2901,17 @@
 
 void WebViewImpl::clearFocusedElement()
 {
-    RefPtrWillBeRawPtr<Frame> frame = focusedCoreFrame();
+    RawPtr<Frame> frame = focusedCoreFrame();
     if (!frame || !frame->isLocalFrame())
         return;
 
     LocalFrame* localFrame = toLocalFrame(frame.get());
 
-    RefPtrWillBeRawPtr<Document> document = localFrame->document();
+    RawPtr<Document> document = localFrame->document();
     if (!document)
         return;
 
-    RefPtrWillBeRawPtr<Element> oldFocusedElement = document->focusedElement();
+    RawPtr<Element> oldFocusedElement = document->focusedElement();
     document->clearFocusedElement();
     if (!oldFocusedElement)
         return;
@@ -3405,7 +3405,7 @@
     if (m_shouldAutoResize || !mainFrameImpl())
         return;
 
-    RefPtrWillBeRawPtr<FrameView> view = mainFrameImpl()->frameView();
+    RawPtr<FrameView> view = mainFrameImpl()->frameView();
     if (!view)
         return;
 
@@ -3490,11 +3490,11 @@
                                            const WebPoint& location)
 {
     HitTestResult result = hitTestResultForViewportPos(location);
-    RefPtrWillBeRawPtr<Node> node = result.innerNode();
+    RawPtr<Node> node = result.innerNode();
     if (!isHTMLVideoElement(*node) && !isHTMLAudioElement(*node))
         return;
 
-    RefPtrWillBeRawPtr<HTMLMediaElement> mediaElement = static_pointer_cast<HTMLMediaElement>(node);
+    RawPtr<HTMLMediaElement> mediaElement = static_pointer_cast<HTMLMediaElement>(node);
     switch (action.type) {
     case WebMediaPlayerAction::Play:
         if (action.enable)
@@ -3521,7 +3521,7 @@
 {
     // FIXME: Location is probably in viewport coordinates
     HitTestResult result = hitTestResultForRootFramePos(location);
-    RefPtrWillBeRawPtr<Node> node = result.innerNode();
+    RawPtr<Node> node = result.innerNode();
     if (!isHTMLObjectElement(*node) && !isHTMLEmbedElement(*node))
         return;
 
diff --git a/third_party/WebKit/Source/web/WebViewImpl.h b/third_party/WebKit/Source/web/WebViewImpl.h
index 55bfb96..a428bd4 100644
--- a/third_party/WebKit/Source/web/WebViewImpl.h
+++ b/third_party/WebKit/Source/web/WebViewImpl.h
@@ -362,7 +362,7 @@
     // Keyboard event to the Right Mouse button down event.
     WebInputEventResult sendContextMenuEvent(const WebKeyboardEvent&);
 
-    void showContextMenuAtPoint(float x, float y, PassRefPtrWillBeRawPtr<ContextMenuProvider>);
+    void showContextMenuAtPoint(float x, float y, RawPtr<ContextMenuProvider>);
 
     void showContextMenuForElement(WebElement);
 
@@ -458,7 +458,7 @@
     void computeScaleAndScrollForBlockRect(const WebPoint& hitPoint, const WebRect& blockRect, float padding, float defaultScaleWhenAlreadyLegible, float& scale, WebPoint& scroll);
     Node* bestTapNode(const GestureEventWithHitTestResults& targetedTapEvent);
     void enableTapHighlightAtPoint(const GestureEventWithHitTestResults& targetedTapEvent);
-    void enableTapHighlights(WillBeHeapVector<RawPtrWillBeMember<Node>>&);
+    void enableTapHighlights(HeapVector<Member<Node>>&);
     void computeScaleAndScrollForFocusedNode(Node* focusedNode, bool zoomInToLegibleScale, float& scale, IntPoint& scroll, bool& needAnimation);
 
     void animateDoubleTapZoom(const IntPoint&);
@@ -628,7 +628,7 @@
     WebViewClient* m_client; // Can be 0 (e.g. unittests, shared workers, etc.)
     WebSpellCheckClient* m_spellCheckClient;
 
-    OwnPtrWillBePersistent<ChromeClientImpl> m_chromeClientImpl;
+    Persistent<ChromeClientImpl> m_chromeClientImpl;
     ContextMenuClientImpl m_contextMenuClientImpl;
     DragClientImpl m_dragClientImpl;
     EditorClientImpl m_editorClientImpl;
@@ -643,7 +643,7 @@
     // The upper bound on the size when auto-resizing.
     IntSize m_maxAutoSize;
 
-    OwnPtrWillBePersistent<Page> m_page;
+    Persistent<Page> m_page;
 
     // An object that can be used to manipulate m_page->settings() without linking
     // against WebCore. This is lazily allocated the first time GetWebSettings()
@@ -716,7 +716,7 @@
     // The popup associated with an input/select element.
     RefPtr<WebPagePopupImpl> m_pagePopup;
 
-    OwnPtrWillBePersistent<DevToolsEmulator> m_devToolsEmulator;
+    Persistent<DevToolsEmulator> m_devToolsEmulator;
     OwnPtr<PageOverlay> m_pageColorOverlay;
 
     // Whether the webview is rendering transparently.
@@ -726,7 +726,7 @@
     bool m_tabsToLinks;
 
     // If set, the (plugin) node which has mouse capture.
-    RefPtrWillBePersistent<Node> m_mouseCaptureNode;
+    Persistent<Node> m_mouseCaptureNode;
     RefPtr<UserGestureToken> m_mouseCaptureGestureToken;
 
     RefPtr<UserGestureToken> m_pointerLockGestureToken;
@@ -745,7 +745,7 @@
     WebGestureDevice m_flingSourceDevice;
     Vector<OwnPtr<LinkHighlightImpl>> m_linkHighlights;
     OwnPtr<CompositorAnimationTimeline> m_linkHighlightsTimeline;
-    OwnPtrWillBePersistent<FullscreenController> m_fullscreenController;
+    Persistent<FullscreenController> m_fullscreenController;
 
     bool m_showFPSCounter;
     WebColor m_baseBackgroundColor;
@@ -760,7 +760,7 @@
 
     FloatSize m_elasticOverscroll;
 
-    RefPtrWillBePersistent<EventListener> m_popupMouseWheelEventListener;
+    Persistent<EventListener> m_popupMouseWheelEventListener;
 
     WebPageImportanceSignals m_pageImportanceSignals;
 
diff --git a/third_party/WebKit/Source/web/WorkerContentSettingsClient.cpp b/third_party/WebKit/Source/web/WorkerContentSettingsClient.cpp
index a95dc20..fcbd5f1 100644
--- a/third_party/WebKit/Source/web/WorkerContentSettingsClient.cpp
+++ b/third_party/WebKit/Source/web/WorkerContentSettingsClient.cpp
@@ -38,9 +38,9 @@
 
 namespace blink {
 
-PassOwnPtrWillBeRawPtr<WorkerContentSettingsClient> WorkerContentSettingsClient::create(PassOwnPtr<WebWorkerContentSettingsClientProxy> proxy)
+RawPtr<WorkerContentSettingsClient> WorkerContentSettingsClient::create(PassOwnPtr<WebWorkerContentSettingsClientProxy> proxy)
 {
-    return adoptPtrWillBeNoop(new WorkerContentSettingsClient(proxy));
+    return new WorkerContentSettingsClient(proxy);
 }
 
 WorkerContentSettingsClient::~WorkerContentSettingsClient()
@@ -70,7 +70,7 @@
 {
     WorkerClients* clients = toWorkerGlobalScope(context).clients();
     ASSERT(clients);
-    return static_cast<WorkerContentSettingsClient*>(WillBeHeapSupplement<WorkerClients>::from(*clients, supplementName()));
+    return static_cast<WorkerContentSettingsClient*>(HeapSupplement<WorkerClients>::from(*clients, supplementName()));
 }
 
 WorkerContentSettingsClient::WorkerContentSettingsClient(PassOwnPtr<WebWorkerContentSettingsClientProxy> proxy)
diff --git a/third_party/WebKit/Source/web/WorkerContentSettingsClient.h b/third_party/WebKit/Source/web/WorkerContentSettingsClient.h
index 8adf793..c63fcf5 100644
--- a/third_party/WebKit/Source/web/WorkerContentSettingsClient.h
+++ b/third_party/WebKit/Source/web/WorkerContentSettingsClient.h
@@ -40,10 +40,10 @@
 class WebString;
 class WebWorkerContentSettingsClientProxy;
 
-class WorkerContentSettingsClient final : public NoBaseWillBeGarbageCollectedFinalized<WorkerContentSettingsClient>, public WillBeHeapSupplement<WorkerClients> {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(WorkerContentSettingsClient);
+class WorkerContentSettingsClient final : public GarbageCollectedFinalized<WorkerContentSettingsClient>, public HeapSupplement<WorkerClients> {
+    USING_GARBAGE_COLLECTED_MIXIN(WorkerContentSettingsClient);
 public:
-    static PassOwnPtrWillBeRawPtr<WorkerContentSettingsClient> create(PassOwnPtr<WebWorkerContentSettingsClientProxy>);
+    static RawPtr<WorkerContentSettingsClient> create(PassOwnPtr<WebWorkerContentSettingsClientProxy>);
     virtual ~WorkerContentSettingsClient();
 
     bool requestFileSystemAccessSync();
@@ -52,7 +52,7 @@
     static const char* supplementName();
     static WorkerContentSettingsClient* from(ExecutionContext&);
 
-    DEFINE_INLINE_VIRTUAL_TRACE() { WillBeHeapSupplement<WorkerClients>::trace(visitor); }
+    DEFINE_INLINE_VIRTUAL_TRACE() { HeapSupplement<WorkerClients>::trace(visitor); }
 
 private:
     explicit WorkerContentSettingsClient(PassOwnPtr<WebWorkerContentSettingsClientProxy>);
diff --git a/third_party/WebKit/Source/web/WorkerGlobalScopeProxyProviderImpl.cpp b/third_party/WebKit/Source/web/WorkerGlobalScopeProxyProviderImpl.cpp
index 69cb3084..d9b34a2 100644
--- a/third_party/WebKit/Source/web/WorkerGlobalScopeProxyProviderImpl.cpp
+++ b/third_party/WebKit/Source/web/WorkerGlobalScopeProxyProviderImpl.cpp
@@ -50,7 +50,7 @@
     if (worker->getExecutionContext()->isDocument()) {
         Document* document = toDocument(worker->getExecutionContext());
         WebLocalFrameImpl* webFrame = WebLocalFrameImpl::fromFrame(document->frame());
-        OwnPtrWillBeRawPtr<WorkerClients> workerClients = WorkerClients::create();
+        RawPtr<WorkerClients> workerClients = WorkerClients::create();
         provideLocalFileSystemToWorker(workerClients.get(), LocalFileSystemClient::create());
         provideContentSettingsClientToWorker(workerClients.get(), adoptPtr(webFrame->client()->createWorkerContentSettingsClientProxy()));
         // FIXME: call provideServiceWorkerContainerClientToWorker here when we
diff --git a/third_party/WebKit/Source/web/WorkerGlobalScopeProxyProviderImpl.h b/third_party/WebKit/Source/web/WorkerGlobalScopeProxyProviderImpl.h
index 1f07a7c..7978549 100644
--- a/third_party/WebKit/Source/web/WorkerGlobalScopeProxyProviderImpl.h
+++ b/third_party/WebKit/Source/web/WorkerGlobalScopeProxyProviderImpl.h
@@ -40,13 +40,13 @@
 class Worker;
 class WorkerGlobalScopeProxy;
 
-class WorkerGlobalScopeProxyProviderImpl final : public NoBaseWillBeGarbageCollectedFinalized<WorkerGlobalScopeProxyProviderImpl>, public WorkerGlobalScopeProxyProvider {
-    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(WorkerGlobalScopeProxyProviderImpl);
+class WorkerGlobalScopeProxyProviderImpl final : public GarbageCollectedFinalized<WorkerGlobalScopeProxyProviderImpl>, public WorkerGlobalScopeProxyProvider {
+    USING_GARBAGE_COLLECTED_MIXIN(WorkerGlobalScopeProxyProviderImpl);
     WTF_MAKE_NONCOPYABLE(WorkerGlobalScopeProxyProviderImpl);
 public:
-    static PassOwnPtrWillBeRawPtr<WorkerGlobalScopeProxyProviderImpl> create()
+    static RawPtr<WorkerGlobalScopeProxyProviderImpl> create()
     {
-        return adoptPtrWillBeNoop(new WorkerGlobalScopeProxyProviderImpl());
+        return new WorkerGlobalScopeProxyProviderImpl();
     }
 
     ~WorkerGlobalScopeProxyProviderImpl() override { }
diff --git a/third_party/WebKit/Source/web/tests/ActivityLoggerTest.cpp b/third_party/WebKit/Source/web/tests/ActivityLoggerTest.cpp
index 33f94403..5f313ac 100644
--- a/third_party/WebKit/Source/web/tests/ActivityLoggerTest.cpp
+++ b/third_party/WebKit/Source/web/tests/ActivityLoggerTest.cpp
@@ -90,7 +90,7 @@
     void executeScriptInIsolatedWorld(const String& script) const
     {
         v8::HandleScope scope(v8::Isolate::GetCurrent());
-        WillBeHeapVector<ScriptSourceCode> sources;
+        HeapVector<ScriptSourceCode> sources;
         sources.append(ScriptSourceCode(script));
         Vector<v8::Local<v8::Value>> results;
         m_scriptController->executeScriptInIsolatedWorld(isolatedWorldId, sources, extensionGroup, 0);
@@ -109,7 +109,7 @@
     static const int extensionGroup = 0;
 
     WebViewHelper m_webViewHelper;
-    RawPtrWillBePersistent<ScriptController> m_scriptController;
+    Persistent<ScriptController> m_scriptController;
     // TestActivityLogger is owned by a static table within V8DOMActivityLogger
     // and should be alive as long as not overwritten.
     TestActivityLogger* m_activityLogger;
diff --git a/third_party/WebKit/Source/web/tests/ChromeClientImplTest.cpp b/third_party/WebKit/Source/web/tests/ChromeClientImplTest.cpp
index 59a4380d..62bc2d6 100644
--- a/third_party/WebKit/Source/web/tests/ChromeClientImplTest.cpp
+++ b/third_party/WebKit/Source/web/tests/ChromeClientImplTest.cpp
@@ -117,7 +117,7 @@
     WebViewImpl* m_webView;
     WebFrame* m_mainFrame;
     TestWebFrameClient m_webFrameClient;
-    RawPtrWillBePersistent<ChromeClientImpl> m_chromeClientImpl;
+    Persistent<ChromeClientImpl> m_chromeClientImpl;
 };
 
 TEST_F(GetNavigationPolicyTest, LeftClick)
diff --git a/third_party/WebKit/Source/web/tests/FrameTestHelpers.h b/third_party/WebKit/Source/web/tests/FrameTestHelpers.h
index 57f105b..81e9023 100644
--- a/third_party/WebKit/Source/web/tests/FrameTestHelpers.h
+++ b/third_party/WebKit/Source/web/tests/FrameTestHelpers.h
@@ -199,7 +199,7 @@
         WebDOMMessageEvent) override { }
 
 private:
-    RawPtrWillBePersistent<WebRemoteFrameImpl> const m_frame;
+    Persistent<WebRemoteFrameImpl> const m_frame;
 };
 
 } // namespace FrameTestHelpers
diff --git a/third_party/WebKit/Source/web/tests/ImeOnFocusTest.cpp b/third_party/WebKit/Source/web/tests/ImeOnFocusTest.cpp
index f90a0f1b..426a761 100644
--- a/third_party/WebKit/Source/web/tests/ImeOnFocusTest.cpp
+++ b/third_party/WebKit/Source/web/tests/ImeOnFocusTest.cpp
@@ -68,7 +68,7 @@
 
     std::string m_baseURL;
     FrameTestHelpers::WebViewHelper m_webViewHelper;
-    RefPtrWillBePersistent<Document> m_document;
+    Persistent<Document> m_document;
 };
 
 void ImeOnFocusTest::sendGestureTap(WebView* webView, IntPoint clientPoint)
diff --git a/third_party/WebKit/Source/web/tests/KeyboardTest.cpp b/third_party/WebKit/Source/web/tests/KeyboardTest.cpp
index f67ea06..e626596 100644
--- a/third_party/WebKit/Source/web/tests/KeyboardTest.cpp
+++ b/third_party/WebKit/Source/web/tests/KeyboardTest.cpp
@@ -52,7 +52,7 @@
     {
         PlatformKeyboardEventBuilder evt(webKeyboardEvent);
         evt.setKeyType(keyType);
-        RefPtrWillBeRawPtr<KeyboardEvent> keyboardEvent = KeyboardEvent::create(evt, 0);
+        RawPtr<KeyboardEvent> keyboardEvent = KeyboardEvent::create(evt, 0);
         OwnPtr<Settings> settings = Settings::create();
         EditingBehavior behavior(settings->editingBehaviorType());
         return behavior.interpretKeyEvent(*keyboardEvent);
diff --git a/third_party/WebKit/Source/web/tests/LinkSelectionTest.cpp b/third_party/WebKit/Source/web/tests/LinkSelectionTest.cpp
index 28a8b4b..5693121 100644
--- a/third_party/WebKit/Source/web/tests/LinkSelectionTest.cpp
+++ b/third_party/WebKit/Source/web/tests/LinkSelectionTest.cpp
@@ -46,7 +46,7 @@
 
     FrameTestHelpers::WebViewHelper m_helper;
     WebViewImpl* m_webView = nullptr;
-    RawPtrWillBePersistent<WebLocalFrameImpl> m_mainFrame = nullptr;
+    Persistent<WebLocalFrameImpl> m_mainFrame = nullptr;
 };
 
 void LinkSelectionTestBase::emulateMouseDrag(const IntPoint& downPoint, const IntPoint& upPoint, int modifiers, DragFlags dragFlags)
@@ -200,7 +200,7 @@
     ASSERT_NE(nullptr, textToSelect);
 
     // Select some page text outside the link element.
-    const RefPtrWillBeRawPtr<Range> rangeToSelect = Range::create(*document, textToSelect, 1, textToSelect, 20);
+    const RawPtr<Range> rangeToSelect = Range::create(*document, textToSelect, 1, textToSelect, 20);
     const auto& selectionRect = rangeToSelect->boundingBox();
     m_mainFrame->moveRangeSelection(selectionRect.minXMinYCorner(), selectionRect.maxXMaxYCorner());
     EXPECT_FALSE(getSelectionText().isEmpty());
@@ -213,9 +213,9 @@
 protected:
     class MockEventListener final : public EventListener {
     public:
-        static PassRefPtrWillBeRawPtr<MockEventListener> create()
+        static RawPtr<MockEventListener> create()
         {
-            return adoptRefWillBeNoop(new MockEventListener());
+            return new MockEventListener();
         }
 
         bool operator==(const EventListener& other) const final
@@ -262,10 +262,10 @@
                 m_element->removeAllEventListeners();
             }
 
-            RawPtrWillBePersistent<Element> m_element;
+            Persistent<Element> m_element;
         } const listenersCleaner(&element);
 
-        RefPtrWillBeRawPtr<MockEventListener> eventHandler = MockEventListener::create();
+        RawPtr<MockEventListener> eventHandler = MockEventListener::create();
         element.addEventListener(
             doubleClickEvent ? EventTypeNames::dblclick : EventTypeNames::click,
             eventHandler);
diff --git a/third_party/WebKit/Source/web/tests/TextFinderTest.cpp b/third_party/WebKit/Source/web/tests/TextFinderTest.cpp
index 653ce70..2b7781e 100644
--- a/third_party/WebKit/Source/web/tests/TextFinderTest.cpp
+++ b/third_party/WebKit/Source/web/tests/TextFinderTest.cpp
@@ -35,7 +35,7 @@
         WebLocalFrameImpl& frameImpl = *m_webViewHelper.webViewImpl()->mainFrameImpl();
         frameImpl.viewImpl()->resize(WebSize(640, 480));
         frameImpl.viewImpl()->updateAllLifecyclePhases();
-        m_document = PassRefPtrWillBeRawPtr<Document>(frameImpl.document());
+        m_document = RawPtr<Document>(frameImpl.document());
         m_textFinder = &frameImpl.ensureTextFinder();
     }
 
@@ -46,8 +46,8 @@
 
 private:
     FrameTestHelpers::WebViewHelper m_webViewHelper;
-    RefPtrWillBePersistent<Document> m_document;
-    RawPtrWillBePersistent<TextFinder> m_textFinder;
+    Persistent<Document> m_document;
+    Persistent<TextFinder> m_textFinder;
 };
 
 Document& TextFinderTest::document() const
@@ -62,7 +62,7 @@
 
 WebFloatRect TextFinderTest::findInPageRect(Node* startContainer, int startOffset, Node* endContainer, int endOffset)
 {
-    RefPtrWillBeRawPtr<Range> range = Range::create(startContainer->document(), startContainer, startOffset, endContainer, endOffset);
+    RawPtr<Range> range = Range::create(startContainer->document(), startContainer, startOffset, endContainer, endOffset);
     return WebFloatRect(findInPageRectFromRange(range.get()));
 }
 
@@ -186,7 +186,7 @@
 TEST_F(TextFinderTest, FindTextInShadowDOM)
 {
     document().body()->setInnerHTML("<b>FOO</b><i>foo</i>", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<ShadowRoot> shadowRoot = document().body()->createShadowRootInternal(ShadowRootType::V0, ASSERT_NO_EXCEPTION);
+    RawPtr<ShadowRoot> shadowRoot = document().body()->createShadowRootInternal(ShadowRootType::V0, ASSERT_NO_EXCEPTION);
     shadowRoot->setInnerHTML("<content select=\"i\"></content><u>Foo</u><content></content>", ASSERT_NO_EXCEPTION);
     Node* textInBElement = document().body()->firstChild()->firstChild();
     Node* textInIElement = document().body()->lastChild()->firstChild();
@@ -300,7 +300,7 @@
 TEST_F(TextFinderTest, ScopeTextMatchesWithShadowDOM)
 {
     document().body()->setInnerHTML("<b>FOO</b><i>foo</i>", ASSERT_NO_EXCEPTION);
-    RefPtrWillBeRawPtr<ShadowRoot> shadowRoot = document().body()->createShadowRootInternal(ShadowRootType::V0, ASSERT_NO_EXCEPTION);
+    RawPtr<ShadowRoot> shadowRoot = document().body()->createShadowRootInternal(ShadowRootType::V0, ASSERT_NO_EXCEPTION);
     shadowRoot->setInnerHTML("<content select=\"i\"></content><u>Foo</u><content></content>", ASSERT_NO_EXCEPTION);
     Node* textInBElement = document().body()->firstChild()->firstChild();
     Node* textInIElement = document().body()->lastChild()->firstChild();
diff --git a/third_party/WebKit/Source/web/tests/TopControlsTest.cpp b/third_party/WebKit/Source/web/tests/TopControlsTest.cpp
index e6a39ff..a4de2cf 100644
--- a/third_party/WebKit/Source/web/tests/TopControlsTest.cpp
+++ b/third_party/WebKit/Source/web/tests/TopControlsTest.cpp
@@ -120,9 +120,9 @@
         webViewImpl()->handleInputEvent(generateEvent(WebInputEvent::GestureScrollEnd));
     }
 
-    PassRefPtrWillBeRawPtr<Element> getElementById(const WebString& id)
+    RawPtr<Element> getElementById(const WebString& id)
     {
-        return static_cast<PassRefPtrWillBeRawPtr<Element>>(
+        return static_cast<RawPtr<Element>>(
             webViewImpl()->mainFrame()->document().getElementById(id));
     }
 
@@ -577,9 +577,9 @@
     // When the top controls are showing, there's 300px for the layout height so
     // 50% should result in both the position:fixed and position: absolute divs
     // having 150px of height.
-    RefPtrWillBeRawPtr<Element> absPos =
+    RawPtr<Element> absPos =
         getElementById(WebString::fromUTF8("abs"));
-    RefPtrWillBeRawPtr<Element> fixedPos =
+    RawPtr<Element> fixedPos =
         getElementById(WebString::fromUTF8("fixed"));
     EXPECT_FLOAT_EQ(150.f, absPos->getBoundingClientRect()->height());
     EXPECT_FLOAT_EQ(150.f, fixedPos->getBoundingClientRect()->height());
@@ -621,9 +621,9 @@
 
     // 'vh' units should be based on the viewport when the top controls are
     // hidden.
-    RefPtrWillBeRawPtr<Element> absPos =
+    RawPtr<Element> absPos =
         getElementById(WebString::fromUTF8("abs"));
-    RefPtrWillBeRawPtr<Element> fixedPos =
+    RawPtr<Element> fixedPos =
         getElementById(WebString::fromUTF8("fixed"));
     EXPECT_FLOAT_EQ(200.f, absPos->getBoundingClientRect()->height());
     EXPECT_FLOAT_EQ(200.f, fixedPos->getBoundingClientRect()->height());
@@ -675,9 +675,9 @@
     // we have to account for the minimum page scale factor. Since both boxes
     // are 50vh, and layout scale = 0.5, we have a vh viewport of 400 / 0.5 = 800
     // so we expect 50vh to be 400px.
-    RefPtrWillBeRawPtr<Element> absPos =
+    RawPtr<Element> absPos =
         getElementById(WebString::fromUTF8("abs"));
-    RefPtrWillBeRawPtr<Element> fixedPos =
+    RawPtr<Element> fixedPos =
         getElementById(WebString::fromUTF8("fixed"));
     EXPECT_FLOAT_EQ(400.f, absPos->getBoundingClientRect()->height());
     EXPECT_FLOAT_EQ(400.f, fixedPos->getBoundingClientRect()->height());
diff --git a/third_party/WebKit/Source/web/tests/TouchActionTest.cpp b/third_party/WebKit/Source/web/tests/TouchActionTest.cpp
index 3784842..26d8ccd 100644
--- a/third_party/WebKit/Source/web/tests/TouchActionTest.cpp
+++ b/third_party/WebKit/Source/web/tests/TouchActionTest.cpp
@@ -143,7 +143,7 @@
     // scenario.
     WebView* webView = setupTest(file, client);
 
-    RefPtrWillBePersistent<Document> document = static_cast<PassRefPtrWillBeRawPtr<Document>>(webView->mainFrame()->document());
+    Persistent<Document> document = static_cast<RawPtr<Document>>(webView->mainFrame()->document());
     runTestOnTree(document.get(), webView, client);
 
     m_webViewHelper.reset(); // Explicitly reset to break dependency on locally scoped client.
@@ -158,8 +158,8 @@
     TrackExceptionState es;
 
     // Oilpan: see runTouchActionTest() comment why these are persistent references.
-    RefPtrWillBePersistent<Document> document = static_cast<PassRefPtrWillBeRawPtr<Document>>(webView->mainFrame()->document());
-    RefPtrWillBePersistent<StaticElementList> hostNodes = document->querySelectorAll("[shadow-host]", es);
+    Persistent<Document> document = static_cast<RawPtr<Document>>(webView->mainFrame()->document());
+    Persistent<StaticElementList> hostNodes = document->querySelectorAll("[shadow-host]", es);
     ASSERT_FALSE(es.hadException());
     ASSERT_GE(hostNodes->length(), 1u);
 
@@ -184,7 +184,7 @@
 
     for (; curFrame; curFrame = curFrame->nextSibling()) {
         // Oilpan: see runTouchActionTest() comment why these are persistent references.
-        RefPtrWillBePersistent<Document> contentDoc = static_cast<PassRefPtrWillBeRawPtr<Document>>(curFrame->document());
+        Persistent<Document> contentDoc = static_cast<RawPtr<Document>>(curFrame->document());
         runTestOnTree(contentDoc.get(), webView, client);
     }
 
@@ -202,7 +202,7 @@
 
     // Scroll to verify the code properly transforms windows to client co-ords.
     const int kScrollOffset = 100;
-    RefPtrWillBeRawPtr<Document> document = static_cast<PassRefPtrWillBeRawPtr<Document>>(webView->mainFrame()->document());
+    RawPtr<Document> document = static_cast<RawPtr<Document>>(webView->mainFrame()->document());
     document->frame()->view()->setScrollPosition(IntPoint(0, kScrollOffset), ProgrammaticScroll);
 
     return webView;
@@ -214,7 +214,7 @@
     TrackExceptionState es;
 
     // Oilpan: see runTouchActionTest() comment why these are persistent references.
-    RefPtrWillBePersistent<StaticElementList> elements = root->querySelectorAll("[expected-action]", es);
+    Persistent<StaticElementList> elements = root->querySelectorAll("[expected-action]", es);
     ASSERT_FALSE(es.hadException());
 
     for (unsigned index = 0; index < elements->length(); index++) {
diff --git a/third_party/WebKit/Source/web/tests/VisualViewportTest.cpp b/third_party/WebKit/Source/web/tests/VisualViewportTest.cpp
index 439e73a..260d46f 100644
--- a/third_party/WebKit/Source/web/tests/VisualViewportTest.cpp
+++ b/third_party/WebKit/Source/web/tests/VisualViewportTest.cpp
@@ -898,7 +898,7 @@
     visualViewport.setScale(2);
     visualViewport.setLocation(FloatPoint(350, 350));
 
-    RefPtrWillBePersistent<HistoryItem> firstItem = webViewImpl()->mainFrameImpl()->frame()->loader().currentItem();
+    Persistent<HistoryItem> firstItem = webViewImpl()->mainFrameImpl()->frame()->loader().currentItem();
     EXPECT_POINT_EQ(IntPoint(0, 1000), firstItem->scrollPoint());
 
     // Now navigate to a page which causes a smaller frameView. Make sure that
diff --git a/third_party/WebKit/Source/web/tests/WebFrameTest.cpp b/third_party/WebKit/Source/web/tests/WebFrameTest.cpp
index 5466924..835c19d3 100644
--- a/third_party/WebKit/Source/web/tests/WebFrameTest.cpp
+++ b/third_party/WebKit/Source/web/tests/WebFrameTest.cpp
@@ -215,9 +215,9 @@
 
     void applyViewportStyleOverride(FrameTestHelpers::WebViewHelper* webViewHelper)
     {
-        RefPtrWillBeRawPtr<StyleSheetContents> styleSheet = StyleSheetContents::create(CSSParserContext(UASheetMode, 0));
+        RawPtr<StyleSheetContents> styleSheet = StyleSheetContents::create(CSSParserContext(UASheetMode, 0));
         styleSheet->parseString(loadResourceAsASCIIString("viewportAndroid.css"));
-        OwnPtrWillBeRawPtr<RuleSet> ruleSet = RuleSet::create();
+        RawPtr<RuleSet> ruleSet = RuleSet::create();
         ruleSet->addRulesFromSheet(styleSheet.get(), MediaQueryEvaluator("screen"));
 
         Document* document = toLocalFrame(webViewHelper->webViewImpl()->page()->mainFrame())->document();
@@ -256,7 +256,7 @@
         registerMockedHttpURLLoad("nodeimage.html");
         webViewHelper->initializeAndLoad(m_baseURL + "nodeimage.html");
         webViewHelper->resize(WebSize(640, 480));
-        RefPtrWillBeRawPtr<LocalFrame> frame = toLocalFrame(webViewHelper->webViewImpl()->page()->mainFrame());
+        RawPtr<LocalFrame> frame = toLocalFrame(webViewHelper->webViewImpl()->page()->mainFrame());
         ASSERT(frame);
         Element* element = frame->document()->getElementById(testcase.c_str());
         return frame->nodeImage(*element);
@@ -847,7 +847,7 @@
     FrameTestHelpers::WebViewHelper webViewHelper(this);
     webViewHelper.initializeAndLoad("about:blank");
 
-    RefPtrWillBeRawPtr<LocalFrame> frame = toLocalFrame(webViewHelper.webViewImpl()->page()->mainFrame());
+    RawPtr<LocalFrame> frame = toLocalFrame(webViewHelper.webViewImpl()->page()->mainFrame());
     NonThrowableExceptionState exceptionState;
     frame->domWindow()->postMessage(SerializedScriptValueFactory::instance().create("message"), 0, "*", frame->localDOMWindow(), exceptionState);
     webViewHelper.reset();
@@ -3933,8 +3933,8 @@
     WebFindOptions options;
     WebString searchText = WebString::fromUTF8(kFindString);
     WebLocalFrameImpl* mainFrame = toWebLocalFrameImpl(webViewHelper.webView()->mainFrame());
-    RefPtrWillBeRawPtr<WebLocalFrameImpl> secondFrame = toWebLocalFrameImpl(mainFrame->traverseNext(false));
-    RefPtrWillBeRawPtr<LocalFrame> holdSecondFrame(secondFrame->frame());
+    RawPtr<WebLocalFrameImpl> secondFrame = toWebLocalFrameImpl(mainFrame->traverseNext(false));
+    RawPtr<LocalFrame> holdSecondFrame(secondFrame->frame());
 
     // Detach the frame before finding.
     removeElementById(mainFrame, "frame");
@@ -3972,7 +3972,7 @@
     WebString searchText = WebString::fromUTF8(kFindString);
     WebLocalFrameImpl* mainFrame = toWebLocalFrameImpl(webViewHelper.webView()->mainFrame());
     WebLocalFrameImpl* secondFrame = toWebLocalFrameImpl(mainFrame->traverseNext(false));
-    RefPtrWillBeRawPtr<LocalFrame> holdSecondFrame(secondFrame->frame());
+    RawPtr<LocalFrame> holdSecondFrame(secondFrame->frame());
 
     for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false))
         EXPECT_TRUE(frame->toWebLocalFrame()->find(kFindIdentifier, searchText, options, false, 0));
@@ -4010,7 +4010,7 @@
     WebString searchText = WebString::fromUTF8(kFindString);
     WebLocalFrameImpl* mainFrame = toWebLocalFrameImpl(webViewHelper.webView()->mainFrame());
     WebLocalFrameImpl* secondFrame = toWebLocalFrameImpl(mainFrame->traverseNext(false));
-    RefPtrWillBeRawPtr<LocalFrame> holdSecondFrame(secondFrame->frame());
+    RawPtr<LocalFrame> holdSecondFrame(secondFrame->frame());
 
     for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false))
         EXPECT_TRUE(frame->toWebLocalFrame()->find(kFindIdentifier, searchText, options, false, 0));
@@ -4085,7 +4085,7 @@
 
     // Get the tickmarks for the original find request.
     FrameView* frameView = webViewHelper.webViewImpl()->mainFrameImpl()->frameView();
-    RefPtrWillBeRawPtr<Scrollbar> scrollbar = frameView->createScrollbar(HorizontalScrollbar);
+    RawPtr<Scrollbar> scrollbar = frameView->createScrollbar(HorizontalScrollbar);
     Vector<IntRect> originalTickmarks;
     scrollbar->getTickmarks(originalTickmarks);
     EXPECT_EQ(4u, originalTickmarks.size());
@@ -5805,7 +5805,7 @@
     KURL destination = document->url();
     destination.setFragmentIdentifier("test");
 
-    RefPtrWillBeRawPtr<Event> event = MouseEvent::create(EventTypeNames::click, false, false,
+    RawPtr<Event> event = MouseEvent::create(EventTypeNames::click, false, false,
         document->domWindow(), 0, 0, 0, 0, 0, 0, 0, PlatformEvent::NoModifiers, 1, 0, nullptr, 0,
         PlatformMouseEvent::RealOrIndistinguishable, String());
     FrameLoadRequest frameRequest(document, ResourceRequest(destination));
@@ -5855,7 +5855,7 @@
     KURL destination = toKURL(m_baseURL + "hello_world.html");
 
     // ctrl+click event
-    RefPtrWillBeRawPtr<Event> event = MouseEvent::create(EventTypeNames::click, false, false,
+    RawPtr<Event> event = MouseEvent::create(EventTypeNames::click, false, false,
         document->domWindow(), 0, 0, 0, 0, 0, 0, 0, PlatformEvent::CtrlKey, 0, 0, nullptr, 0,
         PlatformMouseEvent::RealOrIndistinguishable, String());
     FrameLoadRequest frameRequest(document, ResourceRequest(destination));
@@ -5875,7 +5875,7 @@
     webViewHelper.initializeAndLoad(m_baseURL + "fragment_middle_click.html", true);
     WebFrame* frame = webViewHelper.webView()->mainFrame();
     const FrameLoader& mainFrameLoader = webViewHelper.webViewImpl()->mainFrameImpl()->frame()->loader();
-    RefPtrWillBePersistent<HistoryItem> firstItem = mainFrameLoader.currentItem();
+    Persistent<HistoryItem> firstItem = mainFrameLoader.currentItem();
     EXPECT_TRUE(firstItem);
 
     registerMockedHttpURLLoad("white-1x1.png");
@@ -5886,7 +5886,7 @@
     EXPECT_EQ(firstItem.get(), mainFrameLoader.currentItem());
 
     FrameTestHelpers::reloadFrame(frame);
-    EXPECT_EQ(WebURLRequest::ReloadIgnoringCacheData, frame->dataSource()->request().getCachePolicy());
+    EXPECT_EQ(WebURLRequest::ValidatingCacheData, frame->dataSource()->request().getCachePolicy());
 }
 
 TEST_P(ParameterizedWebFrameTest, BackDuringChildFrameReload)
@@ -5929,7 +5929,7 @@
     EXPECT_EQ(WebString::fromUTF8("POST"), frame->dataSource()->request().httpMethod());
 
     FrameTestHelpers::reloadFrame(frame);
-    EXPECT_EQ(WebURLRequest::ReloadIgnoringCacheData, frame->dataSource()->request().getCachePolicy());
+    EXPECT_EQ(WebURLRequest::ValidatingCacheData, frame->dataSource()->request().getCachePolicy());
     EXPECT_EQ(WebNavigationTypeFormResubmitted, frame->dataSource()->navigationType());
 }
 
@@ -5940,7 +5940,7 @@
     webViewHelper.initializeAndLoad(m_baseURL + "fragment_middle_click.html", true);
     WebFrame* frame = webViewHelper.webView()->mainFrame();
     const FrameLoader& mainFrameLoader = webViewHelper.webViewImpl()->mainFrameImpl()->frame()->loader();
-    RefPtrWillBePersistent<HistoryItem> firstItem = mainFrameLoader.currentItem();
+    Persistent<HistoryItem> firstItem = mainFrameLoader.currentItem();
     EXPECT_TRUE(firstItem);
 
     registerMockedHttpURLLoad("white-1x1.png");
@@ -5948,9 +5948,9 @@
     EXPECT_NE(firstItem.get(), mainFrameLoader.currentItem());
 
     // Cache policy overrides should take.
-    FrameTestHelpers::loadHistoryItem(frame, WebHistoryItem(firstItem), WebHistoryDifferentDocumentLoad, WebURLRequest::ReloadIgnoringCacheData);
+    FrameTestHelpers::loadHistoryItem(frame, WebHistoryItem(firstItem), WebHistoryDifferentDocumentLoad, WebURLRequest::ValidatingCacheData);
     EXPECT_EQ(firstItem.get(), mainFrameLoader.currentItem());
-    EXPECT_EQ(WebURLRequest::ReloadIgnoringCacheData, frame->dataSource()->request().getCachePolicy());
+    EXPECT_EQ(WebURLRequest::ValidatingCacheData, frame->dataSource()->request().getCachePolicy());
 }
 
 
@@ -6024,7 +6024,7 @@
     webViewHelper.initializeAndLoad(m_baseURL + "iframe_reload.html", true, &mainClient);
 
     WebLocalFrameImpl* mainFrame = webViewHelper.webViewImpl()->mainFrameImpl();
-    RefPtrWillBeRawPtr<WebLocalFrameImpl> childFrame = toWebLocalFrameImpl(mainFrame->firstChild());
+    RawPtr<WebLocalFrameImpl> childFrame = toWebLocalFrameImpl(mainFrame->firstChild());
     ASSERT_EQ(childFrame->client(), &childClient);
     EXPECT_EQ(mainClient.childFrameCreationCount(), 1);
     EXPECT_EQ(childClient.willSendRequestCallCount(), 1);
@@ -6038,7 +6038,7 @@
 
     EXPECT_EQ(mainClient.childFrameCreationCount(), 2);
     EXPECT_EQ(childClient.willSendRequestCallCount(), 2);
-    EXPECT_EQ(childClient.getCachePolicy(), WebURLRequest::ReloadIgnoringCacheData);
+    EXPECT_EQ(childClient.getCachePolicy(), WebURLRequest::ValidatingCacheData);
 }
 
 class TestSameDocumentWebFrameClient : public FrameTestHelpers::TestWebFrameClient {
@@ -6205,7 +6205,7 @@
     TestDidNavigateCommitTypeWebFrameClient client;
     FrameTestHelpers::WebViewHelper webViewHelper(this);
     WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "push_state.html", true, &client);
-    RefPtrWillBePersistent<HistoryItem> item = toLocalFrame(webViewImpl->page()->mainFrame())->loader().currentItem();
+    Persistent<HistoryItem> item = toLocalFrame(webViewImpl->page()->mainFrame())->loader().currentItem();
     runPendingTasks();
 
     toLocalFrame(webViewImpl->page()->mainFrame())->loader().load(
@@ -6806,7 +6806,7 @@
     EXPECT_EQ(14, webFrameClient.manifestChangeCount());
 }
 
-static PassRefPtrWillBeRawPtr<Resource> fetchManifest(Document* document, const KURL& url)
+static RawPtr<Resource> fetchManifest(Document* document, const KURL& url)
 {
     FetchRequest fetchRequest = FetchRequest(ResourceRequest(url), FetchInitiatorInfo());
     fetchRequest.mutableResourceRequest().setRequestContext(WebURLRequest::RequestContextManifest);
@@ -6823,7 +6823,7 @@
     webViewHelper.initializeAndLoad(m_baseURL + "foo.html");
     Document* document = toWebLocalFrameImpl(webViewHelper.webViewImpl()->mainFrame())->frame()->document();
 
-    RefPtrWillBeRawPtr<Resource> resource = fetchManifest(document, toKURL(m_baseURL + "link-manifest-fetch.json"));
+    RawPtr<Resource> resource = fetchManifest(document, toKURL(m_baseURL + "link-manifest-fetch.json"));
 
     EXPECT_TRUE(resource->isLoaded());
 }
@@ -6837,7 +6837,7 @@
     webViewHelper.initializeAndLoad(m_baseURL + "foo.html");
     Document* document = toWebLocalFrameImpl(webViewHelper.webViewImpl()->mainFrame())->frame()->document();
 
-    RefPtrWillBeRawPtr<Resource> resource = fetchManifest(document, toKURL(m_notBaseURL + "link-manifest-fetch.json"));
+    RawPtr<Resource> resource = fetchManifest(document, toKURL(m_notBaseURL + "link-manifest-fetch.json"));
 
     EXPECT_TRUE(resource->isLoaded());
 }
@@ -6851,7 +6851,7 @@
     webViewHelper.initializeAndLoad(m_baseURL + "foo.html");
     Document* document = toWebLocalFrameImpl(webViewHelper.webViewImpl()->mainFrame())->frame()->document();
 
-    RefPtrWillBeRawPtr<Resource> resource = fetchManifest(document, toKURL(m_notBaseURL + "link-manifest-fetch.json"));
+    RawPtr<Resource> resource = fetchManifest(document, toKURL(m_notBaseURL + "link-manifest-fetch.json"));
 
     EXPECT_EQ(0, resource.get()); // Fetching resource wasn't allowed.
 }
@@ -6865,7 +6865,7 @@
     webViewHelper.initializeAndLoad(m_baseURL + "foo.html");
     Document* document = toWebLocalFrameImpl(webViewHelper.webViewImpl()->mainFrame())->frame()->document();
 
-    RefPtrWillBeRawPtr<Resource> resource = fetchManifest(document, toKURL(m_notBaseURL + "link-manifest-fetch.json"));
+    RawPtr<Resource> resource = fetchManifest(document, toKURL(m_notBaseURL + "link-manifest-fetch.json"));
 
     EXPECT_TRUE(resource->isLoaded());
 }
@@ -6879,7 +6879,7 @@
     webViewHelper.initializeAndLoad(m_baseURL + "foo.html", true);
     WebFrame* frame = webViewHelper.webView()->mainFrame();
     FrameTestHelpers::reloadFrameIgnoringCache(frame);
-    EXPECT_EQ(WebURLRequest::ReloadBypassingCache, frame->dataSource()->request().getCachePolicy());
+    EXPECT_EQ(WebURLRequest::BypassingCache, frame->dataSource()->request().getCachePolicy());
 }
 
 static void nodeImageTestValidation(const IntSize& referenceBitmapSize, DragImage* dragImage)
@@ -7029,7 +7029,7 @@
     WebLocalFrame* childFrame = FrameTestHelpers::createLocalChild(view->mainFrame()->toWebRemoteFrame());
 
     // Purposely keep the LocalFrame alive so it's the last thing to be destroyed.
-    RefPtrWillBePersistent<Frame> childCoreFrame = childFrame->toImplBase()->frame();
+    Persistent<Frame> childCoreFrame = childFrame->toImplBase()->frame();
     view->close();
     childCoreFrame.clear();
 }
@@ -7633,7 +7633,7 @@
 
     // Pointing a named frame to an empty URL should just return a reference to
     // the frame's window without navigating it.
-    RefPtrWillBeRawPtr<DOMWindow> result = mainWindow->open("", "frame1", "", mainWindow, mainWindow);
+    RawPtr<DOMWindow> result = mainWindow->open("", "frame1", "", mainWindow, mainWindow);
     EXPECT_EQ(remoteClient.lastRequest().url(), WebURL(destination));
     EXPECT_EQ(result, remoteFrame->toImplBase()->frame()->domWindow());
 
@@ -7830,7 +7830,7 @@
     KURL resourceUrl(ParsedURLString, "chrome://test.pdf");
     registerMockedChromeURLLoad("test.pdf");
 
-    RefPtrWillBeRawPtr<LocalFrame> frame(toLocalFrame(webViewHelper.webViewImpl()->page()->mainFrame()));
+    RawPtr<LocalFrame> frame(toLocalFrame(webViewHelper.webViewImpl()->page()->mainFrame()));
 
     MockDocumentThreadableLoaderClient client;
     ThreadableLoaderOptions options;
@@ -8485,7 +8485,7 @@
     TestWebRemoteFrameClientForVisibility m_remoteFrameClient;
     FrameTestHelpers::WebViewHelper m_webViewHelper;
     WebFrame* m_frame;
-    RawPtrWillBePersistent<WebRemoteFrameImpl> m_webRemoteFrame;
+    Persistent<WebRemoteFrameImpl> m_webRemoteFrame;
 };
 
 TEST_F(WebFrameVisibilityChangeTest, RemoteFrameVisibilityChange)
diff --git a/third_party/WebKit/Source/web/tests/WebInputEventConversionTest.cpp b/third_party/WebKit/Source/web/tests/WebInputEventConversionTest.cpp
index 5c38d5b..b6df4fe 100644
--- a/third_party/WebKit/Source/web/tests/WebInputEventConversionTest.cpp
+++ b/third_party/WebKit/Source/web/tests/WebInputEventConversionTest.cpp
@@ -51,14 +51,14 @@
 
 namespace blink {
 
-PassRefPtrWillBeRawPtr<KeyboardEvent> createKeyboardEventWithLocation(KeyboardEvent::KeyLocationCode location)
+RawPtr<KeyboardEvent> createKeyboardEventWithLocation(KeyboardEvent::KeyLocationCode location)
 {
     return KeyboardEvent::create("keydown", true, true, 0, "", "", "", location, PlatformEvent::NoModifiers, 0);
 }
 
 int getModifiersForKeyLocationCode(KeyboardEvent::KeyLocationCode location)
 {
-    RefPtrWillBeRawPtr<KeyboardEvent> event = createKeyboardEventWithLocation(location);
+    RawPtr<KeyboardEvent> event = createKeyboardEventWithLocation(location);
     WebKeyboardEventBuilder convertedEvent(*event);
     return convertedEvent.modifiers;
 }
@@ -84,7 +84,7 @@
 
 TEST(WebInputEventConversionTest, WebMouseEventBuilder)
 {
-    RefPtrWillBeRawPtr<TouchEvent> event = TouchEvent::create();
+    RawPtr<TouchEvent> event = TouchEvent::create();
     WebMouseEventBuilder mouse(0, 0, *event);
     EXPECT_EQ(WebInputEvent::Undefined, mouse.type);
 }
@@ -102,7 +102,7 @@
     webViewImpl->resize(WebSize(pageWidth, pageHeight));
     webViewImpl->updateAllLifecyclePhases();
 
-    RefPtrWillBeRawPtr<Document> document = toLocalFrame(webViewImpl->page()->mainFrame())->document();
+    RawPtr<Document> document = toLocalFrame(webViewImpl->page()->mainFrame())->document();
     LocalDOMWindow* domWindow = document->domWindow();
     LayoutView* documentLayoutView = document->layoutView();
 
@@ -118,14 +118,14 @@
     p0.rotationAngle = p1.rotationAngle = 1.f;
     p0.force = p1.force = 25.f;
 
-    RefPtrWillBeRawPtr<Touch> touch0 = Touch::create(toLocalFrame(webViewImpl->page()->mainFrame()), document.get(), p0.id, p0.screenPosition, p0.position, FloatSize(p0.radiusX, p0.radiusY), p0.rotationAngle, p0.force, String());
-    RefPtrWillBeRawPtr<Touch> touch1 = Touch::create(toLocalFrame(webViewImpl->page()->mainFrame()), document.get(), p1.id, p1.screenPosition, p1.position, FloatSize(p1.radiusX, p1.radiusY), p1.rotationAngle, p1.force, String());
+    RawPtr<Touch> touch0 = Touch::create(toLocalFrame(webViewImpl->page()->mainFrame()), document.get(), p0.id, p0.screenPosition, p0.position, FloatSize(p0.radiusX, p0.radiusY), p0.rotationAngle, p0.force, String());
+    RawPtr<Touch> touch1 = Touch::create(toLocalFrame(webViewImpl->page()->mainFrame()), document.get(), p1.id, p1.screenPosition, p1.position, FloatSize(p1.radiusX, p1.radiusY), p1.rotationAngle, p1.force, String());
 
     // Test touchstart.
     {
-        RefPtrWillBeRawPtr<TouchList> touchList = TouchList::create();
+        RawPtr<TouchList> touchList = TouchList::create();
         touchList->append(touch0);
-        RefPtrWillBeRawPtr<TouchEvent> touchEvent = TouchEvent::create(touchList.get(), touchList.get(), touchList.get(), EventTypeNames::touchstart, domWindow, PlatformEvent::NoModifiers, false, false, 0);
+        RawPtr<TouchEvent> touchEvent = TouchEvent::create(touchList.get(), touchList.get(), touchList.get(), EventTypeNames::touchstart, domWindow, PlatformEvent::NoModifiers, false, false, 0);
 
         WebTouchEventBuilder webTouchBuilder(documentLayoutView, *touchEvent);
         ASSERT_EQ(1u, webTouchBuilder.touchesLength);
@@ -143,12 +143,12 @@
 
     // Test touchmove.
     {
-        RefPtrWillBeRawPtr<TouchList> activeTouchList = TouchList::create();
-        RefPtrWillBeRawPtr<TouchList> movedTouchList = TouchList::create();
+        RawPtr<TouchList> activeTouchList = TouchList::create();
+        RawPtr<TouchList> movedTouchList = TouchList::create();
         activeTouchList->append(touch0);
         activeTouchList->append(touch1);
         movedTouchList->append(touch0);
-        RefPtrWillBeRawPtr<TouchEvent> touchEvent = TouchEvent::create(activeTouchList.get(), activeTouchList.get(), movedTouchList.get(), EventTypeNames::touchmove, domWindow, PlatformEvent::NoModifiers, false, false, 0);
+        RawPtr<TouchEvent> touchEvent = TouchEvent::create(activeTouchList.get(), activeTouchList.get(), movedTouchList.get(), EventTypeNames::touchmove, domWindow, PlatformEvent::NoModifiers, false, false, 0);
 
         WebTouchEventBuilder webTouchBuilder(documentLayoutView, *touchEvent);
         ASSERT_EQ(2u, webTouchBuilder.touchesLength);
@@ -161,12 +161,12 @@
 
     // Test touchmove, different point yields same ordering.
     {
-        RefPtrWillBeRawPtr<TouchList> activeTouchList = TouchList::create();
-        RefPtrWillBeRawPtr<TouchList> movedTouchList = TouchList::create();
+        RawPtr<TouchList> activeTouchList = TouchList::create();
+        RawPtr<TouchList> movedTouchList = TouchList::create();
         activeTouchList->append(touch0);
         activeTouchList->append(touch1);
         movedTouchList->append(touch1);
-        RefPtrWillBeRawPtr<TouchEvent> touchEvent = TouchEvent::create(activeTouchList.get(), activeTouchList.get(), movedTouchList.get(), EventTypeNames::touchmove, domWindow, PlatformEvent::NoModifiers, false, false, 0);
+        RawPtr<TouchEvent> touchEvent = TouchEvent::create(activeTouchList.get(), activeTouchList.get(), movedTouchList.get(), EventTypeNames::touchmove, domWindow, PlatformEvent::NoModifiers, false, false, 0);
 
         WebTouchEventBuilder webTouchBuilder(documentLayoutView, *touchEvent);
         ASSERT_EQ(2u, webTouchBuilder.touchesLength);
@@ -179,11 +179,11 @@
 
     // Test touchend.
     {
-        RefPtrWillBeRawPtr<TouchList> activeTouchList = TouchList::create();
-        RefPtrWillBeRawPtr<TouchList> releasedTouchList = TouchList::create();
+        RawPtr<TouchList> activeTouchList = TouchList::create();
+        RawPtr<TouchList> releasedTouchList = TouchList::create();
         activeTouchList->append(touch0);
         releasedTouchList->append(touch1);
-        RefPtrWillBeRawPtr<TouchEvent> touchEvent = TouchEvent::create(activeTouchList.get(), activeTouchList.get(), releasedTouchList.get(), EventTypeNames::touchend, domWindow, PlatformEvent::NoModifiers, false, false, 0);
+        RawPtr<TouchEvent> touchEvent = TouchEvent::create(activeTouchList.get(), activeTouchList.get(), releasedTouchList.get(), EventTypeNames::touchend, domWindow, PlatformEvent::NoModifiers, false, false, 0);
 
         WebTouchEventBuilder webTouchBuilder(documentLayoutView, *touchEvent);
         ASSERT_EQ(2u, webTouchBuilder.touchesLength);
@@ -196,11 +196,11 @@
 
     // Test touchcancel.
     {
-        RefPtrWillBeRawPtr<TouchList> activeTouchList = TouchList::create();
-        RefPtrWillBeRawPtr<TouchList> cancelledTouchList = TouchList::create();
+        RawPtr<TouchList> activeTouchList = TouchList::create();
+        RawPtr<TouchList> cancelledTouchList = TouchList::create();
         cancelledTouchList->append(touch0);
         cancelledTouchList->append(touch1);
-        RefPtrWillBeRawPtr<TouchEvent> touchEvent = TouchEvent::create(activeTouchList.get(), activeTouchList.get(), cancelledTouchList.get(), EventTypeNames::touchcancel, domWindow, PlatformEvent::NoModifiers, false, false, 0);
+        RawPtr<TouchEvent> touchEvent = TouchEvent::create(activeTouchList.get(), activeTouchList.get(), cancelledTouchList.get(), EventTypeNames::touchcancel, domWindow, PlatformEvent::NoModifiers, false, false, 0);
 
         WebTouchEventBuilder webTouchBuilder(documentLayoutView, *touchEvent);
         ASSERT_EQ(2u, webTouchBuilder.touchesLength);
@@ -213,14 +213,14 @@
 
     // Test max point limit.
     {
-        RefPtrWillBeRawPtr<TouchList> touchList = TouchList::create();
-        RefPtrWillBeRawPtr<TouchList> changedTouchList = TouchList::create();
+        RawPtr<TouchList> touchList = TouchList::create();
+        RawPtr<TouchList> changedTouchList = TouchList::create();
         for (int i = 0; i <= static_cast<int>(WebTouchEvent::touchesLengthCap) * 2; ++i) {
-            RefPtrWillBeRawPtr<Touch> touch = Touch::create(toLocalFrame(webViewImpl->page()->mainFrame()), document.get(), i, p0.screenPosition, p0.position, FloatSize(p0.radiusX, p0.radiusY), p0.rotationAngle, p0.force, String());
+            RawPtr<Touch> touch = Touch::create(toLocalFrame(webViewImpl->page()->mainFrame()), document.get(), i, p0.screenPosition, p0.position, FloatSize(p0.radiusX, p0.radiusY), p0.rotationAngle, p0.force, String());
             touchList->append(touch);
             changedTouchList->append(touch);
         }
-        RefPtrWillBeRawPtr<TouchEvent> touchEvent = TouchEvent::create(touchList.get(), touchList.get(), touchList.get(), EventTypeNames::touchstart, domWindow, PlatformEvent::NoModifiers, false, false, 0);
+        RawPtr<TouchEvent> touchEvent = TouchEvent::create(touchList.get(), touchList.get(), touchList.get(), EventTypeNames::touchstart, domWindow, PlatformEvent::NoModifiers, false, false, 0);
 
         WebTouchEventBuilder webTouchBuilder(documentLayoutView, *touchEvent);
         ASSERT_EQ(static_cast<unsigned>(WebTouchEvent::touchesLengthCap), webTouchBuilder.touchesLength);
@@ -244,7 +244,7 @@
     webViewImpl->setPageScaleFactor(2);
 
     FrameView* view = toLocalFrame(webViewImpl->page()->mainFrame())->view();
-    RefPtrWillBeRawPtr<Document> document = toLocalFrame(webViewImpl->page()->mainFrame())->document();
+    RawPtr<Document> document = toLocalFrame(webViewImpl->page()->mainFrame())->document();
     LocalDOMWindow* domWindow = document->domWindow();
     LayoutView* documentLayoutView = document->layoutView();
 
@@ -420,7 +420,7 @@
     // which expect CSS pixel coordinates.
     {
         PlatformMouseEvent platformMouseEvent(IntPoint(10, 10), IntPoint(10, 10), LeftButton, PlatformEvent::MouseMoved, 1, PlatformEvent::NoModifiers, PlatformMouseEvent::RealOrIndistinguishable, 0);
-        RefPtrWillBeRawPtr<MouseEvent> mouseEvent = MouseEvent::create(EventTypeNames::mousemove, domWindow, platformMouseEvent, 0, document);
+        RawPtr<MouseEvent> mouseEvent = MouseEvent::create(EventTypeNames::mousemove, domWindow, platformMouseEvent, 0, document);
         WebMouseEventBuilder webMouseBuilder(view, documentLayoutView, *mouseEvent);
 
         EXPECT_EQ(10, webMouseBuilder.x);
@@ -433,7 +433,7 @@
 
     {
         PlatformMouseEvent platformMouseEvent(IntPoint(10, 10), IntPoint(10, 10), NoButton, PlatformEvent::MouseMoved, 1, PlatformEvent::NoModifiers, PlatformMouseEvent::RealOrIndistinguishable, 0);
-        RefPtrWillBeRawPtr<MouseEvent> mouseEvent = MouseEvent::create(EventTypeNames::mousemove, domWindow, platformMouseEvent, 0, document);
+        RawPtr<MouseEvent> mouseEvent = MouseEvent::create(EventTypeNames::mousemove, domWindow, platformMouseEvent, 0, document);
         WebMouseEventBuilder webMouseBuilder(view, documentLayoutView, *mouseEvent);
         EXPECT_EQ(WebMouseEvent::ButtonNone, webMouseBuilder.button);
     }
@@ -447,7 +447,7 @@
         // coordinates (x, y, deltaX, deltaY) to the page scale. This
         // may lead to unexpected bugs if a PlatformGestureEvent is
         // transformed into WebGestureEvent and back.
-        RefPtrWillBeRawPtr<GestureEvent> gestureEvent = GestureEvent::create(domWindow, platformGestureEvent);
+        RawPtr<GestureEvent> gestureEvent = GestureEvent::create(domWindow, platformGestureEvent);
         WebGestureEventBuilder webGestureBuilder(documentLayoutView, *gestureEvent);
 
         EXPECT_EQ(10, webGestureBuilder.x);
@@ -464,10 +464,10 @@
     }
 
     {
-        RefPtrWillBeRawPtr<Touch> touch = Touch::create(toLocalFrame(webViewImpl->page()->mainFrame()), document.get(), 0, FloatPoint(10, 9.5), FloatPoint(3.5, 2), FloatSize(4, 4.5), 0, 0, String());
-        RefPtrWillBeRawPtr<TouchList> touchList = TouchList::create();
+        RawPtr<Touch> touch = Touch::create(toLocalFrame(webViewImpl->page()->mainFrame()), document.get(), 0, FloatPoint(10, 9.5), FloatPoint(3.5, 2), FloatSize(4, 4.5), 0, 0, String());
+        RawPtr<TouchList> touchList = TouchList::create();
         touchList->append(touch);
-        RefPtrWillBeRawPtr<TouchEvent> touchEvent = TouchEvent::create(touchList.get(), touchList.get(), touchList.get(), EventTypeNames::touchmove, domWindow, PlatformEvent::NoModifiers, false, false, 0);
+        RawPtr<TouchEvent> touchEvent = TouchEvent::create(touchList.get(), touchList.get(), touchList.get(), EventTypeNames::touchmove, domWindow, PlatformEvent::NoModifiers, false, false, 0);
 
         WebTouchEventBuilder webTouchBuilder(documentLayoutView, *touchEvent);
         ASSERT_EQ(1u, webTouchBuilder.touchesLength);
@@ -649,7 +649,7 @@
     webViewImpl->updateAllLifecyclePhases();
 
     FrameView* view = toLocalFrame(webViewImpl->page()->mainFrame())->view();
-    RefPtrWillBeRawPtr<Document> document = toLocalFrame(webViewImpl->page()->mainFrame())->document();
+    RawPtr<Document> document = toLocalFrame(webViewImpl->page()->mainFrame())->document();
     LocalDOMWindow* domWindow = document->domWindow();
     LayoutView* documentLayoutView = document->layoutView();
 
@@ -672,7 +672,7 @@
         EXPECT_EQ(10.f, platformGestureBuilder.globalPosition().y());
         EXPECT_EQ(1, platformGestureBuilder.tapCount());
 
-        RefPtrWillBeRawPtr<GestureEvent> coreGestureEvent = GestureEvent::create(domWindow, platformGestureBuilder);
+        RawPtr<GestureEvent> coreGestureEvent = GestureEvent::create(domWindow, platformGestureBuilder);
         WebGestureEventBuilder recreatedWebGestureEvent(documentLayoutView, *coreGestureEvent);
         EXPECT_EQ(webGestureEvent.type, recreatedWebGestureEvent.type);
         EXPECT_EQ(webGestureEvent.x, recreatedWebGestureEvent.x);
@@ -888,8 +888,8 @@
     webViewImpl->resize(WebSize(pageWidth, pageHeight));
     webViewImpl->updateAllLifecyclePhases();
 
-    RefPtrWillBeRawPtr<Document> document = toLocalFrame(webViewImpl->page()->mainFrame())->document();
-    RefPtrWillBeRawPtr<WheelEvent> event = WheelEvent::create(FloatPoint(1, 3), FloatPoint(5, 10),
+    RawPtr<Document> document = toLocalFrame(webViewImpl->page()->mainFrame())->document();
+    RawPtr<WheelEvent> event = WheelEvent::create(FloatPoint(1, 3), FloatPoint(5, 10),
         WheelEvent::DOM_DELTA_PAGE, document.get()->domWindow(), IntPoint(2, 6), IntPoint(10, 30),
         PlatformEvent::CtrlKey, 0, 0, true, -1 /* null plugin id */, true /* hasPreciseScrollingDeltas */, Event::RailsModeHorizontal);
     WebMouseWheelEventBuilder webMouseWheel(toLocalFrame(webViewImpl->page()->mainFrame())->view(), document.get()->layoutView(), *event);
diff --git a/third_party/WebKit/Source/web/tests/WebPluginContainerTest.cpp b/third_party/WebKit/Source/web/tests/WebPluginContainerTest.cpp
index edea235..3cb162d 100644
--- a/third_party/WebKit/Source/web/tests/WebPluginContainerTest.cpp
+++ b/third_party/WebKit/Source/web/tests/WebPluginContainerTest.cpp
@@ -337,7 +337,7 @@
     modifierKey = static_cast<PlatformEvent::Modifiers>(PlatformEvent::MetaKey | PlatformEvent::NumLockOn | PlatformEvent::IsLeft);
 #endif
     PlatformKeyboardEvent platformKeyboardEventC(PlatformEvent::RawKeyDown, "", "", "67", "", "", 67, 0, false, modifierKey, 0.0);
-    RefPtrWillBeRawPtr<KeyboardEvent> keyEventC = KeyboardEvent::create(platformKeyboardEventC, 0);
+    RawPtr<KeyboardEvent> keyEventC = KeyboardEvent::create(platformKeyboardEventC, 0);
     toWebPluginContainerImpl(pluginContainerOneElement.pluginContainer())->handleEvent(keyEventC.get());
     EXPECT_EQ(WebString("x"), Platform::current()->clipboard()->readPlainText(WebClipboard::Buffer()));
 
@@ -346,7 +346,7 @@
     EXPECT_EQ(WebString(""), Platform::current()->clipboard()->readPlainText(WebClipboard::Buffer()));
 
     PlatformKeyboardEvent platformKeyboardEventInsert(PlatformEvent::RawKeyDown, "", "", "45", "", "", 45, 0, false, modifierKey, 0.0);
-    RefPtrWillBeRawPtr<KeyboardEvent> keyEventInsert = KeyboardEvent::create(platformKeyboardEventInsert, 0);
+    RawPtr<KeyboardEvent> keyEventInsert = KeyboardEvent::create(platformKeyboardEventInsert, 0);
     toWebPluginContainerImpl(pluginContainerOneElement.pluginContainer())->handleEvent(keyEventInsert.get());
     EXPECT_EQ(WebString("x"), Platform::current()->clipboard()->readPlainText(WebClipboard::Buffer()));
 }
@@ -427,7 +427,7 @@
     webView->updateAllLifecyclePhases();
     runPendingTasks();
 
-    RefPtrWillBeRawPtr<WebPluginContainerImpl> pluginContainerImpl =
+    RawPtr<WebPluginContainerImpl> pluginContainerImpl =
         toWebPluginContainerImpl(getWebPluginContainer(webView, WebString::fromUTF8("translated-plugin")));
     pluginContainerImpl->setFrameRect(IntRect(0, 0, 300, 300));
 
@@ -464,7 +464,7 @@
     runPendingTasks();
 
     WebElement pluginElement = webView->mainFrame()->firstChild()->document().getElementById("translated-plugin");
-    RefPtrWillBeRawPtr<WebPluginContainerImpl> pluginContainerImpl = toWebPluginContainerImpl(pluginElement.pluginContainer());
+    RawPtr<WebPluginContainerImpl> pluginContainerImpl = toWebPluginContainerImpl(pluginElement.pluginContainer());
 
     ASSERT(pluginContainerImpl.get());
     pluginContainerImpl->setFrameRect(IntRect(0, 0, 300, 300));
@@ -494,7 +494,7 @@
     runPendingTasks();
 
     WebElement pluginElement = webView->mainFrame()->document().getElementById("subpixel-positioned-plugin");
-    RefPtrWillBeRawPtr<WebPluginContainerImpl> pluginContainerImpl = toWebPluginContainerImpl(pluginElement.pluginContainer());
+    RawPtr<WebPluginContainerImpl> pluginContainerImpl = toWebPluginContainerImpl(pluginElement.pluginContainer());
 
     ASSERT(pluginContainerImpl.get());
 
@@ -545,7 +545,7 @@
     webView->updateAllLifecyclePhases();
     runPendingTasks();
 
-    RefPtrWillBeRawPtr<WebPluginContainerImpl> pluginContainerImpl =
+    RawPtr<WebPluginContainerImpl> pluginContainerImpl =
         toWebPluginContainerImpl(getWebPluginContainer(webView, WebString::fromUTF8("translated-plugin")));
     pluginContainerImpl->setFrameRect(IntRect(0, 0, 300, 300));
 
@@ -617,7 +617,7 @@
 
     WebPluginContainerImpl* container = static_cast<WebPluginContainerImpl*>(getWebPluginContainer(webView, WebString::fromUTF8("plugin")));
     ASSERT_TRUE(container);
-    RefPtrWillBeRawPtr<Element> element = static_cast<PassRefPtrWillBeRawPtr<Element>>(container->element());
+    RawPtr<Element> element = static_cast<RawPtr<Element>>(container->element());
     const auto* plugin = static_cast<const CompositedPlugin*>(container->plugin());
 
     OwnPtr<PaintController> paintController = PaintController::create();
diff --git a/third_party/WebKit/Source/web/tests/WebScopedWindowFocusAllowedIndicatorTest.cpp b/third_party/WebKit/Source/web/tests/WebScopedWindowFocusAllowedIndicatorTest.cpp
index 8a332f45..1f77494 100644
--- a/third_party/WebKit/Source/web/tests/WebScopedWindowFocusAllowedIndicatorTest.cpp
+++ b/third_party/WebKit/Source/web/tests/WebScopedWindowFocusAllowedIndicatorTest.cpp
@@ -38,7 +38,7 @@
 
 TEST(WebScopedWindowFocusAllowedIndicatorTest, Basic)
 {
-    RefPtrWillBePersistent<Document> document = Document::create();
+    Persistent<Document> document = Document::create();
     WebDocument webDocument(document);
 
     EXPECT_FALSE(document->isWindowInteractionAllowed());
diff --git a/third_party/WebKit/Source/web/tests/WebViewTest.cpp b/third_party/WebKit/Source/web/tests/WebViewTest.cpp
index df46990a..4f742f91 100644
--- a/third_party/WebKit/Source/web/tests/WebViewTest.cpp
+++ b/third_party/WebKit/Source/web/tests/WebViewTest.cpp
@@ -244,7 +244,7 @@
 
     void testTextInputType(WebTextInputType expectedType, const std::string& htmlFile);
     void testInputMode(const WebString& expectedInputMode, const std::string& htmlFile);
-    bool tapElement(WebInputEvent::Type, const PassRefPtrWillBeRawPtr<Element>&);
+    bool tapElement(WebInputEvent::Type, const RawPtr<Element>&);
     bool tapElementById(WebInputEvent::Type, const WebString& id);
 
     std::string m_baseURL;
@@ -1236,11 +1236,11 @@
     // Emulate a user scroll
     webViewImpl->mainFrame()->setScrollOffset(WebSize(0, 900));
     LocalFrame* mainFrameLocal = toLocalFrame(webViewImpl->page()->mainFrame());
-    RefPtrWillBePersistent<HistoryItem> item1 = mainFrameLocal->loader().currentItem();
+    Persistent<HistoryItem> item1 = mainFrameLocal->loader().currentItem();
 
     // Click an anchor
     mainFrameLocal->loader().load(FrameLoadRequest(mainFrameLocal->document(), ResourceRequest(mainFrameLocal->document()->completeURL("#a"))));
-    RefPtrWillBePersistent<HistoryItem> item2 = mainFrameLocal->loader().currentItem();
+    Persistent<HistoryItem> item2 = mainFrameLocal->loader().currentItem();
 
     // Go back, then forward, then back again.
     mainFrameLocal->loader().load(
@@ -1258,7 +1258,7 @@
 
     // Click a different anchor
     mainFrameLocal->loader().load(FrameLoadRequest(mainFrameLocal->document(), ResourceRequest(mainFrameLocal->document()->completeURL("#b"))));
-    RefPtrWillBePersistent<HistoryItem> item3 = mainFrameLocal->loader().currentItem();
+    Persistent<HistoryItem> item3 = mainFrameLocal->loader().currentItem();
 
     // Go back, then forward. The scroll position should be properly set on the forward navigation.
     mainFrameLocal->loader().load(
@@ -1293,7 +1293,7 @@
     EXPECT_EQ(12, webViewImpl->visualViewportOffset().x);
     EXPECT_EQ(20, webViewImpl->visualViewportOffset().y);
 
-    RefPtrWillBeRawPtr<Element> element = static_cast<PassRefPtrWillBeRawPtr<Element>>(webViewImpl->mainFrame()->document().body());
+    RawPtr<Element> element = static_cast<RawPtr<Element>>(webViewImpl->mainFrame()->document().body());
     webViewImpl->enterFullScreenForElement(element.get());
     webViewImpl->didEnterFullScreen();
 
@@ -1302,7 +1302,7 @@
     EXPECT_EQ(1.0f, webViewImpl->pageScaleFactor());
 
     // Make sure fullscreen nesting doesn't disrupt scroll/scale saving.
-    RefPtrWillBeRawPtr<Element> otherElement = static_cast<PassRefPtrWillBeRawPtr<Element>>(webViewImpl->mainFrame()->document().head());
+    RawPtr<Element> otherElement = static_cast<RawPtr<Element>>(webViewImpl->mainFrame()->document().head());
     webViewImpl->enterFullScreenForElement(otherElement.get());
 
     // Confirm that exiting fullscreen restores the parameters.
@@ -1437,7 +1437,7 @@
     WebContentDetectionResult m_contentDetectionResult;
 };
 
-bool WebViewTest::tapElement(WebInputEvent::Type type, const PassRefPtrWillBeRawPtr<Element>& element)
+bool WebViewTest::tapElement(WebInputEvent::Type type, const RawPtr<Element>& element)
 {
     if (!element || !element->layoutObject())
         return false;
@@ -1463,7 +1463,7 @@
 bool WebViewTest::tapElementById(WebInputEvent::Type type, const WebString& id)
 {
     ASSERT(m_webViewHelper.webView());
-    RefPtrWillBeRawPtr<Element> element = static_cast<PassRefPtrWillBeRawPtr<Element>>(m_webViewHelper.webView()->mainFrame()->document().getElementById(id));
+    RawPtr<Element> element = static_cast<RawPtr<Element>>(m_webViewHelper.webView()->mainFrame()->document().getElementById(id));
     return tapElement(type, element);
 }
 
@@ -1535,7 +1535,7 @@
 
     WebURL intentURL = toKURL(m_baseURL);
     client.setContentDetectionResult(WebContentDetectionResult(WebRange(), WebString(), intentURL));
-    RefPtrWillBeRawPtr<Element> element = static_cast<PassRefPtrWillBeRawPtr<Element>>(webView->findFrameByName(frameName)->document().getElementById(noListener));
+    RawPtr<Element> element = static_cast<RawPtr<Element>>(webView->findFrameByName(frameName)->document().getElementById(noListener));
     EXPECT_TRUE(tapElement(WebInputEvent::GestureTap, element));
     EXPECT_TRUE(client.scheduledIntentURL() == intentURL);
     EXPECT_FALSE(client.wasInMainFrame());
@@ -2435,7 +2435,7 @@
     URLTestHelpers::registerMockedURLLoad(toKURL(url), "simple_div.html");
     WebViewImpl* webViewImpl = m_webViewHelper.initializeAndLoad(url, true);
 
-    RefPtrWillBePersistent<Document> document = webViewImpl->mainFrameImpl()->frame()->document();
+    Persistent<Document> document = webViewImpl->mainFrameImpl()->frame()->document();
     Element* div = document->getElementById("div");
     EventHandlerRegistry& registry = document->frameHost()->eventHandlerRegistry();
 
diff --git a/third_party/WebKit/Source/wtf/HashFunctions.h b/third_party/WebKit/Source/wtf/HashFunctions.h
index e5097f2..1d02ceee 100644
--- a/third_party/WebKit/Source/wtf/HashFunctions.h
+++ b/third_party/WebKit/Source/wtf/HashFunctions.h
@@ -24,6 +24,7 @@
 #include "wtf/OwnPtr.h"
 #include "wtf/RefPtr.h"
 #include "wtf/StdLibExtras.h"
+#include <memory>
 #include <stdint.h>
 #include <type_traits>
 
@@ -180,6 +181,15 @@
     }
 };
 
+template <typename T>
+struct UniquePtrHash : PtrHash<T> {
+    using PtrHash<T>::hash;
+    static unsigned hash(const std::unique_ptr<T>& key) { return hash(key.get()); }
+    static bool equal(const std::unique_ptr<T>& a, const std::unique_ptr<T>& b) { return a == b; }
+    static bool equal(const std::unique_ptr<T>& a, const T* b) { return a.get() == b; }
+    static bool equal(const T* a, const std::unique_ptr<T>& b) { return a == b.get(); }
+};
+
 // Default hash function for each type.
 template <typename T>
 struct DefaultHash;
@@ -227,6 +237,10 @@
 struct DefaultHash<OwnPtr<T>> {
     using Hash = OwnPtrHash<T>;
 };
+template <typename T>
+struct DefaultHash<std::unique_ptr<T>> {
+    using Hash = UniquePtrHash<T>;
+};
 
 // Specializations for pairs.
 
diff --git a/third_party/WebKit/Source/wtf/HashMapTest.cpp b/third_party/WebKit/Source/wtf/HashMapTest.cpp
index d12d81e..3ba8e67 100644
--- a/third_party/WebKit/Source/wtf/HashMapTest.cpp
+++ b/third_party/WebKit/Source/wtf/HashMapTest.cpp
@@ -31,6 +31,7 @@
 #include "wtf/PassRefPtr.h"
 #include "wtf/RefCounted.h"
 #include "wtf/Vector.h"
+#include <memory>
 
 namespace WTF {
 
@@ -512,6 +513,101 @@
     EXPECT_EQ(0, counter);
 }
 
+TEST(HashMapTest, UniquePtrAsKey)
+{
+    using Pointer = std::unique_ptr<int>;
+    using Map = HashMap<Pointer, int>;
+    Map map;
+    int* onePointer = new int(1);
+    {
+        Map::AddResult addResult = map.add(Pointer(onePointer), 1);
+        EXPECT_TRUE(addResult.isNewEntry);
+        EXPECT_EQ(onePointer, addResult.storedValue->key.get());
+        EXPECT_EQ(1, *addResult.storedValue->key);
+        EXPECT_EQ(1, addResult.storedValue->value);
+    }
+    auto iter = map.find(onePointer);
+    ASSERT_TRUE(iter != map.end());
+    EXPECT_EQ(onePointer, iter->key.get());
+    EXPECT_EQ(1, iter->value);
+
+    Pointer nonexistent(new int(42));
+    iter = map.find(nonexistent.get());
+    EXPECT_TRUE(iter == map.end());
+
+    // Insert more to cause a rehash.
+    for (int i = 2; i < 32; ++i) {
+        Map::AddResult addResult = map.add(Pointer(new int(i)), i);
+        EXPECT_TRUE(addResult.isNewEntry);
+        EXPECT_EQ(i, *addResult.storedValue->key);
+        EXPECT_EQ(i, addResult.storedValue->value);
+    }
+
+    iter = map.find(onePointer);
+    ASSERT_TRUE(iter != map.end());
+    EXPECT_EQ(onePointer, iter->key.get());
+    EXPECT_EQ(1, iter->value);
+
+    EXPECT_EQ(1, map.take(onePointer));
+    // From now on, |onePointer| is a dangling pointer.
+
+    iter = map.find(onePointer);
+    EXPECT_TRUE(iter == map.end());
+}
+
+TEST(HashMapTest, UniquePtrAsValue)
+{
+    using Pointer = std::unique_ptr<int>;
+    using Map = HashMap<int, Pointer>;
+    Map map;
+    {
+        Map::AddResult addResult = map.add(1, Pointer(new int(1)));
+        EXPECT_TRUE(addResult.isNewEntry);
+        EXPECT_EQ(1, addResult.storedValue->key);
+        EXPECT_EQ(1, *addResult.storedValue->value);
+    }
+    auto iter = map.find(1);
+    ASSERT_TRUE(iter != map.end());
+    EXPECT_EQ(1, iter->key);
+    EXPECT_EQ(1, *iter->value);
+
+    int* onePointer = map.get(1);
+    EXPECT_TRUE(onePointer);
+    EXPECT_EQ(1, *onePointer);
+
+    iter = map.find(42);
+    EXPECT_TRUE(iter == map.end());
+
+    for (int i = 2; i < 32; ++i) {
+        Map::AddResult addResult = map.add(i, Pointer(new int(i)));
+        EXPECT_TRUE(addResult.isNewEntry);
+        EXPECT_EQ(i, addResult.storedValue->key);
+        EXPECT_EQ(i, *addResult.storedValue->value);
+    }
+
+    iter = map.find(1);
+    ASSERT_TRUE(iter != map.end());
+    EXPECT_EQ(1, iter->key);
+    EXPECT_EQ(1, *iter->value);
+
+    Pointer one(map.take(1));
+    ASSERT_TRUE(one);
+    EXPECT_EQ(1, *one);
+
+    Pointer empty(map.take(42));
+    EXPECT_TRUE(!empty);
+
+    iter = map.find(1);
+    EXPECT_TRUE(iter == map.end());
+
+    {
+        Map::AddResult addResult = map.add(1, std::move(one));
+        EXPECT_TRUE(addResult.isNewEntry);
+        EXPECT_EQ(1, addResult.storedValue->key);
+        EXPECT_EQ(1, *addResult.storedValue->value);
+    }
+}
+
 } // anonymous namespace
 
 } // namespace WTF
diff --git a/third_party/WebKit/Source/wtf/HashSetTest.cpp b/third_party/WebKit/Source/wtf/HashSetTest.cpp
index 23b9e83..ca6555f 100644
--- a/third_party/WebKit/Source/wtf/HashSetTest.cpp
+++ b/third_party/WebKit/Source/wtf/HashSetTest.cpp
@@ -397,6 +397,56 @@
     set.clear();
 }
 
+TEST(HashSetTest, UniquePtr)
+{
+    using Pointer = std::unique_ptr<int>;
+    using Set = HashSet<Pointer>;
+    Set set;
+    int* onePointer = new int(1);
+    {
+        Set::AddResult addResult = set.add(Pointer(onePointer));
+        EXPECT_TRUE(addResult.isNewEntry);
+        EXPECT_EQ(onePointer, addResult.storedValue->get());
+        EXPECT_EQ(1, **addResult.storedValue);
+    }
+    auto iter = set.find(onePointer);
+    ASSERT_TRUE(iter != set.end());
+    EXPECT_EQ(onePointer, iter->get());
+
+    Pointer nonexistent(new int(42));
+    iter = set.find(nonexistent.get());
+    EXPECT_TRUE(iter == set.end());
+
+    // Insert more to cause a rehash.
+    for (int i = 2; i < 32; ++i) {
+        Set::AddResult addResult = set.add(Pointer(new int(i)));
+        EXPECT_TRUE(addResult.isNewEntry);
+        EXPECT_EQ(i, **addResult.storedValue);
+    }
+
+    iter = set.find(onePointer);
+    ASSERT_TRUE(iter != set.end());
+    EXPECT_EQ(onePointer, iter->get());
+
+    Pointer one(set.take(onePointer));
+    ASSERT_TRUE(one);
+    EXPECT_EQ(onePointer, one.get());
+
+    Pointer empty(set.take(nonexistent.get()));
+    EXPECT_TRUE(!empty);
+
+    iter = set.find(onePointer);
+    EXPECT_TRUE(iter == set.end());
+
+    // Re-insert to the deleted slot.
+    {
+        Set::AddResult addResult = set.add(std::move(one));
+        EXPECT_TRUE(addResult.isNewEntry);
+        EXPECT_EQ(onePointer, addResult.storedValue->get());
+        EXPECT_EQ(1, **addResult.storedValue);
+    }
+}
+
 } // anonymous namespace
 
 } // namespace WTF
diff --git a/third_party/WebKit/Source/wtf/HashTraits.h b/third_party/WebKit/Source/wtf/HashTraits.h
index 8cda7d9..92e1060e 100644
--- a/third_party/WebKit/Source/wtf/HashTraits.h
+++ b/third_party/WebKit/Source/wtf/HashTraits.h
@@ -26,6 +26,7 @@
 #include "wtf/StdLibExtras.h"
 #include "wtf/TypeTraits.h"
 #include <limits>
+#include <memory>
 #include <string.h> // For memset.
 #include <type_traits>
 #include <utility>
@@ -211,6 +212,36 @@
 
 template <typename T> struct HashTraits<RawPtr<T>> : HashTraits<T*> { };
 
+template <typename T>
+struct HashTraits<std::unique_ptr<T>> : SimpleClassHashTraits<std::unique_ptr<T>> {
+    using EmptyValueType = std::nullptr_t;
+    static EmptyValueType emptyValue() { return nullptr; }
+
+    static const bool hasIsEmptyValueFunction = true;
+    static bool isEmptyValue(const std::unique_ptr<T>& value) { return !value; }
+
+    using PeekInType = T*;
+
+    using PassInType = std::unique_ptr<T>;
+    static void store(std::unique_ptr<T>&& value, std::unique_ptr<T>& storage) { storage = std::move(value); }
+
+    using PassOutType = std::unique_ptr<T>;
+    static std::unique_ptr<T>&& passOut(std::unique_ptr<T>& value) { return std::move(value); }
+    static std::unique_ptr<T> passOut(std::nullptr_t) { return nullptr; }
+
+    using PeekOutType = T*;
+    static PeekOutType peek(const std::unique_ptr<T>& value) { return value.get(); }
+    static PeekOutType peek(std::nullptr_t) { return nullptr; }
+
+    static void constructDeletedValue(std::unique_ptr<T>& slot, bool)
+    {
+        // Dirty trick: implant an invalid pointer to unique_ptr. Destructor isn't called for deleted buckets,
+        // so this is okay.
+        new (NotNull, &slot) std::unique_ptr<T>(reinterpret_cast<T*>(1u));
+    }
+    static bool isDeletedValue(const std::unique_ptr<T>& value) { return value.get() == reinterpret_cast<T*>(1u); }
+};
+
 template <> struct HashTraits<String> : SimpleClassHashTraits<String> {
     static const bool hasIsEmptyValueFunction = true;
     static bool isEmptyValue(const String&);
diff --git a/third_party/WebKit/Source/wtf/text/CharacterNames.h b/third_party/WebKit/Source/wtf/text/CharacterNames.h
index 4c5b7d5..830d0eb 100644
--- a/third_party/WebKit/Source/wtf/text/CharacterNames.h
+++ b/third_party/WebKit/Source/wtf/text/CharacterNames.h
@@ -51,7 +51,13 @@
 const UChar combiningEnclosingKeycapCharacter = 0x20E3;
 const UChar ethiopicPrefaceColonCharacter = 0x1366;
 const UChar ethiopicWordspaceCharacter = 0x1361;
+const UChar heavyBlackHeartCharacter = 0x2764;
 const UChar32 eyeCharacter = 0x1F441;
+const UChar32 boyCharacter = 0x1F466;
+const UChar32 girlCharacter = 0x1F467;
+const UChar32 manCharacter = 0x1F468;
+const UChar32 womanCharacter = 0x1F469;
+const UChar32 kissMarkCharacter = 0x1F48B;
 const UChar32 familyCharacter = 0x1F46A;
 const UChar firstStrongIsolateCharacter = 0x2068;
 const UChar fisheyeCharacter = 0x25C9;
diff --git a/third_party/WebKit/Source/wtf/text/WTFString.h b/third_party/WebKit/Source/wtf/text/WTFString.h
index 8d7ead9d..356f4287 100644
--- a/third_party/WebKit/Source/wtf/text/WTFString.h
+++ b/third_party/WebKit/Source/wtf/text/WTFString.h
@@ -320,12 +320,11 @@
         return *this;
     }
 
-    template<unsigned charactersCount>
-    ALWAYS_INLINE String& replaceWithLiteral(UChar a, const char (&characters)[charactersCount])
+    ALWAYS_INLINE String& replace(UChar a, const char* characters)
     {
+        ASSERT(characters);
         if (m_impl)
-            m_impl = m_impl->replace(a, characters, charactersCount - 1);
-
+            m_impl = m_impl->replace(a, characters, strlen(characters));
         return *this;
     }
 
diff --git a/third_party/WebKit/Source/wtf/text/WTFStringTest.cpp b/third_party/WebKit/Source/wtf/text/WTFStringTest.cpp
index 8f072c3..fde96af0 100644
--- a/third_party/WebKit/Source/wtf/text/WTFStringTest.cpp
+++ b/third_party/WebKit/Source/wtf/text/WTFStringTest.cpp
@@ -116,39 +116,39 @@
     // Cases for 8Bit source.
     String testString = "1224";
     EXPECT_TRUE(testString.is8Bit());
-    testString.replaceWithLiteral('2', "");
+    testString.replace('2', "");
     EXPECT_STREQ("14", testString.utf8().data());
 
     testString = "1224";
     EXPECT_TRUE(testString.is8Bit());
-    testString.replaceWithLiteral('2', "3");
+    testString.replace('2', "3");
     EXPECT_STREQ("1334", testString.utf8().data());
 
     testString = "1224";
     EXPECT_TRUE(testString.is8Bit());
-    testString.replaceWithLiteral('2', "555");
+    testString.replace('2', "555");
     EXPECT_STREQ("15555554", testString.utf8().data());
 
     testString = "1224";
     EXPECT_TRUE(testString.is8Bit());
-    testString.replaceWithLiteral('3', "NotFound");
+    testString.replace('3', "NotFound");
     EXPECT_STREQ("1224", testString.utf8().data());
 
     // Cases for 16Bit source.
     // U+00E9 (=0xC3 0xA9 in UTF-8) is e with accent.
     testString = String::fromUTF8("r\xC3\xA9sum\xC3\xA9");
     EXPECT_FALSE(testString.is8Bit());
-    testString.replaceWithLiteral(UChar(0x00E9), "e");
+    testString.replace(UChar(0x00E9), "e");
     EXPECT_STREQ("resume", testString.utf8().data());
 
     testString = String::fromUTF8("r\xC3\xA9sum\xC3\xA9");
     EXPECT_FALSE(testString.is8Bit());
-    testString.replaceWithLiteral(UChar(0x00E9), "");
+    testString.replace(UChar(0x00E9), "");
     EXPECT_STREQ("rsum", testString.utf8().data());
 
     testString = String::fromUTF8("r\xC3\xA9sum\xC3\xA9");
     EXPECT_FALSE(testString.is8Bit());
-    testString.replaceWithLiteral('3', "NotFound");
+    testString.replace('3', "NotFound");
     EXPECT_STREQ("r\xC3\xA9sum\xC3\xA9", testString.utf8().data());
 }
 
diff --git a/third_party/WebKit/public/BUILD.gn b/third_party/WebKit/public/BUILD.gn
index 1eca415..2a34296 100644
--- a/third_party/WebKit/public/BUILD.gn
+++ b/third_party/WebKit/public/BUILD.gn
@@ -179,8 +179,11 @@
 mojom("mojo_bindings_blink") {
   sources = [
     "platform/modules/bluetooth/web_bluetooth.mojom",
+    "platform/modules/geolocation/geolocation.mojom",
     "platform/modules/notifications/notification.mojom",
     "platform/modules/payments/payment_request.mojom",
+    "platform/modules/permissions/permission.mojom",
+    "platform/modules/permissions/permission_status.mojom",
   ]
   for_blink = true
   variant = "wtf"
@@ -190,7 +193,10 @@
 mojom("mojo_bindings") {
   sources = [
     "platform/modules/bluetooth/web_bluetooth.mojom",
+    "platform/modules/geolocation/geolocation.mojom",
     "platform/modules/notifications/notification.mojom",
     "platform/modules/payments/payment_request.mojom",
+    "platform/modules/permissions/permission.mojom",
+    "platform/modules/permissions/permission_status.mojom",
   ]
 }
diff --git a/third_party/WebKit/public/blink.gyp b/third_party/WebKit/public/blink.gyp
index b70d14a..82ddef9 100644
--- a/third_party/WebKit/public/blink.gyp
+++ b/third_party/WebKit/public/blink.gyp
@@ -34,8 +34,11 @@
     'variables': {
         'blink_mojo_sources': [
             'platform/modules/bluetooth/web_bluetooth.mojom',
+            'platform/modules/geolocation/geolocation.mojom',
             'platform/modules/notifications/notification.mojom',
             'platform/modules/payments/payment_request.mojom',
+            'platform/modules/permissions/permission.mojom',
+            'platform/modules/permissions/permission_status.mojom',
         ],
     },
     'targets': [
diff --git a/third_party/WebKit/public/platform/WebURLRequest.h b/third_party/WebKit/public/platform/WebURLRequest.h
index 6caabf53..f661d78 100644
--- a/third_party/WebKit/public/platform/WebURLRequest.h
+++ b/third_party/WebKit/public/platform/WebURLRequest.h
@@ -48,12 +48,14 @@
 
 class WebURLRequest {
 public:
+    // Should be same with ResourceRequestCachePolicy.
+    // TODO(crbug.com/599364): Merge this with ResourceRequestCachePolicy.
     enum CachePolicy {
         UseProtocolCachePolicy, // normal load
-        ReloadIgnoringCacheData, // reload
+        ValidatingCacheData, // reload
+        BypassingCache, // end-to-end reload
         ReturnCacheDataElseLoad, // back/forward or encoding change - allow stale data
         ReturnCacheDataDontLoad, // results of a post - allow stale data and only use cache
-        ReloadBypassingCache, // end-to-end reload
     };
 
     enum Priority {
diff --git a/third_party/WebKit/public/platform/modules/geolocation/OWNERS b/third_party/WebKit/public/platform/modules/geolocation/OWNERS
new file mode 100644
index 0000000..46e91f6
--- /dev/null
+++ b/third_party/WebKit/public/platform/modules/geolocation/OWNERS
@@ -0,0 +1,15 @@
+mvanouwerkerk@chromium.org
+
+# Changes to Mojo interfaces require a security review to avoid
+# introducing new sandbox escapes.
+per-file *.mojom=set noparent
+per-file *.mojom=dcheng@chromium.org
+per-file *.mojom=inferno@chromium.org
+per-file *.mojom=jln@chromium.org
+per-file *.mojom=jschuh@chromium.org
+per-file *.mojom=kenrb@chromium.org
+per-file *.mojom=mkwst@chromium.org
+per-file *.mojom=nasko@chromium.org
+per-file *.mojom=palmer@chromium.org
+per-file *.mojom=tsepez@chromium.org
+per-file *.mojom=wfh@chromium.org
diff --git a/content/public/common/mojo_geoposition.mojom b/third_party/WebKit/public/platform/modules/geolocation/geolocation.mojom
similarity index 70%
rename from content/public/common/mojo_geoposition.mojom
rename to third_party/WebKit/public/platform/modules/geolocation/geolocation.mojom
index d85091af..1651923 100644
--- a/content/public/common/mojo_geoposition.mojom
+++ b/third_party/WebKit/public/platform/modules/geolocation/geolocation.mojom
@@ -2,15 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// This file declares the Geoposition structure, used to represent a position
-// fix. It was originally derived from:
+module blink.mojom;
+
+// A Geoposition represents a position fix. It was originally derived from:
 // http://gears.googlecode.com/svn/trunk/gears/geolocation/geolocation.h
 // TODO(blundell): Investigate killing content::Geoposition in favor of using
-// this struct everywhere (and renaming it to Geoposition).
-
-module content.mojom;
-
-struct MojoGeoposition {
+// this struct everywhere.
+struct Geoposition {
   // These values follow the W3C geolocation specification and can be returned
   // to JavaScript without the need for a conversion.
   enum ErrorCode {
@@ -54,3 +52,16 @@
   // Human-readable error message.
   string error_message;
 };
+
+// The Geolocation service provides updates on the device's location.  By
+// default, it provides updates with low accuracy, but |SetHighAccuracy()| may
+// be called to change this.
+interface GeolocationService {
+  SetHighAccuracy(bool high_accuracy);
+
+  // Position is reported once it changes or immediately (to report the initial
+  // position) if this is the first call to QueryNextPosition on this instance.
+  // Position updates may be throttled by the service. Overlapping calls to
+  // this method are prohibited and will be treated as a connection error.
+  QueryNextPosition() => (Geoposition geoposition);
+};
diff --git a/third_party/WebKit/public/platform/modules/permissions/OWNERS b/third_party/WebKit/public/platform/modules/permissions/OWNERS
index 2d28246..aac9fcc 100644
--- a/third_party/WebKit/public/platform/modules/permissions/OWNERS
+++ b/third_party/WebKit/public/platform/modules/permissions/OWNERS
@@ -1 +1,15 @@
 mlamouri@chromium.org
+
+# Changes to Mojo interfaces require a security review to avoid
+# introducing new sandbox escapes.
+per-file *.mojom=set noparent
+per-file *.mojom=dcheng@chromium.org
+per-file *.mojom=inferno@chromium.org
+per-file *.mojom=jln@chromium.org
+per-file *.mojom=jschuh@chromium.org
+per-file *.mojom=kenrb@chromium.org
+per-file *.mojom=mkwst@chromium.org
+per-file *.mojom=nasko@chromium.org
+per-file *.mojom=palmer@chromium.org
+per-file *.mojom=tsepez@chromium.org
+per-file *.mojom=wfh@chromium.org
diff --git a/content/common/permission_service.mojom b/third_party/WebKit/public/platform/modules/permissions/permission.mojom
similarity index 92%
rename from content/common/permission_service.mojom
rename to third_party/WebKit/public/platform/modules/permissions/permission.mojom
index 38b6adb..03a7d51 100644
--- a/content/common/permission_service.mojom
+++ b/third_party/WebKit/public/platform/modules/permissions/permission.mojom
@@ -2,9 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-module content.mojom;
+module blink.mojom;
 
-import "content/public/common/permission_status.mojom";
+import "third_party/WebKit/public/platform/modules/permissions/permission_status.mojom";
 
 enum PermissionName {
   GEOLOCATION,
diff --git a/content/public/common/permission_status.mojom b/third_party/WebKit/public/platform/modules/permissions/permission_status.mojom
similarity index 91%
rename from content/public/common/permission_status.mojom
rename to third_party/WebKit/public/platform/modules/permissions/permission_status.mojom
index d21b8a5..748c325 100644
--- a/content/public/common/permission_status.mojom
+++ b/third_party/WebKit/public/platform/modules/permissions/permission_status.mojom
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-module content.mojom;
+module blink.mojom;
 
 enum PermissionStatus {
   GRANTED,
diff --git a/third_party/WebKit/public/web/WebFrame.h b/third_party/WebKit/public/web/WebFrame.h
index 4c182eb..537a6f4 100644
--- a/third_party/WebKit/public/web/WebFrame.h
+++ b/third_party/WebKit/public/web/WebFrame.h
@@ -475,12 +475,12 @@
     virtual int printBegin(const WebPrintParams&, const WebNode& constrainToNode = WebNode()) = 0;
 
     // Returns the page shrinking factor calculated by webkit (usually
-    // between 1/1.25 and 1/2). Returns 0 if the page number is invalid or
+    // between 1/1.33 and 1/2). Returns 0 if the page number is invalid or
     // not in printing mode.
     virtual float getPrintPageShrink(int page) = 0;
 
     // Prints one page, and returns the calculated page shrinking factor
-    // (usually between 1/1.25 and 1/2).  Returns 0 if the page number is
+    // (usually between 1/1.33 and 1/2).  Returns 0 if the page number is
     // invalid or not in printing mode.
     virtual float printPage(int pageToPrint, WebCanvas*) = 0;
 
diff --git a/third_party/WebKit/public/web/WebFrameLoadType.h b/third_party/WebKit/public/web/WebFrameLoadType.h
index d4f14c9..0d237f5 100644
--- a/third_party/WebKit/public/web/WebFrameLoadType.h
+++ b/third_party/WebKit/public/web/WebFrameLoadType.h
@@ -19,7 +19,7 @@
     ReplaceCurrentItem,
     InitialInChildFrame,
     InitialHistoryLoad, // history navigation in a newly created frame
-    ReloadFromOrigin, // reload bypassing cache
+    ReloadBypassingCache, // super reload
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/public/web/WebPlugin.h b/third_party/WebKit/public/web/WebPlugin.h
index 2d27d932..e9c7292 100644
--- a/third_party/WebKit/public/web/WebPlugin.h
+++ b/third_party/WebKit/public/web/WebPlugin.h
@@ -85,10 +85,6 @@
 
     virtual v8::Local<v8::Object> v8ScriptableObject(v8::Isolate*) { return v8::Local<v8::Object>(); }
 
-    // Returns true if the form submission value is successfully obtained
-    // from the plugin. The value would be associated with the name attribute
-    // of the corresponding object element.
-    virtual bool getFormValue(WebString&) { return false; }
     virtual bool supportsKeyboardFocus() const { return false; }
     virtual bool supportsEditCommands() const { return false; }
     // Returns true if this plugin supports input method, which implements
diff --git a/third_party/closure_compiler/README.chromium b/third_party/closure_compiler/README.chromium
index 538b95d..f7fea95 100644
--- a/third_party/closure_compiler/README.chromium
+++ b/third_party/closure_compiler/README.chromium
@@ -3,7 +3,7 @@
 URL: http://github.com/google/closure-compiler
 Version: v20150729-236-gad656a1
 Date: 2015/08/26 08:46
-Revision: 03c62b0dfbf56c5a07b1b1d3fedb3d42ebb4eb15
+Revision: 665bd83572066010541bc9a82a4e24fb80a54431
 License: Apache 2.0
 License File: LICENSE
 Security Critical: no
diff --git a/third_party/closure_compiler/compiler/compiler.jar b/third_party/closure_compiler/compiler/compiler.jar
index 698d3122..f48fded 100644
--- a/third_party/closure_compiler/compiler/compiler.jar
+++ b/third_party/closure_compiler/compiler/compiler.jar
Binary files differ
diff --git a/third_party/closure_compiler/externs/chrome_extensions.js b/third_party/closure_compiler/externs/chrome_extensions.js
index cc1ed04..d813b0e 100644
--- a/third_party/closure_compiler/externs/chrome_extensions.js
+++ b/third_party/closure_compiler/externs/chrome_extensions.js
@@ -180,9 +180,24 @@
  * bottom of this file.
  *
  * G. Enums
- * The Chrome extension APIs define many enums that define a set of acceptable
- * strings, however, they do not reify those enum types, therefore, enum
- * parameters should be defined as {@code string}.
+ * An enum's type name and the name of its members must be included in an
+ * externs file, but the values of its members are ignored by the compiler.
+ * To make it clear enums are not being *defined* in this file, we set
+ * string enum values to the empty string (at this time, there are no
+ * known enums of other types).
+ *
+ * As of Mar 2016, the chrome extension docs are incomplete wrt to enums
+ * as they don't list the member names, only their string values. This means
+ * extension authors will tend to use string literals. Therefore, whereever
+ * an enum type should be used, we support either the enum or a string. Once
+ * the docs are complete, new uses of enums will no longer need the "or string"
+ * portion of the type.
+ *
+ * Finally, most places in this file where enums should be used are using only
+ * string. This is historical and is no longer the recommended practice.
+ *
+ * See enum chrome.wallpaper.WallpaperLayout and chrome.wallpaper.setWallpaper's
+ * param for examples.
  *
  * @externs
  *
@@ -9160,12 +9175,14 @@
  */
 chrome.inlineInstallPrivate.install = function(id, opt_callback) {};
 
+
 /**
  * @const
  * @see https://goo.gl/7dvJFW
  */
 chrome.wallpaper = {};
 
+
 /**
  * @enum {string}
  * @see https://goo.gl/7dvJFW#type-WallpaperLayout
@@ -9176,6 +9193,7 @@
   CENTER_CROPPED: '',
 };
 
+
 /**
  * Sets wallpaper to the image at url or wallpaperData with the specified
  * layout.
diff --git a/third_party/closure_compiler/runner/runner.jar b/third_party/closure_compiler/runner/runner.jar
index cac47c10..6b0d677 100644
--- a/third_party/closure_compiler/runner/runner.jar
+++ b/third_party/closure_compiler/runner/runner.jar
Binary files differ
diff --git a/tools/android/loading/gce/README.md b/tools/android/loading/gce/README.md
index 1d0332c..52e0c820 100644
--- a/tools/android/loading/gce/README.md
+++ b/tools/android/loading/gce/README.md
@@ -12,7 +12,7 @@
 ## Deploy the code
 
 ```shell
-# Build Chrome
+# Build Chrome (do not use the component build).
 BUILD_DIR=out/Release
 ninja -C $BUILD_DIR -j1000 -l60 chrome chrome_sandbox
 
@@ -32,11 +32,10 @@
  --machine-type n1-standard-1 \
  --image ubuntu-14-04 \
  --zone europe-west1-c \
- --tags clovis-http-server \
  --scopes cloud-platform \
- --metadata cloud-storage-path=$CLOUD_STORAGE_PATH
- --metadata auto-start=true \
- --metadata-from-file startup-script=tools/android/loading/gce/startup-script.sh
+ --metadata cloud-storage-path=$CLOUD_STORAGE_PATH,auto-start=true \
+ --metadata-from-file \
+     startup-script=$CHROMIUM_SRC/tools/android/loading/gce/startup-script.sh
 ```
 
 **Note:** To start an instance without automatically starting the app on it,
@@ -90,12 +89,12 @@
 
 ## Use the app locally
 
-Set up the local environment:
+From a new directory, set up a local environment:
 
 ```shell
 virtualenv env
 source env/bin/activate
-pip install -r pip_requirements.txt
+pip install -r $CHROMIUM_SRC/tools/android/loading/gce/pip_requirements.txt
 ```
 
 Create a JSON file describing the deployment configuration:
@@ -106,11 +105,13 @@
 # CLOUD_STORAGE_PATH is the path in Google Storage where generated traces will
 # be stored.
 # CHROME_PATH is the path to the Chrome executable on the host.
+# CHROMIUM_SRC is the Chromium src directory.
 cat >$CONFIG_FILE << EOF
 {
   "project_name" : "$PROJECT_NAME",
   "cloud_storage_path" : "$CLOUD_STORAGE_PATH",
-  "chrome_path" : "$CHROME_PATH"
+  "chrome_path" : "$CHROME_PATH",
+  "src_path" : "$CHROMIUM_SRC"
 }
 EOF
 ```
@@ -118,7 +119,9 @@
 Launch the app, passing the path to the deployment configuration file:
 
 ```shell
-gunicorn --workers=1 --bind 127.0.0.1:8080 'main:StartApp('\"$CONFIG_FILE\"')'
+gunicorn --workers=1 --bind 127.0.0.1:8080 \
+    --pythonpath $CHROMIUM_SRC/tools/android/loading/gce \
+    'main:StartApp('\"$CONFIG_FILE\"')'
 ```
 
 You can now [use the app][2], which is located at http://localhost:8080.
@@ -129,28 +132,5 @@
 deactivate
 ```
 
-## Project-wide settings
-
-This is already setup, no need to do this again.
-Kept here for reference.
-
-### Firewall rule
-
-Firewall rule to allow access to the instance HTTP server from the outside:
-
-```shell
-gcloud compute firewall-rules create default-allow-http-8080 \
-    --allow tcp:8080 \
-    --source-ranges 0.0.0.0/0 \
-    --target-tags clovis-http-server \
-    --description "Allow port 8080 access to http-server"
-```
-
-The firewall rule can be disabled with:
-
-```shell
-gcloud compute firewall-rules delete default-allow-http-8080
-```
-
 [1]: https://cloud.google.com/sdk
 [2]: #Use-the-app
diff --git a/tools/android/loading/gce/main.py b/tools/android/loading/gce/main.py
index b926cad..b950c54 100644
--- a/tools/android/loading/gce/main.py
+++ b/tools/android/loading/gce/main.py
@@ -41,6 +41,7 @@
            self._base_path_in_bucket += '/'
 
        self._chrome_path = config['chrome_path']
+       self._src_path = config['src_path']
 
 
   def _GetStorageClient(self):
@@ -115,9 +116,10 @@
       os.remove(filename)  # Remove any existing trace for this URL.
     except OSError:
       pass  # Nothing to remove.
-    command_line = ['python', '../analyze.py', 'log_requests', '--clear_cache',
-        '--local', '--headless', '--local_binary', self._chrome_path, '--url',
-        url, '--output', filename]
+    analyze_path = self._src_path + '/tools/android/loading/analyze.py'
+    command_line = ['python', analyze_path, 'log_requests',
+        '--clear_cache', '--local', '--headless', '--local_binary',
+        self._chrome_path, '--url', url, '--output', filename]
     with open(log_filename, 'w') as log_file:
       ret = subprocess.call(command_line , stderr = subprocess.STDOUT,
                             stdout = log_file)
diff --git a/tools/android/loading/gce/startup-script.sh b/tools/android/loading/gce/startup-script.sh
index ef3d24f..94edb22 100644
--- a/tools/android/loading/gce/startup-script.sh
+++ b/tools/android/loading/gce/startup-script.sh
@@ -7,6 +7,11 @@
 
 set -v
 
+get_instance_metadata() {
+  curl -fs http://metadata/computeMetadata/v1/instance/attributes/$1 \
+      -H "Metadata-Flavor: Google"
+}
+
 # Talk to the metadata server to get the project id
 PROJECTID=$(curl -s \
     "http://metadata.google.internal/computeMetadata/v1/project/project-id" \
@@ -34,9 +39,7 @@
 # Download the Clovis deployment from Google Cloud Storage and unzip it.
 # It is expected that the contents of the deployment have been generated using
 # the tools/android/loading/gce/deploy.sh script.
-CLOUD_STORAGE_PATH=$(curl -s \
-    "http://metadata/computeMetadata/v1/instance/attributes/cloud-storage-path" \
-    -H "Metadata-Flavor: Google")
+CLOUD_STORAGE_PATH=`get_instance_metadata cloud-storage-path`
 DEPLOYMENT_PATH=$CLOUD_STORAGE_PATH/deployment
 
 mkdir -p /opt/app/clovis
@@ -67,14 +70,13 @@
 {
   "project_name" : "$PROJECTID",
   "cloud_storage_path" : "$CLOUD_STORAGE_PATH",
-  "chrome_path" : "/opt/app/clovis/binaries/chrome"
+  "chrome_path" : "/opt/app/clovis/binaries/chrome",
+  "src_path" : "/opt/app/clovis/src"
 }
 EOF
 
 # Check if auto-start is enabled
-AUTO_START=$(curl -s \
-    "http://metadata/computeMetadata/v1/instance/attributes/auto-start" \
-    -H "Metadata-Flavor: Google")
+AUTO_START=`get_instance_metadata auto-start`
 
 # Exit early if auto start is not enabled.
 if [ "$AUTO_START" != "true" ]; then
diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py
index 4211e3077..5f50731 100755
--- a/tools/clang/scripts/update.py
+++ b/tools/clang/scripts/update.py
@@ -26,7 +26,7 @@
 # Do NOT CHANGE this if you don't know what you're doing -- see
 # https://chromium.googlesource.com/chromium/src/+/master/docs/updating_clang.md
 # Reverting problematic clang rolls is safe, though.
-CLANG_REVISION = '264334'
+CLANG_REVISION = '264915'
 
 use_head_revision = 'LLVM_FORCE_HEAD_REVISION' in os.environ
 if use_head_revision:
@@ -480,10 +480,6 @@
       # https://stackoverflow.com/questions/13050827
       cc = cc.replace('\\', '/')
       cxx = cxx.replace('\\', '/')
-      # If we're using VS 2015, tell the stage 1 compiler to act like it.
-      if GetVSVersion().ShortName().startswith('2015'):
-        cflags += ['-fms-compatibility-version=19']
-        cxxflags += ['-fms-compatibility-version=19']
     else:
       cc = os.path.join(LLVM_BOOTSTRAP_INSTALL_DIR, 'bin', 'clang')
       cxx = os.path.join(LLVM_BOOTSTRAP_INSTALL_DIR, 'bin', 'clang++')
diff --git a/tools/metrics/actions/actions.xml b/tools/metrics/actions/actions.xml
index 87e8eb7..28e3d39f 100644
--- a/tools/metrics/actions/actions.xml
+++ b/tools/metrics/actions/actions.xml
@@ -8394,6 +8394,7 @@
   <description>
     Android: User clicked on a snippet card to hide the bigger summary.
   </description>
+  <obsolete>Deprecated as of 4/2016</obsolete>
 </action>
 
 <action name="MobileNTP.Snippets.ShowMore">
@@ -8401,6 +8402,7 @@
   <description>
     Android: User clicked on a snippet card to reveal a bigger summary.
   </description>
+  <obsolete>Deprecated as of 4/2016</obsolete>
 </action>
 
 <action name="MobileNTPBookmark">
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml
index 9cb8fda..dd24d015 100644
--- a/tools/metrics/histograms/histograms.xml
+++ b/tools/metrics/histograms/histograms.xml
@@ -32211,6 +32211,9 @@
     Android: The position of the snippets card on the NTP, that is expanded to
     reveal more content.
   </summary>
+  <obsolete>
+    Deprecated as of 4/2016
+  </obsolete>
 </histogram>
 
 <histogram name="NewTabPage.Snippets.CardHidden">
@@ -32219,6 +32222,9 @@
     Android: The position of the snippets card on the NTP, for which the
     expanded content was minimized/hidden.
   </summary>
+  <obsolete>
+    Deprecated as of 4/2016
+  </obsolete>
 </histogram>
 
 <histogram name="NewTabPage.Snippets.CardShown">
@@ -73526,6 +73532,7 @@
   <int value="-1052782474" label="enable-cloud-devices"/>
   <int value="-1052415111" label="malware-interstitial-v2"/>
   <int value="-1052219252" label="disable-captive-portal-bypass-proxy"/>
+  <int value="-1041650038" label="enable-forced-migration-to-tabbed-mode"/>
   <int value="-1033738911" label="enable-mac-views-dialogs"/>
   <int value="-1022971520" label="enable-search-button-in-omnibox-for-str"/>
   <int value="-1020450980" label="gesture-deletion"/>
diff --git a/tools/metrics/rappor/rappor.xml b/tools/metrics/rappor/rappor.xml
index 49aec766..7dff4c9 100644
--- a/tools/metrics/rappor/rappor.xml
+++ b/tools/metrics/rappor/rappor.xml
@@ -573,6 +573,14 @@
   </summary>
 </rappor-metric>
 
+<rappor-metric name="Media.OriginUrl.MS" type="ETLD_PLUS_ONE">
+  <owner>xhwang@chromium.org</owner>
+  <summary>
+    The domain and registry of the URL that loads an HTML5 media player using
+    MediaStream.
+  </summary>
+</rappor-metric>
+
 <rappor-metric name="Media.OriginUrl.MSE" type="ETLD_PLUS_ONE">
   <owner>xhwang@chromium.org</owner>
   <summary>
diff --git a/tools/valgrind/gtest_exclude/remoting_unittests.gtest-drmemory_win32.txt b/tools/valgrind/gtest_exclude/remoting_unittests.gtest-drmemory_win32.txt
index 038c5ef..276d6acb 100644
--- a/tools/valgrind/gtest_exclude/remoting_unittests.gtest-drmemory_win32.txt
+++ b/tools/valgrind/gtest_exclude/remoting_unittests.gtest-drmemory_win32.txt
@@ -13,3 +13,6 @@
 
 # https://crbug.com/581519
 Webrtc/ConnectionTest.Video/0
+
+# https://crbug.com/599769
+RemoteSecurityKeyMessageReaderTest.MultipleMessages
diff --git a/ui/app_list/app_list_constants.cc b/ui/app_list/app_list_constants.cc
index 84706bd8..b9590a3 100644
--- a/ui/app_list/app_list_constants.cc
+++ b/ui/app_list/app_list_constants.cc
@@ -83,7 +83,11 @@
 
 // Preferred number of columns and rows in apps grid.
 const int kPreferredCols = 4;
+#if defined(OS_CHROMEOS)
 const int kPreferredRows = 4;
+#else
+const int kPreferredRows = 3;
+#endif  // defined(OS_CHROMEOS)
 const int kGridIconDimension = 48;
 
 // Preferred search result icon sizes.
diff --git a/ui/app_list/views/app_list_view_unittest.cc b/ui/app_list/views/app_list_view_unittest.cc
index 477875f..b263137 100644
--- a/ui/app_list/views/app_list_view_unittest.cc
+++ b/ui/app_list/views/app_list_view_unittest.cc
@@ -298,9 +298,14 @@
 
   Show();
 
+#if defined(OS_CHROMEOS)
   // Explicitly enforce the exact dimensions of the app list. Feel free to
   // change these if you need to (they are just here to prevent against
   // accidental changes to the window size).
+  //
+  // Note: Only test this on Chrome OS; the deprecation banner on other
+  // platforms makes the height variable so we can't reliably test it (nor do we
+  // really need to).
   switch (test_type_) {
     case NORMAL:
       EXPECT_EQ("400x500", view_->bounds().size().ToString());
@@ -318,6 +323,7 @@
       NOTREACHED();
       break;
   }
+#endif  // defined(OS_CHROMEOS)
 
   if (is_landscape())
     EXPECT_EQ(2, GetPaginationModel()->total_pages());
diff --git a/ui/app_list/views/apps_container_view.cc b/ui/app_list/views/apps_container_view.cc
index 1b72f2d0..86a8f49 100644
--- a/ui/app_list/views/apps_container_view.cc
+++ b/ui/app_list/views/apps_container_view.cc
@@ -8,21 +8,146 @@
 #include <vector>
 
 #include "base/command_line.h"
+#include "base/strings/utf_string_conversions.h"
+#include "third_party/skia/include/core/SkColor.h"
+#include "third_party/skia/include/core/SkPaint.h"
 #include "ui/app_list/app_list_constants.h"
 #include "ui/app_list/app_list_folder_item.h"
 #include "ui/app_list/app_list_switches.h"
+#include "ui/app_list/app_list_view_delegate.h"
 #include "ui/app_list/views/app_list_folder_view.h"
 #include "ui/app_list/views/app_list_item_view.h"
 #include "ui/app_list/views/app_list_main_view.h"
 #include "ui/app_list/views/apps_grid_view.h"
 #include "ui/app_list/views/folder_background_view.h"
+#include "ui/base/resource/resource_bundle.h"
 #include "ui/events/event.h"
+#include "ui/gfx/canvas.h"
+#include "ui/views/background.h"
+#include "ui/views/border.h"
+#include "ui/views/controls/label.h"
+#include "ui/views/controls/styled_label.h"
+#include "ui/views/layout/box_layout.h"
+#include "ui/views/view.h"
 
 namespace app_list {
 
+namespace {
+
+#if !defined(OS_CHROMEOS)
+// Deprecation notice dimensions.
+const int kDeprecationBannerLabelSpacingPx = 6;
+const int kDeprecationBannerPaddingPx = 16;
+const int kDeprecationBannerMarginPx = 12;
+const SkColor kDeprecationBannerBackgroundColor =
+    SkColorSetRGB(0xff, 0xfd, 0xe7);
+const SkColor kDeprecationBannerBorderColor = SkColorSetRGB(0xc1, 0xc1, 0xc1);
+const int kDeprecationBannerBorderThickness = 1;
+const int kDeprecationBannerBorderCornerRadius = 2;
+// Relative to the platform-default font size.
+const int kDeprecationBannerTitleSize = 2;
+const int kDeprecationBannerTextSize = 0;
+const SkColor kLinkColor = SkColorSetRGB(0x33, 0x67, 0xd6);
+
+// A background that paints a filled rounded rectangle.
+class RoundedRectBackground : public views::Background {
+ public:
+  RoundedRectBackground(SkColor color, int corner_radius)
+      : color_(color), corner_radius_(corner_radius) {}
+  ~RoundedRectBackground() override {}
+
+  // views::Background overrides:
+  void Paint(gfx::Canvas* canvas, views::View* view) const override {
+    gfx::Rect bounds = view->GetContentsBounds();
+
+    SkPaint paint;
+    paint.setFlags(SkPaint::kAntiAlias_Flag);
+    paint.setColor(color_);
+    canvas->DrawRoundRect(bounds, corner_radius_, paint);
+  }
+
+ private:
+  SkColor color_;
+  int corner_radius_;
+
+  DISALLOW_COPY_AND_ASSIGN(RoundedRectBackground);
+};
+
+base::string16 GetDeprecationText(const AppListViewDelegate& delegate) {
+  size_t message_break;
+  base::string16 text = delegate.GetMessageText(&message_break);
+  base::string16 apps_shortcut_name = delegate.GetAppsShortcutName();
+
+  // TODO(mgiuca): Insert the Apps shortcut with an image, rather than just
+  // concatenating it into the string.
+  text.insert(message_break, apps_shortcut_name);
+  return text;
+}
+
+views::View* BuildDeprecationNotice(const AppListViewDelegate& delegate,
+                                    views::StyledLabelListener* listener) {
+  ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
+  const gfx::FontList& title_font =
+      rb.GetFontListWithDelta(kDeprecationBannerTitleSize);
+  const gfx::FontList& text_font =
+      rb.GetFontListWithDelta(kDeprecationBannerTextSize);
+
+  base::string16 title = delegate.GetMessageTitle();
+  views::Label* title_label = new views::Label(title);
+  title_label->SetMultiLine(true);
+  title_label->SetHorizontalAlignment(gfx::HorizontalAlignment::ALIGN_LEFT);
+  title_label->SetFontList(title_font);
+  title_label->SetBackgroundColor(kDeprecationBannerBackgroundColor);
+
+  base::string16 text = GetDeprecationText(delegate);
+  base::string16 learn_more = delegate.GetLearnMoreText();
+  base::string16 message = text + base::ASCIIToUTF16(" ") + learn_more;
+  size_t learn_more_start = text.size() + 1;
+  size_t learn_more_end = learn_more_start + learn_more.size();
+  views::StyledLabel* text_label = new views::StyledLabel(message, listener);
+  auto learn_more_style = views::StyledLabel::RangeStyleInfo::CreateForLink();
+  learn_more_style.color = kLinkColor;
+  if (learn_more.size()) {
+    text_label->AddStyleRange(gfx::Range(learn_more_start, learn_more_end),
+                              learn_more_style);
+  }
+  text_label->SetDisplayedOnBackgroundColor(kDeprecationBannerBackgroundColor);
+  text_label->SetBaseFontList(text_font);
+
+  views::View* deprecation_banner_box = new views::View;
+  deprecation_banner_box->SetLayoutManager(new views::BoxLayout(
+      views::BoxLayout::kVertical, kDeprecationBannerPaddingPx,
+      kDeprecationBannerPaddingPx, kDeprecationBannerLabelSpacingPx));
+  deprecation_banner_box->AddChildView(title_label);
+  deprecation_banner_box->AddChildView(text_label);
+  deprecation_banner_box->set_background(new RoundedRectBackground(
+      kDeprecationBannerBackgroundColor, kDeprecationBannerBorderCornerRadius));
+  deprecation_banner_box->SetBorder(views::Border::CreateRoundedRectBorder(
+      kDeprecationBannerBorderThickness, kDeprecationBannerBorderCornerRadius,
+      kDeprecationBannerBorderColor));
+
+  views::View* deprecation_banner_view = new views::View;
+  deprecation_banner_view->AddChildView(deprecation_banner_box);
+  deprecation_banner_view->SetLayoutManager(new views::BoxLayout(
+      views::BoxLayout::kVertical, kDeprecationBannerMarginPx,
+      kDeprecationBannerMarginPx, 0));
+
+  return deprecation_banner_view;
+}
+#endif  // !defined(OS_CHROMEOS)
+
+}  // namespace
+
 AppsContainerView::AppsContainerView(AppListMainView* app_list_main_view,
                                      AppListModel* model)
-    : show_state_(SHOW_NONE), top_icon_animation_pending_count_(0) {
+    : show_state_(SHOW_NONE),
+      view_delegate_(app_list_main_view->view_delegate()),
+      top_icon_animation_pending_count_(0) {
+#if !defined(OS_CHROMEOS)
+  deprecation_banner_view_ = BuildDeprecationNotice(*view_delegate_, this);
+  AddChildView(deprecation_banner_view_);
+#endif  // !defined(OS_CHROMEOS)
+
   apps_grid_view_ = new AppsGridView(app_list_main_view);
   int cols;
   int rows;
@@ -110,11 +235,16 @@
 }
 
 gfx::Size AppsContainerView::GetPreferredSize() const {
+  const int deprecation_banner_height =
+      deprecation_banner_view_
+          ? deprecation_banner_view_->GetPreferredSize().height()
+          : 0;
   const gfx::Size grid_size = apps_grid_view_->GetPreferredSize();
   const gfx::Size folder_view_size = app_list_folder_view_->GetPreferredSize();
 
   int width = std::max(grid_size.width(), folder_view_size.width());
-  int height = std::max(grid_size.height(), folder_view_size.height());
+  int height = std::max(grid_size.height() + deprecation_banner_height,
+                        folder_view_size.height());
   return gfx::Size(width, height);
 }
 
@@ -123,8 +253,18 @@
   if (rect.IsEmpty())
     return;
 
+  int deprecation_banner_height = 0;
+  if (deprecation_banner_view_) {
+    deprecation_banner_height =
+        deprecation_banner_view_->GetPreferredSize().height();
+    gfx::Size deprecation_banner_size(rect.width(), deprecation_banner_height);
+    deprecation_banner_view_->SetBoundsRect(
+        gfx::Rect(rect.origin(), deprecation_banner_size));
+  }
+
   switch (show_state_) {
     case SHOW_APPS:
+      rect.Inset(0, deprecation_banner_height, 0, 0);
       apps_grid_view_->SetBoundsRect(rect);
       break;
     case SHOW_ACTIVE_FOLDER:
@@ -174,6 +314,16 @@
   }
 }
 
+void AppsContainerView::StyledLabelLinkClicked(views::StyledLabel* label,
+                                               const gfx::Range& range,
+                                               int event_flags) {
+#if !defined(OS_CHROMEOS)
+  // The only style label is the "Learn more" link in the deprecation banner, so
+  // assume that that's what was clicked.
+  view_delegate_->OpenLearnMoreLink();
+#endif  // !defined(OS_CHROMEOS)
+}
+
 void AppsContainerView::SetShowState(ShowState show_state,
                                      bool show_apps_with_animation) {
   if (show_state_ == show_state)
@@ -183,6 +333,8 @@
 
   switch (show_state_) {
     case SHOW_APPS:
+      if (deprecation_banner_view_)
+        deprecation_banner_view_->SetVisible(true);
       folder_background_view_->SetVisible(false);
       if (show_apps_with_animation) {
         app_list_folder_view_->ScheduleShowHideAnimation(false, false);
@@ -193,11 +345,15 @@
       }
       break;
     case SHOW_ACTIVE_FOLDER:
+      if (deprecation_banner_view_)
+        deprecation_banner_view_->SetVisible(false);
       folder_background_view_->SetVisible(true);
       apps_grid_view_->ScheduleShowHideAnimation(false);
       app_list_folder_view_->ScheduleShowHideAnimation(true, false);
       break;
     case SHOW_ITEM_REPARENT:
+      if (deprecation_banner_view_)
+        deprecation_banner_view_->SetVisible(true);
       folder_background_view_->SetVisible(false);
       folder_background_view_->UpdateFolderContainerBubble(
           FolderBackgroundView::NO_BUBBLE);
diff --git a/ui/app_list/views/apps_container_view.h b/ui/app_list/views/apps_container_view.h
index 792158a..6fca60f 100644
--- a/ui/app_list/views/apps_container_view.h
+++ b/ui/app_list/views/apps_container_view.h
@@ -13,6 +13,8 @@
 #include "ui/app_list/app_list_folder_item.h"
 #include "ui/app_list/views/app_list_page.h"
 #include "ui/app_list/views/top_icon_animation_view.h"
+#include "ui/gfx/range/range.h"
+#include "ui/views/controls/styled_label_listener.h"
 
 namespace gfx {
 class Rect;
@@ -26,13 +28,16 @@
 class AppListFolderView;
 class AppListMainView;
 class AppListModel;
+class AppListViewDelegate;
 class ContentsView;
 class FolderBackgroundView;
 
 // AppsContainerView contains a root level AppsGridView to render the root level
 // app items, and a AppListFolderView to render the app items inside the
 // active folder. Only one if them is visible to user at any time.
-class AppsContainerView : public AppListPage, public TopIconAnimationObserver {
+class AppsContainerView : public AppListPage,
+                          public TopIconAnimationObserver,
+                          public views::StyledLabelListener {
  public:
   AppsContainerView(AppListMainView* app_list_main_view,
                     AppListModel* model);
@@ -78,6 +83,11 @@
   // TopIconAnimationObserver overrides:
   void OnTopIconAnimationsComplete() override;
 
+  // StyledLabelListener overrides:
+  void StyledLabelLinkClicked(views::StyledLabel* label,
+                              const gfx::Range& range,
+                              int event_flags) override;
+
   AppsGridView* apps_grid_view() { return apps_grid_view_; }
   FolderBackgroundView* folder_background_view() {
      return folder_background_view_;
@@ -107,10 +117,13 @@
 
   void PrepareToShowApps(AppListFolderItem* folder_item);
 
+  // Null on Chrome OS (unused).
+  View* deprecation_banner_view_ = nullptr;  // Owned by views hierarchy.
   AppsGridView* apps_grid_view_;  // Owned by views hierarchy.
   AppListFolderView* app_list_folder_view_;  // Owned by views hierarchy.
   FolderBackgroundView* folder_background_view_;  // Owned by views hierarchy.
   ShowState show_state_;
+  AppListViewDelegate* view_delegate_;
 
   // The transitional views for animating the top items in folder
   // when opening or closing a folder.
diff --git a/ui/app_list/views/apps_grid_view.cc b/ui/app_list/views/apps_grid_view.cc
index 43cd030a..cf599fd 100644
--- a/ui/app_list/views/apps_grid_view.cc
+++ b/ui/app_list/views/apps_grid_view.cc
@@ -887,7 +887,9 @@
 
 gfx::Size AppsGridView::GetPreferredSize() const {
   const gfx::Insets insets(GetInsets());
-  int page_switcher_height = page_switcher_view_->GetPreferredSize().height();
+  // If we are in a folder, ignore the page switcher for height calculations.
+  int page_switcher_height =
+      folder_delegate_ ? 0 : page_switcher_view_->GetPreferredSize().height();
   gfx::Size size = GetTileGridSize();
   size.Enlarge(insets.width(), insets.height() + page_switcher_height);
   return size;
diff --git a/ui/app_list/views/contents_view.cc b/ui/app_list/views/contents_view.cc
index 44fef489..9b49418 100644
--- a/ui/app_list/views/contents_view.cc
+++ b/ui/app_list/views/contents_view.cc
@@ -413,7 +413,7 @@
 }
 
 gfx::Size ContentsView::GetDefaultContentsSize() const {
-  return apps_container_view_->apps_grid_view()->GetPreferredSize();
+  return apps_container_view_->GetPreferredSize();
 }
 
 gfx::Size ContentsView::GetPreferredSize() const {
diff --git a/ui/base/ime/input_method_win.cc b/ui/base/ime/input_method_win.cc
index 9b04a8d..39fdd47 100644
--- a/ui/base/ime/input_method_win.cc
+++ b/ui/base/ime/input_method_win.cc
@@ -654,7 +654,10 @@
   // Use switch here in case we are going to add more text input types.
   // We disable input method in password field.
   const HWND window_handle = toplevel_window_handle_;
-  const TextInputType text_input_type = GetTextInputType();
+  const TextInputType text_input_type =
+      (GetEngine() && GetEngine()->IsInterestedInKeyEvent())
+          ? TEXT_INPUT_TYPE_NONE
+          : GetTextInputType();
   const TextInputMode text_input_mode = GetTextInputMode();
   switch (text_input_type) {
     case ui::TEXT_INPUT_TYPE_NONE:
@@ -685,7 +688,7 @@
   if (engine) {
     if (old_text_input_type != ui::TEXT_INPUT_TYPE_NONE)
       engine->FocusOut();
-    if (text_input_type != ui::TEXT_INPUT_TYPE_NONE)
+    if (GetTextInputType() != ui::TEXT_INPUT_TYPE_NONE)
       engine->FocusIn(context);
   }
 }
diff --git a/ui/display/chromeos/display_configurator.cc b/ui/display/chromeos/display_configurator.cc
index 50518c27..93afee2 100644
--- a/ui/display/chromeos/display_configurator.cc
+++ b/ui/display/chromeos/display_configurator.cc
@@ -823,12 +823,15 @@
   return false;
 }
 
-bool DisplayConfigurator::SetGammaRamp(
+bool DisplayConfigurator::SetColorCorrection(
     int64_t display_id,
-    const std::vector<GammaRampRGBEntry>& lut) {
+    const std::vector<GammaRampRGBEntry>& degamma_lut,
+    const std::vector<GammaRampRGBEntry>& gamma_lut,
+    const std::vector<float>& correction_matrix) {
   for (const DisplaySnapshot* display : cached_displays_) {
     if (display->display_id() == display_id)
-      return native_display_delegate_->SetGammaRamp(*display, lut);
+      return native_display_delegate_->SetColorCorrection(
+          *display, degamma_lut, gamma_lut, correction_matrix);
   }
 
   return false;
diff --git a/ui/display/chromeos/display_configurator.h b/ui/display/chromeos/display_configurator.h
index c6c849b..7a2449f 100644
--- a/ui/display/chromeos/display_configurator.h
+++ b/ui/display/chromeos/display_configurator.h
@@ -274,10 +274,6 @@
   bool SetColorCalibrationProfile(int64_t display_id,
                                   ui::ColorCalibrationProfile new_profile);
 
-  // Sets the gamma ramp for |display_id| to the values in |lut|.
-  bool SetGammaRamp(int64_t display_id,
-                    const std::vector<GammaRampRGBEntry>& lut);
-
   // Enables/disables virtual display.
   int64_t AddVirtualDisplay(gfx::Size display_size);
   bool RemoveVirtualDisplay(int64_t display_id);
@@ -289,6 +285,13 @@
     configure_display_ = configure_display;
   }
 
+  // Sets the gamma, degamma and correction matrix for |display_id| to the
+  // values in |degamma_lut|, |gamma_lut| and |correction_matrix|.
+  bool SetColorCorrection(int64_t display_id,
+                          const std::vector<GammaRampRGBEntry>& degamma_lut,
+                          const std::vector<GammaRampRGBEntry>& gamma_lut,
+                          const std::vector<float>& correction_matrix);
+
  private:
   class DisplayLayoutManagerImpl;
 
diff --git a/ui/display/chromeos/display_snapshot_virtual.cc b/ui/display/chromeos/display_snapshot_virtual.cc
index d063beb..3bf19fb 100644
--- a/ui/display/chromeos/display_snapshot_virtual.cc
+++ b/ui/display/chromeos/display_snapshot_virtual.cc
@@ -28,6 +28,7 @@
                       DISPLAY_CONNECTION_TYPE_VIRTUAL,
                       false,
                       false,
+                      false,
                       "Virtual display",
                       base::FilePath(),
                       std::vector<const DisplayMode*>(),
diff --git a/ui/display/chromeos/test/action_logger_util.cc b/ui/display/chromeos/test/action_logger_util.cc
index 1e3e938..ebd9ef84 100644
--- a/ui/display/chromeos/test/action_logger_util.cc
+++ b/ui/display/chromeos/test/action_logger_util.cc
@@ -57,16 +57,32 @@
                             output.display_id(), state);
 }
 
-std::string SetGammaRampAction(const ui::DisplaySnapshot& output,
-                               const std::vector<GammaRampRGBEntry>& lut) {
-  std::string table;
-  for (size_t i = 0; i < lut.size(); ++i) {
-    table += base::StringPrintf(",rgb[%" PRIuS "]=%04x%04x%04x", i, lut[i].r,
-                                lut[i].g, lut[i].b);
+std::string SetColorCorrectionAction(
+    const ui::DisplaySnapshot& output,
+    const std::vector<GammaRampRGBEntry>& degamma_lut,
+    const std::vector<GammaRampRGBEntry>& gamma_lut,
+    const std::vector<float>& correction_matrix) {
+  std::string degamma_table;
+  for (size_t i = 0; i < degamma_lut.size(); ++i) {
+    degamma_table += base::StringPrintf(",degamma[%" PRIuS "]=%04x%04x%04x", i,
+                                        degamma_lut[i].r, degamma_lut[i].g,
+                                        degamma_lut[i].b);
+  }
+  std::string gamma_table;
+  for (size_t i = 0; i < gamma_lut.size(); ++i) {
+    gamma_table +=
+        base::StringPrintf(",gamma[%" PRIuS "]=%04x%04x%04x", i, gamma_lut[i].r,
+                           gamma_lut[i].g, gamma_lut[i].b);
   }
 
-  return base::StringPrintf("set_gamma_ramp(id=%" PRId64 "%s)",
-                            output.display_id(), table.c_str());
+  std::string ctm;
+  for (size_t i = 0; i < correction_matrix.size(); ++i) {
+    ctm += base::StringPrintf(",ctm[%" PRIuS "]=%f", i, correction_matrix[i]);
+  }
+
+  return base::StringPrintf("set_color_correction(id=%" PRId64 "%s%s%s)",
+                            output.display_id(), degamma_table.c_str(),
+                            gamma_table.c_str(), ctm.c_str());
 }
 
 std::string JoinActions(const char* action, ...) {
diff --git a/ui/display/chromeos/test/action_logger_util.h b/ui/display/chromeos/test/action_logger_util.h
index 2a90809..06be848 100644
--- a/ui/display/chromeos/test/action_logger_util.h
+++ b/ui/display/chromeos/test/action_logger_util.h
@@ -66,9 +66,13 @@
 std::string GetSetHDCPStateAction(const DisplaySnapshot& output,
                                   HDCPState state);
 
-// Returns a string describing a TestNativeDisplayDelegate::SetGammaRamp() call;
-std::string SetGammaRampAction(const ui::DisplaySnapshot& output,
-                               const std::vector<GammaRampRGBEntry>& lut);
+// Returns a string describing a TestNativeDisplayDelegate::SetColorCorrection()
+// call;
+std::string SetColorCorrectionAction(
+    const ui::DisplaySnapshot& output,
+    const std::vector<GammaRampRGBEntry>& degamma_lut,
+    const std::vector<GammaRampRGBEntry>& gamma_lut,
+    const std::vector<float>& correction_matrix);
 // Joins a sequence of strings describing actions (e.g. kScreenDim) such
 // that they can be compared against a string returned by
 // ActionLogger::GetActionsAndClear().  The list of actions must be
diff --git a/ui/display/chromeos/test/test_display_snapshot.cc b/ui/display/chromeos/test/test_display_snapshot.cc
index 238e2db..e8dc15c3 100644
--- a/ui/display/chromeos/test/test_display_snapshot.cc
+++ b/ui/display/chromeos/test/test_display_snapshot.cc
@@ -12,6 +12,7 @@
                       DISPLAY_CONNECTION_TYPE_UNKNOWN,
                       false,
                       false,
+                      false,
                       std::string(),
                       base::FilePath(),
                       std::vector<const DisplayMode*>(),
@@ -26,6 +27,7 @@
     DisplayConnectionType type,
     bool is_aspect_preserving_scaling,
     int64_t product_id,
+    bool has_color_correction_matrix,
     const std::vector<const DisplayMode*>& modes,
     const DisplayMode* current_mode,
     const DisplayMode* native_mode)
@@ -35,6 +37,7 @@
                       type,
                       is_aspect_preserving_scaling,
                       false,
+                      has_color_correction_matrix,
                       std::string(),
                       base::FilePath(),
                       modes,
diff --git a/ui/display/chromeos/test/test_display_snapshot.h b/ui/display/chromeos/test/test_display_snapshot.h
index 81b09a3..1a39001 100644
--- a/ui/display/chromeos/test/test_display_snapshot.h
+++ b/ui/display/chromeos/test/test_display_snapshot.h
@@ -22,6 +22,7 @@
                       DisplayConnectionType type,
                       bool is_aspect_preserving_scaling,
                       int64_t product_id,
+                      bool has_color_correction_matrix,
                       const std::vector<const DisplayMode*>& modes,
                       const DisplayMode* current_mode,
                       const DisplayMode* native_mode);
diff --git a/ui/display/chromeos/test/test_native_display_delegate.cc b/ui/display/chromeos/test/test_native_display_delegate.cc
index d5a9c10a..00d7cd9 100644
--- a/ui/display/chromeos/test/test_native_display_delegate.cc
+++ b/ui/display/chromeos/test/test_native_display_delegate.cc
@@ -134,10 +134,13 @@
   return false;
 }
 
-bool TestNativeDisplayDelegate::SetGammaRamp(
+bool TestNativeDisplayDelegate::SetColorCorrection(
     const ui::DisplaySnapshot& output,
-    const std::vector<GammaRampRGBEntry>& lut) {
-  log_->AppendAction(SetGammaRampAction(output, lut));
+    const std::vector<GammaRampRGBEntry>& degamma_lut,
+    const std::vector<GammaRampRGBEntry>& gamma_lut,
+    const std::vector<float>& correction_matrix) {
+  log_->AppendAction(SetColorCorrectionAction(output, degamma_lut, gamma_lut,
+                                              correction_matrix));
   return true;
 }
 
diff --git a/ui/display/chromeos/test/test_native_display_delegate.h b/ui/display/chromeos/test/test_native_display_delegate.h
index 4cb983d..073b408 100644
--- a/ui/display/chromeos/test/test_native_display_delegate.h
+++ b/ui/display/chromeos/test/test_native_display_delegate.h
@@ -76,8 +76,10 @@
   bool SetColorCalibrationProfile(
       const DisplaySnapshot& output,
       ui::ColorCalibrationProfile new_profile) override;
-  bool SetGammaRamp(const ui::DisplaySnapshot& output,
-                    const std::vector<GammaRampRGBEntry>& lut) override;
+  bool SetColorCorrection(const ui::DisplaySnapshot& output,
+                          const std::vector<GammaRampRGBEntry>& degamma_lut,
+                          const std::vector<GammaRampRGBEntry>& gamma_lut,
+                          const std::vector<float>& correction_matrix) override;
   void AddObserver(NativeDisplayObserver* observer) override;
   void RemoveObserver(NativeDisplayObserver* observer) override;
 
diff --git a/ui/display/chromeos/x11/display_snapshot_x11.cc b/ui/display/chromeos/x11/display_snapshot_x11.cc
index eba35948..e289d9f 100644
--- a/ui/display/chromeos/x11/display_snapshot_x11.cc
+++ b/ui/display/chromeos/x11/display_snapshot_x11.cc
@@ -30,6 +30,7 @@
                       type,
                       is_aspect_preserving_scaling,
                       has_overscan,
+                      false,
                       display_name,
                       // TODO(jdufault): Figure out if we can get the file
                       //                 descriptor that maps to the device.
diff --git a/ui/display/chromeos/x11/native_display_delegate_x11.cc b/ui/display/chromeos/x11/native_display_delegate_x11.cc
index e4b2b69..2dc16a6 100644
--- a/ui/display/chromeos/x11/native_display_delegate_x11.cc
+++ b/ui/display/chromeos/x11/native_display_delegate_x11.cc
@@ -626,9 +626,11 @@
   return NULL;
 }
 
-bool NativeDisplayDelegateX11::SetGammaRamp(
+bool NativeDisplayDelegateX11::SetColorCorrection(
     const ui::DisplaySnapshot& output,
-    const std::vector<GammaRampRGBEntry>& lut) {
+    const std::vector<GammaRampRGBEntry>& degamma_lut,
+    const std::vector<GammaRampRGBEntry>& gamma_lut,
+    const std::vector<float>& correction_matrix) {
   NOTIMPLEMENTED();
   return false;
 }
diff --git a/ui/display/chromeos/x11/native_display_delegate_x11.h b/ui/display/chromeos/x11/native_display_delegate_x11.h
index 1e6d0044..e2952c05 100644
--- a/ui/display/chromeos/x11/native_display_delegate_x11.h
+++ b/ui/display/chromeos/x11/native_display_delegate_x11.h
@@ -97,8 +97,10 @@
       const DisplaySnapshot& output) override;
   bool SetColorCalibrationProfile(const DisplaySnapshot& output,
                                   ColorCalibrationProfile new_profile) override;
-  bool SetGammaRamp(const ui::DisplaySnapshot& output,
-                    const std::vector<GammaRampRGBEntry>& lut) override;
+  bool SetColorCorrection(const ui::DisplaySnapshot& output,
+                          const std::vector<GammaRampRGBEntry>& degamma_lut,
+                          const std::vector<GammaRampRGBEntry>& gamma_lut,
+                          const std::vector<float>& correction_matrix) override;
   void AddObserver(NativeDisplayObserver* observer) override;
   void RemoveObserver(NativeDisplayObserver* observer) override;
 
diff --git a/ui/display/types/display_snapshot.cc b/ui/display/types/display_snapshot.cc
index 88ea62d8..c3f6e38 100644
--- a/ui/display/types/display_snapshot.cc
+++ b/ui/display/types/display_snapshot.cc
@@ -24,6 +24,7 @@
                                  DisplayConnectionType type,
                                  bool is_aspect_preserving_scaling,
                                  bool has_overscan,
+                                 bool has_color_correction_matrix,
                                  std::string display_name,
                                  const base::FilePath& sys_path,
                                  const std::vector<const DisplayMode*>& modes,
@@ -36,6 +37,7 @@
       type_(type),
       is_aspect_preserving_scaling_(is_aspect_preserving_scaling),
       has_overscan_(has_overscan),
+      has_color_correction_matrix_(has_color_correction_matrix),
       display_name_(display_name),
       sys_path_(sys_path),
       modes_(modes),
diff --git a/ui/display/types/display_snapshot.h b/ui/display/types/display_snapshot.h
index 7f65916..d7106916 100644
--- a/ui/display/types/display_snapshot.h
+++ b/ui/display/types/display_snapshot.h
@@ -29,6 +29,7 @@
                   DisplayConnectionType type,
                   bool is_aspect_preserving_scaling,
                   bool has_overscan,
+                  bool has_color_correction_matrix,
                   std::string display_name,
                   const base::FilePath& sys_path,
                   const std::vector<const DisplayMode*>& modes,
@@ -60,6 +61,11 @@
   void set_origin(const gfx::Point& origin) { origin_ = origin; }
   void add_mode(const DisplayMode* mode) { modes_.push_back(mode); }
 
+  // Whether this display has advanced color correction available.
+  bool has_color_correction_matrix() const {
+    return has_color_correction_matrix_;
+  }
+
   // Returns a textual representation of this display state.
   virtual std::string ToString() const = 0;
 
@@ -81,6 +87,8 @@
 
   bool has_overscan_;
 
+  bool has_color_correction_matrix_;
+
   std::string display_name_;
 
   base::FilePath sys_path_;
diff --git a/ui/display/types/native_display_delegate.h b/ui/display/types/native_display_delegate.h
index bf59dca..b17be8f1 100644
--- a/ui/display/types/native_display_delegate.h
+++ b/ui/display/types/native_display_delegate.h
@@ -107,9 +107,12 @@
       const ui::DisplaySnapshot& output,
       ui::ColorCalibrationProfile new_profile) = 0;
 
-  // Set the gamma ramp for the display.
-  virtual bool SetGammaRamp(const ui::DisplaySnapshot& output,
-                            const std::vector<GammaRampRGBEntry>& lut) = 0;
+  // Set the gamma tables and corection matrix for the display.
+  virtual bool SetColorCorrection(
+      const ui::DisplaySnapshot& output,
+      const std::vector<GammaRampRGBEntry>& degamma_lut,
+      const std::vector<GammaRampRGBEntry>& gamma_lut,
+      const std::vector<float>& correction_matrix) = 0;
 
   virtual void AddObserver(NativeDisplayObserver* observer) = 0;
 
diff --git a/ui/file_manager/image_loader/request.js b/ui/file_manager/image_loader/request.js
index 7988a3c..848f192 100644
--- a/ui/file_manager/image_loader/request.js
+++ b/ui/file_manager/image_loader/request.js
@@ -246,8 +246,9 @@
     return;
   }
 
-  // Load RAW images by using Piex loader instead of XHR.
   var fileType = FileType.getTypeForName(this.request_.url);
+
+  // Load RAW images by using Piex loader instead of XHR.
   if (fileType.type === 'raw') {
     var timer = metrics.getTracker().startTiming(
         metrics.Categories.INTERNALS,
@@ -267,17 +268,22 @@
     return;
   }
 
+  // Load video thumbnails by using video tag instead of XHR.
+  if (fileType.type === 'video') {
+    this.createVideoThumbnailUrl_(this.request_.url).then(function(url) {
+      this.image_.src = url;
+    }.bind(this)).catch(function(error) {
+      console.error('Video thumbnail error: ', error);
+      onFailure();
+    });
+    return;
+  }
+
   // Fetch the image via authorized XHR and parse it.
   var parseImage = function(contentType, blob) {
     if (contentType)
       this.contentType_ = contentType;
-    if (fileType.type === 'video') {
-      this.createThumbnailUrl_(blob).then(function(url) {
-        this.image_.src = url;
-      }.bind(this), onFailure);
-    } else {
-      this.image_.src = URL.createObjectURL(blob);
-    }
+    this.image_.src = URL.createObjectURL(blob);
   }.bind(this);
 
   // Request raw data via XHR.
@@ -287,13 +293,12 @@
 /**
  * Creates a video thumbnail data url from video file.
  *
- * @param {!Blob}  blob Blob object of video file
- * @return {!Promise<!string>}  Promise that resolves with the data url of video
+ * @param {string} url Video URL.
+ * @return {!Promise<Blob>}  Promise that resolves with the data url of video
  *    thumbnail.
  * @private
  */
-ImageRequest.prototype.createThumbnailUrl_ = function(blob) {
-  var url = URL.createObjectURL(blob);
+ImageRequest.prototype.createVideoThumbnailUrl_ = function(url) {
   var video = document.createElement('video');
   return new Promise(function(resolve, reject) {
     video.addEventListener('canplay', resolve);
@@ -302,16 +307,11 @@
     video.preload = 'auto';
     video.src = url;
   }).then(function() {
-    URL.revokeObjectURL(url);
     var canvas = document.createElement('canvas');
     canvas.width = video.videoWidth;
     canvas.height = video.videoHeight;
     canvas.getContext('2d').drawImage(video, 0, 0);
     return canvas.toDataURL();
-  }, function(errev) {
-    URL.revokeObjectURL(url);
-    console.error(errev);
-    return Promise.reject(errev);
   });
 };
 
diff --git a/ui/ozone/common/display_snapshot_proxy.cc b/ui/ozone/common/display_snapshot_proxy.cc
index c8b72b66..e057599c 100644
--- a/ui/ozone/common/display_snapshot_proxy.cc
+++ b/ui/ozone/common/display_snapshot_proxy.cc
@@ -27,6 +27,7 @@
                       params.type,
                       params.is_aspect_preserving_scaling,
                       params.has_overscan,
+                      params.has_color_correction_matrix,
                       params.display_name,
                       params.sys_path,
                       std::vector<const DisplayMode*>(),
diff --git a/ui/ozone/common/display_util.cc b/ui/ozone/common/display_util.cc
index 3b8603e2..254f320 100644
--- a/ui/ozone/common/display_util.cc
+++ b/ui/ozone/common/display_util.cc
@@ -49,6 +49,7 @@
   params.type = display.type();
   params.is_aspect_preserving_scaling = display.is_aspect_preserving_scaling();
   params.has_overscan = display.has_overscan();
+  params.has_color_correction_matrix = display.has_color_correction_matrix();
   params.display_name = display.display_name();
   params.sys_path = display.sys_path();
   for (size_t i = 0; i < display.modes().size(); ++i)
diff --git a/ui/ozone/common/gpu/ozone_gpu_message_params.h b/ui/ozone/common/gpu/ozone_gpu_message_params.h
index db948fbe..de9f1be 100644
--- a/ui/ozone/common/gpu/ozone_gpu_message_params.h
+++ b/ui/ozone/common/gpu/ozone_gpu_message_params.h
@@ -39,6 +39,7 @@
   DisplayConnectionType type = DISPLAY_CONNECTION_TYPE_NONE;
   bool is_aspect_preserving_scaling = false;
   bool has_overscan = false;
+  bool has_color_correction_matrix = false;
   std::string display_name;
   base::FilePath sys_path;
   std::vector<DisplayMode_Params> modes;
diff --git a/ui/ozone/common/gpu/ozone_gpu_messages.h b/ui/ozone/common/gpu/ozone_gpu_messages.h
index 2aba4712..fab2f18 100644
--- a/ui/ozone/common/gpu/ozone_gpu_messages.h
+++ b/ui/ozone/common/gpu/ozone_gpu_messages.h
@@ -48,6 +48,7 @@
   IPC_STRUCT_TRAITS_MEMBER(type)
   IPC_STRUCT_TRAITS_MEMBER(is_aspect_preserving_scaling)
   IPC_STRUCT_TRAITS_MEMBER(has_overscan)
+  IPC_STRUCT_TRAITS_MEMBER(has_color_correction_matrix)
   IPC_STRUCT_TRAITS_MEMBER(display_name)
   IPC_STRUCT_TRAITS_MEMBER(sys_path)
   IPC_STRUCT_TRAITS_MEMBER(modes)
@@ -141,10 +142,11 @@
                      int64_t /* display_id */,
                      ui::HDCPState /* state */)
 
-// Provides the gamma ramp for display adjustment.
-IPC_MESSAGE_CONTROL2(OzoneGpuMsg_SetGammaRamp,
+IPC_MESSAGE_CONTROL4(OzoneGpuMsg_SetColorCorrection,
                      int64_t,                             // display ID,
-                     std::vector<ui::GammaRampRGBEntry>)  // lut
+                     std::vector<ui::GammaRampRGBEntry>,  // degamma lut
+                     std::vector<ui::GammaRampRGBEntry>,  // gamma lut
+                     std::vector<float>)                  // transform matrix
 
 IPC_MESSAGE_CONTROL2(OzoneGpuMsg_CheckOverlayCapabilities,
                      gfx::AcceleratedWidget /* widget */,
diff --git a/ui/ozone/common/native_display_delegate_ozone.cc b/ui/ozone/common/native_display_delegate_ozone.cc
index 7dd5037..24703cd 100644
--- a/ui/ozone/common/native_display_delegate_ozone.cc
+++ b/ui/ozone/common/native_display_delegate_ozone.cc
@@ -110,9 +110,11 @@
   return false;
 }
 
-bool NativeDisplayDelegateOzone::SetGammaRamp(
+bool NativeDisplayDelegateOzone::SetColorCorrection(
     const ui::DisplaySnapshot& output,
-    const std::vector<GammaRampRGBEntry>& lut) {
+    const std::vector<GammaRampRGBEntry>& degamma_lut,
+    const std::vector<GammaRampRGBEntry>& gamma_lut,
+    const std::vector<float>& correction_matrix) {
   NOTIMPLEMENTED();
   return false;
 }
diff --git a/ui/ozone/common/native_display_delegate_ozone.h b/ui/ozone/common/native_display_delegate_ozone.h
index 6def01f..c491ec4 100644
--- a/ui/ozone/common/native_display_delegate_ozone.h
+++ b/ui/ozone/common/native_display_delegate_ozone.h
@@ -46,9 +46,10 @@
   bool SetColorCalibrationProfile(
       const ui::DisplaySnapshot& output,
       ui::ColorCalibrationProfile new_profile) override;
-  bool SetGammaRamp(const ui::DisplaySnapshot& output,
-                    const std::vector<GammaRampRGBEntry>& lut) override;
-
+  bool SetColorCorrection(const ui::DisplaySnapshot& output,
+                          const std::vector<GammaRampRGBEntry>& degamma_lut,
+                          const std::vector<GammaRampRGBEntry>& gamma_lut,
+                          const std::vector<float>& correction_matrix) override;
   void AddObserver(NativeDisplayObserver* observer) override;
   void RemoveObserver(NativeDisplayObserver* observer) override;
 
diff --git a/ui/ozone/platform/drm/common/drm_util.cc b/ui/ozone/platform/drm/common/drm_util.cc
index eb560ab..586571a1 100644
--- a/ui/ozone/platform/drm/common/drm_util.cc
+++ b/ui/ozone/platform/drm/common/drm_util.cc
@@ -157,6 +157,19 @@
   return ((device_index << 4) + display_index) & 0xFF;
 }
 
+bool HasColorCorrectionMatrix(int fd, drmModeCrtc* crtc) {
+  ScopedDrmObjectPropertyPtr crtc_props(
+      drmModeObjectGetProperties(fd, crtc->crtc_id, DRM_MODE_OBJECT_CRTC));
+
+  for (uint32_t i = 0; i < crtc_props->count_props; ++i) {
+    ScopedDrmPropertyPtr property(drmModeGetProperty(fd, crtc_props->props[i]));
+    if (property && !strcmp(property->name, "CTM")) {
+      return true;
+    }
+  }
+  return false;
+}
+
 }  // namespace
 
 HardwareDisplayControllerInfo::HardwareDisplayControllerInfo(
@@ -229,6 +242,8 @@
   params.type = GetDisplayType(info->connector());
   params.is_aspect_preserving_scaling =
       IsAspectPreserving(fd, info->connector());
+  params.has_color_correction_matrix =
+      HasColorCorrectionMatrix(fd, info->crtc());
 
   ScopedDrmPropertyBlobPtr edid_blob(
       GetDrmPropertyBlob(fd, info->connector(), "EDID"));
diff --git a/ui/ozone/platform/drm/gpu/drm_device.cc b/ui/ozone/platform/drm/gpu/drm_device.cc
index 3a30fd2..891a136 100644
--- a/ui/ozone/platform/drm/gpu/drm_device.cc
+++ b/ui/ozone/platform/drm/gpu/drm_device.cc
@@ -13,7 +13,9 @@
 
 #include "base/logging.h"
 #include "base/macros.h"
+#include "base/memory/free_deleter.h"
 #include "base/message_loop/message_loop.h"
+#include "base/posix/safe_strerror.h"
 #include "base/task_runner.h"
 #include "base/thread_task_runner_handle.h"
 #include "base/trace_event/trace_event.h"
@@ -113,6 +115,161 @@
   return !drmIoctl(fd, DRM_IOCTL_MODE_GETRESOURCES, &resources);
 }
 
+// TODO(robert.bradford): Replace with libdrm structures after libdrm roll.
+// https://crbug.com/586475
+struct DrmColorLut {
+  uint16_t red;
+  uint16_t green;
+  uint16_t blue;
+  uint16_t reserved;
+};
+
+struct DrmColorCtm {
+  int64_t ctm_coeff[9];
+};
+
+struct DrmModeCreateBlob {
+  uint64_t data;
+  uint32_t length;
+  uint32_t blob_id;
+};
+
+struct DrmModeDestroyBlob {
+  uint32_t blob_id;
+};
+
+#ifndef DRM_IOCTL_MODE_CREATEPROPBLOB
+#define DRM_IOCTL_MODE_CREATEPROPBLOB DRM_IOWR(0xBD, struct DrmModeCreateBlob)
+#endif
+
+#ifndef DRM_IOCTL_MODE_DESTROYPROPBLOB
+#define DRM_IOCTL_MODE_DESTROYPROPBLOB DRM_IOWR(0xBE, struct DrmModeDestroyBlob)
+#endif
+
+int CreatePropertyBlob(int fd, const void* data, size_t length, uint32_t* id) {
+  DrmModeCreateBlob create;
+  int ret;
+
+  if (length >= 0xffffffff)
+    return -ERANGE;
+
+  memset(&create, 0, sizeof(create));
+
+  create.length = length;
+  create.data = (uintptr_t)data;
+  create.blob_id = 0;
+  *id = 0;
+
+  ret = drmIoctl(fd, DRM_IOCTL_MODE_CREATEPROPBLOB, &create);
+  ret = ret < 0 ? -errno : ret;
+  if (ret != 0)
+    return ret;
+
+  *id = create.blob_id;
+  return 0;
+}
+
+int DestroyPropertyBlob(int fd, uint32_t id) {
+  DrmModeDestroyBlob destroy;
+  int ret;
+
+  memset(&destroy, 0, sizeof(destroy));
+  destroy.blob_id = id;
+  ret = drmIoctl(fd, DRM_IOCTL_MODE_DESTROYPROPBLOB, &destroy);
+  return ret < 0 ? -errno : ret;
+}
+
+using ScopedDrmColorLutPtr = scoped_ptr<DrmColorLut, base::FreeDeleter>;
+using ScopedDrmColorCtmPtr = scoped_ptr<DrmColorCtm, base::FreeDeleter>;
+
+ScopedDrmColorLutPtr CreateLutBlob(
+    const std::vector<GammaRampRGBEntry>& source) {
+  TRACE_EVENT0("drm", "CreateLutBlob");
+  ScopedDrmColorLutPtr lut(
+      static_cast<DrmColorLut*>(malloc(sizeof(DrmColorLut) * source.size())));
+  DrmColorLut* p = lut.get();
+  for (size_t i = 0; i < source.size(); ++i) {
+    p[i].red = source[i].r;
+    p[i].green = source[i].g;
+    p[i].blue = source[i].b;
+  }
+  return lut;
+}
+
+ScopedDrmColorCtmPtr CreateCTMBlob(
+    const std::vector<float>& correction_matrix) {
+  ScopedDrmColorCtmPtr ctm(
+      static_cast<DrmColorCtm*>(malloc(sizeof(DrmColorCtm))));
+  for (size_t i = 0; i < arraysize(ctm->ctm_coeff); ++i) {
+    if (correction_matrix[i] < 0) {
+      ctm->ctm_coeff[i] = static_cast<uint64_t>(
+          -correction_matrix[i] * (static_cast<uint64_t>(1) << 32));
+      ctm->ctm_coeff[i] |= static_cast<uint64_t>(1) << 63;
+    } else {
+      ctm->ctm_coeff[i] = static_cast<uint64_t>(
+          correction_matrix[i] * (static_cast<uint64_t>(1) << 32));
+    }
+  }
+  return ctm;
+}
+
+bool SetBlobProperty(int fd,
+                     uint32_t object_id,
+                     uint32_t object_type,
+                     uint32_t prop_id,
+                     const char* property_name,
+                     unsigned char* data,
+                     size_t length) {
+  uint32_t blob_id;
+  int res;
+  res = CreatePropertyBlob(fd, data, length, &blob_id);
+  if (res != 0) {
+    LOG(ERROR) << "Error creating property blob: " << base::safe_strerror(res)
+               << " for property " << property_name;
+    return false;
+  }
+  res = drmModeObjectSetProperty(fd, object_id, object_type, prop_id, blob_id);
+  if (res != 0) {
+    LOG(ERROR) << "Error updating property: " << base::safe_strerror(res)
+               << " for property " << property_name;
+    DestroyPropertyBlob(fd, blob_id);
+    return false;
+  }
+  DestroyPropertyBlob(fd, blob_id);
+  return true;
+}
+
+std::vector<GammaRampRGBEntry> ResampleLut(
+    const std::vector<GammaRampRGBEntry>& lut_in,
+    size_t desired_size) {
+  TRACE_EVENT1("drm", "ResampleLut", "desired_size", desired_size);
+  if (lut_in.size() == desired_size)
+    return lut_in;
+
+  std::vector<GammaRampRGBEntry> result;
+  result.resize(desired_size);
+
+  for (size_t i = 0; i < desired_size; ++i) {
+    size_t base_index = lut_in.size() * i / desired_size;
+    size_t remaining = lut_in.size() * i % desired_size;
+    if (base_index < lut_in.size() - 1) {
+      result[i].r = lut_in[base_index].r +
+                    (lut_in[base_index + 1].r - lut_in[base_index].r) *
+                        remaining / desired_size;
+      result[i].g = lut_in[base_index].g +
+                    (lut_in[base_index + 1].g - lut_in[base_index].g) *
+                        remaining / desired_size;
+      result[i].b = lut_in[base_index].b +
+                    (lut_in[base_index + 1].b - lut_in[base_index].b) *
+                        remaining / desired_size;
+    } else {
+      result[i] = lut_in[lut_in.size() - 1];
+    }
+  }
+
+  return result;
+}
+
 }  // namespace
 
 class DrmDevice::PageFlipManager {
@@ -542,4 +699,74 @@
                               &g[0], &b[0]) == 0);
 }
 
+bool DrmDevice::SetColorCorrection(
+    uint32_t crtc_id,
+    const std::vector<GammaRampRGBEntry>& degamma_lut,
+    const std::vector<GammaRampRGBEntry>& gamma_lut,
+    const std::vector<float>& correction_matrix) {
+  ScopedDrmObjectPropertyPtr crtc_props(drmModeObjectGetProperties(
+      file_.GetPlatformFile(), crtc_id, DRM_MODE_OBJECT_CRTC));
+  uint64_t degamma_lut_size = 0;
+  uint64_t gamma_lut_size = 0;
+
+  for (uint32_t i = 0; i < crtc_props->count_props; ++i) {
+    ScopedDrmPropertyPtr property(
+        drmModeGetProperty(file_.GetPlatformFile(), crtc_props->props[i]));
+    if (property && !strcmp(property->name, "DEGAMMA_LUT_SIZE")) {
+      degamma_lut_size = crtc_props->prop_values[i];
+    }
+    if (property && !strcmp(property->name, "GAMMA_LUT_SIZE")) {
+      gamma_lut_size = crtc_props->prop_values[i];
+    }
+
+    if (degamma_lut_size && gamma_lut_size)
+      break;
+  }
+
+  if (degamma_lut_size == 0 || gamma_lut_size == 0) {
+    LOG(WARNING) << "No available (de)gamma tables.";
+    return false;
+  }
+
+  ScopedDrmColorLutPtr degamma_blob_data =
+      CreateLutBlob(ResampleLut(degamma_lut, degamma_lut_size));
+  ScopedDrmColorLutPtr gamma_blob_data =
+      CreateLutBlob(ResampleLut(gamma_lut, gamma_lut_size));
+  ScopedDrmColorCtmPtr ctm_blob_data = CreateCTMBlob(correction_matrix);
+
+  for (uint32_t i = 0; i < crtc_props->count_props; ++i) {
+    ScopedDrmPropertyPtr property(
+        drmModeGetProperty(file_.GetPlatformFile(), crtc_props->props[i]));
+    if (!property)
+      continue;
+
+    if (!strcmp(property->name, "DEGAMMA_LUT")) {
+      if (!SetBlobProperty(
+              file_.GetPlatformFile(), crtc_id, DRM_MODE_OBJECT_CRTC,
+              crtc_props->props[i], property->name,
+              reinterpret_cast<unsigned char*>(degamma_blob_data.get()),
+              sizeof(DrmColorLut) * degamma_lut_size))
+        return false;
+    }
+    if (!strcmp(property->name, "GAMMA_LUT")) {
+      if (!SetBlobProperty(
+              file_.GetPlatformFile(), crtc_id, DRM_MODE_OBJECT_CRTC,
+              crtc_props->props[i], property->name,
+              reinterpret_cast<unsigned char*>(gamma_blob_data.get()),
+              sizeof(DrmColorLut) * gamma_lut_size))
+        return false;
+    }
+    if (!strcmp(property->name, "CTM")) {
+      if (!SetBlobProperty(
+              file_.GetPlatformFile(), crtc_id, DRM_MODE_OBJECT_CRTC,
+              crtc_props->props[i], property->name,
+              reinterpret_cast<unsigned char*>(ctm_blob_data.get()),
+              sizeof(DrmColorCtm)))
+        return false;
+    }
+  }
+
+  return true;
+}
+
 }  // namespace ui
diff --git a/ui/ozone/platform/drm/gpu/drm_device.h b/ui/ozone/platform/drm/gpu/drm_device.h
index a53d311..ef863c1e 100644
--- a/ui/ozone/platform/drm/gpu/drm_device.h
+++ b/ui/ozone/platform/drm/gpu/drm_device.h
@@ -163,6 +163,11 @@
   // Set the gamma ramp for |crtc_id| to reflect the ramps in |lut|.
   virtual bool SetGammaRamp(uint32_t crtc_id,
                             const std::vector<GammaRampRGBEntry>& lut);
+  virtual bool SetColorCorrection(
+      uint32_t crtc_id,
+      const std::vector<GammaRampRGBEntry>& degamma_lut,
+      const std::vector<GammaRampRGBEntry>& gamma_lut,
+      const std::vector<float>& correction_matrix);
 
   virtual bool SetCapability(uint64_t capability, uint64_t value);
 
diff --git a/ui/ozone/platform/drm/gpu/drm_display.cc b/ui/ozone/platform/drm/gpu/drm_display.cc
index 076cc59..6ff1033cf 100644
--- a/ui/ozone/platform/drm/gpu/drm_display.cc
+++ b/ui/ozone/platform/drm/gpu/drm_display.cc
@@ -170,10 +170,21 @@
       GetContentProtectionValue(hdcp_property.get(), state));
 }
 
-void DrmDisplay::SetGammaRamp(const std::vector<GammaRampRGBEntry>& lut) {
-  if (!drm_->SetGammaRamp(crtc_, lut)) {
-    LOG(ERROR) << "Failed to set gamma ramp for display: crtc_id = " << crtc_
-               << " size = " << lut.size();
+void DrmDisplay::SetColorCorrection(
+    const std::vector<GammaRampRGBEntry>& degamma_lut,
+    const std::vector<GammaRampRGBEntry>& gamma_lut,
+    const std::vector<float>& correction_matrix) {
+  if (degamma_lut.empty()) {
+    if (!drm_->SetGammaRamp(crtc_, gamma_lut)) {
+      LOG(ERROR) << "Failed to set gamma ramp for display: crtc_id = " << crtc_
+                 << " size = " << gamma_lut.size();
+    }
+  } else {
+    if (!drm_->SetColorCorrection(crtc_, degamma_lut, gamma_lut,
+                                  correction_matrix)) {
+      LOG(ERROR) << "Failed to set color correction for display: crtc_id = "
+                 << crtc_;
+    }
   }
 }
 
diff --git a/ui/ozone/platform/drm/gpu/drm_display.h b/ui/ozone/platform/drm/gpu/drm_display.h
index 86021ae..3742eda 100644
--- a/ui/ozone/platform/drm/gpu/drm_display.h
+++ b/ui/ozone/platform/drm/gpu/drm_display.h
@@ -44,7 +44,9 @@
   bool Configure(const drmModeModeInfo* mode, const gfx::Point& origin);
   bool GetHDCPState(HDCPState* state);
   bool SetHDCPState(HDCPState state);
-  void SetGammaRamp(const std::vector<GammaRampRGBEntry>& lut);
+  void SetColorCorrection(const std::vector<GammaRampRGBEntry>& degamma_lut,
+                          const std::vector<GammaRampRGBEntry>& gamma_lut,
+                          const std::vector<float>& correction_matrix);
 
  private:
   ScreenManager* screen_manager_;  // Not owned.
diff --git a/ui/ozone/platform/drm/gpu/drm_gpu_display_manager.cc b/ui/ozone/platform/drm/gpu/drm_gpu_display_manager.cc
index 6a521c1..da78723 100644
--- a/ui/ozone/platform/drm/gpu/drm_gpu_display_manager.cc
+++ b/ui/ozone/platform/drm/gpu/drm_gpu_display_manager.cc
@@ -195,16 +195,18 @@
   return display->SetHDCPState(state);
 }
 
-void DrmGpuDisplayManager::SetGammaRamp(
+void DrmGpuDisplayManager::SetColorCorrection(
     int64_t display_id,
-    const std::vector<GammaRampRGBEntry>& lut) {
+    const std::vector<GammaRampRGBEntry>& degamma_lut,
+    const std::vector<GammaRampRGBEntry>& gamma_lut,
+    const std::vector<float>& correction_matrix) {
   DrmDisplay* display = FindDisplay(display_id);
   if (!display) {
     LOG(ERROR) << "There is no display with ID " << display_id;
     return;
   }
 
-  display->SetGammaRamp(lut);
+  display->SetColorCorrection(degamma_lut, gamma_lut, correction_matrix);
 }
 
 DrmDisplay* DrmGpuDisplayManager::FindDisplay(int64_t display_id) {
diff --git a/ui/ozone/platform/drm/gpu/drm_gpu_display_manager.h b/ui/ozone/platform/drm/gpu/drm_gpu_display_manager.h
index 641286c2..23e80e6 100644
--- a/ui/ozone/platform/drm/gpu/drm_gpu_display_manager.h
+++ b/ui/ozone/platform/drm/gpu/drm_gpu_display_manager.h
@@ -45,6 +45,10 @@
   bool GetHDCPState(int64_t display_id, HDCPState* state);
   bool SetHDCPState(int64_t display_id, HDCPState state);
   void SetGammaRamp(int64_t id, const std::vector<GammaRampRGBEntry>& lut);
+  void SetColorCorrection(int64_t id,
+                          const std::vector<GammaRampRGBEntry>& degamma_lut,
+                          const std::vector<GammaRampRGBEntry>& gamma_lut,
+                          const std::vector<float>& correction_matrix);
 
  private:
   DrmDisplay* FindDisplay(int64_t display_id);
diff --git a/ui/ozone/platform/drm/gpu/drm_thread.cc b/ui/ozone/platform/drm/gpu/drm_thread.cc
index 471c252..2095205 100644
--- a/ui/ozone/platform/drm/gpu/drm_thread.cc
+++ b/ui/ozone/platform/drm/gpu/drm_thread.cc
@@ -242,9 +242,13 @@
   callback.Run(display_id, display_manager_->SetHDCPState(display_id, state));
 }
 
-void DrmThread::SetGammaRamp(int64_t id,
-                             const std::vector<GammaRampRGBEntry>& lut) {
-  display_manager_->SetGammaRamp(id, lut);
+void DrmThread::SetColorCorrection(
+    int64_t display_id,
+    const std::vector<GammaRampRGBEntry>& degamma_lut,
+    const std::vector<GammaRampRGBEntry>& gamma_lut,
+    const std::vector<float>& correction_matrix) {
+  display_manager_->SetColorCorrection(display_id, degamma_lut, gamma_lut,
+                                       correction_matrix);
 }
 
 }  // namespace ui
diff --git a/ui/ozone/platform/drm/gpu/drm_thread.h b/ui/ozone/platform/drm/gpu/drm_thread.h
index 010fc9f..49e55865 100644
--- a/ui/ozone/platform/drm/gpu/drm_thread.h
+++ b/ui/ozone/platform/drm/gpu/drm_thread.h
@@ -109,7 +109,10 @@
   void SetHDCPState(int64_t display_id,
                     HDCPState state,
                     const base::Callback<void(int64_t, bool)>& callback);
-  void SetGammaRamp(int64_t id, const std::vector<GammaRampRGBEntry>& lut);
+  void SetColorCorrection(int64_t display_id,
+                          const std::vector<GammaRampRGBEntry>& degamma_lut,
+                          const std::vector<GammaRampRGBEntry>& gamma_lut,
+                          const std::vector<float>& correction_matrix);
 
   // base::Thread:
   void Init() override;
diff --git a/ui/ozone/platform/drm/gpu/drm_thread_message_proxy.cc b/ui/ozone/platform/drm/gpu/drm_thread_message_proxy.cc
index 80ebaf6..92baaca 100644
--- a/ui/ozone/platform/drm/gpu/drm_thread_message_proxy.cc
+++ b/ui/ozone/platform/drm/gpu/drm_thread_message_proxy.cc
@@ -54,7 +54,7 @@
                         OnRemoveGraphicsDevice)
     IPC_MESSAGE_HANDLER(OzoneGpuMsg_GetHDCPState, OnGetHDCPState)
     IPC_MESSAGE_HANDLER(OzoneGpuMsg_SetHDCPState, OnSetHDCPState)
-    IPC_MESSAGE_HANDLER(OzoneGpuMsg_SetGammaRamp, OnSetGammaRamp)
+    IPC_MESSAGE_HANDLER(OzoneGpuMsg_SetColorCorrection, OnSetColorCorrection)
     IPC_MESSAGE_HANDLER(OzoneGpuMsg_CheckOverlayCapabilities,
                         OnCheckOverlayCapabilities)
     IPC_MESSAGE_UNHANDLED(handled = false)
@@ -212,13 +212,16 @@
                  display_id, state, CreateSafeCallback(callback)));
 }
 
-void DrmThreadMessageProxy::OnSetGammaRamp(
+void DrmThreadMessageProxy::OnSetColorCorrection(
     int64_t id,
-    const std::vector<GammaRampRGBEntry>& lut) {
+    const std::vector<GammaRampRGBEntry>& degamma_lut,
+    const std::vector<GammaRampRGBEntry>& gamma_lut,
+    const std::vector<float>& correction_matrix) {
   DCHECK(drm_thread_->IsRunning());
   drm_thread_->task_runner()->PostTask(
-      FROM_HERE, base::Bind(&DrmThread::SetGammaRamp,
-                            base::Unretained(drm_thread_), id, lut));
+      FROM_HERE,
+      base::Bind(&DrmThread::SetColorCorrection, base::Unretained(drm_thread_),
+                 id, degamma_lut, gamma_lut, correction_matrix));
 }
 
 void DrmThreadMessageProxy::OnCheckOverlayCapabilitiesCallback(
diff --git a/ui/ozone/platform/drm/gpu/drm_thread_message_proxy.h b/ui/ozone/platform/drm/gpu/drm_thread_message_proxy.h
index 68f17f3..1e031516 100644
--- a/ui/ozone/platform/drm/gpu/drm_thread_message_proxy.h
+++ b/ui/ozone/platform/drm/gpu/drm_thread_message_proxy.h
@@ -73,7 +73,10 @@
   void OnRemoveGraphicsDevice(const base::FilePath& path);
   void OnGetHDCPState(int64_t display_id);
   void OnSetHDCPState(int64_t display_id, HDCPState state);
-  void OnSetGammaRamp(int64_t id, const std::vector<GammaRampRGBEntry>& lut);
+  void OnSetColorCorrection(int64_t id,
+                            const std::vector<GammaRampRGBEntry>& degamma_lut,
+                            const std::vector<GammaRampRGBEntry>& gamma_lut,
+                            const std::vector<float>& correction_matrix);
 
   void OnCheckOverlayCapabilitiesCallback(
       gfx::AcceleratedWidget widget,
diff --git a/ui/ozone/platform/drm/gpu/mock_drm_device.cc b/ui/ozone/platform/drm/gpu/mock_drm_device.cc
index 8dd6af0a..c41f221 100644
--- a/ui/ozone/platform/drm/gpu/mock_drm_device.cc
+++ b/ui/ozone/platform/drm/gpu/mock_drm_device.cc
@@ -228,6 +228,14 @@
   return true;
 }
 
+bool MockDrmDevice::SetColorCorrection(
+    uint32_t crtc_id,
+    const std::vector<GammaRampRGBEntry>& degamma_lut,
+    const std::vector<GammaRampRGBEntry>& gamma_lut,
+    const std::vector<float>& correction_matrix) {
+  return true;
+}
+
 bool MockDrmDevice::SetCapability(uint64_t capability, uint64_t value) {
   return false;
 }
diff --git a/ui/ozone/platform/drm/gpu/mock_drm_device.h b/ui/ozone/platform/drm/gpu/mock_drm_device.h
index 48cd37e1..63e6caa0 100644
--- a/ui/ozone/platform/drm/gpu/mock_drm_device.h
+++ b/ui/ozone/platform/drm/gpu/mock_drm_device.h
@@ -113,6 +113,10 @@
                         const PageFlipCallback& callback) override;
   bool SetGammaRamp(uint32_t crtc_id,
                     const std::vector<GammaRampRGBEntry>& lut) override;
+  bool SetColorCorrection(uint32_t crtc_id,
+                          const std::vector<GammaRampRGBEntry>& degamma_lut,
+                          const std::vector<GammaRampRGBEntry>& gamma_lut,
+                          const std::vector<float>& correction_matrix) override;
   bool SetCapability(uint64_t capability, uint64_t value) override;
 
  private:
diff --git a/ui/ozone/platform/drm/host/drm_display_host.cc b/ui/ozone/platform/drm/host/drm_display_host.cc
index 3bca05de..32d36e6 100644
--- a/ui/ozone/platform/drm/host/drm_display_host.cc
+++ b/ui/ozone/platform/drm/host/drm_display_host.cc
@@ -101,8 +101,12 @@
   set_hdcp_callback_.Reset();
 }
 
-void DrmDisplayHost::SetGammaRamp(const std::vector<GammaRampRGBEntry>& lut) {
-  sender_->GpuSetGammaRamp(snapshot_->display_id(), lut);
+void DrmDisplayHost::SetColorCorrection(
+    const std::vector<GammaRampRGBEntry>& degamma_lut,
+    const std::vector<GammaRampRGBEntry>& gamma_lut,
+    const std::vector<float>& correction_matrix) {
+  sender_->GpuSetColorCorrection(snapshot_->display_id(), degamma_lut,
+                                 gamma_lut, correction_matrix);
 }
 
 void DrmDisplayHost::OnGpuThreadReady() {
diff --git a/ui/ozone/platform/drm/host/drm_display_host.h b/ui/ozone/platform/drm/host/drm_display_host.h
index bc2ab4b..32cc352 100644
--- a/ui/ozone/platform/drm/host/drm_display_host.h
+++ b/ui/ozone/platform/drm/host/drm_display_host.h
@@ -32,7 +32,9 @@
                  const ConfigureCallback& callback);
   void GetHDCPState(const GetHDCPStateCallback& callback);
   void SetHDCPState(HDCPState state, const SetHDCPStateCallback& callback);
-  void SetGammaRamp(const std::vector<GammaRampRGBEntry>& lut);
+  void SetColorCorrection(const std::vector<GammaRampRGBEntry>& degamma_lut,
+                          const std::vector<GammaRampRGBEntry>& gamma_lut,
+                          const std::vector<float>& correction_matrix);
 
   // Called when the IPC from the GPU process arrives to answer the above
   // commands.
diff --git a/ui/ozone/platform/drm/host/drm_gpu_platform_support_host.cc b/ui/ozone/platform/drm/host/drm_gpu_platform_support_host.cc
index 9e7ea9b2..9f42ec2 100644
--- a/ui/ozone/platform/drm/host/drm_gpu_platform_support_host.cc
+++ b/ui/ozone/platform/drm/host/drm_gpu_platform_support_host.cc
@@ -290,10 +290,13 @@
   return Send(new OzoneGpuMsg_SetHDCPState(display_id, state));
 }
 
-bool DrmGpuPlatformSupportHost::GpuSetGammaRamp(
+bool DrmGpuPlatformSupportHost::GpuSetColorCorrection(
     int64_t display_id,
-    const std::vector<GammaRampRGBEntry>& lut) {
-  return Send(new OzoneGpuMsg_SetGammaRamp(display_id, lut));
+    const std::vector<GammaRampRGBEntry>& degamma_lut,
+    const std::vector<GammaRampRGBEntry>& gamma_lut,
+    const std::vector<float>& correction_matrix) {
+  return Send(new OzoneGpuMsg_SetColorCorrection(display_id, degamma_lut,
+                                                 gamma_lut, correction_matrix));
 }
 
 bool DrmGpuPlatformSupportHost::GpuDestroyWindow(
diff --git a/ui/ozone/platform/drm/host/drm_gpu_platform_support_host.h b/ui/ozone/platform/drm/host/drm_gpu_platform_support_host.h
index 3c5495a..2cc4a17 100644
--- a/ui/ozone/platform/drm/host/drm_gpu_platform_support_host.h
+++ b/ui/ozone/platform/drm/host/drm_gpu_platform_support_host.h
@@ -83,8 +83,11 @@
   bool GpuDisableNativeDisplay(int64_t display_id) override;
   bool GpuGetHDCPState(int64_t display_id) override;
   bool GpuSetHDCPState(int64_t display_id, ui::HDCPState state) override;
-  bool GpuSetGammaRamp(int64_t display_id,
-                       const std::vector<GammaRampRGBEntry>& lut) override;
+  bool GpuSetColorCorrection(
+      int64_t display_id,
+      const std::vector<GammaRampRGBEntry>& degamma_lut,
+      const std::vector<GammaRampRGBEntry>& gamma_lut,
+      const std::vector<float>& correction_matrix) override;
 
   // Services needed by DrmWindowHost
   bool GpuDestroyWindow(gfx::AcceleratedWidget widget) override;
diff --git a/ui/ozone/platform/drm/host/drm_native_display_delegate.cc b/ui/ozone/platform/drm/host/drm_native_display_delegate.cc
index 0d6389b..1563516 100644
--- a/ui/ozone/platform/drm/host/drm_native_display_delegate.cc
+++ b/ui/ozone/platform/drm/host/drm_native_display_delegate.cc
@@ -102,11 +102,13 @@
   return false;
 }
 
-bool DrmNativeDisplayDelegate::SetGammaRamp(
+bool DrmNativeDisplayDelegate::SetColorCorrection(
     const ui::DisplaySnapshot& output,
-    const std::vector<GammaRampRGBEntry>& lut) {
+    const std::vector<GammaRampRGBEntry>& degamma_lut,
+    const std::vector<GammaRampRGBEntry>& gamma_lut,
+    const std::vector<float>& correction_matrix) {
   DrmDisplayHost* display = display_manager_->GetDisplay(output.display_id());
-  display->SetGammaRamp(lut);
+  display->SetColorCorrection(degamma_lut, gamma_lut, correction_matrix);
   return true;
 }
 
diff --git a/ui/ozone/platform/drm/host/drm_native_display_delegate.h b/ui/ozone/platform/drm/host/drm_native_display_delegate.h
index f62514e1..8141ce7 100644
--- a/ui/ozone/platform/drm/host/drm_native_display_delegate.h
+++ b/ui/ozone/platform/drm/host/drm_native_display_delegate.h
@@ -50,8 +50,10 @@
   bool SetColorCalibrationProfile(
       const ui::DisplaySnapshot& output,
       ui::ColorCalibrationProfile new_profile) override;
-  bool SetGammaRamp(const ui::DisplaySnapshot& output,
-                    const std::vector<GammaRampRGBEntry>& lut) override;
+  bool SetColorCorrection(const ui::DisplaySnapshot& output,
+                          const std::vector<GammaRampRGBEntry>& degamma_lut,
+                          const std::vector<GammaRampRGBEntry>& gamma_lut,
+                          const std::vector<float>& correction_matrix) override;
 
   void AddObserver(NativeDisplayObserver* observer) override;
   void RemoveObserver(NativeDisplayObserver* observer) override;
diff --git a/ui/ozone/platform/drm/host/gpu_thread_adapter.h b/ui/ozone/platform/drm/host/gpu_thread_adapter.h
index 15212fce..866dfd8c4 100644
--- a/ui/ozone/platform/drm/host/gpu_thread_adapter.h
+++ b/ui/ozone/platform/drm/host/gpu_thread_adapter.h
@@ -58,8 +58,11 @@
   virtual bool GpuDisableNativeDisplay(int64_t display_id) = 0;
   virtual bool GpuGetHDCPState(int64_t display_id) = 0;
   virtual bool GpuSetHDCPState(int64_t display_id, ui::HDCPState state) = 0;
-  virtual bool GpuSetGammaRamp(int64_t display_id,
-                               const std::vector<GammaRampRGBEntry>& lut) = 0;
+  virtual bool GpuSetColorCorrection(
+      int64_t display_id,
+      const std::vector<GammaRampRGBEntry>& degamma_lut,
+      const std::vector<GammaRampRGBEntry>& gamma_lut,
+      const std::vector<float>& correction_matrix) = 0;
 
   // Services needed by DrmWindowHost
   virtual bool GpuDestroyWindow(gfx::AcceleratedWidget widget) = 0;
diff --git a/ui/ozone/platform/drm/mus_thread_proxy.cc b/ui/ozone/platform/drm/mus_thread_proxy.cc
index 0e6529e..d3bacc4 100644
--- a/ui/ozone/platform/drm/mus_thread_proxy.cc
+++ b/ui/ozone/platform/drm/mus_thread_proxy.cc
@@ -274,14 +274,17 @@
   return true;
 }
 
-bool MusThreadProxy::GpuSetGammaRamp(
+bool MusThreadProxy::GpuSetColorCorrection(
     int64_t id,
-    const std::vector<GammaRampRGBEntry>& lut) {
+    const std::vector<GammaRampRGBEntry>& degamma_lut,
+    const std::vector<GammaRampRGBEntry>& gamma_lut,
+    const std::vector<float>& correction_matrix) {
   DCHECK(drm_thread_->IsRunning());
   DCHECK(on_window_server_thread_.CalledOnValidThread());
   drm_thread_->task_runner()->PostTask(
-      FROM_HERE, base::Bind(&DrmThread::SetGammaRamp,
-                            base::Unretained(drm_thread_), id, lut));
+      FROM_HERE,
+      base::Bind(&DrmThread::SetColorCorrection, base::Unretained(drm_thread_),
+                 id, degamma_lut, gamma_lut, correction_matrix));
   return true;
 }
 
diff --git a/ui/ozone/platform/drm/mus_thread_proxy.h b/ui/ozone/platform/drm/mus_thread_proxy.h
index 98bf7e8..e39eefcb 100644
--- a/ui/ozone/platform/drm/mus_thread_proxy.h
+++ b/ui/ozone/platform/drm/mus_thread_proxy.h
@@ -77,8 +77,11 @@
   bool GpuDisableNativeDisplay(int64_t display_id) override;
   bool GpuGetHDCPState(int64_t display_id) override;
   bool GpuSetHDCPState(int64_t display_id, ui::HDCPState state) override;
-  bool GpuSetGammaRamp(int64_t display_id,
-                       const std::vector<GammaRampRGBEntry>& lut) override;
+  bool GpuSetColorCorrection(
+      int64_t display_id,
+      const std::vector<GammaRampRGBEntry>& degamma_lut,
+      const std::vector<GammaRampRGBEntry>& gamma_lut,
+      const std::vector<float>& correction_matrix) override;
 
   // Services needed by DrmWindowHost
   bool GpuDestroyWindow(gfx::AcceleratedWidget widget) override;
@@ -135,4 +138,4 @@
 
 }  // namespace ui
 
-#endif  // UI_OZONE_PLATFORM_DRM_MUS_THREAD_PROXY_H_
\ No newline at end of file
+#endif  // UI_OZONE_PLATFORM_DRM_MUS_THREAD_PROXY_H_