diff --git a/WATCHLISTS b/WATCHLISTS
index cd0e9d70..d2d9e098 100644
--- a/WATCHLISTS
+++ b/WATCHLISTS
@@ -593,6 +593,10 @@
         'chrome/browser/resources/ntp_android/|'\
         'chrome/browser/ui/webui/ntp/',
     },
+    'offline_pages': {
+      'filepath': 'components/offline_pages/'\
+                  '|chrome/browser/android/offline_pages/'
+    },
     'omnibox': {
       'filepath': 'chrome/browser/autocomplete/'\
                   '|chrome/browser/ui/.*/omnibox/'
@@ -1454,6 +1458,7 @@
                       'mlamouri+watch-notifications@chromium.org'],
     'ntp': ['dbeam+watch-ntp@chromium.org',
             'pedrosimonetti+watch@chromium.org'],
+    'offline_pages': ['dimich+watch@chromium.org'],
     'omnibox': ['suzhe@chromium.org'],
     'options': ['dbeam+watch-options@chromium.org',
                 'michaelpg+watch-options@chromium.org'],
diff --git a/apps/custom_launcher_page_contents.cc b/apps/custom_launcher_page_contents.cc
index 70c9b0ff..0f41300 100644
--- a/apps/custom_launcher_page_contents.cc
+++ b/apps/custom_launcher_page_contents.cc
@@ -21,7 +21,7 @@
 namespace apps {
 
 CustomLauncherPageContents::CustomLauncherPageContents(
-    scoped_ptr<extensions::AppDelegate> app_delegate,
+    std::unique_ptr<extensions::AppDelegate> app_delegate,
     const std::string& extension_id)
     : app_delegate_(std::move(app_delegate)), extension_id_(extension_id) {}
 
diff --git a/apps/custom_launcher_page_contents.h b/apps/custom_launcher_page_contents.h
index cd4164c..b5522873 100644
--- a/apps/custom_launcher_page_contents.h
+++ b/apps/custom_launcher_page_contents.h
@@ -5,7 +5,8 @@
 #ifndef APPS_CUSTOM_LAUNCHER_PAGE_CONTENTS_H_
 #define APPS_CUSTOM_LAUNCHER_PAGE_CONTENTS_H_
 
-#include "base/memory/scoped_ptr.h"
+#include <memory>
+
 #include "content/public/browser/web_contents_delegate.h"
 
 class GURL;
@@ -27,8 +28,9 @@
 // extension system.
 class CustomLauncherPageContents : public content::WebContentsDelegate {
  public:
-  CustomLauncherPageContents(scoped_ptr<extensions::AppDelegate> app_delegate,
-                             const std::string& extension_id);
+  CustomLauncherPageContents(
+      std::unique_ptr<extensions::AppDelegate> app_delegate,
+      const std::string& extension_id);
   ~CustomLauncherPageContents() override;
 
   // Called to initialize and load the WebContents.
@@ -68,9 +70,9 @@
                                   content::MediaStreamType type) override;
 
  private:
-  scoped_ptr<content::WebContents> web_contents_;
-  scoped_ptr<extensions::AppDelegate> app_delegate_;
-  scoped_ptr<extensions::AppWebContentsHelper> helper_;
+  std::unique_ptr<content::WebContents> web_contents_;
+  std::unique_ptr<extensions::AppDelegate> app_delegate_;
+  std::unique_ptr<extensions::AppWebContentsHelper> helper_;
 
   std::string extension_id_;
 
diff --git a/apps/launcher.cc b/apps/launcher.cc
index 2ae064873..02c6302 100644
--- a/apps/launcher.cc
+++ b/apps/launcher.cc
@@ -4,6 +4,7 @@
 
 #include "apps/launcher.h"
 
+#include <memory>
 #include <set>
 #include <utility>
 
@@ -12,7 +13,6 @@
 #include "base/files/file_util.h"
 #include "base/logging.h"
 #include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/strings/string_util.h"
 #include "base/strings/utf_string_conversions.h"
 #include "chrome/browser/extensions/api/file_handlers/app_file_handler_util.h"
@@ -175,7 +175,7 @@
                             base::Bind(&PlatformAppPathLauncher::Launch, this));
   }
 
-  void OnFilesValid(scoped_ptr<std::set<base::FilePath>> directory_paths) {
+  void OnFilesValid(std::unique_ptr<std::set<base::FilePath>> directory_paths) {
     mime_type_collector_.CollectForLocalPaths(
         entry_paths_,
         base::Bind(
@@ -201,7 +201,7 @@
 
   void OnAreDirectoriesCollected(
       bool has_file_system_write_permission,
-      scoped_ptr<std::set<base::FilePath>> directory_paths) {
+      std::unique_ptr<std::set<base::FilePath>> directory_paths) {
     if (has_file_system_write_permission) {
       std::set<base::FilePath>* const directory_paths_ptr =
           directory_paths.get();
@@ -217,8 +217,8 @@
   }
 
   void OnAreDirectoriesAndMimeTypesCollected(
-      scoped_ptr<std::set<base::FilePath>> directory_paths,
-      scoped_ptr<std::vector<std::string>> mime_types) {
+      std::unique_ptr<std::set<base::FilePath>> directory_paths,
+      std::unique_ptr<std::vector<std::string>> mime_types) {
     DCHECK(entry_paths_.size() == mime_types->size());
     // If fetching a mime type failed, then use a fallback one.
     for (size_t i = 0; i < entry_paths_.size(); ++i) {
diff --git a/apps/saved_files_service.cc b/apps/saved_files_service.cc
index bfe40278..086a262 100644
--- a/apps/saved_files_service.cc
+++ b/apps/saved_files_service.cc
@@ -11,6 +11,7 @@
 
 #include "apps/saved_files_service_factory.h"
 #include "base/containers/scoped_ptr_hash_map.h"
+#include "base/memory/ptr_util.h"
 #include "base/value_conversions.h"
 #include "chrome/browser/chrome_notification_types.h"
 #include "chrome/browser/profiles/profile.h"
@@ -178,7 +179,7 @@
 
   // Contains all file entries that have been registered, keyed by ID. Owns
   // values.
-  base::ScopedPtrHashMap<std::string, scoped_ptr<SavedFileEntry>>
+  base::ScopedPtrHashMap<std::string, std::unique_ptr<SavedFileEntry>>
       registered_file_entries_;
 
   // The queue of file entries that have been retained, keyed by
@@ -287,7 +288,7 @@
   if (saved_files)
     return saved_files;
 
-  scoped_ptr<SavedFiles> scoped_saved_files(
+  std::unique_ptr<SavedFiles> scoped_saved_files(
       new SavedFiles(profile_, extension_id));
   saved_files = scoped_saved_files.get();
   extension_id_to_saved_files_.insert(
@@ -315,7 +316,7 @@
     return;
 
   registered_file_entries_.add(
-      id, make_scoped_ptr(new SavedFileEntry(id, file_path, is_directory, 0)));
+      id, base::WrapUnique(new SavedFileEntry(id, file_path, is_directory, 0)));
 }
 
 void SavedFilesService::SavedFiles::EnqueueFileEntry(const std::string& id) {
@@ -419,7 +420,7 @@
   for (std::vector<SavedFileEntry>::iterator it = saved_entries.begin();
        it != saved_entries.end();
        ++it) {
-    scoped_ptr<SavedFileEntry> file_entry(new SavedFileEntry(*it));
+    std::unique_ptr<SavedFileEntry> file_entry(new SavedFileEntry(*it));
     const std::string& id = file_entry->id;
     saved_file_lru_.insert(
         std::make_pair(file_entry->sequence_number, file_entry.get()));
diff --git a/apps/saved_files_service.h b/apps/saved_files_service.h
index 0cf7d9c..be80e51 100644
--- a/apps/saved_files_service.h
+++ b/apps/saved_files_service.h
@@ -6,13 +6,13 @@
 #define APPS_SAVED_FILES_SERVICE_H_
 
 #include <map>
+#include <memory>
 #include <set>
 #include <string>
 #include <vector>
 
 #include "base/files/file_path.h"
 #include "base/gtest_prod_util.h"
-#include "base/memory/scoped_ptr.h"
 #include "components/keyed_service/core/keyed_service.h"
 #include "content/public/browser/notification_observer.h"
 #include "content/public/browser/notification_registrar.h"
@@ -127,7 +127,8 @@
   static void SetLruSizeForTest(int size);
   static void ClearLruSizeForTest();
 
-  std::map<std::string, scoped_ptr<SavedFiles>> extension_id_to_saved_files_;
+  std::map<std::string, std::unique_ptr<SavedFiles>>
+      extension_id_to_saved_files_;
   content::NotificationRegistrar registrar_;
   Profile* profile_;
 
diff --git a/base/base_paths_win.cc b/base/base_paths_win.cc
index 58f925f7..7102f74 100644
--- a/base/base_paths_win.cc
+++ b/base/base_paths_win.cc
@@ -10,12 +10,10 @@
 #include "base/files/file_path.h"
 #include "base/path_service.h"
 #include "base/strings/utf_string_conversions.h"
+#include "base/win/current_module.h"
 #include "base/win/scoped_co_mem.h"
 #include "base/win/windows_version.h"
 
-// http://blogs.msdn.com/oldnewthing/archive/2004/10/25/247180.aspx
-extern "C" IMAGE_DOS_HEADER __ImageBase;
-
 using base::FilePath;
 
 namespace base {
@@ -39,8 +37,7 @@
     case base::FILE_MODULE: {
       // the resource containing module is assumed to be the one that
       // this code lives in, whether that's a dll or exe
-      HMODULE this_module = reinterpret_cast<HMODULE>(&__ImageBase);
-      if (GetModuleFileName(this_module, system_buffer, MAX_PATH) == 0)
+      if (GetModuleFileName(CURRENT_MODULE(), system_buffer, MAX_PATH) == 0)
         return false;
       cur = FilePath(system_buffer);
       break;
diff --git a/base/debug/profiler.cc b/base/debug/profiler.cc
index a205d1f8..15d1d8cc 100644
--- a/base/debug/profiler.cc
+++ b/base/debug/profiler.cc
@@ -13,6 +13,7 @@
 #include "build/build_config.h"
 
 #if defined(OS_WIN)
+#include "base/win/current_module.h"
 #include "base/win/pe_image.h"
 #endif  // defined(OS_WIN)
 
@@ -108,9 +109,6 @@
 
 #else  // defined(OS_WIN)
 
-// http://blogs.msdn.com/oldnewthing/archive/2004/10/25/247180.aspx
-extern "C" IMAGE_DOS_HEADER __ImageBase;
-
 bool IsBinaryInstrumented() {
   enum InstrumentationCheckState {
     UNINITIALIZED,
@@ -121,8 +119,7 @@
   static InstrumentationCheckState state = UNINITIALIZED;
 
   if (state == UNINITIALIZED) {
-    HMODULE this_module = reinterpret_cast<HMODULE>(&__ImageBase);
-    base::win::PEImage image(this_module);
+    base::win::PEImage image(CURRENT_MODULE());
 
     // Check to be sure our image is structured as we'd expect.
     DCHECK(image.VerifyMagic());
@@ -192,8 +189,7 @@
   if (!IsBinaryInstrumented())
     return NULL;
 
-  HMODULE this_module = reinterpret_cast<HMODULE>(&__ImageBase);
-  base::win::PEImage image(this_module);
+  base::win::PEImage image(CURRENT_MODULE());
 
   FunctionSearchContext ctx = { function_name, NULL };
   image.EnumImportChunks(FindResolutionFunctionInImports, &ctx);
diff --git a/base/file_version_info.h b/base/file_version_info.h
index 8c1bf92..3b9457c 100644
--- a/base/file_version_info.h
+++ b/base/file_version_info.h
@@ -5,18 +5,15 @@
 #ifndef BASE_FILE_VERSION_INFO_H_
 #define BASE_FILE_VERSION_INFO_H_
 
+#include <string>
+
 #include "build/build_config.h"
+#include "base/base_export.h"
+#include "base/strings/string16.h"
 
 #if defined(OS_WIN)
 #include <windows.h>
-// http://blogs.msdn.com/oldnewthing/archive/2004/10/25/247180.aspx
-extern "C" IMAGE_DOS_HEADER __ImageBase;
-#endif  // OS_WIN
-
-#include <string>
-
-#include "base/base_export.h"
-#include "base/strings/string16.h"
+#endif
 
 namespace base {
 class FilePath;
@@ -32,17 +29,6 @@
 // version returns values from the Info.plist as appropriate. TODO(avi): make
 // this a less-obvious Windows-ism.
 
-#if defined(OS_WIN)
-// Creates a FileVersionInfo for the current module. Returns NULL in case of
-// error. The returned object should be deleted when you are done with it. This
-// is done as a macro to force inlining of __ImageBase. It used to be inside of
-// a method labeled with __forceinline, but inlining through __forceinline
-// stopped working for Debug builds in VS2013 (http://crbug.com/516359).
-#define CREATE_FILE_VERSION_INFO_FOR_CURRENT_MODULE() \
-    FileVersionInfo::CreateFileVersionInfoForModule( \
-        reinterpret_cast<HMODULE>(&__ImageBase))
-#endif
-
 class BASE_EXPORT FileVersionInfo {
  public:
   virtual ~FileVersionInfo() {}
@@ -57,8 +43,6 @@
 #if defined(OS_WIN)
   // Creates a FileVersionInfo for the specified module. Returns NULL in case
   // of error. The returned object should be deleted when you are done with it.
-  // See CREATE_FILE_VERSION_INFO_FOR_CURRENT_MODULE() helper above for a
-  // CreateFileVersionInfoForCurrentModule() alternative for Windows.
   static FileVersionInfo* CreateFileVersionInfoForModule(HMODULE module);
 #else
   // Creates a FileVersionInfo for the current module. Returns NULL in case
diff --git a/base/message_loop/message_loop_unittest.cc b/base/message_loop/message_loop_unittest.cc
index a06ba91..7b31214 100644
--- a/base/message_loop/message_loop_unittest.cc
+++ b/base/message_loop/message_loop_unittest.cc
@@ -30,6 +30,7 @@
 #include "base/message_loop/message_pump_win.h"
 #include "base/process/memory.h"
 #include "base/strings/string16.h"
+#include "base/win/current_module.h"
 #include "base/win/scoped_handle.h"
 #endif
 
@@ -923,7 +924,7 @@
 
 TEST(MessageLoopTest, AlwaysHaveUserMessageWhenNesting) {
   MessageLoop loop(MessageLoop::TYPE_UI);
-  HINSTANCE instance = GetModuleFromAddress(&TestWndProcThunk);
+  HINSTANCE instance = CURRENT_MODULE();
   WNDCLASSEX wc = {0};
   wc.cbSize = sizeof(wc);
   wc.lpfnWndProc = TestWndProcThunk;
diff --git a/base/message_loop/message_pump_win.cc b/base/message_loop/message_pump_win.cc
index fd4a2e8..04e76e8b 100644
--- a/base/message_loop/message_pump_win.cc
+++ b/base/message_loop/message_pump_win.cc
@@ -11,9 +11,9 @@
 
 #include "base/message_loop/message_loop.h"
 #include "base/metrics/histogram.h"
-#include "base/process/memory.h"
 #include "base/strings/stringprintf.h"
 #include "base/trace_event/trace_event.h"
+#include "base/win/current_module.h"
 #include "base/win/wrapped_window_proc.h"
 
 namespace base {
@@ -89,8 +89,7 @@
 
 MessagePumpForUI::~MessagePumpForUI() {
   DestroyWindow(message_hwnd_);
-  UnregisterClass(MAKEINTATOM(atom_),
-                  GetModuleFromAddress(&WndProcThunk));
+  UnregisterClass(MAKEINTATOM(atom_), CURRENT_MODULE());
 }
 
 void MessagePumpForUI::ScheduleWork() {
@@ -198,7 +197,7 @@
   // Generate a unique window class name.
   string16 class_name = StringPrintf(kWndClassFormat, this);
 
-  HINSTANCE instance = GetModuleFromAddress(&WndProcThunk);
+  HINSTANCE instance = CURRENT_MODULE();
   WNDCLASSEX wc = {0};
   wc.cbSize = sizeof(wc);
   wc.lpfnWndProc = base::win::WrappedWindowProc<WndProcThunk>;
diff --git a/base/process/memory.h b/base/process/memory.h
index 62c3312..be669dd 100644
--- a/base/process/memory.h
+++ b/base/process/memory.h
@@ -11,10 +11,6 @@
 #include "base/process/process_handle.h"
 #include "build/build_config.h"
 
-#if defined(OS_WIN)
-#include <windows.h>
-#endif
-
 #ifdef PVALLOC_AVAILABLE
 // Build config explicitly tells us whether or not pvalloc is available.
 #elif defined(LIBC_GLIBC) && !defined(USE_TCMALLOC)
@@ -36,12 +32,6 @@
 // Crash reporting classifies such crashes as OOM.
 BASE_EXPORT void TerminateBecauseOutOfMemory(size_t size);
 
-#if defined(OS_WIN)
-// Returns the module handle to which an address belongs. The reference count
-// of the module is not incremented.
-BASE_EXPORT HMODULE GetModuleFromAddress(void* address);
-#endif
-
 #if defined(OS_LINUX) || defined(OS_ANDROID)
 BASE_EXPORT extern size_t g_oom_size;
 
diff --git a/base/process/memory_unittest.cc b/base/process/memory_unittest.cc
index 7eab062..ec2ed9f18 100644
--- a/base/process/memory_unittest.cc
+++ b/base/process/memory_unittest.cc
@@ -49,26 +49,6 @@
 typedef BOOL (WINAPI* HeapQueryFn)  \
     (HANDLE, HEAP_INFORMATION_CLASS, PVOID, SIZE_T, PSIZE_T);
 
-const int kConstantInModule = 42;
-
-TEST(ProcessMemoryTest, GetModuleFromAddress) {
-  // Since the unit tests are their own EXE, this should be
-  // equivalent to the EXE's HINSTANCE.
-  //
-  // kConstantInModule is a constant in this file and
-  // therefore within the unit test EXE.
-  EXPECT_EQ(::GetModuleHandle(NULL),
-            base::GetModuleFromAddress(
-                const_cast<int*>(&kConstantInModule)));
-
-  // Any address within the kernel32 module should return
-  // kernel32's HMODULE.  Our only assumption here is that
-  // kernel32 is larger than 4 bytes.
-  HMODULE kernel32 = ::GetModuleHandle(L"kernel32.dll");
-  HMODULE kernel32_from_address =
-      base::GetModuleFromAddress(reinterpret_cast<DWORD*>(kernel32) + 1);
-  EXPECT_EQ(kernel32, kernel32_from_address);
-}
 #endif  // defined(OS_WIN)
 
 #if defined(OS_MACOSX)
diff --git a/base/process/memory_win.cc b/base/process/memory_win.cc
index 979a66e..e539c6a35 100644
--- a/base/process/memory_win.cc
+++ b/base/process/memory_win.cc
@@ -60,17 +60,6 @@
   _set_new_mode(1);
 }
 
-HMODULE GetModuleFromAddress(void* address) {
-  HMODULE instance = NULL;
-  if (!::GetModuleHandleExA(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS |
-                            GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT,
-                            static_cast<char*>(address),
-                            &instance)) {
-    NOTREACHED();
-  }
-  return instance;
-}
-
 // Implemented using a weak symbol.
 bool UncheckedMalloc(size_t size, void** result) {
   *result = malloc_unchecked(size);
diff --git a/base/win/current_module.h b/base/win/current_module.h
new file mode 100644
index 0000000..7650fee
--- /dev/null
+++ b/base/win/current_module.h
@@ -0,0 +1,15 @@
+// Copyright (c) 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 BASE_WIN_CURRENT_MODULE_H_
+#define BASE_WIN_CURRENT_MODULE_H_
+
+// http://blogs.msdn.com/oldnewthing/archive/2004/10/25/247180.aspx
+extern "C" IMAGE_DOS_HEADER __ImageBase;
+
+// Returs the HMODULE of the dll the macro was expanded in.
+// Only use in cc files, not in h files.
+#define CURRENT_MODULE() reinterpret_cast<HMODULE>(&__ImageBase)
+
+#endif  // BASE_WIN_CURRENT_MODULE_H_
diff --git a/base/win/message_window.cc b/base/win/message_window.cc
index 381b1b16..26b64a5 100644
--- a/base/win/message_window.cc
+++ b/base/win/message_window.cc
@@ -7,7 +7,7 @@
 #include "base/lazy_instance.h"
 #include "base/logging.h"
 #include "base/macros.h"
-#include "base/process/memory.h"
+#include "base/win/current_module.h"
 #include "base/win/wrapped_window_proc.h"
 
 const wchar_t kMessageWindowClassName[] = L"Chrome_MessageWindow";
@@ -36,8 +36,7 @@
     LAZY_INSTANCE_INITIALIZER;
 
 MessageWindow::WindowClass::WindowClass()
-    : atom_(0),
-      instance_(base::GetModuleFromAddress(&MessageWindow::WindowProc)) {
+    : atom_(0), instance_(CURRENT_MODULE()) {
   WNDCLASSEX window_class;
   window_class.cbSize = sizeof(window_class);
   window_class.style = 0;
diff --git a/base/win/scoped_handle.cc b/base/win/scoped_handle.cc
index 7fa8b43..cce16281 100644
--- a/base/win/scoped_handle.cc
+++ b/base/win/scoped_handle.cc
@@ -16,15 +16,13 @@
 #include "base/macros.h"
 #include "base/synchronization/lock_impl.h"
 #include "base/threading/thread_local.h"
+#include "base/win/current_module.h"
 
 extern "C" {
 __declspec(dllexport) void* GetHandleVerifier();
 typedef void* (*GetHandleVerifierFn)();
 }
 
-// http://blogs.msdn.com/oldnewthing/archive/2004/10/25/247180.aspx
-extern "C" IMAGE_DOS_HEADER __ImageBase;
-
 namespace {
 
 struct HandleHash {
@@ -247,7 +245,7 @@
 }
 
 HMODULE ActiveVerifier::GetModule() const {
-  return reinterpret_cast<HMODULE>(&__ImageBase);
+  return CURRENT_MODULE();
 }
 
 }  // namespace
diff --git a/base/win/scoped_handle_test_dll.cc b/base/win/scoped_handle_test_dll.cc
index e6e1215d..440a4ca 100644
--- a/base/win/scoped_handle_test_dll.cc
+++ b/base/win/scoped_handle_test_dll.cc
@@ -6,11 +6,9 @@
 
 #include <vector>
 
+#include "base/win/current_module.h"
 #include "base/win/scoped_handle.h"
 
-// http://blogs.msdn.com/oldnewthing/archive/2004/10/25/247180.aspx
-extern "C" IMAGE_DOS_HEADER __ImageBase;
-
 namespace base {
 namespace win {
 namespace testing {
@@ -95,7 +93,7 @@
     return false;
 
   // Get my module
-  HMODULE my_module = reinterpret_cast<HMODULE>(&__ImageBase);
+  HMODULE my_module = CURRENT_MODULE();
   if (!my_module)
     return false;
 
diff --git a/base/win/wrapped_window_proc.cc b/base/win/wrapped_window_proc.cc
index 61b79ed..0a00996 100644
--- a/base/win/wrapped_window_proc.cc
+++ b/base/win/wrapped_window_proc.cc
@@ -6,12 +6,25 @@
 
 #include "base/atomicops.h"
 #include "base/logging.h"
-#include "base/process/memory.h"
 
 namespace {
 
 base::win::WinProcExceptionFilter s_exception_filter = NULL;
 
+HMODULE GetModuleFromWndProc(WNDPROC window_proc) {
+  HMODULE instance = NULL;
+  // Converting a pointer-to-function to a void* is undefined behavior, but
+  // Windows (and POSIX) APIs require it to work.
+  void* address = reinterpret_cast<void*>(window_proc);
+  if (!::GetModuleHandleExA(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS |
+                            GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT,
+                            static_cast<char*>(address),
+                            &instance)) {
+    NOTREACHED();
+  }
+  return instance;
+}
+
 }  // namespace.
 
 namespace base {
@@ -47,7 +60,9 @@
   class_out->lpfnWndProc = window_proc;
   class_out->cbClsExtra = class_extra;
   class_out->cbWndExtra = window_extra;
-  class_out->hInstance = base::GetModuleFromAddress(window_proc);
+  // RegisterClassEx uses a handle of the module containing the window procedure
+  // to distinguish identically named classes registered in different modules.
+  class_out->hInstance = GetModuleFromWndProc(window_proc);
   class_out->hIcon = large_icon;
   class_out->hCursor = cursor;
   class_out->hbrBackground = background;
diff --git a/chrome/VERSION b/chrome/VERSION
index 8001a3e..2c2df6c 100644
--- a/chrome/VERSION
+++ b/chrome/VERSION
@@ -1,4 +1,4 @@
 MAJOR=51
 MINOR=0
-BUILD=2699
+BUILD=2700
 PATCH=0
diff --git a/chrome/android/java/res/layout/account_signin_view.xml b/chrome/android/java/res/layout/account_signin_view.xml
index 41288f0..5e31977 100644
--- a/chrome/android/java/res/layout/account_signin_view.xml
+++ b/chrome/android/java/res/layout/account_signin_view.xml
@@ -61,6 +61,8 @@
                         android:layout_marginBottom="@dimen/fre_vertical_spacing"
                         android:layout_gravity="center_horizontal"
                         android:popupBackground="#ffffff"
+                        android:paddingStart="0dp"
+                        android:paddingEnd="0dp"
                         android:textColor="@color/fre_text_color" />
 
                     <TextView
diff --git a/chrome/android/java/res/layout/fre_spinner_text.xml b/chrome/android/java/res/layout/fre_spinner_text.xml
index fcdbd29e..1176fb0 100644
--- a/chrome/android/java/res/layout/fre_spinner_text.xml
+++ b/chrome/android/java/res/layout/fre_spinner_text.xml
@@ -13,7 +13,7 @@
     android:paddingTop="8dp"
     android:paddingBottom="8dp"
     android:paddingEnd="16dp"
-    android:paddingStart="0dp"
+    android:paddingStart="4dp"
     android:textAlignment="viewStart"
     android:ellipsize="end"
     android:singleLine="true"
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/AccountChooserDialog.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/AccountChooserDialog.java
index 71bb371..19ee688c 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/AccountChooserDialog.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/AccountChooserDialog.java
@@ -5,13 +5,13 @@
 package org.chromium.chrome.browser.password_manager;
 
 import android.app.Activity;
-import android.app.AlertDialog;
 import android.app.Dialog;
 import android.app.DialogFragment;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.graphics.Bitmap;
 import android.os.Bundle;
+import android.support.v7.app.AlertDialog;
 import android.text.SpannableString;
 import android.text.Spanned;
 import android.text.method.LinkMovementMethod;
@@ -21,6 +21,7 @@
 import android.view.ViewGroup;
 import android.widget.ArrayAdapter;
 import android.widget.ImageView;
+import android.widget.ListView;
 import android.widget.TextView;
 
 import org.chromium.base.annotations.CalledByNative;
@@ -38,7 +39,6 @@
         extends DialogFragment implements DialogInterface.OnClickListener {
     private final Context mContext;
     private final Credential[] mCredentials;
-    private final ImageView[] mAvatarViews;
 
     /**
      * Title of the dialog, contains Smart Lock branding for the Smart Lock users.
@@ -62,7 +62,6 @@
         mNativeAccountChooserDialog = nativeAccountChooserDialog;
         mContext = context;
         mCredentials = credentials.clone();
-        mAvatarViews = new ImageView[mCredentials.length];
         mTitle = title;
         mTitleLinkStart = titleLinkStart;
         mTitleLinkEnd = titleLinkEnd;
@@ -99,16 +98,12 @@
                     LayoutInflater inflater = LayoutInflater.from(getContext());
                     convertView =
                             inflater.inflate(R.layout.account_chooser_dialog_item, parent, false);
-                } else {
-                    int oldPosition = (int) convertView.getTag();
-                    mAvatarViews[oldPosition] = null;
                 }
                 convertView.setTag(position);
 
                 Credential credential = getItem(position);
 
                 ImageView avatarView = (ImageView) convertView.findViewById(R.id.profile_image);
-                mAvatarViews[position] = avatarView;
                 Bitmap avatar = credential.getAvatar();
                 if (avatar != null) {
                     avatarView.setImageBitmap(avatar);
@@ -199,12 +194,17 @@
 
     @CalledByNative
     private void imageFetchComplete(int index, Bitmap avatarBitmap) {
+        assert index >= 0 && index < mCredentials.length;
+        assert mCredentials[index] != null;
         avatarBitmap = AccountManagementFragment.makeRoundUserPicture(avatarBitmap);
-        if (index >= 0 && index < mCredentials.length && mCredentials[index] != null) {
-            mCredentials[index].setBitmap(avatarBitmap);
-        }
-        if (index >= 0 && index < mAvatarViews.length && mAvatarViews[index] != null) {
-            mAvatarViews[index].setImageBitmap(avatarBitmap);
+        mCredentials[index].setBitmap(avatarBitmap);
+        ListView view = mDialog.getListView();
+        if (index >= view.getFirstVisiblePosition() && index <= view.getLastVisiblePosition()) {
+            // Profile image is in the visible range.
+            View credentialView = view.getChildAt(index - view.getFirstVisiblePosition());
+            if (credentialView == null) return;
+            ImageView avatar = (ImageView) credentialView.findViewById(R.id.profile_image);
+            avatar.setImageBitmap(avatarBitmap);
         }
     }
 
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 581c3c6..c381d1a6 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
@@ -204,6 +204,7 @@
 
         mConfirmAccountEmail = (TextView) findViewById(R.id.confirm_account_email);
         mSpinner = (Spinner) findViewById(R.id.google_accounts_spinner);
+
         mSpinnerBackground = mSpinner.getBackground();
         mArrayAdapter = new ArrayAdapter<CharSequence>(getContext().getApplicationContext(),
                 R.layout.fre_spinner_text);
@@ -233,6 +234,14 @@
     }
 
     @Override
+    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
+        // Ensure that the spinner's dropdown is the same width and vertically aligned with the
+        // spinner. The spinner's start and end padding must be 0 for this to work.
+        mSpinner.setDropDownWidth(mSpinner.getWidth());
+    }
+
+    @Override
     protected void onAttachedToWindow() {
         super.onAttachedToWindow();
         updateAccounts();
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/snackbar/SnackbarView.java b/chrome/android/java/src/org/chromium/chrome/browser/snackbar/SnackbarView.java
index 08edce13..4719482 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/snackbar/SnackbarView.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/snackbar/SnackbarView.java
@@ -7,6 +7,7 @@
 import android.content.Context;
 import android.graphics.Bitmap;
 import android.graphics.Rect;
+import android.graphics.drawable.GradientDrawable;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.View.OnClickListener;
@@ -171,13 +172,12 @@
         if (mIsTablet) {
             // On tablet, snackbars have rounded corners.
             mView.setBackgroundResource(R.drawable.snackbar_background_tablet);
+            GradientDrawable backgroundDrawable = (GradientDrawable) mView.getBackground().mutate();
+            backgroundDrawable.setColor(backgroundColor);
         } else {
             mView.setBackgroundColor(backgroundColor);
         }
 
-        if (snackbar.getBackgroundColor() != 0) {
-            mView.setBackgroundColor(snackbar.getBackgroundColor());
-        }
         if (actionText != null) {
             mActionButtonView.setVisibility(View.VISIBLE);
             setViewText(mActionButtonView, snackbar.getActionText(), animate);
diff --git a/chrome/browser/chromeos/login/users/avatar/mock_user_image_manager.h b/chrome/browser/chromeos/login/users/avatar/mock_user_image_manager.h
index c006a18..683308d 100644
--- a/chrome/browser/chromeos/login/users/avatar/mock_user_image_manager.h
+++ b/chrome/browser/chromeos/login/users/avatar/mock_user_image_manager.h
@@ -20,12 +20,11 @@
   virtual ~MockUserImageManager();
 
   MOCK_METHOD1(SaveUserDefaultImageIndex, void(int));
-  MOCK_METHOD1(SaveUserImage, void(const user_manager::UserImage&));
+  void SaveUserImage(scoped_ptr<user_manager::UserImage>) {}
   MOCK_METHOD1(SaveUserImageFromFile, void(const base::FilePath&));
   MOCK_METHOD0(SaveUserImageFromProfileImage, void());
   MOCK_METHOD1(DownloadProfileImage, void(const std::string&));
   MOCK_CONST_METHOD0(DownloadedProfileImage, const gfx::ImageSkia& (void));
-
 };
 
 }  // namespace chromeos
diff --git a/chrome/browser/chromeos/login/users/avatar/user_image_loader.cc b/chrome/browser/chromeos/login/users/avatar/user_image_loader.cc
index d8fa49d..d14dc87 100644
--- a/chrome/browser/chromeos/login/users/avatar/user_image_loader.cc
+++ b/chrome/browser/chromeos/login/users/avatar/user_image_loader.cc
@@ -160,17 +160,18 @@
   gfx::ImageSkia final_image_skia =
       gfx::ImageSkia::CreateFrom1xBitmap(final_image);
   final_image_skia.MakeThreadSafe();
-  user_manager::UserImage user_image(final_image_skia, image_bytes);
-  user_image.set_file_path(image_info_.file_path);
+  scoped_ptr<user_manager::UserImage> user_image(
+      new user_manager::UserImage(final_image_skia, image_bytes));
+  user_image->set_file_path(image_info_.file_path);
   if (image_info_.image_codec == ImageDecoder::ROBUST_JPEG_CODEC ||
       image_bytes_regenerated)
-    user_image.MarkAsSafe();
-  image_info_.loaded_cb.Run(user_image);
+    user_image->MarkAsSafe();
+  image_info_.loaded_cb.Run(std::move(user_image));
   delete this;
 }
 
 void UserImageRequest::OnDecodeImageFailed() {
-  image_info_.loaded_cb.Run(user_manager::UserImage());
+  image_info_.loaded_cb.Run(make_scoped_ptr(new user_manager::UserImage));
   delete this;
 }
 
@@ -183,7 +184,9 @@
     bool data_is_ready) {
   if (!data_is_ready) {
     base::ThreadTaskRunnerHandle::Get()->PostTask(
-        FROM_HERE, base::Bind(image_info.loaded_cb, user_manager::UserImage()));
+        FROM_HERE,
+        base::Bind(image_info.loaded_cb,
+                   base::Passed(make_scoped_ptr(new user_manager::UserImage))));
     return;
   }
 
diff --git a/chrome/browser/chromeos/login/users/avatar/user_image_loader.h b/chrome/browser/chromeos/login/users/avatar/user_image_loader.h
index 5b485a8..408a7e8 100644
--- a/chrome/browser/chromeos/login/users/avatar/user_image_loader.h
+++ b/chrome/browser/chromeos/login/users/avatar/user_image_loader.h
@@ -25,7 +25,7 @@
 namespace chromeos {
 namespace user_image_loader {
 
-typedef base::Callback<void(const user_manager::UserImage& user_image)>
+typedef base::Callback<void(scoped_ptr<user_manager::UserImage>)>
     LoadedCallback;
 
 // Loads an image with |image_codec| in the background and calls |loaded_cb|
diff --git a/chrome/browser/chromeos/login/users/avatar/user_image_manager.h b/chrome/browser/chromeos/login/users/avatar/user_image_manager.h
index f8f121f..147ea9e 100644
--- a/chrome/browser/chromeos/login/users/avatar/user_image_manager.h
+++ b/chrome/browser/chromeos/login/users/avatar/user_image_manager.h
@@ -52,7 +52,8 @@
 
   // Saves image to file, sends LOGIN_USER_IMAGE_CHANGED notification and
   // updates Local State.
-  virtual void SaveUserImage(const user_manager::UserImage& user_image) = 0;
+  virtual void SaveUserImage(
+      scoped_ptr<user_manager::UserImage> user_image) = 0;
 
   // Tries to load user image from disk; if successful, sets it for the user,
   // sends LOGIN_USER_IMAGE_CHANGED notification and updates Local State.
diff --git a/chrome/browser/chromeos/login/users/avatar/user_image_manager_impl.cc b/chrome/browser/chromeos/login/users/avatar/user_image_manager_impl.cc
index d96954bc..1ad36853 100644
--- a/chrome/browser/chromeos/login/users/avatar/user_image_manager_impl.cc
+++ b/chrome/browser/chromeos/login/users/avatar/user_image_manager_impl.cc
@@ -148,29 +148,12 @@
   }
 }
 
-bool SaveImage(const user_manager::UserImage& user_image,
+bool SaveImage(scoped_ptr<user_manager::UserImage::Bytes> image_bytes,
                const base::FilePath& image_path) {
-  // This should always be true, because of the following reasons:
-  //
-  // 1) Profile image from Google account -> UserImage is created with
-  //    CreateAndEncode() that generates safe bytes representation.
-  // 2) Profile image from user-specified image -> The bytes representation
-  //    is regenerated after the original image is decoded and cropped.
-  // 3) Profile image from policy (via OnExternalDataFetched()) -> JPEG is
-  //    only allowed and ROBUST_JPEG_CODEC is used.
-  //
-  // However, check the value just in case because an unsafe image should
-  // never be saved.
-  if (!user_image.is_safe_format()) {
-    LOG(ERROR) << "User image is not in safe format";
-    return false;
-  }
-
-  const user_manager::UserImage::Bytes& image_bytes = user_image.image_bytes();
-  if (image_bytes.empty() ||
+  if (image_bytes->empty() ||
       base::WriteFile(image_path,
-                      reinterpret_cast<const char*>(image_bytes.data()),
-                      image_bytes.size()) == -1) {
+                      reinterpret_cast<const char*>(image_bytes->data()),
+                      image_bytes->size()) == -1) {
     LOG(ERROR) << "Failed to save image to file.";
     return false;
   }
@@ -218,7 +201,8 @@
 
   // Saves the |user_image| to disk and sets the user image in local
   // state to that image. Also updates the user with the new image.
-  void SetToImage(int image_index, const user_manager::UserImage& user_image);
+  void SetToImage(int image_index,
+                  scoped_ptr<user_manager::UserImage> user_image);
 
   // Decodes the JPEG image |data|, crops and resizes the image, saves
   // it to disk and sets the user image in local state to that image.
@@ -237,14 +221,21 @@
 
  private:
   // Called back after an image has been loaded from disk.
-  void OnLoadImageDone(bool save, const user_manager::UserImage& user_image);
+  void OnLoadImageDone(bool save,
+                       scoped_ptr<user_manager::UserImage> user_image);
 
   // Updates the user object with |user_image|.
-  void UpdateUser(const user_manager::UserImage& user_image);
+  void UpdateUser(scoped_ptr<user_manager::UserImage> user_image);
 
-  // Saves |user_image_| to disk in JPEG format. Local state will be updated
-  // when a callback indicates that the image has been saved.
-  void SaveImageAndUpdateLocalState(const user_manager::UserImage& user_image);
+  // Updates the user object with |user_image|, and saves the image
+  // bytes. Local state will be updated as needed.
+  void UpdateUserAndSaveImage(scoped_ptr<user_manager::UserImage> user_image);
+
+  // Saves |image_bytes| to disk in JPEG format if
+  // |image_is_safe_format|. Local state will be updated as needed.
+  void SaveImageAndUpdateLocalState(
+      bool image_is_safe_format,
+      scoped_ptr<user_manager::UserImage::Bytes> image_bytes);
 
   // Called back after the user image has been saved to
   // disk. Updates the user image information in local state. The
@@ -301,9 +292,9 @@
   if (image_index_ >= 0 &&
       image_index_ < default_user_image::kDefaultImagesCount) {
     // Load one of the default images. This happens synchronously.
-    const user_manager::UserImage user_image(
-        default_user_image::GetDefaultImage(image_index_));
-    UpdateUser(user_image);
+    scoped_ptr<user_manager::UserImage> user_image(new user_manager::UserImage(
+        default_user_image::GetDefaultImage(image_index_)));
+    UpdateUser(std::move(user_image));
     NotifyJobDone();
   } else if (image_index_ == user_manager::User::USER_IMAGE_EXTERNAL ||
              image_index_ == user_manager::User::USER_IMAGE_PROFILE) {
@@ -331,17 +322,17 @@
   DCHECK_GT(default_user_image::kDefaultImagesCount, default_image_index);
 
   image_index_ = default_image_index;
-  const user_manager::UserImage user_image(
-      default_user_image::GetDefaultImage(image_index_));
+  scoped_ptr<user_manager::UserImage> user_image(new user_manager::UserImage(
+      default_user_image::GetDefaultImage(image_index_)));
 
-  UpdateUser(user_image);
+  UpdateUser(std::move(user_image));
   UpdateLocalState();
   NotifyJobDone();
 }
 
 void UserImageManagerImpl::Job::SetToImage(
     int image_index,
-    const user_manager::UserImage& user_image) {
+    scoped_ptr<user_manager::UserImage> user_image) {
   DCHECK(!run_);
   run_ = true;
 
@@ -350,8 +341,7 @@
 
   image_index_ = image_index;
 
-  UpdateUser(user_image);
-  SaveImageAndUpdateLocalState(user_image);
+  UpdateUserAndSaveImage(std::move(user_image));
 }
 
 void UserImageManagerImpl::Job::SetToImageData(scoped_ptr<std::string> data) {
@@ -395,44 +385,81 @@
 
 void UserImageManagerImpl::Job::OnLoadImageDone(
     bool save,
-    const user_manager::UserImage& user_image) {
-  UpdateUser(user_image);
-  if (save)
-    SaveImageAndUpdateLocalState(user_image);
-  else
+    scoped_ptr<user_manager::UserImage> user_image) {
+  if (save) {
+    UpdateUserAndSaveImage(std::move(user_image));
+  } else {
+    UpdateUser(std::move(user_image));
     NotifyJobDone();
+  }
 }
 
 void UserImageManagerImpl::Job::UpdateUser(
-    const user_manager::UserImage& user_image) {
+    scoped_ptr<user_manager::UserImage> user_image) {
   user_manager::User* user = parent_->GetUserAndModify();
   if (!user)
     return;
 
-  if (!user_image.image().isNull()) {
-    user->SetImage(user_image, image_index_);
+  if (!user_image->image().isNull()) {
+    user->SetImage(std::move(user_image), image_index_);
   } else {
     user->SetStubImage(
-        user_manager::UserImage(
+        make_scoped_ptr(new user_manager::UserImage(
             *ResourceBundle::GetSharedInstance().GetImageSkiaNamed(
-                IDR_PROFILE_PICTURE_LOADING)),
-        image_index_,
-        false);
+                IDR_PROFILE_PICTURE_LOADING))),
+        image_index_, false);
   }
   user->SetImageURL(image_url_);
 
   parent_->OnJobChangedUserImage();
 }
 
+void UserImageManagerImpl::Job::UpdateUserAndSaveImage(
+    scoped_ptr<user_manager::UserImage> user_image) {
+  // TODO(crbug.com/593251): Remove the data copy.
+  // Copy the image bytes, before the user image is passed to
+  // UpdateUser(). This is needed to safely save the data bytes to the disk
+  // in the blocking pool. Copying is not desirable but the user image is
+  // JPEG data of 512x512 pixels (usually <100KB) hence it's not enormous.
+  const bool image_is_safe_format = user_image->is_safe_format();
+  scoped_ptr<user_manager::UserImage::Bytes> copied_bytes;
+  if (image_is_safe_format) {
+    copied_bytes.reset(
+        new user_manager::UserImage::Bytes(user_image->image_bytes()));
+  }
+
+  UpdateUser(std::move(user_image));
+
+  SaveImageAndUpdateLocalState(image_is_safe_format, std::move(copied_bytes));
+}
+
 void UserImageManagerImpl::Job::SaveImageAndUpdateLocalState(
-    const user_manager::UserImage& user_image) {
+    bool image_is_safe_format,
+    scoped_ptr<user_manager::UserImage::Bytes> image_bytes) {
   base::FilePath user_data_dir;
   PathService::Get(chrome::DIR_USER_DATA, &user_data_dir);
   image_path_ = user_data_dir.Append(user_id() + kSafeImagePathExtension);
 
+  // This should always be true, because of the following reasons:
+  //
+  // 1) Profile image from Google account -> UserImage is created with
+  //    CreateAndEncode() that generates safe bytes representation.
+  // 2) Profile image from user-specified image -> The bytes representation
+  //    is regenerated after the original image is decoded and cropped.
+  // 3) Profile image from policy (via OnExternalDataFetched()) -> JPEG is
+  //    only allowed and ROBUST_JPEG_CODEC is used.
+  //
+  // However, check the value just in case because an unsafe image should
+  // never be saved.
+  if (!image_is_safe_format) {
+    LOG(ERROR) << "User image is not in safe format";
+    OnSaveImageDone(false);
+    return;
+  }
+
   base::PostTaskAndReplyWithResult(
       parent_->background_task_runner_.get(), FROM_HERE,
-      base::Bind(&SaveImage, user_image, image_path_),
+      base::Bind(&SaveImage, base::Passed(std::move(image_bytes)), image_path_),
       base::Bind(&Job::OnSaveImageDone, weak_factory_.GetWeakPtr()));
 }
 
@@ -510,8 +537,8 @@
   image_properties->GetInteger(kImageIndexNodeName, &image_index);
   if (image_index >= 0 &&
       image_index < default_user_image::kDefaultImagesCount) {
-    user->SetImage(user_manager::UserImage(
-                       default_user_image::GetDefaultImage(image_index)),
+    user->SetImage(make_scoped_ptr(new user_manager::UserImage(
+                       default_user_image::GetDefaultImage(image_index))),
                    image_index);
     return;
   }
@@ -529,11 +556,10 @@
   image_properties->GetString(kImagePathNodeName, &image_path);
 
   user->SetImageURL(image_url);
-  user->SetStubImage(user_manager::UserImage(
+  user->SetStubImage(make_scoped_ptr(new user_manager::UserImage(
                          *ResourceBundle::GetSharedInstance().GetImageSkiaNamed(
-                             IDR_PROFILE_PICTURE_LOADING)),
-                     image_index,
-                     true);
+                             IDR_PROFILE_PICTURE_LOADING))),
+                     image_index, true);
   DCHECK(!image_path.empty() ||
          image_index == user_manager::User::USER_IMAGE_PROFILE);
   if (image_path.empty()) {
@@ -602,11 +628,12 @@
 }
 
 void UserImageManagerImpl::SaveUserImage(
-    const user_manager::UserImage& user_image) {
+    scoped_ptr<user_manager::UserImage> user_image) {
   if (IsUserImageManaged())
     return;
   job_.reset(new Job(this));
-  job_->SetToImage(user_manager::User::USER_IMAGE_EXTERNAL, user_image);
+  job_->SetToImage(user_manager::User::USER_IMAGE_EXTERNAL,
+                   std::move(user_image));
 }
 
 void UserImageManagerImpl::SaveUserImageFromFile(const base::FilePath& path) {
@@ -624,7 +651,7 @@
   job_.reset(new Job(this));
   job_->SetToImage(user_manager::User::USER_IMAGE_PROFILE,
                    downloaded_profile_image_.isNull()
-                       ? user_manager::UserImage()
+                       ? make_scoped_ptr(new user_manager::UserImage)
                        : user_manager::UserImage::CreateAndEncode(
                              downloaded_profile_image_));
   // If no profile image has been downloaded yet, ensure that a download is
diff --git a/chrome/browser/chromeos/login/users/avatar/user_image_manager_impl.h b/chrome/browser/chromeos/login/users/avatar/user_image_manager_impl.h
index 38d912c..1f26396 100644
--- a/chrome/browser/chromeos/login/users/avatar/user_image_manager_impl.h
+++ b/chrome/browser/chromeos/login/users/avatar/user_image_manager_impl.h
@@ -51,7 +51,7 @@
   void UserLoggedIn(bool user_is_new, bool user_is_local) override;
   void UserProfileCreated() override;
   void SaveUserDefaultImageIndex(int default_image_index) override;
-  void SaveUserImage(const user_manager::UserImage& user_image) override;
+  void SaveUserImage(scoped_ptr<user_manager::UserImage> user_image) override;
   void SaveUserImageFromFile(const base::FilePath& path) override;
   void SaveUserImageFromProfileImage() override;
   void DeleteUserImage() override;
diff --git a/chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc b/chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc
index b8e5278..4ecd8c9 100644
--- a/chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc
+++ b/chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc
@@ -688,11 +688,10 @@
   // mount point. Legacy (--login-profile) value will be used for now.
   // http://crosbug.com/230859
   active_user_->SetStubImage(
-      user_manager::UserImage(
+      make_scoped_ptr(new user_manager::UserImage(
           *ResourceBundle::GetSharedInstance().GetImageSkiaNamed(
-              IDR_PROFILE_PICTURE_LOADING)),
-      user_manager::User::USER_IMAGE_INVALID,
-      false);
+              IDR_PROFILE_PICTURE_LOADING))),
+      user_manager::User::USER_IMAGE_INVALID, false);
 
   // Initializes wallpaper after active_user_ is set.
   WallpaperManager::Get()->SetUserWallpaperNow(login::GuestAccountId());
@@ -798,11 +797,10 @@
 
   active_user_ = user_manager::User::CreateKioskAppUser(kiosk_app_account_id);
   active_user_->SetStubImage(
-      user_manager::UserImage(
+      make_scoped_ptr(new user_manager::UserImage(
           *ResourceBundle::GetSharedInstance().GetImageSkiaNamed(
-              IDR_PROFILE_PICTURE_LOADING)),
-      user_manager::User::USER_IMAGE_INVALID,
-      false);
+              IDR_PROFILE_PICTURE_LOADING))),
+      user_manager::User::USER_IMAGE_INVALID, false);
 
   WallpaperManager::Get()->SetUserWallpaperNow(kiosk_app_account_id);
 
@@ -843,11 +841,10 @@
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
   active_user_ = user_manager::User::CreateKioskAppUser(login::DemoAccountId());
   active_user_->SetStubImage(
-      user_manager::UserImage(
+      make_scoped_ptr(new user_manager::UserImage(
           *ResourceBundle::GetSharedInstance().GetImageSkiaNamed(
-              IDR_PROFILE_PICTURE_LOADING)),
-      user_manager::User::USER_IMAGE_INVALID,
-      false);
+              IDR_PROFILE_PICTURE_LOADING))),
+      user_manager::User::USER_IMAGE_INVALID, false);
   WallpaperManager::Get()->SetUserWallpaperNow(login::DemoAccountId());
 
   base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
diff --git a/chrome/browser/chromeos/login/users/fake_chrome_user_manager.cc b/chrome/browser/chromeos/login/users/fake_chrome_user_manager.cc
index 7e79232..54f80e5 100644
--- a/chrome/browser/chromeos/login/users/fake_chrome_user_manager.cc
+++ b/chrome/browser/chromeos/login/users/fake_chrome_user_manager.cc
@@ -48,9 +48,9 @@
   user->SetAffiliation(is_affiliated);
   user->set_username_hash(ProfileHelper::GetUserIdHashByUserIdForTesting(
       account_id.GetUserEmail()));
-  user->SetStubImage(user_manager::UserImage(
+  user->SetStubImage(make_scoped_ptr(new user_manager::UserImage(
                          *ResourceBundle::GetSharedInstance().GetImageSkiaNamed(
-                             IDR_PROFILE_PICTURE_LOADING)),
+                             IDR_PROFILE_PICTURE_LOADING))),
                      user_manager::User::USER_IMAGE_PROFILE, false);
   users_.push_back(user);
   chromeos::ProfileHelper::Get()->SetProfileToUserMappingForTesting(user);
@@ -63,9 +63,9 @@
       user_manager::User::CreatePublicAccountUser(account_id);
   user->set_username_hash(ProfileHelper::GetUserIdHashByUserIdForTesting(
       account_id.GetUserEmail()));
-  user->SetStubImage(user_manager::UserImage(
+  user->SetStubImage(make_scoped_ptr(new user_manager::UserImage(
                          *ResourceBundle::GetSharedInstance().GetImageSkiaNamed(
-                             IDR_PROFILE_PICTURE_LOADING)),
+                             IDR_PROFILE_PICTURE_LOADING))),
                      user_manager::User::USER_IMAGE_PROFILE, false);
   users_.push_back(user);
   return user;
diff --git a/chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.cc b/chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.cc
index e83f13cc..96fb299 100644
--- a/chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.cc
+++ b/chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.cc
@@ -827,7 +827,7 @@
 
 void WallpaperManager::SetPolicyControlledWallpaper(
     const AccountId& account_id,
-    const user_manager::UserImage& user_image) {
+    scoped_ptr<user_manager::UserImage> user_image) {
   const user_manager::User* user =
       user_manager::UserManager::Get()->FindUser(account_id);
   if (!user) {
@@ -841,12 +841,12 @@
     cryptohome::AsyncMethodCaller::GetInstance()->AsyncGetSanitizedUsername(
         GetUnhashedSourceForWallpaperFilesId(*user),
         base::Bind(&WallpaperManager::SetCustomWallpaperOnSanitizedUsername,
-                   weak_factory_.GetWeakPtr(), account_id, user_image.image(),
+                   weak_factory_.GetWeakPtr(), account_id, user_image->image(),
                    true /* update wallpaper */));
   } else {
     SetCustomWallpaper(account_id, wallpaper_files_id, "policy-controlled.jpeg",
                        wallpaper::WALLPAPER_LAYOUT_CENTER_CROPPED,
-                       user_manager::User::POLICY, user_image.image(),
+                       user_manager::User::POLICY, user_image->image(),
                        true /* update wallpaper */);
   }
 }
@@ -947,13 +947,13 @@
     wallpaper::WallpaperLayout layout,
     bool update_wallpaper,
     MovableOnDestroyCallbackHolder on_finish,
-    const user_manager::UserImage& user_image) {
+    scoped_ptr<user_manager::UserImage> user_image) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
   TRACE_EVENT_ASYNC_END0("ui", "LoadAndDecodeWallpaper", this);
 
   // If decoded wallpaper is empty, we have probably failed to decode the file.
   // Use default wallpaper in this case.
-  if (user_image.image().isNull()) {
+  if (user_image->image().isNull()) {
     // Updates user pref to default wallpaper.
     WallpaperInfo info = {"",
                           wallpaper::WALLPAPER_LAYOUT_CENTER_CROPPED,
@@ -967,12 +967,12 @@
   }
 
   // Update the image, but keep the path which was set earlier.
-  wallpaper_cache_[account_id].second = user_image.image();
+  wallpaper_cache_[account_id].second = user_image->image();
 
   if (update_wallpaper) {
     ash::Shell::GetInstance()
         ->desktop_background_controller()
-        ->SetWallpaperImage(user_image.image(), layout);
+        ->SetWallpaperImage(user_image->image(), layout);
   }
 }
 
@@ -1075,10 +1075,10 @@
     const wallpaper::WallpaperLayout layout,
     scoped_ptr<user_manager::UserImage>* result_out,
     MovableOnDestroyCallbackHolder on_finish,
-    const user_manager::UserImage& user_image) {
-  result_out->reset(new user_manager::UserImage(user_image));
+    scoped_ptr<user_manager::UserImage> user_image) {
+  *result_out = std::move(user_image);
   ash::Shell::GetInstance()->desktop_background_controller()->SetWallpaperImage(
-      user_image.image(), layout);
+      (*result_out)->image(), layout);
 }
 
 void WallpaperManager::StartLoadAndSetDefaultWallpaper(
diff --git a/chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h b/chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h
index 69e94de2..8940f0de 100644
--- a/chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h
+++ b/chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h
@@ -153,8 +153,9 @@
 
   // Set wallpaper to |user_image| controlled by policy.  (Takes a UserImage
   // because that's the callback interface provided by UserImageLoader.)
-  void SetPolicyControlledWallpaper(const AccountId& account_id,
-                                    const user_manager::UserImage& user_image);
+  void SetPolicyControlledWallpaper(
+      const AccountId& account_id,
+      scoped_ptr<user_manager::UserImage> user_image);
 
   // Calls SetCustomWallpaper() with |wallpaper_files_id_str| received from
   // cryptohome.
@@ -169,11 +170,12 @@
   void InitializeRegisteredDeviceWallpaper() override;
   bool GetUserWallpaperInfo(const AccountId& account_id,
                             wallpaper::WallpaperInfo* info) const override;
-  void OnWallpaperDecoded(const AccountId& account_id,
-                          wallpaper::WallpaperLayout layout,
-                          bool update_wallpaper,
-                          wallpaper::MovableOnDestroyCallbackHolder on_finish,
-                          const user_manager::UserImage& user_image) override;
+  void OnWallpaperDecoded(
+      const AccountId& account_id,
+      wallpaper::WallpaperLayout layout,
+      bool update_wallpaper,
+      wallpaper::MovableOnDestroyCallbackHolder on_finish,
+      scoped_ptr<user_manager::UserImage> user_image) override;
   void StartLoad(const AccountId& account_id,
                  const wallpaper::WallpaperInfo& info,
                  bool update_wallpaper,
@@ -196,7 +198,7 @@
       const wallpaper::WallpaperLayout layout,
       scoped_ptr<user_manager::UserImage>* result,
       wallpaper::MovableOnDestroyCallbackHolder on_finish,
-      const user_manager::UserImage& user_image) override;
+      scoped_ptr<user_manager::UserImage> user_image) override;
   void StartLoadAndSetDefaultWallpaper(
       const base::FilePath& path,
       const wallpaper::WallpaperLayout layout,
diff --git a/chrome/browser/devtools/devtools_target_impl.h b/chrome/browser/devtools/devtools_target_impl.h
index bdddd83..6b93fbb 100644
--- a/chrome/browser/devtools/devtools_target_impl.h
+++ b/chrome/browser/devtools/devtools_target_impl.h
@@ -8,6 +8,7 @@
 #include <vector>
 
 #include "base/callback.h"
+#include "base/memory/scoped_ptr.h"
 #include "components/devtools_discovery/basic_target_descriptor.h"
 
 class Profile;
diff --git a/chrome/browser/enumerate_modules_model_win.cc b/chrome/browser/enumerate_modules_model_win.cc
index fa34389..372f367 100644
--- a/chrome/browser/enumerate_modules_model_win.cc
+++ b/chrome/browser/enumerate_modules_model_win.cc
@@ -17,6 +17,7 @@
 #include "base/files/file_path.h"
 #include "base/i18n/case_conversion.h"
 #include "base/macros.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/metrics/histogram.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/string_util.h"
diff --git a/chrome/browser/media_galleries/win/mtp_device_operations_util.cc b/chrome/browser/media_galleries/win/mtp_device_operations_util.cc
index ca274d8..6a278324 100644
--- a/chrome/browser/media_galleries/win/mtp_device_operations_util.cc
+++ b/chrome/browser/media_galleries/win/mtp_device_operations_util.cc
@@ -13,6 +13,7 @@
 #include "base/files/file_path.h"
 #include "base/files/file_util.h"
 #include "base/logging.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/numerics/safe_conversions.h"
 #include "base/strings/string_util.h"
 #include "base/threading/thread_restrictions.h"
diff --git a/chrome/browser/permissions/permission_context_base.h b/chrome/browser/permissions/permission_context_base.h
index 3a89a040..89ff58c 100644
--- a/chrome/browser/permissions/permission_context_base.h
+++ b/chrome/browser/permissions/permission_context_base.h
@@ -8,6 +8,7 @@
 #include "base/callback.h"
 #include "base/containers/scoped_ptr_hash_map.h"
 #include "base/memory/ref_counted.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "build/build_config.h"
 #include "chrome/browser/ui/website_settings/permission_bubble_request.h"
diff --git a/chrome/browser/safe_browsing/incident_reporting/module_integrity_verifier_win_unittest.cc b/chrome/browser/safe_browsing/incident_reporting/module_integrity_verifier_win_unittest.cc
index bf1dd14..d3460a28 100644
--- a/chrome/browser/safe_browsing/incident_reporting/module_integrity_verifier_win_unittest.cc
+++ b/chrome/browser/safe_browsing/incident_reporting/module_integrity_verifier_win_unittest.cc
@@ -15,6 +15,7 @@
 #include "base/files/file_path.h"
 #include "base/files/memory_mapped_file.h"
 #include "base/macros.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/native_library.h"
 #include "base/scoped_native_library.h"
 #include "base/strings/utf_string_conversions.h"
diff --git a/chrome/browser/search/thumbnail_source.h b/chrome/browser/search/thumbnail_source.h
index ef3abd1a..f9c9dae 100644
--- a/chrome/browser/search/thumbnail_source.h
+++ b/chrome/browser/search/thumbnail_source.h
@@ -9,6 +9,7 @@
 
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "content/public/browser/url_data_source.h"
 #include "url/gurl.h"
diff --git a/chrome/browser/ssl/chrome_security_state_model_client.h b/chrome/browser/ssl/chrome_security_state_model_client.h
index 6c76403..1c3296f 100644
--- a/chrome/browser/ssl/chrome_security_state_model_client.h
+++ b/chrome/browser/ssl/chrome_security_state_model_client.h
@@ -6,6 +6,7 @@
 #define CHROME_BROWSER_SSL_CHROME_SECURITY_STATE_MODEL_CLIENT_H_
 
 #include "base/macros.h"
+#include "base/memory/scoped_ptr.h"
 #include "components/security_state/security_state_model.h"
 #include "components/security_state/security_state_model_client.h"
 #include "content/public/browser/web_contents_user_data.h"
diff --git a/chrome/browser/sync_file_system/drive_backend/metadata_db_migration_util_unittest.cc b/chrome/browser/sync_file_system/drive_backend/metadata_db_migration_util_unittest.cc
index 89b84b48..da6eb5e 100644
--- a/chrome/browser/sync_file_system/drive_backend/metadata_db_migration_util_unittest.cc
+++ b/chrome/browser/sync_file_system/drive_backend/metadata_db_migration_util_unittest.cc
@@ -7,6 +7,7 @@
 #include <string>
 
 #include "base/files/scoped_temp_dir.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/string_util.h"
 #include "chrome/browser/sync_file_system/drive_backend/drive_backend_constants.h"
diff --git a/chrome/browser/sync_file_system/local/canned_syncable_file_system.h b/chrome/browser/sync_file_system/local/canned_syncable_file_system.h
index 57bfa47f..4d42e50 100644
--- a/chrome/browser/sync_file_system/local/canned_syncable_file_system.h
+++ b/chrome/browser/sync_file_system/local/canned_syncable_file_system.h
@@ -14,6 +14,7 @@
 #include "base/files/file.h"
 #include "base/files/scoped_temp_dir.h"
 #include "base/macros.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/observer_list_threadsafe.h"
 #include "chrome/browser/sync_file_system/local/local_file_sync_status.h"
 #include "chrome/browser/sync_file_system/sync_status_code.h"
diff --git a/chrome/browser/sync_file_system/local/local_file_sync_service.h b/chrome/browser/sync_file_system/local/local_file_sync_service.h
index 3c6a531..3fe17e8 100644
--- a/chrome/browser/sync_file_system/local/local_file_sync_service.h
+++ b/chrome/browser/sync_file_system/local/local_file_sync_service.h
@@ -14,6 +14,7 @@
 #include "base/callback.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/observer_list.h"
 #include "chrome/browser/sync_file_system/local/local_origin_change_observer.h"
diff --git a/chrome/browser/sync_file_system/sync_process_runner.h b/chrome/browser/sync_file_system/sync_process_runner.h
index 80be8d5a..283f87f 100644
--- a/chrome/browser/sync_file_system/sync_process_runner.h
+++ b/chrome/browser/sync_file_system/sync_process_runner.h
@@ -11,6 +11,7 @@
 #include <string>
 
 #include "base/macros.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "base/timer/timer.h"
 #include "chrome/browser/sync_file_system/sync_callbacks.h"
diff --git a/chrome/browser/task_profiler/task_profiler_data_serializer.cc b/chrome/browser/task_profiler/task_profiler_data_serializer.cc
index 5108f18..2c8356d 100644
--- a/chrome/browser/task_profiler/task_profiler_data_serializer.cc
+++ b/chrome/browser/task_profiler/task_profiler_data_serializer.cc
@@ -7,6 +7,7 @@
 #include "base/files/file_path.h"
 #include "base/files/file_util.h"
 #include "base/json/json_string_value_serializer.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/time/time.h"
 #include "base/tracked_objects.h"
 #include "chrome/common/chrome_content_client.h"
diff --git a/chrome/browser/ui/input_method/input_method_engine_base.h b/chrome/browser/ui/input_method/input_method_engine_base.h
index b36e7ce3..315dbfc3 100644
--- a/chrome/browser/ui/input_method/input_method_engine_base.h
+++ b/chrome/browser/ui/input_method/input_method_engine_base.h
@@ -8,6 +8,7 @@
 #include <map>
 #include <string>
 #include <vector>
+#include "base/memory/scoped_ptr.h"
 #include "base/time/time.h"
 #include "ui/base/ime/chromeos/input_method_descriptor.h"
 #include "ui/base/ime/composition_text.h"
diff --git a/chrome/browser/ui/webui/chromeos/image_source.cc b/chrome/browser/ui/webui/chromeos/image_source.cc
index 3fb2775..502c11f 100644
--- a/chrome/browser/ui/webui/chromeos/image_source.cc
+++ b/chrome/browser/ui/webui/chromeos/image_source.cc
@@ -35,11 +35,12 @@
 // Callback for user_manager::UserImageLoader.
 void ImageLoaded(
     const content::URLDataSource::GotDataCallback& got_data_callback,
-    const user_manager::UserImage& user_image) {
+    scoped_ptr<user_manager::UserImage> user_image) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
 
-  if (user_image.has_image_bytes())
-    got_data_callback.Run(new base::RefCountedBytes(user_image.image_bytes()));
+  // TODO(crbug.com/593251): Remove the data copy.
+  if (user_image->has_image_bytes())
+    got_data_callback.Run(new base::RefCountedBytes(user_image->image_bytes()));
   else
     got_data_callback.Run(NULL);
 }
diff --git a/chrome/browser/ui/webui/webui_webview_browsertest.cc b/chrome/browser/ui/webui/webui_webview_browsertest.cc
index 784d662..df45cac5 100644
--- a/chrome/browser/ui/webui/webui_webview_browsertest.cc
+++ b/chrome/browser/ui/webui/webui_webview_browsertest.cc
@@ -4,6 +4,7 @@
 
 #include "base/macros.h"
 #include "base/path_service.h"
+#include "base/strings/utf_string_conversions.h"
 #include "build/build_config.h"
 #include "chrome/app/chrome_command_ids.h"
 #include "chrome/browser/renderer_context_menu/render_view_context_menu_test_util.h"
@@ -14,9 +15,83 @@
 #include "chrome/common/url_constants.h"
 #include "chrome/test/base/ui_test_utils.h"
 #include "chrome/test/base/web_ui_browser_test.h"
+#include "content/public/browser/render_view_host.h"
+#include "content/public/browser/web_contents.h"
 #include "content/public/common/context_menu_params.h"
+#include "content/public/common/drop_data.h"
+#include "content/public/test/browser_test_utils.h"
+#include "extensions/test/extension_test_message_listener.h"
 #include "net/test/embedded_test_server/embedded_test_server.h"
 
+#if !defined(OS_CHROMEOS) && defined(USE_AURA)
+#include "ui/aura/window.h"
+
+namespace {
+
+class WebUIMessageListener : public base::SupportsWeakPtr<WebUIMessageListener>{
+ public:
+  WebUIMessageListener(content::WebUI* web_ui, const std::string& message)
+      : message_loop_(new content::MessageLoopRunner) {
+    web_ui->RegisterMessageCallback(
+        message, base::Bind(&WebUIMessageListener::HandleMessage,
+                            AsWeakPtr()));
+  }
+  bool Wait() {
+    message_loop_->Run();
+    return true;
+  }
+
+ private:
+  void HandleMessage(const base::ListValue* test_result) {
+    message_loop_->Quit();
+  }
+
+  scoped_refptr<content::MessageLoopRunner> message_loop_;
+
+  DISALLOW_COPY_AND_ASSIGN(WebUIMessageListener);
+};
+
+class DNDToInputNavigationObserver : public content::WebContentsObserver {
+ public:
+  explicit DNDToInputNavigationObserver(content::WebContents* web_contents) {
+    Observe(web_contents);
+  }
+  void DidFinishNavigation(
+      content::NavigationHandle* navigation_handle) override {
+    navigated = true;
+  }
+  bool Navigated() const { return navigated; }
+
+ private:
+  bool navigated = false;
+
+  DISALLOW_COPY_AND_ASSIGN(DNDToInputNavigationObserver);
+};
+
+int ExecuteHostScriptAndExtractInt(content::WebContents* web_contents,
+                                   const std::string& script) {
+  int result;
+  EXPECT_TRUE(content::ExecuteScriptAndExtractInt(
+      web_contents, "window.domAutomationController.send(" + script + ");",
+      &result));
+  return result;
+}
+
+int ExecuteGuestScriptAndExtractInt(content::WebContents* web_contents,
+                                    const std::string& web_view_id,
+                                    const std::string& script) {
+  int result;
+  EXPECT_TRUE(content::ExecuteScriptAndExtractInt(
+      web_contents,
+      "document.getElementById('" + web_view_id + "').executeScript({ "
+          "code: '" + script + "' }, function (results) {"
+          " window.domAutomationController.send(results[0]);});",
+      &result));
+  return result;
+}
+}  // namespace
+#endif
+
 class WebUIWebViewBrowserTest : public WebUIBrowserTest {
  public:
   WebUIWebViewBrowserTest() {}
@@ -182,3 +257,96 @@
       params);
   EXPECT_FALSE(menu.IsItemPresent(IDC_CONTENT_CONTEXT_INSPECTELEMENT));
 }
+
+#if !defined(OS_CHROMEOS) && defined(USE_AURA)
+IN_PROC_BROWSER_TEST_F(WebUIWebViewBrowserTest, DragAndDropToInput) {
+  ui_test_utils::NavigateToURL(browser(), GetWebViewEnabledWebUIURL());
+  ASSERT_TRUE(
+      WebUIBrowserTest::RunJavascriptAsyncTest("testDragAndDropToInput"));
+
+  content::WebContents* const embedder_web_contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
+
+  // Flush any pending events to make sure we start with a clean slate.
+  content::RunAllPendingInMessageLoop();
+  content::RenderViewHost* const render_view_host =
+      embedder_web_contents->GetRenderViewHost();
+
+  gfx::NativeView view = embedder_web_contents->GetNativeView();
+  view->SetBounds(gfx::Rect(0, 0, 400, 400));
+
+  const gfx::Rect webview_rect(
+      ExecuteHostScriptAndExtractInt(embedder_web_contents,
+                                     "webview.offsetLeft"),
+      ExecuteHostScriptAndExtractInt(embedder_web_contents,
+                                     "webview.offsetTop"),
+      ExecuteHostScriptAndExtractInt(embedder_web_contents,
+                                     "webview.offsetWidth"),
+      ExecuteHostScriptAndExtractInt(embedder_web_contents,
+                                     "webview.offsetHeight"));
+
+  const gfx::Rect guest_dest_rect(
+      ExecuteGuestScriptAndExtractInt(embedder_web_contents, "webview",
+                                      "destNode.offsetLeft"),
+      ExecuteGuestScriptAndExtractInt(embedder_web_contents, "webview",
+                                      "destNode.offsetTop"),
+      ExecuteGuestScriptAndExtractInt(embedder_web_contents, "webview",
+                                      "destNode.offsetWidth"),
+      ExecuteGuestScriptAndExtractInt(embedder_web_contents, "webview",
+                                      "destNode.offsetHeight"));
+  const gfx::Point client_pt(
+      guest_dest_rect.x() + guest_dest_rect.width() / 2 + webview_rect.x(),
+      guest_dest_rect.y() + guest_dest_rect.height() / 2 + webview_rect.y());
+  gfx::Rect container_bounds = embedder_web_contents->GetContainerBounds();
+  const gfx::Point screen_pt(container_bounds.x(), container_bounds.y());
+  const blink::WebDragOperationsMask drag_operation_mask =
+      static_cast<blink::WebDragOperationsMask>(blink::WebDragOperationCopy |
+                                     blink::WebDragOperationLink |
+                                     blink::WebDragOperationMove);
+
+  // Drag url into input in webview.
+
+  {
+    EXPECT_TRUE(content::ExecuteScript(embedder_web_contents,
+                                       "console.log('step1: Drag Enter')"));
+
+    content::DropData dropdata;
+    dropdata.did_originate_from_renderer = true;
+    dropdata.url = GURL(url::kAboutBlankURL);
+    dropdata.url_title = base::string16(base::ASCIIToUTF16("Drop me"));
+
+    WebUIMessageListener listener(embedder_web_contents->GetWebUI(),
+                                  "Step1: destNode gets dragenter");
+    render_view_host->DragTargetDragEnter(dropdata, client_pt, screen_pt,
+                                          drag_operation_mask,
+                                          blink::WebInputEvent::LeftButtonDown);
+    ASSERT_TRUE(listener.Wait());
+  }
+
+  {
+    EXPECT_TRUE(content::ExecuteScript(embedder_web_contents,
+                                       "console.log('step2: Drag Over')"));
+
+    WebUIMessageListener listener(embedder_web_contents->GetWebUI(),
+                                  "Step2: destNode gets dragover");
+    render_view_host->DragTargetDragOver(client_pt, screen_pt,
+                                         drag_operation_mask,
+                                         blink::WebInputEvent::LeftButtonDown);
+    ASSERT_TRUE(listener.Wait());
+  }
+
+  {
+    EXPECT_TRUE(content::ExecuteScript(embedder_web_contents,
+                                       "console.log('step3: Drop')"));
+
+    DNDToInputNavigationObserver observer(embedder_web_contents);
+    WebUIMessageListener listener(embedder_web_contents->GetWebUI(),
+                                  "Step3: destNode gets drop");
+    render_view_host->DragTargetDrop(client_pt, screen_pt, 0);
+    ASSERT_TRUE(listener.Wait());
+    // Confirm no navigation
+    EXPECT_FALSE(observer.Navigated());
+    EXPECT_EQ(GetWebViewEnabledWebUIURL(), embedder_web_contents->GetURL());
+  }
+}
+#endif
diff --git a/chrome/child/pdf_child_init.cc b/chrome/child/pdf_child_init.cc
index 1df57329..873e352f 100644
--- a/chrome/child/pdf_child_init.cc
+++ b/chrome/child/pdf_child_init.cc
@@ -12,6 +12,7 @@
 #include "content/public/child/child_thread.h"
 
 #if defined(OS_WIN)
+#include "base/win/current_module.h"
 #include "base/win/iat_patch_function.h"
 #endif
 
@@ -64,16 +65,11 @@
 
 }  // namespace
 
-#if defined(OS_WIN)
-// http://blogs.msdn.com/oldnewthing/archive/2004/10/25/247180.aspx
-extern "C" IMAGE_DOS_HEADER __ImageBase;
-#endif  // OS_WIN
-
 void InitializePDF() {
 #if defined(OS_WIN)
   // Need to patch a few functions for font loading to work correctly. This can
   // be removed once we switch PDF to use Skia.
-  HMODULE current_module = reinterpret_cast<HMODULE>(&__ImageBase);
+  HMODULE current_module = CURRENT_MODULE();
   g_iat_patch_createdca.PatchFromModule(current_module, "gdi32.dll",
                                         "CreateDCA", CreateDCAPatch);
   g_iat_patch_get_font_data.PatchFromModule(current_module, "gdi32.dll",
diff --git a/chrome/installer/util/module_util_win.cc b/chrome/installer/util/module_util_win.cc
index 12366fa..3a8df19 100644
--- a/chrome/installer/util/module_util_win.cc
+++ b/chrome/installer/util/module_util_win.cc
@@ -13,6 +13,7 @@
 #include "base/strings/string16.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/version.h"
+#include "base/win/current_module.h"
 
 namespace installer {
 
@@ -21,7 +22,7 @@
 // Returns the version in the current executable's version resource.
 base::string16 GetCurrentExecutableVersion() {
   scoped_ptr<FileVersionInfo> file_version_info(
-      CREATE_FILE_VERSION_INFO_FOR_CURRENT_MODULE());
+      FileVersionInfo::CreateFileVersionInfoForModule(CURRENT_MODULE()));
   DCHECK(file_version_info.get());
   base::string16 version_string(file_version_info->file_version());
   DCHECK(base::Version(base::UTF16ToASCII(version_string)).IsValid());
diff --git a/chrome/renderer/net/net_error_helper.cc b/chrome/renderer/net/net_error_helper.cc
index 3a3c71f..07087b7 100644
--- a/chrome/renderer/net/net_error_helper.cc
+++ b/chrome/renderer/net/net_error_helper.cc
@@ -305,7 +305,10 @@
 }
 
 void NetErrorHelper::ReloadPage(bool ignore_cache) {
-  render_frame()->GetWebFrame()->reload(ignore_cache);
+  // TODO(crbug.com/599364): Rename |ignore_cache| or change it to enum.
+  render_frame()->GetWebFrame()->reload(
+      ignore_cache ? blink::WebFrameLoadType::ReloadBypassingCache
+                   : blink::WebFrameLoadType::Reload);
 }
 
 void NetErrorHelper::LoadPageFromCache(const GURL& page_url) {
diff --git a/chrome/test/data/webui/draganddroptoinput.js b/chrome/test/data/webui/draganddroptoinput.js
new file mode 100644
index 0000000..6ea533f
--- /dev/null
+++ b/chrome/test/data/webui/draganddroptoinput.js
@@ -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.
+
+console.log('start guest js');
+
+var embedder = null;
+window.addEventListener('message', function (e) {
+  var data = JSON.parse(e.data)[0];
+  window.console.log('guest gets message ' + data)
+  if (data == 'create-channel') {
+    embedder = e.source;
+    doPostMessage('connected');
+  }
+});
+
+var doPostMessage = function (msg) {
+  window.console.log('guest posts message: ' + msg);
+  embedder.postMessage(JSON.stringify([msg]), '*');
+};
+
+document.body.style.background = '#EEEEEE';
+document.body.innerHTML +=
+    '<input class="destination" id="dest">destination</input>';
+
+var destNode = document.getElementById('dest');
+var testStep = 0;
+destNode.addEventListener('dragenter', function (e) {
+  console.log('node drag enter');
+  if (testStep == 0) {
+    doPostMessage('Step1: destNode gets dragenter');
+    testStep = 1;
+  }
+});
+
+destNode.addEventListener('dragover', function (e) {
+  if (testStep == 1) {
+    doPostMessage('Step2: destNode gets dragover');
+    testStep = 2;
+  }
+});
+
+destNode.addEventListener('drop', function (e) {
+  if (testStep == 2) {
+    doPostMessage('Step3: destNode gets drop');
+    testStep = 3;
+  }
+});
+
+console.log('finish guest js');
\ No newline at end of file
diff --git a/chrome/test/data/webui/webview_content_script_test.js b/chrome/test/data/webui/webview_content_script_test.js
index b5a2daf4..61df885 100644
--- a/chrome/test/data/webui/webview_content_script_test.js
+++ b/chrome/test/data/webui/webview_content_script_test.js
@@ -488,3 +488,50 @@
   webview.src = url;
   document.body.appendChild(webview);
 }
+
+function testDragAndDropToInput() {
+  var css = document.createElement("style");
+  css.type = "text/css";
+  css.innerHTML = "html, body { height: 400px }";
+  document.body.appendChild(css);
+
+  var contents = document.getElementById("contents");
+  while (contents.childElementCount) {
+    contents.removeChild(contents.firstChild);
+  }
+  var webview = document.createElement('webview');
+
+  webview.id = 'webview';
+  webview.style = "width:640px; height:480px";
+
+  window.addEventListener('message', function (e) {
+    var data = JSON.parse(e.data)[0];
+    console.log("get message: " + data);
+    if (data === "connected") {
+      chrome.send('testResult', [true]);
+      return;
+    }
+
+    chrome.send(data);
+  });
+
+  webview.addEventListener('loadstop', function (e) {
+    if (webview.src != 'about:blank')
+      return;
+    console.log("load stop of src = :" + webview.src);
+    webview.executeScript({ file: 'test/draganddroptoinput.js' },
+      function (results) {
+      console.log("finish guest load");
+      webview.contentWindow.postMessage(
+        JSON.stringify(['create-channel']), '*');
+    });
+  });
+
+  // For debug messages from guests.
+  webview.addEventListener('consolemessage', function (e) {
+    console.log('[Guest]: ' + e.message);
+  });
+
+  webview.src = 'about:blank';
+  contents.appendChild(webview);
+}
diff --git a/chrome_elf/blacklist/test/blacklist_test.cc b/chrome_elf/blacklist/test/blacklist_test.cc
index cdf7b290..35b8805 100644
--- a/chrome_elf/blacklist/test/blacklist_test.cc
+++ b/chrome_elf/blacklist/test/blacklist_test.cc
@@ -9,6 +9,7 @@
 #include "base/files/scoped_temp_dir.h"
 #include "base/i18n/case_conversion.h"
 #include "base/macros.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/path_service.h"
 #include "base/scoped_native_library.h"
 #include "base/strings/string16.h"
diff --git a/components/autofill/core/browser/autofill_client.h b/components/autofill/core/browser/autofill_client.h
index 9d651ba2..a0e1b10 100644
--- a/components/autofill/core/browser/autofill_client.h
+++ b/components/autofill/core/browser/autofill_client.h
@@ -9,6 +9,7 @@
 
 #include "base/callback_forward.h"
 #include "base/i18n/rtl.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "base/strings/string16.h"
 #include "base/values.h"
diff --git a/components/browser_watcher/window_hang_monitor_win_unittest.cc b/components/browser_watcher/window_hang_monitor_win_unittest.cc
index 66b3350..4ca6e38 100644
--- a/components/browser_watcher/window_hang_monitor_win_unittest.cc
+++ b/components/browser_watcher/window_hang_monitor_win_unittest.cc
@@ -7,6 +7,7 @@
 #include "base/base_paths.h"
 #include "base/base_switches.h"
 #include "base/command_line.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/path_service.h"
 #include "base/process/launch.h"
 #include "base/process/process.h"
diff --git a/components/dom_distiller/core/page_features.cc b/components/dom_distiller/core/page_features.cc
index fffe52d..e28cf01c 100644
--- a/components/dom_distiller/core/page_features.cc
+++ b/components/dom_distiller/core/page_features.cc
@@ -9,6 +9,7 @@
 #include <string>
 
 #include "base/json/json_reader.h"
+#include "base/memory/scoped_ptr.h"
 #include "third_party/re2/src/re2/re2.h"
 #include "url/gurl.h"
 
diff --git a/components/domain_reliability/scheduler.h b/components/domain_reliability/scheduler.h
index 34ee4c5..3810e3a 100644
--- a/components/domain_reliability/scheduler.h
+++ b/components/domain_reliability/scheduler.h
@@ -10,6 +10,7 @@
 #include <vector>
 
 #include "base/callback.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/memory/scoped_vector.h"
 #include "base/time/time.h"
 #include "components/domain_reliability/domain_reliability_export.h"
diff --git a/components/guest_view/browser/guest_view_manager.h b/components/guest_view/browser/guest_view_manager.h
index aa9627a2..8eaefb3a 100644
--- a/components/guest_view/browser/guest_view_manager.h
+++ b/components/guest_view/browser/guest_view_manager.h
@@ -12,6 +12,7 @@
 #include "base/bind.h"
 #include "base/lazy_instance.h"
 #include "base/macros.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "content/public/browser/browser_plugin_guest_manager.h"
 #include "content/public/browser/site_instance.h"
diff --git a/components/metrics/metrics_log.cc b/components/metrics/metrics_log.cc
index 789da55..32db4184 100644
--- a/components/metrics/metrics_log.cc
+++ b/components/metrics/metrics_log.cc
@@ -40,8 +40,7 @@
 #endif
 
 #if defined(OS_WIN)
-// http://blogs.msdn.com/oldnewthing/archive/2004/10/25/247180.aspx
-extern "C" IMAGE_DOS_HEADER __ImageBase;
+#include "base/win/current_module.h"
 #endif
 
 using base::SampleCountIterator;
@@ -349,7 +348,7 @@
   hardware->set_cpu_architecture(base::SysInfo::OperatingSystemArchitecture());
   hardware->set_system_ram_mb(base::SysInfo::AmountOfPhysicalMemoryMB());
 #if defined(OS_WIN)
-  hardware->set_dll_base(reinterpret_cast<uint64_t>(&__ImageBase));
+  hardware->set_dll_base(reinterpret_cast<uint64_t>(CURRENT_MODULE()));
 #endif
 
 #if defined(OVERRIDE_OS_NAME_TO_BLIMP)
diff --git a/components/nacl/browser/nacl_browser.h b/components/nacl/browser/nacl_browser.h
index 922d121..4381485 100644
--- a/components/nacl/browser/nacl_browser.h
+++ b/components/nacl/browser/nacl_browser.h
@@ -13,6 +13,7 @@
 #include "base/containers/mru_cache.h"
 #include "base/files/file.h"
 #include "base/macros.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/memory/singleton.h"
 #include "base/memory/weak_ptr.h"
 #include "base/time/time.h"
diff --git a/components/nacl/browser/pnacl_host.h b/components/nacl/browser/pnacl_host.h
index c3da05c..2a0bb87 100644
--- a/components/nacl/browser/pnacl_host.h
+++ b/components/nacl/browser/pnacl_host.h
@@ -12,6 +12,7 @@
 #include "base/callback_forward.h"
 #include "base/files/file.h"
 #include "base/macros.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/memory/singleton.h"
 #include "base/memory/weak_ptr.h"
 #include "base/threading/thread_checker.h"
diff --git a/components/power/origin_power_map.h b/components/power/origin_power_map.h
index 037f717..c02b2b4 100644
--- a/components/power/origin_power_map.h
+++ b/components/power/origin_power_map.h
@@ -9,6 +9,7 @@
 
 #include "base/callback_list.h"
 #include "base/macros.h"
+#include "base/memory/scoped_ptr.h"
 #include "components/keyed_service/core/keyed_service.h"
 #include "url/gurl.h"
 
diff --git a/components/sessions/core/base_session_service.h b/components/sessions/core/base_session_service.h
index b770562..bf389a4 100644
--- a/components/sessions/core/base_session_service.h
+++ b/components/sessions/core/base_session_service.h
@@ -8,6 +8,7 @@
 #include "base/callback.h"
 #include "base/files/file_path.h"
 #include "base/macros.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/memory/scoped_vector.h"
 #include "base/memory/weak_ptr.h"
 #include "base/task/cancelable_task_tracker.h"
diff --git a/components/user_manager/user.cc b/components/user_manager/user.cc
index f84767c..fc7b56c2 100644
--- a/components/user_manager/user.cc
+++ b/components/user_manager/user.cc
@@ -136,7 +136,7 @@
 }
 
 const gfx::ImageSkia& User::GetImage() const {
-  return user_image_.image();
+  return user_image_->image();
 }
 
 const AccountId& User::GetAccountId() const {
@@ -224,7 +224,8 @@
   return new PublicAccountUser(account_id);
 }
 
-User::User(const AccountId& account_id) : account_id_(account_id) {}
+User::User(const AccountId& account_id) : account_id_(account_id),
+                                          user_image_(new UserImage) {}
 
 User::~User() {
 }
@@ -233,22 +234,22 @@
   account_locale_.reset(new std::string(resolved_account_locale));
 }
 
-void User::SetImage(const UserImage& user_image, int image_index) {
-  user_image_ = user_image;
+void User::SetImage(scoped_ptr<UserImage> user_image, int image_index) {
+  user_image_ = std::move(user_image);
   image_index_ = image_index;
   image_is_stub_ = false;
   image_is_loading_ = false;
-  DCHECK(HasDefaultImage() || user_image.has_image_bytes());
+  DCHECK(HasDefaultImage() || user_image_->has_image_bytes());
 }
 
 void User::SetImageURL(const GURL& image_url) {
-  user_image_.set_url(image_url);
+  user_image_->set_url(image_url);
 }
 
-void User::SetStubImage(const UserImage& stub_user_image,
+void User::SetStubImage(scoped_ptr<UserImage> stub_user_image,
                         int image_index,
                         bool is_loading) {
-  user_image_ = stub_user_image;
+  user_image_ = std::move(stub_user_image);
   image_index_ = image_index;
   image_is_stub_ = true;
   image_is_loading_ = is_loading;
diff --git a/components/user_manager/user.h b/components/user_manager/user.h
index df3d5cbc..67b62fe 100644
--- a/components/user_manager/user.h
+++ b/components/user_manager/user.h
@@ -127,19 +127,19 @@
   bool HasDefaultImage() const;
 
   int image_index() const { return image_index_; }
-  bool has_image_bytes() const { return user_image_.has_image_bytes(); }
+  bool has_image_bytes() const { return user_image_->has_image_bytes(); }
   // Returns bytes representation of static user image for WebUI.
   const UserImage::Bytes& image_bytes() const {
-    return user_image_.image_bytes();
+    return user_image_->image_bytes();
   }
 
   // Whether |user_image_| contains data in format that is considered safe to
   // decode in sensitive environment (on Login screen).
-  bool image_is_safe_format() const { return user_image_.is_safe_format(); }
+  bool image_is_safe_format() const { return user_image_->is_safe_format(); }
 
   // Returns the URL of user image, if there is any. Currently only the profile
   // image has a URL, for other images empty URL is returned.
-  GURL image_url() const { return user_image_.url(); }
+  GURL image_url() const { return user_image_->url(); }
 
   // True if user image is a stub (while real image is being loaded from file).
   bool image_is_stub() const { return image_is_stub_; }
@@ -199,14 +199,14 @@
   // Setters are private so only UserManager can call them.
   void SetAccountLocale(const std::string& resolved_account_locale);
 
-  void SetImage(const UserImage& user_image, int image_index);
+  void SetImage(scoped_ptr<UserImage> user_image, int image_index);
 
   void SetImageURL(const GURL& image_url);
 
   // Sets a stub image until the next |SetImage| call. |image_index| may be
   // one of |USER_IMAGE_EXTERNAL| or |USER_IMAGE_PROFILE|.
   // If |is_loading| is |true|, that means user image is being loaded from file.
-  void SetStubImage(const UserImage& stub_user_image,
+  void SetStubImage(scoped_ptr<UserImage> stub_user_image,
                     int image_index,
                     bool is_loading);
 
@@ -224,7 +224,7 @@
 
   void set_using_saml(const bool using_saml) { using_saml_ = using_saml; }
 
-  const UserImage& user_image() const { return user_image_; }
+  const UserImage& user_image() const { return *user_image_; }
 
   void set_oauth_token_status(OAuthTokenStatus status) {
     oauth_token_status_ = status;
@@ -258,7 +258,7 @@
   // The displayed user email, defaults to |email_|.
   std::string display_email_;
   bool using_saml_ = false;
-  UserImage user_image_;
+  scoped_ptr<UserImage> user_image_;
   OAuthTokenStatus oauth_token_status_ = OAUTH_TOKEN_STATUS_UNKNOWN;
   bool force_online_signin_ = false;
 
diff --git a/components/user_manager/user_image/user_image.cc b/components/user_manager/user_image/user_image.cc
index 10cd4482..ce37ca2 100644
--- a/components/user_manager/user_image/user_image.cc
+++ b/components/user_manager/user_image/user_image.cc
@@ -37,17 +37,18 @@
 }
 
 // static
-UserImage UserImage::CreateAndEncode(const gfx::ImageSkia& image) {
+scoped_ptr<UserImage> UserImage::CreateAndEncode(const gfx::ImageSkia& image) {
   if (image.isNull())
-    return UserImage();
+    return make_scoped_ptr(new UserImage);
 
   scoped_ptr<Bytes> image_bytes = Encode(*image.bitmap());
   if (image_bytes) {
-    UserImage result(image, *image_bytes);
-    result.MarkAsSafe();
+    // TODO(crbug.com/593251): Remove the data copy via |image_bytes|.
+    scoped_ptr<UserImage> result(new UserImage(image, *image_bytes));
+    result->MarkAsSafe();
     return result;
   }
-  return UserImage(image);
+  return make_scoped_ptr(new UserImage(image));
 }
 
 UserImage::UserImage()
diff --git a/components/user_manager/user_image/user_image.h b/components/user_manager/user_image/user_image.h
index d6621be..0d3e244 100644
--- a/components/user_manager/user_image/user_image.h
+++ b/components/user_manager/user_image/user_image.h
@@ -29,9 +29,9 @@
   static scoped_ptr<Bytes> Encode(const SkBitmap& bitmap);
 
   // Creates a new instance from a given still frame and tries to encode it
-  // to bytes representation for WebUI.
+  // to bytes representation for WebUI. Always returns a non-null result.
   // TODO(ivankr): remove eventually.
-  static UserImage CreateAndEncode(const gfx::ImageSkia& image);
+  static scoped_ptr<UserImage> CreateAndEncode(const gfx::ImageSkia& image);
 
   // Create instance with an empty still frame and no bytes
   // representation for WebUI.
@@ -43,6 +43,7 @@
 
   // Creates a new instance from a given still frame and bytes
   // representation for WebUI.
+  // TODO(crbug.com/593251): Remove the data copy via |image_bytes|.
   UserImage(const gfx::ImageSkia& image, const Bytes& image_bytes);
 
   virtual ~UserImage();
@@ -76,6 +77,8 @@
   // If image was loaded from the local file, file path is stored here.
   base::FilePath file_path_;
   bool is_safe_format_;
+
+  DISALLOW_COPY_AND_ASSIGN(UserImage);
 };
 
 }  // namespace user_manager
diff --git a/components/wallpaper/wallpaper_manager_base.cc b/components/wallpaper/wallpaper_manager_base.cc
index eabe252c..a1538c4 100644
--- a/components/wallpaper/wallpaper_manager_base.cc
+++ b/components/wallpaper/wallpaper_manager_base.cc
@@ -910,17 +910,19 @@
 void WallpaperManagerBase::OnCustomizedDefaultWallpaperDecoded(
     const GURL& wallpaper_url,
     scoped_ptr<CustomizedWallpaperRescaledFiles> rescaled_files,
-    const user_manager::UserImage& wallpaper) {
+    scoped_ptr<user_manager::UserImage> wallpaper) {
   DCHECK(thread_checker_.CalledOnValidThread());
 
   // If decoded wallpaper is empty, we have probably failed to decode the file.
-  if (wallpaper.image().isNull()) {
+  if (wallpaper->image().isNull()) {
     LOG(WARNING) << "Failed to decode customized wallpaper.";
     return;
   }
 
-  wallpaper.image().EnsureRepsForSupportedScales();
-  scoped_ptr<gfx::ImageSkia> deep_copy(wallpaper.image().DeepCopy());
+  wallpaper->image().EnsureRepsForSupportedScales();
+  // TODO(crbug.com/593251): DeepCopy() may be unnecessary as this function
+  // owns |wallpaper| as scoped_ptr whereas it used to be a const reference.
+  scoped_ptr<gfx::ImageSkia> deep_copy(wallpaper->image().DeepCopy());
 
   scoped_ptr<bool> success(new bool(false));
   scoped_ptr<gfx::ImageSkia> small_wallpaper_image(new gfx::ImageSkia);
@@ -929,7 +931,8 @@
   // TODO(bshe): This may break if Bytes becomes RefCountedMemory.
   base::Closure resize_closure = base::Bind(
       &WallpaperManagerBase::ResizeCustomizedDefaultWallpaper,
-      base::Passed(&deep_copy), wallpaper.image_bytes(),
+      // TODO(crbug.com/593251): Remove the data copy via image_bytes().
+      base::Passed(&deep_copy), wallpaper->image_bytes(),
       base::Unretained(rescaled_files.get()), base::Unretained(success.get()),
       base::Unretained(small_wallpaper_image.get()),
       base::Unretained(large_wallpaper_image.get()));
diff --git a/components/wallpaper/wallpaper_manager_base.h b/components/wallpaper/wallpaper_manager_base.h
index 80aa6b1..f27e465 100644
--- a/components/wallpaper/wallpaper_manager_base.h
+++ b/components/wallpaper/wallpaper_manager_base.h
@@ -476,7 +476,7 @@
       WallpaperLayout layout,
       bool update_wallpaper,
       MovableOnDestroyCallbackHolder on_finish,
-      const user_manager::UserImage& user_image) = 0;
+      scoped_ptr<user_manager::UserImage> user_image) = 0;
 
   // Creates new PendingWallpaper request (or updates currently pending).
   virtual void ScheduleSetUserWallpaper(const AccountId& account_id,
@@ -518,7 +518,7 @@
   virtual void OnCustomizedDefaultWallpaperDecoded(
       const GURL& wallpaper_url,
       scoped_ptr<CustomizedWallpaperRescaledFiles> rescaled_files,
-      const user_manager::UserImage& user_image);
+      scoped_ptr<user_manager::UserImage> user_image);
 
   // Check the result of ResizeCustomizedDefaultWallpaper and finally
   // apply Customized Default Wallpaper.
@@ -540,7 +540,7 @@
       const WallpaperLayout layout,
       scoped_ptr<user_manager::UserImage>* result,
       MovableOnDestroyCallbackHolder on_finish,
-      const user_manager::UserImage& user_image) = 0;
+      scoped_ptr<user_manager::UserImage> user_image) = 0;
 
   // Start decoding given default wallpaper.
   virtual void StartLoadAndSetDefaultWallpaper(
diff --git a/content/browser/accessibility/browser_accessibility_state_impl_win.cc b/content/browser/accessibility/browser_accessibility_state_impl_win.cc
index 1409b0f1..1267770 100644
--- a/content/browser/accessibility/browser_accessibility_state_impl_win.cc
+++ b/content/browser/accessibility/browser_accessibility_state_impl_win.cc
@@ -10,6 +10,7 @@
 
 #include "base/files/file_path.h"
 #include "base/macros.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/metrics/histogram.h"
 #include "base/strings/string_util.h"
 
diff --git a/content/browser/fileapi/dragged_file_util_unittest.cc b/content/browser/fileapi/dragged_file_util_unittest.cc
index 07c983b..63ba54ab 100644
--- a/content/browser/fileapi/dragged_file_util_unittest.cc
+++ b/content/browser/fileapi/dragged_file_util_unittest.cc
@@ -15,6 +15,7 @@
 #include "base/files/scoped_temp_dir.h"
 #include "base/logging.h"
 #include "base/macros.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/message_loop/message_loop.h"
 #include "base/time/time.h"
 #include "build/build_config.h"
diff --git a/content/browser/fileapi/file_system_quota_client_unittest.cc b/content/browser/fileapi/file_system_quota_client_unittest.cc
index e3a24c2..a1e4f8d0 100644
--- a/content/browser/fileapi/file_system_quota_client_unittest.cc
+++ b/content/browser/fileapi/file_system_quota_client_unittest.cc
@@ -8,6 +8,7 @@
 #include "base/files/file_util.h"
 #include "base/files/scoped_temp_dir.h"
 #include "base/macros.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/run_loop.h"
 #include "content/public/test/async_file_test_helper.h"
 #include "content/public/test/test_file_system_context.h"
diff --git a/content/browser/fileapi/local_file_util_unittest.cc b/content/browser/fileapi/local_file_util_unittest.cc
index 28ff6b3..071a122 100644
--- a/content/browser/fileapi/local_file_util_unittest.cc
+++ b/content/browser/fileapi/local_file_util_unittest.cc
@@ -11,6 +11,7 @@
 #include "base/files/file_util.h"
 #include "base/files/scoped_temp_dir.h"
 #include "base/macros.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/run_loop.h"
 #include "base/strings/sys_string_conversions.h"
 #include "base/strings/utf_string_conversions.h"
diff --git a/content/browser/fileapi/recursive_operation_delegate_unittest.cc b/content/browser/fileapi/recursive_operation_delegate_unittest.cc
index abcdf54e..8c00f0c7 100644
--- a/content/browser/fileapi/recursive_operation_delegate_unittest.cc
+++ b/content/browser/fileapi/recursive_operation_delegate_unittest.cc
@@ -11,6 +11,7 @@
 #include "base/files/scoped_temp_dir.h"
 #include "base/location.h"
 #include "base/macros.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/run_loop.h"
 #include "base/single_thread_task_runner.h"
 #include "base/thread_task_runner_handle.h"
diff --git a/content/browser/fileapi/sandbox_origin_database_unittest.cc b/content/browser/fileapi/sandbox_origin_database_unittest.cc
index 8338304..ce89ae6 100644
--- a/content/browser/fileapi/sandbox_origin_database_unittest.cc
+++ b/content/browser/fileapi/sandbox_origin_database_unittest.cc
@@ -15,6 +15,7 @@
 #include "base/files/file_util.h"
 #include "base/files/scoped_temp_dir.h"
 #include "base/macros.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/stl_util.h"
 #include "content/browser/fileapi/sandbox_database_test_helper.h"
 #include "storage/browser/fileapi/sandbox_origin_database.h"
diff --git a/content/browser/fileapi/upload_file_system_file_element_reader.h b/content/browser/fileapi/upload_file_system_file_element_reader.h
index 5510ce5..cba9fa79 100644
--- a/content/browser/fileapi/upload_file_system_file_element_reader.h
+++ b/content/browser/fileapi/upload_file_system_file_element_reader.h
@@ -8,6 +8,7 @@
 #include <stdint.h>
 
 #include "base/macros.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "base/time/time.h"
 #include "content/common/content_export.h"
diff --git a/content/browser/frame_host/navigation_handle_impl.h b/content/browser/frame_host/navigation_handle_impl.h
index f99e6f91..c19ed16 100644
--- a/content/browser/frame_host/navigation_handle_impl.h
+++ b/content/browser/frame_host/navigation_handle_impl.h
@@ -11,7 +11,6 @@
 
 #include "base/callback.h"
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/scoped_vector.h"
 #include "content/browser/frame_host/frame_tree_node.h"
 #include "content/browser/frame_host/render_frame_host_impl.h"
diff --git a/content/browser/gpu/gpu_process_host.h b/content/browser/gpu/gpu_process_host.h
index 9b9fd914..1d8053b 100644
--- a/content/browser/gpu/gpu_process_host.h
+++ b/content/browser/gpu/gpu_process_host.h
@@ -15,6 +15,7 @@
 #include "base/callback.h"
 #include "base/containers/hash_tables.h"
 #include "base/macros.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "base/threading/non_thread_safe.h"
 #include "base/time/time.h"
diff --git a/content/browser/quota/quota_backend_impl_unittest.cc b/content/browser/quota/quota_backend_impl_unittest.cc
index 516cab3..5dfa0371 100644
--- a/content/browser/quota/quota_backend_impl_unittest.cc
+++ b/content/browser/quota/quota_backend_impl_unittest.cc
@@ -10,6 +10,7 @@
 
 #include "base/files/scoped_temp_dir.h"
 #include "base/macros.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/thread_task_runner_handle.h"
 #include "storage/browser/fileapi/file_system_usage_cache.h"
 #include "storage/browser/fileapi/obfuscated_file_util.h"
diff --git a/content/browser/quota/quota_reservation_manager_unittest.cc b/content/browser/quota/quota_reservation_manager_unittest.cc
index d2588e1..2a9d2e4 100644
--- a/content/browser/quota/quota_reservation_manager_unittest.cc
+++ b/content/browser/quota/quota_reservation_manager_unittest.cc
@@ -12,6 +12,7 @@
 #include "base/files/scoped_temp_dir.h"
 #include "base/location.h"
 #include "base/macros.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/run_loop.h"
 #include "base/single_thread_task_runner.h"
 #include "base/thread_task_runner_handle.h"
diff --git a/content/browser/renderer_host/pepper/quota_reservation.cc b/content/browser/renderer_host/pepper/quota_reservation.cc
index 5343cbd1..518421a 100644
--- a/content/browser/renderer_host/pepper/quota_reservation.cc
+++ b/content/browser/renderer_host/pepper/quota_reservation.cc
@@ -6,6 +6,7 @@
 
 #include "base/bind.h"
 #include "base/callback.h"
+#include "base/memory/scoped_ptr.h"
 #include "content/public/browser/browser_thread.h"
 #include "storage/browser/fileapi/file_system_operation_runner.h"
 #include "storage/browser/fileapi/quota/open_file_handle.h"
diff --git a/content/browser/renderer_host/pepper/quota_reservation_unittest.cc b/content/browser/renderer_host/pepper/quota_reservation_unittest.cc
index c1068db..1416587d0 100644
--- a/content/browser/renderer_host/pepper/quota_reservation_unittest.cc
+++ b/content/browser/renderer_host/pepper/quota_reservation_unittest.cc
@@ -13,6 +13,7 @@
 #include "base/files/scoped_temp_dir.h"
 #include "base/location.h"
 #include "base/macros.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/run_loop.h"
 #include "base/single_thread_task_runner.h"
 #include "base/thread_task_runner_handle.h"
diff --git a/content/browser/service_worker/embedded_worker_instance.h b/content/browser/service_worker/embedded_worker_instance.h
index 2e82a372..d84fd0b 100644
--- a/content/browser/service_worker/embedded_worker_instance.h
+++ b/content/browser/service_worker/embedded_worker_instance.h
@@ -15,6 +15,7 @@
 #include "base/logging.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/observer_list.h"
 #include "base/strings/string16.h"
diff --git a/content/browser/service_worker/service_worker_dispatcher_host.cc b/content/browser/service_worker/service_worker_dispatcher_host.cc
index 4c9d6e1..d15732d4 100644
--- a/content/browser/service_worker/service_worker_dispatcher_host.cc
+++ b/content/browser/service_worker/service_worker_dispatcher_host.cc
@@ -848,12 +848,16 @@
   if (!provider_host->IsContextAlive())
     return;
 
+  // We might not be STARTING if the stop sequence was entered (STOPPING) or
+  // ended up being detached (STOPPED).
   ServiceWorkerVersion* version = GetContext()->GetLiveVersion(version_id);
-  if (!version || version->running_status() == ServiceWorkerVersion::STOPPING)
+  if (!version || version->running_status() != ServiceWorkerVersion::STARTING)
     return;
 
-  if (!provider_host->SetHostedVersionId(version_id))
+  if (!provider_host->SetHostedVersion(version)) {
     bad_message::ReceivedBadMessage(this, bad_message::SWDH_SET_HOSTED_VERSION);
+    return;
+  }
 
   // Retrieve the registration associated with |version|. The registration
   // must be alive because the version keeps it during starting worker.
diff --git a/content/browser/service_worker/service_worker_dispatcher_host_unittest.cc b/content/browser/service_worker/service_worker_dispatcher_host_unittest.cc
index d8a370a..7c9ad083 100644
--- a/content/browser/service_worker/service_worker_dispatcher_host_unittest.cc
+++ b/content/browser/service_worker/service_worker_dispatcher_host_unittest.cc
@@ -140,6 +140,11 @@
     EXPECT_EQ(SERVICE_WORKER_OK, status);
   }
 
+  void SendSetHostedVersionId(int provider_id, int64_t version_id) {
+    dispatcher_host_->OnMessageReceived(
+        ServiceWorkerHostMsg_SetVersionId(provider_id, version_id));
+  }
+
   void SendProviderCreated(ServiceWorkerProviderType type,
                            const GURL& pattern) {
     const int64_t kProviderId = 99;
@@ -731,4 +736,29 @@
   EXPECT_EQ(ref_count, sender_worker_handle->ref_count());
 }
 
+TEST_F(ServiceWorkerDispatcherHostTest, OnSetHostedVersionId) {
+  GURL pattern = GURL("http://www.example.com/");
+  GURL script_url = GURL("http://www.example.com/service_worker.js");
+
+  Initialize(make_scoped_ptr(new FailToStartWorkerTestHelper));
+  SendProviderCreated(SERVICE_WORKER_PROVIDER_FOR_CONTROLLER, pattern);
+  SetUpRegistration(pattern, script_url);
+
+  const int64_t kProviderId = 99;  // Dummy value
+  bool called;
+  ServiceWorkerStatusCode status;
+  // StartWorker puts the worker in STARTING state but it will have no
+  // process id yet.
+  version_->StartWorker(ServiceWorkerMetrics::EventType::UNKNOWN,
+                        base::Bind(&SaveStatusCallback, &called, &status));
+  EXPECT_NE(version_->embedded_worker()->process_id(),
+            provider_host_->process_id());
+  // SendSetHostedVersionId should reject because the provider host process id
+  // is different.
+  SendSetHostedVersionId(kProviderId, version_->version_id());
+  base::RunLoop().RunUntilIdle();
+  EXPECT_FALSE(dispatcher_host_->ipc_sink()->GetUniqueMessageMatching(
+      ServiceWorkerMsg_AssociateRegistration::ID));
+}
+
 }  // namespace content
diff --git a/content/browser/service_worker/service_worker_provider_host.cc b/content/browser/service_worker/service_worker_provider_host.cc
index 2aed605a..0c8c35d8 100644
--- a/content/browser/service_worker/service_worker_provider_host.cc
+++ b/content/browser/service_worker/service_worker_provider_host.cc
@@ -185,25 +185,21 @@
       notify_controllerchange));
 }
 
-bool ServiceWorkerProviderHost::SetHostedVersionId(int64_t version_id) {
-  if (!context_)
-    return true;  // System is shutting down.
+bool ServiceWorkerProviderHost::SetHostedVersion(
+    ServiceWorkerVersion* version) {
+  // TODO(falken): Unclear why we check active_version. Should this just check
+  // that IsProviderForClient() is false?
   if (active_version())
     return false;  // Unexpected bad message.
 
-  ServiceWorkerVersion* live_version = context_->GetLiveVersion(version_id);
-  if (!live_version)
-    return true;  // Was deleted before it got started.
-
-  ServiceWorkerVersionInfo info = live_version->GetInfo();
-  if (info.running_status != ServiceWorkerVersion::STARTING ||
-      info.process_id != render_process_id_) {
+  DCHECK_EQ(ServiceWorkerVersion::STARTING, version->running_status());
+  if (version->embedded_worker()->process_id() != render_process_id_) {
     // If we aren't trying to start this version in our process
     // something is amiss.
     return false;
   }
 
-  running_hosted_version_ = live_version;
+  running_hosted_version_ = version;
   return true;
 }
 
diff --git a/content/browser/service_worker/service_worker_provider_host.h b/content/browser/service_worker/service_worker_provider_host.h
index 0434522..3f1d247 100644
--- a/content/browser/service_worker/service_worker_provider_host.h
+++ b/content/browser/service_worker/service_worker_provider_host.h
@@ -131,9 +131,9 @@
   // Clears the associated registration and stop listening to it.
   void DisassociateRegistration();
 
-  // Returns false if the version is not in the expected STARTING in our
-  // process state. That would be indicative of a bad IPC message.
-  bool SetHostedVersionId(int64_t versions_id);
+  // Returns false if we have an active version or |version| is using  a
+  // different process.  That would be indicative of a bad IPC message.
+  bool SetHostedVersion(ServiceWorkerVersion* version);
 
   // Returns a handler for a request, the handler may return NULL if
   // the request doesn't require special handling.
diff --git a/content/browser/service_worker/service_worker_request_handler.h b/content/browser/service_worker/service_worker_request_handler.h
index ea1cc78..e75a993e 100644
--- a/content/browser/service_worker/service_worker_request_handler.h
+++ b/content/browser/service_worker/service_worker_request_handler.h
@@ -6,6 +6,7 @@
 #define CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_REQUEST_HANDLER_H_
 
 #include "base/macros.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "base/supports_user_data.h"
 #include "base/time/time.h"
diff --git a/content/browser/shared_worker/shared_worker_service_impl.h b/content/browser/shared_worker/shared_worker_service_impl.h
index 2d3d9a4..4af3bbf 100644
--- a/content/browser/shared_worker/shared_worker_service_impl.h
+++ b/content/browser/shared_worker/shared_worker_service_impl.h
@@ -10,6 +10,7 @@
 #include "base/compiler_specific.h"
 #include "base/containers/scoped_ptr_hash_map.h"
 #include "base/macros.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/memory/singleton.h"
 #include "base/observer_list.h"
 #include "content/public/browser/notification_observer.h"
diff --git a/content/browser/tracing/etw_system_event_consumer_win.h b/content/browser/tracing/etw_system_event_consumer_win.h
index 9a3b2725..f14a37e 100644
--- a/content/browser/tracing/etw_system_event_consumer_win.h
+++ b/content/browser/tracing/etw_system_event_consumer_win.h
@@ -8,6 +8,7 @@
 #include "base/bind.h"
 #include "base/macros.h"
 #include "base/memory/ref_counted_memory.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/threading/thread.h"
 #include "base/trace_event/tracing_agent.h"
 #include "base/values.h"
diff --git a/content/public/browser/host_zoom_map.h b/content/public/browser/host_zoom_map.h
index aa7ef23..9146db3 100644
--- a/content/public/browser/host_zoom_map.h
+++ b/content/public/browser/host_zoom_map.h
@@ -11,6 +11,7 @@
 
 #include "base/callback.h"
 #include "base/callback_list.h"
+#include "base/memory/scoped_ptr.h"
 #include "content/common/content_export.h"
 #include "url/gurl.h"
 
diff --git a/content/public/browser/navigation_handle.h b/content/public/browser/navigation_handle.h
index f8a3b5e..cd1e6ab5 100644
--- a/content/public/browser/navigation_handle.h
+++ b/content/public/browser/navigation_handle.h
@@ -5,6 +5,7 @@
 #ifndef CONTENT_PUBLIC_BROWSER_NAVIGATION_HANDLE_H_
 #define CONTENT_PUBLIC_BROWSER_NAVIGATION_HANDLE_H_
 
+#include "base/memory/scoped_ptr.h"
 #include "content/common/content_export.h"
 #include "content/public/browser/navigation_throttle.h"
 #include "content/public/common/referrer.h"
diff --git a/content/public/test/sandbox_file_system_test_helper.cc b/content/public/test/sandbox_file_system_test_helper.cc
index 8d09d8b2..477e3de 100644
--- a/content/public/test/sandbox_file_system_test_helper.cc
+++ b/content/public/test/sandbox_file_system_test_helper.cc
@@ -5,6 +5,7 @@
 #include "content/public/test/sandbox_file_system_test_helper.h"
 
 #include "base/files/file_util.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/run_loop.h"
 #include "content/public/test/mock_special_storage_policy.h"
 #include "content/public/test/test_file_system_context.h"
diff --git a/content/renderer/p2p/filtering_network_manager_unittest.cc b/content/renderer/p2p/filtering_network_manager_unittest.cc
index a8e461bc..d708428c 100644
--- a/content/renderer/p2p/filtering_network_manager_unittest.cc
+++ b/content/renderer/p2p/filtering_network_manager_unittest.cc
@@ -10,6 +10,7 @@
 #include "base/logging.h"
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/test/test_simple_task_runner.h"
 #include "base/thread_task_runner_handle.h"
 #include "content/renderer/p2p/empty_network_manager.h"
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
index e4ee832..fb5c2a4 100644
--- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc
@@ -257,6 +257,7 @@
 using blink::WebExternalPopupMenuClient;
 using blink::WebFindOptions;
 using blink::WebFrame;
+using blink::WebFrameLoadType;
 using blink::WebFrameSerializer;
 using blink::WebFrameSerializerClient;
 using blink::WebHistoryItem;
@@ -2103,7 +2104,10 @@
 }
 
 void RenderFrameImpl::OnReload(bool ignore_cache) {
-  frame_->reload(ignore_cache);
+  // TODO(crbug.com/599364): Rename |ignore_cache| or change it to enum.
+  // Eventually we may remove FrameMsg_Reload, and use FrameMsg_Navigate.
+  frame_->reload(ignore_cache ? WebFrameLoadType::ReloadBypassingCache
+                              : WebFrameLoadType::Reload);
 }
 
 void RenderFrameImpl::OnReloadLoFiImages() {
@@ -5307,8 +5311,8 @@
   if (is_reload) {
     bool ignore_cache = (common_params.navigation_type ==
                          FrameMsg_Navigate_Type::RELOAD_BYPASSING_CACHE);
-    load_type = ignore_cache ? blink::WebFrameLoadType::ReloadBypassingCache
-                             : blink::WebFrameLoadType::Reload;
+    load_type = ignore_cache ? WebFrameLoadType::ReloadBypassingCache
+                             : WebFrameLoadType::Reload;
 
     if (!browser_side_navigation) {
       const GURL override_url =
@@ -5682,8 +5686,8 @@
   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::ReloadBypassingCache ||
-                   load_type == blink::WebFrameLoadType::Reload;
+    bool replace = load_type == WebFrameLoadType::ReloadBypassingCache ||
+                   load_type == WebFrameLoadType::Reload;
 
     frame->loadData(
         WebData(data.c_str(), data.length()), WebString::fromUTF8(mime_type),
diff --git a/content/test/dwrite_font_fake_sender_win.h b/content/test/dwrite_font_fake_sender_win.h
index 8edd714..dd5a7b228d 100644
--- a/content/test/dwrite_font_fake_sender_win.h
+++ b/content/test/dwrite_font_fake_sender_win.h
@@ -14,6 +14,7 @@
 
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/strings/string16.h"
 #include "ipc/ipc_message.h"
 #include "ipc/ipc_sender.h"
diff --git a/device/bluetooth/bluetooth_remote_gatt_service_win.h b/device/bluetooth/bluetooth_remote_gatt_service_win.h
index 2ffa0f5..1db7b59f 100644
--- a/device/bluetooth/bluetooth_remote_gatt_service_win.h
+++ b/device/bluetooth/bluetooth_remote_gatt_service_win.h
@@ -8,6 +8,7 @@
 #include <set>
 
 #include "base/files/file.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "base/sequenced_task_runner.h"
 #include "device/bluetooth/bluetooth_gatt_service.h"
diff --git a/device/core/device_monitor_win.cc b/device/core/device_monitor_win.cc
index 7f3d67d2..1d09907 100644
--- a/device/core/device_monitor_win.cc
+++ b/device/core/device_monitor_win.cc
@@ -11,6 +11,7 @@
 #include "base/at_exit.h"
 #include "base/bind.h"
 #include "base/macros.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/strings/string_util.h"
 #include "base/strings/sys_string_conversions.h"
 #include "base/win/message_window.h"
diff --git a/extensions/browser/guest_view/web_view/web_view_find_helper.h b/extensions/browser/guest_view/web_view/web_view_find_helper.h
index 6ec34e0..df93c0c 100644
--- a/extensions/browser/guest_view/web_view/web_view_find_helper.h
+++ b/extensions/browser/guest_view/web_view/web_view_find_helper.h
@@ -10,6 +10,7 @@
 
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "base/values.h"
 #include "content/public/browser/web_contents.h"
diff --git a/gin/shell_runner.h b/gin/shell_runner.h
index 2d1cc490..71f00fd 100644
--- a/gin/shell_runner.h
+++ b/gin/shell_runner.h
@@ -6,6 +6,7 @@
 #define GIN_SHELL_RUNNER_H_
 
 #include "base/macros.h"
+#include "base/memory/scoped_ptr.h"
 #include "gin/runner.h"
 
 namespace gin {
diff --git a/google_apis/gaia/gaia_auth_util.cc b/google_apis/gaia/gaia_auth_util.cc
index 93d9863..dfe9de91 100644
--- a/google_apis/gaia/gaia_auth_util.cc
+++ b/google_apis/gaia/gaia_auth_util.cc
@@ -8,6 +8,7 @@
 
 #include "base/json/json_reader.h"
 #include "base/logging.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/strings/string_split.h"
 #include "base/strings/string_util.h"
 #include "base/values.h"
diff --git a/media/audio/win/audio_device_listener_win.h b/media/audio/win/audio_device_listener_win.h
index 7e39031..bce24c7 100644
--- a/media/audio/win/audio_device_listener_win.h
+++ b/media/audio/win/audio_device_listener_win.h
@@ -10,6 +10,7 @@
 
 #include "base/callback.h"
 #include "base/macros.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/threading/thread_checker.h"
 #include "base/time/time.h"
 #include "base/win/scoped_comptr.h"
diff --git a/net/http/transport_security_persister.cc b/net/http/transport_security_persister.cc
index a07e632..de5d831 100644
--- a/net/http/transport_security_persister.cc
+++ b/net/http/transport_security_persister.cc
@@ -13,6 +13,7 @@
 #include "base/json/json_reader.h"
 #include "base/json/json_writer.h"
 #include "base/location.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/sequenced_task_runner.h"
 #include "base/task_runner_util.h"
 #include "base/thread_task_runner_handle.h"
diff --git a/net/http/transport_security_persister_unittest.cc b/net/http/transport_security_persister_unittest.cc
index 0799f58..dd5ae5c 100644
--- a/net/http/transport_security_persister_unittest.cc
+++ b/net/http/transport_security_persister_unittest.cc
@@ -11,6 +11,7 @@
 #include "base/files/file_path.h"
 #include "base/files/file_util.h"
 #include "base/files/scoped_temp_dir.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/message_loop/message_loop.h"
 #include "net/http/transport_security_state.h"
 #include "testing/gtest/include/gtest/gtest.h"
diff --git a/net/proxy/dhcp_proxy_script_fetcher_factory.h b/net/proxy/dhcp_proxy_script_fetcher_factory.h
index b017bb63..45734e3 100644
--- a/net/proxy/dhcp_proxy_script_fetcher_factory.h
+++ b/net/proxy/dhcp_proxy_script_fetcher_factory.h
@@ -6,6 +6,7 @@
 #define NET_PROXY_DHCP_SCRIPT_FETCHER_FACTORY_H_
 
 #include "base/macros.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/memory/singleton.h"
 #include "net/base/completion_callback.h"
 #include "net/base/net_export.h"
diff --git a/remoting/base/breakpad_win.cc b/remoting/base/breakpad_win.cc
index ae1a81e..6ba02c5 100644
--- a/remoting/base/breakpad_win.cc
+++ b/remoting/base/breakpad_win.cc
@@ -18,8 +18,8 @@
 #include "base/logging.h"
 #include "base/macros.h"
 #include "base/memory/scoped_ptr.h"
-#include "base/process/memory.h"
 #include "base/strings/utf_string_conversions.h"
+#include "base/win/current_module.h"
 #include "base/win/wrapped_window_proc.h"
 #include "breakpad/src/client/windows/handler/exception_handler.h"
 
@@ -144,10 +144,8 @@
 
 // Returns the Custom information to be used for crash reporting.
 google_breakpad::CustomClientInfo* BreakpadWin::GetCustomInfo() {
-  HMODULE binary = base::GetModuleFromAddress(
-      reinterpret_cast<void*>(&remoting::InitializeCrashReporting));
   scoped_ptr<FileVersionInfo> version_info(
-      FileVersionInfo::CreateFileVersionInfoForModule(binary));
+      FileVersionInfo::CreateFileVersionInfoForModule(CURRENT_MODULE()));
 
   static wchar_t version[64];
   if (version_info.get()) {
diff --git a/remoting/host/continue_window_win.cc b/remoting/host/continue_window_win.cc
index 548d928..d0ac2560 100644
--- a/remoting/host/continue_window_win.cc
+++ b/remoting/host/continue_window_win.cc
@@ -10,9 +10,9 @@
 #include "base/location.h"
 #include "base/logging.h"
 #include "base/macros.h"
-#include "base/process/memory.h"
 #include "base/single_thread_task_runner.h"
 #include "base/strings/utf_string_conversions.h"
+#include "base/win/current_module.h"
 #include "remoting/host/continue_window.h"
 #include "remoting/host/win/core_resource.h"
 
@@ -55,9 +55,8 @@
   DCHECK(CalledOnValidThread());
   DCHECK(!hwnd_);
 
-  HMODULE instance = base::GetModuleFromAddress(&DialogProc);
-  hwnd_ = CreateDialogParam(instance, MAKEINTRESOURCE(IDD_CONTINUE), nullptr,
-                            (DLGPROC)DialogProc, (LPARAM)this);
+  hwnd_ = CreateDialogParam(CURRENT_MODULE(), MAKEINTRESOURCE(IDD_CONTINUE),
+                            nullptr, (DLGPROC)DialogProc, (LPARAM) this);
   if (!hwnd_) {
     LOG(ERROR) << "Unable to create Disconnect dialog for remoting.";
     return;
diff --git a/remoting/host/disconnect_window_win.cc b/remoting/host/disconnect_window_win.cc
index f969c36..6a4e48c5 100644
--- a/remoting/host/disconnect_window_win.cc
+++ b/remoting/host/disconnect_window_win.cc
@@ -8,9 +8,9 @@
 #include "base/compiler_specific.h"
 #include "base/logging.h"
 #include "base/macros.h"
-#include "base/process/memory.h"
 #include "base/strings/string_util.h"
 #include "base/strings/utf_string_conversions.h"
+#include "base/win/current_module.h"
 #include "base/win/scoped_gdi_object.h"
 #include "base/win/scoped_hdc.h"
 #include "base/win/scoped_select_object.h"
@@ -230,9 +230,9 @@
   DCHECK(CalledOnValidThread());
   DCHECK(!hwnd_);
 
-  HMODULE module = base::GetModuleFromAddress(&DialogProc);
-  hwnd_ = CreateDialogParam(module, MAKEINTRESOURCE(IDD_DISCONNECT), nullptr,
-                            DialogProc, reinterpret_cast<LPARAM>(this));
+  hwnd_ =
+      CreateDialogParam(CURRENT_MODULE(), MAKEINTRESOURCE(IDD_DISCONNECT),
+                        nullptr, DialogProc, reinterpret_cast<LPARAM>(this));
   if (!hwnd_)
     return false;
 
diff --git a/remoting/host/win/host_service.h b/remoting/host/win/host_service.h
index 58a8e56..34629ed 100644
--- a/remoting/host/win/host_service.h
+++ b/remoting/host/win/host_service.h
@@ -12,6 +12,7 @@
 
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/memory/singleton.h"
 #include "base/memory/weak_ptr.h"
 #include "base/synchronization/waitable_event.h"
diff --git a/rlz/OWNERS b/rlz/OWNERS
index c7cd32c..a66406d 100644
--- a/rlz/OWNERS
+++ b/rlz/OWNERS
@@ -1,3 +1,2 @@
 rogerta@chromium.org
-gwilson@chromium.org
 thakis@chromium.org
diff --git a/sandbox/win/src/address_sanitizer_test.cc b/sandbox/win/src/address_sanitizer_test.cc
index 18239126..db39d6b9 100644
--- a/sandbox/win/src/address_sanitizer_test.cc
+++ b/sandbox/win/src/address_sanitizer_test.cc
@@ -8,6 +8,7 @@
 #include "base/files/file_path.h"
 #include "base/files/file_util.h"
 #include "base/files/scoped_temp_dir.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/path_service.h"
 #include "base/win/scoped_handle.h"
 #include "base/win/windows_version.h"
diff --git a/sandbox/win/src/app_container.cc b/sandbox/win/src/app_container.cc
index a51f092..da8fa88 100644
--- a/sandbox/win/src/app_container.cc
+++ b/sandbox/win/src/app_container.cc
@@ -27,7 +27,7 @@
 template <typename T>
 T BindFunction(const char* name) {
   HMODULE module = GetModuleHandle(sandbox::kKerneldllName);
-  void* function = GetProcAddress(module, name);
+  FARPROC function = GetProcAddress(module, name);
   if (!function) {
     module = GetModuleHandle(sandbox::kKernelBasedllName);
     function = GetProcAddress(module, name);
diff --git a/testing/libfuzzer/fuzzers/courgette_fuzzer.cc b/testing/libfuzzer/fuzzers/courgette_fuzzer.cc
index 5888db9..fffb5b7 100644
--- a/testing/libfuzzer/fuzzers/courgette_fuzzer.cc
+++ b/testing/libfuzzer/fuzzers/courgette_fuzzer.cc
@@ -5,7 +5,8 @@
 #include <stddef.h>
 #include <stdint.h>
 
-#include "base/memory/scoped_ptr.h"
+#include <memory>
+
 #include "courgette/assembly_program.h"
 #include "courgette/courgette.h"
 #include "courgette/encoded_program.h"
@@ -13,12 +14,12 @@
 
 // Entry point for LibFuzzer.
 extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
-  scoped_ptr<courgette::AssemblyProgram> prog;
+  std::unique_ptr<courgette::AssemblyProgram> prog;
   courgette::Status status =
       courgette::ParseDetectedExecutable(data, size, &prog);
   if (status != courgette::C_OK) {
     return 0;
   }
-  scoped_ptr<courgette::EncodedProgram> enc_prog(prog->Encode());
+  std::unique_ptr<courgette::EncodedProgram> enc_prog(prog->Encode());
   return 0;
 }
diff --git a/testing/libfuzzer/fuzzers/es_parser_mpeg1audio_fuzzer.cc b/testing/libfuzzer/fuzzers/es_parser_mpeg1audio_fuzzer.cc
index 1e84f6b..bcb45af 100644
--- a/testing/libfuzzer/fuzzers/es_parser_mpeg1audio_fuzzer.cc
+++ b/testing/libfuzzer/fuzzers/es_parser_mpeg1audio_fuzzer.cc
@@ -5,6 +5,8 @@
 #include <stddef.h>
 #include <stdint.h>
 
+#include <memory>
+
 #include "base/bind.h"
 #include "media/formats/mp2t/es_parser_mpeg1audio.h"
 
@@ -13,7 +15,7 @@
   NullMediaLog() {}
 
   void DoAddEventLogString(const std::string& event) {}
-  void AddEvent(scoped_ptr<media::MediaLogEvent> event) override {}
+  void AddEvent(std::unique_ptr<media::MediaLogEvent> event) override {}
 
  protected:
   virtual ~NullMediaLog() {}
diff --git a/testing/libfuzzer/fuzzers/mp4_box_reader_fuzzer.cc b/testing/libfuzzer/fuzzers/mp4_box_reader_fuzzer.cc
index f7f7f986..6e5c6bd5 100644
--- a/testing/libfuzzer/fuzzers/mp4_box_reader_fuzzer.cc
+++ b/testing/libfuzzer/fuzzers/mp4_box_reader_fuzzer.cc
@@ -5,9 +5,10 @@
 #include <stddef.h>
 #include <stdint.h>
 
+#include <memory>
+
 #include "media/formats/mp4/box_reader.h"
 #include "base/logging.h"
-#include "base/memory/scoped_ptr.h"
 
 class NullMediaLog : public media::MediaLog {
  public:
@@ -15,7 +16,7 @@
 
   void DoAddEventLogString(const std::string& event) {}
 
-  void AddEvent(scoped_ptr<media::MediaLogEvent> event) override {}
+  void AddEvent(std::unique_ptr<media::MediaLogEvent> event) override {}
 
  protected:
   virtual ~NullMediaLog() {}
@@ -28,11 +29,9 @@
 extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
   bool err;
   scoped_refptr<NullMediaLog> media_log(new NullMediaLog());
-  scoped_ptr<media::mp4::BoxReader> reader(
-      media::mp4::BoxReader::ReadTopLevelBox(data,
-                                             static_cast<const int>(size),
-                                             media_log,
-                                             &err));
+  std::unique_ptr<media::mp4::BoxReader> reader(
+      media::mp4::BoxReader::ReadTopLevelBox(data, static_cast<const int>(size),
+                                             media_log, &err));
   if (err) {
     return 0;
   }
diff --git a/third_party/WebKit/LayoutTests/TestExpectations b/third_party/WebKit/LayoutTests/TestExpectations
index 2f44a84..2030687 100644
--- a/third_party/WebKit/LayoutTests/TestExpectations
+++ b/third_party/WebKit/LayoutTests/TestExpectations
@@ -18,10 +18,6 @@
 crbug.com/356658 fast/dom/gc-12.html [ Failure ]
 crbug.com/356658 crbug.com/356828 fast/dom/gc-dom-tree-lifetime.html [ Failure Timeout ]
 
-crbug.com/377567 [ Debug ] editing/selection/extend-selection-character.html [ Timeout Pass ]
-crbug.com/377567 [ Debug ] editing/selection/programmatic-selection-on-mac-is-directionless.html [ Timeout Pass ]
-crbug.com/377567 [ Debug ] fast/css/large-list-of-rules-crash.html [ Timeout Pass ]
-
 crbug.com/501229 fast/forms/associatedFormControls-leak-nodes.html [ Failure Pass ]
 
 crbug.com/417181 http/tests/xmlhttprequest/abort-on-changestate-headers-received.html [ Failure Pass ]
@@ -912,6 +908,8 @@
 crbug.com/417782 virtual/rootlayerscrolls/fast/scrolling/scrollable-area-frame.html [ Failure ]
 crbug.com/417782 virtual/rootlayerscrolls/fast/scrolling/scrollbar-tickmarks-styled.html [ Failure ]
 
+crbug.com/600087 virtual/gpu-rasterization/fast/images/pixel-crack-image-background-webkit-transform-scale.html [ Timeout ]
+
 crbug.com/385014 crbug.com/410145 accessibility/canvas-fallback-content-2.html [ Pass Failure Timeout ]
 
 crbug.com/440452 virtual/display_list_2d_canvas/fast/canvas/canvas-partial-invalidation-zoomed.html [ Pass Timeout ]
@@ -1111,6 +1109,11 @@
 
 crbug.com/464736 http/tests/xmlhttprequest/ontimeout-event-override-after-failure.html [ Pass Failure ]
 
+crbug.com/598549 fast/images/jpeg-yuv-progressive-canvas.html [ NeedsRebaseline ]
+crbug.com/598549 fast/images/jpeg-yuv-progressive-image.html [ NeedsRebaseline ]
+crbug.com/598549 virtual/gpu-rasterization/fast/images/jpeg-yuv-progressive-image.html [ NeedsRebaseline ]
+crbug.com/598549 virtual/gpu-rasterization/fast/images/jpeg-yuv-progressive-canvas.html [ NeedsRebaseline ]
+
 crbug.com/595483 [ Android ] editing/caret/caret-color.html [ Failure Crash ]
 crbug.com/595483 [ Android ] fast/invalid/009.html [ Failure Crash ]
 crbug.com/595483 [ Android ] fast/hidpi/clip-text-in-hidpi.html [ Failure Crash ]
diff --git a/third_party/WebKit/LayoutTests/VirtualTestSuites b/third_party/WebKit/LayoutTests/VirtualTestSuites
index ca97a06..e243fe1 100644
--- a/third_party/WebKit/LayoutTests/VirtualTestSuites
+++ b/third_party/WebKit/LayoutTests/VirtualTestSuites
@@ -58,6 +58,11 @@
              "--enable-prefer-compositing-to-lcd-text"]
   },
   {
+    "prefix": "gpu-rasterization",
+    "base": "fast/images",
+    "args": ["--force-gpu-rasterization"]
+  },
+  {
     "prefix": "stable",
     "base": "webexposed",
     "args": ["--stable-release-mode"]
diff --git a/third_party/WebKit/LayoutTests/fast/dom/shadow/apply-deep-in-document-scope-expected.txt b/third_party/WebKit/LayoutTests/fast/dom/shadow/apply-deep-in-document-scope-expected.txt
new file mode 100644
index 0000000..a868d38
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/dom/shadow/apply-deep-in-document-scope-expected.txt
@@ -0,0 +1,11 @@
+CONSOLE WARNING: /deep/ combinator is deprecated. See https://www.chromestatus.com/features/6750456638341120 for more details.
+/deep/ as a descendant selector in document without shadow trees.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS getComputedStyle(inner).color is "rgb(0, 128, 0)"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+This text should be green
diff --git a/third_party/WebKit/LayoutTests/fast/dom/shadow/apply-deep-in-document-scope.html b/third_party/WebKit/LayoutTests/fast/dom/shadow/apply-deep-in-document-scope.html
new file mode 100644
index 0000000..4421f5e
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/dom/shadow/apply-deep-in-document-scope.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<script src="../../../resources/js-test.js"></script>
+<style>div /deep/ #inner { color: green }</style>
+<div>
+    <div id="inner">This text should be green</div>
+</div>
+<script>
+    description("/deep/ as a descendant selector in document without shadow trees.");
+
+    shouldBeEqualToString("getComputedStyle(inner).color", "rgb(0, 128, 0)");
+</script>
diff --git a/third_party/WebKit/LayoutTests/fast/forms/text/text-focus-into-view-expected.html b/third_party/WebKit/LayoutTests/fast/forms/text/text-focus-into-view-expected.html
new file mode 100644
index 0000000..660c56b
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/forms/text/text-focus-into-view-expected.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<body>
+<div style="width:100px; overflow:scroll;">
+<div style="width:1000px;">
+<input><input value=abc autofocus style="width:64px;">
+</div>
+</div>
+<script>
+if (window.testRunner) {
+    testRunner.waitUntilDone();
+    document.querySelectorAll('input')[1].addEventListener('focus', function(event) {
+        event.target.select();
+        testRunner.notifyDone();
+    }, false);
+} else {
+    console.log('Require testRunner.');
+}
+</script>
+</body>
diff --git a/third_party/WebKit/LayoutTests/fast/forms/text/text-focus-into-view.html b/third_party/WebKit/LayoutTests/fast/forms/text/text-focus-into-view.html
new file mode 100644
index 0000000..8ab42cd
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/forms/text/text-focus-into-view.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<body>
+<div style="width:100px; overflow:scroll;">
+<div style="width:1000px;">
+<input autofocus><input value=abc style="width:64px;">
+</div>
+</div>
+<script>
+// Focusing on INPUT with SelectionBehaviorOnFOcus::Restore didn't scroll it
+// into view if its selection is RangeSelection. crbug.com/443061
+if (window.testRunner) {
+    testRunner.waitUntilDone();
+    document.querySelector('input').addEventListener('focus', function() {
+        eventSender.keyDown('\t');
+        testRunner.notifyDone();
+    }, false);
+} else {
+    console.log('Require testRunner.');
+}
+</script>
+</body>
diff --git a/third_party/WebKit/LayoutTests/fast/images/jpeg-yuv-progressive-canvas.html b/third_party/WebKit/LayoutTests/fast/images/jpeg-yuv-progressive-canvas.html
new file mode 100644
index 0000000..464c30c5
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/images/jpeg-yuv-progressive-canvas.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<!-- test case for crbug.com/597127 -->
+<html>
+<head>
+<!-- Use a <meta> viewport, see http://crbug.com/598949 -->
+<meta name="viewport" content="width=device-width, minimum-scale=1.0">
+<style>
+  canvas {
+    border: 2px solid black;
+    margin: 5px 5px 0px 5px;
+    padding: 2px;
+    width: 150px;
+    height: 150px;
+  }
+</style>
+</head>
+
+<script>
+if (window.testRunner) {
+  testRunner.dumpAsTextWithPixelResults();
+  testRunner.waitUntilDone();
+}
+
+var totalTestImages = 4;
+
+window.onload = function() {
+  for (var x = 0; x < totalTestImages; ++x)
+    loadImage(x);
+};
+
+function loadImage(x) {
+  var image = new Image();
+
+  var canvas = document.createElement('canvas');
+  canvas.width = canvas.height = 150;
+
+  document.body.appendChild(canvas);
+
+  image.onload = function() {
+    canvas.getContext('2d').drawImage(this, 0, 0, 150, 150);
+    setTimeout(canvasLoaded, 0, x + 1);
+  };
+
+  image.src = 'resources/ycbcr-progressive-00' + x + '.jpg';
+}
+
+function canvasLoaded(x) {
+  if (x >= totalTestImages && window.testRunner)
+    testRunner.notifyDone();
+}
+</script>
+</html>
diff --git a/third_party/WebKit/LayoutTests/fast/images/jpeg-yuv-progressive-image.html b/third_party/WebKit/LayoutTests/fast/images/jpeg-yuv-progressive-image.html
new file mode 100644
index 0000000..de250a83
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/images/jpeg-yuv-progressive-image.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html>
+<!-- test case for crbug.com/597127 -->
+<html>
+<head>
+<!-- Use a <meta> viewport, see http://crbug.com/598949 -->
+<meta name="viewport" content="width=device-width, minimum-scale=1.0">
+<style>
+  img {
+    border: 2px solid black;
+    margin: 5px 5px 0px 5px;
+    padding: 2px;
+    width: 150px;
+    height: 150px;
+  }
+</style>
+</head>
+
+<script>
+if (window.testRunner) {
+  testRunner.dumpAsTextWithPixelResults();
+  testRunner.waitUntilDone();
+}
+
+var totalTestImages = 4;
+
+window.onload = function() {
+  for (var x = 0; x < totalTestImages; ++x)
+    loadImage(x);
+};
+
+function loadImage(x) {
+  var image = new Image();
+
+  document.body.appendChild(image);
+
+  image.onload = function() {
+    setTimeout(imageLoaded, 0, x + 1);
+  };
+
+  image.src = 'resources/ycbcr-progressive-00' + x + '.jpg';
+}
+
+function imageLoaded(x) {
+  if (x >= totalTestImages && window.testRunner)
+    testRunner.notifyDone();
+}
+</script>
+</html>
diff --git a/third_party/WebKit/LayoutTests/fast/images/resources/ycbcr-progressive-000.jpg b/third_party/WebKit/LayoutTests/fast/images/resources/ycbcr-progressive-000.jpg
new file mode 100644
index 0000000..22f0ed4
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/images/resources/ycbcr-progressive-000.jpg
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/fast/images/resources/ycbcr-progressive-001.jpg b/third_party/WebKit/LayoutTests/fast/images/resources/ycbcr-progressive-001.jpg
new file mode 100644
index 0000000..64b7006
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/images/resources/ycbcr-progressive-001.jpg
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/fast/images/resources/ycbcr-progressive-002.jpg b/third_party/WebKit/LayoutTests/fast/images/resources/ycbcr-progressive-002.jpg
new file mode 100644
index 0000000..b38e4401
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/images/resources/ycbcr-progressive-002.jpg
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/fast/images/resources/ycbcr-progressive-003.jpg b/third_party/WebKit/LayoutTests/fast/images/resources/ycbcr-progressive-003.jpg
new file mode 100644
index 0000000..218711f
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/images/resources/ycbcr-progressive-003.jpg
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/12-55-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/12-55-expected.png
new file mode 100644
index 0000000..d4630b43
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/12-55-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/182-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/182-expected.png
new file mode 100644
index 0000000..c0a8e46
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/182-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/2-comp-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/2-comp-expected.png
new file mode 100644
index 0000000..9684892
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/2-comp-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/2-dht-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/2-dht-expected.png
new file mode 100644
index 0000000..7785cc0
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/2-dht-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/23-55-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/23-55-expected.png
new file mode 100644
index 0000000..cd87a3e2
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/23-55-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/55-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/55-expected.png
new file mode 100644
index 0000000..ac43002
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/55-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-animate-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-animate-expected.png
new file mode 100644
index 0000000..d3f466a
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-animate-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-animate-rotate-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-animate-rotate-expected.png
new file mode 100644
index 0000000..a8e9183
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-animate-rotate-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-background-clip-text-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-background-clip-text-expected.png
new file mode 100644
index 0000000..2a44ca3
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-background-clip-text-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-background-image-cover-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-background-image-cover-expected.png
new file mode 100644
index 0000000..cb71a26b
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-background-image-cover-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-background-image-cross-fade-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-background-image-cross-fade-expected.png
new file mode 100644
index 0000000..a2fd49d
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-background-image-cross-fade-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-background-image-cross-fade-png-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-background-image-cross-fade-png-expected.png
new file mode 100644
index 0000000..a2fd49d
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-background-image-cross-fade-png-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-background-image-repeat-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-background-image-repeat-expected.png
new file mode 100644
index 0000000..2819d82
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-background-image-repeat-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-background-image-space-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-background-image-space-expected.png
new file mode 100644
index 0000000..2f46faf9
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-background-image-space-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-border-fade-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-border-fade-expected.png
new file mode 100644
index 0000000..c874b4a7
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-border-fade-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-border-image-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-border-image-expected.png
new file mode 100644
index 0000000..b72f084
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-border-image-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-border-image-source-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-border-image-source-expected.png
new file mode 100644
index 0000000..455f42d
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-border-image-source-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-border-radius-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-border-radius-expected.png
new file mode 100644
index 0000000..8b1a3f9
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-border-radius-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-filter-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-filter-expected.png
new file mode 100644
index 0000000..c450e2f9
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-filter-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-group-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-group-expected.png
new file mode 100644
index 0000000..23769e3
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-group-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-iframe-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-iframe-expected.png
new file mode 100644
index 0000000..f6a6739
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-iframe-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-image-canvas-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-image-canvas-expected.png
new file mode 100644
index 0000000..55b70a9b
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-image-canvas-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-image-canvas-pattern-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-image-canvas-pattern-expected.png
new file mode 100644
index 0000000..dd3d1857
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-image-canvas-pattern-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-image-canvas-svg-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-image-canvas-svg-expected.png
new file mode 100644
index 0000000..84c6f18
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-image-canvas-svg-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-image-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-image-expected.png
new file mode 100644
index 0000000..a0bc9a9
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-image-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-image-filter-all-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-image-filter-all-expected.png
new file mode 100644
index 0000000..248ab15
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-image-filter-all-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-image-object-fit-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-image-object-fit-expected.png
new file mode 100644
index 0000000..aa48cbaa
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-image-object-fit-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-image-profile-match-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-image-profile-match-expected.png
new file mode 100644
index 0000000..ed764d06
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-image-profile-match-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-image-shape-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-image-shape-expected.png
new file mode 100644
index 0000000..7915d03
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-image-shape-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-image-svg-resource-url-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-image-svg-resource-url-expected.png
new file mode 100644
index 0000000..e5a6aae
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-image-svg-resource-url-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-layer-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-layer-expected.png
new file mode 100644
index 0000000..5e656c1
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-layer-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-layer-filter-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-layer-filter-expected.png
new file mode 100644
index 0000000..19aebe5b
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-layer-filter-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-mask-image-svg-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-mask-image-svg-expected.png
new file mode 100644
index 0000000..2360f067
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-mask-image-svg-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-munsell-adobe-to-srgb-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-munsell-adobe-to-srgb-expected.png
new file mode 100644
index 0000000..1c470a13
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-munsell-adobe-to-srgb-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-munsell-srgb-to-srgb-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-munsell-srgb-to-srgb-expected.png
new file mode 100644
index 0000000..95c1996
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-munsell-srgb-to-srgb-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-object-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-object-expected.png
new file mode 100644
index 0000000..2f11577
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-object-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-reflection-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-reflection-expected.png
new file mode 100644
index 0000000..c9779d0
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-reflection-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-svg-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-svg-expected.png
new file mode 100644
index 0000000..ec0a7717
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-svg-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-svg-fill-text-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-svg-fill-text-expected.png
new file mode 100644
index 0000000..e90077b0
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-svg-fill-text-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-svg-foreign-object-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-svg-foreign-object-expected.png
new file mode 100644
index 0000000..3678f73a
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/color-profile-svg-foreign-object-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/exif-orientation-css-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/exif-orientation-css-expected.png
new file mode 100644
index 0000000..edba36f
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/exif-orientation-css-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/exif-orientation-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/exif-orientation-expected.png
new file mode 100644
index 0000000..df5ca95
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/exif-orientation-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/exif-orientation-height-image-document-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/exif-orientation-height-image-document-expected.png
new file mode 100644
index 0000000..3b94f24
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/exif-orientation-height-image-document-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/exif-orientation-image-document-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/exif-orientation-image-document-expected.png
new file mode 100644
index 0000000..abaf921
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/exif-orientation-image-document-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/gray-scale-jpeg-with-color-profile-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/gray-scale-jpeg-with-color-profile-expected.png
new file mode 100644
index 0000000..06c10a48
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/gray-scale-jpeg-with-color-profile-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/image-css3-content-data-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/image-css3-content-data-expected.png
new file mode 100644
index 0000000..2eb9d0b
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/image-css3-content-data-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/image-map-anchor-children-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/image-map-anchor-children-expected.png
new file mode 100644
index 0000000..7aed0e69
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/image-map-anchor-children-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/imagemap-case-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/imagemap-case-expected.png
new file mode 100644
index 0000000..9d27a74
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/imagemap-case-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/imagemap-circle-focus-ring-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/imagemap-circle-focus-ring-expected.png
new file mode 100644
index 0000000..b4bae45
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/imagemap-circle-focus-ring-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-expected.png
new file mode 100644
index 0000000..65401dd
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-outline-color-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-outline-color-expected.png
new file mode 100644
index 0000000..9bb6d289
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-outline-color-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png
new file mode 100644
index 0000000..e30e1799
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-outline-color-not-inherited-from-map-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-outline-color-not-inherited-from-map-expected.png
new file mode 100644
index 0000000..2befa173
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-outline-color-not-inherited-from-map-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-zero-outline-width-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-zero-outline-width-expected.png
new file mode 100644
index 0000000..6167935f
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-zero-outline-width-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-zoom-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-zoom-expected.png
new file mode 100644
index 0000000..25d8e6c
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-zoom-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/imagemap-overflowing-circle-focus-ring-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/imagemap-overflowing-circle-focus-ring-expected.png
new file mode 100644
index 0000000..01d4abc
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/imagemap-overflowing-circle-focus-ring-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/imagemap-overflowing-polygon-focus-ring-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/imagemap-overflowing-polygon-focus-ring-expected.png
new file mode 100644
index 0000000..03a1dda
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/imagemap-overflowing-polygon-focus-ring-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/imagemap-polygon-focus-ring-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/imagemap-polygon-focus-ring-expected.png
new file mode 100644
index 0000000..5c61d900
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/imagemap-polygon-focus-ring-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/jpeg-with-color-profile-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/jpeg-with-color-profile-expected.png
new file mode 100644
index 0000000..c633a38
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/jpeg-with-color-profile-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/jpeg-yuv-image-decoding-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/jpeg-yuv-image-decoding-expected.png
new file mode 100644
index 0000000..0f8309c
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/jpeg-yuv-image-decoding-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/png-with-color-profile-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/png-with-color-profile-expected.png
new file mode 100644
index 0000000..c633a38
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/png-with-color-profile-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/rgb-png-with-cmyk-color-profile-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/rgb-png-with-cmyk-color-profile-expected.png
new file mode 100644
index 0000000..cf8f1246
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/rgb-png-with-cmyk-color-profile-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/webp-color-profile-lossy-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/webp-color-profile-lossy-expected.png
new file mode 100644
index 0000000..f73a3ac
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/webp-color-profile-lossy-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/ycbcr-with-cmyk-color-profile-expected.png b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/ycbcr-with-cmyk-color-profile-expected.png
new file mode 100644
index 0000000..49ed6f80
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/virtual/gpu-rasterization/fast/images/ycbcr-with-cmyk-color-profile-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/12-55-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/12-55-expected.png
new file mode 100644
index 0000000..2072f43
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/12-55-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/182-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/182-expected.png
new file mode 100644
index 0000000..91a3ca1
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/182-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/2-comp-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/2-comp-expected.png
new file mode 100644
index 0000000..a16d7e2d
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/2-comp-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/2-dht-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/2-dht-expected.png
new file mode 100644
index 0000000..de60b175
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/2-dht-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/23-55-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/23-55-expected.png
new file mode 100644
index 0000000..f837318
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/23-55-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/55-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/55-expected.png
new file mode 100644
index 0000000..09f38aa
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/55-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-animate-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-animate-expected.png
new file mode 100644
index 0000000..cc1896b
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-animate-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-animate-rotate-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-animate-rotate-expected.png
new file mode 100644
index 0000000..cc83c29
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-animate-rotate-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-background-clip-text-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-background-clip-text-expected.png
new file mode 100644
index 0000000..f7983ce6
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-background-clip-text-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-background-image-cover-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-background-image-cover-expected.png
new file mode 100644
index 0000000..c9fbd92
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-background-image-cover-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-background-image-cross-fade-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-background-image-cross-fade-expected.png
new file mode 100644
index 0000000..497dd69b
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-background-image-cross-fade-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-background-image-cross-fade-png-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-background-image-cross-fade-png-expected.png
new file mode 100644
index 0000000..497dd69b
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-background-image-cross-fade-png-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-background-image-repeat-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-background-image-repeat-expected.png
new file mode 100644
index 0000000..4c5feee
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-background-image-repeat-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-background-image-space-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-background-image-space-expected.png
new file mode 100644
index 0000000..557b30f
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-background-image-space-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-border-fade-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-border-fade-expected.png
new file mode 100644
index 0000000..3661f6b
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-border-fade-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-border-image-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-border-image-expected.png
new file mode 100644
index 0000000..2935e4f
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-border-image-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-border-image-source-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-border-image-source-expected.png
new file mode 100644
index 0000000..9df0087
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-border-image-source-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-border-radius-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-border-radius-expected.png
new file mode 100644
index 0000000..ac515f0
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-border-radius-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-filter-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-filter-expected.png
new file mode 100644
index 0000000..0ba9cbf
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-filter-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-group-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-group-expected.png
new file mode 100644
index 0000000..2bcf278
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-group-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-iframe-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-iframe-expected.png
new file mode 100644
index 0000000..c7de180
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-iframe-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-image-canvas-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-image-canvas-expected.png
new file mode 100644
index 0000000..e2ef2ad
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-image-canvas-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-image-canvas-pattern-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-image-canvas-pattern-expected.png
new file mode 100644
index 0000000..a86ab57
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-image-canvas-pattern-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-image-canvas-svg-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-image-canvas-svg-expected.png
new file mode 100644
index 0000000..a584358
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-image-canvas-svg-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-image-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-image-expected.png
new file mode 100644
index 0000000..72366e1
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-image-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-image-filter-all-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-image-filter-all-expected.png
new file mode 100644
index 0000000..1f41eb7d
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-image-filter-all-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-image-object-fit-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-image-object-fit-expected.png
new file mode 100644
index 0000000..d8f4d11
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-image-object-fit-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-image-profile-match-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-image-profile-match-expected.png
new file mode 100644
index 0000000..e7d606a
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-image-profile-match-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-image-shape-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-image-shape-expected.png
new file mode 100644
index 0000000..c716257
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-image-shape-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-image-svg-resource-url-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-image-svg-resource-url-expected.png
new file mode 100644
index 0000000..3057245b
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-image-svg-resource-url-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-layer-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-layer-expected.png
new file mode 100644
index 0000000..d449ed69
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-layer-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-layer-filter-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-layer-filter-expected.png
new file mode 100644
index 0000000..92f3f09
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-layer-filter-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-mask-image-svg-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-mask-image-svg-expected.png
new file mode 100644
index 0000000..85ff129
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-mask-image-svg-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-munsell-adobe-to-srgb-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-munsell-adobe-to-srgb-expected.png
new file mode 100644
index 0000000..661d27d
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-munsell-adobe-to-srgb-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-munsell-srgb-to-srgb-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-munsell-srgb-to-srgb-expected.png
new file mode 100644
index 0000000..1b85222
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-munsell-srgb-to-srgb-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-object-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-object-expected.png
new file mode 100644
index 0000000..150b479
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-object-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-reflection-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-reflection-expected.png
new file mode 100644
index 0000000..9883449
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-reflection-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-svg-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-svg-expected.png
new file mode 100644
index 0000000..7270dde
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-svg-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-svg-fill-text-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-svg-fill-text-expected.png
new file mode 100644
index 0000000..98631c6
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-svg-fill-text-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-svg-foreign-object-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-svg-foreign-object-expected.png
new file mode 100644
index 0000000..9ce8592
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/color-profile-svg-foreign-object-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/exif-orientation-css-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/exif-orientation-css-expected.png
new file mode 100644
index 0000000..30ff469
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/exif-orientation-css-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/exif-orientation-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/exif-orientation-expected.png
new file mode 100644
index 0000000..f90e099
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/exif-orientation-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/exif-orientation-height-image-document-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/exif-orientation-height-image-document-expected.png
new file mode 100644
index 0000000..2a0471c
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/exif-orientation-height-image-document-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/exif-orientation-image-document-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/exif-orientation-image-document-expected.png
new file mode 100644
index 0000000..835834a
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/exif-orientation-image-document-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/gray-scale-jpeg-with-color-profile-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/gray-scale-jpeg-with-color-profile-expected.png
new file mode 100644
index 0000000..5e262d1
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/gray-scale-jpeg-with-color-profile-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/image-map-anchor-children-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/image-map-anchor-children-expected.png
new file mode 100644
index 0000000..4a160bd6
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/image-map-anchor-children-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/imagemap-case-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/imagemap-case-expected.png
new file mode 100644
index 0000000..0eb183b
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/imagemap-case-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/imagemap-circle-focus-ring-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/imagemap-circle-focus-ring-expected.png
new file mode 100644
index 0000000..c4312e3
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/imagemap-circle-focus-ring-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-expected.png
new file mode 100644
index 0000000..539add9
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-outline-color-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-outline-color-expected.png
new file mode 100644
index 0000000..1b8a0ea
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-outline-color-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png
new file mode 100644
index 0000000..444bed4
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-outline-color-not-inherited-from-map-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-outline-color-not-inherited-from-map-expected.png
new file mode 100644
index 0000000..816ac16
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-outline-color-not-inherited-from-map-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-zero-outline-width-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-zero-outline-width-expected.png
new file mode 100644
index 0000000..5d4369f6
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-zero-outline-width-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-zoom-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-zoom-expected.png
new file mode 100644
index 0000000..27e5e799
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-zoom-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/imagemap-overflowing-circle-focus-ring-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/imagemap-overflowing-circle-focus-ring-expected.png
new file mode 100644
index 0000000..b666f49d7
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/imagemap-overflowing-circle-focus-ring-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/imagemap-overflowing-polygon-focus-ring-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/imagemap-overflowing-polygon-focus-ring-expected.png
new file mode 100644
index 0000000..9560c17
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/imagemap-overflowing-polygon-focus-ring-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/imagemap-polygon-focus-ring-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/imagemap-polygon-focus-ring-expected.png
new file mode 100644
index 0000000..0dce0c02
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/imagemap-polygon-focus-ring-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/jpeg-with-color-profile-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/jpeg-with-color-profile-expected.png
new file mode 100644
index 0000000..033d472e
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/jpeg-with-color-profile-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/jpeg-yuv-image-decoding-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/jpeg-yuv-image-decoding-expected.png
new file mode 100644
index 0000000..7a40e74
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/jpeg-yuv-image-decoding-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/png-with-color-profile-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/png-with-color-profile-expected.png
new file mode 100644
index 0000000..033d472e
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/png-with-color-profile-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/rgb-png-with-cmyk-color-profile-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/rgb-png-with-cmyk-color-profile-expected.png
new file mode 100644
index 0000000..8025909
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/rgb-png-with-cmyk-color-profile-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/webp-color-profile-lossy-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/webp-color-profile-lossy-expected.png
new file mode 100644
index 0000000..2ec43b4
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/webp-color-profile-lossy-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/ycbcr-with-cmyk-color-profile-expected.png b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/ycbcr-with-cmyk-color-profile-expected.png
new file mode 100644
index 0000000..abad02f
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/fast/images/ycbcr-with-cmyk-color-profile-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/gpu-rasterization/fast/images/12-55-expected.png b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/gpu-rasterization/fast/images/12-55-expected.png
new file mode 100644
index 0000000..2945179
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/gpu-rasterization/fast/images/12-55-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/gpu-rasterization/fast/images/182-expected.png b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/gpu-rasterization/fast/images/182-expected.png
new file mode 100644
index 0000000..1c73d7f1
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/gpu-rasterization/fast/images/182-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/gpu-rasterization/fast/images/2-dht-expected.png b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/gpu-rasterization/fast/images/2-dht-expected.png
new file mode 100644
index 0000000..a79af971
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/gpu-rasterization/fast/images/2-dht-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/gpu-rasterization/fast/images/23-55-expected.png b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/gpu-rasterization/fast/images/23-55-expected.png
new file mode 100644
index 0000000..eb7b9ba8
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/gpu-rasterization/fast/images/23-55-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/gpu-rasterization/fast/images/55-expected.png b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/gpu-rasterization/fast/images/55-expected.png
new file mode 100644
index 0000000..d6ff663
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/gpu-rasterization/fast/images/55-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/gpu-rasterization/fast/images/color-profile-background-clip-text-expected.png b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/gpu-rasterization/fast/images/color-profile-background-clip-text-expected.png
new file mode 100644
index 0000000..090e845e
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/gpu-rasterization/fast/images/color-profile-background-clip-text-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/gpu-rasterization/fast/images/color-profile-munsell-adobe-to-srgb-expected.png b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/gpu-rasterization/fast/images/color-profile-munsell-adobe-to-srgb-expected.png
new file mode 100644
index 0000000..ddef4421
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/gpu-rasterization/fast/images/color-profile-munsell-adobe-to-srgb-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/gpu-rasterization/fast/images/color-profile-munsell-srgb-to-srgb-expected.png b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/gpu-rasterization/fast/images/color-profile-munsell-srgb-to-srgb-expected.png
new file mode 100644
index 0000000..5b2168a
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/gpu-rasterization/fast/images/color-profile-munsell-srgb-to-srgb-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/gpu-rasterization/fast/images/color-profile-svg-fill-text-expected.png b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/gpu-rasterization/fast/images/color-profile-svg-fill-text-expected.png
new file mode 100644
index 0000000..7ea7d2dd0
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/gpu-rasterization/fast/images/color-profile-svg-fill-text-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/gpu-rasterization/fast/images/jpeg-yuv-image-decoding-expected.png b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/gpu-rasterization/fast/images/jpeg-yuv-image-decoding-expected.png
new file mode 100644
index 0000000..2818b2e7
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/virtual/gpu-rasterization/fast/images/jpeg-yuv-image-decoding-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/gpu-rasterization/fast/images/12-55-expected.png b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/gpu-rasterization/fast/images/12-55-expected.png
new file mode 100644
index 0000000..c81e3ba
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/gpu-rasterization/fast/images/12-55-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/gpu-rasterization/fast/images/182-expected.png b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/gpu-rasterization/fast/images/182-expected.png
new file mode 100644
index 0000000..7867c058
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/gpu-rasterization/fast/images/182-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/gpu-rasterization/fast/images/2-dht-expected.png b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/gpu-rasterization/fast/images/2-dht-expected.png
new file mode 100644
index 0000000..bb550d8
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/gpu-rasterization/fast/images/2-dht-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/gpu-rasterization/fast/images/23-55-expected.png b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/gpu-rasterization/fast/images/23-55-expected.png
new file mode 100644
index 0000000..3aa0b69
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/gpu-rasterization/fast/images/23-55-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/gpu-rasterization/fast/images/55-expected.png b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/gpu-rasterization/fast/images/55-expected.png
new file mode 100644
index 0000000..c62e7b51
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/gpu-rasterization/fast/images/55-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/gpu-rasterization/fast/images/color-profile-background-clip-text-expected.png b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/gpu-rasterization/fast/images/color-profile-background-clip-text-expected.png
new file mode 100644
index 0000000..cd608a0
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/gpu-rasterization/fast/images/color-profile-background-clip-text-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/gpu-rasterization/fast/images/color-profile-svg-fill-text-expected.png b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/gpu-rasterization/fast/images/color-profile-svg-fill-text-expected.png
new file mode 100644
index 0000000..c654c07
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/gpu-rasterization/fast/images/color-profile-svg-fill-text-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac-retina/virtual/gpu-rasterization/fast/images/color-profile-filter-expected.png b/third_party/WebKit/LayoutTests/platform/mac-retina/virtual/gpu-rasterization/fast/images/color-profile-filter-expected.png
new file mode 100644
index 0000000..bb4a79d
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac-retina/virtual/gpu-rasterization/fast/images/color-profile-filter-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/12-55-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/12-55-expected.png
new file mode 100644
index 0000000..f2875a6
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/12-55-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/182-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/182-expected.png
new file mode 100644
index 0000000..a0e546f
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/182-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/2-comp-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/2-comp-expected.png
new file mode 100644
index 0000000..a16d7e2d
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/2-comp-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/2-dht-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/2-dht-expected.png
new file mode 100644
index 0000000..ab2bf47
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/2-dht-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/23-55-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/23-55-expected.png
new file mode 100644
index 0000000..b92eddf
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/23-55-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/55-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/55-expected.png
new file mode 100644
index 0000000..a9af504
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/55-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-animate-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-animate-expected.png
new file mode 100644
index 0000000..674b745
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-animate-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-animate-rotate-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-animate-rotate-expected.png
new file mode 100644
index 0000000..b1008b3
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-animate-rotate-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-background-clip-text-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-background-clip-text-expected.png
new file mode 100644
index 0000000..acb572ba
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-background-clip-text-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-background-image-cover-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-background-image-cover-expected.png
new file mode 100644
index 0000000..2651542d
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-background-image-cover-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-background-image-cross-fade-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-background-image-cross-fade-expected.png
new file mode 100644
index 0000000..9d66287
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-background-image-cross-fade-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-background-image-cross-fade-png-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-background-image-cross-fade-png-expected.png
new file mode 100644
index 0000000..9d66287
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-background-image-cross-fade-png-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-background-image-repeat-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-background-image-repeat-expected.png
new file mode 100644
index 0000000..4ff6cdc
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-background-image-repeat-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-background-image-space-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-background-image-space-expected.png
new file mode 100644
index 0000000..abbc14d9
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-background-image-space-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-border-fade-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-border-fade-expected.png
new file mode 100644
index 0000000..b2e77fc
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-border-fade-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-border-image-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-border-image-expected.png
new file mode 100644
index 0000000..6e87996
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-border-image-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-border-image-source-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-border-image-source-expected.png
new file mode 100644
index 0000000..07efb01
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-border-image-source-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-border-radius-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-border-radius-expected.png
new file mode 100644
index 0000000..ceb90d7
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-border-radius-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-filter-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-filter-expected.png
new file mode 100644
index 0000000..6d30485
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-filter-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-group-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-group-expected.png
new file mode 100644
index 0000000..f864be7
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-group-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-iframe-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-iframe-expected.png
new file mode 100644
index 0000000..3956fa9e
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-iframe-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-image-canvas-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-image-canvas-expected.png
new file mode 100644
index 0000000..c71f38e
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-image-canvas-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-image-canvas-pattern-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-image-canvas-pattern-expected.png
new file mode 100644
index 0000000..fa0052f
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-image-canvas-pattern-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-image-canvas-svg-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-image-canvas-svg-expected.png
new file mode 100644
index 0000000..57945c3
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-image-canvas-svg-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-image-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-image-expected.png
new file mode 100644
index 0000000..44af586
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-image-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-image-filter-all-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-image-filter-all-expected.png
new file mode 100644
index 0000000..5ea3b95b
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-image-filter-all-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-image-object-fit-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-image-object-fit-expected.png
new file mode 100644
index 0000000..125ce9f
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-image-object-fit-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-image-profile-match-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-image-profile-match-expected.png
new file mode 100644
index 0000000..2d99bc12
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-image-profile-match-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-image-shape-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-image-shape-expected.png
new file mode 100644
index 0000000..d9ed13cb
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-image-shape-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-image-svg-resource-url-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-image-svg-resource-url-expected.png
new file mode 100644
index 0000000..58b5e89
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-image-svg-resource-url-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-layer-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-layer-expected.png
new file mode 100644
index 0000000..c4d6fe7c
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-layer-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-layer-filter-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-layer-filter-expected.png
new file mode 100644
index 0000000..259434c
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-layer-filter-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-mask-image-svg-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-mask-image-svg-expected.png
new file mode 100644
index 0000000..2898a46
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-mask-image-svg-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-munsell-adobe-to-srgb-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-munsell-adobe-to-srgb-expected.png
new file mode 100644
index 0000000..46155ee
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-munsell-adobe-to-srgb-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-munsell-srgb-to-srgb-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-munsell-srgb-to-srgb-expected.png
new file mode 100644
index 0000000..998f8d3
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-munsell-srgb-to-srgb-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-object-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-object-expected.png
new file mode 100644
index 0000000..9d63d68
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-object-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-reflection-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-reflection-expected.png
new file mode 100644
index 0000000..5ff73fc
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-reflection-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-svg-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-svg-expected.png
new file mode 100644
index 0000000..32f2bd7
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-svg-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-svg-fill-text-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-svg-fill-text-expected.png
new file mode 100644
index 0000000..50d8f77
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-svg-fill-text-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-svg-foreign-object-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-svg-foreign-object-expected.png
new file mode 100644
index 0000000..35cf361
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/color-profile-svg-foreign-object-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/exif-orientation-css-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/exif-orientation-css-expected.png
new file mode 100644
index 0000000..8cd05528
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/exif-orientation-css-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/exif-orientation-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/exif-orientation-expected.png
new file mode 100644
index 0000000..957d1e2b
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/exif-orientation-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/exif-orientation-height-image-document-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/exif-orientation-height-image-document-expected.png
new file mode 100644
index 0000000..2a0471c
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/exif-orientation-height-image-document-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/exif-orientation-image-document-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/exif-orientation-image-document-expected.png
new file mode 100644
index 0000000..345f4c7
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/exif-orientation-image-document-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/gray-scale-jpeg-with-color-profile-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/gray-scale-jpeg-with-color-profile-expected.png
new file mode 100644
index 0000000..5e262d1
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/gray-scale-jpeg-with-color-profile-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/image-map-anchor-children-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/image-map-anchor-children-expected.png
new file mode 100644
index 0000000..332dc1b
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/image-map-anchor-children-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/imagemap-case-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/imagemap-case-expected.png
new file mode 100644
index 0000000..c09b5a2
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/imagemap-case-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/imagemap-circle-focus-ring-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/imagemap-circle-focus-ring-expected.png
new file mode 100644
index 0000000..741f56e
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/imagemap-circle-focus-ring-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-expected.png
new file mode 100644
index 0000000..65db3546
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-outline-color-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-outline-color-expected.png
new file mode 100644
index 0000000..3a098b111
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-outline-color-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png
new file mode 100644
index 0000000..57559f1
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-outline-color-not-inherited-from-map-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-outline-color-not-inherited-from-map-expected.png
new file mode 100644
index 0000000..e9970706
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-outline-color-not-inherited-from-map-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-zero-outline-width-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-zero-outline-width-expected.png
new file mode 100644
index 0000000..d998acc
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-zero-outline-width-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-zoom-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-zoom-expected.png
new file mode 100644
index 0000000..9a0e86f
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-zoom-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/imagemap-overflowing-circle-focus-ring-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/imagemap-overflowing-circle-focus-ring-expected.png
new file mode 100644
index 0000000..db01c90
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/imagemap-overflowing-circle-focus-ring-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/imagemap-overflowing-polygon-focus-ring-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/imagemap-overflowing-polygon-focus-ring-expected.png
new file mode 100644
index 0000000..8debcc7
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/imagemap-overflowing-polygon-focus-ring-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/imagemap-polygon-focus-ring-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/imagemap-polygon-focus-ring-expected.png
new file mode 100644
index 0000000..2e2a62a
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/imagemap-polygon-focus-ring-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/jpeg-with-color-profile-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/jpeg-with-color-profile-expected.png
new file mode 100644
index 0000000..6756bfc
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/jpeg-with-color-profile-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/jpeg-yuv-image-decoding-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/jpeg-yuv-image-decoding-expected.png
new file mode 100644
index 0000000..720036e
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/jpeg-yuv-image-decoding-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/png-with-color-profile-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/png-with-color-profile-expected.png
new file mode 100644
index 0000000..6756bfc
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/png-with-color-profile-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/rgb-png-with-cmyk-color-profile-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/rgb-png-with-cmyk-color-profile-expected.png
new file mode 100644
index 0000000..8025909
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/rgb-png-with-cmyk-color-profile-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/webp-color-profile-lossy-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/webp-color-profile-lossy-expected.png
new file mode 100644
index 0000000..187172f
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/webp-color-profile-lossy-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/ycbcr-with-cmyk-color-profile-expected.png b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/ycbcr-with-cmyk-color-profile-expected.png
new file mode 100644
index 0000000..abad02f
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/fast/images/ycbcr-with-cmyk-color-profile-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/12-55-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/12-55-expected.png
new file mode 100644
index 0000000..e6e2ac8
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/12-55-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/182-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/182-expected.png
new file mode 100644
index 0000000..1b6d9d2
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/182-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/2-comp-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/2-comp-expected.png
new file mode 100644
index 0000000..742188e
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/2-comp-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/2-dht-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/2-dht-expected.png
new file mode 100644
index 0000000..cb6d7c9
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/2-dht-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/23-55-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/23-55-expected.png
new file mode 100644
index 0000000..74a03be
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/23-55-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/55-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/55-expected.png
new file mode 100644
index 0000000..79c878d
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/55-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-animate-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-animate-expected.png
new file mode 100644
index 0000000..8d5f8118
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-animate-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-animate-rotate-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-animate-rotate-expected.png
new file mode 100644
index 0000000..8da7f1c
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-animate-rotate-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-background-clip-text-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-background-clip-text-expected.png
new file mode 100644
index 0000000..0e9b635
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-background-clip-text-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-background-image-cover-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-background-image-cover-expected.png
new file mode 100644
index 0000000..02e8f19
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-background-image-cover-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-background-image-cross-fade-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-background-image-cross-fade-expected.png
new file mode 100644
index 0000000..8485de08
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-background-image-cross-fade-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-background-image-cross-fade-png-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-background-image-cross-fade-png-expected.png
new file mode 100644
index 0000000..8485de08
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-background-image-cross-fade-png-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-background-image-repeat-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-background-image-repeat-expected.png
new file mode 100644
index 0000000..7a710244
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-background-image-repeat-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-background-image-space-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-background-image-space-expected.png
new file mode 100644
index 0000000..9b670458
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-background-image-space-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-border-fade-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-border-fade-expected.png
new file mode 100644
index 0000000..2b22ec58
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-border-fade-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-border-image-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-border-image-expected.png
new file mode 100644
index 0000000..7a6bdb02
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-border-image-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-border-image-source-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-border-image-source-expected.png
new file mode 100644
index 0000000..38a4da5
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-border-image-source-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-border-radius-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-border-radius-expected.png
new file mode 100644
index 0000000..c77aee7
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-border-radius-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-filter-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-filter-expected.png
new file mode 100644
index 0000000..c9ad3f11
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-filter-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-group-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-group-expected.png
new file mode 100644
index 0000000..c73f9b8
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-group-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-iframe-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-iframe-expected.png
new file mode 100644
index 0000000..a1a01e36
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-iframe-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-image-canvas-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-image-canvas-expected.png
new file mode 100644
index 0000000..3f506a6
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-image-canvas-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-image-canvas-pattern-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-image-canvas-pattern-expected.png
new file mode 100644
index 0000000..2d3f4f0
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-image-canvas-pattern-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-image-canvas-svg-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-image-canvas-svg-expected.png
new file mode 100644
index 0000000..e507c163
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-image-canvas-svg-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-image-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-image-expected.png
new file mode 100644
index 0000000..5458712
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-image-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-image-filter-all-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-image-filter-all-expected.png
new file mode 100644
index 0000000..8a48115d
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-image-filter-all-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-image-object-fit-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-image-object-fit-expected.png
new file mode 100644
index 0000000..7a83827
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-image-object-fit-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-image-profile-match-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-image-profile-match-expected.png
new file mode 100644
index 0000000..b34392b
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-image-profile-match-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-image-shape-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-image-shape-expected.png
new file mode 100644
index 0000000..5c53b91
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-image-shape-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-image-svg-resource-url-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-image-svg-resource-url-expected.png
new file mode 100644
index 0000000..805ff3ec
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-image-svg-resource-url-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-layer-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-layer-expected.png
new file mode 100644
index 0000000..39b6c72
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-layer-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-layer-filter-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-layer-filter-expected.png
new file mode 100644
index 0000000..8b5f1390
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-layer-filter-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-mask-image-svg-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-mask-image-svg-expected.png
new file mode 100644
index 0000000..85dc0a1
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-mask-image-svg-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-munsell-adobe-to-srgb-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-munsell-adobe-to-srgb-expected.png
new file mode 100644
index 0000000..5b0ba139
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-munsell-adobe-to-srgb-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-munsell-srgb-to-srgb-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-munsell-srgb-to-srgb-expected.png
new file mode 100644
index 0000000..b5e2538
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-munsell-srgb-to-srgb-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-object-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-object-expected.png
new file mode 100644
index 0000000..ec736c7
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-object-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-reflection-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-reflection-expected.png
new file mode 100644
index 0000000..f76c44f
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-reflection-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-svg-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-svg-expected.png
new file mode 100644
index 0000000..0ede66c
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-svg-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-svg-fill-text-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-svg-fill-text-expected.png
new file mode 100644
index 0000000..4b634fa
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-svg-fill-text-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-svg-foreign-object-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-svg-foreign-object-expected.png
new file mode 100644
index 0000000..0f3be1c6
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/color-profile-svg-foreign-object-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/exif-orientation-css-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/exif-orientation-css-expected.png
new file mode 100644
index 0000000..9bdf915
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/exif-orientation-css-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/exif-orientation-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/exif-orientation-expected.png
new file mode 100644
index 0000000..06b7ef6a
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/exif-orientation-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/exif-orientation-height-image-document-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/exif-orientation-height-image-document-expected.png
new file mode 100644
index 0000000..eb4402b
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/exif-orientation-height-image-document-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/exif-orientation-image-document-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/exif-orientation-image-document-expected.png
new file mode 100644
index 0000000..28fdfad
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/exif-orientation-image-document-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/gray-scale-jpeg-with-color-profile-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/gray-scale-jpeg-with-color-profile-expected.png
new file mode 100644
index 0000000..06917af
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/gray-scale-jpeg-with-color-profile-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/image-map-anchor-children-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/image-map-anchor-children-expected.png
new file mode 100644
index 0000000..a6bad11
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/image-map-anchor-children-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/imagemap-case-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/imagemap-case-expected.png
new file mode 100644
index 0000000..38a92f2
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/imagemap-case-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/imagemap-circle-focus-ring-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/imagemap-circle-focus-ring-expected.png
new file mode 100644
index 0000000..de59784
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/imagemap-circle-focus-ring-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-expected.png
new file mode 100644
index 0000000..2ba90f0f
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-outline-color-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-outline-color-expected.png
new file mode 100644
index 0000000..d4486ea
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-outline-color-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png
new file mode 100644
index 0000000..bb7cf4e
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-outline-color-not-inherited-from-map-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-outline-color-not-inherited-from-map-expected.png
new file mode 100644
index 0000000..0d400f6
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-outline-color-not-inherited-from-map-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-zero-outline-width-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-zero-outline-width-expected.png
new file mode 100644
index 0000000..9cc4afa
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-zero-outline-width-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-zoom-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-zoom-expected.png
new file mode 100644
index 0000000..2e1da96
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/imagemap-focus-ring-zoom-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/imagemap-overflowing-circle-focus-ring-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/imagemap-overflowing-circle-focus-ring-expected.png
new file mode 100644
index 0000000..fbd7a32a
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/imagemap-overflowing-circle-focus-ring-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/imagemap-overflowing-polygon-focus-ring-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/imagemap-overflowing-polygon-focus-ring-expected.png
new file mode 100644
index 0000000..7f2bda2
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/imagemap-overflowing-polygon-focus-ring-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/imagemap-polygon-focus-ring-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/imagemap-polygon-focus-ring-expected.png
new file mode 100644
index 0000000..ee643910
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/imagemap-polygon-focus-ring-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/jpeg-with-color-profile-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/jpeg-with-color-profile-expected.png
new file mode 100644
index 0000000..2fa346a
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/jpeg-with-color-profile-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/jpeg-yuv-image-decoding-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/jpeg-yuv-image-decoding-expected.png
new file mode 100644
index 0000000..d3de586
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/jpeg-yuv-image-decoding-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/png-with-color-profile-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/png-with-color-profile-expected.png
new file mode 100644
index 0000000..2fa346a
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/png-with-color-profile-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/rgb-png-with-cmyk-color-profile-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/rgb-png-with-cmyk-color-profile-expected.png
new file mode 100644
index 0000000..4b5b0739
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/rgb-png-with-cmyk-color-profile-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/webp-color-profile-lossy-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/webp-color-profile-lossy-expected.png
new file mode 100644
index 0000000..39549b05
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/webp-color-profile-lossy-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/ycbcr-with-cmyk-color-profile-expected.png b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/ycbcr-with-cmyk-color-profile-expected.png
new file mode 100644
index 0000000..5781422
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/fast/images/ycbcr-with-cmyk-color-profile-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/virtual/gpu-rasterization/fast/images/README.txt b/third_party/WebKit/LayoutTests/virtual/gpu-rasterization/fast/images/README.txt
new file mode 100644
index 0000000..7ae518a
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/virtual/gpu-rasterization/fast/images/README.txt
@@ -0,0 +1,2 @@
+# Test suite to run fast/images with --force-gpu-rasterization
+# https://crbug.com/600087
diff --git a/third_party/WebKit/LayoutTests/virtual/gpu-rasterization/fast/images/image-css3-content-data-expected.png b/third_party/WebKit/LayoutTests/virtual/gpu-rasterization/fast/images/image-css3-content-data-expected.png
new file mode 100644
index 0000000..844c848
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/virtual/gpu-rasterization/fast/images/image-css3-content-data-expected.png
Binary files differ
diff --git a/third_party/WebKit/Source/bindings/IDLExtendedAttributes.md b/third_party/WebKit/Source/bindings/IDLExtendedAttributes.md
index b828ec2..82ef559 100644
--- a/third_party/WebKit/Source/bindings/IDLExtendedAttributes.md
+++ b/third_party/WebKit/Source/bindings/IDLExtendedAttributes.md
@@ -935,7 +935,7 @@
 ] interface BatteryManager { ... };
 ```
 
-In order to generate correct binding layer code for an interface, `[GarbageCollected]` must be supplied if the object is an Oilpan-based object. Using both `[GarbageCollected]` and `[WillBeGarbageCollected]` is not allowed, but an interface object deriving from an interface annotated with `[WillBeGarbageCollected]` may override it with `[GarbageCollected]`.
+In order to generate correct binding layer code for an interface, `[GarbageCollected]` must be supplied if the object is an Oilpan-based object.
 
 
 ### [Iterable] _(i)_
@@ -1288,23 +1288,6 @@
 
 The `[SetWrapperReferenceTo]` extended attribute takes a value, which is the method name to call to get the target object. For example, with the above declaration a call will be made to `YYY::targetMethod()` to get the target of the reference.
 
-### [WillBeGarbageCollected] _(i)_
-
-Summary: The `[WillBeGarbageCollected]` attributes indicates that if Oilpan is enabled, the object resides on its heap and is controlled by the Oilpan garbage collector.
-
-Usage: `[WillBeGarbageCollected]` can be specified on interfaces, and is inherited:
-
-```webidl
-[
-  WillBeGarbageCollected
-] interface AnimationEffect { ... };
-```
-
-The attribute supports transitioning an object to Oilpan, allowing it to be Oilpan controlled if Oilpan is universally enabled, but implemented as a 'normal' ref-counted object if not. The generated bindings code will handle either case, depending on that compile-time setting (i.e., Oilpan enabled or not.)
-
-When the Oilpan transition period is over, support for `[WillBeGarbageCollected]` will be phased out. So, unless there are existing constraints why you have to use the conditional `[WillBeGarbageCollected]`, using `[GarbageCollected]` is preferable.
-
-
 ## Rare Blink-specific IDL Extended Attributes
 
 These extended attributes are rarely used, generally only in one or two places. These are often replacements for `[Custom]` bindings, and may be candidates for deprecation and removal.
diff --git a/third_party/WebKit/Source/bindings/IDLExtendedAttributes.txt b/third_party/WebKit/Source/bindings/IDLExtendedAttributes.txt
index e8978e7..595ce88 100644
--- a/third_party/WebKit/Source/bindings/IDLExtendedAttributes.txt
+++ b/third_party/WebKit/Source/bindings/IDLExtendedAttributes.txt
@@ -97,4 +97,3 @@
 URL
 Unforgeable
 Unscopeable
-WillBeGarbageCollected
diff --git a/third_party/WebKit/Source/bindings/core/v8/WrapperTypeInfo.h b/third_party/WebKit/Source/bindings/core/v8/WrapperTypeInfo.h
index 2008289..82e7bc91 100644
--- a/third_party/WebKit/Source/bindings/core/v8/WrapperTypeInfo.h
+++ b/third_party/WebKit/Source/bindings/core/v8/WrapperTypeInfo.h
@@ -92,7 +92,8 @@
 
     enum GCType {
         GarbageCollectedObject,
-        WillBeGarbageCollectedObject,
+        // TODO(haraken): Remove RefCountedObject. All DOM objects that inherit
+        // from ScriptWrappable must be moved to Oilpan's heap.
         RefCountedObject,
     };
 
@@ -130,11 +131,7 @@
 
     bool isGarbageCollected() const
     {
-        return (gcType == GarbageCollectedObject
-#if ENABLE(OILPAN)
-                || gcType == WillBeGarbageCollectedObject
-#endif
-                );
+        return gcType == GarbageCollectedObject;
     }
 
     void refObject(ScriptWrappable* scriptWrappable) const
diff --git a/third_party/WebKit/Source/bindings/scripts/code_generator_v8.py b/third_party/WebKit/Source/bindings/scripts/code_generator_v8.py
index 381d321..5f89b68 100644
--- a/third_party/WebKit/Source/bindings/scripts/code_generator_v8.py
+++ b/third_party/WebKit/Source/bindings/scripts/code_generator_v8.py
@@ -122,7 +122,6 @@
     IdlType.set_enums(info_provider.enumerations)
     IdlType.set_implemented_as_interfaces(interfaces_info['implemented_as_interfaces'])
     IdlType.set_garbage_collected_types(interfaces_info['garbage_collected_interfaces'])
-    IdlType.set_will_be_garbage_collected_types(interfaces_info['will_be_garbage_collected_interfaces'])
     v8_types.set_component_dirs(interfaces_info['component_dirs'])
 
 
diff --git a/third_party/WebKit/Source/bindings/scripts/compute_interfaces_info_overall.py b/third_party/WebKit/Source/bindings/scripts/compute_interfaces_info_overall.py
index 4ae26151..cdfeaaf 100755
--- a/third_party/WebKit/Source/bindings/scripts/compute_interfaces_info_overall.py
+++ b/third_party/WebKit/Source/bindings/scripts/compute_interfaces_info_overall.py
@@ -92,7 +92,6 @@
     'ActiveScriptWrappable',
     'DependentLifetime',
     'GarbageCollected',
-    'WillBeGarbageCollected',
 ])
 
 # Main variable (filled in and exported)
@@ -169,7 +168,6 @@
     dictionaries = {}
     component_dirs = {}
     implemented_as_interfaces = {}
-    will_be_garbage_collected_interfaces = set()
     garbage_collected_interfaces = set()
     callback_interfaces = set()
 
@@ -186,8 +184,6 @@
             implemented_as_interfaces[interface_name] = interface_info['implemented_as']
 
         inherited_extended_attributes = interface_info['inherited_extended_attributes']
-        if 'WillBeGarbageCollected' in inherited_extended_attributes:
-            will_be_garbage_collected_interfaces.add(interface_name)
         if 'GarbageCollected' in inherited_extended_attributes:
             garbage_collected_interfaces.add(interface_name)
 
@@ -196,7 +192,6 @@
     interfaces_info['dictionaries'] = dictionaries
     interfaces_info['implemented_as_interfaces'] = implemented_as_interfaces
     interfaces_info['garbage_collected_interfaces'] = garbage_collected_interfaces
-    interfaces_info['will_be_garbage_collected_interfaces'] = will_be_garbage_collected_interfaces
     interfaces_info['component_dirs'] = component_dirs
 
 
diff --git a/third_party/WebKit/Source/bindings/scripts/v8_types.py b/third_party/WebKit/Source/bindings/scripts/v8_types.py
index 6c01a89..6e5e1d8 100644
--- a/third_party/WebKit/Source/bindings/scripts/v8_types.py
+++ b/third_party/WebKit/Source/bindings/scripts/v8_types.py
@@ -258,10 +258,6 @@
 def cpp_ptr_type(old_type, new_type, gc_type):
     if gc_type == 'GarbageCollectedObject':
         return new_type
-    if gc_type == 'WillBeGarbageCollectedObject':
-        if old_type == 'Vector':
-            return 'WillBe' + new_type
-        return old_type + 'WillBe' + new_type
     return old_type
 
 
@@ -305,31 +301,16 @@
         cls.garbage_collected_types.update(new_garbage_collected_types))
 
 
-# [WillBeGarbageCollected]
-IdlType.will_be_garbage_collected_types = set()
-
-IdlType.is_will_be_garbage_collected = property(
-    lambda self: self.base_type in IdlType.will_be_garbage_collected_types)
-
-IdlType.set_will_be_garbage_collected_types = classmethod(
-    lambda cls, new_will_be_garbage_collected_types:
-        cls.will_be_garbage_collected_types.update(new_will_be_garbage_collected_types))
-
-
 def gc_type(idl_type):
     if idl_type.is_garbage_collected or idl_type.is_dictionary or idl_type.is_union_type:
         return 'GarbageCollectedObject'
-    if idl_type.is_will_be_garbage_collected:
-        return 'WillBeGarbageCollectedObject'
     return 'RefCountedObject'
 
 IdlTypeBase.gc_type = property(gc_type)
 
 
 def is_traceable(idl_type):
-    return (idl_type.is_garbage_collected
-            or idl_type.is_will_be_garbage_collected
-            or idl_type.is_dictionary)
+    return (idl_type.is_garbage_collected or idl_type.is_dictionary)
 
 IdlTypeBase.is_traceable = property(is_traceable)
 IdlUnionType.is_traceable = property(lambda self: True)
diff --git a/third_party/WebKit/Source/bindings/scripts/v8_utilities.py b/third_party/WebKit/Source/bindings/scripts/v8_utilities.py
index cb167a69..723bb55 100644
--- a/third_party/WebKit/Source/bindings/scripts/v8_utilities.py
+++ b/third_party/WebKit/Source/bindings/scripts/v8_utilities.py
@@ -324,13 +324,11 @@
     return exposure_set.code()
 
 
-# [GarbageCollected], [WillBeGarbageCollected]
+# [GarbageCollected]
 def gc_type(definition):
     extended_attributes = definition.extended_attributes
     if 'GarbageCollected' in extended_attributes:
         return 'GarbageCollectedObject'
-    elif 'WillBeGarbageCollected' in extended_attributes:
-        return 'WillBeGarbageCollectedObject'
     return 'RefCountedObject'
 
 
diff --git a/third_party/WebKit/Source/bindings/templates/interface.cpp b/third_party/WebKit/Source/bindings/templates/interface.cpp
index 4315091..c0a9ae0c 100644
--- a/third_party/WebKit/Source/bindings/templates/interface.cpp
+++ b/third_party/WebKit/Source/bindings/templates/interface.cpp
@@ -924,22 +924,14 @@
 {% block ref_object_and_deref_object %}
 void {{v8_class}}::refObject(ScriptWrappable* scriptWrappable)
 {
-{% if gc_type == 'WillBeGarbageCollectedObject' %}
-#if !ENABLE(OILPAN)
-    scriptWrappable->toImpl<{{cpp_class}}>()->ref();
-#endif
-{% elif gc_type == 'RefCountedObject' %}
+{% if gc_type == 'RefCountedObject' %}
     scriptWrappable->toImpl<{{cpp_class}}>()->ref();
 {% endif %}
 }
 
 void {{v8_class}}::derefObject(ScriptWrappable* scriptWrappable)
 {
-{% if gc_type == 'WillBeGarbageCollectedObject' %}
-#if !ENABLE(OILPAN)
-    scriptWrappable->toImpl<{{cpp_class}}>()->deref();
-#endif
-{% elif gc_type == 'RefCountedObject' %}
+{% if gc_type == 'RefCountedObject' %}
     scriptWrappable->toImpl<{{cpp_class}}>()->deref();
 {% endif %}
 }
diff --git a/third_party/WebKit/Source/bindings/templates/interface.h b/third_party/WebKit/Source/bindings/templates/interface.h
index d62bc13..bfc651b 100644
--- a/third_party/WebKit/Source/bindings/templates/interface.h
+++ b/third_party/WebKit/Source/bindings/templates/interface.h
@@ -66,10 +66,6 @@
     {
         {% if gc_type == 'GarbageCollectedObject' %}
         visitor->trace(scriptWrappable->toImpl<{{cpp_class}}>());
-        {% elif gc_type == 'WillBeGarbageCollectedObject' %}
-#if ENABLE(OILPAN)
-        visitor->trace(scriptWrappable->toImpl<{{cpp_class}}>());
-#endif
         {% endif %}
     }
     {% if has_visit_dom_wrapper %}
diff --git a/third_party/WebKit/Source/bindings/tests/idls/core/TestCallbackInterface.idl b/third_party/WebKit/Source/bindings/tests/idls/core/TestCallbackInterface.idl
index cebfa19d..283ffb2 100644
--- a/third_party/WebKit/Source/bindings/tests/idls/core/TestCallbackInterface.idl
+++ b/third_party/WebKit/Source/bindings/tests/idls/core/TestCallbackInterface.idl
@@ -36,7 +36,4 @@
   void voidMethodTestInterfaceEmptyStringArg(TestInterfaceEmpty testInterfaceEmptyArg, DOMString stringArg);
   [CallWith=ThisValue] void callbackWithThisValueVoidMethodStringArg(DOMString stringArg);
   [Custom] void customVoidMethodTestInterfaceEmptyArg(TestInterfaceEmpty testInterfaceEmptyArg);
-  // [WillBeGarbageCollected]
-  void voidMethodWillBeGarbageCollectedSequenceArg(sequence<TestInterfaceWillBeGarbageCollected> sequenceArg);
-  void voidMethodWillBeGarbageCollectedArrayArg(TestInterfaceWillBeGarbageCollected[] arrayArg);
 };
diff --git a/third_party/WebKit/Source/bindings/tests/idls/core/TestDictionary.idl b/third_party/WebKit/Source/bindings/tests/idls/core/TestDictionary.idl
index 0ac0a68..5fce8e0 100644
--- a/third_party/WebKit/Source/bindings/tests/idls/core/TestDictionary.idl
+++ b/third_party/WebKit/Source/bindings/tests/idls/core/TestDictionary.idl
@@ -14,13 +14,10 @@
     TestInterface? testInterfaceOrNullMember;
     TestInterfaceGarbageCollected testInterfaceGarbageCollectedMember;
     TestInterfaceGarbageCollected? testInterfaceGarbageCollectedOrNullMember;
-    TestInterfaceWillBeGarbageCollected testInterfaceWillBeGarbageCollectedMember;
-    TestInterfaceWillBeGarbageCollected? testInterfaceWillBeGarbageCollectedOrNullMember;
     DOMString[] stringArrayMember;
     sequence<DOMString> stringSequenceMember = [];
     sequence<TestInterface> testInterfaceSequenceMember = [];
     sequence<TestInterfaceGarbageCollected> testInterfaceGarbageCollectedSequenceMember = [];
-    sequence<TestInterfaceWillBeGarbageCollected> testInterfaceWillBeGarbageCollectedSequenceMember = [];
     TestEnum enumMember = "foo";
     sequence<TestEnum> enumSequenceMember;
     Element? elementOrNullMember;
diff --git a/third_party/WebKit/Source/bindings/tests/idls/core/TestInterfaceWillBeGarbageCollected.idl b/third_party/WebKit/Source/bindings/tests/idls/core/TestInterfaceWillBeGarbageCollected.idl
deleted file mode 100644
index 8515a03..0000000
--- a/third_party/WebKit/Source/bindings/tests/idls/core/TestInterfaceWillBeGarbageCollected.idl
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (C) 2014 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-[
-    Constructor(DOMString str),
-    NamedConstructor=TestInterface(DOMString str),
-    WillBeGarbageCollected,
-    Unforgeable,
-] interface TestInterfaceWillBeGarbageCollected : EventTarget { // Inherit from EventTarget to test order of internal fields
-    attribute TestInterfaceWillBeGarbageCollected attr1;
-    void func(TestInterfaceWillBeGarbageCollected arg);
-};
diff --git a/third_party/WebKit/Source/bindings/tests/idls/core/TestObject.idl b/third_party/WebKit/Source/bindings/tests/idls/core/TestObject.idl
index 256750aa..2ef48b3 100644
--- a/third_party/WebKit/Source/bindings/tests/idls/core/TestObject.idl
+++ b/third_party/WebKit/Source/bindings/tests/idls/core/TestObject.idl
@@ -213,7 +213,6 @@
     [PerWorldBindings, PutForwards=href] readonly attribute TestNode locationWithPerWorldBindings;
     [PutForwards=href, LegacyInterfaceTypeChecking] readonly attribute TestNode locationLegacyInterfaceTypeChecking;
     [PutForwards=attr1] readonly attribute TestInterfaceGarbageCollected locationGarbageCollected;
-    [PutForwards=attr1] readonly attribute TestInterfaceWillBeGarbageCollected locationWillBeGarbageCollected;
     [RaisesException] attribute long raisesExceptionLongAttribute;
     [RaisesException=Getter] attribute long raisesExceptionGetterLongAttribute;
     [RaisesException=Setter] attribute long setterRaisesExceptionLongAttribute;
@@ -368,7 +367,6 @@
     sequence<long>? nullableLongSequenceMethod();
     // Union types
     (TestInterfaceGarbageCollected or DOMString) testInterfaceGarbageCollectedOrDOMStringMethod();
-    (TestInterfaceWillBeGarbageCollected or TestDictionary) testInterfaceWillBeGarbageCollectedOrTestDictionaryMethod();
     (boolean or DOMString or unrestricted double) booleanOrDOMStringOrUnrestrictedDoubleMethod();
     (TestInterface or long) testInterfaceOrLongMethod();
     void voidMethodDoubleOrDOMStringArg((double or DOMString) arg);
@@ -443,7 +441,6 @@
     void voidMethodVariadicTestInterfaceEmptyArg(TestInterfaceEmpty... variadicTestInterfaceEmptyArgs);
     void voidMethodTestInterfaceEmptyArgVariadicTestInterfaceEmptyArg(TestInterfaceEmpty testInterfaceEmptyArg, TestInterfaceEmpty... variadicTestInterfaceEmptyArgs);
     void voidMethodVariadicTestInterfaceGarbageCollectedArg(TestInterfaceGarbageCollected... variadicTestInterfaceGarbageCollectedArg);
-    void voidMethodVariadicTestInterfaceWillBeGarbageCollectedArg(TestInterfaceWillBeGarbageCollected... variadicTestInterfaceWillBeGarbageCollectedArg);
 
     // Overloaded methods
     void overloadedMethodA(long longArg);
@@ -580,8 +577,6 @@
     [Unforgeable] void unforgeableVoidMethod();
     void voidMethodTestInterfaceGarbageCollectedSequenceArg(sequence<TestInterfaceGarbageCollected> testInterfaceGarbageCollectedSequenceArg);
     void voidMethodTestInterfaceGarbageCollectedArrayArg(TestInterfaceGarbageCollected[] testInterfaceGarbageCollectedArrayArg);
-    void voidMethodTestInterfaceWillBeGarbageCollectedSequenceArg(sequence<TestInterfaceWillBeGarbageCollected> testInterfaceWillBeGarbageCollectedSequenceArg);
-    void voidMethodTestInterfaceWillBeGarbageCollectedArrayArg(TestInterfaceWillBeGarbageCollected[] testInterfaceWillBeGarbageCollectedArrayArg);
     [NewObject] TestInterface newObjectTestInterfaceMethod();
 
     serializer DOMString serializerMethod();
@@ -591,8 +586,6 @@
     attribute TestInterface testInterfaceAttribute; // [ImplementedAs]
     attribute TestInterfaceGarbageCollected testInterfaceGarbageCollectedAttribute; // [GarbageCollected]
     attribute TestInterfaceGarbageCollected? testInterfaceGarbageCollectedOrNullAttribute; // [GarbageCollected]
-    attribute TestInterfaceWillBeGarbageCollected testInterfaceWillBeGarbageCollectedAttribute; // [WillBeGarbageCollected]
-    attribute TestInterfaceWillBeGarbageCollected? testInterfaceWillBeGarbageCollectedOrNullAttribute; // [WillBeGarbageCollected]
 
     // Private scripts
     [ImplementedInPrivateScript] void voidMethodImplementedInPrivateScript();
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/TestDictionary.cpp b/third_party/WebKit/Source/bindings/tests/results/core/TestDictionary.cpp
index 484ba45..a4f3e5a4 100644
--- a/third_party/WebKit/Source/bindings/tests/results/core/TestDictionary.cpp
+++ b/third_party/WebKit/Source/bindings/tests/results/core/TestDictionary.cpp
@@ -20,7 +20,6 @@
     setStringSequenceMember(Vector<String>());
     setTestInterfaceGarbageCollectedSequenceMember(HeapVector<Member<TestInterfaceGarbageCollected>>());
     setTestInterfaceSequenceMember(Vector<RefPtr<TestInterfaceImplementation>>());
-    setTestInterfaceWillBeGarbageCollectedSequenceMember(HeapVector<Member<TestInterfaceWillBeGarbageCollected>>());
     setUnrestrictedDoubleMember(3.14);
 }
 
@@ -40,9 +39,6 @@
     visitor->trace(m_testInterfaceGarbageCollectedMember);
     visitor->trace(m_testInterfaceGarbageCollectedOrNullMember);
     visitor->trace(m_testInterfaceGarbageCollectedSequenceMember);
-    visitor->trace(m_testInterfaceWillBeGarbageCollectedMember);
-    visitor->trace(m_testInterfaceWillBeGarbageCollectedOrNullMember);
-    visitor->trace(m_testInterfaceWillBeGarbageCollectedSequenceMember);
 }
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/TestDictionary.h b/third_party/WebKit/Source/bindings/tests/results/core/TestDictionary.h
index a07b772..6383ba2 100644
--- a/third_party/WebKit/Source/bindings/tests/results/core/TestDictionary.h
+++ b/third_party/WebKit/Source/bindings/tests/results/core/TestDictionary.h
@@ -14,7 +14,6 @@
 #include "bindings/tests/idls/core/TestInterface2.h"
 #include "bindings/tests/idls/core/TestInterfaceGarbageCollected.h"
 #include "bindings/tests/idls/core/TestInterfaceImplementation.h"
-#include "bindings/tests/idls/core/TestInterfaceWillBeGarbageCollected.h"
 #include "core/CoreExport.h"
 #include "core/dom/DOMTypedArray.h"
 #include "core/dom/Element.h"
@@ -154,19 +153,6 @@
     const Vector<RefPtr<TestInterfaceImplementation>>& testInterfaceSequenceMember() const { return m_testInterfaceSequenceMember.get(); }
     void setTestInterfaceSequenceMember(const Vector<RefPtr<TestInterfaceImplementation>>& value) { m_testInterfaceSequenceMember = value; }
 
-    bool hasTestInterfaceWillBeGarbageCollectedMember() const { return m_testInterfaceWillBeGarbageCollectedMember; }
-    TestInterfaceWillBeGarbageCollected* testInterfaceWillBeGarbageCollectedMember() const { return m_testInterfaceWillBeGarbageCollectedMember; }
-    void setTestInterfaceWillBeGarbageCollectedMember(TestInterfaceWillBeGarbageCollected* value) { m_testInterfaceWillBeGarbageCollectedMember = value; }
-
-    bool hasTestInterfaceWillBeGarbageCollectedOrNullMember() const { return m_testInterfaceWillBeGarbageCollectedOrNullMember; }
-    TestInterfaceWillBeGarbageCollected* testInterfaceWillBeGarbageCollectedOrNullMember() const { return m_testInterfaceWillBeGarbageCollectedOrNullMember; }
-    void setTestInterfaceWillBeGarbageCollectedOrNullMember(TestInterfaceWillBeGarbageCollected* value) { m_testInterfaceWillBeGarbageCollectedOrNullMember = value; }
-    void setTestInterfaceWillBeGarbageCollectedOrNullMemberToNull() { m_testInterfaceWillBeGarbageCollectedOrNullMember = Member<TestInterfaceWillBeGarbageCollected>(); }
-
-    bool hasTestInterfaceWillBeGarbageCollectedSequenceMember() const { return !m_testInterfaceWillBeGarbageCollectedSequenceMember.isNull(); }
-    const HeapVector<Member<TestInterfaceWillBeGarbageCollected>>& testInterfaceWillBeGarbageCollectedSequenceMember() const { return m_testInterfaceWillBeGarbageCollectedSequenceMember.get(); }
-    void setTestInterfaceWillBeGarbageCollectedSequenceMember(const HeapVector<Member<TestInterfaceWillBeGarbageCollected>>& value) { m_testInterfaceWillBeGarbageCollectedSequenceMember = value; }
-
     bool hasUint8ArrayMember() const { return m_uint8ArrayMember; }
     PassRefPtr<DOMUint8Array> uint8ArrayMember() const { return m_uint8ArrayMember; }
     void setUint8ArrayMember(PassRefPtr<DOMUint8Array> value) { m_uint8ArrayMember = value; }
@@ -207,9 +193,6 @@
     RefPtr<TestInterfaceImplementation> m_testInterfaceMember;
     RefPtr<TestInterfaceImplementation> m_testInterfaceOrNullMember;
     Nullable<Vector<RefPtr<TestInterfaceImplementation>>> m_testInterfaceSequenceMember;
-    Member<TestInterfaceWillBeGarbageCollected> m_testInterfaceWillBeGarbageCollectedMember;
-    Member<TestInterfaceWillBeGarbageCollected> m_testInterfaceWillBeGarbageCollectedOrNullMember;
-    Nullable<HeapVector<Member<TestInterfaceWillBeGarbageCollected>>> m_testInterfaceWillBeGarbageCollectedSequenceMember;
     RefPtr<DOMUint8Array> m_uint8ArrayMember;
     Nullable<double> m_unrestrictedDoubleMember;
 
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/UnionTypesCore.cpp b/third_party/WebKit/Source/bindings/tests/results/core/UnionTypesCore.cpp
index 5d71c21..53a90b2 100644
--- a/third_party/WebKit/Source/bindings/tests/results/core/UnionTypesCore.cpp
+++ b/third_party/WebKit/Source/bindings/tests/results/core/UnionTypesCore.cpp
@@ -16,7 +16,6 @@
 #include "bindings/core/v8/V8TestInterface2.h"
 #include "bindings/core/v8/V8TestInterfaceEmpty.h"
 #include "bindings/core/v8/V8TestInterfaceGarbageCollected.h"
-#include "bindings/core/v8/V8TestInterfaceWillBeGarbageCollected.h"
 #include "bindings/core/v8/V8Uint8Array.h"
 #include "bindings/tests/idls/core/TestImplements2.h"
 #include "bindings/tests/idls/core/TestImplements3Implementation.h"
@@ -1450,109 +1449,6 @@
     return impl;
 }
 
-TestInterfaceWillBeGarbageCollectedOrTestDictionary::TestInterfaceWillBeGarbageCollectedOrTestDictionary()
-    : m_type(SpecificTypeNone)
-{
-}
-
-TestInterfaceWillBeGarbageCollected* TestInterfaceWillBeGarbageCollectedOrTestDictionary::getAsTestInterfaceWillBeGarbageCollected() const
-{
-    ASSERT(isTestInterfaceWillBeGarbageCollected());
-    return m_testInterfaceWillBeGarbageCollected;
-}
-
-void TestInterfaceWillBeGarbageCollectedOrTestDictionary::setTestInterfaceWillBeGarbageCollected(TestInterfaceWillBeGarbageCollected* value)
-{
-    ASSERT(isNull());
-    m_testInterfaceWillBeGarbageCollected = value;
-    m_type = SpecificTypeTestInterfaceWillBeGarbageCollected;
-}
-
-TestInterfaceWillBeGarbageCollectedOrTestDictionary TestInterfaceWillBeGarbageCollectedOrTestDictionary::fromTestInterfaceWillBeGarbageCollected(TestInterfaceWillBeGarbageCollected* value)
-{
-    TestInterfaceWillBeGarbageCollectedOrTestDictionary container;
-    container.setTestInterfaceWillBeGarbageCollected(value);
-    return container;
-}
-
-TestDictionary TestInterfaceWillBeGarbageCollectedOrTestDictionary::getAsTestDictionary() const
-{
-    ASSERT(isTestDictionary());
-    return m_testDictionary;
-}
-
-void TestInterfaceWillBeGarbageCollectedOrTestDictionary::setTestDictionary(TestDictionary value)
-{
-    ASSERT(isNull());
-    m_testDictionary = value;
-    m_type = SpecificTypeTestDictionary;
-}
-
-TestInterfaceWillBeGarbageCollectedOrTestDictionary TestInterfaceWillBeGarbageCollectedOrTestDictionary::fromTestDictionary(TestDictionary value)
-{
-    TestInterfaceWillBeGarbageCollectedOrTestDictionary container;
-    container.setTestDictionary(value);
-    return container;
-}
-
-TestInterfaceWillBeGarbageCollectedOrTestDictionary::TestInterfaceWillBeGarbageCollectedOrTestDictionary(const TestInterfaceWillBeGarbageCollectedOrTestDictionary&) = default;
-TestInterfaceWillBeGarbageCollectedOrTestDictionary::~TestInterfaceWillBeGarbageCollectedOrTestDictionary() = default;
-TestInterfaceWillBeGarbageCollectedOrTestDictionary& TestInterfaceWillBeGarbageCollectedOrTestDictionary::operator=(const TestInterfaceWillBeGarbageCollectedOrTestDictionary&) = default;
-
-DEFINE_TRACE(TestInterfaceWillBeGarbageCollectedOrTestDictionary)
-{
-    visitor->trace(m_testInterfaceWillBeGarbageCollected);
-    visitor->trace(m_testDictionary);
-}
-
-void V8TestInterfaceWillBeGarbageCollectedOrTestDictionary::toImpl(v8::Isolate* isolate, v8::Local<v8::Value> v8Value, TestInterfaceWillBeGarbageCollectedOrTestDictionary& impl, UnionTypeConversionMode conversionMode, ExceptionState& exceptionState)
-{
-    if (v8Value.IsEmpty())
-        return;
-
-    if (conversionMode == UnionTypeConversionMode::Nullable && isUndefinedOrNull(v8Value))
-        return;
-
-    if (V8TestInterfaceWillBeGarbageCollected::hasInstance(v8Value, isolate)) {
-        RawPtr<TestInterfaceWillBeGarbageCollected> cppValue = V8TestInterfaceWillBeGarbageCollected::toImpl(v8::Local<v8::Object>::Cast(v8Value));
-        impl.setTestInterfaceWillBeGarbageCollected(cppValue);
-        return;
-    }
-
-    if (isUndefinedOrNull(v8Value) || v8Value->IsObject()) {
-        TestDictionary cppValue;
-        V8TestDictionary::toImpl(isolate, v8Value, cppValue, exceptionState);
-        if (exceptionState.hadException())
-            return;
-        impl.setTestDictionary(cppValue);
-        return;
-    }
-
-    exceptionState.throwTypeError("The provided value is not of type '(TestInterfaceWillBeGarbageCollected or TestDictionary)'");
-}
-
-v8::Local<v8::Value> toV8(const TestInterfaceWillBeGarbageCollectedOrTestDictionary& impl, v8::Local<v8::Object> creationContext, v8::Isolate* isolate)
-{
-    switch (impl.m_type) {
-    case TestInterfaceWillBeGarbageCollectedOrTestDictionary::SpecificTypeNone:
-        return v8::Null(isolate);
-    case TestInterfaceWillBeGarbageCollectedOrTestDictionary::SpecificTypeTestInterfaceWillBeGarbageCollected:
-        return toV8(impl.getAsTestInterfaceWillBeGarbageCollected(), creationContext, isolate);
-    case TestInterfaceWillBeGarbageCollectedOrTestDictionary::SpecificTypeTestDictionary:
-        return toV8(impl.getAsTestDictionary(), creationContext, isolate);
-    default:
-        ASSERT_NOT_REACHED();
-    }
-    return v8::Local<v8::Value>();
-}
-
-TestInterfaceWillBeGarbageCollectedOrTestDictionary NativeValueTraits<TestInterfaceWillBeGarbageCollectedOrTestDictionary>::nativeValue(v8::Isolate* isolate, v8::Local<v8::Value> value, ExceptionState& exceptionState)
-{
-    TestInterfaceWillBeGarbageCollectedOrTestDictionary impl;
-    V8TestInterfaceWillBeGarbageCollectedOrTestDictionary::toImpl(isolate, value, impl, UnionTypeConversionMode::NotNullable, exceptionState);
-    return impl;
-}
-
 UnrestrictedDoubleOrString::UnrestrictedDoubleOrString()
     : m_type(SpecificTypeNone)
 {
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/UnionTypesCore.h b/third_party/WebKit/Source/bindings/tests/results/core/UnionTypesCore.h
index 269a7fa..741b686 100644
--- a/third_party/WebKit/Source/bindings/tests/results/core/UnionTypesCore.h
+++ b/third_party/WebKit/Source/bindings/tests/results/core/UnionTypesCore.h
@@ -25,7 +25,6 @@
 class TestInterfaceEmpty;
 class TestInterfaceGarbageCollected;
 class TestInterfaceImplementation;
-class TestInterfaceWillBeGarbageCollected;
 
 class CORE_EXPORT ArrayBufferOrArrayBufferViewOrDictionary final {
     DISALLOW_NEW_EXCEPT_PLACEMENT_NEW();
@@ -737,59 +736,6 @@
     CORE_EXPORT static TestInterfaceOrTestInterfaceEmpty nativeValue(v8::Isolate*, v8::Local<v8::Value>, ExceptionState&);
 };
 
-class CORE_EXPORT TestInterfaceWillBeGarbageCollectedOrTestDictionary final {
-    DISALLOW_NEW_EXCEPT_PLACEMENT_NEW();
-public:
-    TestInterfaceWillBeGarbageCollectedOrTestDictionary();
-    bool isNull() const { return m_type == SpecificTypeNone; }
-
-    bool isTestInterfaceWillBeGarbageCollected() const { return m_type == SpecificTypeTestInterfaceWillBeGarbageCollected; }
-    TestInterfaceWillBeGarbageCollected* getAsTestInterfaceWillBeGarbageCollected() const;
-    void setTestInterfaceWillBeGarbageCollected(TestInterfaceWillBeGarbageCollected*);
-    static TestInterfaceWillBeGarbageCollectedOrTestDictionary fromTestInterfaceWillBeGarbageCollected(TestInterfaceWillBeGarbageCollected*);
-
-    bool isTestDictionary() const { return m_type == SpecificTypeTestDictionary; }
-    TestDictionary getAsTestDictionary() const;
-    void setTestDictionary(TestDictionary);
-    static TestInterfaceWillBeGarbageCollectedOrTestDictionary fromTestDictionary(TestDictionary);
-
-    TestInterfaceWillBeGarbageCollectedOrTestDictionary(const TestInterfaceWillBeGarbageCollectedOrTestDictionary&);
-    ~TestInterfaceWillBeGarbageCollectedOrTestDictionary();
-    TestInterfaceWillBeGarbageCollectedOrTestDictionary& operator=(const TestInterfaceWillBeGarbageCollectedOrTestDictionary&);
-    DECLARE_TRACE();
-
-private:
-    enum SpecificTypes {
-        SpecificTypeNone,
-        SpecificTypeTestInterfaceWillBeGarbageCollected,
-        SpecificTypeTestDictionary,
-    };
-    SpecificTypes m_type;
-
-    Member<TestInterfaceWillBeGarbageCollected> m_testInterfaceWillBeGarbageCollected;
-    TestDictionary m_testDictionary;
-
-    friend CORE_EXPORT v8::Local<v8::Value> toV8(const TestInterfaceWillBeGarbageCollectedOrTestDictionary&, v8::Local<v8::Object>, v8::Isolate*);
-};
-
-class V8TestInterfaceWillBeGarbageCollectedOrTestDictionary final {
-public:
-    CORE_EXPORT static void toImpl(v8::Isolate*, v8::Local<v8::Value>, TestInterfaceWillBeGarbageCollectedOrTestDictionary&, UnionTypeConversionMode, ExceptionState&);
-};
-
-CORE_EXPORT v8::Local<v8::Value> toV8(const TestInterfaceWillBeGarbageCollectedOrTestDictionary&, v8::Local<v8::Object>, v8::Isolate*);
-
-template <class CallbackInfo>
-inline void v8SetReturnValue(const CallbackInfo& callbackInfo, TestInterfaceWillBeGarbageCollectedOrTestDictionary& impl)
-{
-    v8SetReturnValue(callbackInfo, toV8(impl, callbackInfo.Holder(), callbackInfo.GetIsolate()));
-}
-
-template <>
-struct NativeValueTraits<TestInterfaceWillBeGarbageCollectedOrTestDictionary> {
-    CORE_EXPORT static TestInterfaceWillBeGarbageCollectedOrTestDictionary nativeValue(v8::Isolate*, v8::Local<v8::Value>, ExceptionState&);
-};
-
 class CORE_EXPORT UnrestrictedDoubleOrString final {
     DISALLOW_NEW_EXCEPT_PLACEMENT_NEW();
 public:
@@ -862,7 +808,6 @@
 WTF_ALLOW_MOVE_AND_INIT_WITH_MEM_FUNCTIONS(blink::TestInterfaceGarbageCollectedOrString);
 WTF_ALLOW_MOVE_AND_INIT_WITH_MEM_FUNCTIONS(blink::TestInterfaceOrLong);
 WTF_ALLOW_MOVE_AND_INIT_WITH_MEM_FUNCTIONS(blink::TestInterfaceOrTestInterfaceEmpty);
-WTF_ALLOW_MOVE_AND_INIT_WITH_MEM_FUNCTIONS(blink::TestInterfaceWillBeGarbageCollectedOrTestDictionary);
 WTF_ALLOW_MOVE_AND_INIT_WITH_MEM_FUNCTIONS(blink::UnrestrictedDoubleOrString);
 
 #endif // UnionTypeCore_h
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestCallbackInterface.cpp b/third_party/WebKit/Source/bindings/tests/results/core/V8TestCallbackInterface.cpp
index 92c8004..f14ccf5 100644
--- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestCallbackInterface.cpp
+++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestCallbackInterface.cpp
@@ -9,7 +9,6 @@
 #include "bindings/core/v8/ScriptController.h"
 #include "bindings/core/v8/V8Binding.h"
 #include "bindings/core/v8/V8TestInterfaceEmpty.h"
-#include "bindings/core/v8/V8TestInterfaceWillBeGarbageCollected.h"
 #include "core/dom/ExecutionContext.h"
 #include "wtf/Assertions.h"
 #include "wtf/GetPtr.h"
@@ -197,44 +196,4 @@
     ScriptController::callFunction(m_scriptState->getExecutionContext(), m_callback.newLocal(m_scriptState->isolate()), thisHandle, 1, argv, m_scriptState->isolate());
 }
 
-void V8TestCallbackInterface::voidMethodWillBeGarbageCollectedSequenceArg(const HeapVector<Member<TestInterfaceWillBeGarbageCollected>>& sequenceArg)
-{
-    if (!canInvokeCallback())
-        return;
-
-    if (!m_scriptState->contextIsValid())
-        return;
-
-    ScriptState::Scope scope(m_scriptState.get());
-    v8::Local<v8::Value> sequenceArgHandle = toV8(sequenceArg, m_scriptState->context()->Global(), m_scriptState->isolate());
-    if (sequenceArgHandle.IsEmpty()) {
-        if (!isScriptControllerTerminating())
-            CRASH();
-        return;
-    }
-    v8::Local<v8::Value> argv[] = { sequenceArgHandle };
-
-    ScriptController::callFunction(m_scriptState->getExecutionContext(), m_callback.newLocal(m_scriptState->isolate()), v8::Undefined(m_scriptState->isolate()), 1, argv, m_scriptState->isolate());
-}
-
-void V8TestCallbackInterface::voidMethodWillBeGarbageCollectedArrayArg(const HeapVector<Member<TestInterfaceWillBeGarbageCollected>>& arrayArg)
-{
-    if (!canInvokeCallback())
-        return;
-
-    if (!m_scriptState->contextIsValid())
-        return;
-
-    ScriptState::Scope scope(m_scriptState.get());
-    v8::Local<v8::Value> arrayArgHandle = toV8(arrayArg, m_scriptState->context()->Global(), m_scriptState->isolate());
-    if (arrayArgHandle.IsEmpty()) {
-        if (!isScriptControllerTerminating())
-            CRASH();
-        return;
-    }
-    v8::Local<v8::Value> argv[] = { arrayArgHandle };
-
-    ScriptController::callFunction(m_scriptState->getExecutionContext(), m_callback.newLocal(m_scriptState->isolate()), v8::Undefined(m_scriptState->isolate()), 1, argv, m_scriptState->isolate());
-}
-
 } // namespace blink
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestCallbackInterface.h b/third_party/WebKit/Source/bindings/tests/results/core/V8TestCallbackInterface.h
index f013f927..b0bdfb43 100644
--- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestCallbackInterface.h
+++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestCallbackInterface.h
@@ -36,8 +36,6 @@
     void voidMethodTestInterfaceEmptyStringArg(TestInterfaceEmpty* testInterfaceEmptyArg, const String& stringArg) override;
     void callbackWithThisValueVoidMethodStringArg(ScriptValue thisValue, const String& stringArg) override;
     void customVoidMethodTestInterfaceEmptyArg(TestInterfaceEmpty* testInterfaceEmptyArg) override;
-    void voidMethodWillBeGarbageCollectedSequenceArg(const HeapVector<Member<TestInterfaceWillBeGarbageCollected>>& sequenceArg) override;
-    void voidMethodWillBeGarbageCollectedArrayArg(const HeapVector<Member<TestInterfaceWillBeGarbageCollected>>& arrayArg) override;
 private:
     CORE_EXPORT V8TestCallbackInterface(v8::Local<v8::Function>, ScriptState*);
 
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestDictionary.cpp b/third_party/WebKit/Source/bindings/tests/results/core/V8TestDictionary.cpp
index cff88c3..204470c 100644
--- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestDictionary.cpp
+++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestDictionary.cpp
@@ -17,7 +17,6 @@
 #include "bindings/core/v8/V8TestInterface.h"
 #include "bindings/core/v8/V8TestInterface2.h"
 #include "bindings/core/v8/V8TestInterfaceGarbageCollected.h"
-#include "bindings/core/v8/V8TestInterfaceWillBeGarbageCollected.h"
 #include "bindings/core/v8/V8Uint8Array.h"
 #include "core/dom/FlexibleArrayBufferView.h"
 #include "core/frame/Deprecation.h"
@@ -572,60 +571,6 @@
     }
 
     {
-        v8::Local<v8::Value> testInterfaceWillBeGarbageCollectedMemberValue;
-        if (!v8Object->Get(isolate->GetCurrentContext(), v8String(isolate, "testInterfaceWillBeGarbageCollectedMember")).ToLocal(&testInterfaceWillBeGarbageCollectedMemberValue)) {
-            exceptionState.rethrowV8Exception(block.Exception());
-            return;
-        }
-        if (testInterfaceWillBeGarbageCollectedMemberValue.IsEmpty() || testInterfaceWillBeGarbageCollectedMemberValue->IsUndefined()) {
-            // Do nothing.
-        } else {
-            TestInterfaceWillBeGarbageCollected* testInterfaceWillBeGarbageCollectedMember = V8TestInterfaceWillBeGarbageCollected::toImplWithTypeCheck(isolate, testInterfaceWillBeGarbageCollectedMemberValue);
-            if (!testInterfaceWillBeGarbageCollectedMember && !testInterfaceWillBeGarbageCollectedMemberValue->IsNull()) {
-                exceptionState.throwTypeError("member testInterfaceWillBeGarbageCollectedMember is not of type TestInterfaceWillBeGarbageCollected.");
-                return;
-            }
-            impl.setTestInterfaceWillBeGarbageCollectedMember(testInterfaceWillBeGarbageCollectedMember);
-        }
-    }
-
-    {
-        v8::Local<v8::Value> testInterfaceWillBeGarbageCollectedOrNullMemberValue;
-        if (!v8Object->Get(isolate->GetCurrentContext(), v8String(isolate, "testInterfaceWillBeGarbageCollectedOrNullMember")).ToLocal(&testInterfaceWillBeGarbageCollectedOrNullMemberValue)) {
-            exceptionState.rethrowV8Exception(block.Exception());
-            return;
-        }
-        if (testInterfaceWillBeGarbageCollectedOrNullMemberValue.IsEmpty() || testInterfaceWillBeGarbageCollectedOrNullMemberValue->IsUndefined()) {
-            // Do nothing.
-        } else if (testInterfaceWillBeGarbageCollectedOrNullMemberValue->IsNull()) {
-            impl.setTestInterfaceWillBeGarbageCollectedOrNullMemberToNull();
-        } else {
-            TestInterfaceWillBeGarbageCollected* testInterfaceWillBeGarbageCollectedOrNullMember = V8TestInterfaceWillBeGarbageCollected::toImplWithTypeCheck(isolate, testInterfaceWillBeGarbageCollectedOrNullMemberValue);
-            if (!testInterfaceWillBeGarbageCollectedOrNullMember && !testInterfaceWillBeGarbageCollectedOrNullMemberValue->IsNull()) {
-                exceptionState.throwTypeError("member testInterfaceWillBeGarbageCollectedOrNullMember is not of type TestInterfaceWillBeGarbageCollected.");
-                return;
-            }
-            impl.setTestInterfaceWillBeGarbageCollectedOrNullMember(testInterfaceWillBeGarbageCollectedOrNullMember);
-        }
-    }
-
-    {
-        v8::Local<v8::Value> testInterfaceWillBeGarbageCollectedSequenceMemberValue;
-        if (!v8Object->Get(isolate->GetCurrentContext(), v8String(isolate, "testInterfaceWillBeGarbageCollectedSequenceMember")).ToLocal(&testInterfaceWillBeGarbageCollectedSequenceMemberValue)) {
-            exceptionState.rethrowV8Exception(block.Exception());
-            return;
-        }
-        if (testInterfaceWillBeGarbageCollectedSequenceMemberValue.IsEmpty() || testInterfaceWillBeGarbageCollectedSequenceMemberValue->IsUndefined()) {
-            // Do nothing.
-        } else {
-            HeapVector<Member<TestInterfaceWillBeGarbageCollected>> testInterfaceWillBeGarbageCollectedSequenceMember = (toMemberNativeArray<TestInterfaceWillBeGarbageCollected, V8TestInterfaceWillBeGarbageCollected>(testInterfaceWillBeGarbageCollectedSequenceMemberValue, 0, isolate, exceptionState));
-            if (exceptionState.hadException())
-                return;
-            impl.setTestInterfaceWillBeGarbageCollectedSequenceMember(testInterfaceWillBeGarbageCollectedSequenceMember);
-        }
-    }
-
-    {
         v8::Local<v8::Value> uint8ArrayMemberValue;
         if (!v8Object->Get(isolate->GetCurrentContext(), v8String(isolate, "uint8ArrayMember")).ToLocal(&uint8ArrayMemberValue)) {
             exceptionState.rethrowV8Exception(block.Exception());
@@ -857,24 +802,6 @@
             return false;
     }
 
-    if (impl.hasTestInterfaceWillBeGarbageCollectedMember()) {
-        if (!v8CallBoolean(dictionary->CreateDataProperty(isolate->GetCurrentContext(), v8String(isolate, "testInterfaceWillBeGarbageCollectedMember"), toV8(impl.testInterfaceWillBeGarbageCollectedMember(), creationContext, isolate))))
-            return false;
-    }
-
-    if (impl.hasTestInterfaceWillBeGarbageCollectedOrNullMember()) {
-        if (!v8CallBoolean(dictionary->CreateDataProperty(isolate->GetCurrentContext(), v8String(isolate, "testInterfaceWillBeGarbageCollectedOrNullMember"), toV8(impl.testInterfaceWillBeGarbageCollectedOrNullMember(), creationContext, isolate))))
-            return false;
-    }
-
-    if (impl.hasTestInterfaceWillBeGarbageCollectedSequenceMember()) {
-        if (!v8CallBoolean(dictionary->CreateDataProperty(isolate->GetCurrentContext(), v8String(isolate, "testInterfaceWillBeGarbageCollectedSequenceMember"), toV8(impl.testInterfaceWillBeGarbageCollectedSequenceMember(), creationContext, isolate))))
-            return false;
-    } else {
-        if (!v8CallBoolean(dictionary->CreateDataProperty(isolate->GetCurrentContext(), v8String(isolate, "testInterfaceWillBeGarbageCollectedSequenceMember"), toV8(HeapVector<Member<TestInterfaceWillBeGarbageCollected>>(), creationContext, isolate))))
-            return false;
-    }
-
     if (impl.hasUint8ArrayMember()) {
         if (!v8CallBoolean(dictionary->CreateDataProperty(isolate->GetCurrentContext(), v8String(isolate, "uint8ArrayMember"), toV8(impl.uint8ArrayMember(), creationContext, isolate))))
             return false;
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceWillBeGarbageCollected.cpp b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceWillBeGarbageCollected.cpp
deleted file mode 100644
index 51552875..0000000
--- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceWillBeGarbageCollected.cpp
+++ /dev/null
@@ -1,236 +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.
-
-// This file has been auto-generated by code_generator_v8.py. DO NOT MODIFY!
-
-#include "V8TestInterfaceWillBeGarbageCollected.h"
-
-#include "bindings/core/v8/ExceptionState.h"
-#include "bindings/core/v8/V8DOMConfiguration.h"
-#include "bindings/core/v8/V8ObjectConstructor.h"
-#include "bindings/core/v8/V8TestInterfaceWillBeGarbageCollected.h"
-#include "core/dom/Document.h"
-#include "core/frame/LocalDOMWindow.h"
-#include "wtf/GetPtr.h"
-#include "wtf/RefPtr.h"
-
-namespace blink {
-
-// Suppress warning: global constructors, because struct WrapperTypeInfo is trivial
-// and does not depend on another global objects.
-#if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG)
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wglobal-constructors"
-#endif
-const WrapperTypeInfo V8TestInterfaceWillBeGarbageCollected::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterfaceWillBeGarbageCollected::domTemplate, V8TestInterfaceWillBeGarbageCollected::refObject, V8TestInterfaceWillBeGarbageCollected::derefObject, V8TestInterfaceWillBeGarbageCollected::trace, 0, 0, V8TestInterfaceWillBeGarbageCollected::preparePrototypeAndInterfaceObject, V8TestInterfaceWillBeGarbageCollected::installConditionallyEnabledProperties, "TestInterfaceWillBeGarbageCollected", &V8EventTarget::wrapperTypeInfo, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::InheritFromEventTarget, WrapperTypeInfo::Independent, WrapperTypeInfo::GarbageCollectedObject };
-#if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG)
-#pragma clang diagnostic pop
-#endif
-
-// This static member must be declared by DEFINE_WRAPPERTYPEINFO in TestInterfaceWillBeGarbageCollected.h.
-// For details, see the comment of DEFINE_WRAPPERTYPEINFO in
-// bindings/core/v8/ScriptWrappable.h.
-const WrapperTypeInfo& TestInterfaceWillBeGarbageCollected::s_wrapperTypeInfo = V8TestInterfaceWillBeGarbageCollected::wrapperTypeInfo;
-
-namespace TestInterfaceWillBeGarbageCollectedV8Internal {
-
-static void attr1AttributeGetter(const v8::FunctionCallbackInfo<v8::Value>& info)
-{
-    v8::Local<v8::Object> holder = info.Holder();
-    TestInterfaceWillBeGarbageCollected* impl = V8TestInterfaceWillBeGarbageCollected::toImpl(holder);
-    v8SetReturnValueFast(info, WTF::getPtr(impl->attr1()), impl);
-}
-
-static void attr1AttributeGetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
-{
-    TestInterfaceWillBeGarbageCollectedV8Internal::attr1AttributeGetter(info);
-}
-
-static void attr1AttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info)
-{
-    v8::Local<v8::Object> holder = info.Holder();
-    ExceptionState exceptionState(ExceptionState::SetterContext, "attr1", "TestInterfaceWillBeGarbageCollected", holder, info.GetIsolate());
-    TestInterfaceWillBeGarbageCollected* impl = V8TestInterfaceWillBeGarbageCollected::toImpl(holder);
-    TestInterfaceWillBeGarbageCollected* cppValue = V8TestInterfaceWillBeGarbageCollected::toImplWithTypeCheck(info.GetIsolate(), v8Value);
-    if (!cppValue) {
-        exceptionState.throwTypeError("The provided value is not of type 'TestInterfaceWillBeGarbageCollected'.");
-        exceptionState.throwIfNeeded();
-        return;
-    }
-    impl->setAttr1(WTF::getPtr(cppValue));
-}
-
-static void attr1AttributeSetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
-{
-    v8::Local<v8::Value> v8Value = info[0];
-    TestInterfaceWillBeGarbageCollectedV8Internal::attr1AttributeSetter(v8Value, info);
-}
-
-static void funcMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
-{
-    if (UNLIKELY(info.Length() < 1)) {
-        V8ThrowException::throwException(createMinimumArityTypeErrorForMethod(info.GetIsolate(), "func", "TestInterfaceWillBeGarbageCollected", 1, info.Length()), info.GetIsolate());
-        return;
-    }
-    TestInterfaceWillBeGarbageCollected* impl = V8TestInterfaceWillBeGarbageCollected::toImpl(info.Holder());
-    TestInterfaceWillBeGarbageCollected* arg;
-    {
-        arg = V8TestInterfaceWillBeGarbageCollected::toImplWithTypeCheck(info.GetIsolate(), info[0]);
-        if (!arg) {
-            V8ThrowException::throwTypeError(info.GetIsolate(), ExceptionMessages::failedToExecute("func", "TestInterfaceWillBeGarbageCollected", "parameter 1 is not of type 'TestInterfaceWillBeGarbageCollected'."));
-            return;
-        }
-    }
-    impl->func(arg);
-}
-
-static void funcMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
-{
-    TestInterfaceWillBeGarbageCollectedV8Internal::funcMethod(info);
-}
-
-static void constructor(const v8::FunctionCallbackInfo<v8::Value>& info)
-{
-    if (UNLIKELY(info.Length() < 1)) {
-        V8ThrowException::throwException(createMinimumArityTypeErrorForConstructor(info.GetIsolate(), "TestInterfaceWillBeGarbageCollected", 1, info.Length()), info.GetIsolate());
-        return;
-    }
-    V8StringResource<> str;
-    {
-        str = info[0];
-        if (!str.prepare())
-            return;
-    }
-    RawPtr<TestInterfaceWillBeGarbageCollected> impl = TestInterfaceWillBeGarbageCollected::create(str);
-    v8::Local<v8::Object> wrapper = info.Holder();
-    wrapper = impl->associateWithWrapper(info.GetIsolate(), &V8TestInterfaceWillBeGarbageCollected::wrapperTypeInfo, wrapper);
-    v8SetReturnValue(info, wrapper);
-}
-
-} // namespace TestInterfaceWillBeGarbageCollectedV8Internal
-
-const V8DOMConfiguration::AccessorConfiguration V8TestInterfaceWillBeGarbageCollectedAccessors[] = {
-    {"attr1", TestInterfaceWillBeGarbageCollectedV8Internal::attr1AttributeGetterCallback, TestInterfaceWillBeGarbageCollectedV8Internal::attr1AttributeSetterCallback, 0, 0, 0, v8::DEFAULT, static_cast<v8::PropertyAttribute>(v8::DontDelete), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnInstance, V8DOMConfiguration::CheckHolder},
-};
-
-const V8DOMConfiguration::MethodConfiguration V8TestInterfaceWillBeGarbageCollectedMethods[] = {
-    {"func", TestInterfaceWillBeGarbageCollectedV8Internal::funcMethodCallback, 0, 1, static_cast<v8::PropertyAttribute>(v8::ReadOnly | v8::DontDelete), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnInstance},
-};
-
-// Suppress warning: global constructors, because struct WrapperTypeInfo is trivial
-// and does not depend on another global objects.
-#if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG)
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wglobal-constructors"
-#endif
-const WrapperTypeInfo V8TestInterfaceWillBeGarbageCollectedConstructor::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterfaceWillBeGarbageCollectedConstructor::domTemplate, V8TestInterfaceWillBeGarbageCollected::refObject, V8TestInterfaceWillBeGarbageCollected::derefObject, V8TestInterfaceWillBeGarbageCollected::trace, 0, 0, V8TestInterfaceWillBeGarbageCollected::preparePrototypeAndInterfaceObject, V8TestInterfaceWillBeGarbageCollected::installConditionallyEnabledProperties, "TestInterfaceWillBeGarbageCollected", 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::InheritFromEventTarget, WrapperTypeInfo::Independent, WrapperTypeInfo::GarbageCollectedObject };
-#if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG)
-#pragma clang diagnostic pop
-#endif
-
-static void V8TestInterfaceWillBeGarbageCollectedConstructorCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
-{
-    if (!info.IsConstructCall()) {
-        V8ThrowException::throwTypeError(info.GetIsolate(), ExceptionMessages::constructorNotCallableAsFunction("TestInterface"));
-        return;
-    }
-
-    if (ConstructorMode::current(info.GetIsolate()) == ConstructorMode::WrapExistingObject) {
-        v8SetReturnValue(info, info.Holder());
-        return;
-    }
-    if (UNLIKELY(info.Length() < 1)) {
-        V8ThrowException::throwException(createMinimumArityTypeErrorForConstructor(info.GetIsolate(), "TestInterfaceWillBeGarbageCollected", 1, info.Length()), info.GetIsolate());
-        return;
-    }
-    V8StringResource<> str;
-    {
-        str = info[0];
-        if (!str.prepare())
-            return;
-    }
-    RawPtr<TestInterfaceWillBeGarbageCollected> impl = TestInterfaceWillBeGarbageCollected::createForJSConstructor(str);
-    v8::Local<v8::Object> wrapper = info.Holder();
-    wrapper = impl->associateWithWrapper(info.GetIsolate(), &V8TestInterfaceWillBeGarbageCollectedConstructor::wrapperTypeInfo, wrapper);
-    v8SetReturnValue(info, wrapper);
-}
-
-v8::Local<v8::FunctionTemplate> V8TestInterfaceWillBeGarbageCollectedConstructor::domTemplate(v8::Isolate* isolate)
-{
-    static int domTemplateKey; // This address is used for a key to look up the dom template.
-    V8PerIsolateData* data = V8PerIsolateData::from(isolate);
-    v8::Local<v8::FunctionTemplate> result = data->existingDOMTemplate(&domTemplateKey);
-    if (!result.IsEmpty())
-        return result;
-
-    result = v8::FunctionTemplate::New(isolate, V8TestInterfaceWillBeGarbageCollectedConstructorCallback);
-    v8::Local<v8::ObjectTemplate> instanceTemplate = result->InstanceTemplate();
-    instanceTemplate->SetInternalFieldCount(V8TestInterfaceWillBeGarbageCollected::internalFieldCount);
-    result->SetClassName(v8AtomicString(isolate, "TestInterfaceWillBeGarbageCollected"));
-    result->Inherit(V8TestInterfaceWillBeGarbageCollected::domTemplate(isolate));
-    data->setDOMTemplate(&domTemplateKey, result);
-    return result;
-}
-
-void V8TestInterfaceWillBeGarbageCollected::constructorCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
-{
-    if (!info.IsConstructCall()) {
-        V8ThrowException::throwTypeError(info.GetIsolate(), ExceptionMessages::constructorNotCallableAsFunction("TestInterfaceWillBeGarbageCollected"));
-        return;
-    }
-
-    if (ConstructorMode::current(info.GetIsolate()) == ConstructorMode::WrapExistingObject) {
-        v8SetReturnValue(info, info.Holder());
-        return;
-    }
-
-    TestInterfaceWillBeGarbageCollectedV8Internal::constructor(info);
-}
-
-static void installV8TestInterfaceWillBeGarbageCollectedTemplate(v8::Local<v8::FunctionTemplate> interfaceTemplate, v8::Isolate* isolate)
-{
-    // Initialize the interface object's template.
-    V8DOMConfiguration::initializeDOMInterfaceTemplate(isolate, interfaceTemplate, V8TestInterfaceWillBeGarbageCollected::wrapperTypeInfo.interfaceName, V8EventTarget::domTemplate(isolate), V8TestInterfaceWillBeGarbageCollected::internalFieldCount);
-    interfaceTemplate->SetCallHandler(V8TestInterfaceWillBeGarbageCollected::constructorCallback);
-    interfaceTemplate->SetLength(1);
-    v8::Local<v8::Signature> signature = v8::Signature::New(isolate, interfaceTemplate);
-    ALLOW_UNUSED_LOCAL(signature);
-    v8::Local<v8::ObjectTemplate> instanceTemplate = interfaceTemplate->InstanceTemplate();
-    ALLOW_UNUSED_LOCAL(instanceTemplate);
-    v8::Local<v8::ObjectTemplate> prototypeTemplate = interfaceTemplate->PrototypeTemplate();
-    ALLOW_UNUSED_LOCAL(prototypeTemplate);
-    // Register DOM constants, attributes and operations.
-    V8DOMConfiguration::installAccessors(isolate, instanceTemplate, prototypeTemplate, interfaceTemplate, signature, V8TestInterfaceWillBeGarbageCollectedAccessors, WTF_ARRAY_LENGTH(V8TestInterfaceWillBeGarbageCollectedAccessors));
-    V8DOMConfiguration::installMethods(isolate, instanceTemplate, prototypeTemplate, interfaceTemplate, signature, V8TestInterfaceWillBeGarbageCollectedMethods, WTF_ARRAY_LENGTH(V8TestInterfaceWillBeGarbageCollectedMethods));
-}
-
-v8::Local<v8::FunctionTemplate> V8TestInterfaceWillBeGarbageCollected::domTemplate(v8::Isolate* isolate)
-{
-    return V8DOMConfiguration::domClassTemplate(isolate, const_cast<WrapperTypeInfo*>(&wrapperTypeInfo), installV8TestInterfaceWillBeGarbageCollectedTemplate);
-}
-
-bool V8TestInterfaceWillBeGarbageCollected::hasInstance(v8::Local<v8::Value> v8Value, v8::Isolate* isolate)
-{
-    return V8PerIsolateData::from(isolate)->hasInstance(&wrapperTypeInfo, v8Value);
-}
-
-v8::Local<v8::Object> V8TestInterfaceWillBeGarbageCollected::findInstanceInPrototypeChain(v8::Local<v8::Value> v8Value, v8::Isolate* isolate)
-{
-    return V8PerIsolateData::from(isolate)->findInstanceInPrototypeChain(&wrapperTypeInfo, v8Value);
-}
-
-TestInterfaceWillBeGarbageCollected* V8TestInterfaceWillBeGarbageCollected::toImplWithTypeCheck(v8::Isolate* isolate, v8::Local<v8::Value> value)
-{
-    return hasInstance(value, isolate) ? toImpl(v8::Local<v8::Object>::Cast(value)) : 0;
-}
-
-void V8TestInterfaceWillBeGarbageCollected::refObject(ScriptWrappable* scriptWrappable)
-{
-}
-
-void V8TestInterfaceWillBeGarbageCollected::derefObject(ScriptWrappable* scriptWrappable)
-{
-}
-
-} // namespace blink
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceWillBeGarbageCollected.h b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceWillBeGarbageCollected.h
deleted file mode 100644
index 3b96549..0000000
--- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceWillBeGarbageCollected.h
+++ /dev/null
@@ -1,62 +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.
-
-// This file has been auto-generated by code_generator_v8.py. DO NOT MODIFY!
-
-#ifndef V8TestInterfaceWillBeGarbageCollected_h
-#define V8TestInterfaceWillBeGarbageCollected_h
-
-#include "bindings/core/v8/ScriptWrappable.h"
-#include "bindings/core/v8/ToV8.h"
-#include "bindings/core/v8/V8Binding.h"
-#include "bindings/core/v8/V8DOMWrapper.h"
-#include "bindings/core/v8/V8EventTarget.h"
-#include "bindings/core/v8/WrapperTypeInfo.h"
-#include "bindings/tests/idls/core/TestInterfaceWillBeGarbageCollected.h"
-#include "core/CoreExport.h"
-#include "platform/heap/Handle.h"
-
-namespace blink {
-
-class V8TestInterfaceWillBeGarbageCollectedConstructor {
-    STATIC_ONLY(V8TestInterfaceWillBeGarbageCollectedConstructor);
-public:
-    static v8::Local<v8::FunctionTemplate> domTemplate(v8::Isolate*);
-    static const WrapperTypeInfo wrapperTypeInfo;
-};
-
-class V8TestInterfaceWillBeGarbageCollected {
-    STATIC_ONLY(V8TestInterfaceWillBeGarbageCollected);
-public:
-    CORE_EXPORT static bool hasInstance(v8::Local<v8::Value>, v8::Isolate*);
-    static v8::Local<v8::Object> findInstanceInPrototypeChain(v8::Local<v8::Value>, v8::Isolate*);
-    CORE_EXPORT static v8::Local<v8::FunctionTemplate> domTemplate(v8::Isolate*);
-    static TestInterfaceWillBeGarbageCollected* toImpl(v8::Local<v8::Object> object)
-    {
-        return toScriptWrappable(object)->toImpl<TestInterfaceWillBeGarbageCollected>();
-    }
-    CORE_EXPORT static TestInterfaceWillBeGarbageCollected* toImplWithTypeCheck(v8::Isolate*, v8::Local<v8::Value>);
-    CORE_EXPORT static const WrapperTypeInfo wrapperTypeInfo;
-    static void refObject(ScriptWrappable*);
-    static void derefObject(ScriptWrappable*);
-    template<typename VisitorDispatcher>
-    static void trace(VisitorDispatcher visitor, ScriptWrappable* scriptWrappable)
-    {
-        visitor->trace(scriptWrappable->toImpl<TestInterfaceWillBeGarbageCollected>());
-    }
-    static void constructorCallback(const v8::FunctionCallbackInfo<v8::Value>&);
-    static const int eventListenerCacheIndex = v8DefaultWrapperInternalFieldCount + 0;
-    static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 1;
-    static void installConditionallyEnabledProperties(v8::Local<v8::Object>, v8::Isolate*) { }
-    static void preparePrototypeAndInterfaceObject(v8::Local<v8::Context>, v8::Local<v8::Object> prototypeObject, v8::Local<v8::Function> interfaceObject, v8::Local<v8::FunctionTemplate> interfaceTemplate) { }
-};
-
-template <>
-struct V8TypeOf<TestInterfaceWillBeGarbageCollected> {
-    typedef V8TestInterfaceWillBeGarbageCollected Type;
-};
-
-} // namespace blink
-
-#endif // V8TestInterfaceWillBeGarbageCollected_h
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestObject.cpp b/third_party/WebKit/Source/bindings/tests/results/core/V8TestObject.cpp
index 7618783..2bdcf73 100644
--- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestObject.cpp
+++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestObject.cpp
@@ -45,7 +45,6 @@
 #include "bindings/core/v8/V8TestInterface.h"
 #include "bindings/core/v8/V8TestInterfaceEmpty.h"
 #include "bindings/core/v8/V8TestInterfaceGarbageCollected.h"
-#include "bindings/core/v8/V8TestInterfaceWillBeGarbageCollected.h"
 #include "bindings/core/v8/V8TestNode.h"
 #include "bindings/core/v8/V8TestObject.h"
 #include "bindings/core/v8/V8Uint8Array.h"
@@ -3260,48 +3259,6 @@
     TestObjectV8Internal::locationGarbageCollectedAttributeSetter(v8Value, info);
 }
 
-static void locationWillBeGarbageCollectedAttributeGetter(const v8::FunctionCallbackInfo<v8::Value>& info)
-{
-    v8::Local<v8::Object> holder = info.Holder();
-    TestObject* impl = V8TestObject::toImpl(holder);
-    RawPtr<TestInterfaceWillBeGarbageCollected> cppValue(impl->locationWillBeGarbageCollected());
-    if (cppValue && DOMDataStore::setReturnValue(info.GetReturnValue(), cppValue.get()))
-        return;
-    v8::Local<v8::Value> v8Value(toV8(cppValue.get(), holder, info.GetIsolate()));
-    if (!v8Value.IsEmpty()) {
-        V8HiddenValue::setHiddenValue(ScriptState::current(info.GetIsolate()), holder, v8AtomicString(info.GetIsolate(), "locationWillBeGarbageCollected"), v8Value);
-        v8SetReturnValue(info, v8Value);
-    }
-}
-
-static void locationWillBeGarbageCollectedAttributeGetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
-{
-    TestObjectV8Internal::locationWillBeGarbageCollectedAttributeGetter(info);
-}
-
-static void locationWillBeGarbageCollectedAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info)
-{
-    v8::Local<v8::Object> holder = info.Holder();
-    ExceptionState exceptionState(ExceptionState::SetterContext, "locationWillBeGarbageCollected", "TestObject", holder, info.GetIsolate());
-    TestObject* proxyImpl = V8TestObject::toImpl(holder);
-    RawPtr<TestInterfaceWillBeGarbageCollected> impl = WTF::getPtr(proxyImpl->locationWillBeGarbageCollected());
-    if (!impl)
-        return;
-    TestInterfaceWillBeGarbageCollected* cppValue = V8TestInterfaceWillBeGarbageCollected::toImplWithTypeCheck(info.GetIsolate(), v8Value);
-    if (!cppValue) {
-        exceptionState.throwTypeError("The provided value is not of type 'TestInterfaceWillBeGarbageCollected'.");
-        exceptionState.throwIfNeeded();
-        return;
-    }
-    impl->setAttr1(WTF::getPtr(cppValue));
-}
-
-static void locationWillBeGarbageCollectedAttributeSetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
-{
-    v8::Local<v8::Value> v8Value = info[0];
-    TestObjectV8Internal::locationWillBeGarbageCollectedAttributeSetter(v8Value, info);
-}
-
 static void raisesExceptionLongAttributeAttributeGetter(const v8::FunctionCallbackInfo<v8::Value>& info)
 {
     v8::Local<v8::Object> holder = info.Holder();
@@ -4736,70 +4693,6 @@
     TestObjectV8Internal::testInterfaceGarbageCollectedOrNullAttributeAttributeSetter(v8Value, info);
 }
 
-static void testInterfaceWillBeGarbageCollectedAttributeAttributeGetter(const v8::FunctionCallbackInfo<v8::Value>& info)
-{
-    v8::Local<v8::Object> holder = info.Holder();
-    TestObject* impl = V8TestObject::toImpl(holder);
-    v8SetReturnValueFast(info, WTF::getPtr(impl->testInterfaceWillBeGarbageCollectedAttribute()), impl);
-}
-
-static void testInterfaceWillBeGarbageCollectedAttributeAttributeGetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
-{
-    TestObjectV8Internal::testInterfaceWillBeGarbageCollectedAttributeAttributeGetter(info);
-}
-
-static void testInterfaceWillBeGarbageCollectedAttributeAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info)
-{
-    v8::Local<v8::Object> holder = info.Holder();
-    ExceptionState exceptionState(ExceptionState::SetterContext, "testInterfaceWillBeGarbageCollectedAttribute", "TestObject", holder, info.GetIsolate());
-    TestObject* impl = V8TestObject::toImpl(holder);
-    TestInterfaceWillBeGarbageCollected* cppValue = V8TestInterfaceWillBeGarbageCollected::toImplWithTypeCheck(info.GetIsolate(), v8Value);
-    if (!cppValue) {
-        exceptionState.throwTypeError("The provided value is not of type 'TestInterfaceWillBeGarbageCollected'.");
-        exceptionState.throwIfNeeded();
-        return;
-    }
-    impl->setTestInterfaceWillBeGarbageCollectedAttribute(WTF::getPtr(cppValue));
-}
-
-static void testInterfaceWillBeGarbageCollectedAttributeAttributeSetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
-{
-    v8::Local<v8::Value> v8Value = info[0];
-    TestObjectV8Internal::testInterfaceWillBeGarbageCollectedAttributeAttributeSetter(v8Value, info);
-}
-
-static void testInterfaceWillBeGarbageCollectedOrNullAttributeAttributeGetter(const v8::FunctionCallbackInfo<v8::Value>& info)
-{
-    v8::Local<v8::Object> holder = info.Holder();
-    TestObject* impl = V8TestObject::toImpl(holder);
-    v8SetReturnValueFast(info, WTF::getPtr(impl->testInterfaceWillBeGarbageCollectedOrNullAttribute()), impl);
-}
-
-static void testInterfaceWillBeGarbageCollectedOrNullAttributeAttributeGetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
-{
-    TestObjectV8Internal::testInterfaceWillBeGarbageCollectedOrNullAttributeAttributeGetter(info);
-}
-
-static void testInterfaceWillBeGarbageCollectedOrNullAttributeAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info)
-{
-    v8::Local<v8::Object> holder = info.Holder();
-    ExceptionState exceptionState(ExceptionState::SetterContext, "testInterfaceWillBeGarbageCollectedOrNullAttribute", "TestObject", holder, info.GetIsolate());
-    TestObject* impl = V8TestObject::toImpl(holder);
-    TestInterfaceWillBeGarbageCollected* cppValue = V8TestInterfaceWillBeGarbageCollected::toImplWithTypeCheck(info.GetIsolate(), v8Value);
-    if (!cppValue && !isUndefinedOrNull(v8Value)) {
-        exceptionState.throwTypeError("The provided value is not of type 'TestInterfaceWillBeGarbageCollected'.");
-        exceptionState.throwIfNeeded();
-        return;
-    }
-    impl->setTestInterfaceWillBeGarbageCollectedOrNullAttribute(WTF::getPtr(cppValue));
-}
-
-static void testInterfaceWillBeGarbageCollectedOrNullAttributeAttributeSetterCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
-{
-    v8::Local<v8::Value> v8Value = info[0];
-    TestObjectV8Internal::testInterfaceWillBeGarbageCollectedOrNullAttributeAttributeSetter(v8Value, info);
-}
-
 static void readonlyShortAttributeAttributeGetter(const v8::FunctionCallbackInfo<v8::Value>& info)
 {
     v8::Local<v8::Object> holder = info.Holder();
@@ -6497,19 +6390,6 @@
     TestObjectV8Internal::testInterfaceGarbageCollectedOrDOMStringMethodMethod(info);
 }
 
-static void testInterfaceWillBeGarbageCollectedOrTestDictionaryMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
-{
-    TestObject* impl = V8TestObject::toImpl(info.Holder());
-    TestInterfaceWillBeGarbageCollectedOrTestDictionary result;
-    impl->testInterfaceWillBeGarbageCollectedOrTestDictionaryMethod(result);
-    v8SetReturnValue(info, result);
-}
-
-static void testInterfaceWillBeGarbageCollectedOrTestDictionaryMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
-{
-    TestObjectV8Internal::testInterfaceWillBeGarbageCollectedOrTestDictionaryMethodMethod(info);
-}
-
 static void booleanOrDOMStringOrUnrestrictedDoubleMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
 {
     TestObject* impl = V8TestObject::toImpl(info.Holder());
@@ -7892,29 +7772,6 @@
     TestObjectV8Internal::voidMethodVariadicTestInterfaceGarbageCollectedArgMethod(info);
 }
 
-static void voidMethodVariadicTestInterfaceWillBeGarbageCollectedArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
-{
-    ExceptionState exceptionState(ExceptionState::ExecutionContext, "voidMethodVariadicTestInterfaceWillBeGarbageCollectedArg", "TestObject", info.Holder(), info.GetIsolate());
-    TestObject* impl = V8TestObject::toImpl(info.Holder());
-    HeapVector<Member<TestInterfaceWillBeGarbageCollected>> variadicTestInterfaceWillBeGarbageCollectedArg;
-    {
-        for (int i = 0; i < info.Length(); ++i) {
-            if (!V8TestInterfaceWillBeGarbageCollected::hasInstance(info[i], info.GetIsolate())) {
-                exceptionState.throwTypeError("parameter 1 is not of type 'TestInterfaceWillBeGarbageCollected'.");
-                exceptionState.throwIfNeeded();
-                return;
-            }
-            variadicTestInterfaceWillBeGarbageCollectedArg.append(V8TestInterfaceWillBeGarbageCollected::toImpl(v8::Local<v8::Object>::Cast(info[i])));
-        }
-    }
-    impl->voidMethodVariadicTestInterfaceWillBeGarbageCollectedArg(variadicTestInterfaceWillBeGarbageCollectedArg);
-}
-
-static void voidMethodVariadicTestInterfaceWillBeGarbageCollectedArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
-{
-    TestObjectV8Internal::voidMethodVariadicTestInterfaceWillBeGarbageCollectedArgMethod(info);
-}
-
 static void overloadedMethodA1Method(const v8::FunctionCallbackInfo<v8::Value>& info)
 {
     ExceptionState exceptionState(ExceptionState::ExecutionContext, "overloadedMethodA", "TestObject", info.Holder(), info.GetIsolate());
@@ -10897,52 +10754,6 @@
     TestObjectV8Internal::voidMethodTestInterfaceGarbageCollectedArrayArgMethod(info);
 }
 
-static void voidMethodTestInterfaceWillBeGarbageCollectedSequenceArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
-{
-    ExceptionState exceptionState(ExceptionState::ExecutionContext, "voidMethodTestInterfaceWillBeGarbageCollectedSequenceArg", "TestObject", info.Holder(), info.GetIsolate());
-    if (UNLIKELY(info.Length() < 1)) {
-        setMinimumArityTypeError(exceptionState, 1, info.Length());
-        exceptionState.throwIfNeeded();
-        return;
-    }
-    TestObject* impl = V8TestObject::toImpl(info.Holder());
-    HeapVector<Member<TestInterfaceWillBeGarbageCollected>> testInterfaceWillBeGarbageCollectedSequenceArg;
-    {
-        testInterfaceWillBeGarbageCollectedSequenceArg = (toMemberNativeArray<TestInterfaceWillBeGarbageCollected, V8TestInterfaceWillBeGarbageCollected>(info[0], 1, info.GetIsolate(), exceptionState));
-        if (exceptionState.throwIfNeeded())
-            return;
-    }
-    impl->voidMethodTestInterfaceWillBeGarbageCollectedSequenceArg(testInterfaceWillBeGarbageCollectedSequenceArg);
-}
-
-static void voidMethodTestInterfaceWillBeGarbageCollectedSequenceArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
-{
-    TestObjectV8Internal::voidMethodTestInterfaceWillBeGarbageCollectedSequenceArgMethod(info);
-}
-
-static void voidMethodTestInterfaceWillBeGarbageCollectedArrayArgMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
-{
-    ExceptionState exceptionState(ExceptionState::ExecutionContext, "voidMethodTestInterfaceWillBeGarbageCollectedArrayArg", "TestObject", info.Holder(), info.GetIsolate());
-    if (UNLIKELY(info.Length() < 1)) {
-        setMinimumArityTypeError(exceptionState, 1, info.Length());
-        exceptionState.throwIfNeeded();
-        return;
-    }
-    TestObject* impl = V8TestObject::toImpl(info.Holder());
-    HeapVector<Member<TestInterfaceWillBeGarbageCollected>> testInterfaceWillBeGarbageCollectedArrayArg;
-    {
-        testInterfaceWillBeGarbageCollectedArrayArg = (toMemberNativeArray<TestInterfaceWillBeGarbageCollected, V8TestInterfaceWillBeGarbageCollected>(info[0], 1, info.GetIsolate(), exceptionState));
-        if (exceptionState.throwIfNeeded())
-            return;
-    }
-    impl->voidMethodTestInterfaceWillBeGarbageCollectedArrayArg(testInterfaceWillBeGarbageCollectedArrayArg);
-}
-
-static void voidMethodTestInterfaceWillBeGarbageCollectedArrayArgMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
-{
-    TestObjectV8Internal::voidMethodTestInterfaceWillBeGarbageCollectedArrayArgMethod(info);
-}
-
 static void newObjectTestInterfaceMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
 {
     TestObject* impl = V8TestObject::toImpl(info.Holder());
@@ -11671,7 +11482,6 @@
     {"locationWithPerWorldBindings", TestObjectV8Internal::locationWithPerWorldBindingsAttributeGetterCallback, TestObjectV8Internal::locationWithPerWorldBindingsAttributeSetterCallback, TestObjectV8Internal::locationWithPerWorldBindingsAttributeGetterCallbackForMainWorld, TestObjectV8Internal::locationWithPerWorldBindingsAttributeSetterCallbackForMainWorld, 0, v8::DEFAULT, static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder},
     {"locationLegacyInterfaceTypeChecking", TestObjectV8Internal::locationLegacyInterfaceTypeCheckingAttributeGetterCallback, TestObjectV8Internal::locationLegacyInterfaceTypeCheckingAttributeSetterCallback, 0, 0, 0, v8::DEFAULT, static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder},
     {"locationGarbageCollected", TestObjectV8Internal::locationGarbageCollectedAttributeGetterCallback, TestObjectV8Internal::locationGarbageCollectedAttributeSetterCallback, 0, 0, 0, v8::DEFAULT, static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder},
-    {"locationWillBeGarbageCollected", TestObjectV8Internal::locationWillBeGarbageCollectedAttributeGetterCallback, TestObjectV8Internal::locationWillBeGarbageCollectedAttributeSetterCallback, 0, 0, 0, v8::DEFAULT, static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder},
     {"raisesExceptionLongAttribute", TestObjectV8Internal::raisesExceptionLongAttributeAttributeGetterCallback, TestObjectV8Internal::raisesExceptionLongAttributeAttributeSetterCallback, 0, 0, 0, v8::DEFAULT, static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder},
     {"raisesExceptionGetterLongAttribute", TestObjectV8Internal::raisesExceptionGetterLongAttributeAttributeGetterCallback, TestObjectV8Internal::raisesExceptionGetterLongAttributeAttributeSetterCallback, 0, 0, 0, v8::DEFAULT, static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder},
     {"setterRaisesExceptionLongAttribute", TestObjectV8Internal::setterRaisesExceptionLongAttributeAttributeGetterCallback, TestObjectV8Internal::setterRaisesExceptionLongAttributeAttributeSetterCallback, 0, 0, 0, v8::DEFAULT, static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder},
@@ -11715,8 +11525,6 @@
     {"testInterfaceAttribute", TestObjectV8Internal::testInterfaceAttributeAttributeGetterCallback, TestObjectV8Internal::testInterfaceAttributeAttributeSetterCallback, 0, 0, 0, v8::DEFAULT, static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder},
     {"testInterfaceGarbageCollectedAttribute", TestObjectV8Internal::testInterfaceGarbageCollectedAttributeAttributeGetterCallback, TestObjectV8Internal::testInterfaceGarbageCollectedAttributeAttributeSetterCallback, 0, 0, 0, v8::DEFAULT, static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder},
     {"testInterfaceGarbageCollectedOrNullAttribute", TestObjectV8Internal::testInterfaceGarbageCollectedOrNullAttributeAttributeGetterCallback, TestObjectV8Internal::testInterfaceGarbageCollectedOrNullAttributeAttributeSetterCallback, 0, 0, 0, v8::DEFAULT, static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder},
-    {"testInterfaceWillBeGarbageCollectedAttribute", TestObjectV8Internal::testInterfaceWillBeGarbageCollectedAttributeAttributeGetterCallback, TestObjectV8Internal::testInterfaceWillBeGarbageCollectedAttributeAttributeSetterCallback, 0, 0, 0, v8::DEFAULT, static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder},
-    {"testInterfaceWillBeGarbageCollectedOrNullAttribute", TestObjectV8Internal::testInterfaceWillBeGarbageCollectedOrNullAttributeAttributeGetterCallback, TestObjectV8Internal::testInterfaceWillBeGarbageCollectedOrNullAttributeAttributeSetterCallback, 0, 0, 0, v8::DEFAULT, static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder},
     {"readonlyShortAttribute", TestObjectV8Internal::readonlyShortAttributeAttributeGetterCallback, 0, 0, 0, 0, v8::DEFAULT, static_cast<v8::PropertyAttribute>(v8::ReadOnly), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder},
     {"shortAttribute", TestObjectV8Internal::shortAttributeAttributeGetterCallback, TestObjectV8Internal::shortAttributeAttributeSetterCallback, 0, 0, 0, v8::DEFAULT, static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder},
     {"stringAttribute", TestObjectV8Internal::stringAttributeAttributeGetterCallback, TestObjectV8Internal::stringAttributeAttributeSetterCallback, 0, 0, 0, v8::DEFAULT, static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder},
@@ -11811,7 +11619,6 @@
     {"nullableTestInterfaceMethod", TestObjectV8Internal::nullableTestInterfaceMethodMethodCallback, 0, 0, v8::None, V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype},
     {"nullableLongSequenceMethod", TestObjectV8Internal::nullableLongSequenceMethodMethodCallback, 0, 0, v8::None, V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype},
     {"testInterfaceGarbageCollectedOrDOMStringMethod", TestObjectV8Internal::testInterfaceGarbageCollectedOrDOMStringMethodMethodCallback, 0, 0, v8::None, V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype},
-    {"testInterfaceWillBeGarbageCollectedOrTestDictionaryMethod", TestObjectV8Internal::testInterfaceWillBeGarbageCollectedOrTestDictionaryMethodMethodCallback, 0, 0, v8::None, V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype},
     {"booleanOrDOMStringOrUnrestrictedDoubleMethod", TestObjectV8Internal::booleanOrDOMStringOrUnrestrictedDoubleMethodMethodCallback, 0, 0, v8::None, V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype},
     {"testInterfaceOrLongMethod", TestObjectV8Internal::testInterfaceOrLongMethodMethodCallback, 0, 0, v8::None, V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype},
     {"voidMethodDoubleOrDOMStringArg", TestObjectV8Internal::voidMethodDoubleOrDOMStringArgMethodCallback, 0, 1, v8::None, V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype},
@@ -11869,7 +11676,6 @@
     {"voidMethodVariadicTestInterfaceEmptyArg", TestObjectV8Internal::voidMethodVariadicTestInterfaceEmptyArgMethodCallback, 0, 0, v8::None, V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype},
     {"voidMethodTestInterfaceEmptyArgVariadicTestInterfaceEmptyArg", TestObjectV8Internal::voidMethodTestInterfaceEmptyArgVariadicTestInterfaceEmptyArgMethodCallback, 0, 1, v8::None, V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype},
     {"voidMethodVariadicTestInterfaceGarbageCollectedArg", TestObjectV8Internal::voidMethodVariadicTestInterfaceGarbageCollectedArgMethodCallback, 0, 0, v8::None, V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype},
-    {"voidMethodVariadicTestInterfaceWillBeGarbageCollectedArg", TestObjectV8Internal::voidMethodVariadicTestInterfaceWillBeGarbageCollectedArgMethodCallback, 0, 0, v8::None, V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype},
     {"overloadedMethodA", TestObjectV8Internal::overloadedMethodAMethodCallback, 0, 1, v8::None, V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype},
     {"overloadedMethodB", TestObjectV8Internal::overloadedMethodBMethodCallback, 0, 1, v8::None, V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype},
     {"overloadedMethodC", TestObjectV8Internal::overloadedMethodCMethodCallback, 0, 1, v8::None, V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype},
@@ -11949,8 +11755,6 @@
     {"unforgeableVoidMethod", TestObjectV8Internal::unforgeableVoidMethodMethodCallback, 0, 0, static_cast<v8::PropertyAttribute>(v8::ReadOnly | v8::DontDelete), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnInstance},
     {"voidMethodTestInterfaceGarbageCollectedSequenceArg", TestObjectV8Internal::voidMethodTestInterfaceGarbageCollectedSequenceArgMethodCallback, 0, 1, v8::None, V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype},
     {"voidMethodTestInterfaceGarbageCollectedArrayArg", TestObjectV8Internal::voidMethodTestInterfaceGarbageCollectedArrayArgMethodCallback, 0, 1, v8::None, V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype},
-    {"voidMethodTestInterfaceWillBeGarbageCollectedSequenceArg", TestObjectV8Internal::voidMethodTestInterfaceWillBeGarbageCollectedSequenceArgMethodCallback, 0, 1, v8::None, V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype},
-    {"voidMethodTestInterfaceWillBeGarbageCollectedArrayArg", TestObjectV8Internal::voidMethodTestInterfaceWillBeGarbageCollectedArrayArgMethodCallback, 0, 1, v8::None, V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype},
     {"newObjectTestInterfaceMethod", TestObjectV8Internal::newObjectTestInterfaceMethodMethodCallback, 0, 0, v8::None, V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype},
     {"serializerMethod", TestObjectV8Internal::serializerMethodMethodCallback, 0, 0, v8::None, V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype},
     {"voidMethodImplementedInPrivateScript", TestObjectV8Internal::voidMethodImplementedInPrivateScriptMethodCallback, 0, 0, v8::None, V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype},
diff --git a/third_party/WebKit/Source/build/scripts/templates/InternalSettingsGenerated.idl.tmpl b/third_party/WebKit/Source/build/scripts/templates/InternalSettingsGenerated.idl.tmpl
index 24857652..29a9d1f2 100644
--- a/third_party/WebKit/Source/build/scripts/templates/InternalSettingsGenerated.idl.tmpl
+++ b/third_party/WebKit/Source/build/scripts/templates/InternalSettingsGenerated.idl.tmpl
@@ -2,7 +2,7 @@
 {{ license() }}
 
 [
-    WillBeGarbageCollected,
+    GarbageCollected,
 ] interface InternalSettingsGenerated {
     {% for setting in settings if setting.type|to_idl_type %}
     void set{{setting.name|upper_first}}({{setting.type|to_idl_type}} {{setting.name}});
diff --git a/third_party/WebKit/Source/core/animation/AnimationInputHelpers.cpp b/third_party/WebKit/Source/core/animation/AnimationInputHelpers.cpp
index e29e38c..68071a9 100644
--- a/third_party/WebKit/Source/core/animation/AnimationInputHelpers.cpp
+++ b/third_party/WebKit/Source/core/animation/AnimationInputHelpers.cpp
@@ -206,12 +206,12 @@
     if (string.isEmpty())
         return nullptr;
 
-    RawPtr<CSSValue> value = CSSParser::parseSingleValue(CSSPropertyTransitionTimingFunction, string);
+    CSSValue* value = CSSParser::parseSingleValue(CSSPropertyTransitionTimingFunction, string);
     if (!value || !value->isValueList()) {
         ASSERT(!value || value->isCSSWideKeyword());
         return nullptr;
     }
-    CSSValueList* valueList = toCSSValueList(value.get());
+    CSSValueList* valueList = toCSSValueList(value);
     if (valueList->length() > 1)
         return nullptr;
     return CSSToStyleMap::mapAnimationTimingFunction(*valueList->item(0), true);
diff --git a/third_party/WebKit/Source/core/animation/CSSImageInterpolationType.cpp b/third_party/WebKit/Source/core/animation/CSSImageInterpolationType.cpp
index cb67991..f7e5536 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(RawPtr<CSSValue> start, RawPtr<CSSValue> end)
+    static PassRefPtr<CSSImageNonInterpolableValue> create(CSSValue* start, CSSValue* end)
     {
         return adoptRef(new CSSImageNonInterpolableValue(start, end));
     }
@@ -29,7 +29,7 @@
 
     static PassRefPtr<CSSImageNonInterpolableValue> merge(PassRefPtr<NonInterpolableValue> start, PassRefPtr<NonInterpolableValue> end);
 
-    RawPtr<CSSValue> crossfade(double progress) const
+    CSSValue* crossfade(double progress) const
     {
         if (m_isSingle || progress <= 0)
             return m_start;
@@ -41,7 +41,7 @@
     DECLARE_NON_INTERPOLABLE_VALUE_TYPE();
 
 private:
-    CSSImageNonInterpolableValue(RawPtr<CSSValue> start, RawPtr<CSSValue> end)
+    CSSImageNonInterpolableValue(CSSValue* start, CSSValue* end)
         : m_start(start)
         , m_end(end)
         , m_isSingle(m_start == m_end)
@@ -93,14 +93,14 @@
         CSSImageNonInterpolableValue::merge(start.nonInterpolableValue, end.nonInterpolableValue));
 }
 
-RawPtr<CSSValue> CSSImageInterpolationType::createCSSValue(const InterpolableValue& interpolableValue, const NonInterpolableValue* nonInterpolableValue)
+CSSValue* CSSImageInterpolationType::createCSSValue(const InterpolableValue& interpolableValue, const NonInterpolableValue* nonInterpolableValue)
 {
     return toCSSImageNonInterpolableValue(nonInterpolableValue)->crossfade(toInterpolableNumber(interpolableValue).value());
 }
 
-RawPtr<StyleImage> CSSImageInterpolationType::resolveStyleImage(CSSPropertyID property, const InterpolableValue& interpolableValue, const NonInterpolableValue* nonInterpolableValue, StyleResolverState& state)
+StyleImage* CSSImageInterpolationType::resolveStyleImage(CSSPropertyID property, const InterpolableValue& interpolableValue, const NonInterpolableValue* nonInterpolableValue, StyleResolverState& state)
 {
-    RawPtr<CSSValue> image = createCSSValue(interpolableValue, nonInterpolableValue);
+    CSSValue* image = createCSSValue(interpolableValue, nonInterpolableValue);
     return state.styleImage(property, *image);
 }
 
@@ -151,13 +151,13 @@
 public:
     ~ParentImageChecker() final {}
 
-    static PassOwnPtr<ParentImageChecker> create(CSSPropertyID property, RawPtr<StyleImage> inheritedImage)
+    static PassOwnPtr<ParentImageChecker> create(CSSPropertyID property, StyleImage* inheritedImage)
     {
         return adoptPtr(new ParentImageChecker(property, inheritedImage));
     }
 
 private:
-    ParentImageChecker(CSSPropertyID property, RawPtr<StyleImage> inheritedImage)
+    ParentImageChecker(CSSPropertyID property, StyleImage* inheritedImage)
         : m_property(property)
         , m_inheritedImage(inheritedImage)
     { }
diff --git a/third_party/WebKit/Source/core/animation/CSSImageInterpolationType.h b/third_party/WebKit/Source/core/animation/CSSImageInterpolationType.h
index 17153c8..d179007 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 RawPtr<CSSValue> createCSSValue(const InterpolableValue&, const NonInterpolableValue*);
-    static RawPtr<StyleImage> resolveStyleImage(CSSPropertyID, const InterpolableValue&, const NonInterpolableValue*, StyleResolverState&);
+    static CSSValue* createCSSValue(const InterpolableValue&, const NonInterpolableValue*);
+    static 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 aab8c8a2..03aaf0f 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;
 
-    RawPtr<CSSValueList> tempList = nullptr;
+    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 94c67a5e..51af4ea 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, RawPtr<CSSVariableReferenceValue> variableReference, RawPtr<CSSValue> resolvedValue)
+    static PassOwnPtr<ResolvedVariableChecker> create(CSSPropertyID property, CSSVariableReferenceValue* variableReference, CSSValue* resolvedValue)
     {
         return adoptPtr(new ResolvedVariableChecker(property, variableReference, resolvedValue));
     }
 
 private:
-    ResolvedVariableChecker(CSSPropertyID property, RawPtr<CSSVariableReferenceValue> variableReference, RawPtr<CSSValue> resolvedValue)
+    ResolvedVariableChecker(CSSPropertyID property, CSSVariableReferenceValue* variableReference, CSSValue* resolvedValue)
         : m_property(property)
         , m_variableReference(variableReference)
         , m_resolvedValue(resolvedValue)
@@ -30,7 +30,7 @@
     bool isValid(const InterpolationEnvironment& environment, const InterpolationValue& underlying) const final
     {
         // TODO(alancutter): Just check the variables referenced instead of doing a full CSSValue resolve.
-        RawPtr<CSSValue> resolvedValue = CSSVariableResolver::resolveVariableReferences(environment.state().style()->variables(), m_property, *m_variableReference);
+        CSSValue* resolvedValue = CSSVariableResolver::resolveVariableReferences(environment.state().style()->variables(), m_property, *m_variableReference);
         return m_resolvedValue->equals(*resolvedValue);
     }
 
@@ -41,7 +41,7 @@
 
 InterpolationValue CSSInterpolationType::maybeConvertSingle(const PropertySpecificKeyframe& keyframe, const InterpolationEnvironment& environment, const InterpolationValue& underlying, ConversionCheckers& conversionCheckers) const
 {
-    RawPtr<CSSValue> resolvedCSSValueOwner;
+    CSSValue* resolvedCSSValueOwner;
     const CSSValue* value = toCSSPropertySpecificKeyframe(keyframe).value();
 
     if (!value)
@@ -50,7 +50,7 @@
     if (value->isVariableReferenceValue() && !isShorthandProperty(cssProperty())) {
         resolvedCSSValueOwner = CSSVariableResolver::resolveVariableReferences(environment.state().style()->variables(), cssProperty(), toCSSVariableReferenceValue(*value));
         conversionCheckers.append(ResolvedVariableChecker::create(cssProperty(), toCSSVariableReferenceValue(const_cast<CSSValue*>(value)), resolvedCSSValueOwner));
-        value = resolvedCSSValueOwner.get();
+        value = resolvedCSSValueOwner;
     }
 
     if (value->isInitialValue() || (value->isUnsetValue() && !CSSPropertyMetadata::isInheritedProperty(cssProperty())))
diff --git a/third_party/WebKit/Source/core/animation/CSSLengthInterpolationType.cpp b/third_party/WebKit/Source/core/animation/CSSLengthInterpolationType.cpp
index cb11e0f..48532bb 100644
--- a/third_party/WebKit/Source/core/animation/CSSLengthInterpolationType.cpp
+++ b/third_party/WebKit/Source/core/animation/CSSLengthInterpolationType.cpp
@@ -286,23 +286,22 @@
     return static_cast<CSSPrimitiveValue::UnitType>(CSSPrimitiveValue::lengthUnitTypeToUnitType(static_cast<CSSPrimitiveValue::LengthUnitType>(lengthUnitType)));
 }
 
-static RawPtr<CSSCalcExpressionNode> createCalcExpression(const InterpolableList& values, bool hasPercentage)
+static CSSCalcExpressionNode* createCalcExpression(const InterpolableList& values, bool hasPercentage)
 {
-    RawPtr<CSSCalcExpressionNode> result = nullptr;
+    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)) {
             RawPtr<CSSCalcExpressionNode> node = CSSCalcValue::createExpressionNode(CSSPrimitiveValue::create(value, toUnitType(i)));
-            result = result ? CSSCalcValue::createExpressionNode(result.release(), node.release(), CalcAdd) : node.release();
+            result = result ? CSSCalcValue::createExpressionNode(result, node, CalcAdd) : node;
         }
     }
     ASSERT(result);
-    return result.release();
+    return result;
 }
 
-static RawPtr<CSSValue> createCSSValue(const InterpolableList& values, bool hasPercentage, ValueRange range)
+static CSSValue* createCSSValue(const InterpolableList& values, bool hasPercentage, ValueRange range)
 {
-    RawPtr<CSSPrimitiveValue> result;
     size_t firstUnitIndex = CSSPrimitiveValue::LengthUnitTypeCount;
     size_t unitTypeCount = 0;
     for (size_t i = 0; i < CSSPrimitiveValue::LengthUnitTypeCount; i++) {
@@ -335,14 +334,14 @@
 #if ENABLE(ASSERT)
             // Assert that setting the length on ComputedStyle directly is identical to the AnimatableValue code path.
             RefPtr<AnimatableValue> before = CSSAnimatableValueFactory::create(cssProperty(), *state.style());
-            StyleBuilder::applyProperty(cssProperty(), state, createCSSValue(values, hasPercentage, m_valueRange).get());
+            StyleBuilder::applyProperty(cssProperty(), state, createCSSValue(values, hasPercentage, m_valueRange));
             RefPtr<AnimatableValue> after = CSSAnimatableValueFactory::create(cssProperty(), *state.style());
             ASSERT(before->equals(*after));
 #endif
             return;
         }
     }
-    StyleBuilder::applyProperty(cssProperty(), state, createCSSValue(values, hasPercentage, m_valueRange).get());
+    StyleBuilder::applyProperty(cssProperty(), state, createCSSValue(values, hasPercentage, m_valueRange));
 }
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/animation/CSSSizeListInterpolationType.h b/third_party/WebKit/Source/core/animation/CSSSizeListInterpolationType.h
index 9e3f169..9c121811 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
     {
-        RawPtr<CSSValueList> tempList = nullptr;
+        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 e3076e8..6036f56 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(RawPtr<CSSValue> cssValue)
+    static PassRefPtr<CSSValueNonInterpolableValue> create(CSSValue* cssValue)
     {
         return adoptRef(new CSSValueNonInterpolableValue(cssValue));
     }
@@ -24,7 +24,7 @@
     DECLARE_NON_INTERPOLABLE_VALUE_TYPE();
 
 private:
-    CSSValueNonInterpolableValue(RawPtr<CSSValue> cssValue)
+    CSSValueNonInterpolableValue(CSSValue* cssValue)
         : m_cssValue(cssValue)
     {
         ASSERT(m_cssValue);
diff --git a/third_party/WebKit/Source/core/animation/DeferredLegacyStyleInterpolation.h b/third_party/WebKit/Source/core/animation/DeferredLegacyStyleInterpolation.h
index 2e1659c..8d81876 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(RawPtr<CSSValue> start, RawPtr<CSSValue> end, CSSPropertyID id)
+    static PassRefPtr<DeferredLegacyStyleInterpolation> create(CSSValue* start, CSSValue* end, CSSPropertyID id)
     {
         return adoptRef(new DeferredLegacyStyleInterpolation(start, end, id));
     }
@@ -47,7 +47,7 @@
     static bool interpolationRequiresStyleResolve(const CSSQuadValue&);
 
 private:
-    DeferredLegacyStyleInterpolation(RawPtr<CSSValue> start, RawPtr<CSSValue> end, CSSPropertyID id)
+    DeferredLegacyStyleInterpolation(CSSValue* start, CSSValue* end, CSSPropertyID id)
         : StyleInterpolation(InterpolableNumber::create(0), InterpolableNumber::create(1), id)
         , m_startCSSValue(start)
         , m_endCSSValue(end)
diff --git a/third_party/WebKit/Source/core/animation/DeferredLegacyStyleInterpolationTest.cpp b/third_party/WebKit/Source/core/animation/DeferredLegacyStyleInterpolationTest.cpp
index 5cbd062d..110badd 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;
-        RawPtr<CSSValue> value = CSSParser::parseSingleValue(propertyID, string, CSSParserContext(parserMode, 0));
+        CSSValue* value = CSSParser::parseSingleValue(propertyID, string, CSSParserContext(parserMode, 0));
         ASSERT(value);
         return DeferredLegacyStyleInterpolation::interpolationRequiresStyleResolve(*value);
     }
diff --git a/third_party/WebKit/Source/core/animation/ImagePropertyFunctions.h b/third_party/WebKit/Source/core/animation/ImagePropertyFunctions.h
index 0b8e1df..5083017 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, RawPtr<StyleImage> image)
+    static void setStyleImage(CSSPropertyID property, ComputedStyle& style, StyleImage* image)
     {
         switch (property) {
         case CSSPropertyBorderImageSource:
diff --git a/third_party/WebKit/Source/core/animation/KeyframeEffectModelTest.cpp b/third_party/WebKit/Source/core/animation/KeyframeEffectModelTest.cpp
index 14bd0b0..d58beee5b 100644
--- a/third_party/WebKit/Source/core/animation/KeyframeEffectModelTest.cpp
+++ b/third_party/WebKit/Source/core/animation/KeyframeEffectModelTest.cpp
@@ -80,7 +80,7 @@
     if (value->isLength())
         actualValue = toAnimatableLength(value.get())->getLength(1, ValueRangeAll).value();
     else
-        actualValue = toCSSPrimitiveValue(toAnimatableUnknown(value.get())->toCSSValue().get())->getDoubleValue();
+        actualValue = toCSSPrimitiveValue(toAnimatableUnknown(value.get())->toCSSValue())->getDoubleValue();
 
     EXPECT_FLOAT_EQ(static_cast<float>(expectedValue), actualValue);
 }
diff --git a/third_party/WebKit/Source/core/animation/SVGAngleInterpolationType.cpp b/third_party/WebKit/Source/core/animation/SVGAngleInterpolationType.cpp
index 5d7f689..ebac3de 100644
--- a/third_party/WebKit/Source/core/animation/SVGAngleInterpolationType.cpp
+++ b/third_party/WebKit/Source/core/animation/SVGAngleInterpolationType.cpp
@@ -22,12 +22,12 @@
     return InterpolationValue(InterpolableNumber::create(toSVGAngle(svgValue).value()));
 }
 
-RawPtr<SVGPropertyBase> SVGAngleInterpolationType::appliedSVGValue(const InterpolableValue& interpolableValue, const NonInterpolableValue*) const
+SVGPropertyBase* SVGAngleInterpolationType::appliedSVGValue(const InterpolableValue& interpolableValue, const NonInterpolableValue*) const
 {
     double doubleValue = toInterpolableNumber(interpolableValue).value();
-    RawPtr<SVGAngle> result = SVGAngle::create();
+    SVGAngle* result = SVGAngle::create();
     result->newValueSpecifiedUnits(SVGAngle::SVG_ANGLETYPE_DEG, doubleValue);
-    return result.release();
+    return result;
 }
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/animation/SVGAngleInterpolationType.h b/third_party/WebKit/Source/core/animation/SVGAngleInterpolationType.h
index 578652e3..ec4a8b6 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;
-    RawPtr<SVGPropertyBase> appliedSVGValue(const InterpolableValue&, const NonInterpolableValue*) const final;
+    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 b05b4876..4d61c34 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()));
 }
 
-RawPtr<SVGPropertyBase> SVGIntegerInterpolationType::appliedSVGValue(const InterpolableValue& interpolableValue, const NonInterpolableValue*) const
+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 8d25e417..d76561b 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;
-    RawPtr<SVGPropertyBase> appliedSVGValue(const InterpolableValue&, const NonInterpolableValue*) const final;
+    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 dd5d87c0..6d5773c5 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 RawPtr<SVGInteger> toPositiveInteger(const InterpolableValue* number)
+static SVGInteger* toPositiveInteger(const InterpolableValue* number)
 {
     return SVGInteger::create(clampTo<int>(roundf(toInterpolableNumber(number)->value()), 1));
 }
 
-RawPtr<SVGPropertyBase> SVGIntegerOptionalIntegerInterpolationType::appliedSVGValue(const InterpolableValue& interpolableValue, const NonInterpolableValue*) const
+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 a9bf9987..66ce05c7 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;
-    RawPtr<SVGPropertyBase> appliedSVGValue(const InterpolableValue&, const NonInterpolableValue*) const final;
+    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 f015ae5..9ed3832a 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);
 
-    RawPtr<SVGPropertyBase> svgValue = environment.svgBaseValue().cloneForAnimation(toSVGPropertySpecificKeyframe(keyframe).value());
+    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 912ee32..d0351f9 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 RawPtr<SVGPropertyBase> appliedSVGValue(const InterpolableValue&, const NonInterpolableValue*) const = 0;
+    virtual 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 9666d57..1706ab9 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());
 }
 
-RawPtr<SVGLength> SVGLengthInterpolationType::resolveInterpolableSVGLength(const InterpolableValue& interpolableValue, const SVGLengthContext& lengthContext, SVGLengthMode unitMode, bool negativeValuesForbidden)
+SVGLength* SVGLengthInterpolationType::resolveInterpolableSVGLength(const InterpolableValue& interpolableValue, const SVGLengthContext& lengthContext, SVGLengthMode unitMode, bool negativeValuesForbidden)
 {
     const InterpolableList& listOfValues = toInterpolableList(interpolableValue);
 
@@ -134,9 +134,9 @@
     if (negativeValuesForbidden && value < 0)
         value = 0;
 
-    RawPtr<SVGLength> result = SVGLength::create(unitMode); // defaults to the length 0
+    SVGLength* result = SVGLength::create(unitMode); // defaults to the length 0
     result->newValueSpecifiedUnits(unitType, value);
-    return result.release();
+    return result;
 }
 
 InterpolationValue SVGLengthInterpolationType::maybeConvertNeutral(const InterpolationValue&, ConversionCheckers&) const
@@ -152,7 +152,7 @@
     return convertSVGLength(toSVGLength(svgValue));
 }
 
-RawPtr<SVGPropertyBase> SVGLengthInterpolationType::appliedSVGValue(const InterpolableValue& interpolableValue, const NonInterpolableValue*) const
+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 b3d0ddb7..2890bcad 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 RawPtr<SVGLength> resolveInterpolableSVGLength(const InterpolableValue&, const SVGLengthContext&, SVGLengthMode, bool negativeValuesForbidden);
+    static 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;
-    RawPtr<SVGPropertyBase> appliedSVGValue(const InterpolableValue&, const NonInterpolableValue*) const final;
+    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 0524f74..e2d814c 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);
 }
 
-RawPtr<SVGPropertyBase> SVGLengthListInterpolationType::appliedSVGValue(const InterpolableValue& interpolableValue, const NonInterpolableValue*) const
+SVGPropertyBase* SVGLengthListInterpolationType::appliedSVGValue(const InterpolableValue& interpolableValue, const NonInterpolableValue*) const
 {
     ASSERT_NOT_REACHED();
     // This function is no longer called, because apply has been overridden.
@@ -71,13 +71,13 @@
     SVGElement& element = environment.svgElement();
     SVGLengthContext lengthContext(&element);
 
-    RawPtr<SVGLengthList> result = SVGLengthList::create(m_unitMode);
+    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));
     }
 
-    element.setWebAnimatedAttribute(attribute(), result.release());
+    element.setWebAnimatedAttribute(attribute(), result);
 }
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/animation/SVGLengthListInterpolationType.h b/third_party/WebKit/Source/core/animation/SVGLengthListInterpolationType.h
index d9656a9..7bb81f0 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;
-    RawPtr<SVGPropertyBase> appliedSVGValue(const InterpolableValue&, const NonInterpolableValue*) const final;
+    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 a5284dbd..0cf74b3 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()));
 }
 
-RawPtr<SVGPropertyBase> SVGNumberInterpolationType::appliedSVGValue(const InterpolableValue& interpolableValue, const NonInterpolableValue*) const
+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 b8cb6869..b37989f 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;
-    RawPtr<SVGPropertyBase> appliedSVGValue(const InterpolableValue&, const NonInterpolableValue*) const final;
+    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 5eb7d93..7f94df56 100644
--- a/third_party/WebKit/Source/core/animation/SVGNumberListInterpolationType.cpp
+++ b/third_party/WebKit/Source/core/animation/SVGNumberListInterpolationType.cpp
@@ -78,13 +78,13 @@
         underlyingList.getMutable(i)->scale(underlyingFraction);
 }
 
-RawPtr<SVGPropertyBase> SVGNumberListInterpolationType::appliedSVGValue(const InterpolableValue& interpolableValue, const NonInterpolableValue*) const
+SVGPropertyBase* SVGNumberListInterpolationType::appliedSVGValue(const InterpolableValue& interpolableValue, const NonInterpolableValue*) const
 {
-    RawPtr<SVGNumberList> result = SVGNumberList::create();
+    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()));
-    return result.release();
+    return result;
 }
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/animation/SVGNumberListInterpolationType.h b/third_party/WebKit/Source/core/animation/SVGNumberListInterpolationType.h
index 802f173e..9ea2cf3 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;
-    RawPtr<SVGPropertyBase> appliedSVGValue(const InterpolableValue&, const NonInterpolableValue*) const final;
+    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 30219b3..8d874d2 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());
 }
 
-RawPtr<SVGPropertyBase> SVGNumberOptionalNumberInterpolationType::appliedSVGValue(const InterpolableValue& interpolableValue, const NonInterpolableValue*) const
+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 9d6c6b6..fee1b162 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;
-    RawPtr<SVGPropertyBase> appliedSVGValue(const InterpolableValue&, const NonInterpolableValue*) const final;
+    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 95e72b9..5ec8e5d 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);
 }
 
-RawPtr<SVGPropertyBase> SVGPathInterpolationType::appliedSVGValue(const InterpolableValue& interpolableValue, const NonInterpolableValue* nonInterpolableValue) const
+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 157d0a8..1355a2b8 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;
-    RawPtr<SVGPropertyBase> appliedSVGValue(const InterpolableValue&, const NonInterpolableValue*) const final;
+    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 2aa7990..d7ce74e 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);
 }
 
-RawPtr<SVGPropertyBase> SVGPointListInterpolationType::appliedSVGValue(const InterpolableValue& interpolableValue, const NonInterpolableValue*) const
+SVGPropertyBase* SVGPointListInterpolationType::appliedSVGValue(const InterpolableValue& interpolableValue, const NonInterpolableValue*) const
 {
-    RawPtr<SVGPointList> result = SVGPointList::create();
+    SVGPointList* result = SVGPointList::create();
 
     const InterpolableList& list = toInterpolableList(interpolableValue);
     ASSERT(list.length() % 2 == 0);
@@ -74,7 +74,7 @@
         result->append(SVGPoint::create(point));
     }
 
-    return result.release();
+    return result;
 }
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/animation/SVGPointListInterpolationType.h b/third_party/WebKit/Source/core/animation/SVGPointListInterpolationType.h
index c372e4b6..6f2de5a7 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;
-    RawPtr<SVGPropertyBase> appliedSVGValue(const InterpolableValue&, const NonInterpolableValue*) const final;
+    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 2ca8b884..411d329 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());
 }
 
-RawPtr<SVGPropertyBase> SVGRectInterpolationType::appliedSVGValue(const InterpolableValue& interpolableValue, const NonInterpolableValue*) const
+SVGPropertyBase* SVGRectInterpolationType::appliedSVGValue(const InterpolableValue& interpolableValue, const NonInterpolableValue*) const
 {
     const InterpolableList& list = toInterpolableList(interpolableValue);
-    RawPtr<SVGRect> result = SVGRect::create();
+    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 6ca1fe0..404cd7b 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;
-    RawPtr<SVGPropertyBase> appliedSVGValue(const InterpolableValue&, const NonInterpolableValue*) const final;
+    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 be8aea6..079c4560 100644
--- a/third_party/WebKit/Source/core/animation/SVGTransformListInterpolationType.cpp
+++ b/third_party/WebKit/Source/core/animation/SVGTransformListInterpolationType.cpp
@@ -49,15 +49,15 @@
     return result.release();
 }
 
-RawPtr<SVGTransform> translateFromInterpolableValue(const InterpolableValue& value)
+SVGTransform* translateFromInterpolableValue(const InterpolableValue& value)
 {
     const InterpolableList& list = toInterpolableList(value);
 
-    RawPtr<SVGTransform> transform = SVGTransform::create(SVG_TRANSFORM_TRANSLATE);
+    SVGTransform* transform = SVGTransform::create(SVG_TRANSFORM_TRANSLATE);
     transform->setTranslate(
         toInterpolableNumber(list.get(0))->value(),
         toInterpolableNumber(list.get(1))->value());
-    return transform.release();
+    return transform;
 }
 
 PassOwnPtr<InterpolableValue> scaleToInterpolableValue(SVGTransform* transform)
@@ -69,15 +69,15 @@
     return result.release();
 }
 
-RawPtr<SVGTransform> scaleFromInterpolableValue(const InterpolableValue& value)
+SVGTransform* scaleFromInterpolableValue(const InterpolableValue& value)
 {
     const InterpolableList& list = toInterpolableList(value);
 
-    RawPtr<SVGTransform> transform = SVGTransform::create(SVG_TRANSFORM_SCALE);
+    SVGTransform* transform = SVGTransform::create(SVG_TRANSFORM_SCALE);
     transform->setScale(
         toInterpolableNumber(list.get(0))->value(),
         toInterpolableNumber(list.get(1))->value());
-    return transform.release();
+    return transform;
 }
 
 PassOwnPtr<InterpolableValue> rotateToInterpolableValue(SVGTransform* transform)
@@ -90,16 +90,16 @@
     return result.release();
 }
 
-RawPtr<SVGTransform> rotateFromInterpolableValue(const InterpolableValue& value)
+SVGTransform* rotateFromInterpolableValue(const InterpolableValue& value)
 {
     const InterpolableList& list = toInterpolableList(value);
 
-    RawPtr<SVGTransform> transform = SVGTransform::create(SVG_TRANSFORM_ROTATE);
+    SVGTransform* transform = SVGTransform::create(SVG_TRANSFORM_ROTATE);
     transform->setRotate(
         toInterpolableNumber(list.get(0))->value(),
         toInterpolableNumber(list.get(1))->value(),
         toInterpolableNumber(list.get(2))->value());
-    return transform.release();
+    return transform;
 }
 
 PassOwnPtr<InterpolableValue> skewXToInterpolableValue(SVGTransform* transform)
@@ -107,11 +107,11 @@
     return InterpolableNumber::create(transform->angle());
 }
 
-RawPtr<SVGTransform> skewXFromInterpolableValue(const InterpolableValue& value)
+SVGTransform* skewXFromInterpolableValue(const InterpolableValue& value)
 {
-    RawPtr<SVGTransform> transform = SVGTransform::create(SVG_TRANSFORM_SKEWX);
+    SVGTransform* transform = SVGTransform::create(SVG_TRANSFORM_SKEWX);
     transform->setSkewX(toInterpolableNumber(value).value());
-    return transform.release();
+    return transform;
 }
 
 PassOwnPtr<InterpolableValue> skewYToInterpolableValue(SVGTransform* transform)
@@ -119,11 +119,11 @@
     return InterpolableNumber::create(transform->angle());
 }
 
-RawPtr<SVGTransform> skewYFromInterpolableValue(const InterpolableValue& value)
+SVGTransform* skewYFromInterpolableValue(const InterpolableValue& value)
 {
-    RawPtr<SVGTransform> transform = SVGTransform::create(SVG_TRANSFORM_SKEWY);
+    SVGTransform* transform = SVGTransform::create(SVG_TRANSFORM_SKEWY);
     transform->setSkewY(toInterpolableNumber(value).value());
-    return transform.release();
+    return transform;
 }
 
 PassOwnPtr<InterpolableValue> toInterpolableValue(SVGTransform* transform, SVGTransformType transformType)
@@ -147,7 +147,7 @@
     return nullptr;
 }
 
-RawPtr<SVGTransform> fromInterpolableValue(const InterpolableValue& value, SVGTransformType transformType)
+SVGTransform* fromInterpolableValue(const InterpolableValue& value, SVGTransformType transformType)
 {
     switch (transformType) {
     case SVG_TRANSFORM_TRANSLATE:
@@ -224,7 +224,7 @@
             // TODO(ericwilligers): Support matrix interpolation.
             return nullptr;
         }
-        result->set(i, toInterpolableValue(transform->clone().get(), transformType));
+        result->set(i, toInterpolableValue(transform->clone(), transformType));
         transformTypes.append(transformType);
     }
     return InterpolationValue(result.release(), SVGTransformNonInterpolableValue::create(transformTypes));
@@ -246,7 +246,7 @@
     }
 
     if (!keyframe.isNeutral()) {
-        RawPtr<SVGPropertyBase> svgValue = environment.svgBaseValue().cloneForAnimation(toSVGPropertySpecificKeyframe(keyframe).value());
+        SVGPropertyBase* svgValue = environment.svgBaseValue().cloneForAnimation(toSVGPropertySpecificKeyframe(keyframe).value());
         InterpolationValue value = maybeConvertSVGValue(*svgValue);
         if (!value)
             return nullptr;
@@ -267,14 +267,14 @@
     return InterpolationValue(interpolableList.release(), SVGTransformNonInterpolableValue::create(types));
 }
 
-RawPtr<SVGPropertyBase> SVGTransformListInterpolationType::appliedSVGValue(const InterpolableValue& interpolableValue, const NonInterpolableValue* nonInterpolableValue) const
+SVGPropertyBase* SVGTransformListInterpolationType::appliedSVGValue(const InterpolableValue& interpolableValue, const NonInterpolableValue* nonInterpolableValue) const
 {
-    RawPtr<SVGTransformList> result = SVGTransformList::create();
+    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)
         result->append(fromInterpolableValue(*list.get(i), transformTypes.at(i)));
-    return result.release();
+    return result;
 }
 
 PairwiseInterpolationValue SVGTransformListInterpolationType::mergeSingleConversions(InterpolationValue&& start, InterpolationValue&& end) const
diff --git a/third_party/WebKit/Source/core/animation/SVGTransformListInterpolationType.h b/third_party/WebKit/Source/core/animation/SVGTransformListInterpolationType.h
index b71fc02..c842681 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;
-    RawPtr<SVGPropertyBase> appliedSVGValue(const InterpolableValue&, const NonInterpolableValue*) const final;
+    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 48cb024..db110ed6 100644
--- a/third_party/WebKit/Source/core/animation/SVGValueInterpolationType.cpp
+++ b/third_party/WebKit/Source/core/animation/SVGValueInterpolationType.cpp
@@ -14,17 +14,17 @@
 public:
     virtual ~SVGValueNonInterpolableValue() {}
 
-    static PassRefPtr<SVGValueNonInterpolableValue> create(RawPtr<SVGPropertyBase> svgValue)
+    static PassRefPtr<SVGValueNonInterpolableValue> create(SVGPropertyBase* svgValue)
     {
         return adoptRef(new SVGValueNonInterpolableValue(svgValue));
     }
 
-    RawPtr<SVGPropertyBase> svgValue() const { return m_svgValue; }
+    SVGPropertyBase* svgValue() const { return m_svgValue; }
 
     DECLARE_NON_INTERPOLABLE_VALUE_TYPE();
 
 private:
-    SVGValueNonInterpolableValue(RawPtr<SVGPropertyBase> svgValue)
+    SVGValueNonInterpolableValue(SVGPropertyBase* svgValue)
         : m_svgValue(svgValue)
     {}
 
@@ -36,11 +36,11 @@
 
 InterpolationValue SVGValueInterpolationType::maybeConvertSVGValue(const SVGPropertyBase& value) const
 {
-    RawPtr<SVGPropertyBase> referencedValue = const_cast<SVGPropertyBase*>(&value); // Take ref.
-    return InterpolationValue(InterpolableList::create(0), SVGValueNonInterpolableValue::create(referencedValue.release()));
+    SVGPropertyBase* referencedValue = const_cast<SVGPropertyBase*>(&value); // Take ref.
+    return InterpolationValue(InterpolableList::create(0), SVGValueNonInterpolableValue::create(referencedValue));
 }
 
-RawPtr<SVGPropertyBase> SVGValueInterpolationType::appliedSVGValue(const InterpolableValue&, const NonInterpolableValue* nonInterpolableValue) const
+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 b3e60fcaf..41ad88f 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);
     }
 
-    RawPtr<SVGPropertyBase> appliedSVGValue(const InterpolableValue&, const NonInterpolableValue*) const final;
+    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 1b125b1b..0c48fff 100644
--- a/third_party/WebKit/Source/core/animation/StringKeyframe.cpp
+++ b/third_party/WebKit/Source/core/animation/StringKeyframe.cpp
@@ -33,7 +33,7 @@
         m_cssPropertyMap->setProperty(property, value, false, styleSheetContents);
 }
 
-void StringKeyframe::setCSSPropertyValue(CSSPropertyID property, RawPtr<CSSValue> value)
+void StringKeyframe::setCSSPropertyValue(CSSPropertyID property, 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 7e388f5..746a7811 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, RawPtr<CSSValue>);
+    void setCSSPropertyValue(CSSPropertyID, CSSValue*);
     void setPresentationAttributeValue(CSSPropertyID, const String& value, Element*, StyleSheetContents*);
     void setSVGAttributeValue(const QualifiedName&, const String& value);
 
diff --git a/third_party/WebKit/Source/core/animation/animatable/AnimatableFilterOperations.cpp b/third_party/WebKit/Source/core/animation/animatable/AnimatableFilterOperations.cpp
index 35ac477..42049c7 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
-        RawPtr<FilterOperation> blendedOp = FilterOperation::blend(from, to, fraction);
+        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 bb11be3a..ab87d3f 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(RawPtr<CSSValue> value)
+    static PassRefPtr<AnimatableImage> create(CSSValue* value)
     {
         return adoptRef(new AnimatableImage(value));
     }
@@ -51,7 +51,7 @@
     bool usesDefaultInterpolationWith(const AnimatableValue*) const override;
 
 private:
-    AnimatableImage(RawPtr<CSSValue> value)
+    AnimatableImage(CSSValue* value)
         : m_value(value)
     {
         ASSERT(m_value.get());
diff --git a/third_party/WebKit/Source/core/animation/animatable/AnimatableUnknown.h b/third_party/WebKit/Source/core/animation/animatable/AnimatableUnknown.h
index 2fe8014..8ff14ad 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(RawPtr<CSSValue> value)
+    static PassRefPtr<AnimatableUnknown> create(CSSValue* value)
     {
         return adoptRef(new AnimatableUnknown(value));
     }
@@ -50,7 +50,7 @@
         return adoptRef(new AnimatableUnknown(cssValuePool().createIdentifierValue(value)));
     }
 
-    RawPtr<CSSValue> toCSSValue() const { return m_value; }
+    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(RawPtr<CSSValue> value)
+    explicit AnimatableUnknown(CSSValue* value)
         : m_value(value)
     {
         ASSERT(m_value);
diff --git a/third_party/WebKit/Source/core/animation/animatable/AnimatableValueTestHelper.cpp b/third_party/WebKit/Source/core/animation/animatable/AnimatableValueTestHelper.cpp
index 324a9f0a..eef1bd1 100644
--- a/third_party/WebKit/Source/core/animation/animatable/AnimatableValueTestHelper.cpp
+++ b/third_party/WebKit/Source/core/animation/animatable/AnimatableValueTestHelper.cpp
@@ -152,7 +152,7 @@
 
 void PrintTo(const AnimatableUnknown& animUnknown, ::std::ostream* os)
 {
-    PrintTo(*(animUnknown.toCSSValue().get()), os, "AnimatableUnknown");
+    PrintTo(*(animUnknown.toCSSValue()), os, "AnimatableUnknown");
 }
 
 void PrintTo(const AnimatableVisibility& animVisibility, ::std::ostream* os)
diff --git a/third_party/WebKit/Source/core/animation/css/CSSAnimatableValueFactory.cpp b/third_party/WebKit/Source/core/animation/css/CSSAnimatableValueFactory.cpp
index cb5e584e..325ff66 100644
--- a/third_party/WebKit/Source/core/animation/css/CSSAnimatableValueFactory.cpp
+++ b/third_party/WebKit/Source/core/animation/css/CSSAnimatableValueFactory.cpp
@@ -177,8 +177,8 @@
 inline static PassRefPtr<AnimatableValue> createFromStyleImage(StyleImage* image)
 {
     if (image) {
-        if (RawPtr<CSSValue> cssValue = image->cssValue())
-            return AnimatableImage::create(cssValue.release());
+        if (CSSValue* cssValue = image->cssValue())
+            return AnimatableImage::create(cssValue);
     }
     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 d12b5fc..5eeb6b1 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, RawPtr<StyleRuleKeyframes> styleRule)
+        NewAnimation(AtomicString name, size_t nameIndex, const InertEffect& effect, Timing timing, StyleRuleKeyframes* styleRule)
             : name(name)
             , nameIndex(nameIndex)
             , effect(effect)
@@ -58,7 +58,7 @@
     class UpdatedAnimation {
         DISALLOW_NEW_EXCEPT_PLACEMENT_NEW();
     public:
-        UpdatedAnimation(size_t index, Animation* animation, const InertEffect& effect, Timing specifiedTiming, RawPtr<StyleRuleKeyframes> styleRule)
+        UpdatedAnimation(size_t index, Animation* animation, const InertEffect& effect, Timing specifiedTiming, StyleRuleKeyframes* styleRule)
             : index(index)
             , animation(animation)
             , effect(&effect)
@@ -120,7 +120,7 @@
         m_updatedCompositorKeyframes.clear();
     }
 
-    void startAnimation(const AtomicString& animationName, size_t nameIndex, const InertEffect& effect, const Timing& timing, RawPtr<StyleRuleKeyframes> styleRule)
+    void startAnimation(const AtomicString& animationName, size_t nameIndex, const InertEffect& effect, const Timing& timing, 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,
-        RawPtr<StyleRuleKeyframes> styleRule)
+        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 1104211f9..e357d4b 100644
--- a/third_party/WebKit/Source/core/animation/css/CSSAnimations.cpp
+++ b/third_party/WebKit/Source/core/animation/css/CSSAnimations.cpp
@@ -303,7 +303,7 @@
             RefPtr<TimingFunction> keyframeTimingFunction = timing.timingFunction;
             timing.timingFunction = Timing::defaults().timingFunction;
 
-            RawPtr<StyleRuleKeyframes> keyframesRule = resolver->findKeyframesRule(elementForScoping, name);
+            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)) {
-        RawPtr<AnimationEvent> event = AnimationEvent::create(eventName, m_name, elapsedTime);
+        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());
-        RawPtr<TransitionEvent> event = TransitionEvent::create(eventType, propertyName, elapsedTime, pseudoElement);
+        TransitionEvent* event = TransitionEvent::create(eventType, propertyName, elapsedTime, pseudoElement);
         event->setTarget(eventTarget());
         document().enqueueAnimationFrameEvent(event);
     }
diff --git a/third_party/WebKit/Source/core/core.gypi b/third_party/WebKit/Source/core/core.gypi
index 06f3f85..09e1ff3 100644
--- a/third_party/WebKit/Source/core/core.gypi
+++ b/third_party/WebKit/Source/core/core.gypi
@@ -1596,6 +1596,8 @@
             'editing/state_machines/BackspaceStateMachine.h',
             'editing/state_machines/TextSegmentationMachineState.cpp',
             'editing/state_machines/TextSegmentationMachineState.h',
+            'editing/state_machines/StateMachineUtil.cpp',
+            'editing/state_machines/StateMachineUtil.h',
             'fetch/AccessControlStatus.h',
             'fetch/CSSStyleSheetResource.cpp',
             'fetch/CSSStyleSheetResource.h',
@@ -3966,6 +3968,7 @@
             'editing/serializers/StyledMarkupSerializerTest.cpp',
             'editing/spellcheck/SpellCheckerTest.cpp',
             'editing/state_machines/BackspaceStateMachineTest.cpp',
+            'editing/state_machines/StateMachineUtilTest.cpp',
             'events/EventPathTest.cpp',
             'events/PointerEventFactoryTest.cpp',
             'fetch/CachingCorrectnessTest.cpp',
diff --git a/third_party/WebKit/Source/core/css/resolver/AnimatedStyleBuilder.cpp b/third_party/WebKit/Source/core/css/resolver/AnimatedStyleBuilder.cpp
index 9a7c4ca0..8bbafc0 100644
--- a/third_party/WebKit/Source/core/css/resolver/AnimatedStyleBuilder.cpp
+++ b/third_party/WebKit/Source/core/css/resolver/AnimatedStyleBuilder.cpp
@@ -287,7 +287,7 @@
 {
     ASSERT(CSSPropertyMetadata::isInterpolableProperty(property));
     if (value->isUnknown()) {
-        StyleBuilder::applyProperty(property, state, toAnimatableUnknown(value)->toCSSValue().get());
+        StyleBuilder::applyProperty(property, state, toAnimatableUnknown(value)->toCSSValue());
         return;
     }
     ComputedStyle* style = state.style();
diff --git a/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp b/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp
index b8ccadf..7bd797a5 100644
--- a/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp
+++ b/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp
@@ -81,6 +81,7 @@
 #include "core/frame/LocalFrame.h"
 #include "core/frame/Settings.h"
 #include "core/html/HTMLIFrameElement.h"
+#include "core/html/HTMLSlotElement.h"
 #include "core/inspector/InspectorInstrumentation.h"
 #include "core/layout/GeneratedChildren.h"
 #include "core/layout/LayoutView.h"
@@ -431,6 +432,25 @@
     }
 }
 
+static void matchSlottedRules(const Element& element, ElementRuleCollector& collector)
+{
+    HTMLSlotElement* slot = element.assignedSlot();
+    if (!slot)
+        return;
+
+    HeapVector<Member<ScopedStyleResolver>> resolvers;
+    for (; slot; slot = slot->assignedSlot()) {
+        if (ScopedStyleResolver* resolver = slot->treeScope().scopedStyleResolver())
+            resolvers.append(resolver);
+    }
+    for (auto it = resolvers.rbegin(); it != resolvers.rend(); ++it) {
+        collector.clearMatchedRules();
+        (*it)->collectMatchingTreeBoundaryCrossingRules(collector);
+        collector.sortAndTransferMatchedRules();
+        collector.finishAddingAuthorRulesForTreeScope();
+    }
+}
+
 static void matchElementScopeRules(const Element& element, ScopedStyleResolver* elementScopeResolver, ElementRuleCollector& collector)
 {
     if (elementScopeResolver) {
@@ -482,11 +502,15 @@
     // scope, only tree-boundary-crossing rules may match.
 
     ScopedStyleResolver* elementScopeResolver = scopedResolverFor(element);
+
+    if (!document().styleEngine().mayContainV0Shadow()) {
+        matchSlottedRules(element, collector);
+        matchElementScopeRules(element, elementScopeResolver, collector);
+        return;
+    }
+
     bool matchElementScopeDone = !elementScopeResolver && !element.inlineStyle();
 
-    // TODO(kochi): This loops through m_treeBoundaryCrossingScopes because to handle
-    // Shadow DOM V0 documents as well. In pure V1 document only have to go through
-    // the chain of scopes for assigned slots. Add fast path for pure V1 document.
     for (auto it = m_treeBoundaryCrossingScopes.rbegin(); it != m_treeBoundaryCrossingScopes.rend(); ++it) {
         const TreeScope& scope = (*it)->treeScope();
         ScopedStyleResolver* resolver = scope.scopedStyleResolver();
diff --git a/third_party/WebKit/Source/core/dom/Document.h b/third_party/WebKit/Source/core/dom/Document.h
index 0c6bf6f1..646af18 100644
--- a/third_party/WebKit/Source/core/dom/Document.h
+++ b/third_party/WebKit/Source/core/dom/Document.h
@@ -265,7 +265,7 @@
     const ViewportDescription& viewportDescription() const { return m_viewportDescription; }
     Length viewportDefaultMinWidth() const { return m_viewportDefaultMinWidth; }
 
-    String outgoingReferrer() const;
+    String outgoingReferrer() const override;
 
     void setDoctype(RawPtr<DocumentType>);
     DocumentType* doctype() const { return m_docType.get(); }
diff --git a/third_party/WebKit/Source/core/dom/ExecutionContext.cpp b/third_party/WebKit/Source/core/dom/ExecutionContext.cpp
index d63b8465..391f391 100644
--- a/third_party/WebKit/Source/core/dom/ExecutionContext.cpp
+++ b/third_party/WebKit/Source/core/dom/ExecutionContext.cpp
@@ -254,6 +254,11 @@
     return isSecureContext(unusedErrorMessage, privilegeContextCheck);
 }
 
+String ExecutionContext::outgoingReferrer() const
+{
+    return url().strippedForUseAsReferrer();
+}
+
 void ExecutionContext::setReferrerPolicy(ReferrerPolicy referrerPolicy)
 {
     // When a referrer policy has already been set, the latest value takes precedence.
diff --git a/third_party/WebKit/Source/core/dom/ExecutionContext.h b/third_party/WebKit/Source/core/dom/ExecutionContext.h
index ce21bcb..7d445f9 100644
--- a/third_party/WebKit/Source/core/dom/ExecutionContext.h
+++ b/third_party/WebKit/Source/core/dom/ExecutionContext.h
@@ -153,6 +153,7 @@
     virtual bool isSecureContext(String& errorMessage, const SecureContextCheck = StandardSecureContextCheck) const = 0;
     virtual bool isSecureContext(const SecureContextCheck = StandardSecureContextCheck) const;
 
+    virtual String outgoingReferrer() const;
     void setReferrerPolicy(ReferrerPolicy);
     ReferrerPolicy getReferrerPolicy() const { return m_referrerPolicy; }
 
diff --git a/third_party/WebKit/Source/core/dom/StyleEngine.cpp b/third_party/WebKit/Source/core/dom/StyleEngine.cpp
index ec08731..35f85b6 100644
--- a/third_party/WebKit/Source/core/dom/StyleEngine.cpp
+++ b/third_party/WebKit/Source/core/dom/StyleEngine.cpp
@@ -735,14 +735,20 @@
 
 void StyleEngine::setShadowCascadeOrder(ShadowCascadeOrder order)
 {
-    if (order <= m_shadowCascadeOrder)
+    ASSERT(order != ShadowCascadeOrder::ShadowCascadeNone);
+
+    if (order == m_shadowCascadeOrder)
         return;
 
+    if (order == ShadowCascadeOrder::ShadowCascadeV0)
+        m_mayContainV0Shadow = true;
+
     // For V0 -> V1 upgrade, we need style recalculation for the whole document.
     if (m_shadowCascadeOrder == ShadowCascadeOrder::ShadowCascadeV0 && order == ShadowCascadeOrder::ShadowCascadeV1)
         document().setNeedsStyleRecalc(SubtreeStyleChange, StyleChangeReasonForTracing::create(StyleChangeReason::Shadow));
 
-    m_shadowCascadeOrder = order;
+    if (order > m_shadowCascadeOrder)
+        m_shadowCascadeOrder = order;
 }
 
 void StyleEngine::setPreferredStylesheetSetNameIfNotSet(const String& name)
diff --git a/third_party/WebKit/Source/core/dom/StyleEngine.h b/third_party/WebKit/Source/core/dom/StyleEngine.h
index 97da62c..6d642547 100644
--- a/third_party/WebKit/Source/core/dom/StyleEngine.h
+++ b/third_party/WebKit/Source/core/dom/StyleEngine.h
@@ -185,6 +185,7 @@
 
     ShadowCascadeOrder shadowCascadeOrder() const { return m_shadowCascadeOrder; }
     void setShadowCascadeOrder(ShadowCascadeOrder);
+    bool mayContainV0Shadow() const { return m_mayContainV0Shadow; }
 
     DECLARE_VIRTUAL_TRACE();
 
@@ -260,6 +261,7 @@
 
     bool m_ignorePendingStylesheets = false;
     bool m_didCalculateResolver = false;
+    bool m_mayContainV0Shadow = false;
 
     ShadowCascadeOrder m_shadowCascadeOrder = ShadowCascadeNone;
 
diff --git a/third_party/WebKit/Source/core/editing/FrameSelection.h b/third_party/WebKit/Source/core/editing/FrameSelection.h
index 663cc0e..19f9ce9 100644
--- a/third_party/WebKit/Source/core/editing/FrameSelection.h
+++ b/third_party/WebKit/Source/core/editing/FrameSelection.h
@@ -231,6 +231,8 @@
 
     HTMLFormElement* currentForm() const;
 
+    // TODO(tkent): This function has a bug that scrolling doesn't work well in
+    // a case of RangeSelection. crbug.com/443061
     void revealSelection(const ScrollAlignment& = ScrollAlignment::alignCenterIfNeeded, RevealExtentOption = DoNotRevealExtent);
     void setSelectionFromNone();
 
diff --git a/third_party/WebKit/Source/core/editing/state_machines/StateMachineUtil.cpp b/third_party/WebKit/Source/core/editing/state_machines/StateMachineUtil.cpp
new file mode 100644
index 0000000..fe3a4d0
--- /dev/null
+++ b/third_party/WebKit/Source/core/editing/state_machines/StateMachineUtil.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 "core/editing/state_machines/StateMachineUtil.h"
+
+#include "platform/fonts/Character.h"
+#include "wtf/Assertions.h"
+#include "wtf/text/CharacterNames.h"
+#include "wtf/text/Unicode.h"
+
+namespace blink {
+
+namespace {
+
+// Returns true if the code point has Glue_After_Zwj grapheme break property.
+// See http://www.unicode.org/Public/9.0.0/ucd/auxiliary/GraphemeBreakProperty-9.0.0d18.txt
+bool isGlueAfterZwj(uint32_t codePoint)
+{
+    return codePoint == WTF::Unicode::heavyBlackHeartCharacter
+        || codePoint == WTF::Unicode::kissMarkCharacter
+        || codePoint == WTF::Unicode::leftSpeechBubbleCharacter;
+}
+
+// Returns true if the code point has E_Basae_GAZ grapheme break property.
+// See http://www.unicode.org/Public/9.0.0/ucd/auxiliary/GraphemeBreakProperty-9.0.0d18.txt
+bool isEBaseGAZ(uint32_t codePoint)
+{
+    return codePoint == WTF::Unicode::boyCharacter
+        || codePoint == WTF::Unicode::girlCharacter
+        || codePoint == WTF::Unicode::manCharacter
+        || codePoint == WTF::Unicode::womanCharacter;
+}
+
+// The list of code points which has Indic_Syllabic_Category=Virama property.
+// Must be sorted.
+// See http://www.unicode.org/Public/9.0.0/ucd/IndicSyllabicCategory-9.0.0d2.txt
+const uint32_t kIndicSyllabicCategoryViramaList[] = {
+    0x094D, 0x09CD, 0x0A4D, 0x0ACD, 0x0B4D, 0x0BCD, 0x0C4D, 0x0CCD, 0x0D4D,
+    0x0DCA, 0x1B44, 0xA8C4, 0xA9C0, 0x11046, 0x110B9, 0x111C0, 0x11235, 0x1134D,
+    0x11442, 0x114C2, 0x115BF, 0x1163F, 0x116B6, 0x11C3F,
+};
+
+// Returns true if the code point has Indic_Syllabic_Category=Virama property.
+// See http://www.unicode.org/Public/9.0.0/ucd/IndicSyllabicCategory-9.0.0d2.txt
+bool isIndicSyllabicCategoryVirama(uint32_t codePoint)
+{
+    const int length = WTF_ARRAY_LENGTH(kIndicSyllabicCategoryViramaList);
+    return std::binary_search(kIndicSyllabicCategoryViramaList,
+        kIndicSyllabicCategoryViramaList + length,
+        codePoint);
+}
+
+} // namespace
+
+bool isGraphemeBreak(UChar32 prevCodePoint, UChar32 nextCodePoint)
+{
+    // The following breaking rules come from Unicode Standard Annex #29 on
+    // Unicode Text Segmaentation. See http://www.unicode.org/reports/tr29/
+    // Note that some of rules are in proposal.
+    // Also see http://www.unicode.org/reports/tr29/proposed.html
+    int prevProp =
+        u_getIntPropertyValue(prevCodePoint, UCHAR_GRAPHEME_CLUSTER_BREAK);
+    int nextProp =
+        u_getIntPropertyValue(nextCodePoint, UCHAR_GRAPHEME_CLUSTER_BREAK);
+
+    // Rule1 GB1 sot ÷
+    // Rule2 GB2 ÷ eot
+    // Should be handled by caller.
+
+    // Rule GB3, CR x LF
+    if (prevProp == U_GCB_CR && nextProp == U_GCB_LF)
+        return false;
+
+    // Rule GB4, (Control | CR | LF) ÷
+    if (prevProp == U_GCB_CONTROL || prevProp == U_GCB_CR
+        || prevProp == U_GCB_LF)
+        return true;
+
+    // Rule GB5, ÷ (Control | CR | LF)
+    if (nextProp == U_GCB_CONTROL || nextProp == U_GCB_CR
+        || nextProp == U_GCB_LF)
+        return true;
+
+    // Rule GB6, L x (L | V | LV | LVT)
+    if (prevProp == U_GCB_L
+        && (nextProp == U_GCB_L || nextProp == U_GCB_V || nextProp == U_GCB_LV
+            || nextProp == U_GCB_LVT))
+        return false;
+
+    // Rule GB7, (LV | V) x (V | T)
+    if ((prevProp == U_GCB_LV || prevProp == U_GCB_V)
+        && (nextProp == U_GCB_V || nextProp == U_GCB_T))
+        return false;
+
+    // Rule GB8, (LVT | T) x T
+    if ((prevProp == U_GCB_LVT || prevProp == U_GCB_T) && nextProp == U_GCB_T)
+        return false;
+
+    // Rule GB8a
+    //
+    // sot   (RI RI)* RI x RI
+    // [^RI] (RI RI)* RI x RI
+    //                RI ÷ RI
+    if (Character::isRegionalIndicator(prevCodePoint)
+        && Character::isRegionalIndicator(nextCodePoint))
+        NOTREACHED() << "Do not use this function for regional indicators.";
+
+    // Rule GB9, x (Extend | ZWJ)
+    // Rule GB9a, x SpacingMark
+    if (nextProp == U_GCB_EXTEND || nextCodePoint == zeroWidthJoinerCharacter
+        || nextProp == U_GCB_SPACING_MARK)
+        return false;
+
+    // Rule GB9b, Prepend x
+    if (prevProp == U_GCB_PREPEND)
+        return false;
+
+    // Cluster Indic syllables together.
+    if (isIndicSyllabicCategoryVirama(prevCodePoint)
+        && u_getIntPropertyValue(nextCodePoint,
+            UCHAR_GENERAL_CATEGORY) == U_OTHER_LETTER)
+        return false;
+
+    // Proposed Rule GB10, (E_Base | EBG) x E_Modifier
+    if ((Character::isEmojiModifierBase(prevCodePoint)
+        || isEBaseGAZ(prevCodePoint))
+        && Character::isModifier(nextCodePoint))
+        return false;
+
+    // Proposed Rule GB11, ZWJ x (Glue_After_Zwj | EBG)
+    if (prevCodePoint == zeroWidthJoinerCharacter
+        && (isGlueAfterZwj(nextCodePoint) || isEBaseGAZ(nextCodePoint)))
+        return false;
+
+    // Rule GB999 any ÷ any
+    return true;
+}
+
+} // namespace blink
diff --git a/third_party/WebKit/Source/core/editing/state_machines/StateMachineUtil.h b/third_party/WebKit/Source/core/editing/state_machines/StateMachineUtil.h
new file mode 100644
index 0000000..39e5893
--- /dev/null
+++ b/third_party/WebKit/Source/core/editing/state_machines/StateMachineUtil.h
@@ -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.
+
+#ifndef StateMachineUtil_h
+#define StateMachineUtil_h
+
+#include "core/CoreExport.h"
+#include "wtf/text/Unicode.h"
+
+namespace blink {
+
+// Returns true if there is a grapheme boundary between prevCodePoint and
+// nextCodePoint.
+// DO NOT USE this function directly since this doesn't care about preceding
+// regional indicator symbols. Use ForwardGraphemeBoundaryStateMachine or
+// BackwardGraphemeBoundaryStateMachine instead.
+CORE_EXPORT bool isGraphemeBreak(UChar32 prevCodePoint, UChar32 nextCodePoint);
+
+} // namespace blink
+
+#endif // StateMachineUtil_h
diff --git a/third_party/WebKit/Source/core/editing/state_machines/StateMachineUtilTest.cpp b/third_party/WebKit/Source/core/editing/state_machines/StateMachineUtilTest.cpp
new file mode 100644
index 0000000..d5ab01f8
--- /dev/null
+++ b/third_party/WebKit/Source/core/editing/state_machines/StateMachineUtilTest.cpp
@@ -0,0 +1,165 @@
+// 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/editing/state_machines/StateMachineUtil.h"
+
+#include "testing/gtest/include/gtest/gtest.h"
+#include "wtf/text/CharacterNames.h"
+#include "wtf/text/Unicode.h"
+
+namespace blink {
+
+TEST(StateMachineUtilTest, IsGraphmeBreak_LineBreak)
+{
+    // U+000AD (SOFT HYPHEN) has Control grapheme property.
+    const UChar32 kControl = WTF::Unicode::softHyphenCharacter;
+
+    // Grapheme Cluster Boundary Rule GB3: CR x LF
+    EXPECT_FALSE(isGraphemeBreak('\r', '\n'));
+    EXPECT_TRUE(isGraphemeBreak('\n', '\r'));
+
+    // Grapheme Cluster Boundary Rule GB4: (Control | CR | LF) ÷
+    EXPECT_TRUE(isGraphemeBreak('\r', 'a'));
+    EXPECT_TRUE(isGraphemeBreak('\n', 'a'));
+    EXPECT_TRUE(isGraphemeBreak(kControl, 'a'));
+
+    // Grapheme Cluster Boundary Rule GB5: ÷ (Control | CR | LF)
+    EXPECT_TRUE(isGraphemeBreak('a', '\r'));
+    EXPECT_TRUE(isGraphemeBreak('a', '\n'));
+    EXPECT_TRUE(isGraphemeBreak('a', kControl));
+}
+
+TEST(StateMachineUtilTest, IsGraphmeBreak_Hangul)
+{
+    // U+1100 (HANGUL CHOSEONG KIYEOK) has L grapheme property.
+    const UChar32 kL = 0x1100;
+    // U+1160 (HANGUL JUNGSEONG FILLER) has V grapheme property.
+    const UChar32 kV = 0x1160;
+    // U+AC00 (HANGUL SYLLABLE GA) has LV grapheme property.
+    const UChar32 kLV = 0xAC00;
+    // U+AC01 (HANGUL SYLLABLE GAG) has LVT grapheme property.
+    const UChar32 kLVT = 0xAC01;
+    // U+11A8 (HANGUL JONGSEONG KIYEOK) has T grapheme property.
+    const UChar32 kT = 0x11A8;
+
+    // Grapheme Cluster Boundary Rule GB6: L x (L | V | LV | LVT)
+    EXPECT_FALSE(isGraphemeBreak(kL, kL));
+    EXPECT_FALSE(isGraphemeBreak(kL, kV));
+    EXPECT_FALSE(isGraphemeBreak(kL, kLV));
+    EXPECT_FALSE(isGraphemeBreak(kL, kLVT));
+    EXPECT_TRUE(isGraphemeBreak(kL, kT));
+
+    // Grapheme Cluster Boundary Rule GB7: (LV | V) x (V | T)
+    EXPECT_TRUE(isGraphemeBreak(kV, kL));
+    EXPECT_FALSE(isGraphemeBreak(kV, kV));
+    EXPECT_TRUE(isGraphemeBreak(kV, kLV));
+    EXPECT_TRUE(isGraphemeBreak(kV, kLVT));
+    EXPECT_FALSE(isGraphemeBreak(kV, kT));
+
+    // Grapheme Cluster Boundary Rule GB7: (LV | V) x (V | T)
+    EXPECT_TRUE(isGraphemeBreak(kLV, kL));
+    EXPECT_FALSE(isGraphemeBreak(kLV, kV));
+    EXPECT_TRUE(isGraphemeBreak(kLV, kLV));
+    EXPECT_TRUE(isGraphemeBreak(kLV, kLVT));
+    EXPECT_FALSE(isGraphemeBreak(kLV, kT));
+
+    // Grapheme Cluster Boundary Rule GB8: (LVT | T) x T
+    EXPECT_TRUE(isGraphemeBreak(kLVT, kL));
+    EXPECT_TRUE(isGraphemeBreak(kLVT, kV));
+    EXPECT_TRUE(isGraphemeBreak(kLVT, kLV));
+    EXPECT_TRUE(isGraphemeBreak(kLVT, kLVT));
+    EXPECT_FALSE(isGraphemeBreak(kLVT, kT));
+
+    // Grapheme Cluster Boundary Rule GB8: (LVT | T) x T
+    EXPECT_TRUE(isGraphemeBreak(kT, kL));
+    EXPECT_TRUE(isGraphemeBreak(kT, kV));
+    EXPECT_TRUE(isGraphemeBreak(kT, kLV));
+    EXPECT_TRUE(isGraphemeBreak(kT, kLVT));
+    EXPECT_FALSE(isGraphemeBreak(kT, kT));
+}
+
+TEST(StateMachineUtilTest, IsGraphmeBreak_Extend_or_ZWJ)
+{
+    // U+0300 (COMBINING GRAVE ACCENT) has Extend grapheme property.
+    const UChar32 kExtend = 0x0300;
+    // Grapheme Cluster Boundary Rule GB9: x (Extend | ZWJ)
+    EXPECT_FALSE(isGraphemeBreak('a', kExtend));
+    EXPECT_FALSE(isGraphemeBreak('a', WTF::Unicode::zeroWidthJoinerCharacter));
+    EXPECT_FALSE(isGraphemeBreak(kExtend, kExtend));
+    EXPECT_FALSE(isGraphemeBreak(WTF::Unicode::zeroWidthJoinerCharacter,
+        WTF::Unicode::zeroWidthJoinerCharacter));
+    EXPECT_FALSE(isGraphemeBreak(kExtend,
+        WTF::Unicode::zeroWidthJoinerCharacter));
+    EXPECT_FALSE(isGraphemeBreak(WTF::Unicode::zeroWidthJoinerCharacter,
+        kExtend));
+}
+
+TEST(StateMachineUtilTest, IsGraphmeBreak_SpacingMark)
+{
+    // U+0903 (DEVANAGARI SIGN VISARGA) has SpacingMark grapheme property.
+    const UChar32 kSpacingMark = 0x0903;
+
+    // Grapheme Cluster Boundary Rule GB9a: x SpacingMark.
+    EXPECT_FALSE(isGraphemeBreak('a', kSpacingMark));
+}
+
+// TODO(nona): Introduce tests for GB9b rule once ICU grabs Unicod 9.0.
+// There is no character having Prepend grapheme property in Unicode 8.0.
+
+TEST(StateMachineUtilTest, IsGraphmeBreak_EmojiModifier)
+{
+    // U+261D (WHITE UP POINTING INDEX) has E_Base grapheme property.
+    const UChar32 kEBase = 0x261D;
+    // U+1F466 (BOY) has E_Base_GAZ grapheme property.
+    const UChar32 kEBaseGAZ = 0x1F466;
+    // U+1F3FB (EMOJI MODIFIER FITZPATRICK TYPE-1-2) has E_Modifier grapheme
+    // property.
+    const UChar32 kEModifier = 0x1F3FB;
+
+    // Grapheme Cluster Boundary Rule GB10: (E_Base, E_Base_GAZ) x E_Modifier
+    EXPECT_FALSE(isGraphemeBreak(kEBase, kEModifier));
+    EXPECT_FALSE(isGraphemeBreak(kEBaseGAZ, kEModifier));
+    EXPECT_FALSE(isGraphemeBreak(kEBase, kEModifier));
+
+    EXPECT_TRUE(isGraphemeBreak(kEBase, kEBase));
+    EXPECT_TRUE(isGraphemeBreak(kEBaseGAZ, kEBase));
+    EXPECT_TRUE(isGraphemeBreak(kEBase, kEBaseGAZ));
+    EXPECT_TRUE(isGraphemeBreak(kEBaseGAZ, kEBaseGAZ));
+    EXPECT_TRUE(isGraphemeBreak(kEModifier, kEModifier));
+}
+
+TEST(StateMachineUtilTest, IsGraphmeBreak_ZWJSequecne)
+{
+    // U+2764 (HEAVY BLACK HEART) has Glue_After_Zwj grapheme property.
+    const UChar32 kGlueAfterZwj = 0x2764;
+    // U+1F466 (BOY) has E_Base_GAZ grapheme property.
+    const UChar32 kEBaseGAZ = 0x1F466;
+
+    // Grapheme Cluster Boundary Rule GB11: ZWJ x (Glue_After_Zwj | EBG)
+    EXPECT_FALSE(isGraphemeBreak(WTF::Unicode::zeroWidthJoinerCharacter,
+        kGlueAfterZwj));
+    EXPECT_FALSE(isGraphemeBreak(WTF::Unicode::zeroWidthJoinerCharacter,
+        kEBaseGAZ));
+
+    EXPECT_TRUE(isGraphemeBreak(kGlueAfterZwj, kEBaseGAZ));
+    EXPECT_TRUE(isGraphemeBreak(kGlueAfterZwj, kGlueAfterZwj));
+    EXPECT_TRUE(isGraphemeBreak(kEBaseGAZ, kGlueAfterZwj));
+}
+
+TEST(StateMachineUtilTest, IsGraphmeBreak_IndicSyllabicCategoryVirama)
+{
+    // U+094D (DEVANAGARI SIGN VIRAMA) has Indic_Syllabic_Category=Virama
+    // property.
+    const UChar32 kVirama = 0x094D;
+
+    // U+0915 (DEVANAGARI LETTER KA). Should not break after kVirama and before
+    // this character.
+    const UChar32 kDevangariKa = 0x0915;
+
+    // Do not break after character having Indic_Syllabic_Category=Virama
+    // property if following character has General_Category=C(Other) property.
+    EXPECT_FALSE(isGraphemeBreak(kVirama, kDevangariKa));
+}
+
+} // namespace blink
diff --git a/third_party/WebKit/Source/core/frame/FrameTypes.h b/third_party/WebKit/Source/core/frame/FrameTypes.h
index 625a81a1..19cc92a5 100644
--- a/third_party/WebKit/Source/core/frame/FrameTypes.h
+++ b/third_party/WebKit/Source/core/frame/FrameTypes.h
@@ -31,11 +31,10 @@
 
 namespace blink {
 
-enum ClientRedirectPolicy {
+enum class ClientRedirectPolicy {
     NotClientRedirect,
     ClientRedirect
 };
-
 }
 
 #endif
diff --git a/third_party/WebKit/Source/core/frame/History.cpp b/third_party/WebKit/Source/core/frame/History.cpp
index 5870e5f..7db4f36 100644
--- a/third_party/WebKit/Source/core/frame/History.cpp
+++ b/third_party/WebKit/Source/core/frame/History.cpp
@@ -170,7 +170,7 @@
     if (delta)
         m_frame->loader().client()->navigateBackForward(delta);
     else
-        m_frame->reload(FrameLoadTypeReload, ClientRedirect);
+        m_frame->reload(FrameLoadTypeReload, ClientRedirectPolicy::ClientRedirect);
 }
 
 KURL History::urlForState(const String& urlString)
diff --git a/third_party/WebKit/Source/core/frame/LocalFrame.cpp b/third_party/WebKit/Source/core/frame/LocalFrame.cpp
index a3b80df0..7f498ae4 100644
--- a/third_party/WebKit/Source/core/frame/LocalFrame.cpp
+++ b/third_party/WebKit/Source/core/frame/LocalFrame.cpp
@@ -300,8 +300,8 @@
 void LocalFrame::reload(FrameLoadType loadType, ClientRedirectPolicy clientRedirectPolicy)
 {
     ASSERT(loadType == FrameLoadTypeReload || loadType == FrameLoadTypeReloadBypassingCache);
-    ASSERT(clientRedirectPolicy == NotClientRedirect || loadType == FrameLoadTypeReload);
-    if (clientRedirectPolicy == NotClientRedirect) {
+    ASSERT(clientRedirectPolicy == ClientRedirectPolicy::NotClientRedirect || loadType == FrameLoadTypeReload);
+    if (clientRedirectPolicy == ClientRedirectPolicy::NotClientRedirect) {
         if (!m_loader.currentItem())
             return;
         FrameLoadRequest request = FrameLoadRequest(
diff --git a/third_party/WebKit/Source/core/frame/Location.cpp b/third_party/WebKit/Source/core/frame/Location.cpp
index 60e290bb..8c335115 100644
--- a/third_party/WebKit/Source/core/frame/Location.cpp
+++ b/third_party/WebKit/Source/core/frame/Location.cpp
@@ -237,7 +237,7 @@
         return;
     if (protocolIsJavaScript(toLocalFrame(m_frame)->document()->url()))
         return;
-    m_frame->reload(FrameLoadTypeReload, ClientRedirect);
+    m_frame->reload(FrameLoadTypeReload, ClientRedirectPolicy::ClientRedirect);
 }
 
 void Location::setLocation(const String& url, LocalDOMWindow* currentWindow, LocalDOMWindow* enteredWindow, ExceptionState* exceptionState, SetLocation locationPolicy)
diff --git a/third_party/WebKit/Source/core/html/HTMLInputElement.cpp b/third_party/WebKit/Source/core/html/HTMLInputElement.cpp
index 29cd418..01285de 100644
--- a/third_party/WebKit/Source/core/html/HTMLInputElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLInputElement.cpp
@@ -362,6 +362,11 @@
         case SelectionBehaviorOnFocus::None:
             return;
         }
+        // TODO(tkent): scrollRectToVisible is a workaround of a bug of
+        // FrameSelection::revealSelection().  It doesn't scroll correctly in a
+        // case of RangeSelection. crbug.com/443061.
+        if (layoutObject())
+            layoutObject()->scrollRectToVisible(boundingBox());
         if (document().frame())
             document().frame()->selection().revealSelection();
     } else {
diff --git a/third_party/WebKit/Source/core/html/forms/BaseChooserOnlyDateAndTimeInputType.cpp b/third_party/WebKit/Source/core/html/forms/BaseChooserOnlyDateAndTimeInputType.cpp
index 542d8db..c05dcf1 100644
--- a/third_party/WebKit/Source/core/html/forms/BaseChooserOnlyDateAndTimeInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/BaseChooserOnlyDateAndTimeInputType.cpp
@@ -79,9 +79,9 @@
 {
     DEFINE_STATIC_LOCAL(AtomicString, valueContainerPseudo, ("-webkit-date-and-time-value"));
 
-    RawPtr<HTMLDivElement> valueContainer = HTMLDivElement::create(element().document());
+    HTMLDivElement* valueContainer = HTMLDivElement::create(element().document());
     valueContainer->setShadowPseudoId(valueContainerPseudo);
-    element().userAgentShadowRoot()->appendChild(valueContainer.get());
+    element().userAgentShadowRoot()->appendChild(valueContainer);
     updateView();
 }
 
diff --git a/third_party/WebKit/Source/core/html/forms/BaseMultipleFieldsDateAndTimeInputType.cpp b/third_party/WebKit/Source/core/html/forms/BaseMultipleFieldsDateAndTimeInputType.cpp
index 6d44006..2757aa60 100644
--- a/third_party/WebKit/Source/core/html/forms/BaseMultipleFieldsDateAndTimeInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/BaseMultipleFieldsDateAndTimeInputType.cpp
@@ -160,7 +160,6 @@
     if (containsFocusedShadowElement())
         return;
     EventQueueScope scope;
-    RawPtr<HTMLInputElement> protector(element());
     // Remove focus ring by CSS "focus" pseudo class.
     element().setFocus(false);
     if (SpinButtonElement *spinButton = spinButtonElement())
@@ -181,19 +180,18 @@
 
 void BaseMultipleFieldsDateAndTimeInputType::editControlValueChanged()
 {
-    RawPtr<HTMLInputElement> input(element());
-    String oldValue = input->value();
+    String oldValue = element().value();
     String newValue = sanitizeValue(dateTimeEditElement()->value());
     // Even if oldValue is null and newValue is "", we should assume they are same.
     if ((oldValue.isEmpty() && newValue.isEmpty()) || oldValue == newValue) {
-        input->setNeedsValidityCheck();
+        element().setNeedsValidityCheck();
     } else {
-        input->setValueInternal(newValue, DispatchNoEvent);
-        input->setNeedsStyleRecalc(SubtreeStyleChange, StyleChangeReasonForTracing::create(StyleChangeReason::ControlValue));
-        input->dispatchFormControlInputEvent();
+        element().setValueInternal(newValue, DispatchNoEvent);
+        element().setNeedsStyleRecalc(SubtreeStyleChange, StyleChangeReasonForTracing::create(StyleChangeReason::ControlValue));
+        element().dispatchFormControlInputEvent();
     }
-    input->notifyFormStateChanged();
-    input->updateClearButtonVisibility();
+    element().notifyFormStateChanged();
+    element().updateClearButtonVisibility();
 }
 
 bool BaseMultipleFieldsDateAndTimeInputType::hasCustomFocusLogic() const
@@ -600,9 +598,8 @@
 
 void BaseMultipleFieldsDateAndTimeInputType::clearValue()
 {
-    RawPtr<HTMLInputElement> input(element());
-    input->setValue("", DispatchInputAndChangeEvent);
-    input->updateClearButtonVisibility();
+    element().setValue("", DispatchInputAndChangeEvent);
+    element().updateClearButtonVisibility();
 }
 
 void BaseMultipleFieldsDateAndTimeInputType::updateClearButtonVisibility()
diff --git a/third_party/WebKit/Source/core/html/forms/ButtonInputType.cpp b/third_party/WebKit/Source/core/html/forms/ButtonInputType.cpp
index 4f8d02ae..8c287c76 100644
--- a/third_party/WebKit/Source/core/html/forms/ButtonInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/ButtonInputType.cpp
@@ -35,7 +35,7 @@
 
 namespace blink {
 
-RawPtr<InputType> ButtonInputType::create(HTMLInputElement& element)
+InputType* ButtonInputType::create(HTMLInputElement& element)
 {
     return new ButtonInputType(element);
 }
diff --git a/third_party/WebKit/Source/core/html/forms/ButtonInputType.h b/third_party/WebKit/Source/core/html/forms/ButtonInputType.h
index 1245972..5d533c4 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 RawPtr<InputType> create(HTMLInputElement&);
+    static 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 cae776ac..c8ff7882 100644
--- a/third_party/WebKit/Source/core/html/forms/CheckboxInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/CheckboxInputType.cpp
@@ -39,7 +39,7 @@
 
 namespace blink {
 
-RawPtr<InputType> CheckboxInputType::create(HTMLInputElement& element)
+InputType* CheckboxInputType::create(HTMLInputElement& element)
 {
     return new CheckboxInputType(element);
 }
@@ -67,12 +67,12 @@
     dispatchSimulatedClickIfActive(event);
 }
 
-RawPtr<ClickHandlingState> CheckboxInputType::willDispatchClick()
+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.
 
-    RawPtr<ClickHandlingState> state = new ClickHandlingState;
+    ClickHandlingState* state = new ClickHandlingState;
 
     state->checked = element().checked();
     state->indeterminate = element().indeterminate();
@@ -82,7 +82,7 @@
 
     element().setChecked(!state->checked, DispatchChangeEvent);
     m_isInClickHandler = true;
-    return state.release();
+    return state;
 }
 
 void CheckboxInputType::didDispatchClick(Event* event, const ClickHandlingState& state)
diff --git a/third_party/WebKit/Source/core/html/forms/CheckboxInputType.h b/third_party/WebKit/Source/core/html/forms/CheckboxInputType.h
index 101a9de..aaba2ad5 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 RawPtr<InputType> create(HTMLInputElement&);
+    static 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;
-    RawPtr<ClickHandlingState> willDispatchClick() override;
+    ClickHandlingState* willDispatchClick() override;
     void didDispatchClick(Event*, const ClickHandlingState&) override;
     bool shouldAppearIndeterminate() const override;
 };
diff --git a/third_party/WebKit/Source/core/html/forms/ColorInputType.cpp b/third_party/WebKit/Source/core/html/forms/ColorInputType.cpp
index d03c6931..5af128b47 100644
--- a/third_party/WebKit/Source/core/html/forms/ColorInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/ColorInputType.cpp
@@ -76,7 +76,7 @@
     return color.setFromString(value) && !color.hasAlpha();
 }
 
-RawPtr<InputType> ColorInputType::create(HTMLInputElement& element)
+InputType* ColorInputType::create(HTMLInputElement& element)
 {
     return new ColorInputType(element);
 }
@@ -133,12 +133,12 @@
     ASSERT(element().shadow());
 
     Document& document = element().document();
-    RawPtr<HTMLDivElement> wrapperElement = HTMLDivElement::create(document);
+    HTMLDivElement* wrapperElement = HTMLDivElement::create(document);
     wrapperElement->setShadowPseudoId(AtomicString("-webkit-color-swatch-wrapper"));
-    RawPtr<HTMLDivElement> colorSwatch = HTMLDivElement::create(document);
+    HTMLDivElement* colorSwatch = HTMLDivElement::create(document);
     colorSwatch->setShadowPseudoId(AtomicString("-webkit-color-swatch"));
-    wrapperElement->appendChild(colorSwatch.release());
-    element().userAgentShadowRoot()->appendChild(wrapperElement.release());
+    wrapperElement->appendChild(colorSwatch);
+    element().userAgentShadowRoot()->appendChild(wrapperElement);
 
     element().updateView();
 }
@@ -262,7 +262,7 @@
     Vector<ColorSuggestion> suggestions;
     HTMLDataListElement* dataList = element().dataList();
     if (dataList) {
-        RawPtr<HTMLDataListOptionsCollection> options = dataList->options();
+        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 e6bf55c..f64d116 100644
--- a/third_party/WebKit/Source/core/html/forms/ColorInputType.h
+++ b/third_party/WebKit/Source/core/html/forms/ColorInputType.h
@@ -41,7 +41,7 @@
 class ColorInputType final : public BaseClickableWithKeyInputType, public ColorChooserClient {
     USING_GARBAGE_COLLECTED_MIXIN(ColorInputType);
 public:
-    static RawPtr<InputType> create(HTMLInputElement&);
+    static InputType* create(HTMLInputElement&);
     ~ColorInputType() override;
     DECLARE_VIRTUAL_TRACE();
 
diff --git a/third_party/WebKit/Source/core/html/forms/DateInputType.cpp b/third_party/WebKit/Source/core/html/forms/DateInputType.cpp
index 6bc5a19..4126d52b 100644
--- a/third_party/WebKit/Source/core/html/forms/DateInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/DateInputType.cpp
@@ -53,7 +53,7 @@
 {
 }
 
-RawPtr<InputType> DateInputType::create(HTMLInputElement& element)
+InputType* DateInputType::create(HTMLInputElement& element)
 {
     return new DateInputType(element);
 }
diff --git a/third_party/WebKit/Source/core/html/forms/DateInputType.h b/third_party/WebKit/Source/core/html/forms/DateInputType.h
index 2bde2409..ef42fad 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 RawPtr<InputType> create(HTMLInputElement&);
+    static InputType* create(HTMLInputElement&);
 
 private:
     explicit DateInputType(HTMLInputElement&);
diff --git a/third_party/WebKit/Source/core/html/forms/DateTimeLocalInputType.cpp b/third_party/WebKit/Source/core/html/forms/DateTimeLocalInputType.cpp
index b00d5a16..ca99794 100644
--- a/third_party/WebKit/Source/core/html/forms/DateTimeLocalInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/DateTimeLocalInputType.cpp
@@ -49,7 +49,7 @@
 static const int dateTimeLocalDefaultStepBase = 0;
 static const int dateTimeLocalStepScaleFactor = 1000;
 
-RawPtr<InputType> DateTimeLocalInputType::create(HTMLInputElement& element)
+InputType* DateTimeLocalInputType::create(HTMLInputElement& element)
 {
     return new DateTimeLocalInputType(element);
 }
diff --git a/third_party/WebKit/Source/core/html/forms/DateTimeLocalInputType.h b/third_party/WebKit/Source/core/html/forms/DateTimeLocalInputType.h
index 999433ec..9651e748 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 RawPtr<InputType> create(HTMLInputElement&);
+    static 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 2706f77..3690708b 100644
--- a/third_party/WebKit/Source/core/html/forms/EmailInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/EmailInputType.cpp
@@ -147,7 +147,7 @@
     return !matchOffset && matchLength == addressLength;
 }
 
-RawPtr<InputType> EmailInputType::create(HTMLInputElement& element)
+InputType* EmailInputType::create(HTMLInputElement& element)
 {
     return new EmailInputType(element);
 }
diff --git a/third_party/WebKit/Source/core/html/forms/EmailInputType.h b/third_party/WebKit/Source/core/html/forms/EmailInputType.h
index b64ffe31..fb005bd 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 RawPtr<InputType> create(HTMLInputElement&);
+    static 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 e90afbb..67b0a53 100644
--- a/third_party/WebKit/Source/core/html/forms/FileInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/FileInputType.cpp
@@ -55,7 +55,7 @@
 {
 }
 
-RawPtr<InputType> FileInputType::create(HTMLInputElement& element)
+InputType* FileInputType::create(HTMLInputElement& element)
 {
     return new FileInputType(element);
 }
@@ -252,11 +252,11 @@
 void FileInputType::createShadowSubtree()
 {
     ASSERT(element().shadow());
-    RawPtr<HTMLInputElement> button = HTMLInputElement::create(element().document(), 0, false);
+    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"));
-    element().userAgentShadowRoot()->appendChild(button.release());
+    element().userAgentShadowRoot()->appendChild(button);
 }
 
 void FileInputType::disabledAttributeChanged()
@@ -278,8 +278,6 @@
     if (!files)
         return;
 
-    RawPtr<HTMLInputElement> input(element());
-
     bool filesChanged = false;
     if (files->length() != m_fileList->length()) {
         filesChanged = true;
@@ -294,18 +292,18 @@
 
     m_fileList = files;
 
-    input->notifyFormStateChanged();
-    input->setNeedsValidityCheck();
+    element().notifyFormStateChanged();
+    element().setNeedsValidityCheck();
 
-    if (input->layoutObject())
-        input->layoutObject()->setShouldDoFullPaintInvalidation();
+    if (element().layoutObject())
+        element().layoutObject()->setShouldDoFullPaintInvalidation();
 
     if (filesChanged) {
         // This call may cause destruction of this instance.
         // input instance is safe since it is ref-counted.
-        input->dispatchChangeEvent();
+        element().dispatchChangeEvent();
     }
-    input->setChangedSinceLastFormControlChangeEvent(false);
+    element().setChangedSinceLastFormControlChangeEvent(false);
 }
 
 void FileInputType::filesChosen(const Vector<FileChooserFileInfo>& files)
diff --git a/third_party/WebKit/Source/core/html/forms/FileInputType.h b/third_party/WebKit/Source/core/html/forms/FileInputType.h
index 607f9592..38e99150 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 RawPtr<InputType> create(HTMLInputElement&);
+    static InputType* create(HTMLInputElement&);
     DECLARE_VIRTUAL_TRACE();
     static Vector<FileChooserFileInfo> filesFromFormControlState(const FormControlState&);
     static FileList* createFileList(const Vector<FileChooserFileInfo>& files, bool hasWebkitDirectoryAttr);
diff --git a/third_party/WebKit/Source/core/html/forms/FileInputTypeTest.cpp b/third_party/WebKit/Source/core/html/forms/FileInputTypeTest.cpp
index f558d00..21cf25f 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 RawPtr<Document> document = Document::create();
-    const RawPtr<HTMLInputElement> input =
+    Document* document = Document::create();
+    HTMLInputElement* input =
         HTMLInputElement::create(*document, nullptr, false);
-    const RawPtr<InputType> fileInput = FileInputType::create(*input);
+    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 8e236ef8..134ff9c 100644
--- a/third_party/WebKit/Source/core/html/forms/FormController.cpp
+++ b/third_party/WebKit/Source/core/html/forms/FormController.cpp
@@ -290,7 +290,7 @@
 class FormKeyGenerator final : public GarbageCollectedFinalized<FormKeyGenerator> {
     WTF_MAKE_NONCOPYABLE(FormKeyGenerator);
 public:
-    static RawPtr<FormKeyGenerator> create() { return new FormKeyGenerator; }
+    static FormKeyGenerator* create() { return new FormKeyGenerator; }
     DEFINE_INLINE_TRACE()
     {
 #if ENABLE(OILPAN)
@@ -379,7 +379,7 @@
 
 // ----------------------------------------------------------------------------
 
-RawPtr<DocumentState> DocumentState::create()
+DocumentState* DocumentState::create()
 {
     return new DocumentState;
 }
@@ -414,7 +414,7 @@
 
 Vector<String> DocumentState::toStateVector()
 {
-    RawPtr<FormKeyGenerator> keyGenerator = FormKeyGenerator::create();
+    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 63e5fa2..785237b 100644
--- a/third_party/WebKit/Source/core/html/forms/FormController.h
+++ b/third_party/WebKit/Source/core/html/forms/FormController.h
@@ -76,7 +76,7 @@
 
 class DocumentState final : public GarbageCollected<DocumentState> {
 public:
-    static RawPtr<DocumentState> create();
+    static DocumentState* create();
     DECLARE_TRACE();
 
     void addControl(HTMLFormControlElementWithState*);
@@ -90,7 +90,7 @@
 
 class FormController final : public GarbageCollectedFinalized<FormController> {
 public:
-    static RawPtr<FormController> create()
+    static FormController* create()
     {
         return new FormController;
     }
diff --git a/third_party/WebKit/Source/core/html/forms/HiddenInputType.cpp b/third_party/WebKit/Source/core/html/forms/HiddenInputType.cpp
index f56f766..7035bd2 100644
--- a/third_party/WebKit/Source/core/html/forms/HiddenInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/HiddenInputType.cpp
@@ -42,7 +42,7 @@
 
 using namespace HTMLNames;
 
-RawPtr<InputType> HiddenInputType::create(HTMLInputElement& element)
+InputType* HiddenInputType::create(HTMLInputElement& element)
 {
     return new HiddenInputType(element);
 }
diff --git a/third_party/WebKit/Source/core/html/forms/HiddenInputType.h b/third_party/WebKit/Source/core/html/forms/HiddenInputType.h
index 5de645f5..060480b6 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 RawPtr<InputType> create(HTMLInputElement&);
+    static 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 ab1fdeb..e547394 100644
--- a/third_party/WebKit/Source/core/html/forms/ImageInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/ImageInputType.cpp
@@ -48,7 +48,7 @@
 {
 }
 
-RawPtr<InputType> ImageInputType::create(HTMLInputElement& element)
+InputType* ImageInputType::create(HTMLInputElement& element)
 {
     return new ImageInputType(element);
 }
@@ -109,13 +109,12 @@
 
 void ImageInputType::handleDOMActivateEvent(Event* event)
 {
-    RawPtr<HTMLInputElement> element(this->element());
-    if (element->isDisabledFormControl() || !element->form())
+    if (element().isDisabledFormControl() || !element().form())
         return;
-    element->setActivatedSubmit(true);
+    element().setActivatedSubmit(true);
     m_clickLocation = extractClickLocation(event);
-    element->form()->prepareForSubmission(event); // Event handlers can run.
-    element->setActivatedSubmit(false);
+    element().form()->prepareForSubmission(event); // Event handlers can run.
+    element().setActivatedSubmit(false);
     event->setDefaultHandled();
 }
 
@@ -189,45 +188,41 @@
 
 unsigned ImageInputType::height() const
 {
-    RawPtr<HTMLInputElement> element(this->element());
-
-    if (!element->layoutObject()) {
+    if (!element().layoutObject()) {
         // Check the attribute first for an explicit pixel value.
         unsigned height;
-        if (parseHTMLNonNegativeInteger(element->fastGetAttribute(heightAttr), height))
+        if (parseHTMLNonNegativeInteger(element().fastGetAttribute(heightAttr), height))
             return height;
 
         // If the image is available, use its height.
-        HTMLImageLoader* imageLoader = element->imageLoader();
+        HTMLImageLoader* imageLoader = element().imageLoader();
         if (imageLoader && imageLoader->image())
             return imageLoader->image()->imageSize(LayoutObject::shouldRespectImageOrientation(nullptr), 1).height();
     }
 
-    element->document().updateLayout();
+    element().document().updateLayout();
 
-    LayoutBox* box = element->layoutBox();
+    LayoutBox* box = element().layoutBox();
     return box ? adjustForAbsoluteZoom(box->contentHeight(), box) : 0;
 }
 
 unsigned ImageInputType::width() const
 {
-    RawPtr<HTMLInputElement> element(this->element());
-
-    if (!element->layoutObject()) {
+    if (!element().layoutObject()) {
         // Check the attribute first for an explicit pixel value.
         unsigned width;
-        if (parseHTMLNonNegativeInteger(element->fastGetAttribute(widthAttr), width))
+        if (parseHTMLNonNegativeInteger(element().fastGetAttribute(widthAttr), width))
             return width;
 
         // If the image is available, use its width.
-        HTMLImageLoader* imageLoader = element->imageLoader();
+        HTMLImageLoader* imageLoader = element().imageLoader();
         if (imageLoader && imageLoader->image())
             return imageLoader->image()->imageSize(LayoutObject::shouldRespectImageOrientation(nullptr), 1).width();
     }
 
-    element->document().updateLayout();
+    element().document().updateLayout();
 
-    LayoutBox* box = element->layoutBox();
+    LayoutBox* box = element().layoutBox();
     return box ? adjustForAbsoluteZoom(box->contentWidth(), box) : 0;
 }
 
diff --git a/third_party/WebKit/Source/core/html/forms/ImageInputType.h b/third_party/WebKit/Source/core/html/forms/ImageInputType.h
index d28e64f6..74a098d 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 RawPtr<InputType> create(HTMLInputElement&);
+    static 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 6969224f..d7dd1fd 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 = RawPtr<InputType> (*)(HTMLInputElement&);
+using InputTypeFactoryFunction = InputType* (*)(HTMLInputElement&);
 using InputTypeFactoryMap = HashMap<AtomicString, InputTypeFactoryFunction, CaseFoldingHash>;
 
 static PassOwnPtr<InputTypeFactoryMap> createInputTypeFactoryMap()
@@ -115,7 +115,7 @@
     return factoryMap;
 }
 
-RawPtr<InputType> InputType::create(HTMLInputElement& element, const AtomicString& typeName)
+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);
 }
 
-RawPtr<InputType> InputType::createText(HTMLInputElement& element)
+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 3a0fd544..47485df9 100644
--- a/third_party/WebKit/Source/core/html/forms/InputType.h
+++ b/third_party/WebKit/Source/core/html/forms/InputType.h
@@ -55,8 +55,8 @@
 class CORE_EXPORT InputType : public InputTypeView {
     WTF_MAKE_NONCOPYABLE(InputType);
 public:
-    static RawPtr<InputType> create(HTMLInputElement&, const AtomicString&);
-    static RawPtr<InputType> createText(HTMLInputElement&);
+    static InputType* create(HTMLInputElement&, const AtomicString&);
+    static 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 083dbf5..9cc2cc25 100644
--- a/third_party/WebKit/Source/core/html/forms/InputTypeView.cpp
+++ b/third_party/WebKit/Source/core/html/forms/InputTypeView.cpp
@@ -34,7 +34,7 @@
 
 namespace blink {
 
-RawPtr<InputTypeView> InputTypeView::create(HTMLInputElement& input)
+InputTypeView* InputTypeView::create(HTMLInputElement& input)
 {
     return new InputTypeView(input);
 }
@@ -91,7 +91,7 @@
     return false;
 }
 
-RawPtr<HTMLFormElement> InputTypeView::formForSubmission() const
+HTMLFormElement* InputTypeView::formForSubmission() const
 {
     return element().form();
 }
@@ -162,7 +162,7 @@
 {
 }
 
-RawPtr<ClickHandlingState> InputTypeView::willDispatchClick()
+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 8b366422..604e98a 100644
--- a/third_party/WebKit/Source/core/html/forms/InputTypeView.h
+++ b/third_party/WebKit/Source/core/html/forms/InputTypeView.h
@@ -71,14 +71,14 @@
 class CORE_EXPORT InputTypeView : public GarbageCollectedFinalized<InputTypeView> {
     WTF_MAKE_NONCOPYABLE(InputTypeView);
 public:
-    static RawPtr<InputTypeView> create(HTMLInputElement&);
+    static 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 RawPtr<ClickHandlingState> willDispatchClick();
+    virtual ClickHandlingState* willDispatchClick();
     virtual void didDispatchClick(Event*, const ClickHandlingState&);
     virtual void handleKeydownEvent(KeyboardEvent*);
     virtual void handleKeypressEvent(KeyboardEvent*);
@@ -87,7 +87,7 @@
     virtual void handleTouchEvent(TouchEvent*);
     virtual void forwardEvent(Event*);
     virtual bool shouldSubmitImplicitly(Event*);
-    virtual RawPtr<HTMLFormElement> formForSubmission() const;
+    virtual HTMLFormElement* formForSubmission() const;
     virtual bool hasCustomFocusLogic() const;
     virtual void handleFocusEvent(Element* oldFocusedElement, WebFocusType);
     virtual void handleFocusInEvent(Element* oldFocusedElement, WebFocusType);
diff --git a/third_party/WebKit/Source/core/html/forms/MonthInputType.cpp b/third_party/WebKit/Source/core/html/forms/MonthInputType.cpp
index d0abccfa..5f36d9e 100644
--- a/third_party/WebKit/Source/core/html/forms/MonthInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/MonthInputType.cpp
@@ -50,7 +50,7 @@
 static const int monthDefaultStepBase = 0;
 static const int monthStepScaleFactor = 1;
 
-RawPtr<InputType> MonthInputType::create(HTMLInputElement& element)
+InputType* MonthInputType::create(HTMLInputElement& element)
 {
     return new MonthInputType(element);
 }
diff --git a/third_party/WebKit/Source/core/html/forms/MonthInputType.h b/third_party/WebKit/Source/core/html/forms/MonthInputType.h
index f3dc6fee..4a6e3f3 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 RawPtr<InputType> create(HTMLInputElement&);
+    static 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 f49479a..23bbc46 100644
--- a/third_party/WebKit/Source/core/html/forms/NumberInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/NumberInputType.cpp
@@ -95,7 +95,7 @@
     return RealNumberRenderSize(sizeOfSign + sizeOfZero , numberOfZeroAfterDecimalPoint + sizeOfDigits);
 }
 
-RawPtr<InputType> NumberInputType::create(HTMLInputElement& element)
+InputType* NumberInputType::create(HTMLInputElement& element)
 {
     return new NumberInputType(element);
 }
diff --git a/third_party/WebKit/Source/core/html/forms/NumberInputType.h b/third_party/WebKit/Source/core/html/forms/NumberInputType.h
index 81ed345..28c1e33b 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 RawPtr<InputType> create(HTMLInputElement&);
+    static 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 7db5f6d..764329a 100644
--- a/third_party/WebKit/Source/core/html/forms/PasswordInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/PasswordInputType.cpp
@@ -40,7 +40,7 @@
 
 namespace blink {
 
-RawPtr<InputType> PasswordInputType::create(HTMLInputElement& element)
+InputType* PasswordInputType::create(HTMLInputElement& element)
 {
     return new PasswordInputType(element);
 }
diff --git a/third_party/WebKit/Source/core/html/forms/PasswordInputType.h b/third_party/WebKit/Source/core/html/forms/PasswordInputType.h
index 372adfc..cda25e7 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 RawPtr<InputType> create(HTMLInputElement&);
+    static 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 94e4cba..8ffe3a6 100644
--- a/third_party/WebKit/Source/core/html/forms/RadioButtonGroupScope.cpp
+++ b/third_party/WebKit/Source/core/html/forms/RadioButtonGroupScope.cpp
@@ -28,7 +28,7 @@
 
 class RadioButtonGroup : public GarbageCollected<RadioButtonGroup> {
 public:
-    static RawPtr<RadioButtonGroup> create();
+    static RadioButtonGroup* create();
     bool isEmpty() const { return m_members.isEmpty(); }
     bool isRequired() const { return m_requiredCount; }
     HTMLInputElement* checkedButton() const { return m_checkedButton; }
@@ -69,7 +69,7 @@
 {
 }
 
-RawPtr<RadioButtonGroup> RadioButtonGroup::create()
+RadioButtonGroup* RadioButtonGroup::create()
 {
     return new RadioButtonGroup;
 }
diff --git a/third_party/WebKit/Source/core/html/forms/RadioInputType.cpp b/third_party/WebKit/Source/core/html/forms/RadioInputType.cpp
index a0d9409..021da29 100644
--- a/third_party/WebKit/Source/core/html/forms/RadioInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/RadioInputType.cpp
@@ -46,7 +46,7 @@
 
 using namespace HTMLNames;
 
-RawPtr<InputType> RadioInputType::create(HTMLInputElement& element)
+InputType* RadioInputType::create(HTMLInputElement& element)
 {
     return new RadioInputType(element);
 }
@@ -116,7 +116,6 @@
         }
     }
     if (inputElement) {
-        RawPtr<HTMLInputElement> protector(inputElement);
         document.setFocusedElement(inputElement, FocusParams(SelectionBehaviorOnFocus::None, WebFocusTypeNone, nullptr));
         inputElement->dispatchSimulatedClick(event, SendNoEvents);
         event->setDefaultHandled();
@@ -165,7 +164,7 @@
     return element().checked();
 }
 
-RawPtr<ClickHandlingState> RadioInputType::willDispatchClick()
+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,13 +173,13 @@
     // 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.
 
-    RawPtr<ClickHandlingState> state = new ClickHandlingState;
+    ClickHandlingState* state = new ClickHandlingState;
 
     state->checked = element().checked();
     state->checkedRadioButton = element().checkedRadioButtonForGroup();
     element().setChecked(true, DispatchChangeEvent);
     m_isInClickHandler = true;
-    return state.release();
+    return state;
 }
 
 void RadioInputType::didDispatchClick(Event* event, const ClickHandlingState& state)
diff --git a/third_party/WebKit/Source/core/html/forms/RadioInputType.h b/third_party/WebKit/Source/core/html/forms/RadioInputType.h
index d2bd4c5..cb966ce8c 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 RawPtr<InputType> create(HTMLInputElement&);
+    static 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;
-    RawPtr<ClickHandlingState> willDispatchClick() override;
+    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 eaa525d0..6a8d18a 100644
--- a/third_party/WebKit/Source/core/html/forms/RangeInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/RangeInputType.cpp
@@ -74,7 +74,7 @@
     return proposedValue >= minimum ? proposedValue : std::max(minimum, fallbackValue);
 }
 
-RawPtr<InputType> RangeInputType::create(HTMLInputElement& element)
+InputType* RangeInputType::create(HTMLInputElement& element)
 {
     return new RangeInputType(element);
 }
@@ -241,13 +241,13 @@
     ASSERT(element().shadow());
 
     Document& document = element().document();
-    RawPtr<HTMLDivElement> track = HTMLDivElement::create(document);
+    HTMLDivElement* track = HTMLDivElement::create(document);
     track->setShadowPseudoId(AtomicString("-webkit-slider-runnable-track"));
     track->setAttribute(idAttr, ShadowElementNames::sliderTrack());
     track->appendChild(SliderThumbElement::create(document));
-    RawPtr<HTMLElement> container = SliderContainerElement::create(document);
-    container->appendChild(track.release());
-    element().userAgentShadowRoot()->appendChild(container.release());
+    HTMLElement* container = SliderContainerElement::create(document);
+    container->appendChild(track);
+    element().userAgentShadowRoot()->appendChild(container);
 }
 
 LayoutObject* RangeInputType::createLayoutObject(const ComputedStyle&) const
@@ -357,7 +357,7 @@
     HTMLDataListElement* dataList = element().dataList();
     if (!dataList)
         return;
-    RawPtr<HTMLDataListOptionsCollection> options = dataList->options();
+    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 9380179..28c351e 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 RawPtr<InputType> create(HTMLInputElement&);
+    static 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 ccd1d5f..7bb7317 100644
--- a/third_party/WebKit/Source/core/html/forms/ResetInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/ResetInputType.cpp
@@ -40,7 +40,7 @@
 
 namespace blink {
 
-RawPtr<InputType> ResetInputType::create(HTMLInputElement& element)
+InputType* ResetInputType::create(HTMLInputElement& element)
 {
     return new ResetInputType(element);
 }
diff --git a/third_party/WebKit/Source/core/html/forms/ResetInputType.h b/third_party/WebKit/Source/core/html/forms/ResetInputType.h
index 17fc920..5629179c 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 RawPtr<InputType> create(HTMLInputElement&);
+    static 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 0f25477..d95076dd 100644
--- a/third_party/WebKit/Source/core/html/forms/SearchInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/SearchInputType.cpp
@@ -52,7 +52,7 @@
 {
 }
 
-RawPtr<InputType> SearchInputType::create(HTMLInputElement& element)
+InputType* SearchInputType::create(HTMLInputElement& element)
 {
     return new SearchInputType(element);
 }
@@ -98,9 +98,8 @@
 
     const String& key = event->keyIdentifier();
     if (key == "U+001B") {
-        RawPtr<HTMLInputElement> input(element());
-        input->setValueForUser("");
-        input->onSearch();
+        element().setValueForUser("");
+        element().onSearch();
         event->setDefaultHandled();
         return;
     }
@@ -114,7 +113,7 @@
 
     if (!length) {
         m_searchEventTimer.stop();
-        element().document().postTask(BLINK_FROM_HERE, createSameThreadTask(&HTMLInputElement::onSearch, RawPtr<HTMLInputElement>(&element())));
+        element().document().postTask(BLINK_FROM_HERE, createSameThreadTask(&HTMLInputElement::onSearch, &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 6ca07239..b97cb86 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 RawPtr<InputType> create(HTMLInputElement&);
+    static 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 663b70b3d..c33b946 100644
--- a/third_party/WebKit/Source/core/html/forms/SubmitInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/SubmitInputType.cpp
@@ -41,7 +41,7 @@
 
 namespace blink {
 
-RawPtr<InputType> SubmitInputType::create(HTMLInputElement& element)
+InputType* SubmitInputType::create(HTMLInputElement& element)
 {
     UseCounter::count(element.document(), UseCounter::InputTypeSubmit);
     return new SubmitInputType(element);
@@ -65,12 +65,11 @@
 
 void SubmitInputType::handleDOMActivateEvent(Event* event)
 {
-    RawPtr<HTMLInputElement> element(this->element());
-    if (element->isDisabledFormControl() || !element->form())
+    if (element().isDisabledFormControl() || !element().form())
         return;
-    element->setActivatedSubmit(true);
-    element->form()->prepareForSubmission(event); // Event handlers can run.
-    element->setActivatedSubmit(false);
+    element().setActivatedSubmit(true);
+    element().form()->prepareForSubmission(event); // Event handlers can run.
+    element().setActivatedSubmit(false);
     event->setDefaultHandled();
 }
 
diff --git a/third_party/WebKit/Source/core/html/forms/SubmitInputType.h b/third_party/WebKit/Source/core/html/forms/SubmitInputType.h
index d41e43d..845965c 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 RawPtr<InputType> create(HTMLInputElement&);
+    static 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 b5380a40..11982aa0 100644
--- a/third_party/WebKit/Source/core/html/forms/TelephoneInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/TelephoneInputType.cpp
@@ -35,7 +35,7 @@
 
 namespace blink {
 
-RawPtr<InputType> TelephoneInputType::create(HTMLInputElement& element)
+InputType* TelephoneInputType::create(HTMLInputElement& element)
 {
     return new TelephoneInputType(element);
 }
diff --git a/third_party/WebKit/Source/core/html/forms/TelephoneInputType.h b/third_party/WebKit/Source/core/html/forms/TelephoneInputType.h
index 6d92583..3046c37 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 RawPtr<InputType> create(HTMLInputElement&);
+    static 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 e98f886..869d678 100644
--- a/third_party/WebKit/Source/core/html/forms/TextFieldInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/TextFieldInputType.cpp
@@ -97,12 +97,12 @@
     }
 
 public:
-    static RawPtr<DataListIndicatorElement> create(Document& document)
+    static DataListIndicatorElement* create(Document& document)
     {
-        RawPtr<DataListIndicatorElement> element = new DataListIndicatorElement(document);
+        DataListIndicatorElement* element = new DataListIndicatorElement(document);
         element->setShadowPseudoId(AtomicString("-webkit-calendar-picker-indicator"));
         element->setAttribute(idAttr, ShadowElementNames::pickerIndicator());
-        return element.release();
+        return element;
     }
 
 };
@@ -147,22 +147,18 @@
 
 void TextFieldInputType::setValue(const String& sanitizedValue, bool valueChanged, TextFieldEventBehavior eventBehavior)
 {
-    // Grab this input element to keep reference even if JS event handler
-    // changes input type.
-    RawPtr<HTMLInputElement> input(element());
-
     // We don't ask InputType::setValue to dispatch events because
     // TextFieldInputType dispatches events different way from InputType.
     InputType::setValue(sanitizedValue, valueChanged, DispatchNoEvent);
 
     if (valueChanged)
-        input->updateView();
+        element().updateView();
 
     unsigned max = visibleValue().length();
-    if (input->focused())
-        input->setSelectionRange(max, max, SelectionHasNoDirection, NotDispatchSelectEvent);
+    if (element().focused())
+        element().setSelectionRange(max, max, SelectionHasNoDirection, NotDispatchSelectEvent);
     else
-        input->cacheSelectionInResponseToSetValue(max);
+        element().cacheSelectionInResponseToSetValue(max);
 
     if (!valueChanged)
         return;
@@ -171,15 +167,15 @@
     case DispatchChangeEvent:
         // If the user is still editing this field, dispatch an input event rather than a change event.
         // The change event will be dispatched when editing finishes.
-        if (input->focused())
-            input->dispatchFormControlInputEvent();
+        if (element().focused())
+            element().dispatchFormControlInputEvent();
         else
-            input->dispatchFormControlChangeEvent();
+            element().dispatchFormControlChangeEvent();
         break;
 
     case DispatchInputAndChangeEvent: {
-        input->dispatchFormControlInputEvent();
-        input->dispatchFormControlChangeEvent();
+        element().dispatchFormControlInputEvent();
+        element().dispatchFormControlChangeEvent();
         break;
     }
 
@@ -187,8 +183,8 @@
         break;
     }
 
-    if (!input->focused())
-        input->setTextAsOfLastFormControlChangeEvent(sanitizedValue.isNull() ? input->defaultValue() : sanitizedValue);
+    if (!element().focused())
+        element().setTextAsOfLastFormControlChangeEvent(sanitizedValue.isNull() ? element().defaultValue() : sanitizedValue);
 }
 
 void TextFieldInputType::handleKeydownEvent(KeyboardEvent* event)
@@ -287,19 +283,19 @@
     bool shouldHaveDataListIndicator = element().hasValidDataListOptions();
     bool createsContainer = shouldHaveSpinButton || shouldHaveDataListIndicator || needsContainer();
 
-    RawPtr<TextControlInnerEditorElement> innerEditor = TextControlInnerEditorElement::create(document);
+    TextControlInnerEditorElement* innerEditor = TextControlInnerEditorElement::create(document);
     if (!createsContainer) {
-        shadowRoot->appendChild(innerEditor.release());
+        shadowRoot->appendChild(innerEditor);
         return;
     }
 
-    RawPtr<TextControlInnerContainer> container = TextControlInnerContainer::create(document);
+    TextControlInnerContainer* container = TextControlInnerContainer::create(document);
     container->setShadowPseudoId(AtomicString("-webkit-textfield-decoration-container"));
     shadowRoot->appendChild(container);
 
-    RawPtr<EditingViewPortElement> editingViewPort = EditingViewPortElement::create(document);
-    editingViewPort->appendChild(innerEditor.release());
-    container->appendChild(editingViewPort.release());
+    EditingViewPortElement* editingViewPort = EditingViewPortElement::create(document);
+    editingViewPort->appendChild(innerEditor);
+    container->appendChild(editingViewPort);
 
     if (shouldHaveDataListIndicator)
         container->appendChild(DataListIndicatorElement::create(document));
@@ -342,13 +338,13 @@
             // FIXME: The following code is similar to createShadowSubtree(),
             // but they are different. We should simplify the code by making
             // containerElement mandatory.
-            RawPtr<Element> rpContainer = TextControlInnerContainer::create(document);
+            Element* rpContainer = TextControlInnerContainer::create(document);
             rpContainer->setShadowPseudoId(AtomicString("-webkit-textfield-decoration-container"));
-            RawPtr<Element> innerEditor = element().innerEditorElement();
-            innerEditor->parentNode()->replaceChild(rpContainer.get(), innerEditor.get());
-            RawPtr<Element> editingViewPort = EditingViewPortElement::create(document);
-            editingViewPort->appendChild(innerEditor.release());
-            rpContainer->appendChild(editingViewPort.release());
+            Element* innerEditor = element().innerEditorElement();
+            innerEditor->parentNode()->replaceChild(rpContainer, innerEditor);
+            Element* editingViewPort = EditingViewPortElement::create(document);
+            editingViewPort->appendChild(innerEditor);
+            rpContainer->appendChild(editingViewPort);
             rpContainer->appendChild(DataListIndicatorElement::create(document));
             if (element().document().focusedElement() == element())
                 element().updateFocusAppearance(SelectionBehaviorOnFocus::Restore);
@@ -457,8 +453,8 @@
         return;
     }
     if (!placeholder) {
-        RawPtr<HTMLElement> newElement = HTMLDivElement::create(element().document());
-        placeholder = newElement.get();
+        HTMLElement* newElement = HTMLDivElement::create(element().document());
+        placeholder = newElement;
         placeholder->setShadowPseudoId(AtomicString("-webkit-input-placeholder"));
         placeholder->setInlineStyleProperty(CSSPropertyDisplay, element().isPlaceholderVisible() ? CSSValueBlock : CSSValueNone, true);
         placeholder->setAttribute(idAttr, ShadowElementNames::placeholder());
@@ -533,9 +529,8 @@
 
 void TextFieldInputType::focusAndSelectSpinButtonOwner()
 {
-    RawPtr<HTMLInputElement> input(element());
-    input->focus();
-    input->select(NotDispatchSelectEvent);
+    element().focus();
+    element().select(NotDispatchSelectEvent);
 }
 
 bool TextFieldInputType::shouldSpinButtonRespondToMouseEvents()
diff --git a/third_party/WebKit/Source/core/html/forms/TextInputType.cpp b/third_party/WebKit/Source/core/html/forms/TextInputType.cpp
index bb29ee8..854a2d3 100644
--- a/third_party/WebKit/Source/core/html/forms/TextInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/TextInputType.cpp
@@ -38,7 +38,7 @@
 
 using namespace HTMLNames;
 
-RawPtr<InputType> TextInputType::create(HTMLInputElement& element)
+InputType* TextInputType::create(HTMLInputElement& element)
 {
     return new TextInputType(element);
 }
diff --git a/third_party/WebKit/Source/core/html/forms/TextInputType.h b/third_party/WebKit/Source/core/html/forms/TextInputType.h
index 5d7dbc6..321cf32 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 RawPtr<InputType> create(HTMLInputElement&);
+    static 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 221378c..4e42409c 100644
--- a/third_party/WebKit/Source/core/html/forms/TimeInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/TimeInputType.cpp
@@ -57,7 +57,7 @@
 {
 }
 
-RawPtr<InputType> TimeInputType::create(HTMLInputElement& element)
+InputType* TimeInputType::create(HTMLInputElement& element)
 {
     return new TimeInputType(element);
 }
diff --git a/third_party/WebKit/Source/core/html/forms/TimeInputType.h b/third_party/WebKit/Source/core/html/forms/TimeInputType.h
index c5f5acb9d..e86ec4d 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 RawPtr<InputType> create(HTMLInputElement&);
+    static 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 bc276e3..4328f90 100644
--- a/third_party/WebKit/Source/core/html/forms/URLInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/URLInputType.cpp
@@ -38,7 +38,7 @@
 
 namespace blink {
 
-RawPtr<InputType> URLInputType::create(HTMLInputElement& element)
+InputType* URLInputType::create(HTMLInputElement& element)
 {
     return new URLInputType(element);
 }
diff --git a/third_party/WebKit/Source/core/html/forms/URLInputType.h b/third_party/WebKit/Source/core/html/forms/URLInputType.h
index 0e6c5543..bf249bb 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 RawPtr<InputType> create(HTMLInputElement&);
+    static 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 591fd74..630ee74 100644
--- a/third_party/WebKit/Source/core/html/forms/WeekInputType.cpp
+++ b/third_party/WebKit/Source/core/html/forms/WeekInputType.cpp
@@ -47,7 +47,7 @@
 static const int weekDefaultStep = 1;
 static const int weekStepScaleFactor = 604800000;
 
-RawPtr<InputType> WeekInputType::create(HTMLInputElement& element)
+InputType* WeekInputType::create(HTMLInputElement& element)
 {
     return new WeekInputType(element);
 }
diff --git a/third_party/WebKit/Source/core/html/forms/WeekInputType.h b/third_party/WebKit/Source/core/html/forms/WeekInputType.h
index 12ff423..ca401ec 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 RawPtr<InputType> create(HTMLInputElement&);
+    static InputType* create(HTMLInputElement&);
 
 private:
     explicit WeekInputType(HTMLInputElement& element) : BaseWeekInputType(element) { }
diff --git a/third_party/WebKit/Source/core/inspector/InspectorPageAgent.cpp b/third_party/WebKit/Source/core/inspector/InspectorPageAgent.cpp
index 8541931..0e42b39 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorPageAgent.cpp
+++ b/third_party/WebKit/Source/core/inspector/InspectorPageAgent.cpp
@@ -423,7 +423,7 @@
     ErrorString unused;
     m_debuggerAgent->setSkipAllPauses(&unused, true);
     m_reloading = true;
-    m_inspectedFrames->root()->reload(optionalIgnoreCache.fromMaybe(false) ? FrameLoadTypeReloadBypassingCache : FrameLoadTypeReload, NotClientRedirect);
+    m_inspectedFrames->root()->reload(optionalIgnoreCache.fromMaybe(false) ? FrameLoadTypeReloadBypassingCache : FrameLoadTypeReload, ClientRedirectPolicy::NotClientRedirect);
 }
 
 void InspectorPageAgent::navigate(ErrorString*, const String& url, String* outFrameId)
diff --git a/third_party/WebKit/Source/core/layout/LayoutBlock.h b/third_party/WebKit/Source/core/layout/LayoutBlock.h
index 0a150fe..f0d393f 100644
--- a/third_party/WebKit/Source/core/layout/LayoutBlock.h
+++ b/third_party/WebKit/Source/core/layout/LayoutBlock.h
@@ -349,7 +349,7 @@
     // happen after all layout is done, i.e. during updateLayerPositionsAfterLayout. However,
     // that currently fails a layout test. To fix this bug in time for M50, we use this temporary
     // hack. The real fix is tracked in crbug.com/600036
-    typedef WTF::HashMap<PaintLayerScrollableArea*, DoublePoint> ScrollPositionMap;
+    typedef PersistentHeapHashMap<Member<PaintLayerScrollableArea>, DoublePoint> ScrollPositionMap;
     static void startDelayUpdateScrollInfo();
     static bool finishDelayUpdateScrollInfo(SubtreeLayoutScope*, ScrollPositionMap*);
 
diff --git a/third_party/WebKit/Source/core/loader/FrameLoadRequest.h b/third_party/WebKit/Source/core/loader/FrameLoadRequest.h
index 53684f7..2d9970f 100644
--- a/third_party/WebKit/Source/core/loader/FrameLoadRequest.h
+++ b/third_party/WebKit/Source/core/loader/FrameLoadRequest.h
@@ -101,7 +101,7 @@
         , m_frameName(frameName)
         , m_substituteData(substituteData)
         , m_replacesCurrentItem(false)
-        , m_clientRedirect(NotClientRedirect)
+        , m_clientRedirect(ClientRedirectPolicy::NotClientRedirect)
         , m_shouldSendReferrer(MaybeSendReferrer)
         , m_shouldSetOpener(MaybeSetOpener)
         , m_shouldCheckMainWorldContentSecurityPolicy(shouldCheckMainWorldContentSecurityPolicy)
diff --git a/third_party/WebKit/Source/core/loader/FrameLoader.cpp b/third_party/WebKit/Source/core/loader/FrameLoader.cpp
index 31009e70..6f5de0ad2 100644
--- a/third_party/WebKit/Source/core/loader/FrameLoader.cpp
+++ b/third_party/WebKit/Source/core/loader/FrameLoader.cpp
@@ -147,7 +147,7 @@
     // current document. If this reload is a client redirect (e.g., location.reload()),
     // it was initiated by something in the current document and should
     // therefore show the current document's url as the referrer.
-    if (clientRedirectPolicy == ClientRedirect) {
+    if (clientRedirectPolicy == ClientRedirectPolicy::ClientRedirect) {
         request.setHTTPReferrer(Referrer(m_frame->document()->outgoingReferrer(),
             m_frame->document()->getReferrerPolicy()));
     }
@@ -727,7 +727,7 @@
         m_frame->eventHandler().stopAutoscroll();
         m_frame->localDOMWindow()->enqueueHashchangeEvent(oldURL, url);
     }
-    m_documentLoader->setIsClientRedirect(clientRedirect == ClientRedirect);
+    m_documentLoader->setIsClientRedirect(clientRedirect == ClientRedirectPolicy::ClientRedirect);
     updateForSameDocumentNavigation(url, SameDocumentNavigationDefault, nullptr, ScrollRestorationAuto, frameLoadType);
 
     m_documentLoader->initialScrollState().wasScrolledByUser = false;
@@ -1392,7 +1392,7 @@
     frameLoadRequest.resourceRequest().setRequestContext(determineRequestContextFromNavigationType(navigationType));
     frameLoadRequest.resourceRequest().setFrameType(m_frame->isMainFrame() ? WebURLRequest::FrameTypeTopLevel : WebURLRequest::FrameTypeNested);
     ResourceRequest& request = frameLoadRequest.resourceRequest();
-    if (!shouldContinueForNavigationPolicy(request, frameLoadRequest.substituteData(), nullptr, frameLoadRequest.shouldCheckMainWorldContentSecurityPolicy(), navigationType, navigationPolicy, type == FrameLoadTypeReplaceCurrentItem, frameLoadRequest.clientRedirect() == ClientRedirect))
+    if (!shouldContinueForNavigationPolicy(request, frameLoadRequest.substituteData(), nullptr, frameLoadRequest.shouldCheckMainWorldContentSecurityPolicy(), navigationType, navigationPolicy, type == FrameLoadTypeReplaceCurrentItem, frameLoadRequest.clientRedirect() == ClientRedirectPolicy::ClientRedirect))
         return;
     if (!shouldClose(navigationType == NavigationTypeReload))
         return;
@@ -1408,7 +1408,7 @@
     m_provisionalDocumentLoader = client()->createDocumentLoader(m_frame, request, frameLoadRequest.substituteData().isValid() ? frameLoadRequest.substituteData() : defaultSubstituteDataForURL(request.url()));
     m_provisionalDocumentLoader->setNavigationType(navigationType);
     m_provisionalDocumentLoader->setReplacesCurrentHistoryItem(type == FrameLoadTypeReplaceCurrentItem);
-    m_provisionalDocumentLoader->setIsClientRedirect(frameLoadRequest.clientRedirect() == ClientRedirect);
+    m_provisionalDocumentLoader->setIsClientRedirect(frameLoadRequest.clientRedirect() == ClientRedirectPolicy::ClientRedirect);
 
     InspectorInstrumentation::didStartProvisionalLoad(m_frame);
 
diff --git a/third_party/WebKit/Source/core/loader/FrameLoader.h b/third_party/WebKit/Source/core/loader/FrameLoader.h
index 4a6f0159..09c110d 100644
--- a/third_party/WebKit/Source/core/loader/FrameLoader.h
+++ b/third_party/WebKit/Source/core/loader/FrameLoader.h
@@ -74,7 +74,7 @@
     void init();
 
     ResourceRequest resourceRequestForReload(FrameLoadType, const KURL& overrideURL = KURL(),
-        ClientRedirectPolicy = NotClientRedirect);
+        ClientRedirectPolicy = ClientRedirectPolicy::NotClientRedirect);
 
     ProgressTracker& progress() const { return *m_progressTracker; }
 
diff --git a/third_party/WebKit/Source/core/loader/NavigationScheduler.cpp b/third_party/WebKit/Source/core/loader/NavigationScheduler.cpp
index da2d285..b33d214 100644
--- a/third_party/WebKit/Source/core/loader/NavigationScheduler.cpp
+++ b/third_party/WebKit/Source/core/loader/NavigationScheduler.cpp
@@ -119,7 +119,7 @@
         OwnPtr<UserGestureIndicator> gestureIndicator = createUserGestureIndicator();
         FrameLoadRequest request(originDocument(), m_url, "_self", m_shouldCheckMainWorldContentSecurityPolicy);
         request.setReplacesCurrentItem(replacesCurrentItem());
-        request.setClientRedirect(ClientRedirect);
+        request.setClientRedirect(ClientRedirectPolicy::ClientRedirect);
         frame->loader().load(request);
     }
 
@@ -146,7 +146,7 @@
         request.setReplacesCurrentItem(replacesCurrentItem());
         if (equalIgnoringFragmentIdentifier(frame->document()->url(), request.resourceRequest().url()))
             request.resourceRequest().setCachePolicy(ValidatingCacheData);
-        request.setClientRedirect(ClientRedirect);
+        request.setClientRedirect(ClientRedirectPolicy::ClientRedirect);
         frame->loader().load(request);
     }
 
@@ -180,12 +180,11 @@
     void fire(LocalFrame* frame) override
     {
         OwnPtr<UserGestureIndicator> gestureIndicator = createUserGestureIndicator();
-        ResourceRequest resourceRequest =
-            frame->loader().resourceRequestForReload(FrameLoadTypeReload, KURL(), ClientRedirect);
+        ResourceRequest resourceRequest = frame->loader().resourceRequestForReload(FrameLoadTypeReload, KURL(), ClientRedirectPolicy::ClientRedirect);
         if (resourceRequest.isNull())
             return;
         FrameLoadRequest request = FrameLoadRequest(nullptr, resourceRequest);
-        request.setClientRedirect(ClientRedirect);
+        request.setClientRedirect(ClientRedirectPolicy::ClientRedirect);
         frame->loader().load(request, FrameLoadTypeReload);
     }
 
@@ -209,7 +208,7 @@
         SubstituteData substituteData(SharedBuffer::create(), "text/plain", "UTF-8", KURL(), ForceSynchronousLoad);
         FrameLoadRequest request(originDocument(), url(), substituteData);
         request.setReplacesCurrentItem(true);
-        request.setClientRedirect(ClientRedirect);
+        request.setClientRedirect(ClientRedirectPolicy::ClientRedirect);
         frame->loader().load(request);
     }
 private:
@@ -334,7 +333,7 @@
             FrameLoadRequest request(originDocument, m_frame->document()->completeURL(url), "_self");
             request.setReplacesCurrentItem(replacesCurrentItem);
             if (replacesCurrentItem)
-                request.setClientRedirect(ClientRedirect);
+                request.setClientRedirect(ClientRedirectPolicy::ClientRedirect);
             m_frame->loader().load(request);
             return;
         }
diff --git a/third_party/WebKit/Source/core/loader/WorkerThreadableLoader.cpp b/third_party/WebKit/Source/core/loader/WorkerThreadableLoader.cpp
index 2f26407..9edde37 100644
--- a/third_party/WebKit/Source/core/loader/WorkerThreadableLoader.cpp
+++ b/third_party/WebKit/Source/core/loader/WorkerThreadableLoader.cpp
@@ -85,7 +85,10 @@
 
 void WorkerThreadableLoader::start(const ResourceRequest& request)
 {
-    m_bridge->start(request, *m_workerGlobalScope);
+    ResourceRequest requestToPass(request);
+    if (!requestToPass.didSetHTTPReferrer())
+        requestToPass.setHTTPReferrer(SecurityPolicy::generateReferrer(m_workerGlobalScope->getReferrerPolicy(), request.url(), m_workerGlobalScope->outgoingReferrer()));
+    m_bridge->start(requestToPass, *m_workerGlobalScope);
     m_workerClientWrapper->setResourceTimingClient(this);
 }
 
@@ -130,15 +133,11 @@
     ASSERT(m_mainThreadLoader);
 }
 
-void WorkerThreadableLoader::MainThreadBridgeBase::mainThreadStart(PassOwnPtr<CrossThreadResourceRequestData> requestData, const ReferrerPolicy referrerPolicy, const String& outgoingReferrer)
+void WorkerThreadableLoader::MainThreadBridgeBase::mainThreadStart(PassOwnPtr<CrossThreadResourceRequestData> requestData)
 {
     ASSERT(isMainThread());
     ASSERT(m_mainThreadLoader);
-
-    ResourceRequest request(requestData.get());
-    if (!request.didSetHTTPReferrer())
-        request.setHTTPReferrer(SecurityPolicy::generateReferrer(referrerPolicy, request.url(), outgoingReferrer));
-    m_mainThreadLoader->start(request);
+    m_mainThreadLoader->start(ResourceRequest(requestData.get()));
 }
 
 void WorkerThreadableLoader::MainThreadBridgeBase::createLoaderInMainThread(const ThreadableLoaderOptions& options, const ResourceLoaderOptions& resourceLoaderOptions)
@@ -148,7 +147,7 @@
 
 void WorkerThreadableLoader::MainThreadBridgeBase::startInMainThread(const ResourceRequest& request, const WorkerGlobalScope& workerGlobalScope)
 {
-    loaderProxy()->postTaskToLoader(createCrossThreadTask(&MainThreadBridgeBase::mainThreadStart, this, request, workerGlobalScope.getReferrerPolicy(), workerGlobalScope.url().strippedForUseAsReferrer()));
+    loaderProxy()->postTaskToLoader(createCrossThreadTask(&MainThreadBridgeBase::mainThreadStart, this, request));
 }
 
 void WorkerThreadableLoader::MainThreadBridgeBase::mainThreadDestroy(ExecutionContext* context)
diff --git a/third_party/WebKit/Source/core/loader/WorkerThreadableLoader.h b/third_party/WebKit/Source/core/loader/WorkerThreadableLoader.h
index 244e5f3..5cb51a8e 100644
--- a/third_party/WebKit/Source/core/loader/WorkerThreadableLoader.h
+++ b/third_party/WebKit/Source/core/loader/WorkerThreadableLoader.h
@@ -142,7 +142,7 @@
 
         // All executed on the main thread.
         void mainThreadCreateLoader(ThreadableLoaderOptions, ResourceLoaderOptions, ExecutionContext*);
-        void mainThreadStart(PassOwnPtr<CrossThreadResourceRequestData>, const ReferrerPolicy, const String& outgoingReferrer);
+        void mainThreadStart(PassOwnPtr<CrossThreadResourceRequestData>);
         void mainThreadDestroy(ExecutionContext*);
         void mainThreadOverrideTimeout(unsigned long timeoutMilliseconds, ExecutionContext*);
         void mainThreadCancel(ExecutionContext*);
diff --git a/third_party/WebKit/Source/core/page/DragController.cpp b/third_party/WebKit/Source/core/page/DragController.cpp
index 90f109a..2d81510 100644
--- a/third_party/WebKit/Source/core/page/DragController.cpp
+++ b/third_party/WebKit/Source/core/page/DragController.cpp
@@ -243,7 +243,15 @@
             // Sending an event can result in the destruction of the view and part.
             DataTransfer* dataTransfer = createDraggingDataTransfer(DataTransferReadable, dragData);
             dataTransfer->setSourceOperation(dragData->draggingSourceOperationMask());
-            preventedDefault = mainFrame->eventHandler().performDragAndDrop(createMouseEvent(dragData), dataTransfer) != WebInputEventResult::NotHandled;
+            EventHandler& eventHandler = mainFrame->eventHandler();
+            preventedDefault = eventHandler.performDragAndDrop(createMouseEvent(dragData), dataTransfer) != WebInputEventResult::NotHandled;
+            if (!preventedDefault) {
+                // When drop target is plugin element and it can process drag, we
+                // should prevent default behavior.
+                const IntPoint point = mainFrame->view()->rootFrameToContents(dragData->clientPosition());
+                const HitTestResult result = eventHandler.hitTestResultAtPoint(point);
+                preventedDefault |= isHTMLPlugInElement(*result.innerNode()) && toHTMLPlugInElement(result.innerNode())->canProcessDrag();
+            }
             dataTransfer->setAccessPolicy(DataTransferNumb); // Invalidate clipboard here for security
         }
         if (preventedDefault) {
diff --git a/third_party/WebKit/Source/core/svg/LinearGradientAttributes.h b/third_party/WebKit/Source/core/svg/LinearGradientAttributes.h
index 5ca6a42..8fd7381 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(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; }
+    void setX1(SVGLength* value) { m_x1 = value; m_x1Set = true; }
+    void setY1(SVGLength* value) { m_y1 = value; m_y1Set = true; }
+    void setX2(SVGLength* value) { m_x2 = value; m_x2Set = true; }
+    void setY2(SVGLength* value) { m_y2 = value; m_y2Set = true; }
 
     bool hasX1() const { return m_x1Set; }
     bool hasY1() const { return m_y1Set; }
diff --git a/third_party/WebKit/Source/core/svg/PatternAttributes.h b/third_party/WebKit/Source/core/svg/PatternAttributes.h
index 3512a7c..a86aaf8 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(RawPtr<SVGLength> value)
+    void setX(SVGLength* value)
     {
         m_x = value;
         m_xSet = true;
     }
 
-    void setY(RawPtr<SVGLength> value)
+    void setY(SVGLength* value)
     {
         m_y = value;
         m_ySet = true;
     }
 
-    void setWidth(RawPtr<SVGLength> value)
+    void setWidth(SVGLength* value)
     {
         m_width = value;
         m_widthSet = true;
     }
 
-    void setHeight(RawPtr<SVGLength> value)
+    void setHeight(SVGLength* value)
     {
         m_height = value;
         m_heightSet = true;
@@ -96,7 +96,7 @@
         m_viewBoxSet = true;
     }
 
-    void setPreserveAspectRatio(RawPtr<SVGPreserveAspectRatio> value)
+    void setPreserveAspectRatio(SVGPreserveAspectRatio* value)
     {
         m_preserveAspectRatio = value;
         m_preserveAspectRatioSet = true;
diff --git a/third_party/WebKit/Source/core/svg/RadialGradientAttributes.h b/third_party/WebKit/Source/core/svg/RadialGradientAttributes.h
index 191e535..d90b017f 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(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; }
+    void setCx(SVGLength* value) { m_cx = value; m_cxSet = true; }
+    void setCy(SVGLength* value) { m_cy = value; m_cySet = true; }
+    void setR(SVGLength* value) { m_r = value; m_rSet = true; }
+    void setFx(SVGLength* value) { m_fx = value; m_fxSet = true; }
+    void setFy(SVGLength* value) { m_fy = value; m_fySet = true; }
+    void setFr(SVGLength* value) { m_fr = value; m_frSet = true; }
 
     bool hasCx() const { return m_cxSet; }
     bool hasCy() const { return m_cySet; }
diff --git a/third_party/WebKit/Source/core/svg/SVGAngle.cpp b/third_party/WebKit/Source/core/svg/SVGAngle.cpp
index 157b63a..eb1cf4d 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(RawPtr<SVGPropertyBase>, SVGElement*)
+void SVGMarkerOrientEnumeration::add(SVGPropertyBase*, SVGElement*)
 {
     // SVGMarkerOrientEnumeration is only animated via SVGAngle
     ASSERT_NOT_REACHED();
 }
 
-void SVGMarkerOrientEnumeration::calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> from, RawPtr<SVGPropertyBase> to, RawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement* contextElement)
+void SVGMarkerOrientEnumeration::calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, SVGPropertyBase* from, SVGPropertyBase* to, SVGPropertyBase* toAtEndOfDurationValue, SVGElement* contextElement)
 {
     // SVGMarkerOrientEnumeration is only animated via SVGAngle
     ASSERT_NOT_REACHED();
 }
 
-float SVGMarkerOrientEnumeration::calculateDistance(RawPtr<SVGPropertyBase> to, SVGElement* contextElement)
+float SVGMarkerOrientEnumeration::calculateDistance(SVGPropertyBase* to, SVGElement* contextElement)
 {
     // SVGMarkerOrientEnumeration is only animated via SVGAngle
     ASSERT_NOT_REACHED();
@@ -110,7 +110,7 @@
     SVGPropertyHelper<SVGAngle>::trace(visitor);
 }
 
-RawPtr<SVGAngle> SVGAngle::clone() const
+SVGAngle* SVGAngle::clone() const
 {
     return new SVGAngle(m_unitType, m_valueInSpecifiedUnits, m_orientType->enumValue());
 }
@@ -366,9 +366,9 @@
     m_orientType->setEnumValue(SVGMarkerOrientAngle);
 }
 
-void SVGAngle::add(RawPtr<SVGPropertyBase> other, SVGElement*)
+void SVGAngle::add(SVGPropertyBase* other, SVGElement*)
 {
-    RawPtr<SVGAngle> otherAngle = toSVGAngle(other);
+    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, RawPtr<SVGPropertyBase> from, RawPtr<SVGPropertyBase> to, RawPtr<SVGPropertyBase> toAtEndOfDuration, SVGElement*)
+void SVGAngle::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, SVGPropertyBase* from, SVGPropertyBase* to, SVGPropertyBase* toAtEndOfDuration, SVGElement*)
 {
     ASSERT(animationElement);
     bool isToAnimation = animationElement->getAnimationMode() == ToAnimation;
 
-    RawPtr<SVGAngle> fromAngle = isToAnimation ? RawPtr<SVGAngle>(this) : toSVGAngle(from);
-    RawPtr<SVGAngle> toAngle = toSVGAngle(to);
+    SVGAngle* fromAngle = isToAnimation ? this : toSVGAngle(from);
+    SVGAngle* toAngle = toSVGAngle(to);
     SVGMarkerOrientType fromOrientType = fromAngle->orientType()->enumValue();
     SVGMarkerOrientType toOrientType = toAngle->orientType()->enumValue();
 
@@ -413,7 +413,7 @@
     case SVGMarkerOrientAngle:
         {
             float animatedValue = value();
-            RawPtr<SVGAngle> toAtEndOfDurationAngle = toSVGAngle(toAtEndOfDuration);
+            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(RawPtr<SVGPropertyBase> other, SVGElement*)
+float SVGAngle::calculateDistance(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 f426af2a..543ad0a 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 RawPtr<SVGMarkerOrientEnumeration> create(SVGAngle* angle)
+    static SVGMarkerOrientEnumeration* create(SVGAngle* angle)
     {
         return new SVGMarkerOrientEnumeration(angle);
     }
 
     ~SVGMarkerOrientEnumeration() 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;
+    void add(SVGPropertyBase*, SVGElement*) override;
+    void calculateAnimatedValue(SVGAnimationElement*, float, unsigned, SVGPropertyBase*, SVGPropertyBase*, SVGPropertyBase*, SVGElement*) override;
+    float calculateDistance(SVGPropertyBase*, SVGElement*) override;
 
     DECLARE_VIRTUAL_TRACE();
 
@@ -77,7 +77,7 @@
         SVG_ANGLETYPE_TURN = 5
     };
 
-    static RawPtr<SVGAngle> create()
+    static SVGAngle* create()
     {
         return new SVGAngle();
     }
@@ -101,14 +101,14 @@
 
     // SVGPropertyBase:
 
-    RawPtr<SVGAngle> clone() const;
+    SVGAngle* clone() const;
 
     String valueAsString() const override;
     SVGParsingError setValueAsString(const String&);
 
-    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;
+    void add(SVGPropertyBase*, SVGElement*) override;
+    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, SVGPropertyBase* from, SVGPropertyBase* to, SVGPropertyBase* toAtEndOfDurationValue, SVGElement* contextElement) override;
+    float calculateDistance(SVGPropertyBase* to, SVGElement* contextElement) override;
 
     static AnimatedPropertyType classType() { return AnimatedAngle; }
 
diff --git a/third_party/WebKit/Source/core/svg/SVGAngleTearOff.cpp b/third_party/WebKit/Source/core/svg/SVGAngleTearOff.cpp
index 95feae2..6f9b037 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(RawPtr<SVGAngle> targetProperty, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName)
+SVGAngleTearOff::SVGAngleTearOff(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 44ad3f8..fa5a8e5 100644
--- a/third_party/WebKit/Source/core/svg/SVGAngleTearOff.h
+++ b/third_party/WebKit/Source/core/svg/SVGAngleTearOff.h
@@ -40,7 +40,7 @@
 class SVGAngleTearOff final : public SVGPropertyTearOff<SVGAngle>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static RawPtr<SVGAngleTearOff> create(RawPtr<SVGAngle> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
+    static SVGAngleTearOff* create(SVGAngle* target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
     {
         return new SVGAngleTearOff(target, contextElement, propertyIsAnimVal, attributeName);
     }
@@ -70,7 +70,7 @@
     void setValueAsString(const String&, ExceptionState&);
 
 private:
-    SVGAngleTearOff(RawPtr<SVGAngle>, SVGElement*, PropertyIsAnimValType, const QualifiedName&);
+    SVGAngleTearOff(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 2fcc8129..331c461 100644
--- a/third_party/WebKit/Source/core/svg/SVGAnimateElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGAnimateElement.cpp
@@ -39,7 +39,7 @@
 {
 }
 
-RawPtr<SVGAnimateElement> SVGAnimateElement::create(Document& document)
+SVGAnimateElement* SVGAnimateElement::create(Document& document)
 {
     return new SVGAnimateElement(SVGNames::animateTag, document);
 }
diff --git a/third_party/WebKit/Source/core/svg/SVGAnimateElement.h b/third_party/WebKit/Source/core/svg/SVGAnimateElement.h
index 97ccfa1..7a40781 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 RawPtr<SVGAnimateElement> create(Document&);
+    static SVGAnimateElement* create(Document&);
     ~SVGAnimateElement() override;
 
     DECLARE_VIRTUAL_TRACE();
diff --git a/third_party/WebKit/Source/core/svg/SVGAnimatedAngle.cpp b/third_party/WebKit/Source/core/svg/SVGAnimatedAngle.cpp
index 322c3d3..af26c0c4 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(RawPtr<SVGPropertyBase> value)
+void SVGAnimatedAngle::setAnimatedValue(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 009d7ef..14339fc 100644
--- a/third_party/WebKit/Source/core/svg/SVGAnimatedAngle.h
+++ b/third_party/WebKit/Source/core/svg/SVGAnimatedAngle.h
@@ -41,7 +41,7 @@
 class SVGAnimatedAngle final : public SVGAnimatedProperty<SVGAngle>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static RawPtr<SVGAnimatedAngle> create(SVGElement* contextElement)
+    static SVGAnimatedAngle* create(SVGElement* contextElement)
     {
         return new SVGAnimatedAngle(contextElement);
     }
@@ -54,7 +54,7 @@
     bool needsSynchronizeAttribute() override;
     void synchronizeAttribute() override;
 
-    void setAnimatedValue(RawPtr<SVGPropertyBase>) override;
+    void setAnimatedValue(SVGPropertyBase*) override;
     void animationEnded() override;
 
     DECLARE_VIRTUAL_TRACE();
diff --git a/third_party/WebKit/Source/core/svg/SVGAnimatedBoolean.h b/third_party/WebKit/Source/core/svg/SVGAnimatedBoolean.h
index 4d47072620..6a8928f 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 RawPtr<SVGAnimatedBoolean> create(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<SVGBoolean> initialValue)
+    static SVGAnimatedBoolean* create(SVGElement* contextElement, const QualifiedName& attributeName, SVGBoolean* initialValue)
     {
         return new SVGAnimatedBoolean(contextElement, attributeName, initialValue);
     }
 
 protected:
-    SVGAnimatedBoolean(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<SVGBoolean> initialValue)
+    SVGAnimatedBoolean(SVGElement* contextElement, const QualifiedName& attributeName, 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 8710ef5..2c522865 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();
 }
 
-RawPtr<SVGPropertyBase> SVGColorProperty::cloneForAnimation(const String&) const
+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(RawPtr<SVGPropertyBase> other, SVGElement* contextElement)
+void SVGColorProperty::add(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, RawPtr<SVGPropertyBase> fromValue, RawPtr<SVGPropertyBase> toValue, RawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement* contextElement)
+void SVGColorProperty::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, SVGPropertyBase* fromValue, SVGPropertyBase* toValue, 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(RawPtr<SVGPropertyBase> toValue, SVGElement* contextElement)
+float SVGColorProperty::calculateDistance(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 24e3c10..90b2e60 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 RawPtr<SVGColorProperty> create(const String& colorString)
+    static SVGColorProperty* create(const String& colorString)
     {
         return new SVGColorProperty(colorString);
     }
 
-    RawPtr<SVGPropertyBase> cloneForAnimation(const String&) const override;
+    SVGPropertyBase* cloneForAnimation(const String&) const override;
     String valueAsString() const 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;
+    void add(SVGPropertyBase*, SVGElement*) override;
+    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, SVGPropertyBase* from, SVGPropertyBase* to, SVGPropertyBase* toAtEndOfDurationValue, SVGElement*) override;
+    float calculateDistance(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 9bcda295f..7b48b2b 100644
--- a/third_party/WebKit/Source/core/svg/SVGAnimatedEnumeration.h
+++ b/third_party/WebKit/Source/core/svg/SVGAnimatedEnumeration.h
@@ -38,12 +38,12 @@
 template<typename Enum>
 class SVGAnimatedEnumeration : public SVGAnimatedEnumerationBase {
 public:
-    static RawPtr<SVGAnimatedEnumeration<Enum>> create(SVGElement* contextElement, const QualifiedName& attributeName, Enum initialValue)
+    static SVGAnimatedEnumeration<Enum>* create(SVGElement* contextElement, const QualifiedName& attributeName, Enum initialValue)
     {
         return new SVGAnimatedEnumeration(contextElement, attributeName, SVGEnumeration<Enum>::create(initialValue));
     }
 
-    static RawPtr<SVGAnimatedEnumeration<Enum>> create(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<SVGEnumeration<Enum>> initialValue)
+    static SVGAnimatedEnumeration<Enum>* create(SVGElement* contextElement, const QualifiedName& attributeName, SVGEnumeration<Enum>* initialValue)
     {
         return new SVGAnimatedEnumeration(contextElement, attributeName, initialValue);
     }
diff --git a/third_party/WebKit/Source/core/svg/SVGAnimatedEnumerationBase.h b/third_party/WebKit/Source/core/svg/SVGAnimatedEnumerationBase.h
index 77fc78c..5d7adc27 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, RawPtr<SVGEnumerationBase> initialValue)
+    SVGAnimatedEnumerationBase(SVGElement* contextElement, const QualifiedName& attributeName, 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 5413c83..9952ea5 100644
--- a/third_party/WebKit/Source/core/svg/SVGAnimatedHref.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGAnimatedHref.cpp
@@ -11,7 +11,7 @@
 
 namespace blink {
 
-RawPtr<SVGAnimatedHref> SVGAnimatedHref::create(SVGElement* contextElement)
+SVGAnimatedHref* SVGAnimatedHref::create(SVGElement* contextElement)
 {
     return new SVGAnimatedHref(contextElement);
 }
diff --git a/third_party/WebKit/Source/core/svg/SVGAnimatedHref.h b/third_party/WebKit/Source/core/svg/SVGAnimatedHref.h
index f6dcd76..3cba355 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 RawPtr<SVGAnimatedHref> create(SVGElement* contextElement);
+    static SVGAnimatedHref* create(SVGElement* contextElement);
 
     SVGString* currentValue();
     const SVGString* currentValue() const;
diff --git a/third_party/WebKit/Source/core/svg/SVGAnimatedInteger.h b/third_party/WebKit/Source/core/svg/SVGAnimatedInteger.h
index 2bc686c..4f8d7a7 100644
--- a/third_party/WebKit/Source/core/svg/SVGAnimatedInteger.h
+++ b/third_party/WebKit/Source/core/svg/SVGAnimatedInteger.h
@@ -44,7 +44,7 @@
 class SVGAnimatedInteger : public SVGAnimatedProperty<SVGInteger>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static RawPtr<SVGAnimatedInteger> create(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<SVGInteger> initialValue)
+    static SVGAnimatedInteger* create(SVGElement* contextElement, const QualifiedName& attributeName, SVGInteger* initialValue)
     {
         return new SVGAnimatedInteger(contextElement, attributeName, initialValue);
     }
@@ -59,7 +59,7 @@
     DECLARE_VIRTUAL_TRACE();
 
 protected:
-    SVGAnimatedInteger(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<SVGInteger> initialValue)
+    SVGAnimatedInteger(SVGElement* contextElement, const QualifiedName& attributeName, SVGInteger* initialValue)
         : SVGAnimatedProperty<SVGInteger>(contextElement, attributeName, initialValue)
         , m_parentIntegerOptionalInteger(nullptr)
     {
diff --git a/third_party/WebKit/Source/core/svg/SVGAnimatedIntegerOptionalInteger.cpp b/third_party/WebKit/Source/core/svg/SVGAnimatedIntegerOptionalInteger.cpp
index 0a1fc873..e9fc9011 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(RawPtr<SVGPropertyBase> value)
+void SVGAnimatedIntegerOptionalInteger::setAnimatedValue(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 78c46f3a8..8d4c35e6 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 RawPtr<SVGAnimatedIntegerOptionalInteger> create(SVGElement* contextElement, const QualifiedName& attributeName, float initialFirstValue = 0, float initialSecondValue = 0)
+    static SVGAnimatedIntegerOptionalInteger* create(SVGElement* contextElement, const QualifiedName& attributeName, float initialFirstValue = 0, float initialSecondValue = 0)
     {
         return new SVGAnimatedIntegerOptionalInteger(contextElement, attributeName, initialFirstValue, initialSecondValue);
     }
 
-    void setAnimatedValue(RawPtr<SVGPropertyBase>) override;
+    void setAnimatedValue(SVGPropertyBase*) override;
     bool needsSynchronizeAttribute() override;
     void animationEnded() override;
 
diff --git a/third_party/WebKit/Source/core/svg/SVGAnimatedLength.h b/third_party/WebKit/Source/core/svg/SVGAnimatedLength.h
index 06b2b103..ff630307 100644
--- a/third_party/WebKit/Source/core/svg/SVGAnimatedLength.h
+++ b/third_party/WebKit/Source/core/svg/SVGAnimatedLength.h
@@ -40,7 +40,7 @@
 class SVGAnimatedLength : public SVGAnimatedProperty<SVGLength>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static RawPtr<SVGAnimatedLength> create(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<SVGLength> initialValue)
+    static SVGAnimatedLength* create(SVGElement* contextElement, const QualifiedName& attributeName, SVGLength* initialValue)
     {
         return new SVGAnimatedLength(contextElement, attributeName, initialValue);
     }
@@ -49,7 +49,7 @@
     SVGParsingError setBaseValueAsString(const String&) override;
 
 protected:
-    SVGAnimatedLength(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<SVGLength> initialValue)
+    SVGAnimatedLength(SVGElement* contextElement, const QualifiedName& attributeName, 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 66cf5f1..bbbb40c 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 RawPtr<SVGAnimatedLengthList> create(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<SVGLengthList> initialValue)
+    static SVGAnimatedLengthList* create(SVGElement* contextElement, const QualifiedName& attributeName, SVGLengthList* initialValue)
     {
         return new SVGAnimatedLengthList(contextElement, attributeName, initialValue);
     }
 
 protected:
-    SVGAnimatedLengthList(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<SVGLengthList> initialValue)
+    SVGAnimatedLengthList(SVGElement* contextElement, const QualifiedName& attributeName, 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 1161b09..1311c2cb 100644
--- a/third_party/WebKit/Source/core/svg/SVGAnimatedNumber.h
+++ b/third_party/WebKit/Source/core/svg/SVGAnimatedNumber.h
@@ -44,7 +44,7 @@
 class SVGAnimatedNumber : public SVGAnimatedProperty<SVGNumber>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static RawPtr<SVGAnimatedNumber> create(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<SVGNumber> initialValue)
+    static SVGAnimatedNumber* create(SVGElement* contextElement, const QualifiedName& attributeName, SVGNumber* initialValue)
     {
         return new SVGAnimatedNumber(contextElement, attributeName, initialValue);
     }
@@ -59,7 +59,7 @@
     DECLARE_VIRTUAL_TRACE();
 
 protected:
-    SVGAnimatedNumber(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<SVGNumber> initialValue)
+    SVGAnimatedNumber(SVGElement* contextElement, const QualifiedName& attributeName, SVGNumber* initialValue)
         : SVGAnimatedProperty<SVGNumber>(contextElement, attributeName, initialValue)
         , m_parentNumberOptionalNumber(nullptr)
     {
diff --git a/third_party/WebKit/Source/core/svg/SVGAnimatedNumberList.h b/third_party/WebKit/Source/core/svg/SVGAnimatedNumberList.h
index 2a29380..6e970353 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 RawPtr<SVGAnimatedNumberList> create(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<SVGNumberList> initialValue)
+    static SVGAnimatedNumberList* create(SVGElement* contextElement, const QualifiedName& attributeName, SVGNumberList* initialValue)
     {
         return new SVGAnimatedNumberList(contextElement, attributeName, initialValue);
     }
 
 protected:
-    SVGAnimatedNumberList(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<SVGNumberList> initialValue)
+    SVGAnimatedNumberList(SVGElement* contextElement, const QualifiedName& attributeName, 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 61c190e..b92ad6b 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(RawPtr<SVGPropertyBase> value)
+void SVGAnimatedNumberOptionalNumber::setAnimatedValue(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 2c95209b..0bd70a3 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 RawPtr<SVGAnimatedNumberOptionalNumber> create(SVGElement* contextElement, const QualifiedName& attributeName, float initialFirstValue = 0, float initialSecondValue = 0)
+    static SVGAnimatedNumberOptionalNumber* create(SVGElement* contextElement, const QualifiedName& attributeName, float initialFirstValue = 0, float initialSecondValue = 0)
     {
         return new SVGAnimatedNumberOptionalNumber(contextElement, attributeName, initialFirstValue, initialSecondValue);
     }
 
-    void setAnimatedValue(RawPtr<SVGPropertyBase>) override;
+    void setAnimatedValue(SVGPropertyBase*) override;
     bool needsSynchronizeAttribute() override;
     void animationEnded() override;
 
diff --git a/third_party/WebKit/Source/core/svg/SVGAnimatedPath.h b/third_party/WebKit/Source/core/svg/SVGAnimatedPath.h
index 31537db..2b6b422 100644
--- a/third_party/WebKit/Source/core/svg/SVGAnimatedPath.h
+++ b/third_party/WebKit/Source/core/svg/SVGAnimatedPath.h
@@ -40,7 +40,7 @@
 public:
     ~SVGAnimatedPath() override;
 
-    static RawPtr<SVGAnimatedPath> create(SVGElement* contextElement, const QualifiedName& attributeName)
+    static SVGAnimatedPath* create(SVGElement* contextElement, const QualifiedName& attributeName)
     {
         return new SVGAnimatedPath(contextElement, attributeName);
     }
diff --git a/third_party/WebKit/Source/core/svg/SVGAnimatedPreserveAspectRatio.h b/third_party/WebKit/Source/core/svg/SVGAnimatedPreserveAspectRatio.h
index 5055e46..ca8c1045 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 RawPtr<SVGAnimatedPreserveAspectRatio> create(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<SVGPreserveAspectRatio> initialValue)
+    static SVGAnimatedPreserveAspectRatio* create(SVGElement* contextElement, const QualifiedName& attributeName, SVGPreserveAspectRatio* initialValue)
     {
         return new SVGAnimatedPreserveAspectRatio(contextElement, attributeName, initialValue);
     }
 
 protected:
-    SVGAnimatedPreserveAspectRatio(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<SVGPreserveAspectRatio> initialValue)
+    SVGAnimatedPreserveAspectRatio(SVGElement* contextElement, const QualifiedName& attributeName, 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 3aa7911..f3c1bbb 100644
--- a/third_party/WebKit/Source/core/svg/SVGAnimatedRect.h
+++ b/third_party/WebKit/Source/core/svg/SVGAnimatedRect.h
@@ -40,7 +40,7 @@
 class SVGAnimatedRect : public SVGAnimatedProperty<SVGRect>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static RawPtr<SVGAnimatedRect> create(SVGElement* contextElement, const QualifiedName& attributeName)
+    static SVGAnimatedRect* create(SVGElement* contextElement, const QualifiedName& attributeName)
     {
         return new SVGAnimatedRect(contextElement, attributeName);
     }
diff --git a/third_party/WebKit/Source/core/svg/SVGAnimatedString.h b/third_party/WebKit/Source/core/svg/SVGAnimatedString.h
index f77959b..2f543cd 100644
--- a/third_party/WebKit/Source/core/svg/SVGAnimatedString.h
+++ b/third_party/WebKit/Source/core/svg/SVGAnimatedString.h
@@ -40,7 +40,7 @@
 class SVGAnimatedString : public SVGAnimatedProperty<SVGString>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static RawPtr<SVGAnimatedString> create(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<SVGString> initialValue)
+    static SVGAnimatedString* create(SVGElement* contextElement, const QualifiedName& attributeName, SVGString* initialValue)
     {
         return new SVGAnimatedString(contextElement, attributeName, initialValue);
     }
@@ -50,7 +50,7 @@
     virtual String animVal();
 
 protected:
-    SVGAnimatedString(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<SVGString> initialValue)
+    SVGAnimatedString(SVGElement* contextElement, const QualifiedName& attributeName, 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 8175d7e..44c32bf 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 RawPtr<SVGAnimatedTransformList> create(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<SVGTransformList> initialValue)
+    static SVGAnimatedTransformList* create(SVGElement* contextElement, const QualifiedName& attributeName, SVGTransformList* initialValue)
     {
         return new SVGAnimatedTransformList(contextElement, attributeName, initialValue);
     }
 
 protected:
-    SVGAnimatedTransformList(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<SVGTransformList> initialValue)
+    SVGAnimatedTransformList(SVGElement* contextElement, const QualifiedName& attributeName, 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 2cfff16..92f1e19 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);
 }
 
-RawPtr<SVGPropertyBase> SVGAnimatedTypeAnimator::createPropertyForAnimation(const String& value)
+SVGPropertyBase* SVGAnimatedTypeAnimator::createPropertyForAnimation(const String& value)
 {
     ASSERT(m_contextElement);
 
@@ -97,24 +97,24 @@
     case AnimatedColor:
         return SVGColorProperty::create(value);
     case AnimatedNumber: {
-        RawPtr<SVGNumber> property = SVGNumber::create();
+        SVGNumber* property = SVGNumber::create();
         property->setValueAsString(value);
-        return property.release();
+        return property;
     }
     case AnimatedLength: {
-        RawPtr<SVGLength> property = SVGLength::create();
+        SVGLength* property = SVGLength::create();
         property->setValueAsString(value);
-        return property.release();
+        return property;
     }
     case AnimatedLengthList: {
-        RawPtr<SVGLengthList> property = SVGLengthList::create();
+        SVGLengthList* property = SVGLengthList::create();
         property->setValueAsString(value);
-        return property.release();
+        return property;
     }
     case AnimatedString: {
-        RawPtr<SVGString> property = SVGString::create();
+        SVGString* property = SVGString::create();
         property->setValueAsString(value);
-        return property.release();
+        return property;
     }
 
     // These types don't appear in the table in SVGElement::animatedPropertyTypeForCSSAttribute() and thus don't need support.
@@ -143,7 +143,7 @@
     return nullptr;
 }
 
-RawPtr<SVGPropertyBase> SVGAnimatedTypeAnimator::constructFromString(const String& value)
+SVGPropertyBase* SVGAnimatedTypeAnimator::constructFromString(const String& value)
 {
     return createPropertyForAnimation(value);
 }
@@ -164,10 +164,8 @@
 
 namespace {
 
-void setAnimatedValueOnAllTargetProperties(const SVGElementInstances& list, const QualifiedName& attributeName, RawPtr<SVGPropertyBase> passValue)
+void setAnimatedValueOnAllTargetProperties(const SVGElementInstances& list, const QualifiedName& attributeName, SVGPropertyBase* value)
 {
-    RawPtr<SVGPropertyBase> value = passValue;
-
     for (SVGElement* elementInstance : list) {
         if (SVGAnimatedPropertyBase* animatedProperty = elementInstance->propertyFromAttribute(attributeName))
             animatedProperty->setAnimatedValue(value);
@@ -176,17 +174,17 @@
 
 } // namespace
 
-RawPtr<SVGPropertyBase> SVGAnimatedTypeAnimator::resetAnimation(const SVGElementInstances& list)
+SVGPropertyBase* SVGAnimatedTypeAnimator::resetAnimation(const SVGElementInstances& list)
 {
     ASSERT(isAnimatingSVGDom());
-    RawPtr<SVGPropertyBase> animatedValue = m_animatedProperty->createAnimatedValue();
+    SVGPropertyBase* animatedValue = m_animatedProperty->createAnimatedValue();
     ASSERT(animatedValue->type() == m_type);
     setAnimatedValueOnAllTargetProperties(list, m_animatedProperty->attributeName(), animatedValue);
 
-    return animatedValue.release();
+    return animatedValue;
 }
 
-RawPtr<SVGPropertyBase> SVGAnimatedTypeAnimator::startAnimValAnimation(const SVGElementInstances& list)
+SVGPropertyBase* SVGAnimatedTypeAnimator::startAnimValAnimation(const SVGElementInstances& list)
 {
     ASSERT(isAnimatingSVGDom());
     SVGElement::InstanceUpdateBlocker blocker(m_contextElement);
@@ -208,7 +206,7 @@
     }
 }
 
-RawPtr<SVGPropertyBase> SVGAnimatedTypeAnimator::resetAnimValToBaseVal(const SVGElementInstances& list)
+SVGPropertyBase* SVGAnimatedTypeAnimator::resetAnimValToBaseVal(const SVGElementInstances& list)
 {
     SVGElement::InstanceUpdateBlocker blocker(m_contextElement);
 
@@ -223,7 +221,7 @@
     {
     }
 
-    RawPtr<SVGPropertyBase> operator()(SVGAnimationElement*, const String& value)
+    SVGPropertyBase* operator()(SVGAnimationElement*, const String& value)
     {
         return m_animator->createPropertyForAnimation(value);
     }
@@ -237,15 +235,15 @@
     ASSERT(m_animationElement);
     ASSERT(m_contextElement);
 
-    RawPtr<SVGPropertyBase> fromValue = m_animationElement->getAnimationMode() == ToAnimation ? animated : from;
-    RawPtr<SVGPropertyBase> toValue = to;
-    RawPtr<SVGPropertyBase> toAtEndOfDurationValue = toAtEndOfDuration;
-    RawPtr<SVGPropertyBase> animatedValue = animated;
+    SVGPropertyBase* fromValue = m_animationElement->getAnimationMode() == ToAnimation ? animated : from;
+    SVGPropertyBase* toValue = to;
+    SVGPropertyBase* toAtEndOfDurationValue = toAtEndOfDuration;
+    SVGPropertyBase* animatedValue = animated;
 
     // Apply CSS inheritance rules.
     ParsePropertyFromString parsePropertyFromString(this);
-    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);
+    m_animationElement->adjustForInheritance<SVGPropertyBase*, ParsePropertyFromString>(parsePropertyFromString, m_animationElement->fromPropertyValueType(), fromValue, m_contextElement);
+    m_animationElement->adjustForInheritance<SVGPropertyBase*, ParsePropertyFromString>(parsePropertyFromString, m_animationElement->toPropertyValueType(), toValue, m_contextElement);
 
     animatedValue->calculateAnimatedValue(m_animationElement, percentage, repeatCount, fromValue, toValue, toAtEndOfDurationValue, m_contextElement);
 }
@@ -253,8 +251,8 @@
 float SVGAnimatedTypeAnimator::calculateDistance(const String& fromString, const String& toString)
 {
     ASSERT(m_contextElement);
-    RawPtr<SVGPropertyBase> fromValue = createPropertyForAnimation(fromString);
-    RawPtr<SVGPropertyBase> toValue = createPropertyForAnimation(toString);
+    SVGPropertyBase* fromValue = createPropertyForAnimation(fromString);
+    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 c521e3d..37eabf60 100644
--- a/third_party/WebKit/Source/core/svg/SVGAnimatedTypeAnimator.h
+++ b/third_party/WebKit/Source/core/svg/SVGAnimatedTypeAnimator.h
@@ -46,11 +46,11 @@
     void clear();
     void reset(SVGElement* contextElement);
 
-    RawPtr<SVGPropertyBase> constructFromString(const String&);
+    SVGPropertyBase* constructFromString(const String&);
 
-    RawPtr<SVGPropertyBase> startAnimValAnimation(const SVGElementInstances&);
+    SVGPropertyBase* startAnimValAnimation(const SVGElementInstances&);
     void stopAnimValAnimation(const SVGElementInstances&);
-    RawPtr<SVGPropertyBase> resetAnimValToBaseVal(const SVGElementInstances&);
+    SVGPropertyBase* resetAnimValToBaseVal(const SVGElementInstances&);
 
     void calculateAnimatedValue(float percentage, unsigned repeatCount, SVGPropertyBase*, SVGPropertyBase*, SVGPropertyBase*, SVGPropertyBase*);
     float calculateDistance(const String& fromString, const String& toString);
@@ -68,8 +68,8 @@
 
 private:
     friend class ParsePropertyFromString;
-    RawPtr<SVGPropertyBase> createPropertyForAnimation(const String&);
-    RawPtr<SVGPropertyBase> resetAnimation(const SVGElementInstances&);
+    SVGPropertyBase* createPropertyForAnimation(const String&);
+    SVGPropertyBase* resetAnimation(const SVGElementInstances&);
 
     Member<SVGAnimationElement> m_animationElement;
     Member<SVGElement> m_contextElement;
diff --git a/third_party/WebKit/Source/core/svg/SVGBoolean.cpp b/third_party/WebKit/Source/core/svg/SVGBoolean.cpp
index 5e6da7d9..f8183aef 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(RawPtr<SVGPropertyBase>, SVGElement*)
+void SVGBoolean::add(SVGPropertyBase*, SVGElement*)
 {
     ASSERT_NOT_REACHED();
 }
 
-void SVGBoolean::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> from, RawPtr<SVGPropertyBase> to, RawPtr<SVGPropertyBase>, SVGElement*)
+void SVGBoolean::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, SVGPropertyBase* from, SVGPropertyBase* to, 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(RawPtr<SVGPropertyBase>, SVGElement*)
+float SVGBoolean::calculateDistance(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 e1f27ad0..7d9fe6f 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 RawPtr<SVGBoolean> create(bool value = false)
+    static SVGBoolean* create(bool value = false)
     {
         return new SVGBoolean(value);
     }
 
-    RawPtr<SVGBoolean> clone() const { return create(m_value); }
+    SVGBoolean* clone() const { return create(m_value); }
 
     String valueAsString() const override;
     SVGParsingError setValueAsString(const String&);
 
-    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;
+    void add(SVGPropertyBase*, SVGElement*) override;
+    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, SVGPropertyBase* from, SVGPropertyBase* to, SVGPropertyBase* toAtEndOfDurationValue, SVGElement*) override;
+    float calculateDistance(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/SVGCursorElement.cpp b/third_party/WebKit/Source/core/svg/SVGCursorElement.cpp
index 0ecdcc3..cc8426a 100644
--- a/third_party/WebKit/Source/core/svg/SVGCursorElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGCursorElement.cpp
@@ -56,7 +56,7 @@
 #if !ENABLE(OILPAN)
 void SVGCursorElement::removeClient(SVGElement* element)
 {
-    HashSet<RawPtr<SVGElement>>::iterator it = m_clients.find(element);
+    HashSet<SVGElement*>::iterator it = m_clients.find(element);
     if (it != m_clients.end()) {
         m_clients.remove(it);
         element->cursorElementRemoved();
diff --git a/third_party/WebKit/Source/core/svg/SVGDocumentExtensions.cpp b/third_party/WebKit/Source/core/svg/SVGDocumentExtensions.cpp
index 8d79a5f0..df5b5777 100644
--- a/third_party/WebKit/Source/core/svg/SVGDocumentExtensions.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGDocumentExtensions.cpp
@@ -253,13 +253,13 @@
     }
 }
 
-RawPtr<SVGDocumentExtensions::SVGPendingElements> SVGDocumentExtensions::removePendingResource(const AtomicString& id)
+SVGDocumentExtensions::SVGPendingElements* SVGDocumentExtensions::removePendingResource(const AtomicString& id)
 {
     ASSERT(m_pendingResources.contains(id));
     return m_pendingResources.take(id);
 }
 
-RawPtr<SVGDocumentExtensions::SVGPendingElements> SVGDocumentExtensions::removePendingResourceForRemoval(const AtomicString& id)
+SVGDocumentExtensions::SVGPendingElements* SVGDocumentExtensions::removePendingResourceForRemoval(const AtomicString& id)
 {
     ASSERT(m_pendingResourcesForRemoval.contains(id));
     return m_pendingResourcesForRemoval.take(id);
diff --git a/third_party/WebKit/Source/core/svg/SVGDocumentExtensions.h b/third_party/WebKit/Source/core/svg/SVGDocumentExtensions.h
index ae53906f..5ecbb1b2 100644
--- a/third_party/WebKit/Source/core/svg/SVGDocumentExtensions.h
+++ b/third_party/WebKit/Source/core/svg/SVGDocumentExtensions.h
@@ -105,7 +105,7 @@
     bool isElementPendingResource(Element*, const AtomicString& id) const;
     void clearHasPendingResourcesIfPossible(Element*);
     void removeElementFromPendingResources(Element*);
-    RawPtr<SVGPendingElements> removePendingResource(const AtomicString& id);
+    SVGPendingElements* removePendingResource(const AtomicString& id);
 
     void serviceAnimations(double monotonicAnimationStartTime);
 
@@ -114,7 +114,7 @@
     Element* removeElementFromPendingResourcesForRemoval(const AtomicString&);
 
 private:
-    RawPtr<SVGPendingElements> removePendingResourceForRemoval(const AtomicString&);
+    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 7ece432b..40e8a0e 100644
--- a/third_party/WebKit/Source/core/svg/SVGElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGElement.cpp
@@ -265,10 +265,10 @@
     }
 }
 
-void SVGElement::setWebAnimatedAttribute(const QualifiedName& attribute, RawPtr<SVGPropertyBase> value)
+void SVGElement::setWebAnimatedAttribute(const QualifiedName& attribute, SVGPropertyBase* value)
 {
     updateInstancesAnimatedAttribute(this, attribute, [&value](SVGAnimatedPropertyBase& animatedProperty) {
-        animatedProperty.setAnimatedValue(value.get());
+        animatedProperty.setAnimatedValue(value);
     });
     ensureSVGRareData()->webAnimatedAttributes().add(&attribute);
 }
@@ -715,11 +715,10 @@
     return AnimatedUnknown;
 }
 
-void SVGElement::addToPropertyMap(RawPtr<SVGAnimatedPropertyBase> passProperty)
+void SVGElement::addToPropertyMap(SVGAnimatedPropertyBase* property)
 {
-    RawPtr<SVGAnimatedPropertyBase> property(passProperty);
     QualifiedName attributeName = property->attributeName();
-    m_attributeToPropertyMap.set(attributeName, property.release());
+    m_attributeToPropertyMap.set(attributeName, property);
 }
 
 SVGAnimatedPropertyBase* SVGElement::propertyFromAttribute(const QualifiedName& attributeName) const
@@ -770,7 +769,7 @@
 
 bool SVGElement::addEventListenerInternal(const AtomicString& eventType, RawPtr<EventListener> prpListener, const EventListenerOptions& options)
 {
-    RawPtr<EventListener> listener = prpListener;
+    EventListener* listener = prpListener;
 
     // Add event listener to regular DOM element
     if (!Node::addEventListenerInternal(eventType, listener, options))
@@ -789,7 +788,7 @@
 
 bool SVGElement::removeEventListenerInternal(const AtomicString& eventType, RawPtr<EventListener> prpListener, const EventListenerOptions& options)
 {
-    RawPtr<EventListener> listener = prpListener;
+    EventListener* listener = prpListener;
 
     // Remove event listener from regular DOM element
     if (!Node::removeEventListenerInternal(eventType, listener, options))
@@ -841,7 +840,7 @@
         return;
 
     // Save the next parent to dispatch to in case dispatching the event mutates the tree.
-    RawPtr<Element> parent = parentOrShadowHostElement();
+    Element* parent = parentOrShadowHostElement();
     if (!sendSVGLoadEventIfPossible())
         return;
 
@@ -939,7 +938,7 @@
 
         elementData()->m_animatedSVGAttributesAreDirty = false;
     } else {
-        RawPtr<SVGAnimatedPropertyBase> property = m_attributeToPropertyMap.get(name);
+        SVGAnimatedPropertyBase* property = m_attributeToPropertyMap.get(name);
         if (property && property->needsSynchronizeAttribute())
             property->synchronizeAttribute();
     }
diff --git a/third_party/WebKit/Source/core/svg/SVGElement.h b/third_party/WebKit/Source/core/svg/SVGElement.h
index 1eb54660..e3ce9b15 100644
--- a/third_party/WebKit/Source/core/svg/SVGElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGElement.h
@@ -87,7 +87,7 @@
 
     void ensureAttributeAnimValUpdated();
 
-    void setWebAnimatedAttribute(const QualifiedName& attribute, RawPtr<SVGPropertyBase>);
+    void setWebAnimatedAttribute(const QualifiedName& attribute, SVGPropertyBase*);
     void clearWebAnimatedAttributes();
 
     SVGSVGElement* ownerSVGElement() const;
@@ -151,7 +151,7 @@
 
     void invalidateRelativeLengthClients(SubtreeLayoutScope* = 0);
 
-    void addToPropertyMap(RawPtr<SVGAnimatedPropertyBase>);
+    void addToPropertyMap(SVGAnimatedPropertyBase*);
 
     SVGAnimatedString* className() { return m_className.get(); }
 
@@ -283,7 +283,7 @@
     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 RawPtr<T>& node) { return is##thisType(node.get()); } \
+    template<typename T> inline bool is##thisType(const T* node) { return is##thisType(node); } \
     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/SVGEnumeration.cpp b/third_party/WebKit/Source/core/svg/SVGEnumeration.cpp
index ebe3f8f..df40647 100644
--- a/third_party/WebKit/Source/core/svg/SVGEnumeration.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGEnumeration.cpp
@@ -40,11 +40,11 @@
 {
 }
 
-RawPtr<SVGPropertyBase> SVGEnumerationBase::cloneForAnimation(const String& value) const
+SVGPropertyBase* SVGEnumerationBase::cloneForAnimation(const String& value) const
 {
-    RawPtr<SVGEnumerationBase> svgEnumeration = clone();
+    SVGEnumerationBase* svgEnumeration = clone();
     svgEnumeration->setValueAsString(value);
-    return svgEnumeration.release();
+    return svgEnumeration;
 }
 
 String SVGEnumerationBase::valueAsString() const
@@ -80,12 +80,12 @@
     return SVGParseStatus::ExpectedEnumeration;
 }
 
-void SVGEnumerationBase::add(RawPtr<SVGPropertyBase>, SVGElement*)
+void SVGEnumerationBase::add(SVGPropertyBase*, SVGElement*)
 {
     ASSERT_NOT_REACHED();
 }
 
-void SVGEnumerationBase::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> from, RawPtr<SVGPropertyBase> to, RawPtr<SVGPropertyBase>, SVGElement*)
+void SVGEnumerationBase::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, SVGPropertyBase* from, SVGPropertyBase* to, 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(RawPtr<SVGPropertyBase>, SVGElement*)
+float SVGEnumerationBase::calculateDistance(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 efc3885..60f6f157 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 RawPtr<SVGEnumerationBase> clone() const = 0;
-    RawPtr<SVGPropertyBase> cloneForAnimation(const String&) const override;
+    virtual SVGEnumerationBase* clone() const = 0;
+    SVGPropertyBase* cloneForAnimation(const String&) const override;
 
     String valueAsString() const override;
     SVGParsingError setValueAsString(const String&);
 
-    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;
+    void add(SVGPropertyBase*, SVGElement*) override;
+    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, SVGPropertyBase* from, SVGPropertyBase* to, SVGPropertyBase* toAtEndOfDurationValue, SVGElement*) override;
+    float calculateDistance(SVGPropertyBase* to, SVGElement*) override;
 
     static AnimatedPropertyType classType() { return AnimatedEnumeration; }
 
@@ -99,14 +99,14 @@
 template<typename Enum>
 class SVGEnumeration : public SVGEnumerationBase {
 public:
-    static RawPtr<SVGEnumeration<Enum>> create(Enum newValue)
+    static SVGEnumeration<Enum>* create(Enum newValue)
     {
         return new SVGEnumeration<Enum>(newValue);
     }
 
     ~SVGEnumeration() override {}
 
-    RawPtr<SVGEnumerationBase> clone() const override
+    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 ec42106..070ac3f 100644
--- a/third_party/WebKit/Source/core/svg/SVGFEBlendElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGFEBlendElement.cpp
@@ -134,18 +134,18 @@
     SVGFilterPrimitiveStandardAttributes::svgAttributeChanged(attrName);
 }
 
-RawPtr<FilterEffect> SVGFEBlendElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
+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);
 
-    RawPtr<FilterEffect> effect = FEBlend::create(filter, toWebBlendMode(m_mode->currentValue()->enumValue()));
+    FilterEffect* effect = FEBlend::create(filter, toWebBlendMode(m_mode->currentValue()->enumValue()));
     FilterEffectVector& inputEffects = effect->inputEffects();
     inputEffects.reserveCapacity(2);
     inputEffects.append(input1);
     inputEffects.append(input2);
-    return effect.release();
+    return effect;
 }
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGFEBlendElement.h b/third_party/WebKit/Source/core/svg/SVGFEBlendElement.h
index f6f61a1..b7cd40a 100644
--- a/third_party/WebKit/Source/core/svg/SVGFEBlendElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGFEBlendElement.h
@@ -65,7 +65,7 @@
 
     bool setFilterEffectAttribute(FilterEffect*, const QualifiedName& attrName) override;
     void svgAttributeChanged(const QualifiedName&) override;
-    RawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
+    FilterEffect* build(SVGFilterBuilder*, Filter*) override;
 
     Member<SVGAnimatedString> m_in1;
     Member<SVGAnimatedString> m_in2;
diff --git a/third_party/WebKit/Source/core/svg/SVGFEColorMatrixElement.cpp b/third_party/WebKit/Source/core/svg/SVGFEColorMatrixElement.cpp
index 62c15ad3..2dd476e 100644
--- a/third_party/WebKit/Source/core/svg/SVGFEColorMatrixElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGFEColorMatrixElement.cpp
@@ -88,16 +88,16 @@
     SVGFilterPrimitiveStandardAttributes::svgAttributeChanged(attrName);
 }
 
-RawPtr<FilterEffect> SVGFEColorMatrixElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
+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();
-    RawPtr<FilterEffect> effect = FEColorMatrix::create(filter, filterType, filterValues);
+    FilterEffect* effect = FEColorMatrix::create(filter, filterType, filterValues);
     effect->inputEffects().append(input1);
-    return effect.release();
+    return effect;
 }
 
 bool SVGFEColorMatrixElement::taintsOrigin(bool inputsTaintOrigin) const
diff --git a/third_party/WebKit/Source/core/svg/SVGFEColorMatrixElement.h b/third_party/WebKit/Source/core/svg/SVGFEColorMatrixElement.h
index c586d8f9..7280ef7 100644
--- a/third_party/WebKit/Source/core/svg/SVGFEColorMatrixElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGFEColorMatrixElement.h
@@ -47,7 +47,7 @@
 
     bool setFilterEffectAttribute(FilterEffect*, const QualifiedName&) override;
     void svgAttributeChanged(const QualifiedName&) override;
-    RawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
+    FilterEffect* build(SVGFilterBuilder*, Filter*) override;
     bool taintsOrigin(bool inputsTaintOrigin) const override;
 
     Member<SVGAnimatedNumberList> m_values;
diff --git a/third_party/WebKit/Source/core/svg/SVGFEComponentTransferElement.cpp b/third_party/WebKit/Source/core/svg/SVGFEComponentTransferElement.cpp
index 5231e5e..1182a308 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);
 }
 
-RawPtr<FilterEffect> SVGFEComponentTransferElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
+FilterEffect* SVGFEComponentTransferElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
 {
     FilterEffect* input1 = filterBuilder->getEffectById(AtomicString(m_in1->currentValue()->value()));
     ASSERT(input1);
@@ -78,9 +78,9 @@
             alpha = toSVGFEFuncAElement(*element).transferFunction();
     }
 
-    RawPtr<FilterEffect> effect = FEComponentTransfer::create(filter, red, green, blue, alpha);
+    FilterEffect* effect = FEComponentTransfer::create(filter, red, green, blue, alpha);
     effect->inputEffects().append(input1);
-    return effect.release();
+    return effect;
 }
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGFEComponentTransferElement.h b/third_party/WebKit/Source/core/svg/SVGFEComponentTransferElement.h
index 4c8bc8a..26d4a201 100644
--- a/third_party/WebKit/Source/core/svg/SVGFEComponentTransferElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGFEComponentTransferElement.h
@@ -39,7 +39,7 @@
     explicit SVGFEComponentTransferElement(Document&);
 
     void svgAttributeChanged(const QualifiedName&) override;
-    RawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
+    FilterEffect* build(SVGFilterBuilder*, Filter*) override;
 
     Member<SVGAnimatedString> m_in1;
 };
diff --git a/third_party/WebKit/Source/core/svg/SVGFECompositeElement.cpp b/third_party/WebKit/Source/core/svg/SVGFECompositeElement.cpp
index af760bbc..37aa025 100644
--- a/third_party/WebKit/Source/core/svg/SVGFECompositeElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGFECompositeElement.cpp
@@ -119,18 +119,18 @@
     SVGFilterPrimitiveStandardAttributes::svgAttributeChanged(attrName);
 }
 
-RawPtr<FilterEffect> SVGFECompositeElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
+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);
 
-    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());
+    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);
     inputEffects.append(input2);
-    return effect.release();
+    return effect;
 }
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGFECompositeElement.h b/third_party/WebKit/Source/core/svg/SVGFECompositeElement.h
index 73eef57..678f4f6f 100644
--- a/third_party/WebKit/Source/core/svg/SVGFECompositeElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGFECompositeElement.h
@@ -51,7 +51,7 @@
 
     bool setFilterEffectAttribute(FilterEffect*, const QualifiedName&) override;
     void svgAttributeChanged(const QualifiedName&) override;
-    RawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
+    FilterEffect* build(SVGFilterBuilder*, Filter*) override;
 
     Member<SVGAnimatedNumber> m_k1;
     Member<SVGAnimatedNumber> m_k2;
diff --git a/third_party/WebKit/Source/core/svg/SVGFEConvolveMatrixElement.cpp b/third_party/WebKit/Source/core/svg/SVGFEConvolveMatrixElement.cpp
index 87fdb36..550d3ddc 100644
--- a/third_party/WebKit/Source/core/svg/SVGFEConvolveMatrixElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGFEConvolveMatrixElement.cpp
@@ -42,7 +42,7 @@
 
 class SVGAnimatedOrder : public SVGAnimatedIntegerOptionalInteger {
 public:
-    static RawPtr<SVGAnimatedOrder> create(SVGElement* contextElement)
+    static SVGAnimatedOrder* create(SVGElement* contextElement)
     {
         return new SVGAnimatedOrder(contextElement);
     }
@@ -162,7 +162,7 @@
     SVGFilterPrimitiveStandardAttributes::svgAttributeChanged(attrName);
 }
 
-RawPtr<FilterEffect> SVGFEConvolveMatrixElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
+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()) {
-        RawPtr<SVGNumberList> kernelMatrix = m_kernelMatrix->currentValue();
+        SVGNumberList* kernelMatrix = m_kernelMatrix->currentValue();
         size_t kernelMatrixSize = kernelMatrix->length();
         for (size_t i = 0; i < kernelMatrixSize; ++i)
             divisorValue += kernelMatrix->at(i)->value();
@@ -194,12 +194,12 @@
             divisorValue = 1;
     }
 
-    RawPtr<FilterEffect> effect = FEConvolveMatrix::create(filter,
+    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());
     effect->inputEffects().append(input1);
-    return effect.release();
+    return effect;
 }
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGFEConvolveMatrixElement.h b/third_party/WebKit/Source/core/svg/SVGFEConvolveMatrixElement.h
index 2359487..41393fd89 100644
--- a/third_party/WebKit/Source/core/svg/SVGFEConvolveMatrixElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGFEConvolveMatrixElement.h
@@ -60,7 +60,7 @@
 
     bool setFilterEffectAttribute(FilterEffect*, const QualifiedName&) override;
     void svgAttributeChanged(const QualifiedName&) override;
-    RawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
+    FilterEffect* build(SVGFilterBuilder*, Filter*) override;
 
     Member<SVGAnimatedNumber> m_bias;
     Member<SVGAnimatedNumber> m_divisor;
diff --git a/third_party/WebKit/Source/core/svg/SVGFEDiffuseLightingElement.cpp b/third_party/WebKit/Source/core/svg/SVGFEDiffuseLightingElement.cpp
index 03d4a7b..f148e7c0 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);
 }
 
-RawPtr<FilterEffect> SVGFEDiffuseLightingElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
+FilterEffect* SVGFEDiffuseLightingElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
 {
     FilterEffect* input1 = filterBuilder->getEffectById(AtomicString(m_in1->currentValue()->value()));
     ASSERT(input1);
@@ -133,13 +133,13 @@
     const SVGFELightElement* lightNode = SVGFELightElement::findLightElement(*this);
     RefPtr<LightSource> lightSource = lightNode ? lightNode->lightSource(filter) : nullptr;
 
-    RawPtr<FilterEffect> effect = FEDiffuseLighting::create(filter,
+    FilterEffect* effect = FEDiffuseLighting::create(filter,
         color,
         m_surfaceScale->currentValue()->value(),
         m_diffuseConstant->currentValue()->value(),
         lightSource.release());
     effect->inputEffects().append(input1);
-    return effect.release();
+    return effect;
 }
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGFEDiffuseLightingElement.h b/third_party/WebKit/Source/core/svg/SVGFEDiffuseLightingElement.h
index abb5f95..9728b59 100644
--- a/third_party/WebKit/Source/core/svg/SVGFEDiffuseLightingElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGFEDiffuseLightingElement.h
@@ -49,7 +49,7 @@
 
     bool setFilterEffectAttribute(FilterEffect*, const QualifiedName&) override;
     void svgAttributeChanged(const QualifiedName&) override;
-    RawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
+    FilterEffect* build(SVGFilterBuilder*, Filter*) override;
 
     Member<SVGAnimatedNumber> m_diffuseConstant;
     Member<SVGAnimatedNumber> m_surfaceScale;
diff --git a/third_party/WebKit/Source/core/svg/SVGFEDisplacementMapElement.cpp b/third_party/WebKit/Source/core/svg/SVGFEDisplacementMapElement.cpp
index 78207441..b36f09e 100644
--- a/third_party/WebKit/Source/core/svg/SVGFEDisplacementMapElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGFEDisplacementMapElement.cpp
@@ -95,18 +95,18 @@
     SVGFilterPrimitiveStandardAttributes::svgAttributeChanged(attrName);
 }
 
-RawPtr<FilterEffect> SVGFEDisplacementMapElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
+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);
 
-    RawPtr<FilterEffect> effect = FEDisplacementMap::create(filter, m_xChannelSelector->currentValue()->enumValue(), m_yChannelSelector->currentValue()->enumValue(), m_scale->currentValue()->value());
+    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);
     inputEffects.append(input2);
-    return effect.release();
+    return effect;
 }
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGFEDisplacementMapElement.h b/third_party/WebKit/Source/core/svg/SVGFEDisplacementMapElement.h
index 2c85b7e..23d076e 100644
--- a/third_party/WebKit/Source/core/svg/SVGFEDisplacementMapElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGFEDisplacementMapElement.h
@@ -50,7 +50,7 @@
 
     bool setFilterEffectAttribute(FilterEffect*, const QualifiedName& attrName) override;
     void svgAttributeChanged(const QualifiedName&) override;
-    RawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
+    FilterEffect* build(SVGFilterBuilder*, Filter*) override;
 
     Member<SVGAnimatedNumber> m_scale;
     Member<SVGAnimatedString> m_in1;
diff --git a/third_party/WebKit/Source/core/svg/SVGFEDropShadowElement.cpp b/third_party/WebKit/Source/core/svg/SVGFEDropShadowElement.cpp
index 39e9270..a896e34a 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);
 }
 
-RawPtr<FilterEffect> SVGFEDropShadowElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
+FilterEffect* SVGFEDropShadowElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
 {
     LayoutObject* layoutObject = this->layoutObject();
     if (!layoutObject)
@@ -91,9 +91,9 @@
     // 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());
-    RawPtr<FilterEffect> effect = FEDropShadow::create(filter, stdDevX, stdDevY, m_dx->currentValue()->value(), m_dy->currentValue()->value(), color, opacity);
+    FilterEffect* effect = FEDropShadow::create(filter, stdDevX, stdDevY, m_dx->currentValue()->value(), m_dy->currentValue()->value(), color, opacity);
     effect->inputEffects().append(input1);
-    return effect.release();
+    return effect;
 }
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGFEDropShadowElement.h b/third_party/WebKit/Source/core/svg/SVGFEDropShadowElement.h
index c6788179..5c656966e 100644
--- a/third_party/WebKit/Source/core/svg/SVGFEDropShadowElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGFEDropShadowElement.h
@@ -47,7 +47,7 @@
     explicit SVGFEDropShadowElement(Document&);
 
     void svgAttributeChanged(const QualifiedName&) override;
-    RawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
+    FilterEffect* build(SVGFilterBuilder*, Filter*) override;
 
     static const AtomicString& stdDeviationXIdentifier();
     static const AtomicString& stdDeviationYIdentifier();
diff --git a/third_party/WebKit/Source/core/svg/SVGFEFloodElement.cpp b/third_party/WebKit/Source/core/svg/SVGFEFloodElement.cpp
index 19ce483..f0ce9e7a 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;
 }
 
-RawPtr<FilterEffect> SVGFEFloodElement::build(SVGFilterBuilder*, Filter* filter)
+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 4e70142..a62062a6 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;
-    RawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
+    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 161cbba3..3786904 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);
 }
 
-RawPtr<FilterEffect> SVGFEGaussianBlurElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
+FilterEffect* SVGFEGaussianBlurElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
 {
     FilterEffect* input1 = filterBuilder->getEffectById(AtomicString(m_in1->currentValue()->value()));
     ASSERT(input1);
@@ -75,9 +75,9 @@
     // => Clamp to non-negative.
     float stdDevX = std::max(0.0f, stdDeviationX()->currentValue()->value());
     float stdDevY = std::max(0.0f, stdDeviationY()->currentValue()->value());
-    RawPtr<FilterEffect> effect = FEGaussianBlur::create(filter, stdDevX, stdDevY);
+    FilterEffect* effect = FEGaussianBlur::create(filter, stdDevX, stdDevY);
     effect->inputEffects().append(input1);
-    return effect.release();
+    return effect;
 }
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGFEGaussianBlurElement.h b/third_party/WebKit/Source/core/svg/SVGFEGaussianBlurElement.h
index 07764bb8..a0f4270 100644
--- a/third_party/WebKit/Source/core/svg/SVGFEGaussianBlurElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGFEGaussianBlurElement.h
@@ -45,7 +45,7 @@
     explicit SVGFEGaussianBlurElement(Document&);
 
     void svgAttributeChanged(const QualifiedName&) override;
-    RawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
+    FilterEffect* build(SVGFilterBuilder*, Filter*) override;
 
     Member<SVGAnimatedNumberOptionalNumber> m_stdDeviation;
     Member<SVGAnimatedString> m_in1;
diff --git a/third_party/WebKit/Source/core/svg/SVGFEImageElement.cpp b/third_party/WebKit/Source/core/svg/SVGFEImageElement.cpp
index 5045772..e581146 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);
 }
 
-RawPtr<FilterEffect> SVGFEImageElement::build(SVGFilterBuilder*, Filter* filter)
+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 03d63a43..fec86880 100644
--- a/third_party/WebKit/Source/core/svg/SVGFEImageElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGFEImageElement.h
@@ -55,7 +55,7 @@
     void notifyFinished(Resource*) override;
     String debugName() const override { return "SVGFEImageElement"; }
 
-    RawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
+    FilterEffect* build(SVGFilterBuilder*, Filter*) override;
 
     void clearResourceReferences();
     void fetchImageResource();
diff --git a/third_party/WebKit/Source/core/svg/SVGFEMergeElement.cpp b/third_party/WebKit/Source/core/svg/SVGFEMergeElement.cpp
index 5d888bee..16b98df3 100644
--- a/third_party/WebKit/Source/core/svg/SVGFEMergeElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGFEMergeElement.cpp
@@ -35,16 +35,16 @@
 
 DEFINE_NODE_FACTORY(SVGFEMergeElement)
 
-RawPtr<FilterEffect> SVGFEMergeElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
+FilterEffect* SVGFEMergeElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
 {
-    RawPtr<FilterEffect> effect = FEMerge::create(filter);
+    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()));
         ASSERT(mergeEffect);
         mergeInputs.append(mergeEffect);
     }
-    return effect.release();
+    return effect;
 }
 
 bool SVGFEMergeElement::taintsOrigin(bool inputsTaintOrigin) const
diff --git a/third_party/WebKit/Source/core/svg/SVGFEMergeElement.h b/third_party/WebKit/Source/core/svg/SVGFEMergeElement.h
index e7bfd99..658eb9a 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&);
 
-    RawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
+    FilterEffect* build(SVGFilterBuilder*, Filter*) override;
     bool taintsOrigin(bool inputsTaintOrigin) const override;
 };
 
diff --git a/third_party/WebKit/Source/core/svg/SVGFEMorphologyElement.cpp b/third_party/WebKit/Source/core/svg/SVGFEMorphologyElement.cpp
index 8073cc3d..c3fd89f0 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);
 }
 
-RawPtr<FilterEffect> SVGFEMorphologyElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
+FilterEffect* SVGFEMorphologyElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
 {
     FilterEffect* input1 = filterBuilder->getEffectById(AtomicString(m_in1->currentValue()->value()));
 
@@ -104,9 +104,9 @@
     // (This is handled by FEMorphology)
     float xRadius = radiusX()->currentValue()->value();
     float yRadius = radiusY()->currentValue()->value();
-    RawPtr<FilterEffect> effect = FEMorphology::create(filter, m_svgOperator->currentValue()->enumValue(), xRadius, yRadius);
+    FilterEffect* effect = FEMorphology::create(filter, m_svgOperator->currentValue()->enumValue(), xRadius, yRadius);
     effect->inputEffects().append(input1);
-    return effect.release();
+    return effect;
 }
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGFEMorphologyElement.h b/third_party/WebKit/Source/core/svg/SVGFEMorphologyElement.h
index bd4941d..0149150 100644
--- a/third_party/WebKit/Source/core/svg/SVGFEMorphologyElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGFEMorphologyElement.h
@@ -47,7 +47,7 @@
 
     bool setFilterEffectAttribute(FilterEffect*, const QualifiedName&) override;
     void svgAttributeChanged(const QualifiedName&) override;
-    RawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
+    FilterEffect* build(SVGFilterBuilder*, Filter*) override;
 
     Member<SVGAnimatedNumberOptionalNumber> m_radius;
     Member<SVGAnimatedString> m_in1;
diff --git a/third_party/WebKit/Source/core/svg/SVGFEOffsetElement.cpp b/third_party/WebKit/Source/core/svg/SVGFEOffsetElement.cpp
index 0923ecdf..12d5052 100644
--- a/third_party/WebKit/Source/core/svg/SVGFEOffsetElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGFEOffsetElement.cpp
@@ -59,14 +59,14 @@
     SVGFilterPrimitiveStandardAttributes::svgAttributeChanged(attrName);
 }
 
-RawPtr<FilterEffect> SVGFEOffsetElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
+FilterEffect* SVGFEOffsetElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
 {
     FilterEffect* input1 = filterBuilder->getEffectById(AtomicString(m_in1->currentValue()->value()));
     ASSERT(input1);
 
-    RawPtr<FilterEffect> effect = FEOffset::create(filter, m_dx->currentValue()->value(), m_dy->currentValue()->value());
+    FilterEffect* effect = FEOffset::create(filter, m_dx->currentValue()->value(), m_dy->currentValue()->value());
     effect->inputEffects().append(input1);
-    return effect.release();
+    return effect;
 }
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGFEOffsetElement.h b/third_party/WebKit/Source/core/svg/SVGFEOffsetElement.h
index 7918d41..9cd8df8 100644
--- a/third_party/WebKit/Source/core/svg/SVGFEOffsetElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGFEOffsetElement.h
@@ -43,7 +43,7 @@
     explicit SVGFEOffsetElement(Document&);
 
     void svgAttributeChanged(const QualifiedName&) override;
-    RawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
+    FilterEffect* build(SVGFilterBuilder*, Filter*) override;
 
     Member<SVGAnimatedNumber> m_dx;
     Member<SVGAnimatedNumber> m_dy;
diff --git a/third_party/WebKit/Source/core/svg/SVGFESpecularLightingElement.cpp b/third_party/WebKit/Source/core/svg/SVGFESpecularLightingElement.cpp
index ec03733..e88369b 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);
 }
 
-RawPtr<FilterEffect> SVGFESpecularLightingElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
+FilterEffect* SVGFESpecularLightingElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
 {
     FilterEffect* input1 = filterBuilder->getEffectById(AtomicString(m_in1->currentValue()->value()));
     ASSERT(input1);
@@ -146,7 +146,7 @@
         m_specularExponent->currentValue()->value(),
         lightSource.release());
     effect->inputEffects().append(input1);
-    return effect.release();
+    return effect;
 }
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGFESpecularLightingElement.h b/third_party/WebKit/Source/core/svg/SVGFESpecularLightingElement.h
index 142e0f4..7bd8e48 100644
--- a/third_party/WebKit/Source/core/svg/SVGFESpecularLightingElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGFESpecularLightingElement.h
@@ -52,7 +52,7 @@
 
     bool setFilterEffectAttribute(FilterEffect*, const QualifiedName&) override;
     void svgAttributeChanged(const QualifiedName&) override;
-    RawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
+    FilterEffect* build(SVGFilterBuilder*, Filter*) override;
 
     Member<SVGAnimatedNumber> m_specularConstant;
     Member<SVGAnimatedNumber> m_specularExponent;
diff --git a/third_party/WebKit/Source/core/svg/SVGFETileElement.cpp b/third_party/WebKit/Source/core/svg/SVGFETileElement.cpp
index d972424..7d2f6d91 100644
--- a/third_party/WebKit/Source/core/svg/SVGFETileElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGFETileElement.cpp
@@ -52,14 +52,14 @@
     SVGFilterPrimitiveStandardAttributes::svgAttributeChanged(attrName);
 }
 
-RawPtr<FilterEffect> SVGFETileElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
+FilterEffect* SVGFETileElement::build(SVGFilterBuilder* filterBuilder, Filter* filter)
 {
     FilterEffect* input1 = filterBuilder->getEffectById(AtomicString(m_in1->currentValue()->value()));
     ASSERT(input1);
 
-    RawPtr<FilterEffect> effect = FETile::create(filter);
+    FilterEffect* effect = FETile::create(filter);
     effect->inputEffects().append(input1);
-    return effect.release();
+    return effect;
 }
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGFETileElement.h b/third_party/WebKit/Source/core/svg/SVGFETileElement.h
index d5c50de..589e3d7 100644
--- a/third_party/WebKit/Source/core/svg/SVGFETileElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGFETileElement.h
@@ -39,7 +39,7 @@
     explicit SVGFETileElement(Document&);
 
     void svgAttributeChanged(const QualifiedName&) override;
-    RawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
+    FilterEffect* build(SVGFilterBuilder*, Filter*) override;
 
     Member<SVGAnimatedString> m_in1;
 };
diff --git a/third_party/WebKit/Source/core/svg/SVGFETurbulenceElement.cpp b/third_party/WebKit/Source/core/svg/SVGFETurbulenceElement.cpp
index b104769..7e7db1ce 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);
 }
 
-RawPtr<FilterEffect> SVGFETurbulenceElement::build(SVGFilterBuilder*, Filter* filter)
+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 6a92757..fbbb50e 100644
--- a/third_party/WebKit/Source/core/svg/SVGFETurbulenceElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGFETurbulenceElement.h
@@ -59,7 +59,7 @@
 
     bool setFilterEffectAttribute(FilterEffect*, const QualifiedName& attrName) override;
     void svgAttributeChanged(const QualifiedName&) override;
-    RawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
+    FilterEffect* build(SVGFilterBuilder*, Filter*) override;
 
     Member<SVGAnimatedNumberOptionalNumber> m_baseFrequency;
     Member<SVGAnimatedNumber> m_seed;
diff --git a/third_party/WebKit/Source/core/svg/SVGFilterPrimitiveStandardAttributes.h b/third_party/WebKit/Source/core/svg/SVGFilterPrimitiveStandardAttributes.h
index 5d8465b..12f64fba 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 RawPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) = 0;
+    virtual FilterEffect* build(SVGFilterBuilder*, Filter*) = 0;
     // Returns true, if the new value is different from the old one.
     virtual bool setFilterEffectAttribute(FilterEffect*, const QualifiedName&);
 
diff --git a/third_party/WebKit/Source/core/svg/SVGFitToViewBox.cpp b/third_party/WebKit/Source/core/svg/SVGFitToViewBox.cpp
index 4f5e438c..5bef19e 100644
--- a/third_party/WebKit/Source/core/svg/SVGFitToViewBox.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGFitToViewBox.cpp
@@ -33,7 +33,7 @@
 
 class SVGAnimatedViewBoxRect : public SVGAnimatedRect {
 public:
-    static RawPtr<SVGAnimatedRect> create(SVGElement* contextElement)
+    static SVGAnimatedRect* create(SVGElement* contextElement)
     {
         return new SVGAnimatedViewBoxRect(contextElement);
     }
@@ -75,7 +75,7 @@
     visitor->trace(m_preserveAspectRatio);
 }
 
-AffineTransform SVGFitToViewBox::viewBoxToViewTransform(const FloatRect& viewBoxRect, RawPtr<SVGPreserveAspectRatio> preserveAspectRatio, float viewWidth, float viewHeight)
+AffineTransform SVGFitToViewBox::viewBoxToViewTransform(const FloatRect& viewBoxRect, 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 c4a049e..1cb49f4 100644
--- a/third_party/WebKit/Source/core/svg/SVGFitToViewBox.h
+++ b/third_party/WebKit/Source/core/svg/SVGFitToViewBox.h
@@ -41,7 +41,7 @@
         PropertyMapPolicySkip,
     };
 
-    static AffineTransform viewBoxToViewTransform(const FloatRect& viewBoxRect, RawPtr<SVGPreserveAspectRatio>, float viewWidth, float viewHeight);
+    static AffineTransform viewBoxToViewTransform(const FloatRect& viewBoxRect, SVGPreserveAspectRatio*, float viewWidth, float viewHeight);
 
     static bool isKnownAttribute(const QualifiedName&);
 
diff --git a/third_party/WebKit/Source/core/svg/SVGGeometryElement.cpp b/third_party/WebKit/Source/core/svg/SVGGeometryElement.cpp
index f285a60..96c68cda 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(RawPtr<SVGPointTearOff> point) const
+bool SVGGeometryElement::isPointInFill(SVGPointTearOff* point) const
 {
     document().updateLayoutIgnorePendingStylesheets();
 
@@ -58,7 +58,7 @@
     return toLayoutSVGShape(layoutObject())->nodeAtFloatPointInternal(request, point->target()->value(), hitRules);
 }
 
-bool SVGGeometryElement::isPointInStroke(RawPtr<SVGPointTearOff> point) const
+bool SVGGeometryElement::isPointInStroke(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 d1c4c6b2..04a8371 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(RawPtr<SVGPointTearOff>) const;
-    bool isPointInStroke(RawPtr<SVGPointTearOff>) const;
+    bool isPointInFill(SVGPointTearOff*) const;
+    bool isPointInStroke(SVGPointTearOff*) const;
 
     void toClipPath(Path&) const;
 
diff --git a/third_party/WebKit/Source/core/svg/SVGGraphicsElement.cpp b/third_party/WebKit/Source/core/svg/SVGGraphicsElement.cpp
index 6e284f6..15e9451 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);
 }
 
-RawPtr<SVGMatrixTearOff> SVGGraphicsElement::getCTMFromJavascript()
+SVGMatrixTearOff* SVGGraphicsElement::getCTMFromJavascript()
 {
     return SVGMatrixTearOff::create(getCTM());
 }
 
-RawPtr<SVGMatrixTearOff> SVGGraphicsElement::getScreenCTMFromJavascript()
+SVGMatrixTearOff* SVGGraphicsElement::getScreenCTMFromJavascript()
 {
     return SVGMatrixTearOff::create(getScreenCTM());
 }
@@ -222,7 +222,7 @@
     return layoutObject()->objectBoundingBox();
 }
 
-RawPtr<SVGRectTearOff> SVGGraphicsElement::getBBoxFromJavascript()
+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 d73bc682..3945f3f 100644
--- a/third_party/WebKit/Source/core/svg/SVGGraphicsElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGGraphicsElement.h
@@ -45,8 +45,8 @@
 
     AffineTransform getCTM(StyleUpdateStrategy = AllowStyleUpdate);
     AffineTransform getScreenCTM(StyleUpdateStrategy = AllowStyleUpdate);
-    RawPtr<SVGMatrixTearOff> getCTMFromJavascript();
-    RawPtr<SVGMatrixTearOff> getScreenCTMFromJavascript();
+    SVGMatrixTearOff* getCTMFromJavascript();
+    SVGMatrixTearOff* getScreenCTMFromJavascript();
 
     SVGElement* nearestViewportElement() const;
     SVGElement* farthestViewportElement() const;
@@ -57,7 +57,7 @@
     AffineTransform* animateMotionTransform() override;
 
     virtual FloatRect getBBox();
-    RawPtr<SVGRectTearOff> getBBoxFromJavascript();
+    SVGRectTearOff* getBBoxFromJavascript();
 
     bool isValid() const final { return SVGTests::isValid(); }
 
diff --git a/third_party/WebKit/Source/core/svg/SVGImageLoader.h b/third_party/WebKit/Source/core/svg/SVGImageLoader.h
index ce1ea622..1231261 100644
--- a/third_party/WebKit/Source/core/svg/SVGImageLoader.h
+++ b/third_party/WebKit/Source/core/svg/SVGImageLoader.h
@@ -28,7 +28,7 @@
 
 class SVGImageLoader final : public ImageLoader {
 public:
-    static RawPtr<SVGImageLoader> create(SVGImageElement* element)
+    static SVGImageLoader* create(SVGImageElement* element)
     {
         return new SVGImageLoader(element);
     }
diff --git a/third_party/WebKit/Source/core/svg/SVGInteger.cpp b/third_party/WebKit/Source/core/svg/SVGInteger.cpp
index 8f07eae..ce10fd1 100644
--- a/third_party/WebKit/Source/core/svg/SVGInteger.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGInteger.cpp
@@ -40,7 +40,7 @@
 {
 }
 
-RawPtr<SVGInteger> SVGInteger::clone() const
+SVGInteger* SVGInteger::clone() const
 {
     return create(m_value);
 }
@@ -63,25 +63,25 @@
     return valid ? SVGParseStatus::NoError : SVGParseStatus::ExpectedInteger;
 }
 
-void SVGInteger::add(RawPtr<SVGPropertyBase> other, SVGElement*)
+void SVGInteger::add(SVGPropertyBase* other, SVGElement*)
 {
     setValue(m_value + toSVGInteger(other)->value());
 }
 
-void SVGInteger::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> from, RawPtr<SVGPropertyBase> to, RawPtr<SVGPropertyBase> toAtEndOfDuration, SVGElement*)
+void SVGInteger::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, SVGPropertyBase* from, SVGPropertyBase* to, SVGPropertyBase* toAtEndOfDuration, SVGElement*)
 {
     ASSERT(animationElement);
 
-    RawPtr<SVGInteger> fromInteger = toSVGInteger(from);
-    RawPtr<SVGInteger> toInteger = toSVGInteger(to);
-    RawPtr<SVGInteger> toAtEndOfDurationInteger = toSVGInteger(toAtEndOfDuration);
+    SVGInteger* fromInteger = toSVGInteger(from);
+    SVGInteger* toInteger = toSVGInteger(to);
+    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(RawPtr<SVGPropertyBase> other, SVGElement*)
+float SVGInteger::calculateDistance(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 923138612..c2806d3 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 RawPtr<SVGInteger> create(int value = 0)
+    static SVGInteger* create(int value = 0)
     {
         return new SVGInteger(value);
     }
 
-    virtual RawPtr<SVGInteger> clone() const;
+    virtual 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(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;
+    void add(SVGPropertyBase*, SVGElement*) override;
+    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, SVGPropertyBase* from, SVGPropertyBase* to, SVGPropertyBase* toAtEndOfDurationValue, SVGElement* contextElement) override;
+    float calculateDistance(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 26e1ce1..2bfb2a06 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(RawPtr<SVGInteger> firstInteger, RawPtr<SVGInteger> secondInteger)
+SVGIntegerOptionalInteger::SVGIntegerOptionalInteger(SVGInteger* firstInteger, SVGInteger* secondInteger)
     : SVGPropertyBase(classType())
     , m_firstInteger(firstInteger)
     , m_secondInteger(secondInteger)
@@ -49,12 +49,12 @@
     SVGPropertyBase::trace(visitor);
 }
 
-RawPtr<SVGIntegerOptionalInteger> SVGIntegerOptionalInteger::clone() const
+SVGIntegerOptionalInteger* SVGIntegerOptionalInteger::clone() const
 {
     return SVGIntegerOptionalInteger::create(m_firstInteger->clone(), m_secondInteger->clone());
 }
 
-RawPtr<SVGPropertyBase> SVGIntegerOptionalInteger::cloneForAnimation(const String& value) const
+SVGPropertyBase* SVGIntegerOptionalInteger::cloneForAnimation(const String& value) const
 {
     float floatX, floatY;
     if (!parseNumberOptionalNumber(value, floatX, floatY)) {
@@ -90,21 +90,21 @@
     return parseStatus;
 }
 
-void SVGIntegerOptionalInteger::add(RawPtr<SVGPropertyBase> other, SVGElement*)
+void SVGIntegerOptionalInteger::add(SVGPropertyBase* other, SVGElement*)
 {
-    RawPtr<SVGIntegerOptionalInteger> otherIntegerOptionalInteger = toSVGIntegerOptionalInteger(other);
+    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, RawPtr<SVGPropertyBase> from, RawPtr<SVGPropertyBase> to, RawPtr<SVGPropertyBase> toAtEndOfDuration, SVGElement*)
+void SVGIntegerOptionalInteger::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, SVGPropertyBase* from, SVGPropertyBase* to, SVGPropertyBase* toAtEndOfDuration, SVGElement*)
 {
     ASSERT(animationElement);
 
-    RawPtr<SVGIntegerOptionalInteger> fromInteger = toSVGIntegerOptionalInteger(from);
-    RawPtr<SVGIntegerOptionalInteger> toInteger = toSVGIntegerOptionalInteger(to);
-    RawPtr<SVGIntegerOptionalInteger> toAtEndOfDurationInteger = toSVGIntegerOptionalInteger(toAtEndOfDuration);
+    SVGIntegerOptionalInteger* fromInteger = toSVGIntegerOptionalInteger(from);
+    SVGIntegerOptionalInteger* toInteger = toSVGIntegerOptionalInteger(to);
+    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(RawPtr<SVGPropertyBase> other, SVGElement*)
+float SVGIntegerOptionalInteger::calculateDistance(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 97de9f2..cab4a36 100644
--- a/third_party/WebKit/Source/core/svg/SVGIntegerOptionalInteger.h
+++ b/third_party/WebKit/Source/core/svg/SVGIntegerOptionalInteger.h
@@ -43,30 +43,30 @@
     typedef void TearOffType;
     typedef void PrimitiveType;
 
-    static RawPtr<SVGIntegerOptionalInteger> create(RawPtr<SVGInteger> firstInteger, RawPtr<SVGInteger> secondInteger)
+    static SVGIntegerOptionalInteger* create(SVGInteger* firstInteger, SVGInteger* secondInteger)
     {
         return new SVGIntegerOptionalInteger(firstInteger, secondInteger);
     }
 
-    RawPtr<SVGIntegerOptionalInteger> clone() const;
-    RawPtr<SVGPropertyBase> cloneForAnimation(const String&) const override;
+    SVGIntegerOptionalInteger* clone() const;
+    SVGPropertyBase* cloneForAnimation(const String&) const override;
 
     String valueAsString() const override;
     SVGParsingError setValueAsString(const String&);
 
-    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;
+    void add(SVGPropertyBase*, SVGElement*) override;
+    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, SVGPropertyBase* from, SVGPropertyBase* to, SVGPropertyBase* toAtEndOfDurationValue, SVGElement* contextElement) override;
+    float calculateDistance(SVGPropertyBase* to, SVGElement* contextElement) override;
 
     static AnimatedPropertyType classType() { return AnimatedIntegerOptionalInteger; }
 
-    RawPtr<SVGInteger> firstInteger() const { return m_firstInteger; }
-    RawPtr<SVGInteger> secondInteger() const { return m_secondInteger; }
+    SVGInteger* firstInteger() const { return m_firstInteger; }
+    SVGInteger* secondInteger() const { return m_secondInteger; }
 
     DECLARE_VIRTUAL_TRACE();
 
 protected:
-    SVGIntegerOptionalInteger(RawPtr<SVGInteger> firstInteger, RawPtr<SVGInteger> secondInteger);
+    SVGIntegerOptionalInteger(SVGInteger* firstInteger, SVGInteger* secondInteger);
 
     Member<SVGInteger> m_firstInteger;
     Member<SVGInteger> m_secondInteger;
diff --git a/third_party/WebKit/Source/core/svg/SVGLength.cpp b/third_party/WebKit/Source/core/svg/SVGLength.cpp
index 14ef498..60de422d9 100644
--- a/third_party/WebKit/Source/core/svg/SVGLength.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGLength.cpp
@@ -53,20 +53,20 @@
     SVGPropertyBase::trace(visitor);
 }
 
-RawPtr<SVGLength> SVGLength::clone() const
+SVGLength* SVGLength::clone() const
 {
     return new SVGLength(*this);
 }
 
-RawPtr<SVGPropertyBase> SVGLength::cloneForAnimation(const String& value) const
+SVGPropertyBase* SVGLength::cloneForAnimation(const String& value) const
 {
-    RawPtr<SVGLength> length = create();
+    SVGLength* length = create();
     length->m_unitMode = m_unitMode;
 
     if (length->setValueAsString(value) != SVGParseStatus::NoError)
         length->m_value = cssValuePool().createValue(0, CSSPrimitiveValue::UnitType::UserUnits);
 
-    return length.release();
+    return length;
 }
 
 bool SVGLength::operator==(const SVGLength& other) const
@@ -137,11 +137,11 @@
     }
 
     CSSParserContext svgParserContext(SVGAttributeMode, 0);
-    RawPtr<CSSValue> parsed = CSSParser::parseSingleValue(CSSPropertyX, string, svgParserContext);
+    CSSValue* parsed = CSSParser::parseSingleValue(CSSPropertyX, string, svgParserContext);
     if (!parsed || !parsed->isPrimitiveValue())
         return SVGParseStatus::ExpectedLength;
 
-    CSSPrimitiveValue* newValue = toCSSPrimitiveValue(parsed.get());
+    CSSPrimitiveValue* newValue = toCSSPrimitiveValue(parsed);
     // TODO(fs): Enable calc for SVG lengths
     if (newValue->isCalculated() || !isSupportedCSSUnitType(newValue->typeWithCalcResolved()))
         return SVGParseStatus::ExpectedLength;
@@ -227,7 +227,7 @@
     return s_noNegativeValuesSet.contains(attrName);
 }
 
-void SVGLength::add(RawPtr<SVGPropertyBase> other, SVGElement* contextElement)
+void SVGLength::add(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,
-    RawPtr<SVGPropertyBase> fromValue,
-    RawPtr<SVGPropertyBase> toValue,
-    RawPtr<SVGPropertyBase> toAtEndOfDurationValue,
+    SVGPropertyBase* fromValue,
+    SVGPropertyBase* toValue,
+    SVGPropertyBase* toAtEndOfDurationValue,
     SVGElement* contextElement)
 {
-    RawPtr<SVGLength> fromLength = toSVGLength(fromValue);
-    RawPtr<SVGLength> toLength = toSVGLength(toValue);
-    RawPtr<SVGLength> toAtEndOfDurationLength = toSVGLength(toAtEndOfDurationValue);
+    SVGLength* fromLength = toSVGLength(fromValue);
+    SVGLength* toLength = toSVGLength(toValue);
+    SVGLength* toAtEndOfDurationLength = toSVGLength(toAtEndOfDurationValue);
 
     SVGLengthContext lengthContext(contextElement);
     float animatedNumber = value(lengthContext);
@@ -257,10 +257,10 @@
     m_value = CSSPrimitiveValue::create(animatedNumber, newUnit);
 }
 
-float SVGLength::calculateDistance(RawPtr<SVGPropertyBase> toValue, SVGElement* contextElement)
+float SVGLength::calculateDistance(SVGPropertyBase* toValue, SVGElement* contextElement)
 {
     SVGLengthContext lengthContext(contextElement);
-    RawPtr<SVGLength> toLength = toSVGLength(toValue);
+    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 77c2f15..4d56045 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 RawPtr<SVGLength> create(SVGLengthMode mode = SVGLengthMode::Other)
+    static SVGLength* create(SVGLengthMode mode = SVGLengthMode::Other)
     {
         return new SVGLength(mode);
     }
 
     DECLARE_VIRTUAL_TRACE();
 
-    RawPtr<SVGLength> clone() const;
-    RawPtr<SVGPropertyBase> cloneForAnimation(const String&) const override;
+    SVGLength* clone() const;
+    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(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;
+    void add(SVGPropertyBase*, SVGElement*) override;
+    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, SVGPropertyBase* from, SVGPropertyBase* to, SVGPropertyBase* toAtEndOfDurationValue, SVGElement* contextElement) override;
+    float calculateDistance(SVGPropertyBase* to, SVGElement* contextElement) override;
 
     static AnimatedPropertyType classType() { return AnimatedLength; }
 
diff --git a/third_party/WebKit/Source/core/svg/SVGLengthList.cpp b/third_party/WebKit/Source/core/svg/SVGLengthList.cpp
index f1aa7c9..e3137de6 100644
--- a/third_party/WebKit/Source/core/svg/SVGLengthList.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGLengthList.cpp
@@ -35,18 +35,18 @@
 {
 }
 
-RawPtr<SVGLengthList> SVGLengthList::clone()
+SVGLengthList* SVGLengthList::clone()
 {
-    RawPtr<SVGLengthList> ret = SVGLengthList::create(m_mode);
+    SVGLengthList* ret = SVGLengthList::create(m_mode);
     ret->deepCopy(this);
-    return ret.release();
+    return ret;
 }
 
-RawPtr<SVGPropertyBase> SVGLengthList::cloneForAnimation(const String& value) const
+SVGPropertyBase* SVGLengthList::cloneForAnimation(const String& value) const
 {
-    RawPtr<SVGLengthList> ret = SVGLengthList::create(m_mode);
+    SVGLengthList* ret = SVGLengthList::create(m_mode);
     ret->setValueAsString(value);
-    return ret.release();
+    return ret;
 }
 
 String SVGLengthList::valueAsString() const
@@ -82,7 +82,7 @@
         if (valueString.isEmpty())
             break;
 
-        RawPtr<SVGLength> length = SVGLength::create(m_mode);
+        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(RawPtr<SVGPropertyBase> other, SVGElement* contextElement)
+void SVGLengthList::add(SVGPropertyBase* other, SVGElement* contextElement)
 {
-    RawPtr<SVGLengthList> otherList = toSVGLengthList(other);
+    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);
 }
 
-RawPtr<SVGLength> SVGLengthList::createPaddingItem() const
+SVGLength* SVGLengthList::createPaddingItem() const
 {
     return SVGLength::create(m_mode);
 }
 
-void SVGLengthList::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> fromValue, RawPtr<SVGPropertyBase> toValue, RawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement* contextElement)
+void SVGLengthList::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, SVGPropertyBase* fromValue, SVGPropertyBase* toValue, SVGPropertyBase* toAtEndOfDurationValue, SVGElement* contextElement)
 {
-    RawPtr<SVGLengthList> fromList = toSVGLengthList(fromValue);
-    RawPtr<SVGLengthList> toList = toSVGLengthList(toValue);
-    RawPtr<SVGLengthList> toAtEndOfDurationList = toSVGLengthList(toAtEndOfDurationValue);
+    SVGLengthList* fromList = toSVGLengthList(fromValue);
+    SVGLengthList* toList = toSVGLengthList(toValue);
+    SVGLengthList* toAtEndOfDurationList = toSVGLengthList(toAtEndOfDurationValue);
 
     SVGLengthContext lengthContext(contextElement);
     ASSERT(m_mode == SVGLength::lengthModeForAnimatedLengthAttribute(animationElement->attributeName()));
@@ -160,7 +160,7 @@
     }
 }
 
-float SVGLengthList::calculateDistance(RawPtr<SVGPropertyBase> to, SVGElement*)
+float SVGLengthList::calculateDistance(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 173dd2a..bdc00559 100644
--- a/third_party/WebKit/Source/core/svg/SVGLengthList.h
+++ b/third_party/WebKit/Source/core/svg/SVGLengthList.h
@@ -43,7 +43,7 @@
 public:
     typedef SVGLengthListTearOff TearOffType;
 
-    static RawPtr<SVGLengthList> create(SVGLengthMode mode = SVGLengthMode::Other)
+    static SVGLengthList* create(SVGLengthMode mode = SVGLengthMode::Other)
     {
         return new SVGLengthList(mode);
     }
@@ -53,14 +53,14 @@
     SVGParsingError setValueAsString(const String&);
 
     // SVGPropertyBase:
-    RawPtr<SVGPropertyBase> cloneForAnimation(const String&) const override;
-    RawPtr<SVGLengthList> clone() override;
+    SVGPropertyBase* cloneForAnimation(const String&) const override;
+    SVGLengthList* clone() override;
     String valueAsString() const override;
     SVGLengthMode unitMode() const { return m_mode; }
 
-    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;
+    void add(SVGPropertyBase*, SVGElement*) override;
+    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, SVGPropertyBase* fromValue, SVGPropertyBase* toValue, SVGPropertyBase* toAtEndOfDurationValue, SVGElement*) override;
+    float calculateDistance(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.
-    RawPtr<SVGLength> createPaddingItem() const override;
+    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 584f24ba..c70c156 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 RawPtr<SVGLengthListTearOff> create(RawPtr<SVGLengthList> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
+    static SVGLengthListTearOff* create(SVGLengthList* target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
     {
         return new SVGLengthListTearOff(target, contextElement, propertyIsAnimVal, attributeName);
     }
 
 private:
-    SVGLengthListTearOff(RawPtr<SVGLengthList> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
+    SVGLengthListTearOff(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 8724da5..06d0e83 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(RawPtr<SVGLength> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName)
+SVGLengthTearOff::SVGLengthTearOff(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 0ddddc6..22dc169 100644
--- a/third_party/WebKit/Source/core/svg/SVGLengthTearOff.h
+++ b/third_party/WebKit/Source/core/svg/SVGLengthTearOff.h
@@ -56,7 +56,7 @@
         SVG_LENGTHTYPE_PC = LengthTypePC
     };
 
-    static RawPtr<SVGLengthTearOff> create(RawPtr<SVGLength> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
+    static SVGLengthTearOff* create(SVGLength* target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
     {
         return new SVGLengthTearOff(target, contextElement, propertyIsAnimVal, attributeName);
     }
@@ -75,7 +75,7 @@
     bool hasExposedLengthUnit();
 
 private:
-    SVGLengthTearOff(RawPtr<SVGLength>, SVGElement* contextElement, PropertyIsAnimValType, const QualifiedName& attributeName = QualifiedName::null());
+    SVGLengthTearOff(SVGLength*, SVGElement* contextElement, PropertyIsAnimValType, const QualifiedName& attributeName = QualifiedName::null());
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGMarkerElement.cpp b/third_party/WebKit/Source/core/svg/SVGMarkerElement.cpp
index dcd0d8f..a35200d 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(RawPtr<SVGAngleTearOff> angle)
+void SVGMarkerElement::setOrientToAngle(SVGAngleTearOff* angle)
 {
     ASSERT(angle);
-    RawPtr<SVGAngle> target = angle->target();
+    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 2c61025..8df837d 100644
--- a/third_party/WebKit/Source/core/svg/SVGMarkerElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGMarkerElement.h
@@ -61,7 +61,7 @@
     AffineTransform viewBoxToViewTransform(float viewWidth, float viewHeight) const;
 
     void setOrientToAuto();
-    void setOrientToAngle(RawPtr<SVGAngleTearOff>);
+    void setOrientToAngle(SVGAngleTearOff*);
 
     SVGAnimatedLength* refX() const { return m_refX.get(); }
     SVGAnimatedLength* refY() const { return m_refY.get(); }
diff --git a/third_party/WebKit/Source/core/svg/SVGMatrixTearOff.cpp b/third_party/WebKit/Source/core/svg/SVGMatrixTearOff.cpp
index 24944114..e53cf0e6 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
 
-RawPtr<SVGMatrixTearOff> SVGMatrixTearOff::translate(double tx, double ty)
+SVGMatrixTearOff* SVGMatrixTearOff::translate(double tx, double ty)
 {
-    RawPtr<SVGMatrixTearOff> matrix = create(value());
+    SVGMatrixTearOff* matrix = create(value());
     matrix->mutableValue()->translate(tx, ty);
-    return matrix.release();
+    return matrix;
 }
 
-RawPtr<SVGMatrixTearOff> SVGMatrixTearOff::scale(double s)
+SVGMatrixTearOff* SVGMatrixTearOff::scale(double s)
 {
-    RawPtr<SVGMatrixTearOff> matrix = create(value());
+    SVGMatrixTearOff* matrix = create(value());
     matrix->mutableValue()->scale(s, s);
-    return matrix.release();
+    return matrix;
 }
 
-RawPtr<SVGMatrixTearOff> SVGMatrixTearOff::scaleNonUniform(double sx, double sy)
+SVGMatrixTearOff* SVGMatrixTearOff::scaleNonUniform(double sx, double sy)
 {
-    RawPtr<SVGMatrixTearOff> matrix = create(value());
+    SVGMatrixTearOff* matrix = create(value());
     matrix->mutableValue()->scale(sx, sy);
-    return matrix.release();
+    return matrix;
 }
 
-RawPtr<SVGMatrixTearOff> SVGMatrixTearOff::rotate(double d)
+SVGMatrixTearOff* SVGMatrixTearOff::rotate(double d)
 {
-    RawPtr<SVGMatrixTearOff> matrix = create(value());
+    SVGMatrixTearOff* matrix = create(value());
     matrix->mutableValue()->rotate(d);
-    return matrix.release();
+    return matrix;
 }
 
-RawPtr<SVGMatrixTearOff> SVGMatrixTearOff::flipX()
+SVGMatrixTearOff* SVGMatrixTearOff::flipX()
 {
-    RawPtr<SVGMatrixTearOff> matrix = create(value());
+    SVGMatrixTearOff* matrix = create(value());
     matrix->mutableValue()->flipX();
-    return matrix.release();
+    return matrix;
 }
 
-RawPtr<SVGMatrixTearOff> SVGMatrixTearOff::flipY()
+SVGMatrixTearOff* SVGMatrixTearOff::flipY()
 {
-    RawPtr<SVGMatrixTearOff> matrix = create(value());
+    SVGMatrixTearOff* matrix = create(value());
     matrix->mutableValue()->flipY();
-    return matrix.release();
+    return matrix;
 }
 
-RawPtr<SVGMatrixTearOff> SVGMatrixTearOff::skewX(double angle)
+SVGMatrixTearOff* SVGMatrixTearOff::skewX(double angle)
 {
-    RawPtr<SVGMatrixTearOff> matrix = create(value());
+    SVGMatrixTearOff* matrix = create(value());
     matrix->mutableValue()->skewX(angle);
-    return matrix.release();
+    return matrix;
 }
 
-RawPtr<SVGMatrixTearOff> SVGMatrixTearOff::skewY(double angle)
+SVGMatrixTearOff* SVGMatrixTearOff::skewY(double angle)
 {
-    RawPtr<SVGMatrixTearOff> matrix = create(value());
+    SVGMatrixTearOff* matrix = create(value());
     matrix->mutableValue()->skewY(angle);
-    return matrix.release();
+    return matrix;
 }
 
-RawPtr<SVGMatrixTearOff> SVGMatrixTearOff::multiply(RawPtr<SVGMatrixTearOff> other)
+SVGMatrixTearOff* SVGMatrixTearOff::multiply(SVGMatrixTearOff* other)
 {
-    RawPtr<SVGMatrixTearOff> matrix = create(value());
+    SVGMatrixTearOff* matrix = create(value());
     *matrix->mutableValue() *= other->value();
-    return matrix.release();
+    return matrix;
 }
 
-RawPtr<SVGMatrixTearOff> SVGMatrixTearOff::inverse(ExceptionState& exceptionState)
+SVGMatrixTearOff* SVGMatrixTearOff::inverse(ExceptionState& exceptionState)
 {
     AffineTransform transform = value().inverse();
     if (!value().isInvertible())
@@ -169,7 +169,7 @@
     return create(transform);
 }
 
-RawPtr<SVGMatrixTearOff> SVGMatrixTearOff::rotateFromVector(double x, double y, ExceptionState& exceptionState)
+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 db91ea0..a3c9254e 100644
--- a/third_party/WebKit/Source/core/svg/SVGMatrixTearOff.h
+++ b/third_party/WebKit/Source/core/svg/SVGMatrixTearOff.h
@@ -48,12 +48,12 @@
 class CORE_EXPORT SVGMatrixTearOff final : public GarbageCollectedFinalized<SVGMatrixTearOff>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static RawPtr<SVGMatrixTearOff> create(const AffineTransform& value)
+    static SVGMatrixTearOff* create(const AffineTransform& value)
     {
         return new SVGMatrixTearOff(value);
     }
 
-    static RawPtr<SVGMatrixTearOff> create(SVGTransformTearOff* target)
+    static SVGMatrixTearOff* create(SVGTransformTearOff* target)
     {
         return new SVGMatrixTearOff(target);
     }
@@ -74,17 +74,17 @@
     void setE(double, ExceptionState&);
     void setF(double, 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&);
+    SVGMatrixTearOff* translate(double tx, double ty);
+    SVGMatrixTearOff* scale(double);
+    SVGMatrixTearOff* scaleNonUniform(double sx, double sy);
+    SVGMatrixTearOff* rotate(double);
+    SVGMatrixTearOff* flipX();
+    SVGMatrixTearOff* flipY();
+    SVGMatrixTearOff* skewX(double);
+    SVGMatrixTearOff* skewY(double);
+    SVGMatrixTearOff* multiply(SVGMatrixTearOff*);
+    SVGMatrixTearOff* inverse(ExceptionState&);
+    SVGMatrixTearOff* rotateFromVector(double x, double y, ExceptionState&);
 
     SVGTransformTearOff* contextTransform() { return m_contextTransform; }
 
diff --git a/third_party/WebKit/Source/core/svg/SVGNumber.cpp b/third_party/WebKit/Source/core/svg/SVGNumber.cpp
index 6175888..8af6c68 100644
--- a/third_party/WebKit/Source/core/svg/SVGNumber.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGNumber.cpp
@@ -40,7 +40,7 @@
 {
 }
 
-RawPtr<SVGNumber> SVGNumber::clone() const
+SVGNumber* SVGNumber::clone() const
 {
     return create(m_value);
 }
@@ -80,28 +80,28 @@
     return parse(ptr, end);
 }
 
-void SVGNumber::add(RawPtr<SVGPropertyBase> other, SVGElement*)
+void SVGNumber::add(SVGPropertyBase* other, SVGElement*)
 {
     setValue(m_value + toSVGNumber(other)->value());
 }
 
-void SVGNumber::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> from, RawPtr<SVGPropertyBase> to, RawPtr<SVGPropertyBase> toAtEndOfDuration, SVGElement*)
+void SVGNumber::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, SVGPropertyBase* from, SVGPropertyBase* to, SVGPropertyBase* toAtEndOfDuration, SVGElement*)
 {
     ASSERT(animationElement);
 
-    RawPtr<SVGNumber> fromNumber = toSVGNumber(from);
-    RawPtr<SVGNumber> toNumber = toSVGNumber(to);
-    RawPtr<SVGNumber> toAtEndOfDurationNumber = toSVGNumber(toAtEndOfDuration);
+    SVGNumber* fromNumber = toSVGNumber(from);
+    SVGNumber* toNumber = toSVGNumber(to);
+    SVGNumber* toAtEndOfDurationNumber = toSVGNumber(toAtEndOfDuration);
 
     animationElement->animateAdditiveNumber(percentage, repeatCount, fromNumber->value(), toNumber->value(), toAtEndOfDurationNumber->value(), m_value);
 }
 
-float SVGNumber::calculateDistance(RawPtr<SVGPropertyBase> other, SVGElement*)
+float SVGNumber::calculateDistance(SVGPropertyBase* other, SVGElement*)
 {
     return fabsf(m_value - toSVGNumber(other)->value());
 }
 
-RawPtr<SVGNumber> SVGNumberAcceptPercentage::clone() const
+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 dc3a0263..1a433e6 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 RawPtr<SVGNumber> create(float value = 0.0f)
+    static SVGNumber* create(float value = 0.0f)
     {
         return new SVGNumber(value);
     }
 
-    virtual RawPtr<SVGNumber> clone() const;
+    virtual 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(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;
+    void add(SVGPropertyBase*, SVGElement*) override;
+    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, SVGPropertyBase* from, SVGPropertyBase* to, SVGPropertyBase* toAtEndOfDurationValue, SVGElement* contextElement) override;
+    float calculateDistance(SVGPropertyBase* to, SVGElement* contextElement) override;
 
     static AnimatedPropertyType classType() { return AnimatedNumber; }
 
@@ -80,12 +80,12 @@
 //   offset = "<number> | <percentage>"
 class SVGNumberAcceptPercentage final : public SVGNumber {
 public:
-    static RawPtr<SVGNumberAcceptPercentage> create(float value = 0)
+    static SVGNumberAcceptPercentage* create(float value = 0)
     {
         return new SVGNumberAcceptPercentage(value);
     }
 
-    RawPtr<SVGNumber> clone() const override;
+    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 0e156a1..9021729b 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(RawPtr<SVGPropertyBase> other, SVGElement* contextElement)
+void SVGNumberList::add(SVGPropertyBase* other, SVGElement* contextElement)
 {
-    RawPtr<SVGNumberList> otherList = toSVGNumberList(other);
+    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, RawPtr<SVGPropertyBase> fromValue, RawPtr<SVGPropertyBase> toValue, RawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement* contextElement)
+void SVGNumberList::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, SVGPropertyBase* fromValue, SVGPropertyBase* toValue, SVGPropertyBase* toAtEndOfDurationValue, SVGElement* contextElement)
 {
-    RawPtr<SVGNumberList> fromList = toSVGNumberList(fromValue);
-    RawPtr<SVGNumberList> toList = toSVGNumberList(toValue);
-    RawPtr<SVGNumberList> toAtEndOfDurationList = toSVGNumberList(toAtEndOfDurationValue);
+    SVGNumberList* fromList = toSVGNumberList(fromValue);
+    SVGNumberList* toList = toSVGNumberList(toValue);
+    SVGNumberList* toAtEndOfDurationList = toSVGNumberList(toAtEndOfDurationValue);
 
     size_t fromListSize = fromList->length();
     size_t toListSize = toList->length();
@@ -122,7 +122,7 @@
     }
 }
 
-float SVGNumberList::calculateDistance(RawPtr<SVGPropertyBase> to, SVGElement*)
+float SVGNumberList::calculateDistance(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 39ebb86..8fb5c51 100644
--- a/third_party/WebKit/Source/core/svg/SVGNumberList.h
+++ b/third_party/WebKit/Source/core/svg/SVGNumberList.h
@@ -43,7 +43,7 @@
 public:
     typedef SVGNumberListTearOff TearOffType;
 
-    static RawPtr<SVGNumberList> create()
+    static SVGNumberList* create()
     {
         return new SVGNumberList();
     }
@@ -55,9 +55,9 @@
     // SVGPropertyBase:
     String valueAsString() const 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;
+    void add(SVGPropertyBase*, SVGElement*) override;
+    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, SVGPropertyBase* fromValue, SVGPropertyBase* toValue, SVGPropertyBase* toAtEndOfDurationValue, SVGElement*) override;
+    float calculateDistance(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 6ea32d4..13e9514 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 RawPtr<SVGNumberListTearOff> create(RawPtr<SVGNumberList> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
+    static SVGNumberListTearOff* create(SVGNumberList* target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
     {
         return new SVGNumberListTearOff(target, contextElement, propertyIsAnimVal, attributeName);
     }
 
 private:
-    SVGNumberListTearOff(RawPtr<SVGNumberList> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
+    SVGNumberListTearOff(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 e4883882..6e8bac0e 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(RawPtr<SVGNumber> firstNumber, RawPtr<SVGNumber> secondNumber)
+SVGNumberOptionalNumber::SVGNumberOptionalNumber(SVGNumber* firstNumber, SVGNumber* secondNumber)
     : SVGPropertyBase(classType())
     , m_firstNumber(firstNumber)
     , m_secondNumber(secondNumber)
@@ -49,12 +49,12 @@
     SVGPropertyBase::trace(visitor);
 }
 
-RawPtr<SVGNumberOptionalNumber> SVGNumberOptionalNumber::clone() const
+SVGNumberOptionalNumber* SVGNumberOptionalNumber::clone() const
 {
     return SVGNumberOptionalNumber::create(m_firstNumber->clone(), m_secondNumber->clone());
 }
 
-RawPtr<SVGPropertyBase> SVGNumberOptionalNumber::cloneForAnimation(const String& value) const
+SVGPropertyBase* SVGNumberOptionalNumber::cloneForAnimation(const String& value) const
 {
     float x, y;
     if (!parseNumberOptionalNumber(value, x, y)) {
@@ -87,21 +87,21 @@
     return parseStatus;
 }
 
-void SVGNumberOptionalNumber::add(RawPtr<SVGPropertyBase> other, SVGElement*)
+void SVGNumberOptionalNumber::add(SVGPropertyBase* other, SVGElement*)
 {
-    RawPtr<SVGNumberOptionalNumber> otherNumberOptionalNumber = toSVGNumberOptionalNumber(other);
+    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, RawPtr<SVGPropertyBase> from, RawPtr<SVGPropertyBase> to, RawPtr<SVGPropertyBase> toAtEndOfDuration, SVGElement*)
+void SVGNumberOptionalNumber::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, SVGPropertyBase* from, SVGPropertyBase* to, SVGPropertyBase* toAtEndOfDuration, SVGElement*)
 {
     ASSERT(animationElement);
 
-    RawPtr<SVGNumberOptionalNumber> fromNumber = toSVGNumberOptionalNumber(from);
-    RawPtr<SVGNumberOptionalNumber> toNumber = toSVGNumberOptionalNumber(to);
-    RawPtr<SVGNumberOptionalNumber> toAtEndOfDurationNumber = toSVGNumberOptionalNumber(toAtEndOfDuration);
+    SVGNumberOptionalNumber* fromNumber = toSVGNumberOptionalNumber(from);
+    SVGNumberOptionalNumber* toNumber = toSVGNumberOptionalNumber(to);
+    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(RawPtr<SVGPropertyBase> other, SVGElement*)
+float SVGNumberOptionalNumber::calculateDistance(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 f5b79140..4b42b07e 100644
--- a/third_party/WebKit/Source/core/svg/SVGNumberOptionalNumber.h
+++ b/third_party/WebKit/Source/core/svg/SVGNumberOptionalNumber.h
@@ -43,30 +43,30 @@
     typedef void TearOffType;
     typedef void PrimitiveType;
 
-    static RawPtr<SVGNumberOptionalNumber> create(RawPtr<SVGNumber> firstNumber, RawPtr<SVGNumber> secondNumber)
+    static SVGNumberOptionalNumber* create(SVGNumber* firstNumber, SVGNumber* secondNumber)
     {
         return new SVGNumberOptionalNumber(firstNumber, secondNumber);
     }
 
-    RawPtr<SVGNumberOptionalNumber> clone() const;
-    RawPtr<SVGPropertyBase> cloneForAnimation(const String&) const override;
+    SVGNumberOptionalNumber* clone() const;
+    SVGPropertyBase* cloneForAnimation(const String&) const override;
 
     String valueAsString() const override;
     SVGParsingError setValueAsString(const String&);
 
-    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;
+    void add(SVGPropertyBase*, SVGElement*) override;
+    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, SVGPropertyBase* from, SVGPropertyBase* to, SVGPropertyBase* toAtEndOfDurationValue, SVGElement* contextElement) override;
+    float calculateDistance(SVGPropertyBase* to, SVGElement* contextElement) override;
 
     static AnimatedPropertyType classType() { return AnimatedNumberOptionalNumber; }
 
-    RawPtr<SVGNumber> firstNumber() const { return m_firstNumber; }
-    RawPtr<SVGNumber> secondNumber() const { return m_secondNumber; }
+    SVGNumber* firstNumber() const { return m_firstNumber; }
+    SVGNumber* secondNumber() const { return m_secondNumber; }
 
     DECLARE_VIRTUAL_TRACE();
 
 protected:
-    SVGNumberOptionalNumber(RawPtr<SVGNumber> firstNumber, RawPtr<SVGNumber> secondNumber);
+    SVGNumberOptionalNumber(SVGNumber* firstNumber, SVGNumber* secondNumber);
 
     Member<SVGNumber> m_firstNumber;
     Member<SVGNumber> m_secondNumber;
diff --git a/third_party/WebKit/Source/core/svg/SVGNumberTearOff.cpp b/third_party/WebKit/Source/core/svg/SVGNumberTearOff.cpp
index e508d4c..57919ce 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(RawPtr<SVGNumber> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName)
+SVGNumberTearOff::SVGNumberTearOff(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 d3eccb2..2f0b457e 100644
--- a/third_party/WebKit/Source/core/svg/SVGNumberTearOff.h
+++ b/third_party/WebKit/Source/core/svg/SVGNumberTearOff.h
@@ -40,7 +40,7 @@
 class SVGNumberTearOff : public SVGPropertyTearOff<SVGNumber>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static RawPtr<SVGNumberTearOff> create(RawPtr<SVGNumber> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
+    static SVGNumberTearOff* create(SVGNumber* target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
     {
         return new SVGNumberTearOff(target, contextElement, propertyIsAnimVal, attributeName);
     }
@@ -49,7 +49,7 @@
     float value() { return target()->value(); }
 
 protected:
-    SVGNumberTearOff(RawPtr<SVGNumber>, SVGElement* contextElement, PropertyIsAnimValType, const QualifiedName& attributeName = QualifiedName::null());
+    SVGNumberTearOff(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 cc82bb4..fea565a 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(RawPtr<CSSPathValue> pathValue)
+SVGPath::SVGPath(CSSPathValue* pathValue)
     : SVGPropertyBase(classType())
     , m_pathValue(pathValue)
 {
@@ -89,7 +89,7 @@
 }
 
 
-RawPtr<SVGPath> SVGPath::clone() const
+SVGPath* SVGPath::clone() const
 {
     return SVGPath::create(m_pathValue);
 }
@@ -102,14 +102,14 @@
     return parseStatus;
 }
 
-RawPtr<SVGPropertyBase> SVGPath::cloneForAnimation(const String& value) const
+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(RawPtr<SVGPropertyBase> other, SVGElement*)
+void SVGPath::add(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, RawPtr<SVGPropertyBase> fromValue, RawPtr<SVGPropertyBase> toValue, RawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement*)
+void SVGPath::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, SVGPropertyBase* fromValue, SVGPropertyBase* toValue, SVGPropertyBase* toAtEndOfDurationValue, SVGElement*)
 {
     ASSERT(animationElement);
     bool isToAnimation = animationElement->getAnimationMode() == ToAnimation;
@@ -167,7 +167,7 @@
     m_pathValue = CSSPathValue::create(newStream.release());
 }
 
-float SVGPath::calculateDistance(RawPtr<SVGPropertyBase> to, SVGElement*)
+float SVGPath::calculateDistance(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 0fcdd82..504be0b 100644
--- a/third_party/WebKit/Source/core/svg/SVGPath.h
+++ b/third_party/WebKit/Source/core/svg/SVGPath.h
@@ -42,11 +42,11 @@
 public:
     typedef void TearOffType;
 
-    static RawPtr<SVGPath> create()
+    static SVGPath* create()
     {
         return new SVGPath();
     }
-    static RawPtr<SVGPath> create(RawPtr<CSSPathValue> pathValue)
+    static SVGPath* create(CSSPathValue* pathValue)
     {
         return new SVGPath(pathValue);
     }
@@ -58,14 +58,14 @@
     CSSPathValue* pathValue() const { return m_pathValue.get(); }
 
     // SVGPropertyBase:
-    RawPtr<SVGPath> clone() const;
-    RawPtr<SVGPropertyBase> cloneForAnimation(const String&) const override;
+    SVGPath* clone() const;
+    SVGPropertyBase* cloneForAnimation(const String&) const override;
     String valueAsString() const override;
     SVGParsingError setValueAsString(const String&);
 
-    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;
+    void add(SVGPropertyBase*, SVGElement*) override;
+    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, SVGPropertyBase* fromValue, SVGPropertyBase* toValue, SVGPropertyBase* toAtEndOfDurationValue, SVGElement*) override;
+    float calculateDistance(SVGPropertyBase* to, SVGElement*) override;
 
     static AnimatedPropertyType classType() { return AnimatedPath; }
 
@@ -73,7 +73,7 @@
 
 private:
     SVGPath();
-    explicit SVGPath(RawPtr<CSSPathValue>);
+    explicit SVGPath(CSSPathValue*);
 
     Member<CSSPathValue> m_pathValue;
 };
diff --git a/third_party/WebKit/Source/core/svg/SVGPathElement.cpp b/third_party/WebKit/Source/core/svg/SVGPathElement.cpp
index 448e108..62b9e35 100644
--- a/third_party/WebKit/Source/core/svg/SVGPathElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGPathElement.cpp
@@ -32,7 +32,7 @@
 
 class SVGAnimatedPathLength final : public SVGAnimatedNumber {
 public:
-    static RawPtr<SVGAnimatedPathLength> create(SVGPathElement* contextElement)
+    static SVGAnimatedPathLength* create(SVGPathElement* contextElement)
     {
         return new SVGAnimatedPathLength(contextElement);
     }
@@ -107,7 +107,7 @@
     return SVGPathQuery(pathByteStream()).getTotalLength();
 }
 
-RawPtr<SVGPointTearOff> SVGPathElement::getPointAtLength(float length)
+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 63bd89069..921e1bed 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();
-    RawPtr<SVGPointTearOff> getPointAtLength(float distance);
+    SVGPointTearOff* getPointAtLength(float distance);
     unsigned getPathSegAtLength(float distance);
 
     SVGAnimatedPath* path() const { return m_path.get(); }
diff --git a/third_party/WebKit/Source/core/svg/SVGPoint.cpp b/third_party/WebKit/Source/core/svg/SVGPoint.cpp
index 5d551f51..2731f64 100644
--- a/third_party/WebKit/Source/core/svg/SVGPoint.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGPoint.cpp
@@ -47,7 +47,7 @@
 {
 }
 
-RawPtr<SVGPoint> SVGPoint::clone() const
+SVGPoint* SVGPoint::clone() const
 {
     return SVGPoint::create(m_value);
 }
@@ -103,19 +103,19 @@
     return builder.toString();
 }
 
-void SVGPoint::add(RawPtr<SVGPropertyBase> other, SVGElement*)
+void SVGPoint::add(SVGPropertyBase* other, SVGElement*)
 {
     // SVGPoint is not animated by itself
     ASSERT_NOT_REACHED();
 }
 
-void SVGPoint::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> fromValue, RawPtr<SVGPropertyBase> toValue, RawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement*)
+void SVGPoint::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, SVGPropertyBase* fromValue, SVGPropertyBase* toValue, SVGPropertyBase* toAtEndOfDurationValue, SVGElement*)
 {
     // SVGPoint is not animated by itself
     ASSERT_NOT_REACHED();
 }
 
-float SVGPoint::calculateDistance(RawPtr<SVGPropertyBase> to, SVGElement* contextElement)
+float SVGPoint::calculateDistance(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 a4eba21..a19cf75e 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 RawPtr<SVGPoint> create()
+    static SVGPoint* create()
     {
         return new SVGPoint();
     }
 
-    static RawPtr<SVGPoint> create(const FloatPoint& point)
+    static SVGPoint* create(const FloatPoint& point)
     {
         return new SVGPoint(point);
     }
 
-    RawPtr<SVGPoint> clone() const;
+    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(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;
+    void add(SVGPropertyBase*, SVGElement*) override;
+    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, SVGPropertyBase* from, SVGPropertyBase* to, SVGPropertyBase* toAtEndOfDurationValue, SVGElement* contextElement) override;
+    float calculateDistance(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 e974c39..affe22ae 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(RawPtr<SVGPropertyBase> other, SVGElement* contextElement)
+void SVGPointList::add(SVGPropertyBase* other, SVGElement* contextElement)
 {
-    RawPtr<SVGPointList> otherList = toSVGPointList(other);
+    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, RawPtr<SVGPropertyBase> fromValue, RawPtr<SVGPropertyBase> toValue, RawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement* contextElement)
+void SVGPointList::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, SVGPropertyBase* fromValue, SVGPropertyBase* toValue, SVGPropertyBase* toAtEndOfDurationValue, SVGElement* contextElement)
 {
-    RawPtr<SVGPointList> fromList = toSVGPointList(fromValue);
-    RawPtr<SVGPointList> toList = toSVGPointList(toValue);
-    RawPtr<SVGPointList> toAtEndOfDurationList = toSVGPointList(toAtEndOfDurationValue);
+    SVGPointList* fromList = toSVGPointList(fromValue);
+    SVGPointList* toList = toSVGPointList(toValue);
+    SVGPointList* toAtEndOfDurationList = toSVGPointList(toAtEndOfDurationValue);
 
     size_t fromPointListSize = fromList->length();
     size_t toPointListSize = toList->length();
@@ -144,7 +144,7 @@
     }
 }
 
-float SVGPointList::calculateDistance(RawPtr<SVGPropertyBase> to, SVGElement*)
+float SVGPointList::calculateDistance(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 5af5e26..45eaa0c 100644
--- a/third_party/WebKit/Source/core/svg/SVGPointList.h
+++ b/third_party/WebKit/Source/core/svg/SVGPointList.h
@@ -43,7 +43,7 @@
 public:
     typedef SVGPointListTearOff TearOffType;
 
-    static RawPtr<SVGPointList> create()
+    static SVGPointList* create()
     {
         return new SVGPointList();
     }
@@ -55,9 +55,9 @@
     // SVGPropertyBase:
     String valueAsString() const 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;
+    void add(SVGPropertyBase*, SVGElement*) override;
+    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, SVGPropertyBase* fromValue, SVGPropertyBase* toValue, SVGPropertyBase* toAtEndOfDurationValue, SVGElement*) override;
+    float calculateDistance(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 7d5b3f9..1803d3e 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 RawPtr<SVGPointListTearOff> create(RawPtr<SVGPointList> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
+    static SVGPointListTearOff* create(SVGPointList* target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
     {
         return new SVGPointListTearOff(target, contextElement, propertyIsAnimVal, attributeName);
     }
 
 private:
-    SVGPointListTearOff(RawPtr<SVGPointList> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
+    SVGPointListTearOff(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 68a948c9..91055c8 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(RawPtr<SVGPoint> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName)
+SVGPointTearOff::SVGPointTearOff(SVGPoint* target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName)
     : SVGPropertyTearOff<SVGPoint>(target, contextElement, propertyIsAnimVal, attributeName)
 {
 }
@@ -64,7 +64,7 @@
     commitChange();
 }
 
-RawPtr<SVGPointTearOff> SVGPointTearOff::matrixTransform(RawPtr<SVGMatrixTearOff> matrix)
+SVGPointTearOff* SVGPointTearOff::matrixTransform(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 4e0044b..c4c5526 100644
--- a/third_party/WebKit/Source/core/svg/SVGPointTearOff.h
+++ b/third_party/WebKit/Source/core/svg/SVGPointTearOff.h
@@ -42,7 +42,7 @@
 class SVGPointTearOff : public SVGPropertyTearOff<SVGPoint>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static RawPtr<SVGPointTearOff> create(RawPtr<SVGPoint> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
+    static SVGPointTearOff* create(SVGPoint* target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
     {
         return new SVGPointTearOff(target, contextElement, propertyIsAnimVal, attributeName);
     }
@@ -52,10 +52,10 @@
     float x() { return target()->x(); }
     float y() { return target()->y(); }
 
-    RawPtr<SVGPointTearOff> matrixTransform(RawPtr<SVGMatrixTearOff>);
+    SVGPointTearOff* matrixTransform(SVGMatrixTearOff*);
 
 protected:
-    SVGPointTearOff(RawPtr<SVGPoint>, SVGElement* contextElement, PropertyIsAnimValType, const QualifiedName& attributeName = QualifiedName::null());
+    SVGPointTearOff(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 ab1217b..90be6e9f 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;
 
-    RawPtr<SVGPointList> pointsValue = points()->currentValue();
+    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 d42ab32..2e051ed3 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(); }
 
-    RawPtr<SVGPointListTearOff> pointsFromJavascript() { return m_points->baseVal(); }
-    RawPtr<SVGPointListTearOff> animatedPoints() { return m_points->animVal(); }
+    SVGPointListTearOff* pointsFromJavascript() { return m_points->baseVal(); }
+    SVGPointListTearOff* animatedPoints() { return m_points->animVal(); }
 
     DECLARE_VIRTUAL_TRACE();
 
diff --git a/third_party/WebKit/Source/core/svg/SVGPreserveAspectRatio.cpp b/third_party/WebKit/Source/core/svg/SVGPreserveAspectRatio.cpp
index d6e561b..a4abd53d 100644
--- a/third_party/WebKit/Source/core/svg/SVGPreserveAspectRatio.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGPreserveAspectRatio.cpp
@@ -41,14 +41,14 @@
     m_meetOrSlice = SVG_MEETORSLICE_MEET;
 }
 
-RawPtr<SVGPreserveAspectRatio> SVGPreserveAspectRatio::clone() const
+SVGPreserveAspectRatio* SVGPreserveAspectRatio::clone() const
 {
-    RawPtr<SVGPreserveAspectRatio> preserveAspectRatio = create();
+    SVGPreserveAspectRatio* preserveAspectRatio = create();
 
     preserveAspectRatio->m_align = m_align;
     preserveAspectRatio->m_meetOrSlice = m_meetOrSlice;
 
-    return preserveAspectRatio.release();
+    return preserveAspectRatio;
 }
 
 template<typename CharType>
@@ -379,25 +379,25 @@
     return builder.toString();
 }
 
-void SVGPreserveAspectRatio::add(RawPtr<SVGPropertyBase> other, SVGElement*)
+void SVGPreserveAspectRatio::add(SVGPropertyBase* other, SVGElement*)
 {
     ASSERT_NOT_REACHED();
 }
 
-void SVGPreserveAspectRatio::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> fromValue, RawPtr<SVGPropertyBase> toValue, RawPtr<SVGPropertyBase>, SVGElement*)
+void SVGPreserveAspectRatio::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, SVGPropertyBase* fromValue, SVGPropertyBase* toValue, SVGPropertyBase*, SVGElement*)
 {
     ASSERT(animationElement);
 
     bool useToValue;
     animationElement->animateDiscreteType(percentage, false, true, useToValue);
 
-    RawPtr<SVGPreserveAspectRatio> preserveAspectRatioToUse = useToValue ? toSVGPreserveAspectRatio(toValue) : toSVGPreserveAspectRatio(fromValue);
+    SVGPreserveAspectRatio* preserveAspectRatioToUse = useToValue ? toSVGPreserveAspectRatio(toValue) : toSVGPreserveAspectRatio(fromValue);
 
     m_align = preserveAspectRatioToUse->m_align;
     m_meetOrSlice = preserveAspectRatioToUse->m_meetOrSlice;
 }
 
-float SVGPreserveAspectRatio::calculateDistance(RawPtr<SVGPropertyBase> toValue, SVGElement* contextElement)
+float SVGPreserveAspectRatio::calculateDistance(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 c2490ac..9849618 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 RawPtr<SVGPreserveAspectRatio> create()
+    static SVGPreserveAspectRatio* create()
     {
         return new SVGPreserveAspectRatio();
     }
 
-    virtual RawPtr<SVGPreserveAspectRatio> clone() const;
+    virtual 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(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;
+    void add(SVGPropertyBase*, SVGElement*) override;
+    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, SVGPropertyBase* from, SVGPropertyBase* to, SVGPropertyBase* toAtEndOfDurationValue, SVGElement* contextElement) override;
+    float calculateDistance(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 99e45d7d..189b2f8 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(RawPtr<SVGPreserveAspectRatio> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName)
+SVGPreserveAspectRatioTearOff::SVGPreserveAspectRatioTearOff(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 7500280..7fe2feb5 100644
--- a/third_party/WebKit/Source/core/svg/SVGPreserveAspectRatioTearOff.h
+++ b/third_party/WebKit/Source/core/svg/SVGPreserveAspectRatioTearOff.h
@@ -61,7 +61,7 @@
         SVG_MEETORSLICE_SLICE = SVGPreserveAspectRatio::SVG_MEETORSLICE_SLICE
     };
 
-    static RawPtr<SVGPreserveAspectRatioTearOff> create(RawPtr<SVGPreserveAspectRatio> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
+    static SVGPreserveAspectRatioTearOff* create(SVGPreserveAspectRatio* target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
     {
         return new SVGPreserveAspectRatioTearOff(target, contextElement, propertyIsAnimVal, attributeName);
     }
@@ -72,7 +72,7 @@
     unsigned short meetOrSlice() { return target()->meetOrSlice(); }
 
 private:
-    SVGPreserveAspectRatioTearOff(RawPtr<SVGPreserveAspectRatio>, SVGElement* contextElement, PropertyIsAnimValType, const QualifiedName& attributeName = QualifiedName::null());
+    SVGPreserveAspectRatioTearOff(SVGPreserveAspectRatio*, SVGElement* contextElement, PropertyIsAnimValType, const QualifiedName& attributeName = QualifiedName::null());
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/core/svg/SVGRect.cpp b/third_party/WebKit/Source/core/svg/SVGRect.cpp
index b9f7e30d..37149e65 100644
--- a/third_party/WebKit/Source/core/svg/SVGRect.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGRect.cpp
@@ -39,7 +39,7 @@
 {
 }
 
-RawPtr<SVGRect> SVGRect::clone() const
+SVGRect* SVGRect::clone() const
 {
     return SVGRect::create(m_value);
 }
@@ -104,17 +104,17 @@
     return builder.toString();
 }
 
-void SVGRect::add(RawPtr<SVGPropertyBase> other, SVGElement*)
+void SVGRect::add(SVGPropertyBase* other, SVGElement*)
 {
     m_value += toSVGRect(other)->value();
 }
 
-void SVGRect::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> fromValue, RawPtr<SVGPropertyBase> toValue, RawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement*)
+void SVGRect::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, SVGPropertyBase* fromValue, SVGPropertyBase* toValue, SVGPropertyBase* toAtEndOfDurationValue, SVGElement*)
 {
     ASSERT(animationElement);
-    RawPtr<SVGRect> fromRect = animationElement->getAnimationMode() == ToAnimation ? RawPtr<SVGRect>(this) : toSVGRect(fromValue);
-    RawPtr<SVGRect> toRect = toSVGRect(toValue);
-    RawPtr<SVGRect> toAtEndOfDurationRect = toSVGRect(toAtEndOfDurationValue);
+    SVGRect* fromRect = animationElement->getAnimationMode() == ToAnimation ? this : toSVGRect(fromValue);
+    SVGRect* toRect = toSVGRect(toValue);
+    SVGRect* toAtEndOfDurationRect = toSVGRect(toAtEndOfDurationValue);
 
     float animatedX = x();
     float animatedY = y();
@@ -128,7 +128,7 @@
     m_value = FloatRect(animatedX, animatedY, animatedWidth, animatedHeight);
 }
 
-float SVGRect::calculateDistance(RawPtr<SVGPropertyBase> to, SVGElement* contextElement)
+float SVGRect::calculateDistance(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 3008d71..267cbba 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 RawPtr<SVGRect> create()
+    static SVGRect* create()
     {
         return new SVGRect();
     }
 
-    static RawPtr<SVGRect> createInvalid()
+    static SVGRect* createInvalid()
     {
-        RawPtr<SVGRect> rect = new SVGRect();
+        SVGRect* rect = new SVGRect();
         rect->setInvalid();
-        return rect.release();
+        return rect;
     }
 
-    static RawPtr<SVGRect> create(const FloatRect& rect)
+    static SVGRect* create(const FloatRect& rect)
     {
         return new SVGRect(rect);
     }
 
-    RawPtr<SVGRect> clone() const;
+    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(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;
+    void add(SVGPropertyBase*, SVGElement*) override;
+    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, SVGPropertyBase* from, SVGPropertyBase* to, SVGPropertyBase* toAtEndOfDurationValue, SVGElement* contextElement) override;
+    float calculateDistance(SVGPropertyBase* to, SVGElement* contextElement) override;
 
     bool isValid() const { return m_isValid; }
     void setInvalid();
diff --git a/third_party/WebKit/Source/core/svg/SVGRectTearOff.cpp b/third_party/WebKit/Source/core/svg/SVGRectTearOff.cpp
index 3c05381..d9b278d0 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(RawPtr<SVGRect> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName)
+SVGRectTearOff::SVGRectTearOff(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 a99275ff..ce58c1b 100644
--- a/third_party/WebKit/Source/core/svg/SVGRectTearOff.h
+++ b/third_party/WebKit/Source/core/svg/SVGRectTearOff.h
@@ -40,7 +40,7 @@
 class SVGRectTearOff : public SVGPropertyTearOff<SVGRect>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static RawPtr<SVGRectTearOff> create(RawPtr<SVGRect> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
+    static SVGRectTearOff* create(SVGRect* target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
     {
         return new SVGRectTearOff(target, contextElement, propertyIsAnimVal, attributeName);
     }
@@ -55,7 +55,7 @@
     float height() { return target()->height(); }
 
 private:
-    SVGRectTearOff(RawPtr<SVGRect>, SVGElement* contextElement, PropertyIsAnimValType, const QualifiedName& attributeName = QualifiedName::null());
+    SVGRectTearOff(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 8a6f020b..b571c24 100644
--- a/third_party/WebKit/Source/core/svg/SVGResourceClient.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGResourceClient.cpp
@@ -17,10 +17,10 @@
 void SVGResourceClient::addFilterReferences(const FilterOperations& operations, const Document& document)
 {
     for (size_t i = 0; i < operations.size(); ++i) {
-        RawPtr<FilterOperation> filterOperation = operations.operations().at(i);
+        FilterOperation* filterOperation = operations.operations().at(i);
         if (filterOperation->type() != FilterOperation::REFERENCE)
             continue;
-        ReferenceFilterOperation* referenceFilterOperation = toReferenceFilterOperation(filterOperation.get());
+        ReferenceFilterOperation* referenceFilterOperation = toReferenceFilterOperation(filterOperation);
         DocumentResourceReference* documentReference = ReferenceFilterBuilder::documentResourceReference(referenceFilterOperation);
         DocumentResource* cachedSVGDocument = documentReference ? documentReference->document() : 0;
 
@@ -51,7 +51,7 @@
     }
     m_internalFilterReferences.clear();
 
-    for (RawPtr<DocumentResource> documentResource : m_externalFilterReferences)
+    for (DocumentResource* documentResource : m_externalFilterReferences)
         documentResource->removeClient(this);
     m_externalFilterReferences.clear();
 }
diff --git a/third_party/WebKit/Source/core/svg/SVGSVGElement.cpp b/third_party/WebKit/Source/core/svg/SVGSVGElement.cpp
index 144d97b..3b4703bb 100644
--- a/third_party/WebKit/Source/core/svg/SVGSVGElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGSVGElement.cpp
@@ -100,7 +100,7 @@
 #endif
 }
 
-RawPtr<SVGRectTearOff> SVGSVGElement::viewport() const
+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,7 +134,7 @@
 
 class SVGCurrentTranslateTearOff : public SVGPointTearOff {
 public:
-    static RawPtr<SVGCurrentTranslateTearOff> create(SVGSVGElement* contextElement)
+    static SVGCurrentTranslateTearOff* create(SVGSVGElement* contextElement)
     {
         return new SVGCurrentTranslateTearOff(contextElement);
     }
@@ -152,7 +152,7 @@
     }
 };
 
-RawPtr<SVGPointTearOff> SVGSVGElement::currentTranslateFromJavascript()
+SVGPointTearOff* SVGSVGElement::currentTranslateFromJavascript()
 {
     return SVGCurrentTranslateTearOff::create(this);
 }
@@ -339,7 +339,7 @@
     return result;
 }
 
-RawPtr<StaticNodeList> SVGSVGElement::collectIntersectionOrEnclosureList(const FloatRect& rect,
+StaticNodeList* SVGSVGElement::collectIntersectionOrEnclosureList(const FloatRect& rect,
     SVGElement* referenceElement, CheckIntersectionOrEnclosure mode) const
 {
     HeapVector<Member<Node>> nodes;
@@ -363,21 +363,21 @@
     return StaticNodeList::adopt(nodes);
 }
 
-RawPtr<StaticNodeList> SVGSVGElement::getIntersectionList(RawPtr<SVGRectTearOff> rect, SVGElement* referenceElement) const
+StaticNodeList* SVGSVGElement::getIntersectionList(SVGRectTearOff* rect, SVGElement* referenceElement) const
 {
     document().updateLayoutIgnorePendingStylesheets();
 
     return collectIntersectionOrEnclosureList(rect->target()->value(), referenceElement, CheckIntersection);
 }
 
-RawPtr<StaticNodeList> SVGSVGElement::getEnclosureList(RawPtr<SVGRectTearOff> rect, SVGElement* referenceElement) const
+StaticNodeList* SVGSVGElement::getEnclosureList(SVGRectTearOff* rect, SVGElement* referenceElement) const
 {
     document().updateLayoutIgnorePendingStylesheets();
 
     return collectIntersectionOrEnclosureList(rect->target()->value(), referenceElement, CheckEnclosure);
 }
 
-bool SVGSVGElement::checkIntersection(SVGElement* element, RawPtr<SVGRectTearOff> rect) const
+bool SVGSVGElement::checkIntersection(SVGElement* element, SVGRectTearOff* rect) const
 {
     ASSERT(element);
     document().updateLayoutIgnorePendingStylesheets();
@@ -385,7 +385,7 @@
     return checkIntersectionOrEnclosure(*element, rect->target()->value(), CheckIntersection);
 }
 
-bool SVGSVGElement::checkEnclosure(SVGElement* element, RawPtr<SVGRectTearOff> rect) const
+bool SVGSVGElement::checkEnclosure(SVGElement* element, SVGRectTearOff* rect) const
 {
     ASSERT(element);
     document().updateLayoutIgnorePendingStylesheets();
@@ -399,42 +399,42 @@
         frame->selection().clear();
 }
 
-RawPtr<SVGNumberTearOff> SVGSVGElement::createSVGNumber()
+SVGNumberTearOff* SVGSVGElement::createSVGNumber()
 {
     return SVGNumberTearOff::create(SVGNumber::create(0.0f), 0, PropertyIsNotAnimVal);
 }
 
-RawPtr<SVGLengthTearOff> SVGSVGElement::createSVGLength()
+SVGLengthTearOff* SVGSVGElement::createSVGLength()
 {
     return SVGLengthTearOff::create(SVGLength::create(), 0, PropertyIsNotAnimVal);
 }
 
-RawPtr<SVGAngleTearOff> SVGSVGElement::createSVGAngle()
+SVGAngleTearOff* SVGSVGElement::createSVGAngle()
 {
     return SVGAngleTearOff::create(SVGAngle::create(), 0, PropertyIsNotAnimVal);
 }
 
-RawPtr<SVGPointTearOff> SVGSVGElement::createSVGPoint()
+SVGPointTearOff* SVGSVGElement::createSVGPoint()
 {
     return SVGPointTearOff::create(SVGPoint::create(), 0, PropertyIsNotAnimVal);
 }
 
-RawPtr<SVGMatrixTearOff> SVGSVGElement::createSVGMatrix()
+SVGMatrixTearOff* SVGSVGElement::createSVGMatrix()
 {
     return SVGMatrixTearOff::create(AffineTransform());
 }
 
-RawPtr<SVGRectTearOff> SVGSVGElement::createSVGRect()
+SVGRectTearOff* SVGSVGElement::createSVGRect()
 {
     return SVGRectTearOff::create(SVGRect::create(), 0, PropertyIsNotAnimVal);
 }
 
-RawPtr<SVGTransformTearOff> SVGSVGElement::createSVGTransform()
+SVGTransformTearOff* SVGSVGElement::createSVGTransform()
 {
     return SVGTransformTearOff::create(SVGTransform::create(SVG_TRANSFORM_MATRIX), 0, PropertyIsNotAnimVal);
 }
 
-RawPtr<SVGTransformTearOff> SVGSVGElement::createSVGTransformFromMatrix(RawPtr<SVGMatrixTearOff> matrix)
+SVGTransformTearOff* SVGSVGElement::createSVGTransformFromMatrix(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);
-    RawPtr<SVGTransformList> transformList = m_viewSpec->transform();
+    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 5be9d233..5f5af2d 100644
--- a/third_party/WebKit/Source/core/svg/SVGSVGElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGSVGElement.h
@@ -55,7 +55,7 @@
 #endif
 
     // 'SVGSVGElement' functions
-    RawPtr<SVGRectTearOff> viewport() const;
+    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&);
-    RawPtr<SVGPointTearOff> currentTranslateFromJavascript();
+    SVGPointTearOff* currentTranslateFromJavascript();
 
     SMILTimeContainer* timeContainer() const { return m_timeContainer.get(); }
 
@@ -87,20 +87,20 @@
     void unsuspendRedrawAll() { }
     void forceRedraw() { }
 
-    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;
+    StaticNodeList* getIntersectionList(SVGRectTearOff*, SVGElement* referenceElement) const;
+    StaticNodeList* getEnclosureList(SVGRectTearOff*, SVGElement* referenceElement) const;
+    bool checkIntersection(SVGElement*, SVGRectTearOff*) const;
+    bool checkEnclosure(SVGElement*, SVGRectTearOff*) const;
     void deselectAll();
 
-    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>);
+    static SVGNumberTearOff* createSVGNumber();
+    static SVGLengthTearOff* createSVGLength();
+    static SVGAngleTearOff* createSVGAngle();
+    static SVGPointTearOff* createSVGPoint();
+    static SVGMatrixTearOff* createSVGMatrix();
+    static SVGRectTearOff* createSVGRect();
+    static SVGTransformTearOff* createSVGTransform();
+    static SVGTransformTearOff* createSVGTransformFromMatrix(SVGMatrixTearOff*);
 
     AffineTransform viewBoxToViewTransform(float viewWidth, float viewHeight) const;
 
@@ -148,7 +148,7 @@
     };
 
     bool checkIntersectionOrEnclosure(const SVGElement&, const FloatRect&, CheckIntersectionOrEnclosure) const;
-    RawPtr<StaticNodeList> collectIntersectionOrEnclosureList(const FloatRect&, SVGElement*, CheckIntersectionOrEnclosure) const;
+    StaticNodeList* collectIntersectionOrEnclosureList(const FloatRect&, SVGElement*, CheckIntersectionOrEnclosure) const;
 
     Member<SVGAnimatedLength> m_x;
     Member<SVGAnimatedLength> m_y;
diff --git a/third_party/WebKit/Source/core/svg/SVGScriptElement.cpp b/third_party/WebKit/Source/core/svg/SVGScriptElement.cpp
index 638e4178..d80afb1 100644
--- a/third_party/WebKit/Source/core/svg/SVGScriptElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGScriptElement.cpp
@@ -36,7 +36,7 @@
 {
 }
 
-RawPtr<SVGScriptElement> SVGScriptElement::create(Document& document, bool insertedByParser)
+SVGScriptElement* SVGScriptElement::create(Document& document, bool insertedByParser)
 {
     return new SVGScriptElement(document, insertedByParser, false);
 }
diff --git a/third_party/WebKit/Source/core/svg/SVGScriptElement.h b/third_party/WebKit/Source/core/svg/SVGScriptElement.h
index 3f77ad7..97d1022 100644
--- a/third_party/WebKit/Source/core/svg/SVGScriptElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGScriptElement.h
@@ -40,7 +40,7 @@
     DEFINE_WRAPPERTYPEINFO();
     USING_GARBAGE_COLLECTED_MIXIN(SVGScriptElement);
 public:
-    static RawPtr<SVGScriptElement> create(Document&, bool wasInsertedByParser);
+    static SVGScriptElement* create(Document&, bool wasInsertedByParser);
 
     ScriptLoader* loader() const { return m_loader.get(); }
 
diff --git a/third_party/WebKit/Source/core/svg/SVGStaticStringList.cpp b/third_party/WebKit/Source/core/svg/SVGStaticStringList.cpp
index 5c572e9f..1fcbfb3 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;
 }
 
-RawPtr<SVGPropertyBase> SVGStaticStringList::createAnimatedValue()
+SVGPropertyBase* SVGStaticStringList::createAnimatedValue()
 {
     ASSERT_NOT_REACHED();
     return nullptr;
 }
 
-void SVGStaticStringList::setAnimatedValue(RawPtr<SVGPropertyBase>)
+void SVGStaticStringList::setAnimatedValue(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 b6bcaac..2a39f53 100644
--- a/third_party/WebKit/Source/core/svg/SVGStaticStringList.h
+++ b/third_party/WebKit/Source/core/svg/SVGStaticStringList.h
@@ -43,7 +43,7 @@
 // Inherits SVGAnimatedPropertyBase to enable XML attribute synchronization, but this is never animated.
 class SVGStaticStringList final : public SVGAnimatedPropertyBase {
 public:
-    static RawPtr<SVGStaticStringList> create(SVGElement* contextElement, const QualifiedName& attributeName)
+    static SVGStaticStringList* create(SVGElement* contextElement, const QualifiedName& attributeName)
     {
         return new SVGStaticStringList(contextElement, attributeName);
     }
@@ -54,8 +54,8 @@
     SVGPropertyBase* currentValueBase() override;
     const SVGPropertyBase& baseValueBase() const override;
     bool isAnimating() const override;
-    RawPtr<SVGPropertyBase> createAnimatedValue() override;
-    void setAnimatedValue(RawPtr<SVGPropertyBase>) override;
+    SVGPropertyBase* createAnimatedValue() override;
+    void setAnimatedValue(SVGPropertyBase*) override;
     void animationEnded() override;
     bool needsSynchronizeAttribute() override;
 
diff --git a/third_party/WebKit/Source/core/svg/SVGString.cpp b/third_party/WebKit/Source/core/svg/SVGString.cpp
index f2b8329..dedf57b 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(RawPtr<SVGPropertyBase>, SVGElement*)
+void SVGString::add(SVGPropertyBase*, SVGElement*)
 {
     ASSERT_NOT_REACHED();
 }
 
-void SVGString::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> from, RawPtr<SVGPropertyBase> to, RawPtr<SVGPropertyBase>, SVGElement*)
+void SVGString::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, SVGPropertyBase* from, SVGPropertyBase* to, SVGPropertyBase*, SVGElement*)
 {
     ASSERT(animationElement);
 
@@ -38,7 +38,7 @@
     animationElement->animateDiscreteType<String>(percentage, fromString, toString, m_value);
 }
 
-float SVGString::calculateDistance(RawPtr<SVGPropertyBase>, SVGElement*)
+float SVGString::calculateDistance(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 ecd7d25..b2a6d168 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 RawPtr<SVGString> create()
+    static SVGString* create()
     {
         return new SVGString();
     }
 
-    static RawPtr<SVGString> create(const String& value)
+    static SVGString* create(const String& value)
     {
         return new SVGString(value);
     }
 
-    RawPtr<SVGString> clone() const { return create(m_value); }
-    RawPtr<SVGPropertyBase> cloneForAnimation(const String& value) const override
+    SVGString* clone() const { return create(m_value); }
+    SVGPropertyBase* cloneForAnimation(const String& value) const override
     {
         return create(value);
     }
@@ -65,9 +65,9 @@
         return SVGParseStatus::NoError;
     }
 
-    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;
+    void add(SVGPropertyBase*, SVGElement*) override;
+    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, SVGPropertyBase* from, SVGPropertyBase* to, SVGPropertyBase* toAtEndOfDurationValue, SVGElement*) override;
+    float calculateDistance(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 2ddcd53..19c5fb5 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(RawPtr<SVGPropertyBase> other, SVGElement* contextElement)
+void SVGStringList::add(SVGPropertyBase* other, SVGElement* contextElement)
 {
     // SVGStringList is never animated.
     ASSERT_NOT_REACHED();
 }
 
-void SVGStringList::calculateAnimatedValue(SVGAnimationElement*, float, unsigned, RawPtr<SVGPropertyBase>, RawPtr<SVGPropertyBase>, RawPtr<SVGPropertyBase>, SVGElement*)
+void SVGStringList::calculateAnimatedValue(SVGAnimationElement*, float, unsigned, SVGPropertyBase*, SVGPropertyBase*, SVGPropertyBase*, SVGElement*)
 {
     // SVGStringList is never animated.
     ASSERT_NOT_REACHED();
 }
 
-float SVGStringList::calculateDistance(RawPtr<SVGPropertyBase>, SVGElement*)
+float SVGStringList::calculateDistance(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 4aa2fd1..559257e 100644
--- a/third_party/WebKit/Source/core/svg/SVGStringList.h
+++ b/third_party/WebKit/Source/core/svg/SVGStringList.h
@@ -55,7 +55,7 @@
 public:
     typedef SVGStringListTearOff TearOffType;
 
-    static RawPtr<SVGStringList> create()
+    static SVGStringList* create()
     {
         return new SVGStringList();
     }
@@ -78,9 +78,9 @@
     SVGParsingError setValueAsString(const String&);
     String valueAsString() const 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;
+    void add(SVGPropertyBase*, SVGElement*) override;
+    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, SVGPropertyBase* fromValue, SVGPropertyBase* toValue, SVGPropertyBase* toAtEndOfDurationValue, SVGElement*) override;
+    float calculateDistance(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 c0252b1..dd5c012c 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(RawPtr<SVGStringList> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName)
+SVGStringListTearOff::SVGStringListTearOff(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 108ce9fd..bfe92f4 100644
--- a/third_party/WebKit/Source/core/svg/SVGStringListTearOff.h
+++ b/third_party/WebKit/Source/core/svg/SVGStringListTearOff.h
@@ -40,7 +40,7 @@
 class SVGStringListTearOff : public SVGPropertyTearOff<SVGStringList>, public ScriptWrappable {
     DEFINE_WRAPPERTYPEINFO();
 public:
-    static RawPtr<SVGStringListTearOff> create(RawPtr<SVGStringList> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
+    static SVGStringListTearOff* create(SVGStringList* target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
     {
         return new SVGStringListTearOff(target, contextElement, propertyIsAnimVal, attributeName);
     }
@@ -141,7 +141,7 @@
     }
 
 protected:
-    SVGStringListTearOff(RawPtr<SVGStringList>, SVGElement*, PropertyIsAnimValType, const QualifiedName&);
+    SVGStringListTearOff(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 24b7002..29971da 100644
--- a/third_party/WebKit/Source/core/svg/SVGStyleElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGStyleElement.cpp
@@ -50,7 +50,7 @@
 #endif
 }
 
-RawPtr<SVGStyleElement> SVGStyleElement::create(Document& document, bool createdByParser)
+SVGStyleElement* SVGStyleElement::create(Document& document, bool createdByParser)
 {
     return new SVGStyleElement(document, createdByParser);
 }
diff --git a/third_party/WebKit/Source/core/svg/SVGStyleElement.h b/third_party/WebKit/Source/core/svg/SVGStyleElement.h
index aa2b371..68f294b 100644
--- a/third_party/WebKit/Source/core/svg/SVGStyleElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGStyleElement.h
@@ -36,7 +36,7 @@
     DEFINE_WRAPPERTYPEINFO();
     USING_GARBAGE_COLLECTED_MIXIN(SVGStyleElement);
 public:
-    static RawPtr<SVGStyleElement> create(Document&, bool createdByParser);
+    static SVGStyleElement* create(Document&, bool createdByParser);
     ~SVGStyleElement() override;
 
     using StyleElement::sheet;
diff --git a/third_party/WebKit/Source/core/svg/SVGTextContentElement.cpp b/third_party/WebKit/Source/core/svg/SVGTextContentElement.cpp
index c5610a3..7569d2d 100644
--- a/third_party/WebKit/Source/core/svg/SVGTextContentElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGTextContentElement.cpp
@@ -50,7 +50,7 @@
 // It should return getComputedTextLength() when textLength is not specified manually.
 class SVGAnimatedTextLength final : public SVGAnimatedLength {
 public:
-    static RawPtr<SVGAnimatedTextLength> create(SVGTextContentElement* contextElement)
+    static SVGAnimatedTextLength* create(SVGTextContentElement* contextElement)
     {
         return new SVGAnimatedTextLength(contextElement);
     }
@@ -117,7 +117,7 @@
     return SVGTextQuery(layoutObject()).subStringLength(charnum, nchars);
 }
 
-RawPtr<SVGPointTearOff> SVGTextContentElement::getStartPositionOfChar(unsigned charnum, ExceptionState& exceptionState)
+SVGPointTearOff* SVGTextContentElement::getStartPositionOfChar(unsigned charnum, ExceptionState& exceptionState)
 {
     document().updateLayoutIgnorePendingStylesheets();
 
@@ -130,7 +130,7 @@
     return SVGPointTearOff::create(SVGPoint::create(point), 0, PropertyIsNotAnimVal);
 }
 
-RawPtr<SVGPointTearOff> SVGTextContentElement::getEndPositionOfChar(unsigned charnum, ExceptionState& exceptionState)
+SVGPointTearOff* SVGTextContentElement::getEndPositionOfChar(unsigned charnum, ExceptionState& exceptionState)
 {
     document().updateLayoutIgnorePendingStylesheets();
 
@@ -143,7 +143,7 @@
     return SVGPointTearOff::create(SVGPoint::create(point), 0, PropertyIsNotAnimVal);
 }
 
-RawPtr<SVGRectTearOff> SVGTextContentElement::getExtentOfChar(unsigned charnum, ExceptionState& exceptionState)
+SVGRectTearOff* SVGTextContentElement::getExtentOfChar(unsigned charnum, ExceptionState& exceptionState)
 {
     document().updateLayoutIgnorePendingStylesheets();
 
@@ -168,7 +168,7 @@
     return SVGTextQuery(layoutObject()).rotationOfCharacter(charnum);
 }
 
-int SVGTextContentElement::getCharNumAtPosition(RawPtr<SVGPointTearOff> point, ExceptionState& exceptionState)
+int SVGTextContentElement::getCharNumAtPosition(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 06459c2..37a7c00 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&);
-    RawPtr<SVGPointTearOff> getStartPositionOfChar(unsigned charnum, ExceptionState&);
-    RawPtr<SVGPointTearOff> getEndPositionOfChar(unsigned charnum, ExceptionState&);
-    RawPtr<SVGRectTearOff> getExtentOfChar(unsigned charnum, ExceptionState&);
+    SVGPointTearOff* getStartPositionOfChar(unsigned charnum, ExceptionState&);
+    SVGPointTearOff* getEndPositionOfChar(unsigned charnum, ExceptionState&);
+    SVGRectTearOff* getExtentOfChar(unsigned charnum, ExceptionState&);
     float getRotationOfChar(unsigned charnum, ExceptionState&);
-    int getCharNumAtPosition(RawPtr<SVGPointTearOff>, ExceptionState&);
+    int getCharNumAtPosition(SVGPointTearOff*, ExceptionState&);
     void selectSubString(unsigned charnum, unsigned nchars, ExceptionState&);
 
     static SVGTextContentElement* elementFromLineLayoutItem(const LineLayoutItem);
diff --git a/third_party/WebKit/Source/core/svg/SVGTitleElement.cpp b/third_party/WebKit/Source/core/svg/SVGTitleElement.cpp
index fb14fed5..98eaae9 100644
--- a/third_party/WebKit/Source/core/svg/SVGTitleElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGTitleElement.cpp
@@ -61,7 +61,6 @@
 
 void SVGTitleElement::setText(const String& value)
 {
-    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 c978e3f..ce934e84 100644
--- a/third_party/WebKit/Source/core/svg/SVGTransform.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGTransform.cpp
@@ -64,12 +64,12 @@
 {
 }
 
-RawPtr<SVGTransform> SVGTransform::clone() const
+SVGTransform* SVGTransform::clone() const
 {
     return new SVGTransform(m_transformType, m_angle, m_center, m_matrix);
 }
 
-RawPtr<SVGPropertyBase> SVGTransform::cloneForAnimation(const String&) const
+SVGPropertyBase* SVGTransform::cloneForAnimation(const String&) const
 {
     // SVGTransform is never animated.
     ASSERT_NOT_REACHED();
@@ -235,19 +235,19 @@
     return builder.toString();
 }
 
-void SVGTransform::add(RawPtr<SVGPropertyBase>, SVGElement*)
+void SVGTransform::add(SVGPropertyBase*, SVGElement*)
 {
     // SVGTransform is not animated by itself.
     ASSERT_NOT_REACHED();
 }
 
-void SVGTransform::calculateAnimatedValue(SVGAnimationElement*, float, unsigned, RawPtr<SVGPropertyBase>, RawPtr<SVGPropertyBase>, RawPtr<SVGPropertyBase>, SVGElement*)
+void SVGTransform::calculateAnimatedValue(SVGAnimationElement*, float, unsigned, SVGPropertyBase*, SVGPropertyBase*, SVGPropertyBase*, SVGElement*)
 {
     // SVGTransform is not animated by itself.
     ASSERT_NOT_REACHED();
 }
 
-float SVGTransform::calculateDistance(RawPtr<SVGPropertyBase>, SVGElement*)
+float SVGTransform::calculateDistance(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 55d3d27..906f656 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 RawPtr<SVGTransform> create()
+    static SVGTransform* create()
     {
         return new SVGTransform();
     }
 
-    static RawPtr<SVGTransform> create(SVGTransformType type, ConstructionMode mode = ConstructIdentityTransform)
+    static SVGTransform* create(SVGTransformType type, ConstructionMode mode = ConstructIdentityTransform)
     {
         return new SVGTransform(type, mode);
     }
 
-    static RawPtr<SVGTransform> create(const AffineTransform& affineTransform)
+    static SVGTransform* create(const AffineTransform& affineTransform)
     {
         return new SVGTransform(affineTransform);
     }
 
     ~SVGTransform() override;
 
-    RawPtr<SVGTransform> clone() const;
-    RawPtr<SVGPropertyBase> cloneForAnimation(const String&) const override;
+    SVGTransform* clone() const;
+    SVGPropertyBase* cloneForAnimation(const String&) const override;
 
     SVGTransformType transformType() const { return m_transformType; }
 
@@ -94,9 +94,9 @@
 
     String valueAsString() const 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;
+    void add(SVGPropertyBase*, SVGElement*) override;
+    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, SVGPropertyBase* from, SVGPropertyBase* to, SVGPropertyBase* toAtEndOfDurationValue, SVGElement* contextElement) override;
+    float calculateDistance(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 badf348e..b45cec26 100644
--- a/third_party/WebKit/Source/core/svg/SVGTransformDistance.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGTransformDistance.cpp
@@ -42,14 +42,11 @@
 {
 }
 
-SVGTransformDistance::SVGTransformDistance(RawPtr<SVGTransform> passFromSVGTransform, RawPtr<SVGTransform> passToSVGTransform)
+SVGTransformDistance::SVGTransformDistance(SVGTransform* fromSVGTransform, SVGTransform* toSVGTransform)
     : m_angle(0)
     , m_cx(0)
     , m_cy(0)
 {
-    RawPtr<SVGTransform> fromSVGTransform = passFromSVGTransform;
-    RawPtr<SVGTransform> toSVGTransform = passToSVGTransform;
-
     m_transformType = fromSVGTransform->transformType();
     ASSERT(m_transformType == toSVGTransform->transformType());
 
@@ -109,53 +106,50 @@
     return SVGTransformDistance();
 }
 
-RawPtr<SVGTransform> SVGTransformDistance::addSVGTransforms(RawPtr<SVGTransform> passFirst, RawPtr<SVGTransform> passSecond, unsigned repeatCount)
+SVGTransform* SVGTransformDistance::addSVGTransforms(SVGTransform* first, SVGTransform* second, unsigned repeatCount)
 {
-    RawPtr<SVGTransform> first = passFirst;
-    RawPtr<SVGTransform> second = passSecond;
     ASSERT(first->transformType() == second->transformType());
 
-    RawPtr<SVGTransform> transform = SVGTransform::create();
+    SVGTransform* transform = SVGTransform::create();
 
     switch (first->transformType()) {
     case SVG_TRANSFORM_MATRIX:
         ASSERT_NOT_REACHED();
     case SVG_TRANSFORM_UNKNOWN:
-        return transform.release();
+        return transform;
     case SVG_TRANSFORM_ROTATE: {
         transform->setRotate(first->angle() + second->angle() * repeatCount, first->rotationCenter().x() + second->rotationCenter().x() * repeatCount, first->rotationCenter().y() + second->rotationCenter().y() * repeatCount);
-        return transform.release();
+        return transform;
     }
     case SVG_TRANSFORM_TRANSLATE: {
         float dx = first->translate().x() + second->translate().x() * repeatCount;
         float dy = first->translate().y() + second->translate().y() * repeatCount;
         transform->setTranslate(dx, dy);
-        return transform.release();
+        return transform;
     }
     case SVG_TRANSFORM_SCALE: {
         FloatSize scale = second->scale();
         scale.scale(repeatCount);
         scale += first->scale();
         transform->setScale(scale.width(), scale.height());
-        return transform.release();
+        return transform;
     }
     case SVG_TRANSFORM_SKEWX:
         transform->setSkewX(first->angle() + second->angle() * repeatCount);
-        return transform.release();
+        return transform;
     case SVG_TRANSFORM_SKEWY:
         transform->setSkewY(first->angle() + second->angle() * repeatCount);
-        return transform.release();
+        return transform;
     }
     ASSERT_NOT_REACHED();
-    return transform.release();
+    return transform;
 }
 
-RawPtr<SVGTransform> SVGTransformDistance::addToSVGTransform(RawPtr<SVGTransform> passTransform) const
+SVGTransform* SVGTransformDistance::addToSVGTransform(SVGTransform* transform) const
 {
-    RawPtr<SVGTransform> transform = passTransform;
     ASSERT(m_transformType == transform->transformType() || m_transformType == SVG_TRANSFORM_UNKNOWN);
 
-    RawPtr<SVGTransform> newTransform = transform->clone();
+    SVGTransform* newTransform = transform->clone();
 
     switch (m_transformType) {
     case SVG_TRANSFORM_MATRIX:
@@ -166,29 +160,29 @@
         FloatPoint translation = transform->translate();
         translation += FloatSize::narrowPrecision(m_transform.e(), m_transform.f());
         newTransform->setTranslate(translation.x(), translation.y());
-        return newTransform.release();
+        return newTransform;
     }
     case SVG_TRANSFORM_SCALE: {
         FloatSize scale = transform->scale();
         scale += FloatSize::narrowPrecision(m_transform.a(), m_transform.d());
         newTransform->setScale(scale.width(), scale.height());
-        return newTransform.release();
+        return newTransform;
     }
     case SVG_TRANSFORM_ROTATE: {
         FloatPoint center = transform->rotationCenter();
         newTransform->setRotate(transform->angle() + m_angle, center.x() + m_cx, center.y() + m_cy);
-        return newTransform.release();
+        return newTransform;
     }
     case SVG_TRANSFORM_SKEWX:
         newTransform->setSkewX(transform->angle() + m_angle);
-        return newTransform.release();
+        return newTransform;
     case SVG_TRANSFORM_SKEWY:
         newTransform->setSkewY(transform->angle() + m_angle);
-        return newTransform.release();
+        return newTransform;
     }
 
     ASSERT_NOT_REACHED();
-    return newTransform.release();
+    return newTransform;
 }
 
 float SVGTransformDistance::distance() const
diff --git a/third_party/WebKit/Source/core/svg/SVGTransformDistance.h b/third_party/WebKit/Source/core/svg/SVGTransformDistance.h
index 4ceccfc2..96c3e75 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(RawPtr<SVGTransform> fromTransform, RawPtr<SVGTransform> toTransform);
+    SVGTransformDistance(SVGTransform* fromTransform, SVGTransform* toTransform);
 
     SVGTransformDistance scaledDistance(float scaleFactor) const;
-    RawPtr<SVGTransform> addToSVGTransform(RawPtr<SVGTransform>) const;
+    SVGTransform* addToSVGTransform(SVGTransform*) const;
 
-    static RawPtr<SVGTransform> addSVGTransforms(RawPtr<SVGTransform>, RawPtr<SVGTransform>, unsigned repeatCount = 1);
+    static SVGTransform* addSVGTransforms(SVGTransform*, 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 9a4a2a3e..32ac2b1 100644
--- a/third_party/WebKit/Source/core/svg/SVGTransformList.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGTransformList.cpp
@@ -40,7 +40,7 @@
 {
 }
 
-RawPtr<SVGTransform> SVGTransformList::consolidate()
+SVGTransform* SVGTransformList::consolidate()
 {
     AffineTransform matrix;
     if (!concatenate(matrix))
@@ -153,9 +153,9 @@
     return SVGParseStatus::NoError;
 }
 
-RawPtr<SVGTransform> createTransformFromValues(SVGTransformType type, const TransformArguments& arguments)
+SVGTransform* createTransformFromValues(SVGTransformType type, const TransformArguments& arguments)
 {
-    RawPtr<SVGTransform> transform = SVGTransform::create();
+    SVGTransform* transform = SVGTransform::create();
     switch (type) {
     case SVG_TRANSFORM_SKEWX:
         transform->setSkewX(arguments[0]);
@@ -190,7 +190,7 @@
         ASSERT_NOT_REACHED();
         break;
     }
-    return transform.release();
+    return transform;
 }
 
 } // namespace
@@ -299,13 +299,13 @@
     return parseError;
 }
 
-RawPtr<SVGPropertyBase> SVGTransformList::cloneForAnimation(const String& value) const
+SVGPropertyBase* SVGTransformList::cloneForAnimation(const String& value) const
 {
     ASSERT(RuntimeEnabledFeatures::webAnimationsSVGEnabled());
     return SVGListPropertyHelper::cloneForAnimation(value);
 }
 
-RawPtr<SVGTransformList> SVGTransformList::create(SVGTransformType transformType, const String& value)
+SVGTransformList* SVGTransformList::create(SVGTransformType transformType, const String& value)
 {
     TransformArguments arguments;
     bool atEndOfValue = false;
@@ -323,30 +323,30 @@
         atEndOfValue = !skipOptionalSVGSpaces(ptr, end);
     }
 
-    RawPtr<SVGTransformList> svgTransformList = SVGTransformList::create();
+    SVGTransformList* svgTransformList = SVGTransformList::create();
     if (atEndOfValue && status == SVGParseStatus::NoError)
         svgTransformList->append(createTransformFromValues(transformType, arguments));
-    return svgTransformList.release();
+    return svgTransformList;
 }
 
-void SVGTransformList::add(RawPtr<SVGPropertyBase> other, SVGElement* contextElement)
+void SVGTransformList::add(SVGPropertyBase* other, SVGElement* contextElement)
 {
     if (isEmpty())
         return;
 
-    RawPtr<SVGTransformList> otherList = toSVGTransformList(other);
+    SVGTransformList* otherList = toSVGTransformList(other);
     if (length() != otherList->length())
         return;
 
     ASSERT(length() == 1);
-    RawPtr<SVGTransform> fromTransform = at(0);
-    RawPtr<SVGTransform> toTransform = otherList->at(0);
+    SVGTransform* fromTransform = at(0);
+    SVGTransform* toTransform = otherList->at(0);
 
     ASSERT(fromTransform->transformType() == toTransform->transformType());
     initialize(SVGTransformDistance::addSVGTransforms(fromTransform, toTransform));
 }
 
-void SVGTransformList::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, RawPtr<SVGPropertyBase> fromValue, RawPtr<SVGPropertyBase> toValue, RawPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement* contextElement)
+void SVGTransformList::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, SVGPropertyBase* fromValue, SVGPropertyBase* toValue, 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.
-    RawPtr<SVGTransformList> fromList = isToAnimation ? RawPtr<SVGTransformList>(this) : toSVGTransformList(fromValue);
-    RawPtr<SVGTransformList> toList = toSVGTransformList(toValue);
-    RawPtr<SVGTransformList> toAtEndOfDurationList = toSVGTransformList(toAtEndOfDurationValue);
+    SVGTransformList* fromList = isToAnimation ? this : toSVGTransformList(fromValue);
+    SVGTransformList* toList = toSVGTransformList(toValue);
+    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.)
-    RawPtr<SVGTransform> toTransform = toList->at(0);
-    RawPtr<SVGTransform> effectiveFrom = nullptr;
+    SVGTransform* toTransform = toList->at(0);
+    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();
 
-    RawPtr<SVGTransform> currentTransform = SVGTransformDistance(effectiveFrom, toTransform).scaledDistance(percentage).addToSVGTransform(effectiveFrom);
+    SVGTransform* currentTransform = SVGTransformDistance(effectiveFrom, toTransform).scaledDistance(percentage).addToSVGTransform(effectiveFrom);
     if (animationElement->isAccumulated() && repeatCount) {
-        RawPtr<SVGTransform> effectiveToAtEnd = !toAtEndOfDurationList->isEmpty() ? RawPtr<SVGTransform>(toAtEndOfDurationList->at(0)) : SVGTransform::create(toTransform->transformType(), SVGTransform::ConstructZeroTransform);
+        SVGTransform* effectiveToAtEnd = !toAtEndOfDurationList->isEmpty() ? toAtEndOfDurationList->at(0) : SVGTransform::create(toTransform->transformType(), SVGTransform::ConstructZeroTransform);
         append(SVGTransformDistance::addSVGTransforms(currentTransform, effectiveToAtEnd, repeatCount));
     } else {
         append(currentTransform);
     }
 }
 
-float SVGTransformList::calculateDistance(RawPtr<SVGPropertyBase> toValue, SVGElement*)
+float SVGTransformList::calculateDistance(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.
 
-    RawPtr<SVGTransformList> toList = toSVGTransformList(toValue);
+    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 a8af43b..571cef07 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 RawPtr<SVGTransformList> create()
+    static SVGTransformList* create()
     {
         return new SVGTransformList();
     }
 
-    static RawPtr<SVGTransformList> create(SVGTransformType, const String&);
+    static SVGTransformList* create(SVGTransformType, const String&);
 
     ~SVGTransformList() override;
 
-    RawPtr<SVGTransform> consolidate();
+    SVGTransform* consolidate();
 
     bool concatenate(AffineTransform& result) const;
 
     // SVGPropertyBase:
-    RawPtr<SVGPropertyBase> cloneForAnimation(const String&) const override;
+    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(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;
+    void add(SVGPropertyBase*, SVGElement*) override;
+    void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, SVGPropertyBase* fromValue, SVGPropertyBase* toValue, SVGPropertyBase* toAtEndOfDurationValue, SVGElement*) override;
+    float calculateDistance(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 b70d4f9..7c56976 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(RawPtr<SVGTransformList> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
+SVGTransformListTearOff::SVGTransformListTearOff(SVGTransformList* target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
     : SVGListPropertyTearOffHelper<SVGTransformListTearOff, SVGTransformList>(target, contextElement, propertyIsAnimVal, attributeName)
 {
 }
@@ -45,12 +45,12 @@
 {
 }
 
-RawPtr<SVGTransformTearOff> SVGTransformListTearOff::createSVGTransformFromMatrix(RawPtr<SVGMatrixTearOff> matrix) const
+SVGTransformTearOff* SVGTransformListTearOff::createSVGTransformFromMatrix(SVGMatrixTearOff* matrix) const
 {
     return SVGSVGElement::createSVGTransformFromMatrix(matrix);
 }
 
-RawPtr<SVGTransformTearOff> SVGTransformListTearOff::consolidate(ExceptionState& exceptionState)
+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 d3ee4fd..33a4e97 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 RawPtr<SVGTransformListTearOff> create(RawPtr<SVGTransformList> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
+    static SVGTransformListTearOff* create(SVGTransformList* target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
     {
         return new SVGTransformListTearOff(target, contextElement, propertyIsAnimVal, attributeName);
     }
 
     ~SVGTransformListTearOff() override;
 
-    RawPtr<SVGTransformTearOff> createSVGTransformFromMatrix(RawPtr<SVGMatrixTearOff>) const;
-    RawPtr<SVGTransformTearOff> consolidate(ExceptionState&);
+    SVGTransformTearOff* createSVGTransformFromMatrix(SVGMatrixTearOff*) const;
+    SVGTransformTearOff* consolidate(ExceptionState&);
 
 private:
-    SVGTransformListTearOff(RawPtr<SVGTransformList>, SVGElement*, PropertyIsAnimValType, const QualifiedName&);
+    SVGTransformListTearOff(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 31418b4..3c08826 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(RawPtr<SVGTransform> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName)
+SVGTransformTearOff::SVGTransformTearOff(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(RawPtr<SVGMatrixTearOff> matrix, ExceptionState& exceptionState)
+void SVGTransformTearOff::setMatrix(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 a618e46..ece63b4 100644
--- a/third_party/WebKit/Source/core/svg/SVGTransformTearOff.h
+++ b/third_party/WebKit/Source/core/svg/SVGTransformTearOff.h
@@ -52,7 +52,7 @@
         SVG_TRANSFORM_SKEWY = blink::SVG_TRANSFORM_SKEWY,
     };
 
-    static RawPtr<SVGTransformTearOff> create(RawPtr<SVGTransform> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
+    static SVGTransformTearOff* create(SVGTransform* target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
     {
         return new SVGTransformTearOff(target, contextElement, propertyIsAnimVal, attributeName);
     }
@@ -63,7 +63,7 @@
     SVGMatrixTearOff* matrix();
     float angle() { return target()->angle(); }
 
-    void setMatrix(RawPtr<SVGMatrixTearOff>, ExceptionState&);
+    void setMatrix(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,7 +73,7 @@
     DECLARE_VIRTUAL_TRACE();
 
 private:
-    SVGTransformTearOff(RawPtr<SVGTransform>, SVGElement* contextElement, PropertyIsAnimValType, const QualifiedName& attributeName);
+    SVGTransformTearOff(SVGTransform*, SVGElement* contextElement, PropertyIsAnimValType, const QualifiedName& attributeName);
 
     Member<SVGMatrixTearOff> m_matrixTearoff;
 };
diff --git a/third_party/WebKit/Source/core/svg/SVGUseElement.cpp b/third_party/WebKit/Source/core/svg/SVGUseElement.cpp
index c945586..8cc69124 100644
--- a/third_party/WebKit/Source/core/svg/SVGUseElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGUseElement.cpp
@@ -74,12 +74,12 @@
 #endif
 }
 
-RawPtr<SVGUseElement> SVGUseElement::create(Document& document)
+SVGUseElement* SVGUseElement::create(Document& document)
 {
     // Always build a user agent #shadow-root for SVGUseElement.
-    RawPtr<SVGUseElement> use = new SVGUseElement(document);
+    SVGUseElement* use = new SVGUseElement(document);
     use->ensureUserAgentShadowRoot();
-    return use.release();
+    return use;
 }
 
 SVGUseElement::~SVGUseElement()
@@ -385,16 +385,16 @@
 
 static void moveChildrenToReplacementElement(ContainerNode& sourceRoot, ContainerNode& destinationRoot)
 {
-    for (RawPtr<Node> child = sourceRoot.firstChild(); child; ) {
-        RawPtr<Node> nextChild = child->nextSibling();
+    for (Node* child = sourceRoot.firstChild(); child; ) {
+        Node* nextChild = child->nextSibling();
         destinationRoot.appendChild(child);
-        child = nextChild.release();
+        child = nextChild;
     }
 }
 
-RawPtr<Element> SVGUseElement::createInstanceTree(SVGElement& targetRoot) const
+Element* SVGUseElement::createInstanceTree(SVGElement& targetRoot) const
 {
-    RawPtr<Element> instanceRoot = targetRoot.cloneElementWithChildren();
+    Element* instanceRoot = targetRoot.cloneElementWithChildren();
     ASSERT(instanceRoot->isSVGElement());
     if (isSVGSymbolElement(targetRoot)) {
         // Spec: The referenced 'symbol' and its contents are deep-cloned into
@@ -405,18 +405,18 @@
         // 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.
-        RawPtr<SVGSVGElement> svgElement = SVGSVGElement::create(targetRoot.document());
+        SVGSVGElement* svgElement = SVGSVGElement::create(targetRoot.document());
         // Transfer all data (attributes, etc.) from the <symbol> to the new
         // <svg> element.
         svgElement->cloneDataFromElement(*instanceRoot);
         // Move already cloned elements to the new <svg> element.
         moveChildrenToReplacementElement(*instanceRoot, *svgElement);
-        instanceRoot = svgElement.release();
+        instanceRoot = svgElement;
     }
     transferUseWidthAndHeightIfNeeded(*this, toSVGElement(*instanceRoot), targetRoot);
     associateCorrespondingElements(targetRoot, toSVGElement(*instanceRoot));
     removeDisallowedElementsFromSubtree(toSVGElement(*instanceRoot));
-    return instanceRoot.release();
+    return instanceRoot;
 }
 
 void SVGUseElement::buildShadowAndInstanceTree(SVGElement& target)
@@ -436,10 +436,10 @@
 
     // Set up root SVG element in shadow tree.
     // Clone the target subtree into the shadow tree, not handling <use> and <symbol> yet.
-    RawPtr<Element> instanceRoot = createInstanceTree(target);
-    m_targetElementInstance = toSVGElement(instanceRoot.get());
+    Element* instanceRoot = createInstanceTree(target);
+    m_targetElementInstance = toSVGElement(instanceRoot);
     ShadowRoot* shadowTreeRootElement = userAgentShadowRoot();
-    shadowTreeRootElement->appendChild(instanceRoot.release());
+    shadowTreeRootElement->appendChild(instanceRoot);
 
     addReferencesToFirstDegreeNestedUseElements(target);
 
@@ -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 (RawPtr<SVGUseElement> use = Traversal<SVGUseElement>::firstWithin(*shadowRoot); use; ) {
+    for (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
-        RawPtr<SVGGElement> cloneParent = SVGGElement::create(originalUse.document());
+        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,10 +625,10 @@
         if (target)
             cloneParent->appendChild(use->createInstanceTree(*target));
 
-        RawPtr<SVGElement> replacingElement(cloneParent.get());
+        SVGElement* replacingElement(cloneParent);
 
         // Replace <use> with referenced content.
-        use->parentNode()->replaceChild(cloneParent.release(), use);
+        use->parentNode()->replaceChild(cloneParent, use);
 
         use = Traversal<SVGUseElement>::next(*replacingElement, shadowRoot);
     }
@@ -651,7 +651,7 @@
     HeapVector<Member<SVGElement>> instances;
     instances.appendRange(rawInstances.begin(), rawInstances.end());
     for (auto& instance : instances) {
-        if (RawPtr<SVGUseElement> element = instance->correspondingUseElement()) {
+        if (SVGUseElement* element = instance->correspondingUseElement()) {
             ASSERT(element->inDocument());
             element->invalidateShadowTree();
         }
@@ -744,7 +744,7 @@
     return false;
 }
 
-void SVGUseElement::setDocumentResource(RawPtr<DocumentResource> resource)
+void SVGUseElement::setDocumentResource(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 040bb8c..f743dc0 100644
--- a/third_party/WebKit/Source/core/svg/SVGUseElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGUseElement.h
@@ -41,7 +41,7 @@
     USING_GARBAGE_COLLECTED_MIXIN(SVGUseElement);
     USING_PRE_FINALIZER(SVGUseElement, dispose);
 public:
-    static RawPtr<SVGUseElement> create(Document&);
+    static SVGUseElement* create(Document&);
     ~SVGUseElement() override;
 
     void invalidateShadowTree();
@@ -91,7 +91,7 @@
     // Instance tree handling
     void buildShadowAndInstanceTree(SVGElement& target);
     void clearInstanceRoot();
-    RawPtr<Element> createInstanceTree(SVGElement& targetRoot) const;
+    Element* createInstanceTree(SVGElement& targetRoot) const;
     void clearShadowTree();
     bool hasCycleUseReferencing(const SVGUseElement&, const ContainerNode& targetInstance, SVGElement*& newTarget) const;
     bool expandUseElementsInShadowTree();
@@ -106,7 +106,7 @@
     bool instanceTreeIsLoading() const;
     void notifyFinished(Resource*) override;
     String debugName() const override { return "SVGUseElement"; }
-    void setDocumentResource(RawPtr<DocumentResource>);
+    void setDocumentResource(DocumentResource*);
 
     Member<SVGAnimatedLength> m_x;
     Member<SVGAnimatedLength> m_y;
diff --git a/third_party/WebKit/Source/core/svg/SVGViewSpec.h b/third_party/WebKit/Source/core/svg/SVGViewSpec.h
index 2aada5de..7cf25e97 100644
--- a/third_party/WebKit/Source/core/svg/SVGViewSpec.h
+++ b/third_party/WebKit/Source/core/svg/SVGViewSpec.h
@@ -37,7 +37,7 @@
     using RefCounted<SVGViewSpec>::deref;
 #endif
 
-    static RawPtr<SVGViewSpec> create(SVGSVGElement* contextElement)
+    static SVGViewSpec* create(SVGSVGElement* contextElement)
     {
         return new SVGViewSpec(contextElement);
     }
@@ -49,7 +49,7 @@
 
     // JS API
     SVGTransformList* transform() { return m_transform ? m_transform->baseValue() : 0; }
-    RawPtr<SVGTransformListTearOff> transformFromJavascript() { return m_transform ? m_transform->baseVal() : 0; }
+    SVGTransformListTearOff* transformFromJavascript() { return m_transform ? m_transform->baseVal() : 0; }
     SVGElement* viewTarget() const;
     String viewBoxString() const;
     String preserveAspectRatioString() const;
diff --git a/third_party/WebKit/Source/core/svg/SVGZoomEvent.cpp b/third_party/WebKit/Source/core/svg/SVGZoomEvent.cpp
index f89bee93..f9f7d1c3 100644
--- a/third_party/WebKit/Source/core/svg/SVGZoomEvent.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGZoomEvent.cpp
@@ -33,11 +33,11 @@
 {
 }
 
-RawPtr<SVGRectTearOff> SVGZoomEvent::zoomRectScreen() const
+SVGRectTearOff* SVGZoomEvent::zoomRectScreen() const
 {
-    RawPtr<SVGRectTearOff> rectTearOff = SVGRectTearOff::create(SVGRect::create(), 0, PropertyIsNotAnimVal);
+    SVGRectTearOff* rectTearOff = SVGRectTearOff::create(SVGRect::create(), 0, PropertyIsNotAnimVal);
     rectTearOff->setIsReadOnlyProperty();
-    return rectTearOff.release();
+    return rectTearOff;
 }
 
 float SVGZoomEvent::previousScale() const
@@ -45,11 +45,11 @@
     return m_previousScale;
 }
 
-RawPtr<SVGPointTearOff> SVGZoomEvent::previousTranslate() const
+SVGPointTearOff* SVGZoomEvent::previousTranslate() const
 {
-    RawPtr<SVGPointTearOff> pointTearOff = SVGPointTearOff::create(SVGPoint::create(m_previousTranslate), 0, PropertyIsNotAnimVal);
+    SVGPointTearOff* pointTearOff = SVGPointTearOff::create(SVGPoint::create(m_previousTranslate), 0, PropertyIsNotAnimVal);
     pointTearOff->setIsReadOnlyProperty();
-    return pointTearOff.release();
+    return pointTearOff;
 }
 
 float SVGZoomEvent::newScale() const
@@ -57,11 +57,11 @@
     return m_newScale;
 }
 
-RawPtr<SVGPointTearOff> SVGZoomEvent::newTranslate() const
+SVGPointTearOff* SVGZoomEvent::newTranslate() const
 {
-    RawPtr<SVGPointTearOff> pointTearOff = SVGPointTearOff::create(SVGPoint::create(m_newTranslate), 0, PropertyIsNotAnimVal);
+    SVGPointTearOff* pointTearOff = SVGPointTearOff::create(SVGPoint::create(m_newTranslate), 0, PropertyIsNotAnimVal);
     pointTearOff->setIsReadOnlyProperty();
-    return pointTearOff.release();
+    return pointTearOff;
 }
 
 const AtomicString& SVGZoomEvent::interfaceName() const
diff --git a/third_party/WebKit/Source/core/svg/SVGZoomEvent.h b/third_party/WebKit/Source/core/svg/SVGZoomEvent.h
index e896572..0cbdc12 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 RawPtr<SVGZoomEvent> create()
+    static SVGZoomEvent* create()
     {
         return new SVGZoomEvent;
     }
 
     // 'SVGZoomEvent' functions
-    RawPtr<SVGRectTearOff> zoomRectScreen() const;
+    SVGRectTearOff* zoomRectScreen() const;
 
     float previousScale() const;
 
-    RawPtr<SVGPointTearOff> previousTranslate() const;
+    SVGPointTearOff* previousTranslate() const;
 
     float newScale() const;
 
-    RawPtr<SVGPointTearOff> newTranslate() const;
+    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 09a67183..27cccf53a 100644
--- a/third_party/WebKit/Source/core/svg/UnsafeSVGAttributeSanitizationTest.cpp
+++ b/third_party/WebKit/Source/core/svg/UnsafeSVGAttributeSanitizationTest.cpp
@@ -271,10 +271,10 @@
 // SVG animation attributes.
 TEST(UnsafeSVGAttributeSanitizationTest, stringsShouldNotSupportAddition)
 {
-    RawPtr<Document> document = Document::create();
-    RawPtr<SVGElement> target = SVGAElement::create(*document);
-    RawPtr<SVGAnimateElement> element = SVGAnimateElement::create(*document);
-    element->setTargetElement(target.get());
+    Document* document = Document::create();
+    SVGElement* target = SVGAElement::create(*document);
+    SVGAnimateElement* element = SVGAnimateElement::create(*document);
+    element->setTargetElement(target);
     element->setAttributeName(XLinkNames::hrefAttr);
 
     // Sanity check that xlink:href was identified as a "string" attribute
@@ -300,8 +300,8 @@
     attributes.append(Attribute(SVGNames::fromAttr, "/home"));
     attributes.append(Attribute(SVGNames::toAttr, "javascript:own3d()"));
 
-    RawPtr<Document> document = Document::create();
-    RawPtr<Element> element = SVGAnimateElement::create(*document);
+    Document* document = Document::create();
+    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()");
-    RawPtr<Document> document = Document::create();
-    RawPtr<Element> element = SVGAElement::create(*document);
+    Document* document = Document::create();
+    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()");
-    RawPtr<Document> document = Document::create();
-    RawPtr<Element> element = SVGAElement::create(*document);
+    Document* document = Document::create();
+    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()");
-    RawPtr<Document> document = Document::create();
-    RawPtr<Element> element = SVGAElement::create(*document);
+    Document* document = Document::create();
+    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()");
-    RawPtr<Document> document = Document::create();
-    RawPtr<Element> element = SVGAnimateElement::create(*document);
+    Document* document = Document::create();
+    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()");
-    RawPtr<Document> document = Document::create();
-    RawPtr<Element> element = SVGSetElement::create(*document);
+    Document* document = Document::create();
+    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()");
-    RawPtr<Document> document = Document::create();
-    RawPtr<Element> element = SVGAnimateElement::create(*document);
+    Document* document = Document::create();
+    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!");
-    RawPtr<Document> document = Document::create();
-    RawPtr<Element> element = SVGSetElement::create(*document);
+    Document* document = Document::create();
+    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 617a6e6..311e6a9 100644
--- a/third_party/WebKit/Source/core/svg/animation/SMILTimeContainer.cpp
+++ b/third_party/WebKit/Source/core/svg/animation/SMILTimeContainer.cpp
@@ -533,8 +533,8 @@
 
     for (unsigned i = 0; i < animationsToApplySize; ++i) {
         if (animationsToApply[i]->inDocument() && animationsToApply[i]->isSVGDiscardElement()) {
-            RawPtr<SVGSMILElement> animDiscard = animationsToApply[i];
-            RawPtr<SVGElement> targetElement = animDiscard->targetElement();
+            SVGSMILElement* animDiscard = animationsToApply[i];
+            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 6456820..894f7c48 100644
--- a/third_party/WebKit/Source/core/svg/animation/SMILTimeContainer.h
+++ b/third_party/WebKit/Source/core/svg/animation/SMILTimeContainer.h
@@ -47,7 +47,7 @@
 
 class SMILTimeContainer : public GarbageCollectedFinalized<SMILTimeContainer>  {
 public:
-    static RawPtr<SMILTimeContainer> create(SVGSVGElement& owner) { return new SMILTimeContainer(owner); }
+    static SMILTimeContainer* create(SVGSVGElement& owner) { return new SMILTimeContainer(owner); }
     ~SMILTimeContainer();
 
     void schedule(SVGSMILElement*, SVGElement*, const QualifiedName&);
diff --git a/third_party/WebKit/Source/core/svg/animation/SVGSMILElement.cpp b/third_party/WebKit/Source/core/svg/animation/SVGSMILElement.cpp
index 4c523d8..8208b740 100644
--- a/third_party/WebKit/Source/core/svg/animation/SVGSMILElement.cpp
+++ b/third_party/WebKit/Source/core/svg/animation/SVGSMILElement.cpp
@@ -48,7 +48,7 @@
 
 class RepeatEvent final : public Event {
 public:
-    static RawPtr<RepeatEvent> create(const AtomicString& type, int repeat)
+    static RepeatEvent* create(const AtomicString& type, int repeat)
     {
         return new RepeatEvent(type, false, false, repeat);
     }
@@ -108,7 +108,7 @@
 
 class ConditionEventListener final : public EventListener {
 public:
-    static RawPtr<ConditionEventListener> create(SVGSMILElement* animation, SVGSMILElement::Condition* condition)
+    static ConditionEventListener* create(SVGSMILElement* animation, SVGSMILElement::Condition* condition)
     {
         return new ConditionEventListener(animation, condition);
     }
@@ -162,7 +162,7 @@
     m_animation->handleConditionEvent(event, m_condition);
 }
 
-void SVGSMILElement::Condition::setEventListener(RawPtr<ConditionEventListener> eventListener)
+void SVGSMILElement::Condition::setEventListener(ConditionEventListener* eventListener)
 {
     m_eventListener = eventListener;
 }
diff --git a/third_party/WebKit/Source/core/svg/animation/SVGSMILElement.h b/third_party/WebKit/Source/core/svg/animation/SVGSMILElement.h
index 1be793cf..fb1e6ff7 100644
--- a/third_party/WebKit/Source/core/svg/animation/SVGSMILElement.h
+++ b/third_party/WebKit/Source/core/svg/animation/SVGSMILElement.h
@@ -184,7 +184,7 @@
         };
 
         Condition(Type, 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)
+        static Condition* create(Type type, BeginOrEnd beginOrEnd, const String& baseID, const String& name, SMILTime offset, int repeat = -1)
         {
             return new Condition(type, beginOrEnd, baseID, name, offset, repeat);
         }
@@ -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(RawPtr<ConditionEventListener>);
+        void setEventListener(ConditionEventListener*);
 
     private:
         Type m_type;
diff --git a/third_party/WebKit/Source/core/svg/graphics/SVGImage.cpp b/third_party/WebKit/Source/core/svg/graphics/SVGImage.cpp
index 590b80a3..2cc9f14 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.
-        RawPtr<Page> currentPage = m_page.release();
+        Page* currentPage = m_page.release();
         // Break both the loader and view references to the frame
         currentPage->willBeDestroyed();
     }
@@ -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.
-        RawPtr<Page> page;
+        Page* page;
         {
             TRACE_EVENT0("blink", "SVGImage::dataChanged::createPage");
             page = Page::create(pageClients);
@@ -509,11 +509,11 @@
             }
         }
 
-        RawPtr<LocalFrame> frame = nullptr;
+        LocalFrame* frame = nullptr;
         {
             TRACE_EVENT0("blink", "SVGImage::dataChanged::createFrame");
             frame = LocalFrame::create(dummyFrameLoaderClient.get(), &page->frameHost(), 0);
-            frame->setView(FrameView::create(frame.get()));
+            frame->setView(FrameView::create(frame));
             frame->init();
         }
 
@@ -524,7 +524,7 @@
         frame->view()->setCanHaveScrollbars(false); // SVG Images will always synthesize a viewBox, if it's not available, and thus never see scrollbars.
         frame->view()->setTransparent(true); // SVG Images are transparent.
 
-        m_page = page.release();
+        m_page = page;
 
         TRACE_EVENT0("blink", "SVGImage::dataChanged::load");
         loader.load(FrameLoadRequest(0, blankURL(), SubstituteData(data(), AtomicString("image/svg+xml"),
diff --git a/third_party/WebKit/Source/core/svg/graphics/SVGImageChromeClient.cpp b/third_party/WebKit/Source/core/svg/graphics/SVGImageChromeClient.cpp
index 76418c6..aa71f35d 100644
--- a/third_party/WebKit/Source/core/svg/graphics/SVGImageChromeClient.cpp
+++ b/third_party/WebKit/Source/core/svg/graphics/SVGImageChromeClient.cpp
@@ -44,7 +44,7 @@
 {
 }
 
-RawPtr<SVGImageChromeClient> SVGImageChromeClient::create(SVGImage* image)
+SVGImageChromeClient* SVGImageChromeClient::create(SVGImage* image)
 {
     return new SVGImageChromeClient(image);
 }
diff --git a/third_party/WebKit/Source/core/svg/graphics/SVGImageChromeClient.h b/third_party/WebKit/Source/core/svg/graphics/SVGImageChromeClient.h
index 4a3c71aa..f4c123e1 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 RawPtr<SVGImageChromeClient> create(SVGImage*);
+    static 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 cb84c0e..58931dd 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, RawPtr<SVGPreserveAspectRatio> preserveAspectRatio)
+FEImage::FEImage(Filter* filter, PassRefPtr<Image> image, 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, RawPtr<SVGPreserveAspectRatio> preserveAspectRatio)
+FEImage::FEImage(Filter* filter, TreeScope& treeScope, const String& href, SVGPreserveAspectRatio* preserveAspectRatio)
     : FilterEffect(filter)
     , m_treeScope(&treeScope)
     , m_href(href)
@@ -66,12 +66,12 @@
     FilterEffect::trace(visitor);
 }
 
-RawPtr<FEImage> FEImage::createWithImage(Filter* filter, PassRefPtr<Image> image, RawPtr<SVGPreserveAspectRatio> preserveAspectRatio)
+FEImage* FEImage::createWithImage(Filter* filter, PassRefPtr<Image> image, SVGPreserveAspectRatio* preserveAspectRatio)
 {
     return new FEImage(filter, image, preserveAspectRatio);
 }
 
-RawPtr<FEImage> FEImage::createWithIRIReference(Filter* filter, TreeScope& treeScope, const String& href, RawPtr<SVGPreserveAspectRatio> preserveAspectRatio)
+FEImage* FEImage::createWithIRIReference(Filter* filter, TreeScope& treeScope, const String& href, SVGPreserveAspectRatio* preserveAspectRatio)
 {
     return new FEImage(filter, treeScope, href, preserveAspectRatio);
 }
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 c498bed..b242bb97 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 RawPtr<FEImage> createWithImage(Filter*, PassRefPtr<Image>, RawPtr<SVGPreserveAspectRatio>);
-    static RawPtr<FEImage> createWithIRIReference(Filter*, TreeScope&, const String&, RawPtr<SVGPreserveAspectRatio>);
+    static FEImage* createWithImage(Filter*, PassRefPtr<Image>, SVGPreserveAspectRatio*);
+    static FEImage* createWithIRIReference(Filter*, TreeScope&, const String&, SVGPreserveAspectRatio*);
 
     FloatRect determineAbsolutePaintRect(const FloatRect& requestedRect) override;
 
@@ -53,8 +53,8 @@
 
 private:
     ~FEImage() override {}
-    FEImage(Filter*, PassRefPtr<Image>, RawPtr<SVGPreserveAspectRatio>);
-    FEImage(Filter*, TreeScope&, const String&, RawPtr<SVGPreserveAspectRatio>);
+    FEImage(Filter*, PassRefPtr<Image>, SVGPreserveAspectRatio*);
+    FEImage(Filter*, TreeScope&, const String&, SVGPreserveAspectRatio*);
     LayoutObject* referencedLayoutObject() const;
 
     PassRefPtr<SkImageFilter> createImageFilterForLayoutObject(const LayoutObject&);
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 7ac401b1..8d81568 100644
--- a/third_party/WebKit/Source/core/svg/graphics/filters/SVGFilterBuilder.cpp
+++ b/third_party/WebKit/Source/core/svg/graphics/filters/SVGFilterBuilder.cpp
@@ -69,10 +69,8 @@
     m_effectReferences.add(effect, FilterEffectSet());
 }
 
-void SVGFilterGraphNodeMap::addPrimitive(LayoutObject* object, RawPtr<FilterEffect> prpEffect)
+void SVGFilterGraphNodeMap::addPrimitive(LayoutObject* object, FilterEffect* effect)
 {
-    RawPtr<FilterEffect> effect = prpEffect;
-
     // The effect must be a newly created filter effect.
     ASSERT(!m_effectReferences.contains(effect));
     ASSERT(!object || !m_effectRenderer.contains(object));
@@ -84,13 +82,13 @@
     // allow determining what effects needs to be invalidated when a certain
     // effect changes.
     for (unsigned i = 0; i < numberOfInputEffects; ++i)
-        effectReferences(effect->inputEffect(i)).add(effect.get());
+        effectReferences(effect->inputEffect(i)).add(effect);
 
     // If object is null, that means the element isn't attached for some
     // reason, which in turn mean that certain types of invalidation will not
     // work (the LayoutObject -> FilterEffect mapping will not be defined).
     if (object)
-        m_effectRenderer.add(object, effect.get());
+        m_effectRenderer.add(object, effect);
 }
 
 void SVGFilterGraphNodeMap::invalidateDependentEffects(FilterEffect* effect)
@@ -114,15 +112,15 @@
 }
 
 SVGFilterBuilder::SVGFilterBuilder(
-    RawPtr<FilterEffect> sourceGraphic,
-    RawPtr<SVGFilterGraphNodeMap> nodeMap,
+    FilterEffect* sourceGraphic,
+    SVGFilterGraphNodeMap* nodeMap,
     const SkPaint* fillPaint,
     const SkPaint* strokePaint)
     : m_nodeMap(nodeMap)
 {
-    RawPtr<FilterEffect> sourceGraphicRef = sourceGraphic;
+    FilterEffect* sourceGraphicRef = sourceGraphic;
     m_builtinEffects.add(FilterInputKeywords::getSourceGraphic(), sourceGraphicRef);
-    m_builtinEffects.add(FilterInputKeywords::sourceAlpha(), SourceAlpha::create(sourceGraphicRef.get()));
+    m_builtinEffects.add(FilterInputKeywords::sourceAlpha(), SourceAlpha::create(sourceGraphicRef));
     if (fillPaint)
         m_builtinEffects.add(FilterInputKeywords::fillPaint(), PaintFilterEffect::create(sourceGraphicRef->getFilter(), *fillPaint));
     if (strokePaint)
@@ -147,9 +145,9 @@
     // No layout has been performed, try to determine the property value
     // "manually" (used by external SVG files.)
     if (const StylePropertySet* propertySet = element.presentationAttributeStyle()) {
-        RawPtr<CSSValue> cssValue = propertySet->getPropertyCSSValue(CSSPropertyColorInterpolationFilters);
+        CSSValue* cssValue = propertySet->getPropertyCSSValue(CSSPropertyColorInterpolationFilters);
         if (cssValue && cssValue->isPrimitiveValue()) {
-            const CSSPrimitiveValue& primitiveValue = *((CSSPrimitiveValue*)cssValue.get());
+            const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(*cssValue);
             return primitiveValue.convertTo<EColorInterpolation>();
         }
     }
@@ -167,14 +165,14 @@
             continue;
 
         SVGFilterPrimitiveStandardAttributes* effectElement = static_cast<SVGFilterPrimitiveStandardAttributes*>(element);
-        RawPtr<FilterEffect> effect = effectElement->build(this, filter);
+        FilterEffect* effect = effectElement->build(this, filter);
         if (!effect)
             continue;
 
         if (m_nodeMap)
             m_nodeMap->addPrimitive(effectElement->layoutObject(), effect);
 
-        effectElement->setStandardAttributes(effect.get());
+        effectElement->setStandardAttributes(effect);
         effect->setEffectBoundaries(SVGLengthContext::resolveRectangle<SVGFilterPrimitiveStandardAttributes>(effectElement, filterElement.primitiveUnits()->currentValue()->enumValue(), referenceBox));
         EColorInterpolation colorInterpolation = colorInterpolationForElement(*effectElement, filterColorInterpolation);
         effect->setOperatingColorSpace(colorInterpolation == CI_LINEARRGB ? ColorSpaceLinearRGB : ColorSpaceDeviceRGB);
@@ -185,7 +183,7 @@
     }
 }
 
-void SVGFilterBuilder::add(const AtomicString& id, RawPtr<FilterEffect> effect)
+void SVGFilterBuilder::add(const AtomicString& id, 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 d6faaf87..af495ca 100644
--- a/third_party/WebKit/Source/core/svg/graphics/filters/SVGFilterBuilder.h
+++ b/third_party/WebKit/Source/core/svg/graphics/filters/SVGFilterBuilder.h
@@ -41,7 +41,7 @@
 // Used during invalidations from changes to the primitives (graph nodes).
 class SVGFilterGraphNodeMap final : public GarbageCollectedFinalized<SVGFilterGraphNodeMap> {
 public:
-    static RawPtr<SVGFilterGraphNodeMap> create()
+    static SVGFilterGraphNodeMap* create()
     {
         return new SVGFilterGraphNodeMap;
     }
@@ -49,7 +49,7 @@
     typedef HeapHashSet<Member<FilterEffect>> FilterEffectSet;
 
     void addBuiltinEffect(FilterEffect*);
-    void addPrimitive(LayoutObject*, RawPtr<FilterEffect>);
+    void addPrimitive(LayoutObject*, FilterEffect*);
 
     inline FilterEffectSet& effectReferences(FilterEffect* effect)
     {
@@ -78,8 +78,8 @@
     STACK_ALLOCATED();
 public:
     SVGFilterBuilder(
-        RawPtr<FilterEffect> sourceGraphic,
-        RawPtr<SVGFilterGraphNodeMap> = nullptr,
+        FilterEffect* sourceGraphic,
+        SVGFilterGraphNodeMap* = nullptr,
         const SkPaint* fillPaint = nullptr,
         const SkPaint* strokePaint = nullptr);
 
@@ -89,7 +89,7 @@
     FilterEffect* lastEffect() const { return m_lastEffect.get(); }
 
 private:
-    void add(const AtomicString& id, RawPtr<FilterEffect>);
+    void add(const AtomicString& id, FilterEffect*);
     void addBuiltinEffects();
 
     typedef HeapHashMap<AtomicString, Member<FilterEffect>> NamedFilterEffectMap;
diff --git a/third_party/WebKit/Source/core/svg/properties/SVGAnimatedProperty.h b/third_party/WebKit/Source/core/svg/properties/SVGAnimatedProperty.h
index 9a7ea3c..985b0292 100644
--- a/third_party/WebKit/Source/core/svg/properties/SVGAnimatedProperty.h
+++ b/third_party/WebKit/Source/core/svg/properties/SVGAnimatedProperty.h
@@ -54,8 +54,8 @@
     virtual const SVGPropertyBase& baseValueBase() const = 0;
     virtual bool isAnimating() const = 0;
 
-    virtual RawPtr<SVGPropertyBase> createAnimatedValue() = 0;
-    virtual void setAnimatedValue(RawPtr<SVGPropertyBase>) = 0;
+    virtual SVGPropertyBase* createAnimatedValue() = 0;
+    virtual void setAnimatedValue(SVGPropertyBase*) = 0;
     virtual void animationEnded();
 
     virtual SVGParsingError setBaseValueAsString(const String&) = 0;
@@ -146,16 +146,15 @@
         return m_baseValue->setValueAsString(value);
     }
 
-    RawPtr<SVGPropertyBase> createAnimatedValue() override
+    SVGPropertyBase* createAnimatedValue() override
     {
         return m_baseValue->clone();
     }
 
-    void setAnimatedValue(RawPtr<SVGPropertyBase> passValue) override
+    void setAnimatedValue(SVGPropertyBase* value) override
     {
-        RawPtr<SVGPropertyBase> value = passValue;
         ASSERT(value->type() == Property::classType());
-        m_currentValue = static_pointer_cast<Property>(value.release());
+        m_currentValue = static_cast<Property*>(value);
     }
 
     void animationEnded() override
@@ -173,7 +172,7 @@
     }
 
 protected:
-    SVGAnimatedPropertyCommon(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<Property> initialValue)
+    SVGAnimatedPropertyCommon(SVGElement* contextElement, const QualifiedName& attributeName, Property* initialValue)
         : SVGAnimatedPropertyBase(Property::classType(), contextElement, attributeName)
         , m_baseValue(initialValue)
     {
@@ -234,7 +233,7 @@
     }
 
 protected:
-    SVGAnimatedProperty(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<Property> initialValue)
+    SVGAnimatedProperty(SVGElement* contextElement, const QualifiedName& attributeName, Property* initialValue)
         : SVGAnimatedPropertyCommon<Property>(contextElement, attributeName, initialValue)
         , m_baseValueUpdated(false)
     {
@@ -250,12 +249,12 @@
 template <typename Property, typename TearOffType>
 class SVGAnimatedProperty<Property, TearOffType, void> : public SVGAnimatedPropertyCommon<Property> {
 public:
-    static RawPtr<SVGAnimatedProperty<Property>> create(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<Property> initialValue)
+    static SVGAnimatedProperty<Property>* create(SVGElement* contextElement, const QualifiedName& attributeName, Property* initialValue)
     {
         return new SVGAnimatedProperty<Property>(contextElement, attributeName, initialValue);
     }
 
-    void setAnimatedValue(RawPtr<SVGPropertyBase> value) override
+    void setAnimatedValue(SVGPropertyBase* value) override
     {
         SVGAnimatedPropertyCommon<Property>::setAnimatedValue(value);
         updateAnimValTearOffIfNeeded();
@@ -305,7 +304,7 @@
     }
 
 protected:
-    SVGAnimatedProperty(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<Property> initialValue)
+    SVGAnimatedProperty(SVGElement* contextElement, const QualifiedName& attributeName, Property* initialValue)
         : SVGAnimatedPropertyCommon<Property>(contextElement, attributeName, initialValue)
     {
     }
@@ -332,7 +331,7 @@
 template <typename Property>
 class SVGAnimatedProperty<Property, void, void> : public SVGAnimatedPropertyCommon<Property> {
 public:
-    static RawPtr<SVGAnimatedProperty<Property>> create(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<Property> initialValue)
+    static SVGAnimatedProperty<Property>* create(SVGElement* contextElement, const QualifiedName& attributeName, Property* initialValue)
     {
         return new SVGAnimatedProperty<Property>(contextElement, attributeName, initialValue);
     }
@@ -344,7 +343,7 @@
     }
 
 protected:
-    SVGAnimatedProperty(SVGElement* contextElement, const QualifiedName& attributeName, RawPtr<Property> initialValue)
+    SVGAnimatedProperty(SVGElement* contextElement, const QualifiedName& attributeName, 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 69e3b1f..ab4df89b 100644
--- a/third_party/WebKit/Source/core/svg/properties/SVGListPropertyHelper.h
+++ b/third_party/WebKit/Source/core/svg/properties/SVGListPropertyHelper.h
@@ -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; }
 
-        RawPtr<ItemPropertyType> operator*() { return *m_it; }
-        RawPtr<ItemPropertyType> operator->() { return *m_it; }
+        ItemPropertyType* operator*() { return *m_it; }
+        ItemPropertyType* operator->() { return *m_it; }
 
     private:
         WrappedType m_it;
@@ -112,10 +112,8 @@
         return ConstIterator(m_values.end());
     }
 
-    void append(RawPtr<ItemPropertyType> passNewItem)
+    void append(ItemPropertyType* newItem)
     {
-        RawPtr<ItemPropertyType> newItem = passNewItem;
-
         ASSERT(newItem);
         m_values.append(newItem);
         newItem->setOwnerList(this);
@@ -132,11 +130,11 @@
         return !length();
     }
 
-    virtual RawPtr<Derived> clone()
+    virtual Derived* clone()
     {
-        RawPtr<Derived> svgList = Derived::create();
+        Derived* svgList = Derived::create();
         svgList->deepCopy(static_cast<Derived*>(this));
-        return svgList.release();
+        return svgList;
     }
 
     // SVGList*Property DOM spec:
@@ -148,12 +146,12 @@
 
     void clear();
 
-    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&);
+    ItemPropertyType* initialize(ItemPropertyType*);
+    ItemPropertyType* getItem(size_t, ExceptionState&);
+    ItemPropertyType* insertItemBefore(ItemPropertyType*, size_t);
+    ItemPropertyType* removeItem(size_t, ExceptionState&);
+    ItemPropertyType* appendItem(ItemPropertyType*);
+    ItemPropertyType* replaceItem(ItemPropertyType*, size_t, ExceptionState&);
 
     DEFINE_INLINE_VIRTUAL_TRACE()
     {
@@ -162,27 +160,25 @@
     }
 
 protected:
-    void deepCopy(RawPtr<Derived>);
+    void deepCopy(Derived*);
 
-    bool adjustFromToListValues(RawPtr<Derived> fromList, RawPtr<Derived> toList, float percentage, AnimationMode);
+    bool adjustFromToListValues(Derived* fromList, Derived* toList, float percentage, AnimationMode);
 
-    virtual RawPtr<ItemPropertyType> createPaddingItem() const
+    virtual ItemPropertyType* createPaddingItem() const
     {
         return ItemPropertyType::create();
     }
 
 private:
     inline bool checkIndexBound(size_t, ExceptionState&);
-    size_t findItem(RawPtr<ItemPropertyType>);
+    size_t findItem(ItemPropertyType*);
 
     HeapVector<Member<ItemPropertyType>> m_values;
 
-    static RawPtr<Derived> toDerived(RawPtr<SVGPropertyBase> passBase)
+    static Derived* toDerived(SVGPropertyBase* base)
     {
-        if (!passBase)
+        if (!base)
             return nullptr;
-
-        RawPtr<SVGPropertyBase> base = passBase;
         ASSERT(base->type() == Derived::classType());
         return static_pointer_cast<Derived>(base);
     }
@@ -218,18 +214,16 @@
 }
 
 template<typename Derived, typename ItemProperty>
-RawPtr<ItemProperty> SVGListPropertyHelper<Derived, ItemProperty>::initialize(RawPtr<ItemProperty> passNewItem)
+ItemProperty* SVGListPropertyHelper<Derived, ItemProperty>::initialize(ItemProperty* newItem)
 {
-    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();
     append(newItem);
-    return newItem.release();
+    return newItem;
 }
 
 template<typename Derived, typename ItemProperty>
-RawPtr<ItemProperty> SVGListPropertyHelper<Derived, ItemProperty>::getItem(size_t index, ExceptionState& exceptionState)
+ItemProperty* SVGListPropertyHelper<Derived, ItemProperty>::getItem(size_t index, ExceptionState& exceptionState)
 {
     if (!checkIndexBound(index, exceptionState))
         return nullptr;
@@ -240,55 +234,49 @@
 }
 
 template<typename Derived, typename ItemProperty>
-RawPtr<ItemProperty> SVGListPropertyHelper<Derived, ItemProperty>::insertItemBefore(RawPtr<ItemProperty> passNewItem, size_t index)
+ItemProperty* SVGListPropertyHelper<Derived, ItemProperty>::insertItemBefore(ItemProperty* newItem, 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();
 
-    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.
     m_values.insert(index, newItem);
     newItem->setOwnerList(this);
 
-    return newItem.release();
+    return newItem;
 }
 
 template<typename Derived, typename ItemProperty>
-RawPtr<ItemProperty> SVGListPropertyHelper<Derived, ItemProperty>::removeItem(size_t index, ExceptionState& exceptionState)
+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);
-    RawPtr<ItemPropertyType> oldItem = m_values.at(index);
+    ItemPropertyType* oldItem = m_values.at(index);
     m_values.remove(index);
     oldItem->setOwnerList(0);
-    return oldItem.release();
+    return oldItem;
 }
 
 template<typename Derived, typename ItemProperty>
-RawPtr<ItemProperty> SVGListPropertyHelper<Derived, ItemProperty>::appendItem(RawPtr<ItemProperty> passNewItem)
+ItemProperty* SVGListPropertyHelper<Derived, ItemProperty>::appendItem(ItemProperty* newItem)
 {
-    RawPtr<ItemPropertyType> newItem = passNewItem;
-
     // Append the value and wrapper at the end of the list.
     append(newItem);
 
-    return newItem.release();
+    return newItem;
 }
 
 template<typename Derived, typename ItemProperty>
-RawPtr<ItemProperty> SVGListPropertyHelper<Derived, ItemProperty>::replaceItem(RawPtr<ItemProperty> passNewItem, size_t index, ExceptionState& exceptionState)
+ItemProperty* SVGListPropertyHelper<Derived, ItemProperty>::replaceItem(ItemProperty* newItem, size_t index, ExceptionState& exceptionState)
 {
     if (!checkIndexBound(index, exceptionState))
         return nullptr;
 
-    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.
         exceptionState.throwDOMException(IndexSizeError, String::format("Failed to replace the provided item at index %zu.", index));
@@ -302,7 +290,7 @@
     position = newItem;
     newItem->setOwnerList(this);
 
-    return newItem.release();
+    return newItem;
 }
 
 template<typename Derived, typename ItemProperty>
@@ -317,16 +305,14 @@
 }
 
 template<typename Derived, typename ItemProperty>
-size_t SVGListPropertyHelper<Derived, ItemProperty>::findItem(RawPtr<ItemPropertyType> item)
+size_t SVGListPropertyHelper<Derived, ItemProperty>::findItem(ItemPropertyType* item)
 {
     return m_values.find(item);
 }
 
 template<typename Derived, typename ItemProperty>
-void SVGListPropertyHelper<Derived, ItemProperty>::deepCopy(RawPtr<Derived> passFrom)
+void SVGListPropertyHelper<Derived, ItemProperty>::deepCopy(Derived* from)
 {
-    RawPtr<Derived> from = passFrom;
-
     clear();
     typename HeapVector<Member<ItemPropertyType>>::const_iterator it = from->m_values.begin();
     typename HeapVector<Member<ItemPropertyType>>::const_iterator itEnd = from->m_values.end();
@@ -336,11 +322,8 @@
 }
 
 template<typename Derived, typename ItemProperty>
-bool SVGListPropertyHelper<Derived, ItemProperty>::adjustFromToListValues(RawPtr<Derived> passFromList, RawPtr<Derived> passToList, float percentage, AnimationMode mode)
+bool SVGListPropertyHelper<Derived, ItemProperty>::adjustFromToListValues(Derived* fromList, Derived* toList, float percentage, AnimationMode mode)
 {
-    RawPtr<Derived> fromList = passFromList;
-    RawPtr<Derived> toList = passToList;
-
     // If no 'to' value is given, nothing to animate.
     size_t toListSize = toList->length();
     if (!toListSize)
diff --git a/third_party/WebKit/Source/core/svg/properties/SVGListPropertyTearOffHelper.h b/third_party/WebKit/Source/core/svg/properties/SVGListPropertyTearOffHelper.h
index d189f6c..189af1e 100644
--- a/third_party/WebKit/Source/core/svg/properties/SVGListPropertyTearOffHelper.h
+++ b/third_party/WebKit/Source/core/svg/properties/SVGListPropertyTearOffHelper.h
@@ -45,10 +45,8 @@
     typedef ItemProperty ItemPropertyType;
     typedef typename ItemPropertyType::TearOffType ItemTearOffType;
 
-    static RawPtr<ItemPropertyType> getValueForInsertionFromTearOff(RawPtr<ItemTearOffType> passNewItem, SVGElement* contextElement, const QualifiedName& attributeName)
+    static ItemPropertyType* getValueForInsertionFromTearOff(ItemTearOffType* newItem, SVGElement* contextElement, const QualifiedName& attributeName)
     {
-        RawPtr<ItemTearOffType> newItem = passNewItem;
-
         // |newItem| is immutable, OR
         // |newItem| belongs to a SVGElement, but it does not belong to an animated list
         // (for example: "textElement.x.baseVal.appendItem(rectElement.width.baseVal)")
@@ -67,7 +65,7 @@
         return newItem->target();
     }
 
-    static RawPtr<ItemTearOffType> createTearOff(RawPtr<ItemPropertyType> value, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName)
+    static ItemTearOffType* createTearOff(ItemPropertyType* value, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName)
     {
         return ItemTearOffType::create(value, contextElement, propertyIsAnimVal, attributeName);
     }
@@ -99,10 +97,8 @@
         toDerived()->target()->clear();
     }
 
-    RawPtr<ItemTearOffType> initialize(RawPtr<ItemTearOffType> passItem, ExceptionState& exceptionState)
+    ItemTearOffType* initialize(ItemTearOffType* item, ExceptionState& exceptionState)
     {
-        RawPtr<ItemTearOffType> item = passItem;
-
         if (toDerived()->isImmutable()) {
             exceptionState.throwDOMException(NoModificationAllowedError, "The object is read-only.");
             return nullptr;
@@ -110,22 +106,20 @@
 
         ASSERT(item);
 
-        RawPtr<ItemPropertyType> value = toDerived()->target()->initialize(getValueForInsertionFromTearOff(item));
+        ItemPropertyType* value = toDerived()->target()->initialize(getValueForInsertionFromTearOff(item));
         toDerived()->commitChange();
 
-        return createItemTearOff(value.release());
+        return createItemTearOff(value);
     }
 
-    RawPtr<ItemTearOffType> getItem(unsigned long index, ExceptionState& exceptionState)
+    ItemTearOffType* getItem(unsigned long index, ExceptionState& exceptionState)
     {
-        RawPtr<ItemPropertyType> value = toDerived()->target()->getItem(index, exceptionState);
-        return createItemTearOff(value.release());
+        ItemPropertyType* value = toDerived()->target()->getItem(index, exceptionState);
+        return createItemTearOff(value);
     }
 
-    RawPtr<ItemTearOffType> insertItemBefore(RawPtr<ItemTearOffType> passItem, unsigned long index, ExceptionState& exceptionState)
+    ItemTearOffType* insertItemBefore(ItemTearOffType* item, unsigned long index, ExceptionState& exceptionState)
     {
-        RawPtr<ItemTearOffType> item = passItem;
-
         if (toDerived()->isImmutable()) {
             exceptionState.throwDOMException(NoModificationAllowedError, "The object is read-only.");
             return nullptr;
@@ -133,16 +127,14 @@
 
         ASSERT(item);
 
-        RawPtr<ItemPropertyType> value = toDerived()->target()->insertItemBefore(getValueForInsertionFromTearOff(item), index);
+        ItemPropertyType* value = toDerived()->target()->insertItemBefore(getValueForInsertionFromTearOff(item), index);
         toDerived()->commitChange();
 
-        return createItemTearOff(value.release());
+        return createItemTearOff(value);
     }
 
-    RawPtr<ItemTearOffType> replaceItem(RawPtr<ItemTearOffType> passItem, unsigned long index, ExceptionState& exceptionState)
+    ItemTearOffType* replaceItem(ItemTearOffType* item, unsigned long index, ExceptionState& exceptionState)
     {
-        RawPtr<ItemTearOffType> item = passItem;
-
         if (toDerived()->isImmutable()) {
             exceptionState.throwDOMException(NoModificationAllowedError, "The object is read-only.");
             return nullptr;
@@ -150,35 +142,33 @@
 
         ASSERT(item);
 
-        RawPtr<ItemPropertyType> value = toDerived()->target()->replaceItem(getValueForInsertionFromTearOff(item), index, exceptionState);
+        ItemPropertyType* value = toDerived()->target()->replaceItem(getValueForInsertionFromTearOff(item), index, exceptionState);
         toDerived()->commitChange();
 
-        return createItemTearOff(value.release());
+        return createItemTearOff(value);
     }
 
-    bool anonymousIndexedSetter(unsigned index, RawPtr<ItemTearOffType> passItem, ExceptionState& exceptionState)
+    bool anonymousIndexedSetter(unsigned index, ItemTearOffType* item, ExceptionState& exceptionState)
     {
-        replaceItem(passItem, index, exceptionState);
+        replaceItem(item, index, exceptionState);
         return true;
     }
 
-    RawPtr<ItemTearOffType> removeItem(unsigned long index, ExceptionState& exceptionState)
+    ItemTearOffType* removeItem(unsigned long index, ExceptionState& exceptionState)
     {
         if (toDerived()->isImmutable()) {
             exceptionState.throwDOMException(NoModificationAllowedError, "The object is read-only.");
             return nullptr;
         }
 
-        RawPtr<ItemPropertyType> value = toDerived()->target()->removeItem(index, exceptionState);
+        ItemPropertyType* value = toDerived()->target()->removeItem(index, exceptionState);
         toDerived()->commitChange();
 
-        return createItemTearOff(value.release());
+        return createItemTearOff(value);
     }
 
-    RawPtr<ItemTearOffType> appendItem(RawPtr<ItemTearOffType> passItem, ExceptionState& exceptionState)
+    ItemTearOffType* appendItem(ItemTearOffType* item, ExceptionState& exceptionState)
     {
-        RawPtr<ItemTearOffType> item = passItem;
-
         if (toDerived()->isImmutable()) {
             exceptionState.throwDOMException(NoModificationAllowedError, "The object is read-only.");
             return nullptr;
@@ -186,24 +176,24 @@
 
         ASSERT(item);
 
-        RawPtr<ItemPropertyType> value = toDerived()->target()->appendItem(getValueForInsertionFromTearOff(item));
+        ItemPropertyType* value = toDerived()->target()->appendItem(getValueForInsertionFromTearOff(item));
         toDerived()->commitChange();
 
-        return createItemTearOff(value.release());
+        return createItemTearOff(value);
     }
 
 protected:
-    SVGListPropertyTearOffHelper(RawPtr<ListPropertyType> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
+    SVGListPropertyTearOffHelper(ListPropertyType* target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
         : SVGPropertyTearOff<ListPropertyType>(target, contextElement, propertyIsAnimVal, attributeName)
     {
     }
 
-    RawPtr<ItemPropertyType> getValueForInsertionFromTearOff(RawPtr<ItemTearOffType> passNewItem)
+    ItemPropertyType* getValueForInsertionFromTearOff(ItemTearOffType* newItem)
     {
-        return ItemTraits::getValueForInsertionFromTearOff(passNewItem, toDerived()->contextElement(), toDerived()->attributeName());
+        return ItemTraits::getValueForInsertionFromTearOff(newItem, toDerived()->contextElement(), toDerived()->attributeName());
     }
 
-    RawPtr<ItemTearOffType> createItemTearOff(RawPtr<ItemPropertyType> value)
+    ItemTearOffType* createItemTearOff(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 c081c4e..c4e9637 100644
--- a/third_party/WebKit/Source/core/svg/properties/SVGProperty.h
+++ b/third_party/WebKit/Source/core/svg/properties/SVGProperty.h
@@ -61,14 +61,14 @@
 
     // FIXME: remove this in WebAnimations transition.
     // This is used from SVGAnimatedNewPropertyAnimator for its animate-by-string implementation.
-    virtual RawPtr<SVGPropertyBase> cloneForAnimation(const String&) const = 0;
+    virtual 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(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;
+    virtual void add(SVGPropertyBase*, SVGElement*) = 0;
+    virtual void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, SVGPropertyBase* from, SVGPropertyBase* to, SVGPropertyBase* toAtEndOfDurationValue, SVGElement*) = 0;
+    virtual float calculateDistance(SVGPropertyBase* to, SVGElement*) = 0;
 
     AnimatedPropertyType type() const
     {
@@ -108,13 +108,7 @@
 };
 
 #define DEFINE_SVG_PROPERTY_TYPE_CASTS(thisType)\
-    DEFINE_TYPE_CASTS(thisType, SVGPropertyBase, value, value->type() == thisType::classType(), value.type() == thisType::classType());\
-    inline RawPtr<thisType> to##thisType(RawPtr<SVGPropertyBase> passBase)\
-    {\
-        RawPtr<SVGPropertyBase> base = passBase;\
-        ASSERT(base->type() == thisType::classType());\
-        return static_pointer_cast<thisType>(base.release());\
-    }
+    DEFINE_TYPE_CASTS(thisType, SVGPropertyBase, value, value->type() == thisType::classType(), value.type() == thisType::classType());
 
 } // namespace blink
 
diff --git a/third_party/WebKit/Source/core/svg/properties/SVGPropertyHelper.h b/third_party/WebKit/Source/core/svg/properties/SVGPropertyHelper.h
index 15828f4..e72a05f 100644
--- a/third_party/WebKit/Source/core/svg/properties/SVGPropertyHelper.h
+++ b/third_party/WebKit/Source/core/svg/properties/SVGPropertyHelper.h
@@ -17,11 +17,11 @@
     {
     }
 
-    virtual RawPtr<SVGPropertyBase> cloneForAnimation(const String& value) const
+    virtual SVGPropertyBase* cloneForAnimation(const String& value) const
     {
-        RawPtr<Derived> property = Derived::create();
+        Derived* property = Derived::create();
         property->setValueAsString(value);
-        return property.release();
+        return property;
     }
 };
 
diff --git a/third_party/WebKit/Source/core/svg/properties/SVGPropertyTearOff.h b/third_party/WebKit/Source/core/svg/properties/SVGPropertyTearOff.h
index ef2d5ad..3020b32a 100644
--- a/third_party/WebKit/Source/core/svg/properties/SVGPropertyTearOff.h
+++ b/third_party/WebKit/Source/core/svg/properties/SVGPropertyTearOff.h
@@ -131,7 +131,7 @@
         return m_target.get();
     }
 
-    void setTarget(RawPtr<Property> target)
+    void setTarget(Property* target)
     {
         m_target = target;
     }
@@ -148,7 +148,7 @@
     }
 
 protected:
-    SVGPropertyTearOff(RawPtr<Property> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
+    SVGPropertyTearOff(Property* target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = QualifiedName::null())
         : SVGPropertyTearOffBase(contextElement, propertyIsAnimVal, attributeName)
         , m_target(target)
     {
diff --git a/third_party/WebKit/Source/core/testing/Internals.cpp b/third_party/WebKit/Source/core/testing/Internals.cpp
index 1ae4aef..a46a23e3 100644
--- a/third_party/WebKit/Source/core/testing/Internals.cpp
+++ b/third_party/WebKit/Source/core/testing/Internals.cpp
@@ -2154,7 +2154,7 @@
 
 void Internals::forceReload(bool bypassCache)
 {
-    frame()->reload(bypassCache ? FrameLoadTypeReloadBypassingCache : FrameLoadTypeReload, NotClientRedirect);
+    frame()->reload(bypassCache ? FrameLoadTypeReloadBypassingCache : FrameLoadTypeReload, ClientRedirectPolicy::NotClientRedirect);
 }
 
 ClientRect* Internals::selectionBounds(ExceptionState& exceptionState)
diff --git a/third_party/WebKit/Source/modules/fetch/FetchManager.cpp b/third_party/WebKit/Source/modules/fetch/FetchManager.cpp
index 5c6a490..f640ee6 100644
--- a/third_party/WebKit/Source/modules/fetch/FetchManager.cpp
+++ b/third_party/WebKit/Source/modules/fetch/FetchManager.cpp
@@ -579,24 +579,11 @@
     //
     // The following code also invokes "determine request's referrer" which is
     // written in "Main fetch" operation.
-    ASSERT(m_request->getReferrerPolicy() == ReferrerPolicyDefault);
-    // Request's referrer policy is always default, so use the client's one.
-    // TODO(yhirano): Fix here when we introduce requet's referrer policy.
-    ReferrerPolicy policy = m_executionContext->getReferrerPolicy();
-    if (m_request->referrerString() == FetchRequestData::clientReferrerString()) {
-        String referrerURL;
-        if (m_executionContext->isDocument()) {
-            Document* document = toDocument(m_executionContext);
-            referrerURL = document->outgoingReferrer();
-        } else if (m_executionContext->isWorkerGlobalScope()) {
-            referrerURL = m_executionContext->url().strippedForUseAsReferrer();
-        }
-        request.setHTTPReferrer(SecurityPolicy::generateReferrer(policy, m_request->url(), referrerURL));
-    } else {
-        // Note that generateReferrer generates |no-referrer| from |no-referrer|
-        // referrer string (i.e. String()).
-        request.setHTTPReferrer(SecurityPolicy::generateReferrer(policy, m_request->url(), m_request->referrerString()));
-    }
+    const ReferrerPolicy referrerPolicy = m_request->getReferrerPolicy() == ReferrerPolicyDefault ? m_executionContext->getReferrerPolicy() : m_request->getReferrerPolicy();
+    const String referrerString = m_request->referrerString() == FetchRequestData::clientReferrerString() ? m_executionContext->outgoingReferrer() : m_request->referrerString();
+    // Note that generateReferrer generates |no-referrer| from |no-referrer|
+    // referrer string (i.e. String()).
+    request.setHTTPReferrer(SecurityPolicy::generateReferrer(referrerPolicy, m_request->url(), referrerString));
     request.setSkipServiceWorker(m_isIsolatedWorld);
 
     // "3. Append `Host`, ..."
diff --git a/third_party/WebKit/Source/modules/plugins/DOMPluginArray.cpp b/third_party/WebKit/Source/modules/plugins/DOMPluginArray.cpp
index 874762f..e2a931f1 100644
--- a/third_party/WebKit/Source/modules/plugins/DOMPluginArray.cpp
+++ b/third_party/WebKit/Source/modules/plugins/DOMPluginArray.cpp
@@ -75,7 +75,7 @@
         return;
     Page::refreshPlugins();
     if (reload)
-        m_frame->reload(FrameLoadTypeReload, ClientRedirect);
+        m_frame->reload(FrameLoadTypeReload, ClientRedirectPolicy::ClientRedirect);
 }
 
 PluginData* DOMPluginArray::pluginData() const
diff --git a/third_party/WebKit/Source/platform/heap/GarbageCollected.h b/third_party/WebKit/Source/platform/heap/GarbageCollected.h
index e0380d1..26d4039 100644
--- a/third_party/WebKit/Source/platform/heap/GarbageCollected.h
+++ b/third_party/WebKit/Source/platform/heap/GarbageCollected.h
@@ -197,6 +197,7 @@
 // when the constructor of the recorded GarbageCollectedMixinConstructorMarker
 // runs.
 #define USING_GARBAGE_COLLECTED_MIXIN(TYPE)                             \
+    IS_GARBAGE_COLLECTED_TYPE();                                        \
     DEFINE_GARBAGE_COLLECTED_MIXIN_METHODS(blink::Visitor*, TYPE)       \
     DEFINE_GARBAGE_COLLECTED_MIXIN_METHODS(blink::InlinedGlobalMarkingVisitor, TYPE) \
     DEFINE_GARBAGE_COLLECTED_MIXIN_CONSTRUCTOR_MARKER(TYPE)             \
diff --git a/third_party/WebKit/Source/platform/heap/HeapTest.cpp b/third_party/WebKit/Source/platform/heap/HeapTest.cpp
index 2cbe177c..301efe4 100644
--- a/third_party/WebKit/Source/platform/heap/HeapTest.cpp
+++ b/third_party/WebKit/Source/platform/heap/HeapTest.cpp
@@ -1538,6 +1538,8 @@
 private:
     UseMixin()
     {
+        // Verify that WTF::IsGarbageCollectedType<> works as expected for mixins.
+        static_assert(WTF::IsGarbageCollectedType<UseMixin>::value, "IsGarbageCollectedType<> sanity check failed for GC mixin.");
         s_traceCount = 0;
     }
 };
diff --git a/third_party/WebKit/Source/platform/network/ResourceRequest.cpp b/third_party/WebKit/Source/platform/network/ResourceRequest.cpp
index 549422c..02699d9 100644
--- a/third_party/WebKit/Source/platform/network/ResourceRequest.cpp
+++ b/third_party/WebKit/Source/platform/network/ResourceRequest.cpp
@@ -323,49 +323,6 @@
     m_httpHeaderFields.remove(name);
 }
 
-bool ResourceRequest::compare(const ResourceRequest& a, const ResourceRequest& b)
-{
-    if (a.url() != b.url())
-        return false;
-
-    if (a.getCachePolicy() != b.getCachePolicy())
-        return false;
-
-    if (a.timeoutInterval() != b.timeoutInterval())
-        return false;
-
-    if (a.firstPartyForCookies() != b.firstPartyForCookies())
-        return false;
-
-    if (a.httpMethod() != b.httpMethod())
-        return false;
-
-    if (a.allowStoredCredentials() != b.allowStoredCredentials())
-        return false;
-
-    if (a.priority() != b.priority())
-        return false;
-
-    if (a.getReferrerPolicy() != b.getReferrerPolicy())
-        return false;
-
-    EncodedFormData* formDataA = a.httpBody();
-    EncodedFormData* formDataB = b.httpBody();
-
-    if (!formDataA)
-        return !formDataB;
-    if (!formDataB)
-        return !formDataA;
-
-    if (*formDataA != *formDataB)
-        return false;
-
-    if (a.httpHeaderFields() != b.httpHeaderFields())
-        return false;
-
-    return true;
-}
-
 void ResourceRequest::setExternalRequestStateFromRequestorAddressSpace(WebAddressSpace requestorSpace)
 {
     static_assert(WebAddressSpaceLocal < WebAddressSpacePrivate, "Local is inside Private");
diff --git a/third_party/WebKit/Source/platform/network/ResourceRequest.h b/third_party/WebKit/Source/platform/network/ResourceRequest.h
index f97b9ff..b3b9d17 100644
--- a/third_party/WebKit/Source/platform/network/ResourceRequest.h
+++ b/third_party/WebKit/Source/platform/network/ResourceRequest.h
@@ -233,8 +233,6 @@
     bool cacheControlContainsNoStore() const;
     bool hasCacheValidatorFields() const;
 
-    static bool compare(const ResourceRequest&, const ResourceRequest&);
-
     bool checkForBrowserSideNavigation() const { return m_checkForBrowserSideNavigation; }
     void setCheckForBrowserSideNavigation(bool check) { m_checkForBrowserSideNavigation = check; }
 
@@ -298,9 +296,6 @@
     bool m_followedRedirect;
 };
 
-inline bool operator==(const ResourceRequest& a, const ResourceRequest& b) { return ResourceRequest::compare(a, b); }
-inline bool operator!=(ResourceRequest& a, const ResourceRequest& b) { return !(a == b); }
-
 struct CrossThreadResourceRequestData {
     WTF_MAKE_NONCOPYABLE(CrossThreadResourceRequestData); USING_FAST_MALLOC(CrossThreadResourceRequestData);
 public:
diff --git a/third_party/WebKit/Source/web/AssertMatchingEnums.cpp b/third_party/WebKit/Source/web/AssertMatchingEnums.cpp
index 2452c60a..0337524e 100644
--- a/third_party/WebKit/Source/web/AssertMatchingEnums.cpp
+++ b/third_party/WebKit/Source/web/AssertMatchingEnums.cpp
@@ -40,6 +40,7 @@
 #include "core/editing/markers/DocumentMarker.h"
 #include "core/fileapi/FileError.h"
 #include "core/frame/Frame.h"
+#include "core/frame/FrameTypes.h"
 #include "core/frame/Settings.h"
 #include "core/frame/csp/ContentSecurityPolicy.h"
 #include "core/html/HTMLFormElement.h"
@@ -109,6 +110,7 @@
 #include "public/platform/modules/indexeddb/WebIDBTypes.h"
 #include "public/web/WebAXEnums.h"
 #include "public/web/WebAXObject.h"
+#include "public/web/WebClientRedirectPolicy.h"
 #include "public/web/WebConsoleMessage.h"
 #include "public/web/WebContentSecurityPolicy.h"
 #include "public/web/WebFormElement.h"
@@ -382,6 +384,9 @@
 STATIC_ASSERT_ENUM(WebApplicationCacheHost::CachedEvent, ApplicationCacheHost::CACHED_EVENT);
 STATIC_ASSERT_ENUM(WebApplicationCacheHost::ObsoleteEvent, ApplicationCacheHost::OBSOLETE_EVENT);
 
+STATIC_ASSERT_ENUM(WebClientRedirectPolicy::NotClientRedirect, ClientRedirectPolicy::NotClientRedirect);
+STATIC_ASSERT_ENUM(WebClientRedirectPolicy::ClientRedirect, ClientRedirectPolicy::ClientRedirect);
+
 STATIC_ASSERT_ENUM(WebCursorInfo::TypePointer, Cursor::Pointer);
 STATIC_ASSERT_ENUM(WebCursorInfo::TypeCross, Cursor::Cross);
 STATIC_ASSERT_ENUM(WebCursorInfo::TypeHand, Cursor::Hand);
diff --git a/third_party/WebKit/Source/web/RemoteFrameClientImpl.cpp b/third_party/WebKit/Source/web/RemoteFrameClientImpl.cpp
index 6a38461..037c227 100644
--- a/third_party/WebKit/Source/web/RemoteFrameClientImpl.cpp
+++ b/third_party/WebKit/Source/web/RemoteFrameClientImpl.cpp
@@ -140,8 +140,9 @@
 
 void RemoteFrameClientImpl::reload(FrameLoadType loadType, ClientRedirectPolicy clientRedirectPolicy)
 {
+    ASSERT(loadType == FrameLoadTypeReload || loadType == FrameLoadTypeReloadBypassingCache);
     if (m_webFrame->client())
-        m_webFrame->client()->reload(loadType == FrameLoadTypeReloadBypassingCache, clientRedirectPolicy == ClientRedirect);
+        m_webFrame->client()->reload(static_cast<WebFrameLoadType>(loadType), static_cast<WebClientRedirectPolicy>(clientRedirectPolicy));
 }
 
 unsigned RemoteFrameClientImpl::backForwardLength()
diff --git a/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp b/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp
index d7c1ff6..668e7cb 100644
--- a/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp
+++ b/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp
@@ -850,20 +850,19 @@
     return BindingSecurity::shouldAllowAccessToFrame(mainThreadIsolate(), callingDOMWindow(mainThreadIsolate()), target->toImplBase()->frame(), DoNotReportSecurityError);
 }
 
-void WebLocalFrameImpl::reload(bool ignoreCache)
+void WebLocalFrameImpl::reload(WebFrameLoadType loadType)
 {
     // TODO(clamy): Remove this function once RenderFrame calls load for all
     // requests.
-    reloadWithOverrideURL(KURL(), ignoreCache);
+    reloadWithOverrideURL(KURL(), loadType);
 }
 
-void WebLocalFrameImpl::reloadWithOverrideURL(const WebURL& overrideUrl, bool ignoreCache)
+void WebLocalFrameImpl::reloadWithOverrideURL(const WebURL& overrideUrl, WebFrameLoadType loadType)
 {
     // TODO(clamy): Remove this function once RenderFrame calls load for all
     // requests.
     DCHECK(frame());
-    WebFrameLoadType loadType = ignoreCache ?
-        WebFrameLoadType::ReloadBypassingCache : WebFrameLoadType::Reload;
+    DCHECK(loadType == WebFrameLoadType::Reload || loadType == WebFrameLoadType::ReloadBypassingCache);
     WebURLRequest request = requestForReload(loadType, overrideUrl);
     if (request.isNull())
         return;
@@ -1928,7 +1927,7 @@
 
     FrameLoadRequest frameRequest = FrameLoadRequest(nullptr, resourceRequest);
     if (isClientRedirect)
-        frameRequest.setClientRedirect(ClientRedirect);
+        frameRequest.setClientRedirect(ClientRedirectPolicy::ClientRedirect);
     RawPtr<HistoryItem> historyItem = RawPtr<HistoryItem>(item);
     frame()->loader().load(
         frameRequest, static_cast<FrameLoadType>(webFrameLoadType), historyItem.get(),
@@ -1958,7 +1957,7 @@
     DCHECK(frameRequest.substituteData().isValid());
     frameRequest.setReplacesCurrentItem(replace);
     if (isClientRedirect)
-        frameRequest.setClientRedirect(ClientRedirect);
+        frameRequest.setClientRedirect(ClientRedirectPolicy::ClientRedirect);
 
     RawPtr<HistoryItem> historyItem = RawPtr<HistoryItem>(item);
     frame()->loader().load(
diff --git a/third_party/WebKit/Source/web/WebLocalFrameImpl.h b/third_party/WebKit/Source/web/WebLocalFrameImpl.h
index 3056ec88..e28c921f 100644
--- a/third_party/WebKit/Source/web/WebLocalFrameImpl.h
+++ b/third_party/WebKit/Source/web/WebLocalFrameImpl.h
@@ -68,6 +68,7 @@
 class WebSuspendableTask;
 class WebView;
 class WebViewImpl;
+enum class WebFrameLoadType;
 struct FrameLoadRequest;
 struct WebPrintParams;
 
@@ -122,8 +123,8 @@
         int argc,
         v8::Local<v8::Value> argv[]) override;
     v8::Local<v8::Context> mainWorldScriptContext() const override;
-    void reload(bool ignoreCache) override;
-    void reloadWithOverrideURL(const WebURL& overrideUrl, bool ignoreCache) override;
+    void reload(WebFrameLoadType) override;
+    void reloadWithOverrideURL(const WebURL& overrideUrl, WebFrameLoadType) override;
     void reloadImage(const WebNode&) override;
     void reloadLoFiImages() override;
     void loadRequest(const WebURLRequest&) override;
diff --git a/third_party/WebKit/Source/web/WebRemoteFrameImpl.cpp b/third_party/WebKit/Source/web/WebRemoteFrameImpl.cpp
index 431d580..d062eb44 100644
--- a/third_party/WebKit/Source/web/WebRemoteFrameImpl.cpp
+++ b/third_party/WebKit/Source/web/WebRemoteFrameImpl.cpp
@@ -265,12 +265,12 @@
     return toV8Context(frame(), DOMWrapperWorld::mainWorld());
 }
 
-void WebRemoteFrameImpl::reload(bool ignoreCache)
+void WebRemoteFrameImpl::reload(WebFrameLoadType)
 {
     ASSERT_NOT_REACHED();
 }
 
-void WebRemoteFrameImpl::reloadWithOverrideURL(const WebURL& overrideUrl, bool ignoreCache)
+void WebRemoteFrameImpl::reloadWithOverrideURL(const WebURL& overrideUrl, WebFrameLoadType)
 {
     ASSERT_NOT_REACHED();
 }
diff --git a/third_party/WebKit/Source/web/WebRemoteFrameImpl.h b/third_party/WebKit/Source/web/WebRemoteFrameImpl.h
index 222137c..b52f8b7e 100644
--- a/third_party/WebKit/Source/web/WebRemoteFrameImpl.h
+++ b/third_party/WebKit/Source/web/WebRemoteFrameImpl.h
@@ -19,6 +19,7 @@
 class FrameHost;
 class FrameOwner;
 class RemoteFrame;
+enum class WebFrameLoadType;
 
 class WEB_EXPORT WebRemoteFrameImpl final : public WebFrameImplBase, WTF_NON_EXPORTED_BASE(public WebRemoteFrame) {
 public:
@@ -66,8 +67,8 @@
         v8::Local<v8::Value> argv[]) override;
     v8::Local<v8::Context> mainWorldScriptContext() const override;
     v8::Local<v8::Context> deprecatedMainWorldScriptContext() const override;
-    void reload(bool ignoreCache) override;
-    void reloadWithOverrideURL(const WebURL& overrideUrl, bool ignoreCache) override;
+    void reload(WebFrameLoadType) override;
+    void reloadWithOverrideURL(const WebURL& overrideUrl, WebFrameLoadType) override;
     void loadRequest(const WebURLRequest&) override;
     void loadHistoryItem(const WebHistoryItem&, WebHistoryLoadType, WebURLRequest::CachePolicy) override;
     void loadHTMLString(
diff --git a/third_party/WebKit/Source/web/WebRuntimeFeatures.cpp b/third_party/WebKit/Source/web/WebRuntimeFeatures.cpp
index a792019..96a7dec 100644
--- a/third_party/WebKit/Source/web/WebRuntimeFeatures.cpp
+++ b/third_party/WebKit/Source/web/WebRuntimeFeatures.cpp
@@ -150,11 +150,6 @@
     RuntimeEnabledFeatures::setMediaCaptureEnabled(enable);
 }
 
-void WebRuntimeFeatures::enableMediaRecorder(bool enable)
-{
-    RuntimeEnabledFeatures::setMediaRecorderEnabled(enable);
-}
-
 void WebRuntimeFeatures::enableNotificationActionIcons(bool enable)
 {
     RuntimeEnabledFeatures::setNotificationActionIconsEnabled(enable);
@@ -255,11 +250,6 @@
     RuntimeEnabledFeatures::setCredentialManagerEnabled(enable);
 }
 
-void WebRuntimeFeatures::enableCSSViewport(bool enable)
-{
-    RuntimeEnabledFeatures::setCSSViewportEnabled(enable);
-}
-
 void WebRuntimeFeatures::enableV8IdleTasks(bool enable)
 {
     RuntimeEnabledFeatures::setV8IdleTasksEnabled(enable);
@@ -275,11 +265,6 @@
     RuntimeEnabledFeatures::setPushMessagingEnabled(enable);
 }
 
-void WebRuntimeFeatures::enablePushMessagingData(bool enable)
-{
-    RuntimeEnabledFeatures::setPushMessagingDataEnabled(enable);
-}
-
 void WebRuntimeFeatures::enableUnsafeES3APIs(bool enable)
 {
     RuntimeEnabledFeatures::setUnsafeES3APIsEnabled(enable);
diff --git a/third_party/WebKit/Source/web/WebViewImpl.cpp b/third_party/WebKit/Source/web/WebViewImpl.cpp
index c335f2d..101b499 100644
--- a/third_party/WebKit/Source/web/WebViewImpl.cpp
+++ b/third_party/WebKit/Source/web/WebViewImpl.cpp
@@ -2838,8 +2838,8 @@
         FrameLoadRequest request = FrameLoadRequest(
             nullptr,
             m_page->deprecatedLocalMainFrame()->loader().resourceRequestForReload(
-                FrameLoadTypeReload, KURL(), ClientRedirect));
-        request.setClientRedirect(ClientRedirect);
+                FrameLoadTypeReload, KURL(), ClientRedirectPolicy::ClientRedirect));
+        request.setClientRedirect(ClientRedirectPolicy::ClientRedirect);
         m_page->deprecatedLocalMainFrame()->loader().load(request, FrameLoadTypeReload);
     }
 }
diff --git a/third_party/WebKit/Source/web/tests/FrameTestHelpers.cpp b/third_party/WebKit/Source/web/tests/FrameTestHelpers.cpp
index 8844846..58d42216 100644
--- a/third_party/WebKit/Source/web/tests/FrameTestHelpers.cpp
+++ b/third_party/WebKit/Source/web/tests/FrameTestHelpers.cpp
@@ -135,13 +135,13 @@
 
 void reloadFrame(WebFrame* frame)
 {
-    frame->reload(false);
+    frame->reload(WebFrameLoadType::Reload);
     pumpPendingRequestsForFrameToLoad(frame);
 }
 
 void reloadFrameIgnoringCache(WebFrame* frame)
 {
-    frame->reload(true);
+    frame->reload(WebFrameLoadType::ReloadBypassingCache);
     pumpPendingRequestsForFrameToLoad(frame);
 }
 
diff --git a/third_party/WebKit/Source/web/tests/WebFrameTest.cpp b/third_party/WebKit/Source/web/tests/WebFrameTest.cpp
index ab618ab..e71a7f6 100644
--- a/third_party/WebKit/Source/web/tests/WebFrameTest.cpp
+++ b/third_party/WebKit/Source/web/tests/WebFrameTest.cpp
@@ -3227,7 +3227,7 @@
     FrameTestHelpers::WebViewHelper webViewHelper(this);
     webViewHelper.initializeAndLoad(m_baseURL + "form.html", false, &webFrameClient);
 
-    webViewHelper.webView()->mainFrame()->reload(true);
+    webViewHelper.webView()->mainFrame()->reload(WebFrameLoadType::ReloadBypassingCache);
     // start another reload before request is delivered.
     FrameTestHelpers::reloadFrameIgnoringCache(webViewHelper.webView()->mainFrame());
 }
@@ -3264,21 +3264,21 @@
     float previousScale = webViewHelper.webViewImpl()->pageScaleFactor();
 
     // Reload the page and end up at the same url. State should be propagated.
-    webViewHelper.webViewImpl()->mainFrame()->reloadWithOverrideURL(toKURL(m_baseURL + firstURL), false);
+    webViewHelper.webViewImpl()->mainFrame()->reloadWithOverrideURL(toKURL(m_baseURL + firstURL), WebFrameLoadType::Reload);
     FrameTestHelpers::pumpPendingRequestsForFrameToLoad(webViewHelper.webViewImpl()->mainFrame());
     EXPECT_EQ(previousOffset.width, webViewHelper.webViewImpl()->mainFrame()->scrollOffset().width);
     EXPECT_EQ(previousOffset.height, webViewHelper.webViewImpl()->mainFrame()->scrollOffset().height);
     EXPECT_EQ(previousScale, webViewHelper.webViewImpl()->pageScaleFactor());
 
     // Reload the page using the cache. State should not be propagated.
-    webViewHelper.webViewImpl()->mainFrame()->reloadWithOverrideURL(toKURL(m_baseURL + secondURL), false);
+    webViewHelper.webViewImpl()->mainFrame()->reloadWithOverrideURL(toKURL(m_baseURL + secondURL), WebFrameLoadType::Reload);
     FrameTestHelpers::pumpPendingRequestsForFrameToLoad(webViewHelper.webViewImpl()->mainFrame());
     EXPECT_EQ(0, webViewHelper.webViewImpl()->mainFrame()->scrollOffset().width);
     EXPECT_EQ(0, webViewHelper.webViewImpl()->mainFrame()->scrollOffset().height);
     EXPECT_EQ(1.0f, webViewHelper.webViewImpl()->pageScaleFactor());
 
     // Reload the page while ignoring the cache. State should not be propagated.
-    webViewHelper.webViewImpl()->mainFrame()->reloadWithOverrideURL(toKURL(m_baseURL + thirdURL), true);
+    webViewHelper.webViewImpl()->mainFrame()->reloadWithOverrideURL(toKURL(m_baseURL + thirdURL), WebFrameLoadType::ReloadBypassingCache);
     FrameTestHelpers::pumpPendingRequestsForFrameToLoad(webViewHelper.webViewImpl()->mainFrame());
     EXPECT_EQ(0, webViewHelper.webViewImpl()->mainFrame()->scrollOffset().width);
     EXPECT_EQ(0, webViewHelper.webViewImpl()->mainFrame()->scrollOffset().height);
diff --git a/third_party/WebKit/Source/wtf/Deque.h b/third_party/WebKit/Source/wtf/Deque.h
index ba874a8..38c8a3e 100644
--- a/third_party/WebKit/Source/wtf/Deque.h
+++ b/third_party/WebKit/Source/wtf/Deque.h
@@ -121,15 +121,15 @@
 private:
     friend class DequeIteratorBase<T, inlineCapacity, Allocator>;
 
-    class Buffer : public VectorBuffer<T, INLINE_CAPACITY, Allocator> {
-        WTF_MAKE_NONCOPYABLE(Buffer);
+    class BackingBuffer : public VectorBuffer<T, INLINE_CAPACITY, Allocator> {
+        WTF_MAKE_NONCOPYABLE(BackingBuffer);
     private:
         using Base = VectorBuffer<T, INLINE_CAPACITY, Allocator>;
         using Base::m_size;
 
     public:
-        Buffer() : Base() { }
-        explicit Buffer(size_t capacity) : Base(capacity) { }
+        BackingBuffer() : Base() { }
+        explicit BackingBuffer(size_t capacity) : Base(capacity) { }
 
         void setSize(size_t size)
         {
@@ -145,7 +145,7 @@
     void expandCapacityIfNeeded();
     void expandCapacity();
 
-    Buffer m_buffer;
+    BackingBuffer m_buffer;
     unsigned m_start;
     unsigned m_end;
 };
@@ -317,7 +317,7 @@
 template <typename T, size_t inlineCapacity, typename Allocator>
 inline void Deque<T, inlineCapacity, Allocator>::swap(Deque& other)
 {
-    typename Buffer::OffsetRange thisHole;
+    typename BackingBuffer::OffsetRange thisHole;
     if (m_start <= m_end) {
         m_buffer.setSize(m_end);
         thisHole.begin = 0;
@@ -327,7 +327,7 @@
         thisHole.begin = m_end;
         thisHole.end = m_start;
     }
-    typename Buffer::OffsetRange otherHole;
+    typename BackingBuffer::OffsetRange otherHole;
     if (other.m_start <= other.m_end) {
         other.m_buffer.setSize(other.m_end);
         otherHole.begin = 0;
diff --git a/third_party/WebKit/Source/wtf/UniquePtrTransitionGuide.md b/third_party/WebKit/Source/wtf/UniquePtrTransitionGuide.md
new file mode 100644
index 0000000..d4bb66f
--- /dev/null
+++ b/third_party/WebKit/Source/wtf/UniquePtrTransitionGuide.md
@@ -0,0 +1,142 @@
+# std::unique_ptr Transition Guide
+
+Now `std::unique_ptr<T>` is available anywhere in Blink. This document goes through various use cases of `OwnPtr<T>`
+and how they get converted to `std::unique_ptr<T>` so you can smoothly switch your mind.
+
+If you have any uncertainties on using `std::unique_ptr<T>`, ask yutak@chromium.org (or other C++ gurus around you)
+for help.
+
+## Creation and Use
+
+|||---|||
+#### OwnPtr
+
+```c++
+void f()
+{
+    OwnPtr<T> owned = adoptPtr(new T(argument));
+    owned->useThis();
+    T& reference = *owned;
+    T* pointer = owned.get();
+    owned.clear();
+    owned = adoptPtr(new T);
+    T* leakedPointer = owned.leakPtr();
+}
+```
+
+#### std::unique_ptr
+
+```c++
+void f()
+{
+    std::unique_ptr<T> owned(new T(argument));
+    owned->useThis();
+    T& reference = *owned;
+    T* pointer = owned.get();
+    owned.reset();      // Or: owned = std::unique_ptr<T>()
+    owned.reset(new T); // Or: owned = std::unique_ptr<T>(...)
+    T* leakedPointer = owned.release();
+}
+```
+|||---|||
+
+## Passing and Receiving
+
+|||---|||
+#### OwnPtr
+
+```c++
+void receive(PassOwnPtr<T> object)
+{
+    OwnPtr<T> localObject = object;
+}
+
+void handOver(PassOwnPtr<T> object)
+{
+    receive(object);
+}
+
+void give()
+{
+    OwnPtr<T> object = adoptPtr(new T);
+    handOver(object.release());
+    // |object| becomes null.
+}
+
+void giveDirectly()
+{
+    handOver(adoptPtr(new T));
+}
+
+PassOwnPtr<T> returning()
+{
+    OwnPtr<T> object = adoptPtr(new T);
+    return object.release();
+}
+
+PassOwnPtr<T> returnDirectly()
+{
+    return adoptPtr(new T);
+}
+```
+
+#### std::unique_ptr
+
+```c++
+void receive(std::unique_ptr<T> object)
+{
+    // It is not necessary to take the object locally. †1
+}
+
+void handOver(std::unique_ptr<T> object)
+{
+    receive(std::move(object)); // †2
+}
+
+void give()
+{
+    std::unique_ptr<T> object(new T);
+    handOver(std::move(object)); // †2
+    // |object| becomes null.
+}
+
+void giveDirectly()
+{
+    handOver(std::unique_ptr<T>(new T)); // †3
+}
+
+std::unique_ptr<T> returning()
+{
+    std::unique_ptr<T> object(new T);
+    return object; // †4
+}
+
+std::unique_ptr<T> returnDirectly()
+{
+    return std::unique_ptr<T>(new T); // †3, 4
+}
+```
+
+|||---|||
+
+†1 Both `OwnPtr<T>` and `PassOwnPtr<T>` correspond to `std::unique_ptr<T>`, so a `std::unique_ptr<T>` in the
+arugment and a `std::unique_ptr<T>` in the local variable are exactly the same.
+
+†2 When you release the ownership of an lvalue, you need to surround it with `std::move()`. What's an lvalue? If
+a value has a name and you can take its address, it's almost certainly an lvalue. In this example, `object` is
+an lvalue.
+
+†3 You don't have to do anything if you release the ownership of an rvalue. An rvalue is a value that is not
+an lvalue, such as literals (`"foobar"`) or temporaries (`111 + 222`).
+
+†4 `return` statements are kind of special in that they don't require `std::move()` on releasing ownership, even with
+an lvalue. This is possible because `return` makes all the local variables go away by going back to the caller.
+
+*** aside
+*Note:* Well, yes, I know, the definitions of lvalues and rvalues here are not very precise. However, the above
+understandings are sufficient in practice. If you want to know further, see
+[the wiki about value categories at cppreference.com](http://en.cppreference.com/w/cpp/language/value_category).
+
+See also [Dana's guide for rvalue references](https://sites.google.com/a/chromium.org/dev/rvalue-references)
+if you want to learn about move semantics.
+***
diff --git a/third_party/WebKit/public/web/WebClientRedirectPolicy.h b/third_party/WebKit/public/web/WebClientRedirectPolicy.h
new file mode 100644
index 0000000..d0d378c
--- /dev/null
+++ b/third_party/WebKit/public/web/WebClientRedirectPolicy.h
@@ -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.
+
+#ifndef WebClientRedirectPolicy_h
+#define WebClientRedirectPolicy_h
+
+namespace blink {
+
+// WebClientRedirectPolicy will affect loading, e.g. ClientRedirect will
+// update HTTP referrer header.
+enum class WebClientRedirectPolicy {
+    NotClientRedirect,
+    ClientRedirect,
+};
+
+} // namespace blink
+
+#endif // WebClientRedirectPolicy_h
diff --git a/third_party/WebKit/public/web/WebFrame.h b/third_party/WebKit/public/web/WebFrame.h
index 537a6f4..139ceea 100644
--- a/third_party/WebKit/public/web/WebFrame.h
+++ b/third_party/WebKit/public/web/WebFrame.h
@@ -42,6 +42,7 @@
 #include "public/platform/WebReferrerPolicy.h"
 #include "public/platform/WebURL.h"
 #include "public/platform/WebURLRequest.h"
+#include "public/web/WebFrameLoadType.h"
 #include "public/web/WebTreeScopeType.h"
 
 struct NPObject;
@@ -337,12 +338,12 @@
     // Navigation ----------------------------------------------------------
 
     // Reload the current document.
-    // True |ignoreCache| explicitly bypasses caches.
-    // False |ignoreCache| revalidates any existing cache entries.
-    virtual void reload(bool ignoreCache = false) = 0;
+    // Note: reload() and reloadWithOverrideURL() will be deprecated.
+    // Do not use these APIs any more, but use loadRequest() instead.
+    virtual void reload(WebFrameLoadType = WebFrameLoadType::Reload) = 0;
 
     // This is used for situations where we want to reload a different URL because of a redirect.
-    virtual void reloadWithOverrideURL(const WebURL& overrideUrl, bool ignoreCache = false) = 0;
+    virtual void reloadWithOverrideURL(const WebURL& overrideUrl, WebFrameLoadType = WebFrameLoadType::Reload) = 0;
 
     // Load the given URL.
     virtual void loadRequest(const WebURLRequest&) = 0;
diff --git a/third_party/WebKit/public/web/WebRemoteFrameClient.h b/third_party/WebKit/public/web/WebRemoteFrameClient.h
index ae545252..980d713 100644
--- a/third_party/WebKit/public/web/WebRemoteFrameClient.h
+++ b/third_party/WebKit/public/web/WebRemoteFrameClient.h
@@ -8,11 +8,12 @@
 #include "public/platform/WebFocusType.h"
 #include "public/platform/WebSecurityOrigin.h"
 #include "public/web/WebDOMMessageEvent.h"
+#include "public/web/WebFrame.h"
 
 namespace blink {
 class WebInputEvent;
-class WebLocalFrame;
-class WebRemoteFrame;
+enum class WebClientRedirectPolicy;
+enum class WebFrameLoadType;
 struct WebRect;
 
 class WebRemoteFrameClient {
@@ -39,7 +40,7 @@
 
     // A remote frame was asked to start a navigation.
     virtual void navigate(const WebURLRequest& request, bool shouldReplaceCurrentEntry) { }
-    virtual void reload(bool ignoreCache, bool isClientRedirect) { }
+    virtual void reload(WebFrameLoadType, WebClientRedirectPolicy) {}
 
     // FIXME: Remove this method once we have input routing in the browser
     // process. See http://crbug.com/339659.
diff --git a/third_party/WebKit/public/web/WebRuntimeFeatures.h b/third_party/WebKit/public/web/WebRuntimeFeatures.h
index 294e1a7..19cebfa 100644
--- a/third_party/WebKit/public/web/WebRuntimeFeatures.h
+++ b/third_party/WebKit/public/web/WebRuntimeFeatures.h
@@ -42,12 +42,12 @@
 // Stable features are enabled by default.
 class WebRuntimeFeatures {
 public:
+    // Enable features with status=experimental listed in
+    // Source/platform/RuntimeEnabledFeatures.in.
     BLINK_EXPORT static void enableExperimentalFeatures(bool);
 
-    BLINK_EXPORT static void enableWebBluetooth(bool);
-
-    BLINK_EXPORT static void enableWebUsb(bool);
-
+    // Enable features with status=test listed in
+    // Source/platform/RuntimeEnabledFeatures.in.
     BLINK_EXPORT static void enableTestOnlyFeatures(bool);
 
     // Enables a feature by its string identifier from
@@ -57,113 +57,60 @@
     // before blink::initialize().
     BLINK_EXPORT static void enableFeatureFromString(const std::string& name, bool enable);
 
-    BLINK_EXPORT static void enableApplicationCache(bool);
-
-    BLINK_EXPORT static void enableAudioOutputDevices(bool);
-
-    BLINK_EXPORT static void enableCanvas2dImageChromium(bool);
-
-    BLINK_EXPORT static void enableDatabase(bool);
-
     BLINK_EXPORT static void enableCompositedSelectionUpdate(bool);
     BLINK_EXPORT static bool isCompositedSelectionUpdateEnabled();
 
-    BLINK_EXPORT static void enableDecodeToYUV(bool);
-
     BLINK_EXPORT static void enableDisplayList2dCanvas(bool);
     BLINK_EXPORT static void forceDisplayList2dCanvas(bool);
     BLINK_EXPORT static void forceDisable2dCanvasCopyOnWrite(bool);
 
-    BLINK_EXPORT static void enableCompositorAnimationTimelines(bool);
-
-    BLINK_EXPORT static void enableDocumentWriteEvaluator(bool);
-
-    BLINK_EXPORT static void enableExperimentalCanvasFeatures(bool);
-
     BLINK_EXPORT static void enableExperimentalFramework(bool);
     BLINK_EXPORT static bool isExperimentalFrameworkEnabled();
 
-    BLINK_EXPORT static void enableFastMobileScrolling(bool);
-
-    BLINK_EXPORT static void enableFileSystem(bool);
-
-    BLINK_EXPORT static void enableImageColorProfiles(bool);
-
-    BLINK_EXPORT static void enableSubpixelFontScaling(bool);
-
-    BLINK_EXPORT static void enableMediaCapture(bool);
-
-    BLINK_EXPORT static void enableMediaRecorder(bool);
-
-    BLINK_EXPORT static void enableNotificationActionIcons(bool);
-
-    BLINK_EXPORT static void enableNotificationConstructor(bool);
-
-    BLINK_EXPORT static void enableNotifications(bool);
-
-    BLINK_EXPORT static void enableNavigatorContentUtils(bool);
-
-    BLINK_EXPORT static void enableNetworkInformation(bool);
-
-    BLINK_EXPORT static void enableOrientationEvent(bool);
-
-    BLINK_EXPORT static void enablePagePopup(bool);
-
-    BLINK_EXPORT static void enablePermissionsAPI(bool);
-
-    BLINK_EXPORT static void enableRequestAutocomplete(bool);
-
-    BLINK_EXPORT static void enableScriptedSpeech(bool);
-
-    BLINK_EXPORT static void enableSlimmingPaintV2(bool);
-
-    BLINK_EXPORT static void enableTouch(bool);
-
-    BLINK_EXPORT static void enableWebGLDraftExtensions(bool);
-
-    BLINK_EXPORT static void enableWebGLImageChromium(bool);
-
-    BLINK_EXPORT static void enableXSLT(bool);
-
-    BLINK_EXPORT static void enableOverlayScrollbars(bool);
-
-    BLINK_EXPORT static void forceOverlayFullscreenVideo(bool);
-
-    BLINK_EXPORT static void enableSharedWorker(bool);
-
-    BLINK_EXPORT static void enablePreciseMemoryInfo(bool);
-
-    BLINK_EXPORT static void enableLayerSquashing(bool) { }
-
+    BLINK_EXPORT static void enableApplicationCache(bool);
+    BLINK_EXPORT static void enableAudioOutputDevices(bool);
+    BLINK_EXPORT static void enableCanvas2dImageChromium(bool);
     BLINK_EXPORT static void enableCredentialManagerAPI(bool);
-
-    BLINK_EXPORT static void enableCSSViewport(bool);
-
-    BLINK_EXPORT static void enableV8IdleTasks(bool);
-
-    BLINK_EXPORT static void enableReducedReferrerGranularity(bool);
-
-    BLINK_EXPORT static void enablePushMessaging(bool);
-
-    BLINK_EXPORT static void enablePushMessagingData(bool);
-
-    BLINK_EXPORT static void enablePushMessagingHasPermission(bool);
-
-    BLINK_EXPORT static void enableUnsafeES3APIs(bool);
-
-    BLINK_EXPORT static void enableWebVR(bool);
-
+    BLINK_EXPORT static void enableDatabase(bool);
+    BLINK_EXPORT static void enableDecodeToYUV(bool);
+    BLINK_EXPORT static void enableDocumentWriteEvaluator(bool);
+    BLINK_EXPORT static void enableExperimentalCanvasFeatures(bool);
+    BLINK_EXPORT static void enableFastMobileScrolling(bool);
+    BLINK_EXPORT static void enableFileSystem(bool);
+    BLINK_EXPORT static void enableImageColorProfiles(bool);
+    BLINK_EXPORT static void enableMediaCapture(bool);
+    BLINK_EXPORT static void enableNavigatorContentUtils(bool);
+    BLINK_EXPORT static void enableNetworkInformation(bool);
     BLINK_EXPORT static void enableNewMediaPlaybackUi(bool);
-
+    BLINK_EXPORT static void enableNotificationActionIcons(bool);
+    BLINK_EXPORT static void enableNotificationConstructor(bool);
+    BLINK_EXPORT static void enableNotifications(bool);
+    BLINK_EXPORT static void enableOrientationEvent(bool);
+    BLINK_EXPORT static void enableOverlayScrollbars(bool);
+    BLINK_EXPORT static void enablePagePopup(bool);
+    BLINK_EXPORT static void enablePermissionsAPI(bool);
+    BLINK_EXPORT static void enablePreciseMemoryInfo(bool);
     BLINK_EXPORT static void enablePresentationAPI(bool);
-
-    BLINK_EXPORT static void enableWebFontsIntervention(bool);
-
-    BLINK_EXPORT static void enableWebFontsInterventionTrigger(bool);
-
-    BLINK_EXPORT static void enableScrollAnchoring(bool);
-
+    BLINK_EXPORT static void enablePushMessaging(bool);
+    BLINK_EXPORT static void enableReducedReferrerGranularity(bool);
     BLINK_EXPORT static void enableRenderingPipelineThrottling(bool);
+    BLINK_EXPORT static void enableRequestAutocomplete(bool);
+    BLINK_EXPORT static void enableScriptedSpeech(bool);
+    BLINK_EXPORT static void enableScrollAnchoring(bool);
+    BLINK_EXPORT static void enableSharedWorker(bool);
+    BLINK_EXPORT static void enableSlimmingPaintV2(bool);
+    BLINK_EXPORT static void enableTouch(bool);
+    BLINK_EXPORT static void enableUnsafeES3APIs(bool);
+    BLINK_EXPORT static void enableV8IdleTasks(bool);
+    BLINK_EXPORT static void enableWebBluetooth(bool);
+    BLINK_EXPORT static void enableWebFontsIntervention(bool);
+    BLINK_EXPORT static void enableWebFontsInterventionTrigger(bool);
+    BLINK_EXPORT static void enableWebGLDraftExtensions(bool);
+    BLINK_EXPORT static void enableWebGLImageChromium(bool);
+    BLINK_EXPORT static void enableWebUsb(bool);
+    BLINK_EXPORT static void enableWebVR(bool);
+    BLINK_EXPORT static void enableXSLT(bool);
+    BLINK_EXPORT static void forceOverlayFullscreenVideo(bool);
 
     // TODO(nhiroki): Remove after ExtendableMessageEvent is shipped
     // (crbug.com/543198).
diff --git a/third_party/qcms/README.chromium b/third_party/qcms/README.chromium
index f808c3c8..db6a2b4a 100644
--- a/third_party/qcms/README.chromium
+++ b/third_party/qcms/README.chromium
@@ -145,6 +145,8 @@
    - https://code.google.com/p/chromium/issues/detail?id=590227
  - Update primaries used to build internal sRGB profile
    - https://code.google.com/p/chromium/issues/detail?id=580917
+ - Update internal sRGB profile test report output
+   - https://code.google.com/p/chromium/issues/detail?id=580917
 
 For the Chromium changes, since the import, in a patch format run:
   git diff b8456f38 src
diff --git a/third_party/qcms/src/tests/qcms_test_internal_srgb.c b/third_party/qcms/src/tests/qcms_test_internal_srgb.c
index 2f8c1fc..12c9d8f 100644
--- a/third_party/qcms/src/tests/qcms_test_internal_srgb.c
+++ b/third_party/qcms/src/tests/qcms_test_internal_srgb.c
@@ -22,7 +22,7 @@
     0xf351, 0x10000, 0x116cc // ( 0.950455, 1.000000, 1.089050 )
 };
 
-static float check_profile_pcs_white_point(const qcms_profile *profile)
+static void check_profile_pcs_white_point(const qcms_profile *profile)
 {
     float rX = s15Fixed16Number_to_float(profile->redColorant.X);
     float gX = s15Fixed16Number_to_float(profile->greenColorant.X);
@@ -34,6 +34,8 @@
     float gZ = s15Fixed16Number_to_float(profile->greenColorant.Z);
     float bZ = s15Fixed16Number_to_float(profile->blueColorant.Z);
 
+    printf("Test PCS white point against expected D50 XYZ values\n");
+
     float X = rX + gX + bX;
     float Y = rY + gY + bY;
     float Z = rZ + gZ + bZ;
@@ -41,14 +43,14 @@
     float x = X / (X + Y + Z);
     float y = Y / (X + Y + Z);
 
-    printf("Test PCS white point error\n");
-    printf("Profile D50 White point test: xyY [ %.6f %.6f %.6f ]\n", x, y, Y);
+    printf("Computed profile D50 White point xyY = [%.6f %.6f %.6f]\n", x, y, Y);
 
-    float xerr = x - 0.345702915;
+    float xerr = x - 0.345702915; // Compute error to ICC spec D50 xyY.
     float yerr = y - 0.358538597;
     float Yerr = Y - 1.000000000;
 
-    return sqrt((xerr * xerr) + (yerr * yerr) + (Yerr * Yerr));
+    printf("D50 white point error = %.6f\n", (float)
+           sqrt((xerr * xerr) + (yerr * yerr) + (Yerr * Yerr)));
 }
 
 static void check_profile_media_white_point(const qcms_profile *profile)
@@ -58,19 +60,18 @@
     int errZ = profile->mediaWhitePoint.Z - D65.Z;
 
     printf("Test media white point against expected D65 XYZ values\n");
-    printf("Internal values = [0x%X, 0x%X, 0x%X]\n",
-            profile->mediaWhitePoint.X, profile->mediaWhitePoint.Y, profile->mediaWhitePoint.Z);
-
-    printf("White point error = [%d, %d, %d]\n\n", errX, errY, errZ);
+    printf("Internal profile D65 values = [0x%X, 0x%X, 0x%X]\n",
+           profile->mediaWhitePoint.X, profile->mediaWhitePoint.Y, profile->mediaWhitePoint.Z);
+    printf("D65 media white point error = [%d, %d, %d]\n\n", errX, errY, errZ);
 }
 
 static s15Fixed16Number check_profile_primaries(const qcms_profile *profile)
 {
-    s15Fixed16Number ret = 0;
     s15Fixed16Number sRGB_internal[3][3];
+    s15Fixed16Number primary_error;
     int i, j;
 
-    printf("Test qcms internal sRGB color primaries against sRGB IEC61966-2.1 color primaries\n");
+    printf("Test qcms internal sRGB color primaries\n");
 
     sRGB_internal[0][0] = profile->redColorant.X;
     sRGB_internal[1][0] = profile->redColorant.Y;
@@ -82,16 +83,17 @@
     sRGB_internal[1][2] = profile->blueColorant.Y;
     sRGB_internal[2][2] = profile->blueColorant.Z;
 
+    primary_error = 0;
     for (i = 0; i < 3; i++) {
         for (j = 0; j < 3; j++) {
             s15Fixed16Number tmp = sRGB_internal[i][j] - sRGB_reference[i][j];
-            printf("\t%d", tmp);
-            ret += abs(tmp);
+            printf(" %d", tmp);
+            primary_error += abs(tmp);
         }
         printf("\n");
     }
 
-    return ret;
+    return primary_error;
 }
 
 static int qcms_test_internal_srgb(size_t width,
@@ -103,7 +105,6 @@
 {
     qcms_profile *profile = qcms_profile_sRGB();
     s15Fixed16Number primary_error;
-    float pcs_error;
 
     if (qcms_profile_is_bogus(profile)) {
         fprintf(stderr, "Failure: the internal sRGB profile failed the bogus profile check\n");
@@ -113,15 +114,15 @@
 
     // Compute tristimulus matrix error.
     primary_error = check_profile_primaries(profile);
-    printf("Total error = 0x%x [%.6f]\n\n", primary_error, primary_error / 65536.0);
+    printf("Total primary error = 0x%x [%.6f]\n\n", primary_error, primary_error / 65536.0);
+
     // Verify media white point correctness.
     check_profile_media_white_point(profile);
-    // Compute distance from ICC D50 xyY.
-    pcs_error = check_profile_pcs_white_point(profile);
-    printf("White point error: %.6f\n", pcs_error);
+
+    // Verify PCS white point correctness.
+    check_profile_pcs_white_point(profile);
 
     qcms_profile_release(profile);
-
     return primary_error;
 }
 
diff --git a/ui/display/win/screen_win.h b/ui/display/win/screen_win.h
index d08f664..da18ed1 100644
--- a/ui/display/win/screen_win.h
+++ b/ui/display/win/screen_win.h
@@ -10,6 +10,7 @@
 #include <vector>
 
 #include "base/macros.h"
+#include "base/memory/scoped_ptr.h"
 #include "ui/display/display_export.h"
 #include "ui/gfx/display_change_notifier.h"
 #include "ui/gfx/native_widget_types.h"