[go: nahoru, domu]

Convert //content/renderer from scoped_ptr to std::unique_ptr

BUG=554298
R=avi@chromium.org

Review URL: https://codereview.chromium.org/1873783003

Cr-Commit-Position: refs/heads/master@{#386267}
diff --git a/content/renderer/accessibility/renderer_accessibility_browsertest.cc b/content/renderer/accessibility/renderer_accessibility_browsertest.cc
index ed8b4eb..1956652 100644
--- a/content/renderer/accessibility/renderer_accessibility_browsertest.cc
+++ b/content/renderer/accessibility/renderer_accessibility_browsertest.cc
@@ -116,7 +116,7 @@
   LoadHTML(html.c_str());
 
   // Creating a RendererAccessibility should sent the tree to the browser.
-  scoped_ptr<TestRendererAccessibility> accessibility(
+  std::unique_ptr<TestRendererAccessibility> accessibility(
       new TestRendererAccessibility(frame()));
   accessibility->SendPendingAccessibilityEvents();
   EXPECT_EQ(4, CountAccessibilityNodesSentToBrowser());
@@ -181,7 +181,7 @@
       "</body>";
   LoadHTML(html.c_str());
 
-  scoped_ptr<TestRendererAccessibility> accessibility(
+  std::unique_ptr<TestRendererAccessibility> accessibility(
       new TestRendererAccessibility(frame()));
   accessibility->SendPendingAccessibilityEvents();
   EXPECT_EQ(4, CountAccessibilityNodesSentToBrowser());
@@ -233,7 +233,7 @@
       "</body>";
   LoadHTML(html.c_str());
 
-  scoped_ptr<TestRendererAccessibility> accessibility(
+  std::unique_ptr<TestRendererAccessibility> accessibility(
       new TestRendererAccessibility(frame()));
   accessibility->SendPendingAccessibilityEvents();
   EXPECT_EQ(3, CountAccessibilityNodesSentToBrowser());
@@ -277,7 +277,7 @@
       "</body>";
   LoadHTML(html.c_str());
 
-  scoped_ptr<TestRendererAccessibility> accessibility(
+  std::unique_ptr<TestRendererAccessibility> accessibility(
       new TestRendererAccessibility(frame()));
   accessibility->SendPendingAccessibilityEvents();
   EXPECT_EQ(7, CountAccessibilityNodesSentToBrowser());
diff --git a/content/renderer/android/email_detector.cc b/content/renderer/android/email_detector.cc
index 9508679..564f341 100644
--- a/content/renderer/android/email_detector.cc
+++ b/content/renderer/android/email_detector.cc
@@ -4,8 +4,9 @@
 
 #include "content/renderer/android/email_detector.h"
 
+#include <memory>
+
 #include "base/logging.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/strings/utf_string_conversions.h"
 #include "content/public/renderer/android_content_detection_prefixes.h"
 #include "net/base/escape.h"
@@ -52,11 +53,8 @@
   icu::UnicodeString pattern(kEmailRegex);
   icu::UnicodeString input(utf16_input.data(), utf16_input.length());
   UErrorCode status = U_ZERO_ERROR;
-  scoped_ptr<icu::RegexMatcher> matcher(
-      new icu::RegexMatcher(pattern,
-                            input,
-                            UREGEX_CASE_INSENSITIVE,
-                            status));
+  std::unique_ptr<icu::RegexMatcher> matcher(
+      new icu::RegexMatcher(pattern, input, UREGEX_CASE_INSENSITIVE, status));
   if (matcher->find()) {
     *start_pos = matcher->start(status);
     DCHECK(U_SUCCESS(status));
diff --git a/content/renderer/android/synchronous_compositor_factory.h b/content/renderer/android/synchronous_compositor_factory.h
index 91185ffb..d9bc10d2 100644
--- a/content/renderer/android/synchronous_compositor_factory.h
+++ b/content/renderer/android/synchronous_compositor_factory.h
@@ -5,8 +5,9 @@
 #ifndef CONTENT_RENDERER_ANDROID_SYNCHRONOUS_COMPOSITOR_FACTORY_H_
 #define CONTENT_RENDERER_ANDROID_SYNCHRONOUS_COMPOSITOR_FACTORY_H_
 
+#include <memory>
+
 #include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
 #include "gpu/config/gpu_info.h"
 #include "third_party/WebKit/public/platform/WebGraphicsContext3D.h"
 
@@ -48,7 +49,7 @@
 
   virtual scoped_refptr<base::SingleThreadTaskRunner>
   GetCompositorTaskRunner() = 0;
-  virtual scoped_ptr<cc::OutputSurface> CreateOutputSurface(
+  virtual std::unique_ptr<cc::OutputSurface> CreateOutputSurface(
       int routing_id,
       uint32_t output_surface_id,
       const scoped_refptr<FrameSwapMessageQueue>& frame_swap_message_queue,
@@ -60,7 +61,7 @@
   virtual SynchronousInputHandlerProxyClient*
   GetSynchronousInputHandlerProxyClient() = 0;
 
-  virtual scoped_ptr<cc::BeginFrameSource> CreateExternalBeginFrameSource(
+  virtual std::unique_ptr<cc::BeginFrameSource> CreateExternalBeginFrameSource(
       int routing_id) = 0;
 
  protected:
diff --git a/content/renderer/android/synchronous_compositor_filter.cc b/content/renderer/android/synchronous_compositor_filter.cc
index ae42cc3..94e800b 100644
--- a/content/renderer/android/synchronous_compositor_filter.cc
+++ b/content/renderer/android/synchronous_compositor_filter.cc
@@ -186,9 +186,10 @@
   Entry& entry = entry_map_[routing_id];
   if (filter_ready_ && entry.IsReady()) {
     DCHECK(!sync_compositor_map_.contains(routing_id));
-    scoped_ptr<SynchronousCompositorProxy> proxy(new SynchronousCompositorProxy(
-        routing_id, this, entry.begin_frame_source,
-        entry.synchronous_input_handler_proxy, &input_handler_));
+    std::unique_ptr<SynchronousCompositorProxy> proxy(
+        new SynchronousCompositorProxy(
+            routing_id, this, entry.begin_frame_source,
+            entry.synchronous_input_handler_proxy, &input_handler_));
     if (entry.output_surface)
       proxy->SetOutputSurface(entry.output_surface);
     sync_compositor_map_.add(routing_id, std::move(proxy));
diff --git a/content/renderer/android/synchronous_compositor_filter.h b/content/renderer/android/synchronous_compositor_filter.h
index dc31ecff0..070f5a2c 100644
--- a/content/renderer/android/synchronous_compositor_filter.h
+++ b/content/renderer/android/synchronous_compositor_filter.h
@@ -7,9 +7,10 @@
 
 #include <stdint.h>
 
+#include <memory>
+
 #include "base/containers/scoped_ptr_hash_map.h"
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/single_thread_task_runner.h"
 #include "content/renderer/android/synchronous_compositor_registry.h"
 #include "content/renderer/input/input_handler_manager_client.h"
@@ -100,7 +101,7 @@
   // Compositor thread-only fields.
   using SyncCompositorMap =
       base::ScopedPtrHashMap<int /* routing_id */,
-                             scoped_ptr<SynchronousCompositorProxy>>;
+                             std::unique_ptr<SynchronousCompositorProxy>>;
   SyncCompositorMap sync_compositor_map_;
   Handler input_handler_;
 
diff --git a/content/renderer/android/synchronous_compositor_output_surface.cc b/content/renderer/android/synchronous_compositor_output_surface.cc
index 567de40..9a9660f 100644
--- a/content/renderer/android/synchronous_compositor_output_surface.cc
+++ b/content/renderer/android/synchronous_compositor_output_surface.cc
@@ -70,7 +70,7 @@
     : cc::OutputSurface(
           context_provider,
           worker_context_provider,
-          scoped_ptr<cc::SoftwareOutputDevice>(new SoftwareDevice(this))),
+          std::unique_ptr<cc::SoftwareOutputDevice>(new SoftwareDevice(this))),
       routing_id_(routing_id),
       output_surface_id_(output_surface_id),
       registry_(registry),
@@ -259,9 +259,9 @@
 }
 
 void SynchronousCompositorOutputSurface::GetMessagesToDeliver(
-    std::vector<scoped_ptr<IPC::Message>>* messages) {
+    std::vector<std::unique_ptr<IPC::Message>>* messages) {
   DCHECK(CalledOnValidThread());
-  scoped_ptr<FrameSwapMessageQueue::SendMessageScope> send_message_scope =
+  std::unique_ptr<FrameSwapMessageQueue::SendMessageScope> send_message_scope =
       frame_swap_message_queue_->AcquireSendMessageScope();
   frame_swap_message_queue_->DrainMessages(messages);
 }
diff --git a/content/renderer/android/synchronous_compositor_output_surface.h b/content/renderer/android/synchronous_compositor_output_surface.h
index 97f4bf9..01315b8 100644
--- a/content/renderer/android/synchronous_compositor_output_surface.h
+++ b/content/renderer/android/synchronous_compositor_output_surface.h
@@ -7,6 +7,7 @@
 
 #include <stddef.h>
 
+#include <memory>
 #include <vector>
 
 #include "base/callback.h"
@@ -14,7 +15,6 @@
 #include "base/compiler_specific.h"
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/threading/thread_checker.h"
 #include "cc/output/compositor_frame.h"
 #include "cc/output/managed_memory_policy.h"
@@ -90,7 +90,8 @@
   void DemandDrawSw(SkCanvas* canvas);
   void SetMemoryPolicy(size_t bytes_limit);
   void SetTreeActivationCallback(const base::Closure& callback);
-  void GetMessagesToDeliver(std::vector<scoped_ptr<IPC::Message>>* messages);
+  void GetMessagesToDeliver(
+      std::vector<std::unique_ptr<IPC::Message>>* messages);
 
   size_t GetMemoryPolicy() const {
     return memory_policy_.bytes_limit_when_visible;
diff --git a/content/renderer/android/synchronous_compositor_proxy.cc b/content/renderer/android/synchronous_compositor_proxy.cc
index dc9c00a..4b1eaca 100644
--- a/content/renderer/android/synchronous_compositor_proxy.cc
+++ b/content/renderer/android/synchronous_compositor_proxy.cc
@@ -128,7 +128,7 @@
 
 void SynchronousCompositorProxy::DeliverMessages() {
   DCHECK(output_surface_);
-  std::vector<scoped_ptr<IPC::Message>> messages;
+  std::vector<std::unique_ptr<IPC::Message>> messages;
   output_surface_->GetMessagesToDeliver(&messages);
   for (auto& msg : messages) {
     Send(msg.release());
diff --git a/content/renderer/android/synchronous_compositor_proxy.h b/content/renderer/android/synchronous_compositor_proxy.h
index 8d89833..da1718c6 100644
--- a/content/renderer/android/synchronous_compositor_proxy.h
+++ b/content/renderer/android/synchronous_compositor_proxy.h
@@ -141,7 +141,7 @@
 
   // From browser.
   size_t bytes_limit_;
-  scoped_ptr<SharedMemoryWithSize> software_draw_shm_;
+  std::unique_ptr<SharedMemoryWithSize> software_draw_shm_;
 
   // To browser.
   mutable uint32_t version_;  // Mustable so PopulateCommonParams can be const.
diff --git a/content/renderer/bluetooth/bluetooth_dispatcher.cc b/content/renderer/bluetooth/bluetooth_dispatcher.cc
index 37805454..a57718c 100644
--- a/content/renderer/bluetooth/bluetooth_dispatcher.cc
+++ b/content/renderer/bluetooth/bluetooth_dispatcher.cc
@@ -11,7 +11,6 @@
 
 #include "base/lazy_instance.h"
 #include "base/memory/ptr_util.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/message_loop/message_loop.h"
 #include "base/thread_task_runner_handle.h"
 #include "content/child/thread_safe_sender.h"
@@ -50,7 +49,7 @@
 
   blink::WebString device_id;
   blink::WebString service_uuid;
-  scoped_ptr<blink::WebBluetoothGetPrimaryServiceCallbacks> callbacks;
+  std::unique_ptr<blink::WebBluetoothGetPrimaryServiceCallbacks> callbacks;
 };
 
 struct BluetoothCharacteristicRequest {
@@ -65,7 +64,7 @@
 
   blink::WebString service_instance_id;
   blink::WebString characteristic_uuid;
-  scoped_ptr<blink::WebBluetoothGetCharacteristicCallbacks> callbacks;
+  std::unique_ptr<blink::WebBluetoothGetCharacteristicCallbacks> callbacks;
 };
 
 struct BluetoothCharacteristicsRequest {
@@ -76,7 +75,7 @@
   ~BluetoothCharacteristicsRequest() {}
 
   blink::WebString service_instance_id;
-  scoped_ptr<blink::WebBluetoothGetCharacteristicsCallbacks> callbacks;
+  std::unique_ptr<blink::WebBluetoothGetCharacteristicsCallbacks> callbacks;
 };
 
 // Struct that holds a pending Start/StopNotifications request.
@@ -103,7 +102,7 @@
   // characteristicObjectRemoved will null any pointers to the object
   // and queue a stop notifications request if necessary.
   blink::WebBluetoothRemoteGATTCharacteristic* characteristic;
-  scoped_ptr<blink::WebBluetoothNotificationsCallbacks> callbacks;
+  std::unique_ptr<blink::WebBluetoothNotificationsCallbacks> callbacks;
   NotificationsRequestType type;
 };
 
diff --git a/content/renderer/bluetooth/web_bluetooth_impl.cc b/content/renderer/bluetooth/web_bluetooth_impl.cc
index 7665e80..01da671f 100644
--- a/content/renderer/bluetooth/web_bluetooth_impl.cc
+++ b/content/renderer/bluetooth/web_bluetooth_impl.cc
@@ -4,6 +4,7 @@
 
 #include "content/renderer/bluetooth/web_bluetooth_impl.h"
 
+#include "base/memory/ptr_util.h"
 #include "content/child/mojo/type_converters.h"
 #include "content/child/thread_safe_sender.h"
 #include "content/public/common/service_registry.h"
@@ -79,7 +80,7 @@
       mojo::Array<uint8_t>::From(value),
       base::Bind(&WebBluetoothImpl::OnWriteValueComplete,
                  base::Unretained(this), value,
-                 base::Passed(make_scoped_ptr(callbacks))));
+                 base::Passed(base::WrapUnique(callbacks))));
 }
 
 void WebBluetoothImpl::startNotifications(
@@ -114,7 +115,7 @@
 
 void WebBluetoothImpl::OnWriteValueComplete(
     const blink::WebVector<uint8_t>& value,
-    scoped_ptr<blink::WebBluetoothWriteValueCallbacks> callbacks,
+    std::unique_ptr<blink::WebBluetoothWriteValueCallbacks> callbacks,
     blink::mojom::WebBluetoothError error) {
   if (error == blink::mojom::WebBluetoothError::SUCCESS) {
     callbacks->onSuccess(value);
diff --git a/content/renderer/bluetooth/web_bluetooth_impl.h b/content/renderer/bluetooth/web_bluetooth_impl.h
index 09fb5e0..682e2a3 100644
--- a/content/renderer/bluetooth/web_bluetooth_impl.h
+++ b/content/renderer/bluetooth/web_bluetooth_impl.h
@@ -80,7 +80,7 @@
  private:
   void OnWriteValueComplete(
       const blink::WebVector<uint8_t>& value,
-      scoped_ptr<blink::WebBluetoothWriteValueCallbacks> callbacks,
+      std::unique_ptr<blink::WebBluetoothWriteValueCallbacks> callbacks,
       blink::mojom::WebBluetoothError error);
 
   BluetoothDispatcher* GetDispatcher();
diff --git a/content/renderer/browser_plugin/browser_plugin.h b/content/renderer/browser_plugin/browser_plugin.h
index 3808e0f7..52156ba 100644
--- a/content/renderer/browser_plugin/browser_plugin.h
+++ b/content/renderer/browser_plugin/browser_plugin.h
@@ -7,8 +7,9 @@
 
 #include "third_party/WebKit/public/web/WebPlugin.h"
 
+#include <memory>
+
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "base/sequenced_task_runner_helpers.h"
 #include "content/renderer/mouse_lock_dispatcher.h"
diff --git a/content/renderer/browser_plugin/browser_plugin_manager.cc b/content/renderer/browser_plugin/browser_plugin_manager.cc
index b6dbd2e9..1982073 100644
--- a/content/renderer/browser_plugin/browser_plugin_manager.cc
+++ b/content/renderer/browser_plugin/browser_plugin_manager.cc
@@ -3,7 +3,9 @@
 // found in the LICENSE file.
 
 #include "content/renderer/browser_plugin/browser_plugin_manager.h"
-#include "base/memory/scoped_ptr.h"
+
+#include <memory>
+
 #include "content/common/browser_plugin/browser_plugin_constants.h"
 #include "content/common/browser_plugin/browser_plugin_messages.h"
 #include "content/common/frame_messages.h"
diff --git a/content/renderer/browser_render_view_browsertest.cc b/content/renderer/browser_render_view_browsertest.cc
index 448120c..90f190e 100644
--- a/content/renderer/browser_render_view_browsertest.cc
+++ b/content/renderer/browser_render_view_browsertest.cc
@@ -84,7 +84,7 @@
   net::HttpCache* cache(
       getter->GetURLRequestContext()->http_transaction_factory()->GetCache());
   DCHECK(cache);
-  scoped_ptr<net::FailingHttpTransactionFactory> factory(
+  std::unique_ptr<net::FailingHttpTransactionFactory> factory(
       new net::FailingHttpTransactionFactory(cache->GetSession(), error));
   // Throw away old version; since this is a browser test, there is no
   // need to restore the old state.
@@ -100,7 +100,7 @@
 
 // Must be called on IO thread.  The callback will be called on
 // completion of cache clearing on the UI thread.
-void BackendClearCache(scoped_ptr<disk_cache::Backend*> backend,
+void BackendClearCache(std::unique_ptr<disk_cache::Backend*> backend,
                        const base::Closure& callback,
                        int rv) {
   DCHECK(*backend);
@@ -117,7 +117,7 @@
   net::HttpCache* cache(
       getter->GetURLRequestContext()->http_transaction_factory()->GetCache());
   DCHECK(cache);
-  scoped_ptr<disk_cache::Backend*> backend(new disk_cache::Backend*);
+  std::unique_ptr<disk_cache::Backend*> backend(new disk_cache::Backend*);
   *backend = NULL;
   disk_cache::Backend** backend_ptr = backend.get();
 
diff --git a/content/renderer/cache_storage/cache_storage_dispatcher.cc b/content/renderer/cache_storage/cache_storage_dispatcher.cc
index 25b5f86..5bc3521d 100644
--- a/content/renderer/cache_storage/cache_storage_dispatcher.cc
+++ b/content/renderer/cache_storage/cache_storage_dispatcher.cc
@@ -296,7 +296,7 @@
                                                        int request_id,
                                                        int cache_id) {
   DCHECK_EQ(thread_id, CurrentWorkerId());
-  scoped_ptr<WebCache> web_cache(
+  std::unique_ptr<WebCache> web_cache(
       new WebCache(weak_factory_.GetWeakPtr(), cache_id));
   web_caches_.AddWithID(web_cache.get(), cache_id);
   UMA_HISTOGRAM_TIMES("ServiceWorkerCache.CacheStorage.Open",
diff --git a/content/renderer/child_frame_compositing_helper.h b/content/renderer/child_frame_compositing_helper.h
index fda84a7..47c20251 100644
--- a/content/renderer/child_frame_compositing_helper.h
+++ b/content/renderer/child_frame_compositing_helper.h
@@ -7,12 +7,12 @@
 
 #include <stdint.h>
 
+#include <memory>
 #include <string>
 #include <vector>
 
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/shared_memory.h"
 #include "base/memory/weak_ptr.h"
 #include "cc/surfaces/surface_id.h"
@@ -122,7 +122,7 @@
   base::WeakPtr<BrowserPlugin> browser_plugin_;
   RenderFrameProxy* render_frame_proxy_;
 
-  scoped_ptr<blink::WebLayer> web_layer_;
+  std::unique_ptr<blink::WebLayer> web_layer_;
   cc::SurfaceId surface_id_;
   blink::WebFrame* frame_;
 
diff --git a/content/renderer/device_sensors/device_light_event_pump.h b/content/renderer/device_sensors/device_light_event_pump.h
index 3561484..3091efb 100644
--- a/content/renderer/device_sensors/device_light_event_pump.h
+++ b/content/renderer/device_sensors/device_light_event_pump.h
@@ -5,8 +5,9 @@
 #ifndef CONTENT_RENDERER_DEVICE_SENSORS_DEVICE_LIGHT_EVENT_PUMP_H_
 #define CONTENT_RENDERER_DEVICE_SENSORS_DEVICE_LIGHT_EVENT_PUMP_H_
 
+#include <memory>
+
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "content/common/device_sensors/device_light_data.h"
 #include "content/renderer/device_sensors/device_sensor_event_pump.h"
 #include "content/renderer/shared_memory_seqlock_reader.h"
@@ -46,7 +47,7 @@
  private:
   bool ShouldFireEvent(double data) const;
 
-  scoped_ptr<DeviceLightSharedMemoryReader> reader_;
+  std::unique_ptr<DeviceLightSharedMemoryReader> reader_;
   double last_seen_data_;
 
   DISALLOW_COPY_AND_ASSIGN(DeviceLightEventPump);
diff --git a/content/renderer/device_sensors/device_light_event_pump_unittest.cc b/content/renderer/device_sensors/device_light_event_pump_unittest.cc
index 8a4f30e..9195df2 100644
--- a/content/renderer/device_sensors/device_light_event_pump_unittest.cc
+++ b/content/renderer/device_sensors/device_light_event_pump_unittest.cc
@@ -90,8 +90,8 @@
   DeviceLightHardwareBuffer* buffer() { return buffer_; }
 
  private:
-  scoped_ptr<MockDeviceLightListener> listener_;
-  scoped_ptr<DeviceLightEventPumpForTesting> light_pump_;
+  std::unique_ptr<MockDeviceLightListener> listener_;
+  std::unique_ptr<DeviceLightEventPumpForTesting> light_pump_;
   base::SharedMemoryHandle handle_;
   base::SharedMemory shared_memory_;
   DeviceLightHardwareBuffer* buffer_;
diff --git a/content/renderer/device_sensors/device_motion_event_pump.h b/content/renderer/device_sensors/device_motion_event_pump.h
index 7ae880e..1fb222920e 100644
--- a/content/renderer/device_sensors/device_motion_event_pump.h
+++ b/content/renderer/device_sensors/device_motion_event_pump.h
@@ -5,8 +5,9 @@
 #ifndef CONTENT_RENDERER_DEVICE_SENSORS_DEVICE_MOTION_EVENT_PUMP_H_
 #define CONTENT_RENDERER_DEVICE_SENSORS_DEVICE_MOTION_EVENT_PUMP_H_
 
+#include <memory>
+
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "content/renderer/device_sensors/device_sensor_event_pump.h"
 #include "content/renderer/shared_memory_seqlock_reader.h"
 #include "third_party/WebKit/public/platform/modules/device_orientation/WebDeviceMotionData.h"
@@ -38,7 +39,7 @@
   void SendStartMessage() override;
   void SendStopMessage() override;
 
-  scoped_ptr<DeviceMotionSharedMemoryReader> reader_;
+  std::unique_ptr<DeviceMotionSharedMemoryReader> reader_;
 
   DISALLOW_COPY_AND_ASSIGN(DeviceMotionEventPump);
 };
diff --git a/content/renderer/device_sensors/device_motion_event_pump_unittest.cc b/content/renderer/device_sensors/device_motion_event_pump_unittest.cc
index 5cb15e8e..1160478 100644
--- a/content/renderer/device_sensors/device_motion_event_pump_unittest.cc
+++ b/content/renderer/device_sensors/device_motion_event_pump_unittest.cc
@@ -2,14 +2,15 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "device_motion_event_pump.h"
+#include "content/renderer/device_sensors/device_motion_event_pump.h"
 
 #include <string.h>
 
+#include <memory>
+
 #include "base/location.h"
 #include "base/logging.h"
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/single_thread_task_runner.h"
 #include "base/thread_task_runner_handle.h"
 #include "content/common/device_sensors/device_motion_hardware_buffer.h"
@@ -119,8 +120,8 @@
   base::SharedMemoryHandle handle() { return handle_; }
 
  private:
-  scoped_ptr<MockDeviceMotionListener> listener_;
-  scoped_ptr<DeviceMotionEventPumpForTesting> motion_pump_;
+  std::unique_ptr<MockDeviceMotionListener> listener_;
+  std::unique_ptr<DeviceMotionEventPumpForTesting> motion_pump_;
   base::SharedMemoryHandle handle_;
   base::SharedMemory shared_memory_;
   DeviceMotionHardwareBuffer* buffer_;
diff --git a/content/renderer/device_sensors/device_orientation_event_pump.h b/content/renderer/device_sensors/device_orientation_event_pump.h
index 74ecacd..26587e7 100644
--- a/content/renderer/device_sensors/device_orientation_event_pump.h
+++ b/content/renderer/device_sensors/device_orientation_event_pump.h
@@ -5,8 +5,9 @@
 #ifndef CONTENT_RENDERER_DEVICE_SENSORS_DEVICE_ORIENTATION_EVENT_PUMP_H_
 #define CONTENT_RENDERER_DEVICE_SENSORS_DEVICE_ORIENTATION_EVENT_PUMP_H_
 
+#include <memory>
+
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "content/renderer/device_sensors/device_sensor_event_pump.h"
 #include "content/renderer/shared_memory_seqlock_reader.h"
 #include "third_party/WebKit/public/platform/modules/device_orientation/WebDeviceOrientationData.h"
@@ -45,7 +46,7 @@
   bool ShouldFireEvent(const blink::WebDeviceOrientationData& data) const;
 
   blink::WebDeviceOrientationData data_;
-  scoped_ptr<DeviceOrientationSharedMemoryReader> reader_;
+  std::unique_ptr<DeviceOrientationSharedMemoryReader> reader_;
 
   DISALLOW_COPY_AND_ASSIGN(DeviceOrientationEventPump);
 };
diff --git a/content/renderer/device_sensors/device_orientation_event_pump_unittest.cc b/content/renderer/device_sensors/device_orientation_event_pump_unittest.cc
index b6ca30a..1221271 100644
--- a/content/renderer/device_sensors/device_orientation_event_pump_unittest.cc
+++ b/content/renderer/device_sensors/device_orientation_event_pump_unittest.cc
@@ -114,8 +114,8 @@
   DeviceOrientationHardwareBuffer* buffer() { return buffer_; }
 
  private:
-  scoped_ptr<MockDeviceOrientationListener> listener_;
-  scoped_ptr<DeviceOrientationEventPumpForTesting> orientation_pump_;
+  std::unique_ptr<MockDeviceOrientationListener> listener_;
+  std::unique_ptr<DeviceOrientationEventPumpForTesting> orientation_pump_;
   base::SharedMemoryHandle handle_;
   base::SharedMemory shared_memory_;
   DeviceOrientationHardwareBuffer* buffer_;
diff --git a/content/renderer/devtools/devtools_agent.h b/content/renderer/devtools/devtools_agent.h
index a54e415..4ae5d7f5 100644
--- a/content/renderer/devtools/devtools_agent.h
+++ b/content/renderer/devtools/devtools_agent.h
@@ -5,11 +5,11 @@
 #ifndef CONTENT_RENDERER_DEVTOOLS_DEVTOOLS_AGENT_H_
 #define CONTENT_RENDERER_DEVTOOLS_DEVTOOLS_AGENT_H_
 
+#include <memory>
 #include <string>
 
 #include "base/callback.h"
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "content/common/content_export.h"
 #include "content/public/common/console_message_level.h"
 #include "content/public/renderer/render_frame_observer.h"
@@ -93,7 +93,7 @@
   RenderFrameImpl* frame_;
   base::Callback<void(int, int, const std::string&, const std::string&)>
       send_protocol_message_callback_for_test_;
-  scoped_ptr<DevToolsCPUThrottler> cpu_throttler_;
+  std::unique_ptr<DevToolsCPUThrottler> cpu_throttler_;
 
   DISALLOW_COPY_AND_ASSIGN(DevToolsAgent);
 };
diff --git a/content/renderer/devtools/devtools_client.h b/content/renderer/devtools/devtools_client.h
index befa179..3d14c4a6 100644
--- a/content/renderer/devtools/devtools_client.h
+++ b/content/renderer/devtools/devtools_client.h
@@ -7,10 +7,10 @@
 
 #include <stdint.h>
 
+#include <memory>
 #include <string>
 
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "content/public/renderer/render_frame_observer.h"
 #include "third_party/WebKit/public/web/WebDevToolsFrontendClient.h"
 
@@ -48,7 +48,7 @@
                                      uint32_t total_size);
 
   std::string compatibility_script_;
-  scoped_ptr<blink::WebDevToolsFrontend> web_tools_frontend_;
+  std::unique_ptr<blink::WebDevToolsFrontend> web_tools_frontend_;
 
   DISALLOW_COPY_AND_ASSIGN(DevToolsClient);
 };
diff --git a/content/renderer/devtools/devtools_cpu_throttler.h b/content/renderer/devtools/devtools_cpu_throttler.h
index 78c901a..28e1e61 100644
--- a/content/renderer/devtools/devtools_cpu_throttler.h
+++ b/content/renderer/devtools/devtools_cpu_throttler.h
@@ -5,8 +5,9 @@
 #ifndef CONTENT_RENDERER_DEVTOOLS_DEVTOOLS_CPU_THROTTLER_H_
 #define CONTENT_RENDERER_DEVTOOLS_DEVTOOLS_CPU_THROTTLER_H_
 
+#include <memory>
+
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "content/common/content_export.h"
 
 namespace content {
@@ -21,7 +22,7 @@
   void SetThrottlingRate(double rate);
 
  private:
-  scoped_ptr<CPUThrottlingThread> throttling_thread_;
+  std::unique_ptr<CPUThrottlingThread> throttling_thread_;
 
   DISALLOW_COPY_AND_ASSIGN(DevToolsCPUThrottler);
 };
diff --git a/content/renderer/devtools/render_widget_screen_metrics_emulator.h b/content/renderer/devtools/render_widget_screen_metrics_emulator.h
index 5650d0a3..9d12cd1 100644
--- a/content/renderer/devtools/render_widget_screen_metrics_emulator.h
+++ b/content/renderer/devtools/render_widget_screen_metrics_emulator.h
@@ -5,7 +5,8 @@
 #ifndef CONTENT_RENDERER_DEVTOOLS_RENDER_WIDGET_SCREEN_METRICS_EMULATOR_H_
 #define CONTENT_RENDERER_DEVTOOLS_RENDER_WIDGET_SCREEN_METRICS_EMULATOR_H_
 
-#include "base/memory/scoped_ptr.h"
+#include <memory>
+
 #include "content/common/resize_params.h"
 #include "third_party/WebKit/public/web/WebDeviceEmulationParams.h"
 
diff --git a/content/renderer/devtools/v8_sampling_profiler.cc b/content/renderer/devtools/v8_sampling_profiler.cc
index 4ad7ffa..50c268d 100644
--- a/content/renderer/devtools/v8_sampling_profiler.cc
+++ b/content/renderer/devtools/v8_sampling_profiler.cc
@@ -106,7 +106,7 @@
   void Collect(v8::Isolate* isolate,
                base::TimeTicks timestamp,
                const v8::RegisterState& state);
-  scoped_ptr<ConvertableToTraceFormat> ToTraceFormat() const;
+  std::unique_ptr<ConvertableToTraceFormat> ToTraceFormat() const;
 
  private:
   base::TimeTicks timestamp_;
@@ -128,8 +128,8 @@
   vm_state_ = sample_info.vm_state;
 }
 
-scoped_ptr<ConvertableToTraceFormat> SampleRecord::ToTraceFormat() const {
-  scoped_ptr<base::trace_event::TracedValue> data(
+std::unique_ptr<ConvertableToTraceFormat> SampleRecord::ToTraceFormat() const {
+  std::unique_ptr<base::trace_event::TracedValue> data(
       new base::trace_event::TracedValue());
   const char* vm_state = nullptr;
   switch (vm_state_) {
@@ -170,7 +170,7 @@
  public:
   ~Sampler();
 
-  static scoped_ptr<Sampler> CreateForCurrentThread();
+  static std::unique_ptr<Sampler> CreateForCurrentThread();
   static Sampler* GetInstance() { return tls_instance_.Pointer()->Get(); }
 
   // These methods are called from the sampling thread.
@@ -197,7 +197,7 @@
 
   static void InstallJitCodeEventHandler(Isolate* isolate, void* data);
   static void HandleJitCodeEvent(const v8::JitCodeEvent* event);
-  static scoped_ptr<ConvertableToTraceFormat> JitCodeEventToTraceFormat(
+  static std::unique_ptr<ConvertableToTraceFormat> JitCodeEventToTraceFormat(
       const v8::JitCodeEvent* event);
 
   void InjectPendingEvents();
@@ -207,7 +207,7 @@
 
   PlatformData platform_data_;
   Isolate* isolate_;
-  scoped_ptr<SamplingQueue> samples_data_;
+  std::unique_ptr<SamplingQueue> samples_data_;
   base::subtle::Atomic32 code_added_events_count_;
   base::subtle::Atomic32 samples_count_;
   int code_added_events_to_collect_for_test_;
@@ -237,8 +237,8 @@
 }
 
 // static
-scoped_ptr<Sampler> Sampler::CreateForCurrentThread() {
-  return scoped_ptr<Sampler>(new Sampler());
+std::unique_ptr<Sampler> Sampler::CreateForCurrentThread() {
+  return std::unique_ptr<Sampler>(new Sampler());
 }
 
 void Sampler::Start() {
@@ -360,11 +360,11 @@
 }
 
 // static
-scoped_ptr<ConvertableToTraceFormat> Sampler::JitCodeEventToTraceFormat(
+std::unique_ptr<ConvertableToTraceFormat> Sampler::JitCodeEventToTraceFormat(
     const v8::JitCodeEvent* event) {
   switch (event->type) {
     case v8::JitCodeEvent::CODE_ADDED: {
-      scoped_ptr<base::trace_event::TracedValue> data(
+      std::unique_ptr<base::trace_event::TracedValue> data(
           new base::trace_event::TracedValue());
       data->SetString("code_start", PtrToString(event->code_start));
       data->SetInteger("code_len", static_cast<unsigned>(event->code_len));
@@ -376,7 +376,7 @@
     }
 
     case v8::JitCodeEvent::CODE_MOVED: {
-      scoped_ptr<base::trace_event::TracedValue> data(
+      std::unique_ptr<base::trace_event::TracedValue> data(
           new base::trace_event::TracedValue());
       data->SetString("code_start", PtrToString(event->code_start));
       data->SetInteger("code_len", static_cast<unsigned>(event->code_len));
@@ -385,7 +385,7 @@
     }
 
     case v8::JitCodeEvent::CODE_REMOVED: {
-      scoped_ptr<base::trace_event::TracedValue> data(
+      std::unique_ptr<base::trace_event::TracedValue> data(
           new base::trace_event::TracedValue());
       data->SetString("code_start", PtrToString(event->code_start));
       data->SetInteger("code_len", static_cast<unsigned>(event->code_len));
diff --git a/content/renderer/devtools/v8_sampling_profiler.h b/content/renderer/devtools/v8_sampling_profiler.h
index 6d5b432..7604f5a 100644
--- a/content/renderer/devtools/v8_sampling_profiler.h
+++ b/content/renderer/devtools/v8_sampling_profiler.h
@@ -5,8 +5,9 @@
 #ifndef CONTENT_RENDERER_DEVTOOLS_V8_SAMPLING_PROFILER_H_
 #define CONTENT_RENDERER_DEVTOOLS_V8_SAMPLING_PROFILER_H_
 
+#include <memory>
+
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/single_thread_task_runner.h"
 #include "base/synchronization/waitable_event.h"
 #include "base/trace_event/trace_log.h"
@@ -36,9 +37,9 @@
   void StartSamplingThread();
   void StopSamplingThread();
 
-  scoped_ptr<base::WaitableEvent> waitable_event_for_testing_;
-  scoped_ptr<V8SamplingThread> sampling_thread_;
-  scoped_ptr<Sampler> render_thread_sampler_;
+  std::unique_ptr<base::WaitableEvent> waitable_event_for_testing_;
+  std::unique_ptr<V8SamplingThread> sampling_thread_;
+  std::unique_ptr<Sampler> render_thread_sampler_;
   scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
 
   DISALLOW_COPY_AND_ASSIGN(V8SamplingProfiler);
diff --git a/content/renderer/devtools/v8_sampling_profiler_browsertest.cc b/content/renderer/devtools/v8_sampling_profiler_browsertest.cc
index 302b7454..af31cde 100644
--- a/content/renderer/devtools/v8_sampling_profiler_browsertest.cc
+++ b/content/renderer/devtools/v8_sampling_profiler_browsertest.cc
@@ -56,7 +56,7 @@
     trace_buffer_.AddFragment(events_str->data());
     trace_buffer_.Finish();
 
-    scoped_ptr<Value> root;
+    std::unique_ptr<Value> root;
     root = base::JSONReader::Read(
         json_output_.json_output,
         base::JSON_PARSE_RFC | base::JSON_DETACHABLE_CHILDREN);
@@ -71,7 +71,7 @@
 
     // Move items into our aggregate collection
     while (root_list->GetSize()) {
-      scoped_ptr<Value> item;
+      std::unique_ptr<Value> item;
       root_list->Remove(0, &item);
       trace_parsed_.Append(item.release());
     }
@@ -114,7 +114,7 @@
     return events_count;
   }
 
-  scoped_ptr<V8SamplingProfiler> sampling_profiler_;
+  std::unique_ptr<V8SamplingProfiler> sampling_profiler_;
   base::Lock lock_;
 
   ListValue trace_parsed_;
diff --git a/content/renderer/dom_automation_controller.cc b/content/renderer/dom_automation_controller.cc
index 4087458..3f119b6 100644
--- a/content/renderer/dom_automation_controller.cc
+++ b/content/renderer/dom_automation_controller.cc
@@ -90,7 +90,7 @@
 
   std::string json;
   JSONStringValueSerializer serializer(&json);
-  scoped_ptr<base::Value> value;
+  std::unique_ptr<base::Value> value;
 
   // Warning: note that JSON officially requires the root-level object to be
   // an object (e.g. {foo:3}) or an array, while here we're serializing
diff --git a/content/renderer/fetchers/manifest_fetcher.h b/content/renderer/fetchers/manifest_fetcher.h
index bfb3b8c..0efb8e4 100644
--- a/content/renderer/fetchers/manifest_fetcher.h
+++ b/content/renderer/fetchers/manifest_fetcher.h
@@ -5,11 +5,11 @@
 #ifndef CONTENT_RENDERER_FETCHERS_MANIFEST_FETCHER_H_
 #define CONTENT_RENDERER_FETCHERS_MANIFEST_FETCHER_H_
 
+#include <memory>
 #include <string>
 
 #include "base/callback.h"
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "content/common/content_export.h"
 #include "third_party/WebKit/public/platform/WebURLResponse.h"
 
@@ -49,7 +49,7 @@
 
   bool completed_;
   Callback callback_;
-  scoped_ptr<ResourceFetcher> fetcher_;
+  std::unique_ptr<ResourceFetcher> fetcher_;
 
   DISALLOW_COPY_AND_ASSIGN(ManifestFetcher);
 };
diff --git a/content/renderer/fetchers/multi_resolution_image_resource_fetcher.h b/content/renderer/fetchers/multi_resolution_image_resource_fetcher.h
index 4d132ce..37a22220 100644
--- a/content/renderer/fetchers/multi_resolution_image_resource_fetcher.h
+++ b/content/renderer/fetchers/multi_resolution_image_resource_fetcher.h
@@ -5,12 +5,12 @@
 #ifndef CONTENT_RENDERER_FETCHERS_MULTI_RESOLUTION_IMAGE_RESOURCE_FETCHER_H_
 #define CONTENT_RENDERER_FETCHERS_MULTI_RESOLUTION_IMAGE_RESOURCE_FETCHER_H_
 
+#include <memory>
 #include <string>
 #include <vector>
 
 #include "base/callback.h"
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "third_party/WebKit/public/platform/WebURLRequest.h"
 #include "url/gurl.h"
 
@@ -69,7 +69,7 @@
   const GURL image_url_;
 
   // Does the actual download.
-  scoped_ptr<ResourceFetcher> fetcher_;
+  std::unique_ptr<ResourceFetcher> fetcher_;
 
   DISALLOW_COPY_AND_ASSIGN(MultiResolutionImageResourceFetcher);
 };
diff --git a/content/renderer/fetchers/resource_fetcher_impl.h b/content/renderer/fetchers/resource_fetcher_impl.h
index d1f1907..38f3bb3 100644
--- a/content/renderer/fetchers/resource_fetcher_impl.h
+++ b/content/renderer/fetchers/resource_fetcher_impl.h
@@ -5,12 +5,12 @@
 #ifndef CONTENT_RENDERER_FETCHERS_RESOURCE_FETCHER_IMPL_H_
 #define CONTENT_RENDERER_FETCHERS_RESOURCE_FETCHER_IMPL_H_
 
+#include <memory>
 #include <string>
 
 #include "base/callback.h"
 #include "base/compiler_specific.h"
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/timer/timer.h"
 #include "content/public/renderer/resource_fetcher.h"
 #include "content/renderer/fetchers/web_url_loader_client_impl.h"
@@ -60,7 +60,7 @@
   void OnLoadComplete() override;
   void Cancel() override;
 
-  scoped_ptr<blink::WebURLLoader> loader_;
+  std::unique_ptr<blink::WebURLLoader> loader_;
 
   // Options to send to the loader.
   blink::WebURLLoaderOptions options_;
diff --git a/content/renderer/fetchers/web_url_loader_client_impl.h b/content/renderer/fetchers/web_url_loader_client_impl.h
index 70fb7da..f15d0a0c 100644
--- a/content/renderer/fetchers/web_url_loader_client_impl.h
+++ b/content/renderer/fetchers/web_url_loader_client_impl.h
@@ -7,10 +7,10 @@
 
 #include <stdint.h>
 
+#include <memory>
 #include <string>
 
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "third_party/WebKit/public/platform/WebURLLoaderClient.h"
 #include "third_party/WebKit/public/platform/WebURLResponse.h"
 
diff --git a/content/renderer/gamepad_shared_memory_reader.h b/content/renderer/gamepad_shared_memory_reader.h
index 3aed543..1fb8f1f 100644
--- a/content/renderer/gamepad_shared_memory_reader.h
+++ b/content/renderer/gamepad_shared_memory_reader.h
@@ -5,8 +5,9 @@
 #ifndef CONTENT_RENDERER_GAMEPAD_SHARED_MEMORY_READER_H_
 #define CONTENT_RENDERER_GAMEPAD_SHARED_MEMORY_READER_H_
 
+#include <memory>
+
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/shared_memory.h"
 #include "content/common/gamepad_messages.h"
 #include "content/public/renderer/renderer_gamepad_provider.h"
@@ -36,7 +37,7 @@
   void OnGamepadDisconnected(int index, const blink::WebGamepad& gamepad);
 
   base::SharedMemoryHandle renderer_shared_memory_handle_;
-  scoped_ptr<base::SharedMemory> renderer_shared_memory_;
+  std::unique_ptr<base::SharedMemory> renderer_shared_memory_;
   GamepadHardwareBuffer* gamepad_hardware_buffer_;
 
   bool ever_interacted_with_;
diff --git a/content/renderer/geolocation_dispatcher.h b/content/renderer/geolocation_dispatcher.h
index 71766be..437c5a8 100644
--- a/content/renderer/geolocation_dispatcher.h
+++ b/content/renderer/geolocation_dispatcher.h
@@ -5,7 +5,8 @@
 #ifndef CONTENT_RENDERER_GEOLOCATION_DISPATCHER_H_
 #define CONTENT_RENDERER_GEOLOCATION_DISPATCHER_H_
 
-#include "base/memory/scoped_ptr.h"
+#include <memory>
+
 #include "content/public/renderer/render_frame_observer.h"
 #include "third_party/WebKit/public/platform/modules/geolocation/geolocation.mojom.h"
 #include "third_party/WebKit/public/platform/modules/permissions/permission.mojom.h"
@@ -51,9 +52,9 @@
   void OnPermissionSet(int permission_request_id,
                        blink::mojom::PermissionStatus status);
 
-  scoped_ptr<blink::WebGeolocationController> controller_;
+  std::unique_ptr<blink::WebGeolocationController> controller_;
 
-  scoped_ptr<blink::WebGeolocationPermissionRequestManager>
+  std::unique_ptr<blink::WebGeolocationPermissionRequestManager>
       pending_permissions_;
   blink::mojom::GeolocationServicePtr geolocation_service_;
   bool enable_high_accuracy_;
diff --git a/content/renderer/gpu/compositor_dependencies.h b/content/renderer/gpu/compositor_dependencies.h
index 3f82883d..9ed2f78 100644
--- a/content/renderer/gpu/compositor_dependencies.h
+++ b/content/renderer/gpu/compositor_dependencies.h
@@ -5,10 +5,10 @@
 #ifndef CONTENT_RENDERER_GPU_COMPOSITOR_DEPENDENCIES_H_
 #define CONTENT_RENDERER_GPU_COMPOSITOR_DEPENDENCIES_H_
 
+#include <memory>
 #include <vector>
 
 #include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
 
 namespace base {
 class SingleThreadTaskRunner;
@@ -54,7 +54,7 @@
   virtual gpu::GpuMemoryBufferManager* GetGpuMemoryBufferManager() = 0;
   virtual scheduler::RendererScheduler* GetRendererScheduler() = 0;
   virtual cc::ContextProvider* GetSharedMainThreadContextProvider() = 0;
-  virtual scoped_ptr<cc::BeginFrameSource> CreateExternalBeginFrameSource(
+  virtual std::unique_ptr<cc::BeginFrameSource> CreateExternalBeginFrameSource(
       int routing_id) = 0;
   virtual cc::ImageSerializationProcessor* GetImageSerializationProcessor() = 0;
   virtual cc::TaskGraphRunner* GetTaskGraphRunner() = 0;
diff --git a/content/renderer/gpu/compositor_output_surface.cc b/content/renderer/gpu/compositor_output_surface.cc
index 72e0d01..7d3410f 100644
--- a/content/renderer/gpu/compositor_output_surface.cc
+++ b/content/renderer/gpu/compositor_output_surface.cc
@@ -36,7 +36,7 @@
 #if defined(ENABLE_VULKAN)
     const scoped_refptr<cc::VulkanContextProvider>& vulkan_context_provider,
 #endif
-    scoped_ptr<cc::SoftwareOutputDevice> software_device,
+    std::unique_ptr<cc::SoftwareOutputDevice> software_device,
     scoped_refptr<FrameSwapMessageQueue> swap_frame_message_queue,
     bool use_swap_compositor_frame_message)
     : OutputSurface(context_provider,
@@ -97,7 +97,7 @@
 
 void CompositorOutputSurface::ShortcutSwapAck(
     uint32_t output_surface_id,
-    scoped_ptr<cc::GLFrameData> gl_frame_data) {
+    std::unique_ptr<cc::GLFrameData> gl_frame_data) {
   if (!layout_test_previous_frame_ack_) {
     layout_test_previous_frame_ack_.reset(new cc::CompositorFrameAck);
     layout_test_previous_frame_ack_->gl_frame_data.reset(new cc::GLFrameData);
@@ -143,10 +143,11 @@
     return;
   } else {
     {
-      std::vector<scoped_ptr<IPC::Message>> messages;
+      std::vector<std::unique_ptr<IPC::Message>> messages;
       std::vector<IPC::Message> messages_to_deliver_with_frame;
-      scoped_ptr<FrameSwapMessageQueue::SendMessageScope> send_message_scope =
-          frame_swap_message_queue_->AcquireSendMessageScope();
+      std::unique_ptr<FrameSwapMessageQueue::SendMessageScope>
+          send_message_scope =
+              frame_swap_message_queue_->AcquireSendMessageScope();
       frame_swap_message_queue_->DrainMessages(&messages);
       FrameSwapMessageQueue::TransferMessages(&messages,
                                               &messages_to_deliver_with_frame);
diff --git a/content/renderer/gpu/compositor_output_surface.h b/content/renderer/gpu/compositor_output_surface.h
index 97a14c0..908f045 100644
--- a/content/renderer/gpu/compositor_output_surface.h
+++ b/content/renderer/gpu/compositor_output_surface.h
@@ -7,10 +7,11 @@
 
 #include <stdint.h>
 
+#include <memory>
+
 #include "base/compiler_specific.h"
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "base/threading/non_thread_safe.h"
 #include "base/threading/platform_thread.h"
@@ -50,7 +51,7 @@
 #if defined(ENABLE_VULKAN)
       const scoped_refptr<cc::VulkanContextProvider>& vulkan_context_provider,
 #endif
-      scoped_ptr<cc::SoftwareOutputDevice> software,
+      std::unique_ptr<cc::SoftwareOutputDevice> software,
       scoped_refptr<FrameSwapMessageQueue> swap_frame_message_queue,
       bool use_swap_compositor_frame_message);
   ~CompositorOutputSurface() override;
@@ -62,7 +63,7 @@
 
  protected:
   void ShortcutSwapAck(uint32_t output_surface_id,
-                       scoped_ptr<cc::GLFrameData> gl_frame_data);
+                       std::unique_ptr<cc::GLFrameData> gl_frame_data);
   virtual void OnSwapAck(uint32_t output_surface_id,
                          const cc::CompositorFrameAck& ack);
   virtual void OnReclaimResources(uint32_t output_surface_id,
@@ -106,7 +107,7 @@
 
   // TODO(danakj): Remove this when crbug.com/311404
   bool layout_test_mode_;
-  scoped_ptr<cc::CompositorFrameAck> layout_test_previous_frame_ack_;
+  std::unique_ptr<cc::CompositorFrameAck> layout_test_previous_frame_ack_;
   base::WeakPtrFactory<CompositorOutputSurface> weak_ptrs_;
 };
 
diff --git a/content/renderer/gpu/delegated_compositor_output_surface.cc b/content/renderer/gpu/delegated_compositor_output_surface.cc
index aff1ba5..b346e4d84 100644
--- a/content/renderer/gpu/delegated_compositor_output_surface.cc
+++ b/content/renderer/gpu/delegated_compositor_output_surface.cc
@@ -23,7 +23,7 @@
 #if defined(ENABLE_VULKAN)
                               vulkan_context_provider,
 #endif
-                              scoped_ptr<cc::SoftwareOutputDevice>(),
+                              std::unique_ptr<cc::SoftwareOutputDevice>(),
                               swap_frame_message_queue,
                               true) {
   capabilities_.delegated_rendering = true;
diff --git a/content/renderer/gpu/frame_swap_message_queue.cc b/content/renderer/gpu/frame_swap_message_queue.cc
index 8f8fb6bc..6e59dc1 100644
--- a/content/renderer/gpu/frame_swap_message_queue.cc
+++ b/content/renderer/gpu/frame_swap_message_queue.cc
@@ -11,6 +11,7 @@
 #include "base/containers/hash_tables.h"
 #include "base/logging.h"
 #include "base/macros.h"
+#include "base/memory/ptr_util.h"
 #include "base/stl_util.h"
 #include "ipc/ipc_message.h"
 
@@ -24,11 +25,11 @@
   virtual ~FrameSwapMessageSubQueue() {}
   virtual bool Empty() const = 0;
   virtual void QueueMessage(int source_frame_number,
-                            scoped_ptr<IPC::Message> msg,
+                            std::unique_ptr<IPC::Message> msg,
                             bool* is_first) = 0;
   virtual void DrainMessages(
       int source_frame_number,
-      std::vector<scoped_ptr<IPC::Message>>* messages) = 0;
+      std::vector<std::unique_ptr<IPC::Message>>* messages) = 0;
 
  private:
   DISALLOW_COPY_AND_ASSIGN(FrameSwapMessageSubQueue);
@@ -60,7 +61,7 @@
   bool Empty() const override { return queue_.empty(); }
 
   void QueueMessage(int source_frame_number,
-                    scoped_ptr<IPC::Message> msg,
+                    std::unique_ptr<IPC::Message> msg,
                     bool* is_first) override {
     if (is_first)
       *is_first = (queue_.count(source_frame_number) == 0);
@@ -68,13 +69,14 @@
     queue_[source_frame_number].push_back(msg.release());
   }
 
-  void DrainMessages(int source_frame_number,
-                     std::vector<scoped_ptr<IPC::Message>>* messages) override {
+  void DrainMessages(
+      int source_frame_number,
+      std::vector<std::unique_ptr<IPC::Message>>* messages) override {
     auto end = queue_.upper_bound(source_frame_number);
     for (auto i = queue_.begin(); i != end; i++) {
       DCHECK(i->first <= source_frame_number);
       for (IPC::Message* msg : i->second) {
-        messages->push_back(make_scoped_ptr(msg));
+        messages->push_back(base::WrapUnique(msg));
       }
       i->second.clear();
     }
@@ -95,21 +97,22 @@
   bool Empty() const override { return queue_.empty(); }
 
   void QueueMessage(int source_frame_number,
-                    scoped_ptr<IPC::Message> msg,
+                    std::unique_ptr<IPC::Message> msg,
                     bool* is_first) override {
     if (is_first)
       *is_first = Empty();
     queue_.push_back(std::move(msg));
   }
 
-  void DrainMessages(int source_frame_number,
-                     std::vector<scoped_ptr<IPC::Message>>* messages) override {
+  void DrainMessages(
+      int source_frame_number,
+      std::vector<std::unique_ptr<IPC::Message>>* messages) override {
     std::move(queue_.begin(), queue_.end(), std::back_inserter(*messages));
     queue_.clear();
   }
 
  private:
-  std::vector<scoped_ptr<IPC::Message>> queue_;
+  std::vector<std::unique_ptr<IPC::Message>> queue_;
 
   DISALLOW_COPY_AND_ASSIGN(SwapQueue);
 };
@@ -144,10 +147,11 @@
   return NULL;
 }
 
-void FrameSwapMessageQueue::QueueMessageForFrame(MessageDeliveryPolicy policy,
-                                                 int source_frame_number,
-                                                 scoped_ptr<IPC::Message> msg,
-                                                 bool* is_first) {
+void FrameSwapMessageQueue::QueueMessageForFrame(
+    MessageDeliveryPolicy policy,
+    int source_frame_number,
+    std::unique_ptr<IPC::Message> msg,
+    bool* is_first) {
   base::AutoLock lock(lock_);
   GetSubQueue(policy)
       ->QueueMessage(source_frame_number, std::move(msg), is_first);
@@ -167,7 +171,7 @@
 void FrameSwapMessageQueue::DidNotSwap(
     int source_frame_number,
     cc::SwapPromise::DidNotSwapReason reason,
-    std::vector<scoped_ptr<IPC::Message>>* messages) {
+    std::vector<std::unique_ptr<IPC::Message>>* messages) {
   base::AutoLock lock(lock_);
   switch (reason) {
     case cc::SwapPromise::SWAP_FAILS:
@@ -186,21 +190,21 @@
 }
 
 void FrameSwapMessageQueue::DrainMessages(
-    std::vector<scoped_ptr<IPC::Message>>* messages) {
+    std::vector<std::unique_ptr<IPC::Message>>* messages) {
   lock_.AssertAcquired();
   std::move(next_drain_messages_.begin(), next_drain_messages_.end(),
             std::back_inserter(*messages));
   next_drain_messages_.clear();
 }
 
-scoped_ptr<FrameSwapMessageQueue::SendMessageScope>
+std::unique_ptr<FrameSwapMessageQueue::SendMessageScope>
 FrameSwapMessageQueue::AcquireSendMessageScope() {
-  return make_scoped_ptr(new SendMessageScopeImpl(&lock_));
+  return base::WrapUnique(new SendMessageScopeImpl(&lock_));
 }
 
 // static
 void FrameSwapMessageQueue::TransferMessages(
-    std::vector<scoped_ptr<IPC::Message>>* source,
+    std::vector<std::unique_ptr<IPC::Message>>* source,
     vector<IPC::Message>* dest) {
   for (const auto& msg : *source) {
     dest->push_back(*msg.get());
diff --git a/content/renderer/gpu/frame_swap_message_queue.h b/content/renderer/gpu/frame_swap_message_queue.h
index f45a36a..0ac1a7e 100644
--- a/content/renderer/gpu/frame_swap_message_queue.h
+++ b/content/renderer/gpu/frame_swap_message_queue.h
@@ -6,12 +6,12 @@
 #define CONTENT_RENDERER_GPU_FRAME_SWAP_MESSAGE_QUEUE_H_
 
 #include <map>
+#include <memory>
 #include <vector>
 
 #include "base/auto_reset.h"
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/scoped_vector.h"
 #include "base/synchronization/lock.h"
 #include "cc/output/swap_promise.h"
@@ -47,7 +47,7 @@
   //              enqueued for the given source_frame_number.
   void QueueMessageForFrame(MessageDeliveryPolicy policy,
                             int source_frame_number,
-                            scoped_ptr<IPC::Message> msg,
+                            std::unique_ptr<IPC::Message> msg,
                             bool* is_first);
 
   // Returns true if there are no messages in the queue.
@@ -74,7 +74,7 @@
   //            messages.
   void DidNotSwap(int source_frame_number,
                   cc::SwapPromise::DidNotSwapReason reason,
-                  std::vector<scoped_ptr<IPC::Message>>* messages);
+                  std::vector<std::unique_ptr<IPC::Message>>* messages);
 
   // A SendMessageScope object must be held by the caller when this method is
   // called.
@@ -82,17 +82,18 @@
   // |messages| vector to store messages, it's not cleared, only appended to.
   //            The method will append messages queued for frame numbers lower
   //            or equal to |source_frame_number|
-  void DrainMessages(std::vector<scoped_ptr<IPC::Message>>* messages);
+  void DrainMessages(std::vector<std::unique_ptr<IPC::Message>>* messages);
 
   // SendMessageScope is used to make sure that messages sent from different
   // threads (impl/main) are scheduled in the right order on the IO threads.
   //
   // Returns an object that must be kept in scope till an IPC message containing
   // |messages| is sent.
-  scoped_ptr<SendMessageScope> AcquireSendMessageScope();
+  std::unique_ptr<SendMessageScope> AcquireSendMessageScope();
 
-  static void TransferMessages(std::vector<scoped_ptr<IPC::Message>>* source,
-                               std::vector<IPC::Message>* dest);
+  static void TransferMessages(
+      std::vector<std::unique_ptr<IPC::Message>>* source,
+      std::vector<IPC::Message>* dest);
 
  private:
   friend class base::RefCountedThreadSafe<FrameSwapMessageQueue>;
@@ -102,9 +103,9 @@
   ~FrameSwapMessageQueue();
 
   mutable base::Lock lock_;
-  scoped_ptr<FrameSwapMessageSubQueue> visual_state_queue_;
-  scoped_ptr<FrameSwapMessageSubQueue> swap_queue_;
-  std::vector<scoped_ptr<IPC::Message>> next_drain_messages_;
+  std::unique_ptr<FrameSwapMessageSubQueue> visual_state_queue_;
+  std::unique_ptr<FrameSwapMessageSubQueue> swap_queue_;
+  std::vector<std::unique_ptr<IPC::Message>> next_drain_messages_;
 
   DISALLOW_COPY_AND_ASSIGN(FrameSwapMessageQueue);
 };
diff --git a/content/renderer/gpu/frame_swap_message_queue_unittest.cc b/content/renderer/gpu/frame_swap_message_queue_unittest.cc
index ef91720..0501640 100644
--- a/content/renderer/gpu/frame_swap_message_queue_unittest.cc
+++ b/content/renderer/gpu/frame_swap_message_queue_unittest.cc
@@ -6,6 +6,7 @@
 
 #include <utility>
 
+#include "base/memory/ptr_util.h"
 #include "ipc/ipc_message.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
@@ -20,41 +21,42 @@
         queue_(new FrameSwapMessageQueue()) {}
 
  protected:
-  void QueueNextSwapMessage(scoped_ptr<IPC::Message> msg) {
+  void QueueNextSwapMessage(std::unique_ptr<IPC::Message> msg) {
     queue_->QueueMessageForFrame(MESSAGE_DELIVERY_POLICY_WITH_NEXT_SWAP, 0,
                                  std::move(msg), NULL);
   }
 
-  void QueueNextSwapMessage(scoped_ptr<IPC::Message> msg, bool* first) {
+  void QueueNextSwapMessage(std::unique_ptr<IPC::Message> msg, bool* first) {
     queue_->QueueMessageForFrame(MESSAGE_DELIVERY_POLICY_WITH_NEXT_SWAP, 0,
                                  std::move(msg), first);
   }
 
   void QueueVisualStateMessage(int source_frame_number,
-                               scoped_ptr<IPC::Message> msg) {
+                               std::unique_ptr<IPC::Message> msg) {
     queue_->QueueMessageForFrame(MESSAGE_DELIVERY_POLICY_WITH_VISUAL_STATE,
                                  source_frame_number, std::move(msg), NULL);
   }
 
   void QueueVisualStateMessage(int source_frame_number,
-                               scoped_ptr<IPC::Message> msg,
+                               std::unique_ptr<IPC::Message> msg,
                                bool* first) {
     queue_->QueueMessageForFrame(MESSAGE_DELIVERY_POLICY_WITH_VISUAL_STATE,
                                  source_frame_number, std::move(msg), first);
   }
 
   void DrainMessages(int source_frame_number,
-                     std::vector<scoped_ptr<IPC::Message>>* messages) {
+                     std::vector<std::unique_ptr<IPC::Message>>* messages) {
     messages->clear();
     queue_->DidActivate(source_frame_number);
     queue_->DidSwap(source_frame_number);
-    scoped_ptr<FrameSwapMessageQueue::SendMessageScope> send_message_scope =
-        queue_->AcquireSendMessageScope();
+    std::unique_ptr<FrameSwapMessageQueue::SendMessageScope>
+        send_message_scope = queue_->AcquireSendMessageScope();
     queue_->DrainMessages(messages);
   }
 
-  bool HasMessageForId(const std::vector<scoped_ptr<IPC::Message>>& messages,
-                       int routing_id) {
+  bool HasMessageForId(
+      const std::vector<std::unique_ptr<IPC::Message>>& messages,
+      int routing_id) {
     for (const auto& msg : messages) {
       if (msg->routing_id() == routing_id)
         return true;
@@ -62,8 +64,8 @@
     return false;
   }
 
-  scoped_ptr<IPC::Message> CloneMessage(const IPC::Message& other) {
-    return make_scoped_ptr(new IPC::Message(other));
+  std::unique_ptr<IPC::Message> CloneMessage(const IPC::Message& other) {
+    return base::WrapUnique(new IPC::Message(other));
   }
 
   void TestDidNotSwap(cc::SwapPromise::DidNotSwapReason reason);
@@ -75,14 +77,14 @@
 };
 
 TEST_F(FrameSwapMessageQueueTest, TestEmptyQueueDrain) {
-  std::vector<scoped_ptr<IPC::Message>> messages;
+  std::vector<std::unique_ptr<IPC::Message>> messages;
 
   DrainMessages(0, &messages);
   ASSERT_TRUE(messages.empty());
 }
 
 TEST_F(FrameSwapMessageQueueTest, TestEmpty) {
-  std::vector<scoped_ptr<IPC::Message>> messages;
+  std::vector<std::unique_ptr<IPC::Message>> messages;
   ASSERT_TRUE(queue_->Empty());
   QueueNextSwapMessage(CloneMessage(first_message_));
   ASSERT_FALSE(queue_->Empty());
@@ -96,7 +98,7 @@
 }
 
 TEST_F(FrameSwapMessageQueueTest, TestQueueMessageFirst) {
-  std::vector<scoped_ptr<IPC::Message>> messages;
+  std::vector<std::unique_ptr<IPC::Message>> messages;
   bool visual_state_first = false;
   bool next_swap_first = false;
 
@@ -125,7 +127,7 @@
 }
 
 TEST_F(FrameSwapMessageQueueTest, TestNextSwapMessageSentWithNextFrame) {
-  std::vector<scoped_ptr<IPC::Message>> messages;
+  std::vector<std::unique_ptr<IPC::Message>> messages;
 
   DrainMessages(1, &messages);
   QueueNextSwapMessage(CloneMessage(first_message_));
@@ -139,7 +141,7 @@
 }
 
 TEST_F(FrameSwapMessageQueueTest, TestNextSwapMessageSentWithCurrentFrame) {
-  std::vector<scoped_ptr<IPC::Message>> messages;
+  std::vector<std::unique_ptr<IPC::Message>> messages;
 
   DrainMessages(1, &messages);
   QueueNextSwapMessage(CloneMessage(first_message_));
@@ -154,7 +156,7 @@
 
 TEST_F(FrameSwapMessageQueueTest,
        TestDrainsVisualStateMessagesForCorrespondingFrames) {
-  std::vector<scoped_ptr<IPC::Message>> messages;
+  std::vector<std::unique_ptr<IPC::Message>> messages;
 
   QueueVisualStateMessage(1, CloneMessage(first_message_));
   QueueVisualStateMessage(2, CloneMessage(second_message_));
@@ -178,7 +180,7 @@
 
 TEST_F(FrameSwapMessageQueueTest,
        TestQueueNextSwapMessagePreservesFifoOrdering) {
-  std::vector<scoped_ptr<IPC::Message>> messages;
+  std::vector<std::unique_ptr<IPC::Message>> messages;
 
   QueueNextSwapMessage(CloneMessage(first_message_));
   QueueNextSwapMessage(CloneMessage(second_message_));
@@ -190,7 +192,7 @@
 
 TEST_F(FrameSwapMessageQueueTest,
        TestQueueVisualStateMessagePreservesFifoOrdering) {
-  std::vector<scoped_ptr<IPC::Message>> messages;
+  std::vector<std::unique_ptr<IPC::Message>> messages;
 
   QueueVisualStateMessage(1, CloneMessage(first_message_));
   QueueVisualStateMessage(1, CloneMessage(second_message_));
@@ -202,7 +204,7 @@
 
 void FrameSwapMessageQueueTest::TestDidNotSwap(
     cc::SwapPromise::DidNotSwapReason reason) {
-  std::vector<scoped_ptr<IPC::Message>> messages;
+  std::vector<std::unique_ptr<IPC::Message>> messages;
 
   QueueNextSwapMessage(CloneMessage(first_message_));
   QueueVisualStateMessage(2, CloneMessage(second_message_));
@@ -262,7 +264,7 @@
 
 TEST_F(FrameSwapMessageQueueTest, TestDeletesNextSwapMessage) {
   bool message_deleted = false;
-  QueueNextSwapMessage(make_scoped_ptr(
+  QueueNextSwapMessage(base::WrapUnique(
       new NotifiesDeletionMessage(&message_deleted, first_message_)));
   queue_ = NULL;
   ASSERT_TRUE(message_deleted);
@@ -270,18 +272,16 @@
 
 TEST_F(FrameSwapMessageQueueTest, TestDeletesVisualStateMessage) {
   bool message_deleted = false;
-  QueueVisualStateMessage(1,
-                          make_scoped_ptr(new NotifiesDeletionMessage(
-                              &message_deleted, first_message_)));
+  QueueVisualStateMessage(1, base::WrapUnique(new NotifiesDeletionMessage(
+                                 &message_deleted, first_message_)));
   queue_ = NULL;
   ASSERT_TRUE(message_deleted);
 }
 
 TEST_F(FrameSwapMessageQueueTest, TestDeletesQueuedVisualStateMessage) {
   bool message_deleted = false;
-  QueueVisualStateMessage(1,
-                          make_scoped_ptr(new NotifiesDeletionMessage(
-                              &message_deleted, first_message_)));
+  QueueVisualStateMessage(1, base::WrapUnique(new NotifiesDeletionMessage(
+                                 &message_deleted, first_message_)));
   queue_->DidActivate(1);
   queue_->DidSwap(1);
   queue_ = NULL;
diff --git a/content/renderer/gpu/gpu_benchmarking_extension.cc b/content/renderer/gpu/gpu_benchmarking_extension.cc
index 028bdee..4a54057 100644
--- a/content/renderer/gpu/gpu_benchmarking_extension.cc
+++ b/content/renderer/gpu/gpu_benchmarking_extension.cc
@@ -5,6 +5,7 @@
 #include "content/renderer/gpu/gpu_benchmarking_extension.h"
 
 #include <stddef.h>
+
 #include <string>
 #include <utility>
 
@@ -13,6 +14,7 @@
 #include "base/files/file_path.h"
 #include "base/files/file_util.h"
 #include "base/macros.h"
+#include "base/memory/ptr_util.h"
 #include "base/strings/string_number_conversions.h"
 #include "cc/layers/layer.h"
 #include "content/common/child_process_messages.h"
@@ -282,17 +284,16 @@
   DISALLOW_COPY_AND_ASSIGN(GpuBenchmarkingContext);
 };
 
-void OnMicroBenchmarkCompleted(
-    CallbackAndContext* callback_and_context,
-    scoped_ptr<base::Value> result) {
+void OnMicroBenchmarkCompleted(CallbackAndContext* callback_and_context,
+                               std::unique_ptr<base::Value> result) {
   v8::Isolate* isolate = callback_and_context->isolate();
   v8::HandleScope scope(isolate);
   v8::Local<v8::Context> context = callback_and_context->GetContext();
   v8::Context::Scope context_scope(context);
   WebLocalFrame* frame = WebLocalFrame::frameForContext(context);
   if (frame) {
-    scoped_ptr<V8ValueConverter> converter =
-        make_scoped_ptr(V8ValueConverter::create());
+    std::unique_ptr<V8ValueConverter> converter =
+        base::WrapUnique(V8ValueConverter::create());
     v8::Local<v8::Value> value = converter->ToV8Value(result.get(), context);
     v8::Local<v8::Value> argv[] = { value };
 
@@ -350,7 +351,7 @@
       new CallbackAndContext(
           isolate, callback, context.web_frame()->mainWorldScriptContext());
 
-  scoped_ptr<SyntheticSmoothScrollGestureParams> gesture_params(
+  std::unique_ptr<SyntheticSmoothScrollGestureParams> gesture_params(
       new SyntheticSmoothScrollGestureParams);
 
   if (gesture_source_type < 0 ||
@@ -420,7 +421,7 @@
       new CallbackAndContext(isolate, callback,
                              context.web_frame()->mainWorldScriptContext());
 
-  scoped_ptr<SyntheticSmoothDragGestureParams> gesture_params(
+  std::unique_ptr<SyntheticSmoothDragGestureParams> gesture_params(
       new SyntheticSmoothDragGestureParams);
 
   // Convert coordinates from CSS pixels to density independent pixels (DIPs).
@@ -701,7 +702,7 @@
                              callback,
                              context.web_frame()->mainWorldScriptContext());
 
-  scoped_ptr<SyntheticSmoothScrollGestureParams> gesture_params(
+  std::unique_ptr<SyntheticSmoothScrollGestureParams> gesture_params(
       new SyntheticSmoothScrollGestureParams);
 
   gesture_params->speed_in_pixels_s = speed_in_pixels_s;
@@ -765,7 +766,7 @@
     return false;
   }
 
-  scoped_ptr<SyntheticPinchGestureParams> gesture_params(
+  std::unique_ptr<SyntheticPinchGestureParams> gesture_params(
       new SyntheticPinchGestureParams);
 
   // TODO(bokan): Remove page scale here when change land in Catapult.
@@ -849,7 +850,7 @@
     return false;
   }
 
-  scoped_ptr<SyntheticTapGestureParams> gesture_params(
+  std::unique_ptr<SyntheticTapGestureParams> gesture_params(
       new SyntheticTapGestureParams);
 
   // Convert coordinates from CSS pixels to density independent pixels (DIPs).
@@ -906,11 +907,11 @@
                              callback,
                              context.web_frame()->mainWorldScriptContext());
 
-  scoped_ptr<V8ValueConverter> converter =
-      make_scoped_ptr(V8ValueConverter::create());
+  std::unique_ptr<V8ValueConverter> converter =
+      base::WrapUnique(V8ValueConverter::create());
   v8::Local<v8::Context> v8_context = callback_and_context->GetContext();
-  scoped_ptr<base::Value> value =
-      make_scoped_ptr(converter->FromV8Value(arguments, v8_context));
+  std::unique_ptr<base::Value> value =
+      base::WrapUnique(converter->FromV8Value(arguments, v8_context));
 
   return context.compositor()->ScheduleMicroBenchmark(
       name, std::move(value),
@@ -925,12 +926,12 @@
   if (!context.Init(true))
     return false;
 
-  scoped_ptr<V8ValueConverter> converter =
-      make_scoped_ptr(V8ValueConverter::create());
+  std::unique_ptr<V8ValueConverter> converter =
+      base::WrapUnique(V8ValueConverter::create());
   v8::Local<v8::Context> v8_context =
       context.web_frame()->mainWorldScriptContext();
-  scoped_ptr<base::Value> value =
-      make_scoped_ptr(converter->FromV8Value(message, v8_context));
+  std::unique_ptr<base::Value> value =
+      base::WrapUnique(converter->FromV8Value(message, v8_context));
 
   return context.compositor()->SendMessageToMicroBenchmark(id,
                                                            std::move(value));
diff --git a/content/renderer/gpu/queue_message_swap_promise.cc b/content/renderer/gpu/queue_message_swap_promise.cc
index 5d8386d8..9653375 100644
--- a/content/renderer/gpu/queue_message_swap_promise.cc
+++ b/content/renderer/gpu/queue_message_swap_promise.cc
@@ -53,7 +53,7 @@
 #if DCHECK_IS_ON()
   DCHECK(!completed_);
 #endif
-  std::vector<scoped_ptr<IPC::Message>> messages;
+  std::vector<std::unique_ptr<IPC::Message>> messages;
   message_queue_->DidNotSwap(source_frame_number_, reason, &messages);
   for (auto& msg : messages) {
     message_sender_->Send(msg.release());
diff --git a/content/renderer/gpu/queue_message_swap_promise_unittest.cc b/content/renderer/gpu/queue_message_swap_promise_unittest.cc
index 38ea08f..02e1e2e 100644
--- a/content/renderer/gpu/queue_message_swap_promise_unittest.cc
+++ b/content/renderer/gpu/queue_message_swap_promise_unittest.cc
@@ -9,6 +9,7 @@
 #include <vector>
 
 #include "base/macros.h"
+#include "base/memory/ptr_util.h"
 #include "base/memory/scoped_vector.h"
 #include "cc/output/swap_promise.h"
 #include "content/renderer/gpu/frame_swap_message_queue.h"
@@ -37,16 +38,16 @@
   TestSyncMessageFilter() : IPC::SyncMessageFilter(NULL, false) {}
 
   bool Send(IPC::Message* message) override {
-    messages_.push_back(make_scoped_ptr(message));
+    messages_.push_back(base::WrapUnique(message));
     return true;
   }
 
-  std::vector<scoped_ptr<IPC::Message>>& messages() { return messages_; }
+  std::vector<std::unique_ptr<IPC::Message>>& messages() { return messages_; }
 
  private:
   ~TestSyncMessageFilter() override {}
 
-  std::vector<scoped_ptr<IPC::Message>> messages_;
+  std::vector<std::unique_ptr<IPC::Message>> messages_;
 
   DISALLOW_COPY_AND_ASSIGN(TestSyncMessageFilter);
 };
@@ -64,28 +65,31 @@
 
   ~QueueMessageSwapPromiseTest() override {}
 
-  scoped_ptr<cc::SwapPromise> QueueMessageImpl(IPC::Message* msg,
-                                               MessageDeliveryPolicy policy,
-                                               int source_frame_number) {
+  std::unique_ptr<cc::SwapPromise> QueueMessageImpl(
+      IPC::Message* msg,
+      MessageDeliveryPolicy policy,
+      int source_frame_number) {
     return TestRenderWidget::QueueMessageImpl(
         msg, policy, frame_swap_message_queue_.get(), sync_message_filter_,
         source_frame_number);
   }
 
-  const std::vector<scoped_ptr<IPC::Message>>& DirectSendMessages() {
+  const std::vector<std::unique_ptr<IPC::Message>>& DirectSendMessages() {
     return sync_message_filter_->messages();
   }
 
-  std::vector<scoped_ptr<IPC::Message>>& NextSwapMessages() {
+  std::vector<std::unique_ptr<IPC::Message>>& NextSwapMessages() {
     next_swap_messages_.clear();
-    scoped_ptr<FrameSwapMessageQueue::SendMessageScope> send_message_scope =
-        frame_swap_message_queue_->AcquireSendMessageScope();
+    std::unique_ptr<FrameSwapMessageQueue::SendMessageScope>
+        send_message_scope =
+            frame_swap_message_queue_->AcquireSendMessageScope();
     frame_swap_message_queue_->DrainMessages(&next_swap_messages_);
     return next_swap_messages_;
   }
 
-  bool ContainsMessage(const std::vector<scoped_ptr<IPC::Message>>& messages,
-                       const IPC::Message& message) {
+  bool ContainsMessage(
+      const std::vector<std::unique_ptr<IPC::Message>>& messages,
+      const IPC::Message& message) {
     if (messages.empty())
       return false;
     for (const auto& msg : messages) {
@@ -132,7 +136,7 @@
   ScopedVector<cc::SwapPromise> promises_;
 
  private:
-  std::vector<scoped_ptr<IPC::Message>> next_swap_messages_;
+  std::vector<std::unique_ptr<IPC::Message>> next_swap_messages_;
 
   DISALLOW_COPY_AND_ASSIGN(QueueMessageSwapPromiseTest);
 };
@@ -252,7 +256,7 @@
   promises_[0]->DidActivate();
   promises_[0]->DidSwap(NULL);
   ASSERT_FALSE(promises_[1]);
-  std::vector<scoped_ptr<IPC::Message>> messages;
+  std::vector<std::unique_ptr<IPC::Message>> messages;
   messages.swap(NextSwapMessages());
   EXPECT_EQ(2u, messages.size());
   EXPECT_TRUE(ContainsMessage(messages, messages_[0]));
diff --git a/content/renderer/gpu/render_widget_compositor.cc b/content/renderer/gpu/render_widget_compositor.cc
index f085fd5..4fa758cb 100644
--- a/content/renderer/gpu/render_widget_compositor.cc
+++ b/content/renderer/gpu/render_widget_compositor.cc
@@ -204,11 +204,11 @@
 }  // namespace
 
 // static
-scoped_ptr<RenderWidgetCompositor> RenderWidgetCompositor::Create(
+std::unique_ptr<RenderWidgetCompositor> RenderWidgetCompositor::Create(
     RenderWidgetCompositorDelegate* delegate,
     float device_scale_factor,
     CompositorDependencies* compositor_deps) {
-  scoped_ptr<RenderWidgetCompositor> compositor(
+  std::unique_ptr<RenderWidgetCompositor> compositor(
       new RenderWidgetCompositor(delegate, compositor_deps));
   compositor->Initialize(device_scale_factor);
   return compositor;
@@ -483,7 +483,7 @@
   if (use_remote_compositing)
     settings.use_external_begin_frame_source = false;
 
-  scoped_ptr<cc::BeginFrameSource> external_begin_frame_source;
+  std::unique_ptr<cc::BeginFrameSource> external_begin_frame_source;
   if (settings.use_external_begin_frame_source) {
     external_begin_frame_source = delegate_->CreateExternalBeginFrameSource();
   }
@@ -545,16 +545,16 @@
   setNeedsAnimate();
 }
 
-scoped_ptr<cc::SwapPromiseMonitor>
+std::unique_ptr<cc::SwapPromiseMonitor>
 RenderWidgetCompositor::CreateLatencyInfoSwapPromiseMonitor(
     ui::LatencyInfo* latency) {
-  return scoped_ptr<cc::SwapPromiseMonitor>(
-      new cc::LatencyInfoSwapPromiseMonitor(
-          latency, layer_tree_host_.get(), NULL));
+  return std::unique_ptr<cc::SwapPromiseMonitor>(
+      new cc::LatencyInfoSwapPromiseMonitor(latency, layer_tree_host_.get(),
+                                            NULL));
 }
 
 void RenderWidgetCompositor::QueueSwapPromise(
-    scoped_ptr<cc::SwapPromise> swap_promise) {
+    std::unique_ptr<cc::SwapPromise> swap_promise) {
   layer_tree_host_->QueueSwapPromise(std::move(swap_promise));
 }
 
@@ -580,15 +580,15 @@
 
 int RenderWidgetCompositor::ScheduleMicroBenchmark(
     const std::string& name,
-    scoped_ptr<base::Value> value,
-    const base::Callback<void(scoped_ptr<base::Value>)>& callback) {
+    std::unique_ptr<base::Value> value,
+    const base::Callback<void(std::unique_ptr<base::Value>)>& callback) {
   return layer_tree_host_->ScheduleMicroBenchmark(name, std::move(value),
                                                   callback);
 }
 
 bool RenderWidgetCompositor::SendMessageToMicroBenchmark(
     int id,
-    scoped_ptr<base::Value> value) {
+    std::unique_ptr<base::Value> value) {
   return layer_tree_host_->SendMessageToMicroBenchmark(id, std::move(value));
 }
 
@@ -782,9 +782,9 @@
 
 void CompositeAndReadbackAsyncCallback(
     blink::WebCompositeAndReadbackAsyncCallback* callback,
-    scoped_ptr<cc::CopyOutputResult> result) {
+    std::unique_ptr<cc::CopyOutputResult> result) {
   if (result->HasBitmap()) {
-    scoped_ptr<SkBitmap> result_bitmap = result->TakeBitmap();
+    std::unique_ptr<SkBitmap> result_bitmap = result->TakeBitmap();
     callback->didCompositeAndReadback(*result_bitmap);
   } else {
     callback->didCompositeAndReadback(SkBitmap());
@@ -950,7 +950,7 @@
 
   bool fallback =
       num_failed_recreate_attempts_ >= OUTPUT_SURFACE_RETRIES_BEFORE_FALLBACK;
-  scoped_ptr<cc::OutputSurface> surface(
+  std::unique_ptr<cc::OutputSurface> surface(
       delegate_->CreateOutputSurface(fallback));
 
   if (!surface) {
@@ -1030,8 +1030,10 @@
 }
 
 void RenderWidgetCompositor::RecordFrameTimingEvents(
-    scoped_ptr<cc::FrameTimingTracker::CompositeTimingSet> composite_events,
-    scoped_ptr<cc::FrameTimingTracker::MainFrameTimingSet> main_frame_events) {
+    std::unique_ptr<cc::FrameTimingTracker::CompositeTimingSet>
+        composite_events,
+    std::unique_ptr<cc::FrameTimingTracker::MainFrameTimingSet>
+        main_frame_events) {
   delegate_->RecordFrameTimingEvents(std::move(composite_events),
                                      std::move(main_frame_events));
 }
@@ -1045,7 +1047,7 @@
     const std::vector<uint8_t>& proto) {
   DCHECK(remote_proto_channel_receiver_);
 
-  scoped_ptr<cc::proto::CompositorMessage> deserialized(
+  std::unique_ptr<cc::proto::CompositorMessage> deserialized(
       new cc::proto::CompositorMessage);
   int signed_size = base::checked_cast<int>(proto.size());
   if (!deserialized->ParseFromArray(proto.data(), signed_size)) {
diff --git a/content/renderer/gpu/render_widget_compositor.h b/content/renderer/gpu/render_widget_compositor.h
index aacbfac..a9b0f190 100644
--- a/content/renderer/gpu/render_widget_compositor.h
+++ b/content/renderer/gpu/render_widget_compositor.h
@@ -53,7 +53,7 @@
  public:
   // Attempt to construct and initialize a compositor instance for the widget
   // with the given settings. Returns NULL if initialization fails.
-  static scoped_ptr<RenderWidgetCompositor> Create(
+  static std::unique_ptr<RenderWidgetCompositor> Create(
       RenderWidgetCompositorDelegate* delegate,
       float device_scale_factor,
       CompositorDependencies* compositor_deps);
@@ -74,11 +74,11 @@
   // LatencyInfoSwapPromiseMonitor, if SetNeedsCommit() or
   // SetNeedsUpdateLayers() is called on LayerTreeHost, the original latency
   // info will be turned into a LatencyInfoSwapPromise.
-  scoped_ptr<cc::SwapPromiseMonitor> CreateLatencyInfoSwapPromiseMonitor(
+  std::unique_ptr<cc::SwapPromiseMonitor> CreateLatencyInfoSwapPromiseMonitor(
       ui::LatencyInfo* latency);
   // Calling QueueSwapPromise() to directly queue a SwapPromise into
   // LayerTreeHost.
-  void QueueSwapPromise(scoped_ptr<cc::SwapPromise> swap_promise);
+  void QueueSwapPromise(std::unique_ptr<cc::SwapPromise> swap_promise);
   int GetSourceFrameNumber() const;
   void SetNeedsUpdateLayers();
   void SetNeedsCommit();
@@ -86,9 +86,9 @@
   const cc::Layer* GetRootLayer() const;
   int ScheduleMicroBenchmark(
       const std::string& name,
-      scoped_ptr<base::Value> value,
-      const base::Callback<void(scoped_ptr<base::Value>)>& callback);
-  bool SendMessageToMicroBenchmark(int id, scoped_ptr<base::Value> value);
+      std::unique_ptr<base::Value> value,
+      const base::Callback<void(std::unique_ptr<base::Value>)>& callback);
+  bool SendMessageToMicroBenchmark(int id, std::unique_ptr<base::Value> value);
   void SetSurfaceIdNamespace(uint32_t surface_id_namespace);
   void OnHandleCompositorProto(const std::vector<uint8_t>& proto);
   cc::ManagedMemoryPolicy GetGpuMemoryPolicy(
@@ -173,9 +173,10 @@
   void DidCompleteSwapBuffers() override;
   void DidCompletePageScaleAnimation() override;
   void RecordFrameTimingEvents(
-      scoped_ptr<cc::FrameTimingTracker::CompositeTimingSet> composite_events,
-      scoped_ptr<cc::FrameTimingTracker::MainFrameTimingSet> main_frame_events)
-      override;
+      std::unique_ptr<cc::FrameTimingTracker::CompositeTimingSet>
+          composite_events,
+      std::unique_ptr<cc::FrameTimingTracker::MainFrameTimingSet>
+          main_frame_events) override;
 
   // cc::LayerTreeHostSingleThreadClient implementation.
   void RequestScheduleAnimation() override;
@@ -209,11 +210,11 @@
   int num_failed_recreate_attempts_;
   RenderWidgetCompositorDelegate* const delegate_;
   CompositorDependencies* const compositor_deps_;
-  scoped_ptr<cc::LayerTreeHost> layer_tree_host_;
+  std::unique_ptr<cc::LayerTreeHost> layer_tree_host_;
   bool never_visible_;
 
   blink::WebLayoutAndPaintAsyncCallback* layout_and_paint_async_callback_;
-  scoped_ptr<cc::CopyOutputRequest> temporary_copy_output_request_;
+  std::unique_ptr<cc::CopyOutputRequest> temporary_copy_output_request_;
 
   cc::RemoteProtoChannel::ProtoReceiver* remote_proto_channel_receiver_;
 
diff --git a/content/renderer/gpu/render_widget_compositor_delegate.h b/content/renderer/gpu/render_widget_compositor_delegate.h
index cd2d53f..0755d0c6 100644
--- a/content/renderer/gpu/render_widget_compositor_delegate.h
+++ b/content/renderer/gpu/render_widget_compositor_delegate.h
@@ -36,10 +36,12 @@
   virtual void BeginMainFrame(double frame_time_sec) = 0;
 
   // Requests an OutputSurface to render into.
-  virtual scoped_ptr<cc::OutputSurface> CreateOutputSurface(bool fallback) = 0;
+  virtual std::unique_ptr<cc::OutputSurface> CreateOutputSurface(
+      bool fallback) = 0;
 
   // Requests an external BeginFrameSource from the delegate.
-  virtual scoped_ptr<cc::BeginFrameSource> CreateExternalBeginFrameSource() = 0;
+  virtual std::unique_ptr<cc::BeginFrameSource>
+  CreateExternalBeginFrameSource() = 0;
 
   // Notifies that the draw commands for a committed frame have been issued.
   virtual void DidCommitAndDrawCompositorFrame() = 0;
@@ -77,8 +79,9 @@
 
   // Called by the compositor to request the delegate to record frame timing.
   virtual void RecordFrameTimingEvents(
-      scoped_ptr<cc::FrameTimingTracker::CompositeTimingSet> composite_events,
-      scoped_ptr<cc::FrameTimingTracker::MainFrameTimingSet>
+      std::unique_ptr<cc::FrameTimingTracker::CompositeTimingSet>
+          composite_events,
+      std::unique_ptr<cc::FrameTimingTracker::MainFrameTimingSet>
           main_frame_events) = 0;
 
   // Requests that the client schedule a composite now, and calculate
diff --git a/content/renderer/gpu/render_widget_compositor_unittest.cc b/content/renderer/gpu/render_widget_compositor_unittest.cc
index b217639..39e1f609 100644
--- a/content/renderer/gpu/render_widget_compositor_unittest.cc
+++ b/content/renderer/gpu/render_widget_compositor_unittest.cc
@@ -8,6 +8,7 @@
 
 #include "base/location.h"
 #include "base/macros.h"
+#include "base/memory/ptr_util.h"
 #include "base/single_thread_task_runner.h"
 #include "base/thread_task_runner_handle.h"
 #include "cc/output/begin_frame_args.h"
@@ -71,9 +72,9 @@
  protected:
   base::MessageLoop loop_;
   MockRenderThread render_thread_;
-  scoped_ptr<FakeCompositorDependencies> compositor_deps_;
+  std::unique_ptr<FakeCompositorDependencies> compositor_deps_;
   scoped_refptr<TestRenderWidget> render_widget_;
-  scoped_ptr<RenderWidgetCompositor> render_widget_compositor_;
+  std::unique_ptr<RenderWidgetCompositor> render_widget_compositor_;
 
  private:
   DISALLOW_COPY_AND_ASSIGN(RenderWidgetCompositorTest);
@@ -101,7 +102,8 @@
       : TestRenderWidget(compositor_deps), compositor_(NULL) {}
   void SetCompositor(RenderWidgetCompositorOutputSurface* compositor);
 
-  scoped_ptr<cc::OutputSurface> CreateOutputSurface(bool fallback) override;
+  std::unique_ptr<cc::OutputSurface> CreateOutputSurface(
+      bool fallback) override;
 
  protected:
   ~RenderWidgetOutputSurface() override {}
@@ -137,14 +139,14 @@
 
   using RenderWidgetCompositor::Initialize;
 
-  scoped_ptr<cc::OutputSurface> CreateOutputSurface(bool fallback) {
+  std::unique_ptr<cc::OutputSurface> CreateOutputSurface(bool fallback) {
     EXPECT_EQ(num_requests_since_last_success_ >
                   OUTPUT_SURFACE_RETRIES_BEFORE_FALLBACK,
               fallback);
     last_create_was_fallback_ = fallback;
     bool success = num_failures_ >= num_failures_before_success_;
     if (success) {
-      scoped_ptr<cc::TestWebGraphicsContext3D> context =
+      std::unique_ptr<cc::TestWebGraphicsContext3D> context =
           cc::TestWebGraphicsContext3D::Create();
       // Image support required for synchronous compositing.
       context->set_support_image(true);
@@ -153,7 +155,7 @@
     }
     return use_null_output_surface_
                ? nullptr
-               : make_scoped_ptr(new cc::FailureOutputSurface(true));
+               : base::WrapUnique(new cc::FailureOutputSurface(true));
   }
 
   // Force a new output surface to be created.
@@ -268,16 +270,17 @@
  protected:
   base::MessageLoop ye_olde_message_loope_;
   MockRenderThread render_thread_;
-  scoped_ptr<FakeCompositorDependencies> compositor_deps_;
+  std::unique_ptr<FakeCompositorDependencies> compositor_deps_;
   scoped_refptr<RenderWidgetOutputSurface> render_widget_;
-  scoped_ptr<RenderWidgetCompositorOutputSurface> render_widget_compositor_;
+  std::unique_ptr<RenderWidgetCompositorOutputSurface>
+      render_widget_compositor_;
 
  private:
   DISALLOW_COPY_AND_ASSIGN(RenderWidgetCompositorOutputSurfaceTest);
 };
 
-scoped_ptr<cc::OutputSurface> RenderWidgetOutputSurface::CreateOutputSurface(
-    bool fallback) {
+std::unique_ptr<cc::OutputSurface>
+RenderWidgetOutputSurface::CreateOutputSurface(bool fallback) {
   return compositor_->CreateOutputSurface(fallback);
 }
 
diff --git a/content/renderer/history_controller.cc b/content/renderer/history_controller.cc
index 12d0f1b8..c8553ff2 100644
--- a/content/renderer/history_controller.cc
+++ b/content/renderer/history_controller.cc
@@ -37,6 +37,7 @@
 
 #include <utility>
 
+#include "base/memory/ptr_util.h"
 #include "content/common/navigation_params.h"
 #include "content/common/site_isolation_policy.h"
 #include "content/renderer/render_frame_impl.h"
@@ -63,8 +64,8 @@
 
 bool HistoryController::GoToEntry(
     blink::WebLocalFrame* main_frame,
-    scoped_ptr<HistoryEntry> target_entry,
-    scoped_ptr<NavigationParams> navigation_params,
+    std::unique_ptr<HistoryEntry> target_entry,
+    std::unique_ptr<NavigationParams> navigation_params,
     WebCachePolicy cache_policy) {
   DCHECK(!main_frame->parent());
   HistoryFrameLoadVector same_document_loads;
@@ -96,8 +97,8 @@
     RenderFrameImpl* render_frame = RenderFrameImpl::FromWebFrame(frame);
     if (!render_frame)
       continue;
-    render_frame->SetPendingNavigationParams(make_scoped_ptr(
-        new NavigationParams(*navigation_params_.get())));
+    render_frame->SetPendingNavigationParams(
+        base::WrapUnique(new NavigationParams(*navigation_params_.get())));
     WebURLRequest request = frame->toWebLocalFrame()->requestFromHistoryItem(
         item.second, cache_policy);
     frame->toWebLocalFrame()->load(
@@ -111,8 +112,8 @@
     RenderFrameImpl* render_frame = RenderFrameImpl::FromWebFrame(frame);
     if (!render_frame)
       continue;
-    render_frame->SetPendingNavigationParams(make_scoped_ptr(
-        new NavigationParams(*navigation_params_.get())));
+    render_frame->SetPendingNavigationParams(
+        base::WrapUnique(new NavigationParams(*navigation_params_.get())));
     WebURLRequest request = frame->toWebLocalFrame()->requestFromHistoryItem(
         item.second, cache_policy);
     frame->toWebLocalFrame()->load(
@@ -226,8 +227,8 @@
 WebHistoryItem HistoryController::GetItemForNewChildFrame(
     RenderFrameImpl* frame) const {
   if (navigation_params_.get()) {
-    frame->SetPendingNavigationParams(make_scoped_ptr(
-        new NavigationParams(*navigation_params_.get())));
+    frame->SetPendingNavigationParams(
+        base::WrapUnique(new NavigationParams(*navigation_params_.get())));
   }
 
   if (!current_entry_)
diff --git a/content/renderer/history_controller.h b/content/renderer/history_controller.h
index 7787efb..ff20596 100644
--- a/content/renderer/history_controller.h
+++ b/content/renderer/history_controller.h
@@ -35,11 +35,11 @@
 #ifndef CONTENT_RENDERER_HISTORY_CONTROLLER_H_
 #define CONTENT_RENDERER_HISTORY_CONTROLLER_H_
 
+#include <memory>
 #include <utility>
 
 #include "base/containers/hash_tables.h"
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "content/common/content_export.h"
 #include "content/renderer/history_entry.h"
 #include "third_party/WebKit/public/web/WebHistoryCommitType.h"
@@ -113,15 +113,15 @@
   explicit HistoryController(RenderViewImpl* render_view);
   ~HistoryController();
 
-  void set_provisional_entry(scoped_ptr<HistoryEntry> entry) {
+  void set_provisional_entry(std::unique_ptr<HistoryEntry> entry) {
     provisional_entry_ = std::move(entry);
   }
 
   // Return true if the main frame ended up loading a request as part of the
   // history navigation.
   bool GoToEntry(blink::WebLocalFrame* main_frame,
-                 scoped_ptr<HistoryEntry> entry,
-                 scoped_ptr<NavigationParams> navigation_params,
+                 std::unique_ptr<HistoryEntry> entry,
+                 std::unique_ptr<NavigationParams> navigation_params,
                  blink::WebCachePolicy cache_policy);
 
   void UpdateForCommit(RenderFrameImpl* frame,
@@ -149,16 +149,16 @@
   RenderViewImpl* render_view_;
 
   // A HistoryEntry representing the currently-loaded page.
-  scoped_ptr<HistoryEntry> current_entry_;
+  std::unique_ptr<HistoryEntry> current_entry_;
   // A HistoryEntry representing the page that is being loaded, or an empty
   // scoped_ptr if no page is being loaded.
-  scoped_ptr<HistoryEntry> provisional_entry_;
+  std::unique_ptr<HistoryEntry> provisional_entry_;
   // The NavigationParams corresponding to the last load that was initiated by
   // |GoToEntry|. This is kept around so that it can be passed into existing
   // frames modified during a history navigation in GoToEntry(), and can be
   // passed into frames created after the commit that resulted from the
   // navigation in GetItemForNewChildFrame().
-  scoped_ptr<NavigationParams> navigation_params_;
+  std::unique_ptr<NavigationParams> navigation_params_;
 
   DISALLOW_COPY_AND_ASSIGN(HistoryController);
 };
diff --git a/content/renderer/history_entry.h b/content/renderer/history_entry.h
index 4209d72..22c988a 100644
--- a/content/renderer/history_entry.h
+++ b/content/renderer/history_entry.h
@@ -35,8 +35,9 @@
 #ifndef CONTENT_RENDERER_HISTORY_ENTRY_H_
 #define CONTENT_RENDERER_HISTORY_ENTRY_H_
 
+#include <memory>
+
 #include "base/containers/hash_tables.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/scoped_vector.h"
 #include "base/memory/weak_ptr.h"
 #include "content/common/content_export.h"
@@ -77,7 +78,7 @@
     // a dying HistoryEntry, or do unnecessary work when the whole entry is
     // being destroyed.
     base::WeakPtr<HistoryEntry> entry_;
-    scoped_ptr<ScopedVector<HistoryNode> > children_;
+    std::unique_ptr<ScopedVector<HistoryNode>> children_;
     blink::WebHistoryItem item_;
     // We need to track multiple names because the name of a frame can change
     // over its lifetime. This allows us to clean up all of the names this node
@@ -100,7 +101,7 @@
   HistoryNode* root_history_node() const { return root_.get(); }
 
  private:
-  scoped_ptr<HistoryNode> root_;
+  std::unique_ptr<HistoryNode> root_;
 
   typedef base::hash_map<std::string, HistoryNode*> UniqueNamesToItems;
   UniqueNamesToItems unique_names_to_items_;
diff --git a/content/renderer/history_serialization.cc b/content/renderer/history_serialization.cc
index f227ed3..0a4376c 100644
--- a/content/renderer/history_serialization.cc
+++ b/content/renderer/history_serialization.cc
@@ -198,12 +198,13 @@
   return PageState::CreateFromEncodedData(encoded_data);
 }
 
-scoped_ptr<HistoryEntry> PageStateToHistoryEntry(const PageState& page_state) {
+std::unique_ptr<HistoryEntry> PageStateToHistoryEntry(
+    const PageState& page_state) {
   ExplodedPageState state;
   if (!DecodePageState(page_state.ToEncodedData(), &state))
-    return scoped_ptr<HistoryEntry>();
+    return std::unique_ptr<HistoryEntry>();
 
-  scoped_ptr<HistoryEntry> entry(new HistoryEntry());
+  std::unique_ptr<HistoryEntry> entry(new HistoryEntry());
   RecursivelyGenerateHistoryItem(state.top, entry->root_history_node());
 
   return entry;
diff --git a/content/renderer/history_serialization.h b/content/renderer/history_serialization.h
index e9752af0..c9f4fe9 100644
--- a/content/renderer/history_serialization.h
+++ b/content/renderer/history_serialization.h
@@ -5,9 +5,9 @@
 #ifndef CONTENT_RENDERER_HISTORY_SERIALIZATION_H_
 #define CONTENT_RENDERER_HISTORY_SERIALIZATION_H_
 
+#include <memory>
 #include <string>
 
-#include "base/memory/scoped_ptr.h"
 #include "content/common/content_export.h"
 
 namespace blink {
@@ -21,7 +21,7 @@
 CONTENT_EXPORT PageState HistoryEntryToPageState(HistoryEntry* entry);
 CONTENT_EXPORT PageState SingleHistoryItemToPageState(
     const blink::WebHistoryItem& item);
-CONTENT_EXPORT scoped_ptr<HistoryEntry> PageStateToHistoryEntry(
+CONTENT_EXPORT std::unique_ptr<HistoryEntry> PageStateToHistoryEntry(
     const PageState& state);
 
 }  // namespace content
diff --git a/content/renderer/in_process_renderer_thread.h b/content/renderer/in_process_renderer_thread.h
index d7d0e718..73ae552 100644
--- a/content/renderer/in_process_renderer_thread.h
+++ b/content/renderer/in_process_renderer_thread.h
@@ -5,10 +5,10 @@
 #ifndef CONTENT_RENDERER_IN_PROCESS_RENDERER_THREAD_H_
 #define CONTENT_RENDERER_IN_PROCESS_RENDERER_THREAD_H_
 
+#include <memory>
 #include <string>
 
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/threading/thread.h"
 #include "content/common/content_export.h"
 #include "content/common/in_process_child_thread_params.h"
@@ -29,7 +29,7 @@
 
  private:
   InProcessChildThreadParams params_;
-  scoped_ptr<RenderProcess> render_process_;
+  std::unique_ptr<RenderProcess> render_process_;
 
   DISALLOW_COPY_AND_ASSIGN(InProcessRendererThread);
 };
diff --git a/content/renderer/input/input_event_filter.cc b/content/renderer/input/input_event_filter.cc
index 543e62a..e62ee2c 100644
--- a/content/renderer/input/input_event_filter.cc
+++ b/content/renderer/input/input_event_filter.cc
@@ -9,6 +9,7 @@
 #include "base/auto_reset.h"
 #include "base/bind.h"
 #include "base/location.h"
+#include "base/memory/ptr_util.h"
 #include "base/single_thread_task_runner.h"
 #include "base/thread_task_runner_handle.h"
 #include "base/trace_event/trace_event.h"
@@ -77,12 +78,12 @@
     return;
   }
 
-  SendMessage(scoped_ptr<IPC::Message>(
+  SendMessage(std::unique_ptr<IPC::Message>(
       new InputHostMsg_DidOverscroll(routing_id, params)));
 }
 
 void InputEventFilter::DidStopFlinging(int routing_id) {
-  SendMessage(make_scoped_ptr(new InputHostMsg_DidStopFlinging(routing_id)));
+  SendMessage(base::WrapUnique(new InputHostMsg_DidStopFlinging(routing_id)));
 }
 
 void InputEventFilter::NotifyInputEventHandled(
@@ -170,8 +171,8 @@
 
   // Intercept |DidOverscroll| notifications, bundling any triggered overscroll
   // response with the input event ack.
-  scoped_ptr<DidOverscrollParams> overscroll_params;
-  base::AutoReset<scoped_ptr<DidOverscrollParams>*>
+  std::unique_ptr<DidOverscrollParams> overscroll_params;
+  base::AutoReset<std::unique_ptr<DidOverscrollParams>*>
       auto_reset_current_overscroll_params(
           &current_overscroll_params_, send_ack ? &overscroll_params : NULL);
 
@@ -192,11 +193,11 @@
   InputEventAck ack(event->type, ack_state, latency_info,
                     std::move(overscroll_params),
                     WebInputEventTraits::GetUniqueTouchEventId(*event));
-  SendMessage(scoped_ptr<IPC::Message>(
+  SendMessage(std::unique_ptr<IPC::Message>(
       new InputHostMsg_HandleInputEvent_ACK(routing_id, ack)));
 }
 
-void InputEventFilter::SendMessage(scoped_ptr<IPC::Message> message) {
+void InputEventFilter::SendMessage(std::unique_ptr<IPC::Message> message) {
   DCHECK(target_task_runner_->BelongsToCurrentThread());
 
   io_task_runner_->PostTask(
@@ -204,7 +205,8 @@
                             base::Passed(&message)));
 }
 
-void InputEventFilter::SendMessageOnIOThread(scoped_ptr<IPC::Message> message) {
+void InputEventFilter::SendMessageOnIOThread(
+    std::unique_ptr<IPC::Message> message) {
   DCHECK(io_task_runner_->BelongsToCurrentThread());
 
   if (!sender_)
diff --git a/content/renderer/input/input_event_filter.h b/content/renderer/input/input_event_filter.h
index ed93fa4e..6457fb6 100644
--- a/content/renderer/input/input_event_filter.h
+++ b/content/renderer/input/input_event_filter.h
@@ -85,8 +85,8 @@
   ~InputEventFilter() override;
 
   void ForwardToHandler(const IPC::Message& message);
-  void SendMessage(scoped_ptr<IPC::Message> message);
-  void SendMessageOnIOThread(scoped_ptr<IPC::Message> message);
+  void SendMessage(std::unique_ptr<IPC::Message> message);
+  void SendMessageOnIOThread(std::unique_ptr<IPC::Message> message);
 
   scoped_refptr<base::SingleThreadTaskRunner> main_task_runner_;
   base::Callback<void(const IPC::Message&)> main_listener_;
@@ -106,14 +106,14 @@
   std::set<int> routes_;
 
   using RouteQueueMap =
-      std::unordered_map<int, scoped_ptr<MainThreadEventQueue>>;
+      std::unordered_map<int, std::unique_ptr<MainThreadEventQueue>>;
   RouteQueueMap route_queues_;
 
   // Used to intercept overscroll notifications while an event is being
   // dispatched.  If the event causes overscroll, the overscroll metadata can be
   // bundled in the event ack, saving an IPC.  Note that we must continue
   // supporting overscroll IPC notifications due to fling animation updates.
-  scoped_ptr<DidOverscrollParams>* current_overscroll_params_;
+  std::unique_ptr<DidOverscrollParams>* current_overscroll_params_;
 };
 
 }  // namespace content
diff --git a/content/renderer/input/input_handler_manager.cc b/content/renderer/input/input_handler_manager.cc
index 092e428..74e8a4ae 100644
--- a/content/renderer/input/input_handler_manager.cc
+++ b/content/renderer/input/input_handler_manager.cc
@@ -104,7 +104,7 @@
   TRACE_EVENT1("input",
       "InputHandlerManager::AddInputHandlerOnCompositorThread",
       "result", "AddingRoute");
-  scoped_ptr<InputHandlerWrapper> wrapper(new InputHandlerWrapper(
+  std::unique_ptr<InputHandlerWrapper> wrapper(new InputHandlerWrapper(
       this, routing_id, main_task_runner, input_handler, render_view_impl,
       enable_smooth_scrolling, enable_wheel_gestures));
   client_->DidAddInputHandler(routing_id);
diff --git a/content/renderer/input/input_handler_manager.h b/content/renderer/input/input_handler_manager.h
index 948759c..f9ec3520 100644
--- a/content/renderer/input/input_handler_manager.h
+++ b/content/renderer/input/input_handler_manager.h
@@ -114,7 +114,7 @@
                                                  blink::WebInputEvent::Type);
 
   typedef base::ScopedPtrHashMap<int,  // routing_id
-                                 scoped_ptr<InputHandlerWrapper>>
+                                 std::unique_ptr<InputHandlerWrapper>>
       InputHandlerMap;
   InputHandlerMap input_handlers_;
 
diff --git a/content/renderer/input/main_thread_event_queue.cc b/content/renderer/input/main_thread_event_queue.cc
index d57e69c..d2af3e28 100644
--- a/content/renderer/input/main_thread_event_queue.cc
+++ b/content/renderer/input/main_thread_event_queue.cc
@@ -77,7 +77,7 @@
 void MainThreadEventQueue::EventHandled(blink::WebInputEvent::Type type) {
   if (type == blink::WebInputEvent::MouseWheel) {
     if (!wheel_events_.empty()) {
-      scoped_ptr<PendingMouseWheelEvent> event = wheel_events_.Pop();
+      std::unique_ptr<PendingMouseWheelEvent> event = wheel_events_.Pop();
       client_->SendEventToMainThread(routing_id_, &event->event, event->latency,
                                      event->type);
     } else {
@@ -85,7 +85,7 @@
     }
   } else if (blink::WebInputEvent::isTouchEventType(type)) {
     if (!touch_events_.empty()) {
-      scoped_ptr<PendingTouchEvent> event = touch_events_.Pop();
+      std::unique_ptr<PendingTouchEvent> event = touch_events_.Pop();
       client_->SendEventToMainThread(routing_id_, &event->event, event->latency,
                                      event->type);
     } else {
diff --git a/content/renderer/input/render_widget_input_handler.cc b/content/renderer/input/render_widget_input_handler.cc
index 90734376..e407428 100644
--- a/content/renderer/input/render_widget_input_handler.cc
+++ b/content/renderer/input/render_widget_input_handler.cc
@@ -188,8 +188,8 @@
 
   // Calls into |didOverscroll()| while handling this event will populate
   // |event_overscroll|, which in turn will be bundled with the event ack.
-  scoped_ptr<DidOverscrollParams> event_overscroll;
-  base::AutoReset<scoped_ptr<DidOverscrollParams>*>
+  std::unique_ptr<DidOverscrollParams> event_overscroll;
+  base::AutoReset<std::unique_ptr<DidOverscrollParams>*>
       handling_event_overscroll_resetter(&handling_event_overscroll_,
                                          &event_overscroll);
 
@@ -241,7 +241,7 @@
   if (!start_time.is_null())
     LogInputEventLatencyUma(input_event, start_time);
 
-  scoped_ptr<cc::SwapPromiseMonitor> latency_info_swap_promise_monitor;
+  std::unique_ptr<cc::SwapPromiseMonitor> latency_info_swap_promise_monitor;
   ui::LatencyInfo swap_latency_info(latency_info);
 
   if (widget_->compositor()) {
@@ -411,7 +411,7 @@
   if ((dispatch_type == DISPATCH_TYPE_BLOCKING ||
        dispatch_type == DISPATCH_TYPE_BLOCKING_NOTIFY_MAIN) &&
       can_send_ack) {
-    scoped_ptr<InputEventAck> response(new InputEventAck(
+    std::unique_ptr<InputEventAck> response(new InputEventAck(
         input_event.type, ack_result, swap_latency_info,
         std::move(event_overscroll),
         WebInputEventTraits::GetUniqueTouchEventId(input_event)));
@@ -489,7 +489,7 @@
     const WebFloatSize& accumulatedRootOverScroll,
     const WebFloatPoint& position,
     const WebFloatSize& velocity) {
-  scoped_ptr<DidOverscrollParams> params(new DidOverscrollParams());
+  std::unique_ptr<DidOverscrollParams> params(new DidOverscrollParams());
   params->accumulated_overscroll = gfx::Vector2dF(
       accumulatedRootOverScroll.width, accumulatedRootOverScroll.height);
   params->latest_overscroll_delta =
@@ -515,7 +515,7 @@
     // If we pause multiple times during a single mouse move event, we should
     // only send ACK once.
     if (!ignore_ack_for_mouse_move_from_debugger_) {
-      scoped_ptr<InputEventAck> ack(new InputEventAck(
+      std::unique_ptr<InputEventAck> ack(new InputEventAck(
           handling_event_type_, INPUT_EVENT_ACK_STATE_CONSUMED));
       delegate_->OnInputEventAck(std::move(ack));
       return true;
diff --git a/content/renderer/input/render_widget_input_handler.h b/content/renderer/input/render_widget_input_handler.h
index a82968bf..c74459a 100644
--- a/content/renderer/input/render_widget_input_handler.h
+++ b/content/renderer/input/render_widget_input_handler.h
@@ -5,8 +5,9 @@
 #ifndef CONTENT_RENDERER_INPUT_RENDER_WIDGET_INPUT_HANDLER_H_
 #define CONTENT_RENDERER_INPUT_RENDER_WIDGET_INPUT_HANDLER_H_
 
+#include <memory>
+
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/time/time.h"
 #include "content/common/input/did_overscroll_params.h"
 #include "content/common/input/input_event_ack.h"
@@ -88,7 +89,7 @@
   // handled. If the event causes overscroll, the overscroll metadata can be
   // bundled in the event ack, saving an IPC.  Note that we must continue
   // supporting overscroll IPC notifications due to fling animation updates.
-  scoped_ptr<DidOverscrollParams>* handling_event_overscroll_;
+  std::unique_ptr<DidOverscrollParams>* handling_event_overscroll_;
 
   // Type of the input event we are currently handling.
   blink::WebInputEvent::Type handling_event_type_;
@@ -104,7 +105,7 @@
   // Whether we should not send ack for the current mouse move.
   bool ignore_ack_for_mouse_move_from_debugger_;
 
-  scoped_ptr<InputEventAck> pending_input_event_ack_;
+  std::unique_ptr<InputEventAck> pending_input_event_ack_;
 
   DISALLOW_COPY_AND_ASSIGN(RenderWidgetInputHandler);
 };
diff --git a/content/renderer/input/render_widget_input_handler_delegate.h b/content/renderer/input/render_widget_input_handler_delegate.h
index 9f49294c..4c42d8a 100644
--- a/content/renderer/input/render_widget_input_handler_delegate.h
+++ b/content/renderer/input/render_widget_input_handler_delegate.h
@@ -5,7 +5,8 @@
 #ifndef CONTENT_RENDERER_INPUT_RENDER_WIDGET_INPUT_HANDLER_DELEGATE_H_
 #define CONTENT_RENDERER_INPUT_RENDER_WIDGET_INPUT_HANDLER_DELEGATE_H_
 
-#include "base/memory/scoped_ptr.h"
+#include <memory>
+
 #include "content/common/content_export.h"
 #include "content/common/input/input_event_ack.h"
 
@@ -63,7 +64,8 @@
   virtual void OnDidOverscroll(const DidOverscrollParams& params) = 0;
 
   // Called when an ACK is ready to be sent to the input event provider.
-  virtual void OnInputEventAck(scoped_ptr<InputEventAck> input_event_ack) = 0;
+  virtual void OnInputEventAck(
+      std::unique_ptr<InputEventAck> input_event_ack) = 0;
 
   // Called when an event with a notify dispatch type
   // (DISPATCH_TYPE_*_NOTIFY_MAIN) of |handled_type| has been processed
diff --git a/content/renderer/internal_document_state_data.h b/content/renderer/internal_document_state_data.h
index 3963daea..34e275d7 100644
--- a/content/renderer/internal_document_state_data.h
+++ b/content/renderer/internal_document_state_data.h
@@ -5,10 +5,10 @@
 #ifndef CONTENT_RENDERER_INTERNAL_DOCUMENT_STATE_DATA_H_
 #define CONTENT_RENDERER_INTERNAL_DOCUMENT_STATE_DATA_H_
 
+#include <memory>
 #include <string>
 
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/supports_user_data.h"
 #include "third_party/WebKit/public/platform/WebCachePolicy.h"
 #include "url/gurl.h"
diff --git a/content/renderer/java/gin_java_bridge_dispatcher.cc b/content/renderer/java/gin_java_bridge_dispatcher.cc
index 820c6ce..0d6d0735 100644
--- a/content/renderer/java/gin_java_bridge_dispatcher.cc
+++ b/content/renderer/java/gin_java_bridge_dispatcher.cc
@@ -92,7 +92,7 @@
   return result;
 }
 
-scoped_ptr<base::Value> GinJavaBridgeDispatcher::InvokeJavaMethod(
+std::unique_ptr<base::Value> GinJavaBridgeDispatcher::InvokeJavaMethod(
     ObjectID object_id,
     const std::string& method_name,
     const base::ListValue& arguments,
@@ -107,9 +107,9 @@
                                             error));
   base::Value* result;
   if (result_wrapper.Get(0, &result)) {
-    return scoped_ptr<base::Value>(result->DeepCopy());
+    return std::unique_ptr<base::Value>(result->DeepCopy());
   } else {
-    return scoped_ptr<base::Value>();
+    return std::unique_ptr<base::Value>();
   }
 }
 
diff --git a/content/renderer/java/gin_java_bridge_dispatcher.h b/content/renderer/java/gin_java_bridge_dispatcher.h
index 05e1427..f795c28 100644
--- a/content/renderer/java/gin_java_bridge_dispatcher.h
+++ b/content/renderer/java/gin_java_bridge_dispatcher.h
@@ -6,11 +6,11 @@
 #define CONTENT_RENDERER_JAVA_GIN_JAVA_BRIDGE_DISPATCHER_H_
 
 #include <map>
+#include <memory>
 #include <set>
 
 #include "base/id_map.h"
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "base/values.h"
 #include "content/common/android/gin_java_bridge_errors.h"
@@ -50,10 +50,11 @@
 
   void GetJavaMethods(ObjectID object_id, std::set<std::string>* methods);
   bool HasJavaMethod(ObjectID object_id, const std::string& method_name);
-  scoped_ptr<base::Value> InvokeJavaMethod(ObjectID object_id,
-                                           const std::string& method_name,
-                                           const base::ListValue& arguments,
-                                           GinJavaBridgeError* error);
+  std::unique_ptr<base::Value> InvokeJavaMethod(
+      ObjectID object_id,
+      const std::string& method_name,
+      const base::ListValue& arguments,
+      GinJavaBridgeError* error);
   GinJavaBridgeObject* GetObject(ObjectID object_id);
   void OnGinJavaBridgeObjectDeleted(GinJavaBridgeObject* object);
 
diff --git a/content/renderer/java/gin_java_bridge_value_converter.cc b/content/renderer/java/gin_java_bridge_value_converter.cc
index 78dd76e..527b541c 100644
--- a/content/renderer/java/gin_java_bridge_value_converter.cc
+++ b/content/renderer/java/gin_java_bridge_value_converter.cc
@@ -10,6 +10,7 @@
 #include <cmath>
 
 #include "base/macros.h"
+#include "base/memory/ptr_util.h"
 #include "base/values.h"
 #include "content/common/android/gin_java_bridge_value.h"
 #include "content/renderer/java/gin_java_bridge_object.h"
@@ -34,10 +35,10 @@
   return converter_->ToV8Value(value, context);
 }
 
-scoped_ptr<base::Value> GinJavaBridgeValueConverter::FromV8Value(
+std::unique_ptr<base::Value> GinJavaBridgeValueConverter::FromV8Value(
     v8::Local<v8::Value> value,
     v8::Local<v8::Context> context) const {
-  return make_scoped_ptr(converter_->FromV8Value(value, context));
+  return base::WrapUnique(converter_->FromV8Value(value, context));
 }
 
 bool GinJavaBridgeValueConverter::FromV8Object(
@@ -59,7 +60,7 @@
 class TypedArraySerializer {
  public:
   virtual ~TypedArraySerializer() {}
-  static scoped_ptr<TypedArraySerializer> Create(
+  static std::unique_ptr<TypedArraySerializer> Create(
       v8::Local<v8::TypedArray> typed_array);
   virtual void serializeTo(char* data,
                            size_t data_length,
@@ -71,9 +72,9 @@
 template <typename ElementType, typename ListType>
 class TypedArraySerializerImpl : public TypedArraySerializer {
  public:
-  static scoped_ptr<TypedArraySerializer> Create(
+  static std::unique_ptr<TypedArraySerializer> Create(
       v8::Local<v8::TypedArray> typed_array) {
-    return make_scoped_ptr(
+    return base::WrapUnique(
         new TypedArraySerializerImpl<ElementType, ListType>(typed_array));
   }
 
@@ -100,7 +101,7 @@
 };
 
 // static
-scoped_ptr<TypedArraySerializer> TypedArraySerializer::Create(
+std::unique_ptr<TypedArraySerializer> TypedArraySerializer::Create(
     v8::Local<v8::TypedArray> typed_array) {
   if (typed_array->IsInt8Array() ||
       typed_array->IsUint8Array() ||
@@ -116,7 +117,7 @@
     return TypedArraySerializerImpl<double, double>::Create(typed_array);
   }
   NOTREACHED();
-  return scoped_ptr<TypedArraySerializer>();
+  return std::unique_ptr<TypedArraySerializer>();
 }
 
 }  // namespace
@@ -144,7 +145,7 @@
 
   base::ListValue* result = new base::ListValue();
   *out = result;
-  scoped_ptr<TypedArraySerializer> serializer(
+  std::unique_ptr<TypedArraySerializer> serializer(
       TypedArraySerializer::Create(value.As<v8::TypedArray>()));
   serializer->serializeTo(data, data_length, result);
   return true;
diff --git a/content/renderer/java/gin_java_bridge_value_converter.h b/content/renderer/java/gin_java_bridge_value_converter.h
index 5c4ee984..2e48f19 100644
--- a/content/renderer/java/gin_java_bridge_value_converter.h
+++ b/content/renderer/java/gin_java_bridge_value_converter.h
@@ -5,8 +5,9 @@
 #ifndef CONTENT_RENDERER_JAVA_GIN_JAVA_BRIDGE_VALUE_CONVERTER_H_
 #define CONTENT_RENDERER_JAVA_GIN_JAVA_BRIDGE_VALUE_CONVERTER_H_
 
+#include <memory>
+
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "content/common/content_export.h"
 #include "content/public/child/v8_value_converter.h"
 
@@ -20,7 +21,7 @@
   CONTENT_EXPORT v8::Local<v8::Value> ToV8Value(
       const base::Value* value,
       v8::Local<v8::Context> context) const;
-  CONTENT_EXPORT scoped_ptr<base::Value> FromV8Value(
+  CONTENT_EXPORT std::unique_ptr<base::Value> FromV8Value(
       v8::Local<v8::Value> value,
       v8::Local<v8::Context> context) const;
 
@@ -37,7 +38,7 @@
   bool FromV8Undefined(base::Value** out) const override;
 
  private:
-  scoped_ptr<V8ValueConverter> converter_;
+  std::unique_ptr<V8ValueConverter> converter_;
 
   DISALLOW_COPY_AND_ASSIGN(GinJavaBridgeValueConverter);
 };
diff --git a/content/renderer/java/gin_java_bridge_value_converter_unittest.cc b/content/renderer/java/gin_java_bridge_value_converter_unittest.cc
index 33c3222..e766c0752 100644
--- a/content/renderer/java/gin_java_bridge_value_converter_unittest.cc
+++ b/content/renderer/java/gin_java_bridge_value_converter_unittest.cc
@@ -2,15 +2,16 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include "content/renderer/java/gin_java_bridge_value_converter.h"
+
 #include <stddef.h>
 
 #include <cmath>
+#include <memory>
 
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/strings/stringprintf.h"
 #include "content/common/android/gin_java_bridge_value.h"
-#include "content/renderer/java/gin_java_bridge_value_converter.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "v8/include/v8.h"
 
@@ -43,27 +44,27 @@
       v8::Local<v8::Context>::New(isolate_, context_);
   v8::Context::Scope context_scope(context);
 
-  scoped_ptr<GinJavaBridgeValueConverter> converter(
+  std::unique_ptr<GinJavaBridgeValueConverter> converter(
       new GinJavaBridgeValueConverter());
 
   v8::Local<v8::Primitive> v8_undefined(v8::Undefined(isolate_));
-  scoped_ptr<base::Value> undefined(
+  std::unique_ptr<base::Value> undefined(
       converter->FromV8Value(v8_undefined, context));
   ASSERT_TRUE(undefined.get());
   EXPECT_TRUE(GinJavaBridgeValue::ContainsGinJavaBridgeValue(undefined.get()));
-  scoped_ptr<const GinJavaBridgeValue> undefined_value(
+  std::unique_ptr<const GinJavaBridgeValue> undefined_value(
       GinJavaBridgeValue::FromValue(undefined.get()));
   ASSERT_TRUE(undefined_value.get());
   EXPECT_TRUE(undefined_value->IsType(GinJavaBridgeValue::TYPE_UNDEFINED));
 
   v8::Local<v8::Number> v8_infinity(
       v8::Number::New(isolate_, std::numeric_limits<double>::infinity()));
-  scoped_ptr<base::Value> infinity(
+  std::unique_ptr<base::Value> infinity(
       converter->FromV8Value(v8_infinity, context));
   ASSERT_TRUE(infinity.get());
   EXPECT_TRUE(
       GinJavaBridgeValue::ContainsGinJavaBridgeValue(infinity.get()));
-  scoped_ptr<const GinJavaBridgeValue> infinity_value(
+  std::unique_ptr<const GinJavaBridgeValue> infinity_value(
       GinJavaBridgeValue::FromValue(infinity.get()));
   ASSERT_TRUE(infinity_value.get());
   float native_float;
@@ -79,16 +80,16 @@
       v8::Local<v8::Context>::New(isolate_, context_);
   v8::Context::Scope context_scope(context);
 
-  scoped_ptr<GinJavaBridgeValueConverter> converter(
+  std::unique_ptr<GinJavaBridgeValueConverter> converter(
       new GinJavaBridgeValueConverter());
 
   v8::Local<v8::ArrayBuffer> v8_array_buffer(
       v8::ArrayBuffer::New(isolate_, 0));
-  scoped_ptr<base::Value> undefined(
+  std::unique_ptr<base::Value> undefined(
       converter->FromV8Value(v8_array_buffer, context));
   ASSERT_TRUE(undefined.get());
   EXPECT_TRUE(GinJavaBridgeValue::ContainsGinJavaBridgeValue(undefined.get()));
-  scoped_ptr<const GinJavaBridgeValue> undefined_value(
+  std::unique_ptr<const GinJavaBridgeValue> undefined_value(
       GinJavaBridgeValue::FromValue(undefined.get()));
   ASSERT_TRUE(undefined_value.get());
   EXPECT_TRUE(undefined_value->IsType(GinJavaBridgeValue::TYPE_UNDEFINED));
@@ -102,7 +103,7 @@
   v8::MicrotasksScope microtasks_scope(
       isolate_, v8::MicrotasksScope::kDoNotRunMicrotasks);
 
-  scoped_ptr<GinJavaBridgeValueConverter> converter(
+  std::unique_ptr<GinJavaBridgeValueConverter> converter(
       new GinJavaBridgeValueConverter());
 
   const char* source_template = "(function() {"
@@ -124,7 +125,7 @@
         base::StringPrintf(
             source_template, array_types[i], typed_array_type).c_str())));
     v8::Local<v8::Value> v8_typed_array = script->Run();
-    scoped_ptr<base::Value> list_value(
+    std::unique_ptr<base::Value> list_value(
         converter->FromV8Value(v8_typed_array, context));
     ASSERT_TRUE(list_value.get()) << typed_array_type;
     EXPECT_TRUE(list_value->IsType(base::Value::TYPE_LIST)) << typed_array_type;
diff --git a/content/renderer/java/gin_java_function_invocation_helper.cc b/content/renderer/java/gin_java_function_invocation_helper.cc
index 428a954..c1729e5 100644
--- a/content/renderer/java/gin_java_function_invocation_helper.cc
+++ b/content/renderer/java/gin_java_function_invocation_helper.cc
@@ -61,7 +61,7 @@
     v8::Local<v8::Context> context = args->isolate()->GetCurrentContext();
     v8::Local<v8::Value> val;
     while (args->GetNext(&val)) {
-      scoped_ptr<base::Value> arg(converter_->FromV8Value(val, context));
+      std::unique_ptr<base::Value> arg(converter_->FromV8Value(val, context));
       if (arg.get()) {
         arguments.Append(arg.release());
       } else {
@@ -71,7 +71,7 @@
   }
 
   GinJavaBridgeError error;
-  scoped_ptr<base::Value> result = dispatcher_->InvokeJavaMethod(
+  std::unique_ptr<base::Value> result = dispatcher_->InvokeJavaMethod(
       object->object_id(), method_name_, arguments, &error);
   if (!result.get()) {
     args->isolate()->ThrowException(v8::Exception::Error(gin::StringToV8(
@@ -83,7 +83,7 @@
                                  args->isolate()->GetCurrentContext());
   }
 
-  scoped_ptr<const GinJavaBridgeValue> gin_value =
+  std::unique_ptr<const GinJavaBridgeValue> gin_value =
       GinJavaBridgeValue::FromValue(result.get());
   if (gin_value->IsType(GinJavaBridgeValue::TYPE_OBJECT_ID)) {
     GinJavaBridgeObject* result = NULL;
diff --git a/content/renderer/java/gin_java_function_invocation_helper.h b/content/renderer/java/gin_java_function_invocation_helper.h
index 823420d5..b74083c 100644
--- a/content/renderer/java/gin_java_function_invocation_helper.h
+++ b/content/renderer/java/gin_java_function_invocation_helper.h
@@ -5,8 +5,9 @@
 #ifndef CONTENT_RENDERER_JAVA_GIN_JAVA_FUNCTION_INVOCATION_HELPER_H_
 #define CONTENT_RENDERER_JAVA_GIN_JAVA_FUNCTION_INVOCATION_HELPER_H_
 
+#include <memory>
+
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "content/renderer/java/gin_java_bridge_dispatcher.h"
 #include "gin/arguments.h"
@@ -28,7 +29,7 @@
  private:
   std::string method_name_;
   base::WeakPtr<GinJavaBridgeDispatcher> dispatcher_;
-  scoped_ptr<GinJavaBridgeValueConverter> converter_;
+  std::unique_ptr<GinJavaBridgeValueConverter> converter_;
 
   DISALLOW_COPY_AND_ASSIGN(GinJavaFunctionInvocationHelper);
 };
diff --git a/content/renderer/manifest/manifest_manager.cc b/content/renderer/manifest/manifest_manager.cc
index dcdf176..fda8c835 100644
--- a/content/renderer/manifest/manifest_manager.cc
+++ b/content/renderer/manifest/manifest_manager.cc
@@ -160,7 +160,7 @@
 
   fetcher_.reset();
 
-  for (const scoped_ptr<ManifestParser::ErrorInfo>& error_info :
+  for (const std::unique_ptr<ManifestParser::ErrorInfo>& error_info :
        parser.errors()) {
     blink::WebConsoleMessage message;
     message.level = blink::WebConsoleMessage::LevelError;
diff --git a/content/renderer/manifest/manifest_manager.h b/content/renderer/manifest/manifest_manager.h
index f78482f..88304bbe 100644
--- a/content/renderer/manifest/manifest_manager.h
+++ b/content/renderer/manifest/manifest_manager.h
@@ -6,10 +6,10 @@
 #define CONTENT_RENDERER_MANIFEST_MANIFEST_MANAGER_H_
 
 #include <list>
+#include <memory>
 
 #include "base/callback_forward.h"
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "content/public/common/manifest.h"
 #include "content/public/renderer/render_frame_observer.h"
 
@@ -64,7 +64,7 @@
                                const std::string& data);
   void ResolveCallbacks(ResolveState state);
 
-  scoped_ptr<ManifestFetcher> fetcher_;
+  std::unique_ptr<ManifestFetcher> fetcher_;
 
   // Whether the RenderFrame may have an associated Manifest. If true, the frame
   // may have a manifest, if false, it can't have one. This boolean is true when
diff --git a/content/renderer/mojo/service_registry_js_wrapper.cc b/content/renderer/mojo/service_registry_js_wrapper.cc
index 1ab8b86f..8b57938 100644
--- a/content/renderer/mojo/service_registry_js_wrapper.cc
+++ b/content/renderer/mojo/service_registry_js_wrapper.cc
@@ -4,9 +4,9 @@
 
 #include "content/renderer/mojo/service_registry_js_wrapper.h"
 
+#include <memory>
 #include <utility>
 
-#include "base/memory/scoped_ptr.h"
 #include "content/common/mojo/service_registry_impl.h"
 #include "content/public/common/service_registry.h"
 #include "mojo/edk/js/handle.h"
diff --git a/content/renderer/mojo_bindings_controller.cc b/content/renderer/mojo_bindings_controller.cc
index 84a61b2..135c5ad 100644
--- a/content/renderer/mojo_bindings_controller.cc
+++ b/content/renderer/mojo_bindings_controller.cc
@@ -21,7 +21,7 @@
 const char kMojoContextStateKey[] = "MojoContextState";
 
 struct MojoContextStateData : public base::SupportsUserData::Data {
-  scoped_ptr<MojoContextState> state;
+  std::unique_ptr<MojoContextState> state;
 };
 
 }  // namespace
diff --git a/content/renderer/mojo_context_state.cc b/content/renderer/mojo_context_state.cc
index 4274fee..17939f7b 100644
--- a/content/renderer/mojo_context_state.cc
+++ b/content/renderer/mojo_context_state.cc
@@ -52,7 +52,7 @@
 using ModuleSourceMap =
     std::map<std::string, scoped_refptr<base::RefCountedMemory>>;
 
-base::LazyInstance<scoped_ptr<ModuleSourceMap>>::Leaky g_module_sources;
+base::LazyInstance<std::unique_ptr<ModuleSourceMap>>::Leaky g_module_sources;
 
 scoped_refptr<base::RefCountedMemory> GetBuiltinModuleData(
     const std::string& path) {
@@ -70,7 +70,7 @@
     { mojo::kValidatorModuleName, IDR_MOJO_VALIDATOR_JS },
   };
 
-  scoped_ptr<ModuleSourceMap>& module_sources = g_module_sources.Get();
+  std::unique_ptr<ModuleSourceMap>& module_sources = g_module_sources.Get();
   if (!module_sources) {
     // Initialize the module source map on first access.
     module_sources.reset(new ModuleSourceMap);
@@ -186,7 +186,7 @@
   DCHECK_EQ(module_prefix_ + id, response.url().string().utf8());
   // We can't delete fetch right now as the arguments to this function come from
   // it and are used below. Instead use a scope_ptr to cleanup.
-  scoped_ptr<ResourceFetcher> deleter(fetcher);
+  std::unique_ptr<ResourceFetcher> deleter(fetcher);
   module_fetchers_.weak_erase(
       std::find(module_fetchers_.begin(), module_fetchers_.end(), fetcher));
   if (data.empty()) {
diff --git a/content/renderer/mojo_context_state.h b/content/renderer/mojo_context_state.h
index eaca530..2a60c61 100644
--- a/content/renderer/mojo_context_state.h
+++ b/content/renderer/mojo_context_state.h
@@ -5,11 +5,11 @@
 #ifndef CONTENT_RENDERER_MOJO_CONTEXT_STATE_H_
 #define CONTENT_RENDERER_MOJO_CONTEXT_STATE_H_
 
+#include <memory>
 #include <set>
 #include <string>
 
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/scoped_vector.h"
 #include "gin/modules/module_registry_observer.h"
 #include "v8/include/v8.h"
@@ -71,7 +71,7 @@
   bool module_added_;
 
   // Executes the script from gin.
-  scoped_ptr<MojoMainRunner> runner_;
+  std::unique_ptr<MojoMainRunner> runner_;
 
   // Set of fetchers we're waiting on to download script.
   ScopedVector<ResourceFetcher> module_fetchers_;
diff --git a/content/renderer/mus/compositor_mus_connection.cc b/content/renderer/mus/compositor_mus_connection.cc
index d303789..57cdb76d 100644
--- a/content/renderer/mus/compositor_mus_connection.cc
+++ b/content/renderer/mus/compositor_mus_connection.cc
@@ -39,7 +39,7 @@
 }
 
 void CompositorMusConnection::AttachSurfaceOnMainThread(
-    scoped_ptr<mus::WindowSurfaceBinding> surface_binding) {
+    std::unique_ptr<mus::WindowSurfaceBinding> surface_binding) {
   DCHECK(main_task_runner_->BelongsToCurrentThread());
   compositor_task_runner_->PostTask(
       FROM_HERE,
@@ -50,7 +50,7 @@
 CompositorMusConnection::~CompositorMusConnection() {}
 
 void CompositorMusConnection::AttachSurfaceOnCompositorThread(
-    scoped_ptr<mus::WindowSurfaceBinding> surface_binding) {
+    std::unique_ptr<mus::WindowSurfaceBinding> surface_binding) {
   DCHECK(compositor_task_runner_->BelongsToCurrentThread());
   window_surface_binding_ = std::move(surface_binding);
   if (root_) {
@@ -77,7 +77,7 @@
 }
 
 void CompositorMusConnection::OnWindowInputEventOnMainThread(
-    scoped_ptr<blink::WebInputEvent> web_event,
+    std::unique_ptr<blink::WebInputEvent> web_event,
     const base::Callback<void(bool)>& ack) {
   DCHECK(main_task_runner_->BelongsToCurrentThread());
   RenderWidgetMusConnection* connection =
@@ -117,11 +117,12 @@
 void CompositorMusConnection::OnWindowInputEvent(
     mus::Window* window,
     const ui::Event& event,
-    scoped_ptr<base::Callback<void(bool)>>* ack_callback) {
+    std::unique_ptr<base::Callback<void(bool)>>* ack_callback) {
   DCHECK(compositor_task_runner_->BelongsToCurrentThread());
   // TODO(moshayedi): Convert ui::Event directly to blink::WebInputEvent.
-  scoped_ptr<blink::WebInputEvent> web_event(
-      mus::mojom::Event::From(event).To<scoped_ptr<blink::WebInputEvent>>());
+  std::unique_ptr<blink::WebInputEvent> web_event(
+      mus::mojom::Event::From(event)
+          .To<std::unique_ptr<blink::WebInputEvent>>());
   // TODO(sad): We probably need to plumb LatencyInfo through Mus.
   ui::LatencyInfo info;
   InputEventAckState ack_state = input_handler_manager_->HandleInputEvent(
diff --git a/content/renderer/mus/compositor_mus_connection.h b/content/renderer/mus/compositor_mus_connection.h
index 8003e47..636100e 100644
--- a/content/renderer/mus/compositor_mus_connection.h
+++ b/content/renderer/mus/compositor_mus_connection.h
@@ -41,7 +41,7 @@
   // Attaches the provided |surface_binding| with the mus::Window for the
   // renderer once it becomes available.
   void AttachSurfaceOnMainThread(
-      scoped_ptr<mus::WindowSurfaceBinding> surface_binding);
+      std::unique_ptr<mus::WindowSurfaceBinding> surface_binding);
 
  private:
   friend class CompositorMusConnectionTest;
@@ -50,7 +50,7 @@
   ~CompositorMusConnection() override;
 
   void AttachSurfaceOnCompositorThread(
-      scoped_ptr<mus::WindowSurfaceBinding> surface_binding);
+      std::unique_ptr<mus::WindowSurfaceBinding> surface_binding);
 
   void CreateWindowTreeConnectionOnCompositorThread(
       mojo::InterfaceRequest<mus::mojom::WindowTreeClient> request);
@@ -58,7 +58,7 @@
   void OnConnectionLostOnMainThread();
 
   void OnWindowInputEventOnMainThread(
-      scoped_ptr<blink::WebInputEvent> web_event,
+      std::unique_ptr<blink::WebInputEvent> web_event,
       const base::Callback<void(bool)>& ack);
 
   void OnWindowInputEventAckOnMainThread(const base::Callback<void(bool)>& ack,
@@ -72,14 +72,14 @@
   void OnWindowInputEvent(
       mus::Window* window,
       const ui::Event& event,
-      scoped_ptr<base::Callback<void(bool)>>* ack_callback) override;
+      std::unique_ptr<base::Callback<void(bool)>>* ack_callback) override;
 
   const int routing_id_;
   mus::Window* root_;
   scoped_refptr<base::SingleThreadTaskRunner> main_task_runner_;
   scoped_refptr<base::SingleThreadTaskRunner> compositor_task_runner_;
   InputHandlerManager* const input_handler_manager_;
-  scoped_ptr<mus::WindowSurfaceBinding> window_surface_binding_;
+  std::unique_ptr<mus::WindowSurfaceBinding> window_surface_binding_;
 
   DISALLOW_COPY_AND_ASSIGN(CompositorMusConnection);
 };
diff --git a/content/renderer/mus/compositor_mus_connection_unittest.cc b/content/renderer/mus/compositor_mus_connection_unittest.cc
index aab11f5..85c827b3 100644
--- a/content/renderer/mus/compositor_mus_connection_unittest.cc
+++ b/content/renderer/mus/compositor_mus_connection_unittest.cc
@@ -4,9 +4,10 @@
 
 #include "content/renderer/mus/compositor_mus_connection.h"
 
+#include <memory>
+
 #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/time/time.h"
 #include "components/mus/public/cpp/tests/test_window.h"
@@ -190,7 +191,7 @@
     const ui::LatencyInfo& latency_info,
     content::InputEventDispatchType dispatch_type) {
   if (delegate_) {
-    scoped_ptr<content::InputEventAck> ack(
+    std::unique_ptr<content::InputEventAck> ack(
         new content::InputEventAck(input_event.type, state_));
     delegate_->OnInputEventAck(std::move(ack));
   }
@@ -210,12 +211,13 @@
 
   // Returns a valid key event, so that it can be converted to a web event by
   // CompositorMusConnection.
-  scoped_ptr<ui::Event> GenerateKeyEvent();
+  std::unique_ptr<ui::Event> GenerateKeyEvent();
 
   // Calls CompositorMusConnection::OnWindowInputEvent.
-  void OnWindowInputEvent(mus::Window* window,
-                          const ui::Event& event,
-                          scoped_ptr<base::Callback<void(bool)>>* ack_callback);
+  void OnWindowInputEvent(
+      mus::Window* window,
+      const ui::Event& event,
+      std::unique_ptr<base::Callback<void(bool)>>* ack_callback);
 
   // Confirms the state of pending tasks enqueued on each task runner, and runs
   // until idle.
@@ -258,21 +260,21 @@
   scoped_refptr<CompositorMusConnection> compositor_connection_;
 
   // Test implementations, to control input given to |compositor_connection_|.
-  scoped_ptr<TestInputHandlerManager> input_handler_manager_;
-  scoped_ptr<TestRenderWidgetInputHandler> render_widget_input_handler_;
+  std::unique_ptr<TestInputHandlerManager> input_handler_manager_;
+  std::unique_ptr<TestRenderWidgetInputHandler> render_widget_input_handler_;
 
   DISALLOW_COPY_AND_ASSIGN(CompositorMusConnectionTest);
 };
 
-scoped_ptr<ui::Event> CompositorMusConnectionTest::GenerateKeyEvent() {
-  return scoped_ptr<ui::Event>(new ui::KeyEvent(
+std::unique_ptr<ui::Event> CompositorMusConnectionTest::GenerateKeyEvent() {
+  return std::unique_ptr<ui::Event>(new ui::KeyEvent(
       ui::ET_KEY_PRESSED, ui::KeyboardCode::VKEY_A, ui::EF_NONE));
 }
 
 void CompositorMusConnectionTest::OnWindowInputEvent(
     mus::Window* window,
     const ui::Event& event,
-    scoped_ptr<base::Callback<void(bool)>>* ack_callback) {
+    std::unique_ptr<base::Callback<void(bool)>>* ack_callback) {
   compositor_connection_->OnWindowInputEvent(window, event, ack_callback);
 }
 
@@ -330,9 +332,9 @@
       InputEventAckState::INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
 
   mus::TestWindow test_window;
-  scoped_ptr<ui::Event> event(GenerateKeyEvent());
+  std::unique_ptr<ui::Event> event(GenerateKeyEvent());
   scoped_refptr<TestCallback> test_callback(new TestCallback);
-  scoped_ptr<base::Callback<void(bool)>> ack_callback(
+  std::unique_ptr<base::Callback<void(bool)>> ack_callback(
       new base::Callback<void(bool)>(
           base::Bind(&::TestCallback::BoolCallback, test_callback)));
 
@@ -357,9 +359,9 @@
   input_handler->set_state(InputEventAckState::INPUT_EVENT_ACK_STATE_CONSUMED);
 
   mus::TestWindow test_window;
-  scoped_ptr<ui::Event> event(GenerateKeyEvent());
+  std::unique_ptr<ui::Event> event(GenerateKeyEvent());
   scoped_refptr<TestCallback> test_callback(new TestCallback);
-  scoped_ptr<base::Callback<void(bool)>> ack_callback(
+  std::unique_ptr<base::Callback<void(bool)>> ack_callback(
       new base::Callback<void(bool)>(
           base::Bind(&::TestCallback::BoolCallback, test_callback)));
 
@@ -379,9 +381,9 @@
 // arrives, that only the most recent ack is fired.
 TEST_F(CompositorMusConnectionTest, LostAck) {
   mus::TestWindow test_window;
-  scoped_ptr<ui::Event> event1(GenerateKeyEvent());
+  std::unique_ptr<ui::Event> event1(GenerateKeyEvent());
   scoped_refptr<TestCallback> test_callback1(new TestCallback);
-  scoped_ptr<base::Callback<void(bool)>> ack_callback1(
+  std::unique_ptr<base::Callback<void(bool)>> ack_callback1(
       new base::Callback<void(bool)>(
           base::Bind(&::TestCallback::BoolCallback, test_callback1)));
 
@@ -396,9 +398,9 @@
   input_handler->set_delegate(connection());
   input_handler->set_state(InputEventAckState::INPUT_EVENT_ACK_STATE_CONSUMED);
 
-  scoped_ptr<ui::Event> event2(GenerateKeyEvent());
+  std::unique_ptr<ui::Event> event2(GenerateKeyEvent());
   scoped_refptr<TestCallback> test_callback2(new TestCallback);
-  scoped_ptr<base::Callback<void(bool)>> ack_callback2(
+  std::unique_ptr<base::Callback<void(bool)>> ack_callback2(
       new base::Callback<void(bool)>(
           base::Bind(&::TestCallback::BoolCallback, test_callback2)));
   OnWindowInputEvent(&test_window, *event2.get(), &ack_callback2);
@@ -418,9 +420,9 @@
   input_handler_manager()->SetHandleInputEventResult(
       InputEventAckState::INPUT_EVENT_ACK_STATE_CONSUMED);
   mus::TestWindow test_window;
-  scoped_ptr<ui::Event> event(GenerateKeyEvent());
+  std::unique_ptr<ui::Event> event(GenerateKeyEvent());
   scoped_refptr<TestCallback> test_callback(new TestCallback);
-  scoped_ptr<base::Callback<void(bool)>> ack_callback(
+  std::unique_ptr<base::Callback<void(bool)>> ack_callback(
       new base::Callback<void(bool)>(
           base::Bind(&::TestCallback::BoolCallback, test_callback)));
 
@@ -440,7 +442,7 @@
                          gfx::Point(), ui::EF_NONE, 0, ui::EventTimeForNow());
 
   scoped_refptr<TestCallback> test_callback(new TestCallback);
-  scoped_ptr<base::Callback<void(bool)>> ack_callback(
+  std::unique_ptr<base::Callback<void(bool)>> ack_callback(
       new base::Callback<void(bool)>(
           base::Bind(&::TestCallback::BoolCallback, test_callback)));
 
diff --git a/content/renderer/mus/render_widget_mus_connection.cc b/content/renderer/mus/render_widget_mus_connection.cc
index e0f1c749..0663cd7 100644
--- a/content/renderer/mus/render_widget_mus_connection.cc
+++ b/content/renderer/mus/render_widget_mus_connection.cc
@@ -45,7 +45,8 @@
   }
 }
 
-scoped_ptr<cc::OutputSurface> RenderWidgetMusConnection::CreateOutputSurface() {
+std::unique_ptr<cc::OutputSurface>
+RenderWidgetMusConnection::CreateOutputSurface() {
   DCHECK(thread_checker_.CalledOnValidThread());
   DCHECK(!window_surface_binding_);
   mus::mojom::GpuPtr gpu_service;
@@ -55,7 +56,7 @@
   gpu_service->CreateOffscreenGLES2Context(GetProxy(&cb));
   scoped_refptr<cc::ContextProvider> context_provider(
       new mus::ContextProvider(cb.PassInterface().PassHandle()));
-  scoped_ptr<cc::OutputSurface> surface(new mus::OutputSurface(
+  std::unique_ptr<cc::OutputSurface> surface(new mus::OutputSurface(
       context_provider, mus::WindowSurface::Create(&window_surface_binding_)));
   if (compositor_mus_connection_) {
     compositor_mus_connection_->AttachSurfaceOnMainThread(
@@ -123,7 +124,7 @@
 }
 
 void RenderWidgetMusConnection::OnInputEventAck(
-    scoped_ptr<InputEventAck> input_event_ack) {
+    std::unique_ptr<InputEventAck> input_event_ack) {
   DCHECK(!pending_ack_.is_null());
   pending_ack_.Run(input_event_ack->state ==
                    InputEventAckState::INPUT_EVENT_ACK_STATE_CONSUMED);
@@ -167,7 +168,7 @@
 }
 
 void RenderWidgetMusConnection::OnWindowInputEvent(
-    scoped_ptr<blink::WebInputEvent> input_event,
+    std::unique_ptr<blink::WebInputEvent> input_event,
     const base::Callback<void(bool)>& ack) {
   DCHECK(thread_checker_.CalledOnValidThread());
   // If we don't yet have a RenderWidgetInputHandler then we don't yet have
diff --git a/content/renderer/mus/render_widget_mus_connection.h b/content/renderer/mus/render_widget_mus_connection.h
index 0792095..4a626cc 100644
--- a/content/renderer/mus/render_widget_mus_connection.h
+++ b/content/renderer/mus/render_widget_mus_connection.h
@@ -25,7 +25,7 @@
   void Bind(mojo::InterfaceRequest<mus::mojom::WindowTreeClient> request);
 
   // Create a cc output surface.
-  scoped_ptr<cc::OutputSurface> CreateOutputSurface();
+  std::unique_ptr<cc::OutputSurface> CreateOutputSurface();
 
   static RenderWidgetMusConnection* Get(int routing_id);
 
@@ -51,7 +51,7 @@
                                     bool event_processed) override;
   void OnDidHandleKeyEvent() override;
   void OnDidOverscroll(const DidOverscrollParams& params) override;
-  void OnInputEventAck(scoped_ptr<InputEventAck> input_event_ack) override;
+  void OnInputEventAck(std::unique_ptr<InputEventAck> input_event_ack) override;
   void NotifyInputEventHandled(
       blink::WebInputEvent::Type handled_type) override;
   void SetInputHandler(RenderWidgetInputHandler* input_handler) override;
@@ -61,12 +61,12 @@
   bool WillHandleMouseEvent(const blink::WebMouseEvent& event) override;
 
   void OnConnectionLost();
-  void OnWindowInputEvent(scoped_ptr<blink::WebInputEvent> input_event,
+  void OnWindowInputEvent(std::unique_ptr<blink::WebInputEvent> input_event,
                           const base::Callback<void(bool)>& ack);
 
   const int routing_id_;
   RenderWidgetInputHandler* input_handler_;
-  scoped_ptr<mus::WindowSurfaceBinding> window_surface_binding_;
+  std::unique_ptr<mus::WindowSurfaceBinding> window_surface_binding_;
   scoped_refptr<CompositorMusConnection> compositor_mus_connection_;
 
   base::Callback<void(bool)> pending_ack_;
diff --git a/content/renderer/notification_permission_dispatcher.cc b/content/renderer/notification_permission_dispatcher.cc
index f4ce9d4..110afc0 100644
--- a/content/renderer/notification_permission_dispatcher.cc
+++ b/content/renderer/notification_permission_dispatcher.cc
@@ -31,7 +31,7 @@
         mojo::GetProxy(&permission_service_));
   }
 
-  scoped_ptr<WebNotificationPermissionCallback> owned_callback(callback);
+  std::unique_ptr<WebNotificationPermissionCallback> owned_callback(callback);
 
   // base::Unretained is safe here because the Mojo channel, with associated
   // callbacks, will be deleted before the "this" instance is deleted.
@@ -43,7 +43,7 @@
 }
 
 void NotificationPermissionDispatcher::OnPermissionRequestComplete(
-    scoped_ptr<WebNotificationPermissionCallback> callback,
+    std::unique_ptr<WebNotificationPermissionCallback> callback,
     blink::mojom::PermissionStatus status) {
   DCHECK(callback);
 
diff --git a/content/renderer/notification_permission_dispatcher.h b/content/renderer/notification_permission_dispatcher.h
index 68002d73..77fbb63 100644
--- a/content/renderer/notification_permission_dispatcher.h
+++ b/content/renderer/notification_permission_dispatcher.h
@@ -5,8 +5,9 @@
 #ifndef CONTENT_RENDERER_NOTIFICATION_PERMISSION_DISPATCHER_H_
 #define CONTENT_RENDERER_NOTIFICATION_PERMISSION_DISPATCHER_H_
 
+#include <memory>
+
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "content/public/renderer/render_frame_observer.h"
 #include "third_party/WebKit/public/platform/modules/permissions/permission.mojom.h"
 
@@ -33,7 +34,7 @@
 
  private:
   void OnPermissionRequestComplete(
-      scoped_ptr<blink::WebNotificationPermissionCallback> callback,
+      std::unique_ptr<blink::WebNotificationPermissionCallback> callback,
       blink::mojom::PermissionStatus status);
 
   blink::mojom::PermissionServicePtr permission_service_;
diff --git a/content/renderer/p2p/filtering_network_manager_unittest.cc b/content/renderer/p2p/filtering_network_manager_unittest.cc
index d708428c..84185baf6 100644
--- a/content/renderer/p2p/filtering_network_manager_unittest.cc
+++ b/content/renderer/p2p/filtering_network_manager_unittest.cc
@@ -5,12 +5,13 @@
 #include "content/renderer/p2p/filtering_network_manager.h"
 
 #include <stddef.h>
+
+#include <memory>
 #include <utility>
 
 #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"
@@ -71,7 +72,7 @@
 
  private:
   bool sent_first_update_ = false;
-  scoped_ptr<rtc::Network> network_;
+  std::unique_ptr<rtc::Network> network_;
 };
 
 class MockMediaPermission : public media::MediaPermission {
@@ -201,10 +202,10 @@
   void clear_callback_called() { callback_called_ = false; }
 
   bool callback_called_ = false;
-  scoped_ptr<rtc::NetworkManager> network_manager_;
-  scoped_ptr<MockNetworkManager> mock_network_manager_;
+  std::unique_ptr<rtc::NetworkManager> network_manager_;
+  std::unique_ptr<MockNetworkManager> mock_network_manager_;
 
-  scoped_ptr<MockMediaPermission> media_permission_;
+  std::unique_ptr<MockMediaPermission> media_permission_;
 
   NetworkList network_list_;
   scoped_refptr<base::TestSimpleTaskRunner> task_runner_;
diff --git a/content/renderer/p2p/ipc_network_manager.cc b/content/renderer/p2p/ipc_network_manager.cc
index 326d6462..220ca73 100644
--- a/content/renderer/p2p/ipc_network_manager.cc
+++ b/content/renderer/p2p/ipc_network_manager.cc
@@ -94,7 +94,7 @@
     DCHECK(!ip_address.IsNil());
 
     rtc::IPAddress prefix = rtc::TruncateIP(ip_address, it->prefix_length);
-    scoped_ptr<rtc::Network> network(
+    std::unique_ptr<rtc::Network> network(
         new rtc::Network(it->name, it->name, prefix, it->prefix_length,
                          ConvertConnectionTypeToAdapterType(it->type)));
     network->set_default_local_address_provider(this);
diff --git a/content/renderer/p2p/ipc_network_manager_unittest.cc b/content/renderer/p2p/ipc_network_manager_unittest.cc
index fb87c9e560..c3804e2 100644
--- a/content/renderer/p2p/ipc_network_manager_unittest.cc
+++ b/content/renderer/p2p/ipc_network_manager_unittest.cc
@@ -2,8 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/memory/scoped_ptr.h"
 #include "content/renderer/p2p/ipc_network_manager.h"
+
+#include <memory>
+
 #include "content/renderer/p2p/network_list_manager.h"
 #include "net/base/ip_address.h"
 #include "net/base/network_change_notifier.h"
@@ -41,8 +43,8 @@
         network_manager_(new IpcNetworkManager(network_list_manager_.get())) {}
 
  protected:
-  scoped_ptr<MockP2PSocketDispatcher> network_list_manager_;
-  scoped_ptr<IpcNetworkManager> network_manager_;
+  std::unique_ptr<MockP2PSocketDispatcher> network_list_manager_;
+  std::unique_ptr<IpcNetworkManager> network_manager_;
 };
 
 // Test overall logic of IpcNetworkManager on OnNetworkListChanged
diff --git a/content/renderer/p2p/ipc_socket_factory.cc b/content/renderer/p2p/ipc_socket_factory.cc
index 20fa056..e0d93d34 100644
--- a/content/renderer/p2p/ipc_socket_factory.cc
+++ b/content/renderer/p2p/ipc_socket_factory.cc
@@ -583,7 +583,7 @@
     P2PSocketClient* client) {
   DCHECK_EQ(base::MessageLoop::current(), message_loop_);
 
-  scoped_ptr<IpcPacketSocket> socket(new IpcPacketSocket());
+  std::unique_ptr<IpcPacketSocket> socket(new IpcPacketSocket());
 
   rtc::SocketAddress remote_address;
   if (!jingle_glue::IPEndPointToSocketAddress(address, &remote_address)) {
@@ -746,7 +746,7 @@
   rtc::SocketAddress crome_address;
   P2PSocketClientImpl* socket_client =
       new P2PSocketClientImpl(socket_dispatcher_);
-  scoped_ptr<IpcPacketSocket> socket(new IpcPacketSocket());
+  std::unique_ptr<IpcPacketSocket> socket(new IpcPacketSocket());
   // TODO(sergeyu): Respect local_address and port limits here (need
   // to pass them over IPC channel to the browser).
   if (!socket->Init(P2P_SOCKET_UDP, socket_client,
@@ -769,7 +769,7 @@
       P2P_SOCKET_STUN_TCP_SERVER : P2P_SOCKET_TCP_SERVER;
   P2PSocketClientImpl* socket_client =
       new P2PSocketClientImpl(socket_dispatcher_);
-  scoped_ptr<IpcPacketSocket> socket(new IpcPacketSocket());
+  std::unique_ptr<IpcPacketSocket> socket(new IpcPacketSocket());
   if (!socket->Init(type, socket_client, local_address,
                     rtc::SocketAddress())) {
     return NULL;
@@ -795,7 +795,7 @@
   }
   P2PSocketClientImpl* socket_client =
       new P2PSocketClientImpl(socket_dispatcher_);
-  scoped_ptr<IpcPacketSocket> socket(new IpcPacketSocket());
+  std::unique_ptr<IpcPacketSocket> socket(new IpcPacketSocket());
   if (!socket->Init(type, socket_client, local_address, remote_address))
     return NULL;
   return socket.release();
@@ -803,8 +803,8 @@
 
 rtc::AsyncResolverInterface*
 IpcPacketSocketFactory::CreateAsyncResolver() {
-  scoped_ptr<AsyncAddressResolverImpl> resolver(
-    new AsyncAddressResolverImpl(socket_dispatcher_));
+  std::unique_ptr<AsyncAddressResolverImpl> resolver(
+      new AsyncAddressResolverImpl(socket_dispatcher_));
   return resolver.release();
 }
 
diff --git a/content/renderer/pepper/audio_helper.h b/content/renderer/pepper/audio_helper.h
index b0c33e5..1d4a543 100644
--- a/content/renderer/pepper/audio_helper.h
+++ b/content/renderer/pepper/audio_helper.h
@@ -8,8 +8,9 @@
 #include <stddef.h>
 #include <stdint.h>
 
+#include <memory>
+
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/shared_memory.h"
 #include "base/sync_socket.h"
 #include "ppapi/c/pp_completion_callback.h"
@@ -50,9 +51,9 @@
   // querying from the callback. The proxy uses this to get the handles to the
   // other process instead of mapping them in the renderer. These will be
   // invalid all other times.
-  scoped_ptr<base::SharedMemory> shared_memory_for_create_callback_;
+  std::unique_ptr<base::SharedMemory> shared_memory_for_create_callback_;
   size_t shared_memory_size_for_create_callback_;
-  scoped_ptr<base::SyncSocket> socket_for_create_callback_;
+  std::unique_ptr<base::SyncSocket> socket_for_create_callback_;
 
   DISALLOW_COPY_AND_ASSIGN(AudioHelper);
 };
diff --git a/content/renderer/pepper/content_decryptor_delegate.cc b/content/renderer/pepper/content_decryptor_delegate.cc
index dca5b02..621aaf1 100644
--- a/content/renderer/pepper/content_decryptor_delegate.cc
+++ b/content/renderer/pepper/content_decryptor_delegate.cc
@@ -389,7 +389,7 @@
     const media::SessionKeysChangeCB& session_keys_change_cb,
     const media::SessionExpirationUpdateCB& session_expiration_update_cb,
     const base::Closure& fatal_plugin_error_cb,
-    scoped_ptr<media::SimpleCdmPromise> promise) {
+    std::unique_ptr<media::SimpleCdmPromise> promise) {
   DCHECK(!key_system.empty());
   DCHECK(key_system_.empty());
   key_system_ = key_system;
@@ -415,7 +415,7 @@
 
 void ContentDecryptorDelegate::SetServerCertificate(
     const std::vector<uint8_t>& certificate,
-    scoped_ptr<media::SimpleCdmPromise> promise) {
+    std::unique_ptr<media::SimpleCdmPromise> promise) {
   if (certificate.size() < media::limits::kMinCertificateLength ||
       certificate.size() > media::limits::kMaxCertificateLength) {
     promise->reject(
@@ -435,7 +435,7 @@
     MediaKeys::SessionType session_type,
     media::EmeInitDataType init_data_type,
     const std::vector<uint8_t>& init_data,
-    scoped_ptr<NewSessionCdmPromise> promise) {
+    std::unique_ptr<NewSessionCdmPromise> promise) {
   uint32_t promise_id = cdm_promise_adapter_.SavePromise(std::move(promise));
   PP_Var init_data_array =
       PpapiGlobals::Get()->GetVarTracker()->MakeArrayBufferPPVar(
@@ -448,7 +448,7 @@
 void ContentDecryptorDelegate::LoadSession(
     media::MediaKeys::SessionType session_type,
     const std::string& session_id,
-    scoped_ptr<NewSessionCdmPromise> promise) {
+    std::unique_ptr<NewSessionCdmPromise> promise) {
   uint32_t promise_id = cdm_promise_adapter_.SavePromise(std::move(promise));
   plugin_decryption_interface_->LoadSession(
       pp_instance_, promise_id, MediaSessionTypeToPpSessionType(session_type),
@@ -458,7 +458,7 @@
 void ContentDecryptorDelegate::UpdateSession(
     const std::string& session_id,
     const std::vector<uint8_t>& response,
-    scoped_ptr<SimpleCdmPromise> promise) {
+    std::unique_ptr<SimpleCdmPromise> promise) {
   uint32_t promise_id = cdm_promise_adapter_.SavePromise(std::move(promise));
   PP_Var response_array =
       PpapiGlobals::Get()->GetVarTracker()->MakeArrayBufferPPVar(
@@ -470,7 +470,7 @@
 
 void ContentDecryptorDelegate::CloseSession(
     const std::string& session_id,
-    scoped_ptr<SimpleCdmPromise> promise) {
+    std::unique_ptr<SimpleCdmPromise> promise) {
   if (session_id.length() > media::limits::kMaxSessionIdLength) {
     promise->reject(
         media::MediaKeys::INVALID_ACCESS_ERROR, 0, "Incorrect session.");
@@ -484,7 +484,7 @@
 
 void ContentDecryptorDelegate::RemoveSession(
     const std::string& session_id,
-    scoped_ptr<SimpleCdmPromise> promise) {
+    std::unique_ptr<SimpleCdmPromise> promise) {
   if (session_id.length() > media::limits::kMaxSessionIdLength) {
     promise->reject(
         media::MediaKeys::INVALID_ACCESS_ERROR, 0, "Incorrect session.");
diff --git a/content/renderer/pepper/content_decryptor_delegate.h b/content/renderer/pepper/content_decryptor_delegate.h
index 7c1a7a66..452df18a 100644
--- a/content/renderer/pepper/content_decryptor_delegate.h
+++ b/content/renderer/pepper/content_decryptor_delegate.h
@@ -60,28 +60,28 @@
       const media::SessionKeysChangeCB& session_keys_change_cb,
       const media::SessionExpirationUpdateCB& session_expiration_update_cb,
       const base::Closure& fatal_plugin_error_cb,
-      scoped_ptr<media::SimpleCdmPromise> promise);
+      std::unique_ptr<media::SimpleCdmPromise> promise);
 
   void InstanceCrashed();
 
   // Provides access to PPP_ContentDecryptor_Private.
   void SetServerCertificate(const std::vector<uint8_t>& certificate,
-                            scoped_ptr<media::SimpleCdmPromise> promise);
+                            std::unique_ptr<media::SimpleCdmPromise> promise);
   void CreateSessionAndGenerateRequest(
       media::MediaKeys::SessionType session_type,
       media::EmeInitDataType init_data_type,
       const std::vector<uint8_t>& init_data,
-      scoped_ptr<media::NewSessionCdmPromise> promise);
+      std::unique_ptr<media::NewSessionCdmPromise> promise);
   void LoadSession(media::MediaKeys::SessionType session_type,
                    const std::string& session_id,
-                   scoped_ptr<media::NewSessionCdmPromise> promise);
+                   std::unique_ptr<media::NewSessionCdmPromise> promise);
   void UpdateSession(const std::string& session_id,
                      const std::vector<uint8_t>& response,
-                     scoped_ptr<media::SimpleCdmPromise> promise);
+                     std::unique_ptr<media::SimpleCdmPromise> promise);
   void CloseSession(const std::string& session_id,
-                    scoped_ptr<media::SimpleCdmPromise> promise);
+                    std::unique_ptr<media::SimpleCdmPromise> promise);
   void RemoveSession(const std::string& session_id,
-                     scoped_ptr<media::SimpleCdmPromise> promise);
+                     std::unique_ptr<media::SimpleCdmPromise> promise);
   bool Decrypt(media::Decryptor::StreamType stream_type,
                const scoped_refptr<media::DecoderBuffer>& encrypted_buffer,
                const media::Decryptor::DecryptCB& decrypt_cb);
diff --git a/content/renderer/pepper/event_conversion.cc b/content/renderer/pepper/event_conversion.cc
index 88655b2e..8d9a3c3a7 100644
--- a/content/renderer/pepper/event_conversion.cc
+++ b/content/renderer/pepper/event_conversion.cc
@@ -8,9 +8,10 @@
 #include <stdint.h>
 #include <string.h>
 
+#include <memory>
+
 #include "base/i18n/char_iterator.h"
 #include "base/logging.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/strings/string16.h"
 #include "base/strings/string_util.h"
 #include "base/strings/stringprintf.h"
@@ -583,7 +584,7 @@
 }
 
 WebInputEvent* CreateWebInputEvent(const InputEventData& event) {
-  scoped_ptr<WebInputEvent> web_input_event;
+  std::unique_ptr<WebInputEvent> web_input_event;
   switch (event.event_type) {
     case PP_INPUTEVENT_TYPE_UNDEFINED:
       return NULL;
@@ -627,12 +628,12 @@
 
 // Generate a coherent sequence of input events to simulate a user event.
 // From src/components/test_runner/event_sender.cc.
-std::vector<scoped_ptr<WebInputEvent>> CreateSimulatedWebInputEvents(
+std::vector<std::unique_ptr<WebInputEvent>> CreateSimulatedWebInputEvents(
     const ppapi::InputEventData& event,
     int plugin_x,
     int plugin_y) {
-  std::vector<scoped_ptr<WebInputEvent>> events;
-  scoped_ptr<WebInputEvent> original_event(CreateWebInputEvent(event));
+  std::vector<std::unique_ptr<WebInputEvent>> events;
+  std::unique_ptr<WebInputEvent> original_event(CreateWebInputEvent(event));
 
   switch (event.event_type) {
     case PP_INPUTEVENT_TYPE_MOUSEDOWN:
@@ -683,8 +684,8 @@
                  &generate_char);
 
       // Synthesize key down and key up events in all cases.
-      scoped_ptr<WebKeyboardEvent> key_down_event(new WebKeyboardEvent());
-      scoped_ptr<WebKeyboardEvent> key_up_event(new WebKeyboardEvent());
+      std::unique_ptr<WebKeyboardEvent> key_down_event(new WebKeyboardEvent());
+      std::unique_ptr<WebKeyboardEvent> key_up_event(new WebKeyboardEvent());
 
       key_down_event->type = WebInputEvent::RawKeyDown;
       key_down_event->windowsKeyCode = code;
diff --git a/content/renderer/pepper/event_conversion.h b/content/renderer/pepper/event_conversion.h
index fef77158..9803311 100644
--- a/content/renderer/pepper/event_conversion.h
+++ b/content/renderer/pepper/event_conversion.h
@@ -5,9 +5,9 @@
 #ifndef CONTENT_RENDERER_PEPPER_EVENT_CONVERSION_H_
 #define CONTENT_RENDERER_PEPPER_EVENT_CONVERSION_H_
 
+#include <memory>
 #include <vector>
 
-#include "base/memory/scoped_ptr.h"
 #include "content/common/content_export.h"
 #include "ppapi/c/ppb_input_event.h"
 #include "third_party/WebKit/public/web/WebInputEvent.h"
@@ -40,10 +40,10 @@
 // Creates an array of WebInputEvents to make the given event look like a user
 // input event on all platforms. |plugin_x| and |plugin_y| should be the
 // coordinates of a point within the plugin's area on the page.
-std::vector<scoped_ptr<blink::WebInputEvent>> CreateSimulatedWebInputEvents(
-    const ppapi::InputEventData& event,
-    int plugin_x,
-    int plugin_y);
+std::vector<std::unique_ptr<blink::WebInputEvent>>
+CreateSimulatedWebInputEvents(const ppapi::InputEventData& event,
+                              int plugin_x,
+                              int plugin_y);
 
 // Returns the PPAPI event class for the given WebKit event type. The given
 // type should not be "Undefined" since there's no corresponding PPAPI class.
diff --git a/content/renderer/pepper/event_conversion_unittest.cc b/content/renderer/pepper/event_conversion_unittest.cc
index 93fe113..fcefd1b7 100644
--- a/content/renderer/pepper/event_conversion_unittest.cc
+++ b/content/renderer/pepper/event_conversion_unittest.cc
@@ -2,12 +2,14 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include "content/renderer/pepper/event_conversion.h"
+
 #include <stddef.h>
 
+#include <memory>
+
 #include "base/logging.h"
-#include "base/memory/scoped_ptr.h"
 #include "content/common/input/synthetic_web_input_event_builders.h"
-#include "content/renderer/pepper/event_conversion.h"
 #include "ppapi/shared_impl/ppb_input_event_shared.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
@@ -53,7 +55,8 @@
   ASSERT_EQ(1U, pp_event.changed_touches.size());
   ASSERT_EQ(1U, pp_event.target_touches.size());
 
-  scoped_ptr<blink::WebInputEvent> event_out(CreateWebInputEvent(pp_event));
+  std::unique_ptr<blink::WebInputEvent> event_out(
+      CreateWebInputEvent(pp_event));
   const blink::WebTouchEvent* touch_out =
       static_cast<const blink::WebTouchEvent*>(event_out.get());
   ASSERT_TRUE(touch_out);
@@ -80,7 +83,8 @@
   ASSERT_EQ(1U, pp_event.changed_touches.size());
   ASSERT_EQ(2U, pp_event.target_touches.size());
 
-  scoped_ptr<blink::WebInputEvent> event_out(CreateWebInputEvent(pp_event));
+  std::unique_ptr<blink::WebInputEvent> event_out(
+      CreateWebInputEvent(pp_event));
   const blink::WebTouchEvent* touch_out =
       static_cast<const blink::WebTouchEvent*>(event_out.get());
   ASSERT_TRUE(touch_out);
@@ -107,7 +111,8 @@
   ASSERT_EQ(1U, pp_event.changed_touches.size());
   ASSERT_EQ(2U, pp_event.target_touches.size());
 
-  scoped_ptr<blink::WebInputEvent> event_out(CreateWebInputEvent(pp_event));
+  std::unique_ptr<blink::WebInputEvent> event_out(
+      CreateWebInputEvent(pp_event));
   const blink::WebTouchEvent* touch_out =
       static_cast<const blink::WebTouchEvent*>(event_out.get());
   ASSERT_TRUE(touch_out);
@@ -135,7 +140,8 @@
   ASSERT_EQ(2U, pp_event.changed_touches.size());
   ASSERT_EQ(2U, pp_event.target_touches.size());
 
-  scoped_ptr<blink::WebInputEvent> event_out(CreateWebInputEvent(pp_event));
+  std::unique_ptr<blink::WebInputEvent> event_out(
+      CreateWebInputEvent(pp_event));
   const blink::WebTouchEvent* touch_out =
       static_cast<const blink::WebTouchEvent*>(event_out.get());
   ASSERT_TRUE(touch_out);
diff --git a/content/renderer/pepper/host_array_buffer_var.cc b/content/renderer/pepper/host_array_buffer_var.cc
index eaff2e7e..4d8a9212 100644
--- a/content/renderer/pepper/host_array_buffer_var.cc
+++ b/content/renderer/pepper/host_array_buffer_var.cc
@@ -7,8 +7,9 @@
 #include <stdio.h>
 #include <string.h>
 
+#include <memory>
+
 #include "base/logging.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/shared_memory.h"
 #include "base/process/process_handle.h"
 #include "content/common/pepper_file_util.h"
@@ -62,7 +63,7 @@
     PP_Instance instance,
     int* host_shm_handle_id,
     base::SharedMemoryHandle* plugin_shm_handle) {
-  scoped_ptr<base::SharedMemory> shm(
+  std::unique_ptr<base::SharedMemory> shm(
       RenderThread::Get()
           ->HostAllocateSharedMemoryBuffer(ByteLength())
           .release());
diff --git a/content/renderer/pepper/host_dispatcher_wrapper.h b/content/renderer/pepper/host_dispatcher_wrapper.h
index fc5655d..f308ffb 100644
--- a/content/renderer/pepper/host_dispatcher_wrapper.h
+++ b/content/renderer/pepper/host_dispatcher_wrapper.h
@@ -69,8 +69,8 @@
   ppapi::PpapiPermissions permissions_;
   bool is_external_;
 
-  scoped_ptr<ppapi::proxy::HostDispatcher> dispatcher_;
-  scoped_ptr<ppapi::proxy::ProxyChannel::Delegate> dispatcher_delegate_;
+  std::unique_ptr<ppapi::proxy::HostDispatcher> dispatcher_;
+  std::unique_ptr<ppapi::proxy::ProxyChannel::Delegate> dispatcher_delegate_;
   // We hold the hung_plugin_filter_ to guarantee it outlives |dispatcher_|,
   // since it is an observer of |dispatcher_| for sync calls.
   scoped_refptr<PepperHungPluginFilter> hung_plugin_filter_;
diff --git a/content/renderer/pepper/host_resource_var.h b/content/renderer/pepper/host_resource_var.h
index 607525e..b527696 100644
--- a/content/renderer/pepper/host_resource_var.h
+++ b/content/renderer/pepper/host_resource_var.h
@@ -5,8 +5,9 @@
 #ifndef CONTENT_RENDERER_PEPPER_HOST_RESOURCE_VAR_H_
 #define CONTENT_RENDERER_PEPPER_HOST_RESOURCE_VAR_H_
 
+#include <memory>
+
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "ipc/ipc_message.h"
 #include "ppapi/c/pp_resource.h"
 #include "ppapi/shared_impl/resource_var.h"
@@ -57,7 +58,7 @@
 
   // If the plugin-side resource has not yet been created, carries a message to
   // create a resource of the specific type on the plugin side. Otherwise, NULL.
-  scoped_ptr<IPC::Message> creation_message_;
+  std::unique_ptr<IPC::Message> creation_message_;
 
   DISALLOW_COPY_AND_ASSIGN(HostResourceVar);
 };
diff --git a/content/renderer/pepper/host_var_tracker_unittest.cc b/content/renderer/pepper/host_var_tracker_unittest.cc
index ee498b5b..75d0f26 100644
--- a/content/renderer/pepper/host_var_tracker_unittest.cc
+++ b/content/renderer/pepper/host_var_tracker_unittest.cc
@@ -2,10 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
-#include "content/renderer/pepper/host_globals.h"
 #include "content/renderer/pepper/host_var_tracker.h"
+
+#include <memory>
+
+#include "base/macros.h"
+#include "content/renderer/pepper/host_globals.h"
 #include "content/renderer/pepper/mock_resource.h"
 #include "content/renderer/pepper/pepper_plugin_instance_impl.h"
 #include "content/renderer/pepper/pepper_try_catch.h"
diff --git a/content/renderer/pepper/mock_renderer_ppapi_host.h b/content/renderer/pepper/mock_renderer_ppapi_host.h
index aa0b59eac..84e6ff4 100644
--- a/content/renderer/pepper/mock_renderer_ppapi_host.h
+++ b/content/renderer/pepper/mock_renderer_ppapi_host.h
@@ -5,8 +5,9 @@
 #ifndef CONTENT_RENDERER_PEPPER_MOCK_RENDERER_PPAPI_HOST_H_
 #define CONTENT_RENDERER_PEPPER_MOCK_RENDERER_PPAPI_HOST_H_
 
+#include <memory>
+
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "content/public/renderer/renderer_ppapi_host.h"
 #include "content/renderer/pepper/content_renderer_pepper_host_factory.h"
 #include "ppapi/host/ppapi_host.h"
@@ -68,7 +69,7 @@
 
   bool has_user_gesture_;
 
-  scoped_ptr<FakePepperPluginInstance> plugin_instance_;
+  std::unique_ptr<FakePepperPluginInstance> plugin_instance_;
 
   DISALLOW_COPY_AND_ASSIGN(MockRendererPpapiHost);
 };
diff --git a/content/renderer/pepper/pepper_audio_encoder_host.cc b/content/renderer/pepper/pepper_audio_encoder_host.cc
index e7d3ca5..5b42a7d 100644
--- a/content/renderer/pepper/pepper_audio_encoder_host.cc
+++ b/content/renderer/pepper/pepper_audio_encoder_host.cc
@@ -72,7 +72,7 @@
   void RequestBitrateChange(uint32_t bitrate);
 
  private:
-  scoped_ptr<uint8_t[]> encoder_memory_;
+  std::unique_ptr<uint8_t[]> encoder_memory_;
   OpusEncoder* opus_encoder_;
 
   // Initialization parameters, only valid if |encoder_memory_| is not
@@ -116,7 +116,7 @@
   if (encoder_size < 1)
     return false;
 
-  scoped_ptr<uint8_t[]> encoder_memory(new uint8_t[encoder_size]);
+  std::unique_ptr<uint8_t[]> encoder_memory(new uint8_t[encoder_size]);
   opus_encoder_ = reinterpret_cast<OpusEncoder*>(encoder_memory.get());
 
   if (opus_encoder_init(opus_encoder_, parameters.input_sample_rate,
@@ -222,7 +222,7 @@
   if (!IsInitializationValid(parameters))
     return PP_ERROR_NOTSUPPORTED;
 
-  scoped_ptr<AudioEncoderImpl> encoder(new AudioEncoderImpl);
+  std::unique_ptr<AudioEncoderImpl> encoder(new AudioEncoderImpl);
   if (!encoder->Initialize(parameters))
     return PP_ERROR_FAILED;
   if (!AllocateBuffers(parameters, encoder->GetNumberOfSamplesPerFrame()))
@@ -364,12 +364,12 @@
       !total_bitstream_memory_size.IsValid())
     return false;
 
-  scoped_ptr<base::SharedMemory> audio_memory(
+  std::unique_ptr<base::SharedMemory> audio_memory(
       RenderThreadImpl::current()->HostAllocateSharedMemoryBuffer(
           total_audio_memory_size.ValueOrDie()));
   if (!audio_memory)
     return false;
-  scoped_ptr<ppapi::MediaStreamBufferManager> audio_buffer_manager(
+  std::unique_ptr<ppapi::MediaStreamBufferManager> audio_buffer_manager(
       new ppapi::MediaStreamBufferManager(this));
   if (!audio_buffer_manager->SetBuffers(kDefaultNumberOfAudioBuffers,
                                         total_audio_buffer_size.ValueOrDie(),
@@ -388,12 +388,12 @@
     buffer->data_size = audio_buffer_size.ValueOrDie();
   }
 
-  scoped_ptr<base::SharedMemory> bitstream_memory(
+  std::unique_ptr<base::SharedMemory> bitstream_memory(
       RenderThreadImpl::current()->HostAllocateSharedMemoryBuffer(
           total_bitstream_memory_size.ValueOrDie()));
   if (!bitstream_memory)
     return false;
-  scoped_ptr<ppapi::MediaStreamBufferManager> bitstream_buffer_manager(
+  std::unique_ptr<ppapi::MediaStreamBufferManager> bitstream_buffer_manager(
       new ppapi::MediaStreamBufferManager(this));
   if (!bitstream_buffer_manager->SetBuffers(kDefaultNumberOfAudioBuffers,
                                             bitstream_buffer_size.ValueOrDie(),
@@ -494,8 +494,9 @@
 
 // static
 void PepperAudioEncoderHost::StopAudioEncoder(
-    scoped_ptr<AudioEncoderImpl> encoder,
-    scoped_ptr<ppapi::MediaStreamBufferManager> audio_buffer_manager,
-    scoped_ptr<ppapi::MediaStreamBufferManager> bitstream_buffer_manager) {}
+    std::unique_ptr<AudioEncoderImpl> encoder,
+    std::unique_ptr<ppapi::MediaStreamBufferManager> audio_buffer_manager,
+    std::unique_ptr<ppapi::MediaStreamBufferManager> bitstream_buffer_manager) {
+}
 
 }  // namespace content
diff --git a/content/renderer/pepper/pepper_audio_encoder_host.h b/content/renderer/pepper/pepper_audio_encoder_host.h
index 8edd67a..32579c1 100644
--- a/content/renderer/pepper/pepper_audio_encoder_host.h
+++ b/content/renderer/pepper/pepper_audio_encoder_host.h
@@ -7,9 +7,10 @@
 
 #include <stdint.h>
 
+#include <memory>
+
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/scoped_vector.h"
 #include "base/numerics/safe_math.h"
 #include "content/common/content_export.h"
@@ -71,9 +72,10 @@
   void Close();
 
   static void StopAudioEncoder(
-      scoped_ptr<AudioEncoderImpl> encoder,
-      scoped_ptr<ppapi::MediaStreamBufferManager> audio_buffer_manager,
-      scoped_ptr<ppapi::MediaStreamBufferManager> bitstream_buffer_manager);
+      std::unique_ptr<AudioEncoderImpl> encoder,
+      std::unique_ptr<ppapi::MediaStreamBufferManager> audio_buffer_manager,
+      std::unique_ptr<ppapi::MediaStreamBufferManager>
+          bitstream_buffer_manager);
 
   // Non-owning pointer.
   RendererPpapiHost* renderer_ppapi_host_;
@@ -91,16 +93,16 @@
   int32_t encoder_last_error_;
 
   // Manages buffers containing audio samples from the plugin.
-  scoped_ptr<ppapi::MediaStreamBufferManager> audio_buffer_manager_;
+  std::unique_ptr<ppapi::MediaStreamBufferManager> audio_buffer_manager_;
 
   // Manages buffers containing encoded audio from the browser.
-  scoped_ptr<ppapi::MediaStreamBufferManager> bitstream_buffer_manager_;
+  std::unique_ptr<ppapi::MediaStreamBufferManager> bitstream_buffer_manager_;
 
   // Media task runner used to run the encoder.
   scoped_refptr<base::SingleThreadTaskRunner> media_task_runner_;
 
   // The encoder actually doing the work.
-  scoped_ptr<AudioEncoderImpl> encoder_;
+  std::unique_ptr<AudioEncoderImpl> encoder_;
 
   base::WeakPtrFactory<PepperAudioEncoderHost> weak_ptr_factory_;
 
diff --git a/content/renderer/pepper/pepper_audio_input_host.h b/content/renderer/pepper/pepper_audio_input_host.h
index 40edffd..084ce33e 100644
--- a/content/renderer/pepper/pepper_audio_input_host.h
+++ b/content/renderer/pepper/pepper_audio_input_host.h
@@ -8,11 +8,11 @@
 #include <stddef.h>
 #include <stdint.h>
 
+#include <memory>
 #include <string>
 
 #include "base/compiler_specific.h"
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/shared_memory.h"
 #include "base/sync_socket.h"
 #include "content/renderer/pepper/pepper_device_enumeration_host_helper.h"
diff --git a/content/renderer/pepper/pepper_broker.cc b/content/renderer/pepper/pepper_broker.cc
index 0869e80..765e7b3 100644
--- a/content/renderer/pepper/pepper_broker.cc
+++ b/content/renderer/pepper/pepper_broker.cc
@@ -148,7 +148,7 @@
 void PepperBroker::OnBrokerChannelConnected(
     base::ProcessId broker_pid,
     const IPC::ChannelHandle& channel_handle) {
-  scoped_ptr<PepperBrokerDispatcherWrapper> dispatcher(
+  std::unique_ptr<PepperBrokerDispatcherWrapper> dispatcher(
       new PepperBrokerDispatcherWrapper);
   if (!dispatcher->Init(broker_pid, channel_handle)) {
     ReportFailureToClients(PP_ERROR_FAILED);
@@ -234,8 +234,8 @@
 
   // The socket objects will be deleted when this function exits, closing the
   // handles. Any uses of the socket must duplicate them.
-  scoped_ptr<base::SyncSocket> broker_socket(new base::SyncSocket());
-  scoped_ptr<base::SyncSocket> plugin_socket(new base::SyncSocket());
+  std::unique_ptr<base::SyncSocket> broker_socket(new base::SyncSocket());
+  std::unique_ptr<base::SyncSocket> plugin_socket(new base::SyncSocket());
   if (base::SyncSocket::CreatePair(broker_socket.get(), plugin_socket.get())) {
     result = dispatcher_->SendHandleToBroker(client->pp_instance(),
                                              broker_socket->handle());
diff --git a/content/renderer/pepper/pepper_broker.h b/content/renderer/pepper/pepper_broker.h
index fda0045..0a4ef95 100644
--- a/content/renderer/pepper/pepper_broker.h
+++ b/content/renderer/pepper/pepper_broker.h
@@ -42,8 +42,8 @@
                              base::SyncSocket::Handle handle);
 
  private:
-  scoped_ptr<ppapi::proxy::BrokerDispatcher> dispatcher_;
-  scoped_ptr<ppapi::proxy::ProxyChannel::Delegate> dispatcher_delegate_;
+  std::unique_ptr<ppapi::proxy::BrokerDispatcher> dispatcher_;
+  std::unique_ptr<ppapi::proxy::ProxyChannel::Delegate> dispatcher_delegate_;
 };
 
 class PepperBroker : public base::RefCountedThreadSafe<PepperBroker> {
@@ -87,7 +87,7 @@
   // Connects the plugin to the broker via a pipe.
   void ConnectPluginToBroker(PPB_Broker_Impl* client);
 
-  scoped_ptr<PepperBrokerDispatcherWrapper> dispatcher_;
+  std::unique_ptr<PepperBrokerDispatcherWrapper> dispatcher_;
 
   // A map of pointers to objects that have requested a connection to the weak
   // pointer we can use to reference them. The mapping is needed so we can clean
diff --git a/content/renderer/pepper/pepper_camera_device_host.h b/content/renderer/pepper/pepper_camera_device_host.h
index 4cce0a16..0a7e186 100644
--- a/content/renderer/pepper/pepper_camera_device_host.h
+++ b/content/renderer/pepper/pepper_camera_device_host.h
@@ -7,8 +7,9 @@
 
 #include <stdint.h>
 
+#include <memory>
+
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "content/public/renderer/renderer_ppapi_host.h"
 #include "content/renderer/pepper/ppb_buffer_impl.h"
 #include "ppapi/c/pp_size.h"
@@ -54,7 +55,7 @@
   // Utility methods.
   void DetachPlatformCameraDevice();
 
-  scoped_ptr<PepperPlatformCameraDevice> platform_camera_device_;
+  std::unique_ptr<PepperPlatformCameraDevice> platform_camera_device_;
 
   RendererPpapiHostImpl* renderer_ppapi_host_;
 
diff --git a/content/renderer/pepper/pepper_compositor_host.cc b/content/renderer/pepper/pepper_compositor_host.cc
index 59b6dc81..ddbdbfc 100644
--- a/content/renderer/pepper/pepper_compositor_host.cc
+++ b/content/renderer/pepper/pepper_compositor_host.cc
@@ -48,10 +48,9 @@
             rect.point.y + rect.size.height <= height + kEpsilon);
 }
 
-int32_t VerifyCommittedLayer(
-    const ppapi::CompositorLayerData* old_layer,
-    const ppapi::CompositorLayerData* new_layer,
-    scoped_ptr<base::SharedMemory>* image_shm) {
+int32_t VerifyCommittedLayer(const ppapi::CompositorLayerData* old_layer,
+                             const ppapi::CompositorLayerData* new_layer,
+                             std::unique_ptr<base::SharedMemory>* image_shm) {
   if (!new_layer->is_valid())
     return PP_ERROR_BADARGUMENT;
 
@@ -191,8 +190,8 @@
 
 void PepperCompositorHost::ImageReleased(
     int32_t id,
-    scoped_ptr<base::SharedMemory> shared_memory,
-    scoped_ptr<cc::SharedBitmap> bitmap,
+    std::unique_ptr<base::SharedMemory> shared_memory,
+    std::unique_ptr<cc::SharedBitmap> bitmap,
     const gpu::SyncToken& sync_token,
     bool is_lost) {
   bitmap.reset();
@@ -220,7 +219,7 @@
     const scoped_refptr<cc::Layer>& layer,
     const ppapi::CompositorLayerData* old_layer,
     const ppapi::CompositorLayerData* new_layer,
-    scoped_ptr<base::SharedMemory> image_shm) {
+    std::unique_ptr<base::SharedMemory> image_shm) {
   // Always update properties on cc::Layer, because cc::Layer
   // will ignore any setting with unchanged value.
   layer->SetIsDrawable(true);
@@ -307,7 +306,7 @@
       DCHECK_EQ(rv, PP_TRUE);
       DCHECK_EQ(desc.stride, desc.size.width * 4);
       DCHECK_EQ(desc.format, PP_IMAGEDATAFORMAT_RGBA_PREMUL);
-      scoped_ptr<cc::SharedBitmap> bitmap =
+      std::unique_ptr<cc::SharedBitmap> bitmap =
           ChildThreadImpl::current()
               ->shared_bitmap_manager()
               ->GetBitmapForSharedMemory(image_shm.get());
@@ -353,9 +352,9 @@
   if (commit_layers_reply_context_.is_valid())
     return PP_ERROR_INPROGRESS;
 
-  scoped_ptr<scoped_ptr<base::SharedMemory>[]> image_shms;
+  std::unique_ptr<std::unique_ptr<base::SharedMemory>[]> image_shms;
   if (layers.size() > 0) {
-    image_shms.reset(new scoped_ptr<base::SharedMemory>[layers.size()]);
+    image_shms.reset(new std::unique_ptr<base::SharedMemory>[layers.size()]);
     if (!image_shms)
       return PP_ERROR_NOMEMORY;
     // Verfiy the layers first, if an error happens, we will return the error to
diff --git a/content/renderer/pepper/pepper_compositor_host.h b/content/renderer/pepper/pepper_compositor_host.h
index a8a413bd..9168e7d1 100644
--- a/content/renderer/pepper/pepper_compositor_host.h
+++ b/content/renderer/pepper/pepper_compositor_host.h
@@ -7,9 +7,10 @@
 
 #include <stdint.h>
 
+#include <memory>
+
 #include "base/compiler_specific.h"
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "ppapi/host/host_message_context.h"
 #include "ppapi/host/resource_host.h"
@@ -52,8 +53,8 @@
 
  private:
   void ImageReleased(int32_t id,
-                     scoped_ptr<base::SharedMemory> shared_memory,
-                     scoped_ptr<cc::SharedBitmap> bitmap,
+                     std::unique_ptr<base::SharedMemory> shared_memory,
+                     std::unique_ptr<cc::SharedBitmap> bitmap,
                      const gpu::SyncToken& sync_token,
                      bool is_lost);
   void ResourceReleased(int32_t id,
@@ -63,7 +64,7 @@
   void UpdateLayer(const scoped_refptr<cc::Layer>& layer,
                    const ppapi::CompositorLayerData* old_layer,
                    const ppapi::CompositorLayerData* new_layer,
-                   scoped_ptr<base::SharedMemory> image_shm);
+                   std::unique_ptr<base::SharedMemory> image_shm);
 
   // ResourceMessageHandler overrides:
   int32_t OnResourceMessageReceived(
diff --git a/content/renderer/pepper/pepper_device_enumeration_host_helper.h b/content/renderer/pepper/pepper_device_enumeration_host_helper.h
index b93acf7..84ad18b 100644
--- a/content/renderer/pepper/pepper_device_enumeration_host_helper.h
+++ b/content/renderer/pepper/pepper_device_enumeration_host_helper.h
@@ -7,11 +7,11 @@
 
 #include <stdint.h>
 
+#include <memory>
 #include <vector>
 
 #include "base/callback_forward.h"
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "content/common/content_export.h"
 #include "ppapi/c/dev/ppb_device_ref_dev.h"
@@ -101,8 +101,8 @@
   PP_DeviceType_Dev device_type_;
   GURL document_url_;
 
-  scoped_ptr<ScopedRequest> enumerate_;
-  scoped_ptr<ScopedRequest> monitor_;
+  std::unique_ptr<ScopedRequest> enumerate_;
+  std::unique_ptr<ScopedRequest> monitor_;
 
   ppapi::host::ReplyMessageContext enumerate_devices_context_;
 
diff --git a/content/renderer/pepper/pepper_file_chooser_host.cc b/content/renderer/pepper/pepper_file_chooser_host.cc
index 572b0cd16..b70ab83 100644
--- a/content/renderer/pepper/pepper_file_chooser_host.cc
+++ b/content/renderer/pepper/pepper_file_chooser_host.cc
@@ -179,7 +179,7 @@
         renderer_ppapi_host_, pp_instance(), 0, file_paths[i]);
     int renderer_id =
         renderer_ppapi_host_->GetPpapiHost()->AddPendingResourceHost(
-            scoped_ptr<ppapi::host::ResourceHost>(renderer_host));
+            std::unique_ptr<ppapi::host::ResourceHost>(renderer_host));
     ppapi::FileRefCreateInfo info = ppapi::MakeExternalFileRefCreateInfo(
         file_paths[i], display_names[i], browser_ids[i], renderer_id);
     chosen_files.push_back(info);
diff --git a/content/renderer/pepper/pepper_graphics_2d_host.cc b/content/renderer/pepper/pepper_graphics_2d_host.cc
index 1398942..5212bce 100644
--- a/content/renderer/pepper/pepper_graphics_2d_host.cc
+++ b/content/renderer/pepper/pepper_graphics_2d_host.cc
@@ -532,10 +532,11 @@
   return ReadImageData(image, &top_left) ? PP_OK : PP_ERROR_FAILED;
 }
 
-void PepperGraphics2DHost::ReleaseCallback(scoped_ptr<cc::SharedBitmap> bitmap,
-                                           const gfx::Size& bitmap_size,
-                                           const gpu::SyncToken& sync_token,
-                                           bool lost_resource) {
+void PepperGraphics2DHost::ReleaseCallback(
+    std::unique_ptr<cc::SharedBitmap> bitmap,
+    const gfx::Size& bitmap_size,
+    const gpu::SyncToken& sync_token,
+    bool lost_resource) {
   cached_bitmap_.reset();
   // Only keep around a cached bitmap if the plugin is currently drawing (has
   // need_flush_ack_ set).
@@ -546,12 +547,12 @@
 
 bool PepperGraphics2DHost::PrepareTextureMailbox(
     cc::TextureMailbox* mailbox,
-    scoped_ptr<cc::SingleReleaseCallback>* release_callback) {
+    std::unique_ptr<cc::SingleReleaseCallback>* release_callback) {
   if (!texture_mailbox_modified_)
     return false;
   // TODO(jbauman): Send image_data_ through mailbox to avoid copy.
   gfx::Size pixel_image_size(image_data_->width(), image_data_->height());
-  scoped_ptr<cc::SharedBitmap> shared_bitmap;
+  std::unique_ptr<cc::SharedBitmap> shared_bitmap;
   if (cached_bitmap_) {
     if (cached_bitmap_size_ == pixel_image_size)
       shared_bitmap = std::move(cached_bitmap_);
diff --git a/content/renderer/pepper/pepper_graphics_2d_host.h b/content/renderer/pepper/pepper_graphics_2d_host.h
index 29e55e94..03b97e7e 100644
--- a/content/renderer/pepper/pepper_graphics_2d_host.h
+++ b/content/renderer/pepper/pepper_graphics_2d_host.h
@@ -77,7 +77,7 @@
 
   bool PrepareTextureMailbox(
       cc::TextureMailbox* mailbox,
-      scoped_ptr<cc::SingleReleaseCallback>* release_callback);
+      std::unique_ptr<cc::SingleReleaseCallback>* release_callback);
   void AttachedToNewLayer();
 
   // Notifications about the view's progress painting.  See PluginInstance.
@@ -163,7 +163,7 @@
                                      gfx::Rect* op_rect,
                                      gfx::Point* delta);
 
-  void ReleaseCallback(scoped_ptr<cc::SharedBitmap> bitmap,
+  void ReleaseCallback(std::unique_ptr<cc::SharedBitmap> bitmap,
                        const gfx::Size& bitmap_size,
                        const gpu::SyncToken& sync_token,
                        bool lost_resource);
@@ -206,7 +206,7 @@
 
   // This is a bitmap that was recently released by the compositor and may be
   // used to transfer bytes to the compositor again.
-  scoped_ptr<cc::SharedBitmap> cached_bitmap_;
+  std::unique_ptr<cc::SharedBitmap> cached_bitmap_;
   gfx::Size cached_bitmap_size_;
 
   friend class PepperGraphics2DHostTest;
diff --git a/content/renderer/pepper/pepper_graphics_2d_host_unittest.cc b/content/renderer/pepper/pepper_graphics_2d_host_unittest.cc
index 75cefbeb..a97c268 100644
--- a/content/renderer/pepper/pepper_graphics_2d_host_unittest.cc
+++ b/content/renderer/pepper/pepper_graphics_2d_host_unittest.cc
@@ -72,7 +72,7 @@
   }
 
   void PaintToWebCanvas(SkBitmap* bitmap) {
-    scoped_ptr<WebCanvas> canvas(new WebCanvas(*bitmap));
+    std::unique_ptr<WebCanvas> canvas(new WebCanvas(*bitmap));
     gfx::Rect plugin_rect(PP_ToGfxRect(renderer_view_data_.rect));
     host_->Paint(canvas.get(),
                  plugin_rect,
@@ -92,7 +92,7 @@
 
  private:
   ppapi::ViewData renderer_view_data_;
-  scoped_ptr<PepperGraphics2DHost> host_;
+  std::unique_ptr<PepperGraphics2DHost> host_;
   base::MessageLoop message_loop_;
   MockRendererPpapiHost renderer_ppapi_host_;
   ppapi::TestGlobals test_globals_;
diff --git a/content/renderer/pepper/pepper_in_process_resource_creation.h b/content/renderer/pepper/pepper_in_process_resource_creation.h
index 520345c..d094658 100644
--- a/content/renderer/pepper/pepper_in_process_resource_creation.h
+++ b/content/renderer/pepper/pepper_in_process_resource_creation.h
@@ -5,8 +5,9 @@
 #ifndef CONTENT_RENDERER_PEPPER_PEPPER_IN_PROCESS_RESOURCE_CREATION_H_
 #define CONTENT_RENDERER_PEPPER_PEPPER_IN_PROCESS_RESOURCE_CREATION_H_
 
+#include <memory>
+
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "content/renderer/pepper/resource_creation_impl.h"
 #include "ppapi/proxy/connection.h"
 
diff --git a/content/renderer/pepper/pepper_in_process_router.cc b/content/renderer/pepper/pepper_in_process_router.cc
index 174602f..0ac1248 100644
--- a/content/renderer/pepper/pepper_in_process_router.cc
+++ b/content/renderer/pepper/pepper_in_process_router.cc
@@ -101,7 +101,7 @@
 }
 
 bool PepperInProcessRouter::SendToHost(IPC::Message* msg) {
-  scoped_ptr<IPC::Message> message(msg);
+  std::unique_ptr<IPC::Message> message(msg);
 
   if (!message->is_sync()) {
     // If this is a resource destroyed message, post a task to dispatch it.
@@ -137,7 +137,7 @@
 }
 
 bool PepperInProcessRouter::SendToPlugin(IPC::Message* msg) {
-  scoped_ptr<IPC::Message> message(msg);
+  std::unique_ptr<IPC::Message> message(msg);
   CHECK(!msg->is_sync());
   if (IPC::SyncMessage::IsMessageReplyTo(*message, pending_message_id_)) {
     if (!msg->is_reply_error())
diff --git a/content/renderer/pepper/pepper_in_process_router.h b/content/renderer/pepper/pepper_in_process_router.h
index 20e5b9a1..2a17b6f 100644
--- a/content/renderer/pepper/pepper_in_process_router.h
+++ b/content/renderer/pepper/pepper_in_process_router.h
@@ -2,9 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include <memory>
+
 #include "base/callback.h"
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "ppapi/c/pp_instance.h"
 #include "ppapi/proxy/connection.h"
@@ -78,19 +79,19 @@
   RendererPpapiHostImpl* host_impl_;
 
   class Channel;
-  scoped_ptr<Channel> browser_channel_;
+  std::unique_ptr<Channel> browser_channel_;
 
   // Renderer -> plugin channel.
-  scoped_ptr<Channel> host_to_plugin_router_;
+  std::unique_ptr<Channel> host_to_plugin_router_;
 
   // Plugin -> renderer channel.
-  scoped_ptr<Channel> plugin_to_host_router_;
+  std::unique_ptr<Channel> plugin_to_host_router_;
 
   // Pending sync message id.
   int pending_message_id_;
 
   // Reply deserializer of the pending sync message.
-  scoped_ptr<IPC::MessageReplyDeserializer> reply_deserializer_;
+  std::unique_ptr<IPC::MessageReplyDeserializer> reply_deserializer_;
 
   // Reply result of the pending sync message.
   bool reply_result_;
diff --git a/content/renderer/pepper/pepper_media_stream_audio_track_host.h b/content/renderer/pepper/pepper_media_stream_audio_track_host.h
index c14cd3b..1528d7e4 100644
--- a/content/renderer/pepper/pepper_media_stream_audio_track_host.h
+++ b/content/renderer/pepper/pepper_media_stream_audio_track_host.h
@@ -8,10 +8,10 @@
 #include <stdint.h>
 
 #include <deque>
+#include <memory>
 
 #include "base/compiler_specific.h"
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "base/synchronization/lock.h"
 #include "base/threading/thread_checker.h"
diff --git a/content/renderer/pepper/pepper_media_stream_track_host_base.cc b/content/renderer/pepper/pepper_media_stream_track_host_base.cc
index 6bc9cd7..c2b8655f 100644
--- a/content/renderer/pepper/pepper_media_stream_track_host_base.cc
+++ b/content/renderer/pepper/pepper_media_stream_track_host_base.cc
@@ -52,7 +52,7 @@
     return false;
 
   content::RenderThread* render_thread = content::RenderThread::Get();
-  scoped_ptr<base::SharedMemory> shm(
+  std::unique_ptr<base::SharedMemory> shm(
       render_thread->HostAllocateSharedMemoryBuffer(size.ValueOrDie()));
   if (!shm)
     return false;
diff --git a/content/renderer/pepper/pepper_platform_audio_input.h b/content/renderer/pepper/pepper_platform_audio_input.h
index 33eb7fc9..829738c 100644
--- a/content/renderer/pepper/pepper_platform_audio_input.h
+++ b/content/renderer/pepper/pepper_platform_audio_input.h
@@ -5,12 +5,12 @@
 #ifndef CONTENT_RENDERER_PEPPER_PEPPER_PLATFORM_AUDIO_INPUT_H_
 #define CONTENT_RENDERER_PEPPER_PEPPER_PLATFORM_AUDIO_INPUT_H_
 
+#include <memory>
 #include <string>
 
 #include "base/compiler_specific.h"
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "media/audio/audio_input_ipc.h"
 #include "media/audio/audio_parameters.h"
@@ -101,7 +101,7 @@
 
   // Used to send/receive IPC. THIS MUST ONLY BE ACCESSED ON THE
   // I/O THREAD.
-  scoped_ptr<media::AudioInputIPC> ipc_;
+  std::unique_ptr<media::AudioInputIPC> ipc_;
 
   scoped_refptr<base::SingleThreadTaskRunner> main_task_runner_;
   scoped_refptr<base::SingleThreadTaskRunner> io_task_runner_;
diff --git a/content/renderer/pepper/pepper_platform_audio_output.h b/content/renderer/pepper/pepper_platform_audio_output.h
index a5bd3d9..03f4236c 100644
--- a/content/renderer/pepper/pepper_platform_audio_output.h
+++ b/content/renderer/pepper/pepper_platform_audio_output.h
@@ -5,9 +5,10 @@
 #ifndef CONTENT_RENDERER_PEPPER_PEPPER_PLATFORM_AUDIO_OUTPUT_H_
 #define CONTENT_RENDERER_PEPPER_PEPPER_PLATFORM_AUDIO_OUTPUT_H_
 
+#include <memory>
+
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
 #include "media/audio/audio_output_ipc.h"
 
 namespace media {
@@ -80,7 +81,7 @@
 
   // Used to send/receive IPC. THIS MUST ONLY BE ACCESSED ON THE
   // I/O thread except to send messages and get the message loop.
-  scoped_ptr<media::AudioOutputIPC> ipc_;
+  std::unique_ptr<media::AudioOutputIPC> ipc_;
 
   scoped_refptr<base::SingleThreadTaskRunner> main_task_runner_;
   scoped_refptr<base::SingleThreadTaskRunner> io_task_runner_;
diff --git a/content/renderer/pepper/pepper_platform_camera_device.h b/content/renderer/pepper/pepper_platform_camera_device.h
index 649fa2f7..472a1f2 100644
--- a/content/renderer/pepper/pepper_platform_camera_device.h
+++ b/content/renderer/pepper/pepper_platform_camera_device.h
@@ -5,12 +5,12 @@
 #ifndef CONTENT_RENDERER_PEPPER_PEPPER_PLATFORM_CAMERA_DEVICE_H_
 #define CONTENT_RENDERER_PEPPER_PEPPER_PLATFORM_CAMERA_DEVICE_H_
 
+#include <memory>
 #include <string>
 
 #include "base/callback.h"
 #include "base/compiler_specific.h"
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "base/threading/thread_checker.h"
 #include "content/common/media/video_capture.h"
diff --git a/content/renderer/pepper/pepper_platform_video_capture.h b/content/renderer/pepper/pepper_platform_video_capture.h
index b2e58ea..589cc77 100644
--- a/content/renderer/pepper/pepper_platform_video_capture.h
+++ b/content/renderer/pepper/pepper_platform_video_capture.h
@@ -5,12 +5,12 @@
 #ifndef CONTENT_RENDERER_PEPPER_PEPPER_PLATFORM_VIDEO_CAPTURE_H_
 #define CONTENT_RENDERER_PEPPER_PEPPER_PLATFORM_VIDEO_CAPTURE_H_
 
+#include <memory>
 #include <string>
 
 #include "base/callback.h"
 #include "base/compiler_specific.h"
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "base/threading/thread_checker.h"
 #include "base/time/time.h"
diff --git a/content/renderer/pepper/pepper_plugin_instance_impl.cc b/content/renderer/pepper/pepper_plugin_instance_impl.cc
index 372b503..6894654d 100644
--- a/content/renderer/pepper/pepper_plugin_instance_impl.cc
+++ b/content/renderer/pepper/pepper_plugin_instance_impl.cc
@@ -303,9 +303,9 @@
 // Convert the given vector to an array of C-strings. The strings in the
 // returned vector are only guaranteed valid so long as the vector of strings
 // is not modified.
-scoped_ptr<const char* []> StringVectorToArgArray(
+std::unique_ptr<const char* []> StringVectorToArgArray(
     const std::vector<std::string>& vector) {
-  scoped_ptr<const char * []> array(new const char* [vector.size()]);
+  std::unique_ptr<const char* []> array(new const char*[vector.size()]);
   for (size_t i = 0; i < vector.size(); ++i)
     array[i] = vector[i].c_str();
   return array;
@@ -821,7 +821,7 @@
     const std::vector<std::string>& arg_names,
     const std::vector<std::string>& arg_values,
     bool full_frame,
-    scoped_ptr<PluginInstanceThrottlerImpl> throttler) {
+    std::unique_ptr<PluginInstanceThrottlerImpl> throttler) {
   DCHECK(!throttler_);
 
   if (!render_frame_)
@@ -846,8 +846,8 @@
 
   argn_ = arg_names;
   argv_ = arg_values;
-  scoped_ptr<const char * []> argn_array(StringVectorToArgArray(argn_));
-  scoped_ptr<const char * []> argv_array(StringVectorToArgArray(argv_));
+  std::unique_ptr<const char* []> argn_array(StringVectorToArgArray(argn_));
+  std::unique_ptr<const char* []> argv_array(StringVectorToArgArray(argv_));
   auto weak_this = weak_factory_.GetWeakPtr();
   bool success = PP_ToBool(instance_interface_->DidCreate(
       pp_instance(), argn_.size(), argn_array.get(), argv_array.get()));
@@ -908,7 +908,7 @@
   // PpapiHost now owns the pointer to loader_host, so we don't have to worry
   // about managing it.
   int pending_host_id = host_impl->GetPpapiHost()->AddPendingResourceHost(
-      scoped_ptr<ppapi::host::ResourceHost>(loader_host));
+      std::unique_ptr<ppapi::host::ResourceHost>(loader_host));
   DCHECK(pending_host_id);
 
   DataFromWebURLResponse(
@@ -1137,7 +1137,7 @@
         (input_event_mask_ & event_class)) {
       // Actually send the event.
       std::vector<ppapi::InputEventData> events;
-      scoped_ptr<const WebInputEvent> event_in_dip(
+      std::unique_ptr<const WebInputEvent> event_in_dip(
           ui::ScaleWebInputEvent(event, viewport_to_dip_scale_));
       if (event_in_dip)
         CreateInputEventData(*event_in_dip.get(), &events);
@@ -2074,7 +2074,7 @@
 
 bool PepperPluginInstanceImpl::PrepareTextureMailbox(
     cc::TextureMailbox* mailbox,
-    scoped_ptr<cc::SingleReleaseCallback>* release_callback,
+    std::unique_ptr<cc::SingleReleaseCallback>* release_callback,
     bool use_shared_memory) {
   if (!bound_graphics_2d_platform_)
     return false;
@@ -2151,10 +2151,12 @@
   if (handled)
     return;
 
-  std::vector<scoped_ptr<WebInputEvent>> events = CreateSimulatedWebInputEvents(
-      input_event, view_data_.rect.point.x + view_data_.rect.size.width / 2,
-      view_data_.rect.point.y + view_data_.rect.size.height / 2);
-  for (std::vector<scoped_ptr<WebInputEvent>>::iterator it = events.begin();
+  std::vector<std::unique_ptr<WebInputEvent>> events =
+      CreateSimulatedWebInputEvents(
+          input_event, view_data_.rect.point.x + view_data_.rect.size.width / 2,
+          view_data_.rect.point.y + view_data_.rect.size.height / 2);
+  for (std::vector<std::unique_ptr<WebInputEvent>>::iterator it =
+           events.begin();
        it != events.end(); ++it) {
     web_view->handleInputEvent(*it->get());
   }
@@ -2704,7 +2706,7 @@
   if (!auto_mapper.is_valid())
     return PP_FALSE;
 
-  scoped_ptr<WebCursorInfo> custom_cursor(
+  std::unique_ptr<WebCursorInfo> custom_cursor(
       new WebCursorInfo(WebCursorInfo::TypeCustom));
   custom_cursor->hotSpot.x = hot_spot->x;
   custom_cursor->hotSpot.y = hot_spot->y;
@@ -2920,8 +2922,8 @@
   plugin_textinput_interface_ = NULL;
 
   // Re-send the DidCreate event via the proxy.
-  scoped_ptr<const char * []> argn_array(StringVectorToArgArray(argn_));
-  scoped_ptr<const char * []> argv_array(StringVectorToArgArray(argv_));
+  std::unique_ptr<const char* []> argn_array(StringVectorToArgArray(argn_));
+  std::unique_ptr<const char* []> argv_array(StringVectorToArgArray(argv_));
   if (!instance_interface_->DidCreate(
           pp_instance(), argn_.size(), argn_array.get(), argv_array.get()))
     return PP_EXTERNAL_PLUGIN_ERROR_INSTANCE;
@@ -3160,7 +3162,7 @@
   PepperFileRefRendererHost* file_ref_host(
       new PepperFileRefRendererHost(host_impl, pp_instance(), 0, path));
   return host_impl->GetPpapiHost()->AddPendingResourceHost(
-      scoped_ptr<ppapi::host::ResourceHost>(file_ref_host));
+      std::unique_ptr<ppapi::host::ResourceHost>(file_ref_host));
 }
 
 void PepperPluginInstanceImpl::SetEmbedProperty(PP_Var key, PP_Var value) {
diff --git a/content/renderer/pepper/pepper_plugin_instance_impl.h b/content/renderer/pepper/pepper_plugin_instance_impl.h
index db95d8e..edc5dd2 100644
--- a/content/renderer/pepper/pepper_plugin_instance_impl.h
+++ b/content/renderer/pepper/pepper_plugin_instance_impl.h
@@ -9,6 +9,7 @@
 #include <stdint.h>
 
 #include <list>
+#include <memory>
 #include <set>
 #include <string>
 #include <vector>
@@ -17,7 +18,6 @@
 #include "base/compiler_specific.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/strings/string16.h"
 #include "build/build_config.h"
@@ -212,7 +212,7 @@
   bool Initialize(const std::vector<std::string>& arg_names,
                   const std::vector<std::string>& arg_values,
                   bool full_frame,
-                  scoped_ptr<PluginInstanceThrottlerImpl> throttler);
+                  std::unique_ptr<PluginInstanceThrottlerImpl> throttler);
   bool HandleDocumentLoad(const blink::WebURLResponse& response);
   bool HandleInputEvent(const blink::WebInputEvent& event,
                         blink::WebCursorInfo* cursor_info);
@@ -535,7 +535,7 @@
   // cc::TextureLayerClient implementation.
   bool PrepareTextureMailbox(
       cc::TextureMailbox* mailbox,
-      scoped_ptr<cc::SingleReleaseCallback>* release_callback,
+      std::unique_ptr<cc::SingleReleaseCallback>* release_callback,
       bool use_shared_memory) override;
 
   // RenderFrameObserver
@@ -576,7 +576,7 @@
    private:
     std::list<std::string> data_;
     bool finished_loading_;
-    scoped_ptr<blink::WebURLError> error_;
+    std::unique_ptr<blink::WebURLError> error_;
   };
 
   // Implements PPB_Gamepad_API. This is just to avoid having an excessive
@@ -702,12 +702,12 @@
   RenderFrameImpl* render_frame_;
   base::Closure instance_deleted_callback_;
   scoped_refptr<PluginModule> module_;
-  scoped_ptr<ppapi::PPP_Instance_Combined> instance_interface_;
+  std::unique_ptr<ppapi::PPP_Instance_Combined> instance_interface_;
   // If this is the NaCl plugin, we create a new module when we switch to the
   // IPC-based PPAPI proxy. Store the original module and instance interface
   // so we can shut down properly.
   scoped_refptr<PluginModule> original_module_;
-  scoped_ptr<ppapi::PPP_Instance_Combined> original_instance_interface_;
+  std::unique_ptr<ppapi::PPP_Instance_Combined> original_instance_interface_;
 
   PP_Instance pp_instance_;
 
@@ -715,7 +715,7 @@
   blink::WebPluginContainer* container_;
   scoped_refptr<cc::Layer> compositor_layer_;
   scoped_refptr<cc::TextureLayer> texture_layer_;
-  scoped_ptr<blink::WebLayer> web_layer_;
+  std::unique_ptr<blink::WebLayer> web_layer_;
   bool layer_bound_to_fullscreen_;
   bool layer_is_hardware_;
 
@@ -734,7 +734,7 @@
   bool javascript_used_;
 
   // Responsible for turning on throttling if Power Saver is on.
-  scoped_ptr<PluginInstanceThrottlerImpl> throttler_;
+  std::unique_ptr<PluginInstanceThrottlerImpl> throttler_;
 
   // Indicates whether this is a full frame instance, which means it represents
   // an entire document rather than an embed tag.
@@ -771,7 +771,7 @@
   int find_identifier_;
 
   // Helper object that creates resources.
-  scoped_ptr<ppapi::thunk::ResourceCreationAPI> resource_creation_;
+  std::unique_ptr<ppapi::thunk::ResourceCreationAPI> resource_creation_;
 
   // The plugin-provided interfaces.
   // When adding PPP interfaces, make sure to reset them in ResetAsProxied.
@@ -820,7 +820,7 @@
   const PPP_Graphics3D* plugin_graphics_3d_interface_;
 
   // Contains the cursor if it's set by the plugin.
-  scoped_ptr<blink::WebCursorInfo> cursor_;
+  std::unique_ptr<blink::WebCursorInfo> cursor_;
 
   // Set to true if this plugin thinks it will always be on top. This allows us
   // to use a more optimized painting path in some cases.
@@ -905,12 +905,12 @@
   blink::WebURLLoaderClient* document_loader_;
   // State for deferring document loads. Used only by external instances.
   blink::WebURLResponse external_document_response_;
-  scoped_ptr<ExternalDocumentLoader> external_document_loader_;
+  std::unique_ptr<ExternalDocumentLoader> external_document_loader_;
   bool external_document_load_;
 
   // The ContentDecryptorDelegate forwards PPP_ContentDecryptor_Private
   // calls and handles PPB_ContentDecryptor_Private calls.
-  scoped_ptr<ContentDecryptorDelegate> content_decryptor_delegate_;
+  std::unique_ptr<ContentDecryptorDelegate> content_decryptor_delegate_;
 
   // The link currently under the cursor.
   base::string16 link_under_cursor_;
@@ -919,7 +919,7 @@
   // Isolate in which this Instance was created when interacting with v8.
   v8::Isolate* isolate_;
 
-  scoped_ptr<MouseLockDispatcher::LockTarget> lock_target_;
+  std::unique_ptr<MouseLockDispatcher::LockTarget> lock_target_;
 
   bool is_deleted_;
 
diff --git a/content/renderer/pepper/pepper_url_loader_host.cc b/content/renderer/pepper/pepper_url_loader_host.cc
index 53bc313..e3629b31 100644
--- a/content/renderer/pepper/pepper_url_loader_host.cc
+++ b/content/renderer/pepper/pepper_url_loader_host.cc
@@ -100,7 +100,7 @@
   // re-entering the scoped_ptr destructor with the same scoped_ptr object
   // via loader_.reset(). Be sure that loader_ is first NULL then destroy
   // the scoped_ptr. See http://crbug.com/159429.
-  scoped_ptr<blink::WebURLLoader> for_destruction_only(loader_.release());
+  std::unique_ptr<blink::WebURLLoader> for_destruction_only(loader_.release());
 }
 
 int32_t PepperURLLoaderHost::OnResourceMessageReceived(
diff --git a/content/renderer/pepper/pepper_url_loader_host.h b/content/renderer/pepper/pepper_url_loader_host.h
index 8f820e10..96a61d6 100644
--- a/content/renderer/pepper/pepper_url_loader_host.h
+++ b/content/renderer/pepper/pepper_url_loader_host.h
@@ -132,7 +132,7 @@
   // always NULL check this value before using it. In the case of a main
   // document load, you would call the functions on the document to cancel the
   // load, etc. since there is no loader.
-  scoped_ptr<blink::WebURLLoader> loader_;
+  std::unique_ptr<blink::WebURLLoader> loader_;
 
   int64_t bytes_sent_;
   int64_t total_bytes_to_be_sent_;
diff --git a/content/renderer/pepper/pepper_video_capture_host.h b/content/renderer/pepper/pepper_video_capture_host.h
index 5a2dead..2bb981f 100644
--- a/content/renderer/pepper/pepper_video_capture_host.h
+++ b/content/renderer/pepper/pepper_video_capture_host.h
@@ -8,10 +8,11 @@
 #include <stddef.h>
 #include <stdint.h>
 
+#include <memory>
+
 #include "base/compiler_specific.h"
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
 #include "content/common/media/video_capture.h"
 #include "content/public/renderer/renderer_ppapi_host.h"
 #include "content/renderer/pepper/pepper_device_enumeration_host_helper.h"
@@ -90,7 +91,7 @@
 
   bool SetStatus(PP_VideoCaptureStatus_Dev status, bool forced);
 
-  scoped_ptr<PepperPlatformVideoCapture> platform_video_capture_;
+  std::unique_ptr<PepperPlatformVideoCapture> platform_video_capture_;
 
   // Buffers of video frame.
   struct BufferInfo {
diff --git a/content/renderer/pepper/pepper_video_decoder_host.cc b/content/renderer/pepper/pepper_video_decoder_host.cc
index 8016b9e..d9b15e6 100644
--- a/content/renderer/pepper/pepper_video_decoder_host.cc
+++ b/content/renderer/pepper/pepper_video_decoder_host.cc
@@ -196,7 +196,7 @@
     return PP_ERROR_FAILED;
 
   content::RenderThread* render_thread = content::RenderThread::Get();
-  scoped_ptr<base::SharedMemory> shm(
+  std::unique_ptr<base::SharedMemory> shm(
       render_thread->HostAllocateSharedMemoryBuffer(shm_size));
   if (!shm || !shm->Map(shm_size))
     return PP_ERROR_FAILED;
@@ -481,7 +481,7 @@
   uint32_t shim_texture_pool_size = media::limits::kMaxVideoFrames + 1;
   shim_texture_pool_size = std::max(shim_texture_pool_size,
                                     min_picture_count_);
-  scoped_ptr<VideoDecoderShim> new_decoder(
+  std::unique_ptr<VideoDecoderShim> new_decoder(
       new VideoDecoderShim(this, shim_texture_pool_size));
   if (!new_decoder->Initialize(profile_, this))
     return false;
diff --git a/content/renderer/pepper/pepper_video_decoder_host.h b/content/renderer/pepper/pepper_video_decoder_host.h
index f8b4534a..308ba447 100644
--- a/content/renderer/pepper/pepper_video_decoder_host.h
+++ b/content/renderer/pepper/pepper_video_decoder_host.h
@@ -9,12 +9,12 @@
 
 #include <list>
 #include <map>
+#include <memory>
 #include <set>
 #include <vector>
 
 #include "base/containers/hash_tables.h"
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/scoped_vector.h"
 #include "content/common/content_export.h"
 #include "media/video/video_decode_accelerator.h"
@@ -121,7 +121,7 @@
 
   media::VideoCodecProfile profile_;
 
-  scoped_ptr<media::VideoDecodeAccelerator> decoder_;
+  std::unique_ptr<media::VideoDecodeAccelerator> decoder_;
 
   bool software_fallback_allowed_ = false;
   bool software_fallback_used_ = false;
diff --git a/content/renderer/pepper/pepper_video_destination_host.h b/content/renderer/pepper/pepper_video_destination_host.h
index 75208a7f..9f9f8a0 100644
--- a/content/renderer/pepper/pepper_video_destination_host.h
+++ b/content/renderer/pepper/pepper_video_destination_host.h
@@ -7,9 +7,10 @@
 
 #include <stdint.h>
 
+#include <memory>
+
 #include "base/compiler_specific.h"
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "content/common/content_export.h"
 #include "content/renderer/media/pepper_to_video_track_adapter.h"
@@ -41,7 +42,7 @@
                             PP_TimeTicks timestamp);
   int32_t OnHostMsgClose(ppapi::host::HostMessageContext* context);
 
-  scoped_ptr<FrameWriterInterface> frame_writer_;
+  std::unique_ptr<FrameWriterInterface> frame_writer_;
   // Used for checking that timestamps are strictly increasing.
 #if DCHECK_IS_ON()
   bool has_received_frame_;
diff --git a/content/renderer/pepper/pepper_video_encoder_host.cc b/content/renderer/pepper/pepper_video_encoder_host.cc
index afdc33d..6444aeb0 100644
--- a/content/renderer/pepper/pepper_video_encoder_host.cc
+++ b/content/renderer/pepper/pepper_video_encoder_host.cc
@@ -176,8 +176,9 @@
 
 }  // namespace
 
-PepperVideoEncoderHost::ShmBuffer::ShmBuffer(uint32_t id,
-                                             scoped_ptr<base::SharedMemory> shm)
+PepperVideoEncoderHost::ShmBuffer::ShmBuffer(
+    uint32_t id,
+    std::unique_ptr<base::SharedMemory> shm)
     : id(id), shm(std::move(shm)), in_use(true) {
   DCHECK(this->shm);
 }
@@ -377,7 +378,7 @@
   frame_count_ = frame_count;
 
   for (uint32_t i = 0; i < kDefaultNumberOfBitstreamBuffers; ++i) {
-    scoped_ptr<base::SharedMemory> shm(
+    std::unique_ptr<base::SharedMemory> shm(
         RenderThread::Get()->HostAllocateSharedMemoryBuffer(
             output_buffer_size));
 
@@ -575,7 +576,7 @@
   size *= frame_count_;
   uint32_t total_size = size.ValueOrDie();
 
-  scoped_ptr<base::SharedMemory> shm(
+  std::unique_ptr<base::SharedMemory> shm(
       RenderThreadImpl::current()->HostAllocateSharedMemoryBuffer(total_size));
   if (!shm ||
       !buffer_manager_.SetBuffers(frame_count_, buffer_size_aligned,
diff --git a/content/renderer/pepper/pepper_video_encoder_host.h b/content/renderer/pepper/pepper_video_encoder_host.h
index d6a47d8..5643768 100644
--- a/content/renderer/pepper/pepper_video_encoder_host.h
+++ b/content/renderer/pepper/pepper_video_encoder_host.h
@@ -8,9 +8,10 @@
 #include <stddef.h>
 #include <stdint.h>
 
+#include <memory>
+
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/scoped_vector.h"
 #include "content/common/content_export.h"
 #include "media/video/video_encode_accelerator.h"
@@ -50,7 +51,7 @@
 
   // Shared memory buffers.
   struct ShmBuffer {
-    ShmBuffer(uint32_t id, scoped_ptr<base::SharedMemory> shm);
+    ShmBuffer(uint32_t id, std::unique_ptr<base::SharedMemory> shm);
     ~ShmBuffer();
 
     media::BitstreamBuffer ToBitstreamBuffer();
@@ -58,7 +59,7 @@
     // Index of the buffer in the ScopedVector. Buffers have the same id in
     // the plugin and the host.
     uint32_t id;
-    scoped_ptr<base::SharedMemory> shm;
+    std::unique_ptr<base::SharedMemory> shm;
     bool in_use;
   };
 
@@ -130,9 +131,9 @@
   ppapi::MediaStreamBufferManager buffer_manager_;
 
   scoped_refptr<gpu::GpuChannelHost> channel_;
-  scoped_ptr<gpu::CommandBufferProxyImpl> command_buffer_;
+  std::unique_ptr<gpu::CommandBufferProxyImpl> command_buffer_;
 
-  scoped_ptr<media::VideoEncodeAccelerator> encoder_;
+  std::unique_ptr<media::VideoEncodeAccelerator> encoder_;
 
   // Whether the encoder has been successfully initialized.
   bool initialized_;
diff --git a/content/renderer/pepper/pepper_video_source_host.h b/content/renderer/pepper/pepper_video_source_host.h
index 0b5b0a1..811a4616 100644
--- a/content/renderer/pepper/pepper_video_source_host.h
+++ b/content/renderer/pepper/pepper_video_source_host.h
@@ -7,10 +7,11 @@
 
 #include <stdint.h>
 
+#include <memory>
+
 #include "base/compiler_specific.h"
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "base/threading/thread_checker.h"
 #include "content/common/content_export.h"
@@ -63,7 +64,7 @@
 
   ppapi::host::ReplyMessageContext reply_context_;
 
-  scoped_ptr<VideoTrackToPepperAdapter> frame_source_;
+  std::unique_ptr<VideoTrackToPepperAdapter> frame_source_;
   scoped_refptr<FrameReceiver> frame_receiver_;
   std::string stream_url_;
   scoped_refptr<media::VideoFrame> last_frame_;
diff --git a/content/renderer/pepper/pepper_webplugin_impl.cc b/content/renderer/pepper/pepper_webplugin_impl.cc
index 45bf64fc..8138203 100644
--- a/content/renderer/pepper/pepper_webplugin_impl.cc
+++ b/content/renderer/pepper/pepper_webplugin_impl.cc
@@ -60,7 +60,7 @@
     PluginModule* plugin_module,
     const WebPluginParams& params,
     RenderFrameImpl* render_frame,
-    scoped_ptr<PluginInstanceThrottlerImpl> throttler)
+    std::unique_ptr<PluginInstanceThrottlerImpl> throttler)
     : init_data_(new InitData()),
       full_frame_(params.loadManually),
       throttler_(std::move(throttler)),
diff --git a/content/renderer/pepper/pepper_webplugin_impl.h b/content/renderer/pepper/pepper_webplugin_impl.h
index 3ec6ea2..49a0832 100644
--- a/content/renderer/pepper/pepper_webplugin_impl.h
+++ b/content/renderer/pepper/pepper_webplugin_impl.h
@@ -5,11 +5,11 @@
 #ifndef CONTENT_RENDERER_PEPPER_PEPPER_WEBPLUGIN_IMPL_H_
 #define CONTENT_RENDERER_PEPPER_PEPPER_WEBPLUGIN_IMPL_H_
 
+#include <memory>
 #include <string>
 #include <vector>
 
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "base/sequenced_task_runner_helpers.h"
 #include "ppapi/c/pp_var.h"
@@ -36,7 +36,7 @@
   PepperWebPluginImpl(PluginModule* module,
                       const blink::WebPluginParams& params,
                       RenderFrameImpl* render_frame,
-                      scoped_ptr<PluginInstanceThrottlerImpl> throttler);
+                      std::unique_ptr<PluginInstanceThrottlerImpl> throttler);
 
   PepperPluginInstanceImpl* instance() { return instance_.get(); }
 
@@ -89,11 +89,12 @@
   virtual ~PepperWebPluginImpl();
   struct InitData;
 
-  scoped_ptr<InitData> init_data_;  // Cleared upon successful initialization.
+  std::unique_ptr<InitData>
+      init_data_;  // Cleared upon successful initialization.
   // True if the instance represents the entire document in a frame instead of
   // being an embedded resource.
   bool full_frame_;
-  scoped_ptr<PluginInstanceThrottlerImpl> throttler_;
+  std::unique_ptr<PluginInstanceThrottlerImpl> throttler_;
   scoped_refptr<PepperPluginInstanceImpl> instance_;
   gfx::Rect plugin_rect_;
   PP_Var instance_object_;
diff --git a/content/renderer/pepper/pepper_webplugin_impl_browsertest.cc b/content/renderer/pepper/pepper_webplugin_impl_browsertest.cc
index 42839b56..7a08ef92 100644
--- a/content/renderer/pepper/pepper_webplugin_impl_browsertest.cc
+++ b/content/renderer/pepper/pepper_webplugin_impl_browsertest.cc
@@ -2,16 +2,18 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include "content/renderer/pepper/pepper_webplugin_impl.h"
+
 #include <stdint.h>
 
 #include "base/command_line.h"
+#include "base/memory/ptr_util.h"
 #include "content/public/common/content_client.h"
 #include "content/public/common/content_constants.h"
 #include "content/public/common/content_switches.h"
 #include "content/public/common/pepper_plugin_info.h"
 #include "content/public/renderer/content_renderer_client.h"
 #include "content/public/test/render_view_test.h"
-#include "content/renderer/pepper/pepper_webplugin_impl.h"
 #include "content/renderer/pepper/plugin_instance_throttler_impl.h"
 #include "content/renderer/pepper/plugin_module.h"
 #include "content/renderer/pepper/renderer_ppapi_host_impl.h"
@@ -169,9 +171,9 @@
                               blink::WebPlugin** plugin) override {
       current_test_->throttler_ = new PluginInstanceThrottlerImpl;
       current_test_->throttler_->AddObserver(current_test_);
-      *plugin = render_frame->CreatePlugin(frame,
-          GetPluginInfo().ToWebPluginInfo(), params,
-          make_scoped_ptr(current_test_->throttler_));
+      *plugin = render_frame->CreatePlugin(
+          frame, GetPluginInfo().ToWebPluginInfo(), params,
+          base::WrapUnique(current_test_->throttler_));
       return *plugin;
     }
   };
diff --git a/content/renderer/pepper/pepper_websocket_host.h b/content/renderer/pepper/pepper_websocket_host.h
index baac2427..7c07c2a 100644
--- a/content/renderer/pepper/pepper_websocket_host.h
+++ b/content/renderer/pepper/pepper_websocket_host.h
@@ -7,11 +7,11 @@
 
 #include <stdint.h>
 
+#include <memory>
 #include <queue>
 
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
 #include "content/common/content_export.h"
 #include "ppapi/host/host_message_context.h"
 #include "ppapi/host/resource_host.h"
@@ -93,7 +93,7 @@
 
   // Keeps the WebKit side WebSocket object. This is used for calling WebKit
   // side functions via WebKit API.
-  scoped_ptr<blink::WebPepperSocket> websocket_;
+  std::unique_ptr<blink::WebPepperSocket> websocket_;
 
   DISALLOW_COPY_AND_ASSIGN(PepperWebSocketHost);
 };
diff --git a/content/renderer/pepper/plugin_instance_throttler_impl.cc b/content/renderer/pepper/plugin_instance_throttler_impl.cc
index 009e7d5..10c7f50 100644
--- a/content/renderer/pepper/plugin_instance_throttler_impl.cc
+++ b/content/renderer/pepper/plugin_instance_throttler_impl.cc
@@ -4,6 +4,7 @@
 
 #include "content/renderer/pepper/plugin_instance_throttler_impl.h"
 
+#include "base/memory/ptr_util.h"
 #include "base/metrics/histogram.h"
 #include "base/time/time.h"
 #include "content/public/common/content_constants.h"
@@ -40,8 +41,8 @@
 const int PluginInstanceThrottlerImpl::kMaximumFramesToExamine = 150;
 
 // static
-scoped_ptr<PluginInstanceThrottler> PluginInstanceThrottler::Create() {
-  return make_scoped_ptr(new PluginInstanceThrottlerImpl);
+std::unique_ptr<PluginInstanceThrottler> PluginInstanceThrottler::Create() {
+  return base::WrapUnique(new PluginInstanceThrottlerImpl);
 }
 
 // static
diff --git a/content/renderer/pepper/plugin_instance_throttler_impl_unittest.cc b/content/renderer/pepper/plugin_instance_throttler_impl_unittest.cc
index 57c45635..48a9bb61 100644
--- a/content/renderer/pepper/plugin_instance_throttler_impl_unittest.cc
+++ b/content/renderer/pepper/plugin_instance_throttler_impl_unittest.cc
@@ -2,14 +2,16 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include "content/renderer/pepper/plugin_instance_throttler_impl.h"
+
+#include <memory>
+
 #include "base/bind.h"
 #include "base/command_line.h"
 #include "base/logging.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/message_loop/message_loop.h"
 #include "content/public/common/content_switches.h"
 #include "content/public/renderer/render_frame.h"
-#include "content/renderer/pepper/plugin_instance_throttler_impl.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/WebKit/public/web/WebInputEvent.h"
@@ -72,7 +74,7 @@
   // PluginInstanceThrottlerImpl::Observer
   void OnThrottleStateChange() override { ++change_callback_calls_; }
 
-  scoped_ptr<PluginInstanceThrottlerImpl> throttler_;
+  std::unique_ptr<PluginInstanceThrottlerImpl> throttler_;
 
   int change_callback_calls_;
 
diff --git a/content/renderer/pepper/plugin_module.cc b/content/renderer/pepper/plugin_module.cc
index a1bb699..428371e0 100644
--- a/content/renderer/pepper/plugin_module.cc
+++ b/content/renderer/pepper/plugin_module.cc
@@ -7,13 +7,14 @@
 #include <stddef.h>
 #include <stdint.h>
 #include <string.h>
+
+#include <memory>
 #include <set>
 #include <utility>
 
 #include "base/bind.h"
 #include "base/command_line.h"
 #include "base/logging.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/message_loop/message_loop.h"
 #include "base/time/time.h"
 #include "build/build_config.h"
@@ -552,7 +553,7 @@
 }
 
 void PluginModule::SetRendererPpapiHost(
-    scoped_ptr<RendererPpapiHostImpl> host) {
+    std::unique_ptr<RendererPpapiHostImpl> host) {
   renderer_ppapi_host_ = std::move(host);
 }
 
@@ -721,7 +722,7 @@
     bool is_external) {
   scoped_refptr<PepperHungPluginFilter> hung_filter(new PepperHungPluginFilter(
       path, render_frame->GetRoutingID(), plugin_child_id));
-  scoped_ptr<HostDispatcherWrapper> dispatcher(new HostDispatcherWrapper(
+  std::unique_ptr<HostDispatcherWrapper> dispatcher(new HostDispatcherWrapper(
       this, peer_pid, plugin_child_id, permissions, is_external));
   if (!dispatcher->Init(channel_handle,
                         &GetInterface,
diff --git a/content/renderer/pepper/plugin_module.h b/content/renderer/pepper/plugin_module.h
index 807a93a..53640f2 100644
--- a/content/renderer/pepper/plugin_module.h
+++ b/content/renderer/pepper/plugin_module.h
@@ -6,13 +6,13 @@
 #define CONTENT_RENDERER_PEPPER_PLUGIN_MODULE_H_
 
 #include <map>
+#include <memory>
 #include <set>
 #include <string>
 
 #include "base/files/file_path.h"
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "base/native_library.h"
 #include "base/process/process.h"
@@ -77,7 +77,7 @@
   // Sets the given class as being associated with this module. It will be
   // deleted when the module is destroyed. You can only set it once, subsequent
   // sets will assert.
-  void SetRendererPpapiHost(scoped_ptr<RendererPpapiHostImpl> host);
+  void SetRendererPpapiHost(std::unique_ptr<RendererPpapiHostImpl> host);
 
   // Initializes this module as an internal plugin with the given entrypoints.
   // This is used for "plugins" compiled into Chrome. Returns true on success.
@@ -223,7 +223,7 @@
   // entrypoints in that case).
   bool InitializeModule(const PepperPluginInfo::EntryPoints& entry_points);
 
-  scoped_ptr<RendererPpapiHostImpl> renderer_ppapi_host_;
+  std::unique_ptr<RendererPpapiHostImpl> renderer_ppapi_host_;
 
   // Tracker for completion callbacks, used mainly to ensure that all callbacks
   // are properly aborted on module shutdown.
@@ -241,7 +241,7 @@
   // Manages the out of process proxy interface. The presence of this
   // pointer indicates that the plugin is running out of process and that the
   // entry_points_ aren't valid.
-  scoped_ptr<HostDispatcherWrapper> host_dispatcher_wrapper_;
+  std::unique_ptr<HostDispatcherWrapper> host_dispatcher_wrapper_;
 
   // Non-owning pointer to the broker for this plugin module, if one exists.
   // It is populated and cleared in the main thread.
diff --git a/content/renderer/pepper/plugin_object.cc b/content/renderer/pepper/plugin_object.cc
index cb5ff6a..1cc915a 100644
--- a/content/renderer/pepper/plugin_object.cc
+++ b/content/renderer/pepper/plugin_object.cc
@@ -6,10 +6,11 @@
 
 #include <stdint.h>
 
+#include <memory>
+
 #include "base/bind.h"
 #include "base/logging.h"
 #include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/string_util.h"
 #include "content/renderer/pepper/pepper_plugin_instance_impl.h"
diff --git a/content/renderer/pepper/ppb_buffer_impl.cc b/content/renderer/pepper/ppb_buffer_impl.cc
index 12bbbea..5bec0da 100644
--- a/content/renderer/pepper/ppb_buffer_impl.cc
+++ b/content/renderer/pepper/ppb_buffer_impl.cc
@@ -5,9 +5,9 @@
 #include "content/renderer/pepper/ppb_buffer_impl.h"
 
 #include <algorithm>
+#include <memory>
 
 #include "base/logging.h"
-#include "base/memory/scoped_ptr.h"
 #include "content/common/pepper_file_util.h"
 #include "content/renderer/render_thread_impl.h"
 #include "ppapi/c/dev/ppb_buffer_dev.h"
diff --git a/content/renderer/pepper/ppb_buffer_impl.h b/content/renderer/pepper/ppb_buffer_impl.h
index a98deb7..b0e7f16 100644
--- a/content/renderer/pepper/ppb_buffer_impl.h
+++ b/content/renderer/pepper/ppb_buffer_impl.h
@@ -7,9 +7,10 @@
 
 #include <stdint.h>
 
+#include <memory>
+
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/shared_memory.h"
 #include "ppapi/shared_impl/resource.h"
 #include "ppapi/thunk/ppb_buffer_api.h"
@@ -46,7 +47,7 @@
   explicit PPB_Buffer_Impl(PP_Instance instance);
   bool Init(uint32_t size);
 
-  scoped_ptr<base::SharedMemory> shared_memory_;
+  std::unique_ptr<base::SharedMemory> shared_memory_;
   uint32_t size_;
   int map_count_;
 
diff --git a/content/renderer/pepper/ppb_graphics_3d_impl.h b/content/renderer/pepper/ppb_graphics_3d_impl.h
index 6dd3462..86cf09c 100644
--- a/content/renderer/pepper/ppb_graphics_3d_impl.h
+++ b/content/renderer/pepper/ppb_graphics_3d_impl.h
@@ -97,7 +97,7 @@
   gpu::SyncToken sync_token_;
   bool has_alpha_;
   scoped_refptr<gpu::GpuChannelHost> channel_;
-  scoped_ptr<gpu::CommandBufferProxyImpl> command_buffer_;
+  std::unique_ptr<gpu::CommandBufferProxyImpl> command_buffer_;
 
   base::WeakPtrFactory<PPB_Graphics3D_Impl> weak_ptr_factory_;
 
diff --git a/content/renderer/pepper/ppb_image_data_impl.cc b/content/renderer/pepper/ppb_image_data_impl.cc
index 4756cfd..dd3ed85 100644
--- a/content/renderer/pepper/ppb_image_data_impl.cc
+++ b/content/renderer/pepper/ppb_image_data_impl.cc
@@ -6,9 +6,9 @@
 
 #include <algorithm>
 #include <limits>
+#include <memory>
 
 #include "base/logging.h"
-#include "base/memory/scoped_ptr.h"
 #include "content/common/pepper_file_util.h"
 #include "content/common/view_messages.h"
 #include "content/renderer/render_thread_impl.h"
@@ -144,7 +144,7 @@
   width_ = width;
   height_ = height;
   uint32_t buffer_size = width_ * height_ * 4;
-  scoped_ptr<base::SharedMemory> shared_memory =
+  std::unique_ptr<base::SharedMemory> shared_memory =
       RenderThread::Get()->HostAllocateSharedMemoryBuffer(buffer_size);
   if (!shared_memory)
     return false;
diff --git a/content/renderer/pepper/ppb_image_data_impl.h b/content/renderer/pepper/ppb_image_data_impl.h
index 13a1e0c..632582053 100644
--- a/content/renderer/pepper/ppb_image_data_impl.h
+++ b/content/renderer/pepper/ppb_image_data_impl.h
@@ -7,8 +7,9 @@
 
 #include <stdint.h>
 
+#include <memory>
+
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/shared_memory.h"
 #include "content/common/content_export.h"
 #include "ppapi/c/ppb_image_data.h"
@@ -108,7 +109,7 @@
   PP_ImageDataFormat format_;
   int width_;
   int height_;
-  scoped_ptr<Backend> backend_;
+  std::unique_ptr<Backend> backend_;
 
   DISALLOW_COPY_AND_ASSIGN(PPB_ImageData_Impl);
 };
@@ -141,7 +142,7 @@
   // swapped with another.
   int width_;
   int height_;
-  scoped_ptr<TransportDIB> dib_;
+  std::unique_ptr<TransportDIB> dib_;
 
   // When the device is mapped, this is the image. Null when umapped.
   sk_sp<SkCanvas> mapped_canvas_;
@@ -171,7 +172,7 @@
   const SkBitmap* GetMappedBitmap() const override;
 
  private:
-  scoped_ptr<base::SharedMemory> shared_memory_;
+  std::unique_ptr<base::SharedMemory> shared_memory_;
   // skia_bitmap_ is backed by shared_memory_.
   SkBitmap skia_bitmap_;
   sk_sp<SkCanvas> skia_canvas_;
diff --git a/content/renderer/pepper/ppb_var_deprecated_impl.cc b/content/renderer/pepper/ppb_var_deprecated_impl.cc
index 7426ca4..fcf9a92 100644
--- a/content/renderer/pepper/ppb_var_deprecated_impl.cc
+++ b/content/renderer/pepper/ppb_var_deprecated_impl.cc
@@ -75,7 +75,7 @@
  private:
   V8ObjectVar* object_var_;
   PepperPluginInstanceImpl* instance_;
-  scoped_ptr<V8VarConverter> converter_;
+  std::unique_ptr<V8VarConverter> converter_;
 };
 
 bool IsValidIdentifer(PP_Var identifier, PP_Var* exception) {
@@ -253,7 +253,7 @@
     return PP_MakeUndefined();
   }
 
-  scoped_ptr<v8::Local<v8::Value>[] > converted_args(
+  std::unique_ptr<v8::Local<v8::Value>[]> converted_args(
       new v8::Local<v8::Value>[argc]);
   for (uint32_t i = 0; i < argc; ++i) {
     converted_args[i] = try_catch.ToV8(argv[i]);
diff --git a/content/renderer/pepper/ppb_video_decoder_impl.h b/content/renderer/pepper/ppb_video_decoder_impl.h
index ad64e3704..c0597a2 100644
--- a/content/renderer/pepper/ppb_video_decoder_impl.h
+++ b/content/renderer/pepper/ppb_video_decoder_impl.h
@@ -70,7 +70,7 @@
 
   // This is NULL before initialization, and after destruction.
   // Holds a GpuVideoDecodeAcceleratorHost.
-  scoped_ptr<media::VideoDecodeAccelerator> decoder_;
+  std::unique_ptr<media::VideoDecodeAccelerator> decoder_;
 
   // The interface to use when making calls on the plugin. For the most part,
   // methods should not use this directly but should call GetPPP() instead.
diff --git a/content/renderer/pepper/renderer_ppapi_host_impl.cc b/content/renderer/pepper/renderer_ppapi_host_impl.cc
index ff8e819..e694406 100644
--- a/content/renderer/pepper/renderer_ppapi_host_impl.cc
+++ b/content/renderer/pepper/renderer_ppapi_host_impl.cc
@@ -48,7 +48,7 @@
       is_external_plugin_host_(false) {
   // Hook the PpapiHost up to the dispatcher for out-of-process communication.
   ppapi_host_.reset(new ppapi::host::PpapiHost(dispatcher, permissions));
-  ppapi_host_->AddHostFactoryFilter(scoped_ptr<ppapi::host::HostFactory>(
+  ppapi_host_->AddHostFactoryFilter(std::unique_ptr<ppapi::host::HostFactory>(
       new ContentRendererPepperHostFactory(this)));
   dispatcher->AddFilter(ppapi_host_.get());
   is_running_in_process_ = false;
@@ -63,7 +63,7 @@
   in_process_router_.reset(new PepperInProcessRouter(this));
   ppapi_host_.reset(new ppapi::host::PpapiHost(
       in_process_router_->GetRendererToPluginSender(), permissions));
-  ppapi_host_->AddHostFactoryFilter(scoped_ptr<ppapi::host::HostFactory>(
+  ppapi_host_->AddHostFactoryFilter(std::unique_ptr<ppapi::host::HostFactory>(
       new ContentRendererPepperHostFactory(this)));
   is_running_in_process_ = true;
 }
@@ -85,7 +85,7 @@
       new RendererPpapiHostImpl(module, dispatcher, permissions);
 
   // Takes ownership of pointer.
-  module->SetRendererPpapiHost(scoped_ptr<RendererPpapiHostImpl>(result));
+  module->SetRendererPpapiHost(std::unique_ptr<RendererPpapiHostImpl>(result));
 
   return result;
 }
@@ -99,7 +99,7 @@
       new RendererPpapiHostImpl(module, permissions);
 
   // Takes ownership of pointer.
-  module->SetRendererPpapiHost(scoped_ptr<RendererPpapiHostImpl>(result));
+  module->SetRendererPpapiHost(std::unique_ptr<RendererPpapiHostImpl>(result));
 
   return result;
 }
@@ -117,10 +117,10 @@
   return instance->module()->renderer_ppapi_host();
 }
 
-scoped_ptr<ppapi::thunk::ResourceCreationAPI>
+std::unique_ptr<ppapi::thunk::ResourceCreationAPI>
 RendererPpapiHostImpl::CreateInProcessResourceCreationAPI(
     PepperPluginInstanceImpl* instance) {
-  return scoped_ptr<ppapi::thunk::ResourceCreationAPI>(
+  return std::unique_ptr<ppapi::thunk::ResourceCreationAPI>(
       new PepperInProcessResourceCreation(this, instance));
 }
 
diff --git a/content/renderer/pepper/renderer_ppapi_host_impl.h b/content/renderer/pepper/renderer_ppapi_host_impl.h
index f73100b..8cb6a5d 100644
--- a/content/renderer/pepper/renderer_ppapi_host_impl.h
+++ b/content/renderer/pepper/renderer_ppapi_host_impl.h
@@ -5,8 +5,9 @@
 #ifndef CONTENT_RENDERER_PEPPER_RENDERER_PPAPI_HOST_IMPL_H_
 #define CONTENT_RENDERER_PEPPER_RENDERER_PPAPI_HOST_IMPL_H_
 
+#include <memory>
+
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "content/public/renderer/renderer_ppapi_host.h"
 #include "content/renderer/pepper/content_renderer_pepper_host_factory.h"
 #include "ppapi/host/ppapi_host.h"
@@ -68,8 +69,8 @@
   // host impl should outlive the returned pointer. Since the resource
   // creation object is associated with the instance, this will generally
   // happen automatically.
-  scoped_ptr<ppapi::thunk::ResourceCreationAPI>
-      CreateInProcessResourceCreationAPI(PepperPluginInstanceImpl* instance);
+  std::unique_ptr<ppapi::thunk::ResourceCreationAPI>
+  CreateInProcessResourceCreationAPI(PepperPluginInstanceImpl* instance);
 
   PepperPluginInstanceImpl* GetPluginInstanceImpl(PP_Instance instance) const;
 
@@ -124,10 +125,10 @@
   // Will be null when running in-process. Non-owning pointer.
   ppapi::proxy::HostDispatcher* dispatcher_;
 
-  scoped_ptr<ppapi::host::PpapiHost> ppapi_host_;
+  std::unique_ptr<ppapi::host::PpapiHost> ppapi_host_;
 
   // Null when running out-of-process.
-  scoped_ptr<PepperInProcessRouter> in_process_router_;
+  std::unique_ptr<PepperInProcessRouter> in_process_router_;
 
   // Whether the plugin is running in process.
   bool is_running_in_process_;
diff --git a/content/renderer/pepper/resource_converter.cc b/content/renderer/pepper/resource_converter.cc
index 741e6c62..45687c3 100644
--- a/content/renderer/pepper/resource_converter.cc
+++ b/content/renderer/pepper/resource_converter.cc
@@ -91,8 +91,8 @@
     RendererPpapiHost* host,
     const blink::WebDOMFileSystem& dom_file_system,
     int* pending_renderer_id,
-    scoped_ptr<IPC::Message>* create_message,
-    scoped_ptr<IPC::Message>* browser_host_create_message) {
+    std::unique_ptr<IPC::Message>* create_message,
+    std::unique_ptr<IPC::Message>* browser_host_create_message) {
   DCHECK(!dom_file_system.isNull());
 
   PP_FileSystemType file_system_type =
@@ -108,7 +108,7 @@
   }
 
   *pending_renderer_id = host->GetPpapiHost()->AddPendingResourceHost(
-      scoped_ptr<ppapi::host::ResourceHost>(new PepperFileSystemHost(
+      std::unique_ptr<ppapi::host::ResourceHost>(new PepperFileSystemHost(
           host, instance, 0, root_url, file_system_type)));
   if (*pending_renderer_id == 0)
     return false;
@@ -163,7 +163,7 @@
     RendererPpapiHost* host,
     const blink::WebDOMMediaStreamTrack& dom_media_stream_track,
     int* pending_renderer_id,
-    scoped_ptr<IPC::Message>* create_message) {
+    std::unique_ptr<IPC::Message>* create_message) {
   DCHECK(!dom_media_stream_track.isNull());
   *pending_renderer_id = 0;
 #if defined(ENABLE_WEBRTC)
@@ -172,7 +172,7 @@
 
   if (track.source().getType() == blink::WebMediaStreamSource::TypeVideo) {
     *pending_renderer_id = host->GetPpapiHost()->AddPendingResourceHost(
-        scoped_ptr<ppapi::host::ResourceHost>(
+        std::unique_ptr<ppapi::host::ResourceHost>(
             new PepperMediaStreamVideoTrackHost(host, instance, 0, track)));
     if (*pending_renderer_id == 0)
       return false;
@@ -183,7 +183,7 @@
   } else if (track.source().getType() ==
              blink::WebMediaStreamSource::TypeAudio) {
     *pending_renderer_id = host->GetPpapiHost()->AddPendingResourceHost(
-        scoped_ptr<ppapi::host::ResourceHost>(
+        std::unique_ptr<ppapi::host::ResourceHost>(
             new PepperMediaStreamAudioTrackHost(host, instance, 0, track)));
     if (*pending_renderer_id == 0)
       return false;
@@ -223,8 +223,8 @@
       blink::WebDOMFileSystem::fromV8Value(val);
   if (!dom_file_system.isNull()) {
     int pending_renderer_id;
-    scoped_ptr<IPC::Message> create_message;
-    scoped_ptr<IPC::Message> browser_host_create_message;
+    std::unique_ptr<IPC::Message> create_message;
+    std::unique_ptr<IPC::Message> browser_host_create_message;
     if (!DOMFileSystemToResource(instance_,
                                  host,
                                  dom_file_system,
@@ -247,7 +247,7 @@
       blink::WebDOMMediaStreamTrack::fromV8Value(val);
   if (!dom_media_stream_track.isNull()) {
     int pending_renderer_id;
-    scoped_ptr<IPC::Message> create_message;
+    std::unique_ptr<IPC::Message> create_message;
     if (!DOMMediaStreamTrackToResource(instance_,
                                        host,
                                        dom_media_stream_track,
diff --git a/content/renderer/pepper/url_response_info_util.cc b/content/renderer/pepper/url_response_info_util.cc
index 12d05e5..490e46c7b 100644
--- a/content/renderer/pepper/url_response_info_util.cc
+++ b/content/renderer/pepper/url_response_info_util.cc
@@ -98,7 +98,7 @@
         new PepperFileRefRendererHost(host_impl, pp_instance, 0, external_path);
     int renderer_pending_host_id =
         host_impl->GetPpapiHost()->AddPendingResourceHost(
-            scoped_ptr<ppapi::host::ResourceHost>(renderer_host));
+            std::unique_ptr<ppapi::host::ResourceHost>(renderer_host));
 
     std::vector<IPC::Message> create_msgs;
     create_msgs.push_back(PpapiHostMsg_FileRef_CreateForRawFS(external_path));
diff --git a/content/renderer/pepper/v8_var_converter.cc b/content/renderer/pepper/v8_var_converter.cc
index eff2cab..e7f4b28d 100644
--- a/content/renderer/pepper/v8_var_converter.cc
+++ b/content/renderer/pepper/v8_var_converter.cc
@@ -8,6 +8,7 @@
 #include <stdint.h>
 
 #include <map>
+#include <memory>
 #include <stack>
 #include <string>
 
@@ -15,7 +16,6 @@
 #include "base/containers/hash_tables.h"
 #include "base/location.h"
 #include "base/logging.h"
-#include "base/memory/scoped_ptr.h"
 #include "content/public/renderer/renderer_ppapi_host.h"
 #include "content/renderer/pepper/host_array_buffer_var.h"
 #include "content/renderer/pepper/host_globals.h"
@@ -240,7 +240,7 @@
     // 3) If the object is an array, return an ArrayVar.
     // 4) If the object can be converted to a resource, return the ResourceVar.
     // 5) Otherwise return a DictionaryVar.
-    scoped_ptr<blink::WebArrayBuffer> web_array_buffer(
+    std::unique_ptr<blink::WebArrayBuffer> web_array_buffer(
         blink::WebArrayBufferConverter::createFromV8Value(val, isolate));
     if (web_array_buffer.get()) {
       scoped_refptr<HostArrayBufferVar> buffer_var(
@@ -290,8 +290,9 @@
   resource_converter_.reset(new ResourceConverterImpl(instance));
 }
 
-V8VarConverter::V8VarConverter(PP_Instance instance,
-                               scoped_ptr<ResourceConverter> resource_converter)
+V8VarConverter::V8VarConverter(
+    PP_Instance instance,
+    std::unique_ptr<ResourceConverter> resource_converter)
     : instance_(instance),
       object_vars_allowed_(kDisallowObjectVars),
       resource_converter_(resource_converter.release()) {}
diff --git a/content/renderer/pepper/v8_var_converter.h b/content/renderer/pepper/v8_var_converter.h
index 998939b0..835a8e4 100644
--- a/content/renderer/pepper/v8_var_converter.h
+++ b/content/renderer/pepper/v8_var_converter.h
@@ -5,10 +5,11 @@
 #ifndef CONTENT_RENDERER_PEPPER_V8_VAR_CONVERTER_H_
 #define CONTENT_RENDERER_PEPPER_V8_VAR_CONVERTER_H_
 
+#include <memory>
+
 #include "base/callback.h"
 #include "base/compiler_specific.h"
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "content/common/content_export.h"
 #include "ppapi/c/pp_instance.h"
 #include "ppapi/c/pp_var.h"
@@ -31,7 +32,7 @@
 
   // Constructor for testing.
   V8VarConverter(PP_Instance instance,
-                 scoped_ptr<ResourceConverter> resource_converter);
+                 std::unique_ptr<ResourceConverter> resource_converter);
   ~V8VarConverter();
 
   // Converts the given PP_Var to a v8::Value. True is returned upon success.
@@ -84,7 +85,7 @@
   AllowObjectVars object_vars_allowed_;
 
   // The converter to use for converting V8 vars to resources.
-  scoped_ptr<ResourceConverter> resource_converter_;
+  std::unique_ptr<ResourceConverter> resource_converter_;
 
   DISALLOW_COPY_AND_ASSIGN(V8VarConverter);
 };
diff --git a/content/renderer/pepper/v8_var_converter_unittest.cc b/content/renderer/pepper/v8_var_converter_unittest.cc
index 283aad6..857a1d69 100644
--- a/content/renderer/pepper/v8_var_converter_unittest.cc
+++ b/content/renderer/pepper/v8_var_converter_unittest.cc
@@ -8,10 +8,10 @@
 #include <stdint.h>
 
 #include <cmath>
+#include <memory>
 
 #include "base/logging.h"
 #include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/message_loop/message_loop.h"
 #include "base/run_loop.h"
 #include "base/synchronization/waitable_event.h"
@@ -171,7 +171,7 @@
       : isolate_(v8::Isolate::GetCurrent()) {
     PP_Instance dummy = 1234;
     converter_.reset(new V8VarConverter(
-        dummy, scoped_ptr<ResourceConverter>(new MockResourceConverter)));
+        dummy, std::unique_ptr<ResourceConverter>(new MockResourceConverter)));
   }
   ~V8VarConverterTest() override {}
 
@@ -233,7 +233,7 @@
   // Context for the JavaScript in the test.
   v8::Persistent<v8::Context> context_;
 
-  scoped_ptr<V8VarConverter> converter_;
+  std::unique_ptr<V8VarConverter> converter_;
 
  private:
   base::MessageLoop message_loop_;  // Required to receive callbacks.
diff --git a/content/renderer/pepper/video_decoder_shim.cc b/content/renderer/pepper/video_decoder_shim.cc
index 25a6fc1..2024207 100644
--- a/content/renderer/pepper/video_decoder_shim.cc
+++ b/content/renderer/pepper/video_decoder_shim.cc
@@ -656,7 +656,7 @@
 
   // WeakPtr is bound to main_message_loop_. Use only in shim callbacks.
   base::WeakPtr<VideoDecoderShim> shim_;
-  scoped_ptr<media::VideoDecoder> decoder_;
+  std::unique_ptr<media::VideoDecoder> decoder_;
   bool initialized_ = false;
   scoped_refptr<base::SingleThreadTaskRunner> main_task_runner_;
   // Queue of decodes waiting for the decoder.
@@ -695,7 +695,7 @@
 
 #if !defined(MEDIA_DISABLE_FFMPEG) && !defined(DISABLE_FFMPEG_VIDEO_DECODERS)
   {
-    scoped_ptr<media::FFmpegVideoDecoder> ffmpeg_video_decoder(
+    std::unique_ptr<media::FFmpegVideoDecoder> ffmpeg_video_decoder(
         new media::FFmpegVideoDecoder());
     ffmpeg_video_decoder->set_decode_nalus(true);
     decoder_ = std::move(ffmpeg_video_decoder);
@@ -730,7 +730,8 @@
   // Abort all pending decodes.
   while (!pending_decodes_.empty()) {
     const PendingDecode& decode = pending_decodes_.front();
-    scoped_ptr<PendingFrame> pending_frame(new PendingFrame(decode.decode_id));
+    std::unique_ptr<PendingFrame> pending_frame(
+        new PendingFrame(decode.decode_id));
     main_task_runner_->PostTask(
         FROM_HERE, base::Bind(&VideoDecoderShim::OnDecodeComplete, shim_, PP_OK,
                               decode.decode_id));
@@ -809,7 +810,7 @@
   // call is pending.
   DCHECK(awaiting_decoder_);
 
-  scoped_ptr<PendingFrame> pending_frame;
+  std::unique_ptr<PendingFrame> pending_frame;
   if (!frame->metadata()->IsTrue(media::VideoFrameMetadata::END_OF_STREAM))
     pending_frame.reset(new PendingFrame(decode_id_, frame));
   else
@@ -1011,7 +1012,7 @@
     NotifyCompletedDecodes();
 }
 
-void VideoDecoderShim::OnOutputComplete(scoped_ptr<PendingFrame> frame) {
+void VideoDecoderShim::OnOutputComplete(std::unique_ptr<PendingFrame> frame) {
   DCHECK(RenderThreadImpl::current());
   DCHECK(host_);
 
@@ -1052,7 +1053,7 @@
   DCHECK(RenderThreadImpl::current());
   DCHECK(host_);
   while (!pending_frames_.empty() && !available_textures_.empty()) {
-    const scoped_ptr<PendingFrame>& frame = pending_frames_.front();
+    const std::unique_ptr<PendingFrame>& frame = pending_frames_.front();
 
     TextureIdSet::iterator it = available_textures_.begin();
     uint32_t texture_id = *it;
diff --git a/content/renderer/pepper/video_decoder_shim.h b/content/renderer/pepper/video_decoder_shim.h
index 0eac81e..db4a830c 100644
--- a/content/renderer/pepper/video_decoder_shim.h
+++ b/content/renderer/pepper/video_decoder_shim.h
@@ -7,17 +7,16 @@
 
 #include <stdint.h>
 
+#include <memory>
 #include <queue>
 #include <vector>
 
 #include "base/containers/hash_tables.h"
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "gpu/command_buffer/common/mailbox.h"
 #include "media/base/video_decoder_config.h"
 #include "media/video/video_decode_accelerator.h"
-
 #include "ppapi/c/pp_codecs.h"
 
 namespace base {
@@ -76,7 +75,7 @@
 
   void OnInitializeFailed();
   void OnDecodeComplete(int32_t result, uint32_t decode_id);
-  void OnOutputComplete(scoped_ptr<PendingFrame> frame);
+  void OnOutputComplete(std::unique_ptr<PendingFrame> frame);
   void SendPictures();
   void OnResetComplete();
   void NotifyCompletedDecodes();
@@ -86,7 +85,7 @@
   // creating picture textures.
   void FlushCommandBuffer();
 
-  scoped_ptr<DecoderImpl> decoder_impl_;
+  std::unique_ptr<DecoderImpl> decoder_impl_;
   State state_;
 
   PepperVideoDecoderHost* host_;
@@ -111,7 +110,7 @@
   CompletedDecodeQueue completed_decodes_;
 
   // Queue of decoded frames that await rgb->yuv conversion.
-  typedef std::queue<scoped_ptr<PendingFrame>> PendingFrameQueue;
+  typedef std::queue<std::unique_ptr<PendingFrame>> PendingFrameQueue;
   PendingFrameQueue pending_frames_;
 
   // The optimal number of textures to allocate for decoder_impl_.
@@ -119,7 +118,7 @@
 
   uint32_t num_pending_decodes_;
 
-  scoped_ptr<YUVConverter> yuv_converter_;
+  std::unique_ptr<YUVConverter> yuv_converter_;
 
   base::WeakPtrFactory<VideoDecoderShim> weak_ptr_factory_;
 
diff --git a/content/renderer/pepper/video_encoder_shim.h b/content/renderer/pepper/video_encoder_shim.h
index 59b648a..e48700b1 100644
--- a/content/renderer/pepper/video_encoder_shim.h
+++ b/content/renderer/pepper/video_encoder_shim.h
@@ -8,10 +8,10 @@
 #include <stddef.h>
 #include <stdint.h>
 
+#include <memory>
 #include <vector>
 
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "media/video/video_encode_accelerator.h"
 
@@ -63,7 +63,7 @@
                               bool key_frame);
   void OnNotifyError(media::VideoEncodeAccelerator::Error error);
 
-  scoped_ptr<EncoderImpl> encoder_impl_;
+  std::unique_ptr<EncoderImpl> encoder_impl_;
 
   PepperVideoEncoderHost* host_;
 
diff --git a/content/renderer/presentation/presentation_dispatcher.cc b/content/renderer/presentation/presentation_dispatcher.cc
index 6536f86..a96d6ce 100644
--- a/content/renderer/presentation/presentation_dispatcher.cc
+++ b/content/renderer/presentation/presentation_dispatcher.cc
@@ -145,7 +145,7 @@
     return;
   }
 
-  message_request_queue_.push(make_scoped_ptr(
+  message_request_queue_.push(base::WrapUnique(
       CreateSendTextMessageRequest(presentationUrl, presentationId, message)));
   // Start processing request if only one in the queue.
   if (message_request_queue_.size() == 1)
@@ -164,7 +164,7 @@
     return;
   }
 
-  message_request_queue_.push(make_scoped_ptr(CreateSendBinaryMessageRequest(
+  message_request_queue_.push(base::WrapUnique(CreateSendBinaryMessageRequest(
       presentationUrl, presentationId,
       mojom::PresentationMessageType::ARRAY_BUFFER, data, length)));
   // Start processing request if only one in the queue.
@@ -184,7 +184,7 @@
     return;
   }
 
-  message_request_queue_.push(make_scoped_ptr(CreateSendBinaryMessageRequest(
+  message_request_queue_.push(base::WrapUnique(CreateSendBinaryMessageRequest(
       presentationUrl, presentationId, mojom::PresentationMessageType::BLOB,
       data, length)));
   // Start processing request if only one in the queue.
@@ -248,7 +248,7 @@
   auto status_it = availability_status_.find(availability_url);
   if (status_it == availability_status_.end()) {
     status = new AvailabilityStatus(availability_url);
-    availability_status_[availability_url] = make_scoped_ptr(status);
+    availability_status_[availability_url] = base::WrapUnique(status);
   } else {
     status = status_it->second.get();
   }
@@ -423,7 +423,7 @@
   for (size_t i = 0; i < messages.size(); ++i) {
     // Note: Passing batches of messages to the Blink layer would be more
     // efficient.
-    scoped_ptr<PresentationConnectionClient> session_client(
+    std::unique_ptr<PresentationConnectionClient> session_client(
         new PresentationConnectionClient(session_info->url, session_info->id));
     switch (messages[i]->type) {
       case mojom::PresentationMessageType::TEXT: {
diff --git a/content/renderer/presentation/presentation_dispatcher.h b/content/renderer/presentation/presentation_dispatcher.h
index 3688fa4e..149da97d 100644
--- a/content/renderer/presentation/presentation_dispatcher.h
+++ b/content/renderer/presentation/presentation_dispatcher.h
@@ -9,12 +9,12 @@
 #include <stdint.h>
 
 #include <map>
+#include <memory>
 #include <queue>
 
 #include "base/compiler_specific.h"
 #include "base/id_map.h"
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "content/common/content_export.h"
 #include "content/common/presentation/presentation_service.mojom.h"
 #include "content/public/renderer/render_frame_observer.h"
@@ -133,7 +133,7 @@
 
   // Message requests are queued here and only one message at a time is sent
   // over mojo channel.
-  using MessageRequestQueue = std::queue<scoped_ptr<SendMessageRequest>>;
+  using MessageRequestQueue = std::queue<std::unique_ptr<SendMessageRequest>>;
   MessageRequestQueue message_request_queue_;
 
   enum class ListeningState {
@@ -159,7 +159,8 @@
     AvailabilityObserversSet availability_observers;
   };
 
-  std::map<std::string, scoped_ptr<AvailabilityStatus>> availability_status_;
+  std::map<std::string, std::unique_ptr<AvailabilityStatus>>
+      availability_status_;
 
   // Updates the listening state of availability for |status| and notifies the
   // client.
diff --git a/content/renderer/raster_worker_pool.cc b/content/renderer/raster_worker_pool.cc
index 65c00140..7abe23c2 100644
--- a/content/renderer/raster_worker_pool.cc
+++ b/content/renderer/raster_worker_pool.cc
@@ -134,7 +134,7 @@
   foreground_categories.push_back(cc::TASK_CATEGORY_FOREGROUND);
 
   for (int i = 0; i < num_threads; i++) {
-    scoped_ptr<base::SimpleThread> thread(new RasterWorkerPoolThread(
+    std::unique_ptr<base::SimpleThread> thread(new RasterWorkerPoolThread(
         base::StringPrintf("CompositorTileWorker%u",
                            static_cast<unsigned>(threads_.size() + 1))
             .c_str(),
@@ -154,7 +154,7 @@
   thread_options.set_priority(base::ThreadPriority::BACKGROUND);
 #endif
 
-  scoped_ptr<base::SimpleThread> thread(new RasterWorkerPoolThread(
+  std::unique_ptr<base::SimpleThread> thread(new RasterWorkerPoolThread(
       "CompositorTileWorkerBackground", thread_options, this,
       background_categories, &has_ready_to_run_background_tasks_cv_));
   thread->Start();
diff --git a/content/renderer/raster_worker_pool.h b/content/renderer/raster_worker_pool.h
index b2a549e..7092f82b 100644
--- a/content/renderer/raster_worker_pool.h
+++ b/content/renderer/raster_worker_pool.h
@@ -116,7 +116,7 @@
   bool ShouldRunTaskForCategoryWithLockAcquired(cc::TaskCategory category);
 
   // The actual threads where work is done.
-  std::vector<scoped_ptr<base::SimpleThread>> threads_;
+  std::vector<std::unique_ptr<base::SimpleThread>> threads_;
 
   // Lock to exclusively access all the following members that are used to
   // implement the TaskRunner and TaskGraphRunner interfaces.
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
index af44d57..2628d87 100644
--- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc
@@ -19,6 +19,7 @@
 #include "base/i18n/char_iterator.h"
 #include "base/logging.h"
 #include "base/macros.h"
+#include "base/memory/ptr_util.h"
 #include "base/memory/shared_memory.h"
 #include "base/memory/weak_ptr.h"
 #include "base/metrics/field_trial.h"
@@ -506,7 +507,7 @@
 
 WebURLRequest CreateURLRequestForNavigation(
     const CommonNavigationParams& common_params,
-    scoped_ptr<StreamOverrideParameters> stream_override,
+    std::unique_ptr<StreamOverrideParameters> stream_override,
     bool is_view_source_mode_enabled) {
   WebURLRequest request(common_params.url);
   if (is_view_source_mode_enabled)
@@ -1483,7 +1484,7 @@
   TRACE_EVENT2("navigation", "RenderFrameImpl::OnNavigate", "id", routing_id_,
                "url", common_params.url.possibly_invalid_spec());
   NavigateInternal(common_params, start_params, request_params,
-                   scoped_ptr<StreamOverrideParameters>());
+                   std::unique_ptr<StreamOverrideParameters>());
 }
 
 void RenderFrameImpl::BindServiceRegistry(
@@ -1498,7 +1499,7 @@
 }
 
 void RenderFrameImpl::SetPendingNavigationParams(
-    scoped_ptr<NavigationParams> navigation_params) {
+    std::unique_ptr<NavigationParams> navigation_params) {
   pending_navigation_params_ = std::move(navigation_params);
 }
 
@@ -1818,7 +1819,7 @@
 
   // A bunch of tests expect to run code in the context of a user gesture, which
   // can grant additional privileges (e.g. the ability to create popups).
-  scoped_ptr<blink::WebScopedUserGesture> gesture(
+  std::unique_ptr<blink::WebScopedUserGesture> gesture(
       has_user_gesture ? new blink::WebScopedUserGesture : nullptr);
   v8::HandleScope handle_scope(blink::mainThreadIsolate());
   v8::Local<v8::Value> result =
@@ -1887,7 +1888,7 @@
       converter.SetDateAllowed(true);
       converter.SetRegExpAllowed(true);
       for (const auto& value : result) {
-        scoped_ptr<base::Value> result_value(
+        std::unique_ptr<base::Value> result_value(
             converter.FromV8Value(value, context));
         list.Append(result_value ? std::move(result_value)
                                  : base::Value::CreateNullValue());
@@ -1915,7 +1916,7 @@
       V8ValueConverterImpl converter;
       converter.SetDateAllowed(true);
       converter.SetRegExpAllowed(true);
-      scoped_ptr<base::Value> result_value(
+      std::unique_ptr<base::Value> result_value(
           converter.FromV8Value(result, context));
       list.Set(0, result_value ? std::move(result_value)
                                : base::Value::CreateNullValue());
@@ -2074,7 +2075,7 @@
     V8ValueConverterImpl converter;
     converter.SetDateAllowed(true);
     converter.SetRegExpAllowed(true);
-    scoped_ptr<base::Value> value(new base::StringValue(params.data));
+    std::unique_ptr<base::Value> value(new base::StringValue(params.data));
     v8::Local<v8::Value> result_value = converter.ToV8Value(value.get(),
                                                              context);
     serialized_script_value = WebSerializedScriptValue::serialize(result_value);
@@ -2240,7 +2241,7 @@
     blink::WebFrame* frame,
     const WebPluginInfo& info,
     const blink::WebPluginParams& params,
-    scoped_ptr<content::PluginInstanceThrottler> throttler) {
+    std::unique_ptr<content::PluginInstanceThrottler> throttler) {
   DCHECK_EQ(frame_, frame);
 #if defined(ENABLE_PLUGINS)
   if (info.type == WebPluginInfo::PLUGIN_TYPE_BROWSER_PLUGIN) {
@@ -2259,7 +2260,7 @@
     if (pepper_module.get()) {
       return new PepperWebPluginImpl(
           pepper_module.get(), params, this,
-          make_scoped_ptr(
+          base::WrapUnique(
               static_cast<PluginInstanceThrottlerImpl*>(throttler.release())));
     }
   }
@@ -2463,10 +2464,10 @@
 #endif  // defined(OS_ANDROID)
 
 #if defined(ENABLE_MOJO_RENDERER)
-  scoped_ptr<media::RendererFactory> media_renderer_factory(
+  std::unique_ptr<media::RendererFactory> media_renderer_factory(
       new media::MojoRendererFactory(GetMediaInterfaceProvider()));
 #else
-  scoped_ptr<media::RendererFactory> media_renderer_factory =
+  std::unique_ptr<media::RendererFactory> media_renderer_factory =
       GetContentClient()->renderer()->CreateMediaRendererFactory(
           this, render_thread->GetGpuFactories(), media_log);
 
@@ -3731,7 +3732,7 @@
   // PlzNavigate: there may also be a stream url associated with the request.
   WebString custom_user_agent;
   WebString requested_with;
-  scoped_ptr<StreamOverrideParameters> stream_override;
+  std::unique_ptr<StreamOverrideParameters> stream_override;
   if (request.getExtraData()) {
     RequestExtraData* old_extra_data =
         static_cast<RequestExtraData*>(request.getExtraData());
@@ -4614,7 +4615,7 @@
   CHECK(IsBrowserSideNavigationEnabled());
   // This will override the url requested by the WebURLLoader, as well as
   // provide it with the response to the request.
-  scoped_ptr<StreamOverrideParameters> stream_override(
+  std::unique_ptr<StreamOverrideParameters> stream_override(
       new StreamOverrideParameters());
   stream_override->stream_url = stream_url;
   stream_override->response = response;
@@ -4655,7 +4656,7 @@
   blink::WebURLError error =
       CreateWebURLError(common_params.url, has_stale_copy_in_cache, error_code);
   WebURLRequest failed_request = CreateURLRequestForNavigation(
-      common_params, scoped_ptr<StreamOverrideParameters>(),
+      common_params, std::unique_ptr<StreamOverrideParameters>(),
       frame_->isViewSourceModeEnabled());
   SendFailedProvisionalLoad(failed_request, error, frame_);
 
@@ -5216,7 +5217,7 @@
     const CommonNavigationParams& common_params,
     const StartNavigationParams& start_params,
     const RequestNavigationParams& request_params,
-    scoped_ptr<StreamOverrideParameters> stream_params) {
+    std::unique_ptr<StreamOverrideParameters> stream_params) {
   bool browser_side_navigation = IsBrowserSideNavigationEnabled();
 
   // Lower bound for browser initiated navigation start time.
@@ -5316,7 +5317,7 @@
     // which should be the case because history navigations are routed via the
     // browser.
     DCHECK_NE(0, request_params.nav_entry_id);
-    scoped_ptr<HistoryEntry> entry =
+    std::unique_ptr<HistoryEntry> entry =
         PageStateToHistoryEntry(request_params.page_state);
     if (entry) {
       if (!SiteIsolationPolicy::UseSubframeNavigationEntries()) {
@@ -5325,7 +5326,7 @@
         // process.
         DCHECK(!frame_->parent());
         DCHECK(!browser_side_navigation);
-        scoped_ptr<NavigationParams> navigation_params(
+        std::unique_ptr<NavigationParams> navigation_params(
             new NavigationParams(*pending_navigation_params_.get()));
         has_history_navigation_in_frame =
             render_view_->history_controller()->GoToEntry(
@@ -5516,7 +5517,7 @@
   DCHECK(!web_user_media_client_);
   web_user_media_client_ = new UserMediaClientImpl(
       this, RenderThreadImpl::current()->GetPeerConnectionDependencyFactory(),
-      make_scoped_ptr(new MediaStreamDispatcher(this)));
+      base::WrapUnique(new MediaStreamDispatcher(this)));
 #endif
 }
 
@@ -5548,17 +5549,17 @@
 #endif  // defined(ENABLE_WEBRTC)
 }
 
-scoped_ptr<MediaStreamRendererFactory>
+std::unique_ptr<MediaStreamRendererFactory>
 RenderFrameImpl::CreateRendererFactory() {
-  scoped_ptr<MediaStreamRendererFactory> factory =
+  std::unique_ptr<MediaStreamRendererFactory> factory =
       GetContentClient()->renderer()->CreateMediaStreamRendererFactory();
   if (factory.get())
     return factory;
 #if defined(ENABLE_WEBRTC)
-  return scoped_ptr<MediaStreamRendererFactory>(
+  return std::unique_ptr<MediaStreamRendererFactory>(
       new MediaStreamRendererFactoryImpl());
 #else
-  return scoped_ptr<MediaStreamRendererFactory>(
+  return std::unique_ptr<MediaStreamRendererFactory>(
       static_cast<MediaStreamRendererFactory*>(NULL));
 #endif
 }
diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h
index 18d6a512..fbf3596 100644
--- a/content/renderer/render_frame_impl.h
+++ b/content/renderer/render_frame_impl.h
@@ -8,6 +8,7 @@
 #include <stddef.h>
 #include <stdint.h>
 
+#include <memory>
 #include <string>
 #include <vector>
 
@@ -16,7 +17,6 @@
 #include "base/id_map.h"
 #include "base/macros.h"
 #include "base/memory/linked_ptr.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "base/observer_list.h"
 #include "base/process/process_handle.h"
@@ -387,7 +387,7 @@
       blink::WebFrame* frame,
       const WebPluginInfo& info,
       const blink::WebPluginParams& params,
-      scoped_ptr<PluginInstanceThrottler> throttler) override;
+      std::unique_ptr<PluginInstanceThrottler> throttler) override;
   void LoadURLExternally(const blink::WebURLRequest& request,
                          blink::WebNavigationPolicy policy) override;
   void ExecuteJavaScript(const base::string16& javascript) override;
@@ -642,7 +642,7 @@
   // TODO(creis): Remove when the only caller, the HistoryController, is no
   // more.
   void SetPendingNavigationParams(
-      scoped_ptr<NavigationParams> navigation_params);
+      std::unique_ptr<NavigationParams> navigation_params);
 
   media::MediaPermission* GetMediaPermission();
 
@@ -830,10 +830,11 @@
   // |request_params| received by the browser. |stream_params| should be non
   // null and created from the information provided by the browser.
   // |start_params| is not used.
-  void NavigateInternal(const CommonNavigationParams& common_params,
-                        const StartNavigationParams& start_params,
-                        const RequestNavigationParams& request_params,
-                        scoped_ptr<StreamOverrideParameters> stream_params);
+  void NavigateInternal(
+      const CommonNavigationParams& common_params,
+      const StartNavigationParams& start_params,
+      const RequestNavigationParams& request_params,
+      std::unique_ptr<StreamOverrideParameters> stream_params);
 
   // Update current main frame's encoding and send it to browser window.
   // Since we want to let users see the right encoding info from menu
@@ -887,7 +888,7 @@
       const blink::WebSecurityOrigin& security_origin);
 
   // Creates a factory object used for creating audio and video renderers.
-  scoped_ptr<MediaStreamRendererFactory> CreateRendererFactory();
+  std::unique_ptr<MediaStreamRendererFactory> CreateRendererFactory();
 
   // Does preparation for the navigation to |url|.
   void PrepareRenderViewForNavigation(
@@ -1042,7 +1043,7 @@
   // Temporarily holds state pertaining to a navigation that has been initiated
   // until the NavigationState corresponding to the new navigation is created in
   // didCreateDataSource().
-  scoped_ptr<NavigationParams> pending_navigation_params_;
+  std::unique_ptr<NavigationParams> pending_navigation_params_;
 
   // Stores the current history item for this frame, so that updates to it can
   // be reported to the browser process via SendUpdateState.
@@ -1107,14 +1108,15 @@
   UserMediaClientImpl* web_user_media_client_;
 
   // EncryptedMediaClient attached to this frame; lazily initialized.
-  scoped_ptr<media::WebEncryptedMediaClientImpl> web_encrypted_media_client_;
+  std::unique_ptr<media::WebEncryptedMediaClientImpl>
+      web_encrypted_media_client_;
 
   // The media permission dispatcher attached to this frame.
-  scoped_ptr<MediaPermissionDispatcher> media_permission_dispatcher_;
+  std::unique_ptr<MediaPermissionDispatcher> media_permission_dispatcher_;
 
 #if defined(ENABLE_MOJO_MEDIA)
   // The media interface provider attached to this frame, lazily initialized.
-  scoped_ptr<MediaInterfaceProvider> media_interface_provider_;
+  std::unique_ptr<MediaInterfaceProvider> media_interface_provider_;
 #endif
 
   // MidiClient attached to this frame; lazily initialized.
@@ -1139,8 +1141,8 @@
 #endif
 
   // The CDM and decoder factory attached to this frame, lazily initialized.
-  scoped_ptr<media::CdmFactory> cdm_factory_;
-  scoped_ptr<media::DecoderFactory> decoder_factory_;
+  std::unique_ptr<media::CdmFactory> cdm_factory_;
+  std::unique_ptr<media::DecoderFactory> decoder_factory_;
 
   // Media resource cache, lazily initialized.
   linked_ptr<media::UrlIndex> url_index_;
@@ -1188,13 +1190,13 @@
   // AccessibilityModeOff.
   RendererAccessibility* renderer_accessibility_;
 
-  scoped_ptr<PermissionDispatcher> permission_client_;
+  std::unique_ptr<PermissionDispatcher> permission_client_;
 
-  scoped_ptr<blink::WebAppBannerClient> app_banner_client_;
+  std::unique_ptr<blink::WebAppBannerClient> app_banner_client_;
 
-  scoped_ptr<blink::WebBluetooth> bluetooth_;
+  std::unique_ptr<blink::WebBluetooth> bluetooth_;
 
-  scoped_ptr<blink::WebUSBClient> usb_client_;
+  std::unique_ptr<blink::WebUSBClient> usb_client_;
 
   // Manages play, pause notifications for WebMediaPlayer implementations; its
   // lifetime is tied to the RenderFrame via the RenderFrameObserver interface.
@@ -1213,12 +1215,12 @@
 
 #if defined(ENABLE_WEBVR)
   // The VR dispatcher attached to the frame, lazily initialized.
-  scoped_ptr<VRDispatcher> vr_dispatcher_;
+  std::unique_ptr<VRDispatcher> vr_dispatcher_;
 #endif
 
 #if defined(OS_MACOSX) || defined(OS_ANDROID)
   // The external popup for the currently showing select popup.
-  scoped_ptr<ExternalPopupMenu> external_popup_menu_;
+  std::unique_ptr<ExternalPopupMenu> external_popup_menu_;
 #endif
 
   FrameBlameContext* blame_context_;  // Not owned.
diff --git a/content/renderer/render_frame_proxy.cc b/content/renderer/render_frame_proxy.cc
index 37b7059..d9019937 100644
--- a/content/renderer/render_frame_proxy.cc
+++ b/content/renderer/render_frame_proxy.cc
@@ -52,7 +52,7 @@
     blink::WebTreeScopeType scope) {
   CHECK_NE(routing_id, MSG_ROUTING_NONE);
 
-  scoped_ptr<RenderFrameProxy> proxy(
+  std::unique_ptr<RenderFrameProxy> proxy(
       new RenderFrameProxy(routing_id, frame_to_replace->GetRoutingID()));
 
   // When a RenderFrame is replaced by a RenderProxy, the WebRemoteFrame should
@@ -94,7 +94,7 @@
   blink::WebFrame* opener =
       RenderFrameImpl::ResolveOpener(opener_routing_id, nullptr);
 
-  scoped_ptr<RenderFrameProxy> proxy(
+  std::unique_ptr<RenderFrameProxy> proxy(
       new RenderFrameProxy(routing_id, MSG_ROUTING_NONE));
   RenderViewImpl* render_view = nullptr;
   RenderWidget* render_widget = nullptr;
diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc
index 30047189..14a53601 100644
--- a/content/renderer/render_thread_impl.cc
+++ b/content/renderer/render_thread_impl.cc
@@ -18,6 +18,7 @@
 #include "base/logging.h"
 #include "base/macros.h"
 #include "base/memory/discardable_memory_allocator.h"
+#include "base/memory/ptr_util.h"
 #include "base/memory/shared_memory.h"
 #include "base/metrics/field_trial.h"
 #include "base/metrics/histogram.h"
@@ -251,8 +252,8 @@
 
  private:
   // WebThreadImplForWorkerScheduler:
-  scoped_ptr<scheduler::WorkerScheduler> CreateWorkerScheduler() override {
-    return make_scoped_ptr(new scheduler::CompositorWorkerScheduler(thread()));
+  std::unique_ptr<scheduler::WorkerScheduler> CreateWorkerScheduler() override {
+    return base::WrapUnique(new scheduler::CompositorWorkerScheduler(thread()));
   }
 
   DISALLOW_COPY_AND_ASSIGN(WebThreadForCompositor);
@@ -326,7 +327,7 @@
   histogram->Add(sample);
 }
 
-scoped_ptr<cc::SharedBitmap> AllocateSharedBitmapFunction(
+std::unique_ptr<cc::SharedBitmap> AllocateSharedBitmapFunction(
     const gfx::Size& size) {
   return ChildThreadImpl::current()->shared_bitmap_manager()->
       AllocateSharedBitmap(size);
@@ -570,7 +571,7 @@
 // static
 RenderThreadImpl* RenderThreadImpl::Create(
     const InProcessChildThreadParams& params) {
-  scoped_ptr<scheduler::RendererScheduler> renderer_scheduler =
+  std::unique_ptr<scheduler::RendererScheduler> renderer_scheduler =
       scheduler::RendererScheduler::Create();
   scoped_refptr<base::SingleThreadTaskRunner> test_task_counter;
   return new RenderThreadImpl(
@@ -579,8 +580,8 @@
 
 // static
 RenderThreadImpl* RenderThreadImpl::Create(
-    scoped_ptr<base::MessageLoop> main_message_loop,
-    scoped_ptr<scheduler::RendererScheduler> renderer_scheduler) {
+    std::unique_ptr<base::MessageLoop> main_message_loop,
+    std::unique_ptr<scheduler::RendererScheduler> renderer_scheduler) {
   return new RenderThreadImpl(std::move(main_message_loop),
                               std::move(renderer_scheduler));
 }
@@ -591,7 +592,7 @@
 
 RenderThreadImpl::RenderThreadImpl(
     const InProcessChildThreadParams& params,
-    scoped_ptr<scheduler::RendererScheduler> scheduler,
+    std::unique_ptr<scheduler::RendererScheduler> scheduler,
     scoped_refptr<base::SingleThreadTaskRunner>& resource_task_queue)
     : ChildThreadImpl(Options::Builder()
                           .InBrowserProcess(params)
@@ -605,11 +606,10 @@
 // When we run plugins in process, we actually run them on the render thread,
 // which means that we need to make the render thread pump UI events.
 RenderThreadImpl::RenderThreadImpl(
-    scoped_ptr<base::MessageLoop> main_message_loop,
-    scoped_ptr<scheduler::RendererScheduler> scheduler)
-    : ChildThreadImpl(Options::Builder()
-                          .UseMojoChannel(ShouldUseMojoChannel())
-                          .Build()),
+    std::unique_ptr<base::MessageLoop> main_message_loop,
+    std::unique_ptr<scheduler::RendererScheduler> scheduler)
+    : ChildThreadImpl(
+          Options::Builder().UseMojoChannel(ShouldUseMojoChannel()).Build()),
       renderer_scheduler_(std::move(scheduler)),
       main_message_loop_(std::move(main_message_loop)),
       raster_worker_pool_(new RasterWorkerPool()) {
@@ -1339,8 +1339,8 @@
   Send(new ViewHostMsg_UserMetricsRecordAction(action));
 }
 
-scoped_ptr<base::SharedMemory>
-    RenderThreadImpl::HostAllocateSharedMemoryBuffer(size_t size) {
+std::unique_ptr<base::SharedMemory>
+RenderThreadImpl::HostAllocateSharedMemoryBuffer(size_t size) {
   return ChildThreadImpl::AllocateSharedMemory(size, thread_safe_sender());
 }
 
@@ -1489,7 +1489,7 @@
   return nullptr;
 }
 
-scoped_ptr<WebGraphicsContext3DCommandBufferImpl>
+std::unique_ptr<WebGraphicsContext3DCommandBufferImpl>
 RenderThreadImpl::CreateOffscreenContext3d() {
   // This is used to create a few different offscreen contexts:
   // - The shared main thread context (offscreen) used by blink for canvas
@@ -1508,7 +1508,7 @@
   bool automatic_flushes = false;
   scoped_refptr<gpu::GpuChannelHost> gpu_channel_host(EstablishGpuChannelSync(
       CAUSE_FOR_GPU_LAUNCH_WEBGRAPHICSCONTEXT3DCOMMANDBUFFERIMPL_INITIALIZE));
-  return make_scoped_ptr(
+  return base::WrapUnique(
       WebGraphicsContext3DCommandBufferImpl::CreateOffscreenContext(
           gpu_channel_host.get(), attributes, gfx::PreferIntegratedGpu,
           share_resources, automatic_flushes,
@@ -1676,7 +1676,7 @@
   return SharedMainThreadContextProvider().get();
 }
 
-scoped_ptr<cc::BeginFrameSource>
+std::unique_ptr<cc::BeginFrameSource>
 RenderThreadImpl::CreateExternalBeginFrameSource(int routing_id) {
 #if defined(OS_ANDROID)
   if (SynchronousCompositorFactory* factory =
@@ -1684,11 +1684,11 @@
     DCHECK(!sync_compositor_message_filter_);
     return factory->CreateExternalBeginFrameSource(routing_id);
   } else if (sync_compositor_message_filter_) {
-    return make_scoped_ptr(new SynchronousCompositorExternalBeginFrameSource(
+    return base::WrapUnique(new SynchronousCompositorExternalBeginFrameSource(
         routing_id, sync_compositor_message_filter_.get()));
   }
 #endif
-  return make_scoped_ptr(new CompositorExternalBeginFrameSource(
+  return base::WrapUnique(new CompositorExternalBeginFrameSource(
       compositor_message_filter_.get(), sync_message_filter(), routing_id));
 }
 
@@ -1718,7 +1718,7 @@
   return io_thread_task_runner_;
 }
 
-scoped_ptr<base::SharedMemory> RenderThreadImpl::AllocateSharedMemory(
+std::unique_ptr<base::SharedMemory> RenderThreadImpl::AllocateSharedMemory(
     size_t size) {
   return HostAllocateSharedMemoryBuffer(size);
 }
@@ -1870,7 +1870,7 @@
     media_stream_center_ = GetContentClient()->renderer()
         ->OverrideCreateWebMediaStreamCenter(client);
     if (!media_stream_center_) {
-      scoped_ptr<MediaStreamCenter> media_stream_center(
+      std::unique_ptr<MediaStreamCenter> media_stream_center(
           new MediaStreamCenter(client, GetPeerConnectionDependencyFactory()));
       media_stream_center_ = media_stream_center.release();
     }
diff --git a/content/renderer/render_thread_impl.h b/content/renderer/render_thread_impl.h
index 3d1b5bf..28379f06 100644
--- a/content/renderer/render_thread_impl.h
+++ b/content/renderer/render_thread_impl.h
@@ -154,8 +154,8 @@
  public:
   static RenderThreadImpl* Create(const InProcessChildThreadParams& params);
   static RenderThreadImpl* Create(
-      scoped_ptr<base::MessageLoop> main_message_loop,
-      scoped_ptr<scheduler::RendererScheduler> renderer_scheduler);
+      std::unique_ptr<base::MessageLoop> main_message_loop,
+      std::unique_ptr<scheduler::RendererScheduler> renderer_scheduler);
   static RenderThreadImpl* current();
 
   ~RenderThreadImpl() override;
@@ -184,7 +184,7 @@
   void RemoveObserver(RenderProcessObserver* observer) override;
   void SetResourceDispatcherDelegate(
       ResourceDispatcherDelegate* delegate) override;
-  scoped_ptr<base::SharedMemory> HostAllocateSharedMemoryBuffer(
+  std::unique_ptr<base::SharedMemory> HostAllocateSharedMemoryBuffer(
       size_t buffer_size) override;
   cc::SharedBitmapManager* GetSharedBitmapManager() override;
   void RegisterExtension(v8::Extension* extension) override;
@@ -217,7 +217,7 @@
   gpu::GpuMemoryBufferManager* GetGpuMemoryBufferManager() override;
   scheduler::RendererScheduler* GetRendererScheduler() override;
   cc::ContextProvider* GetSharedMainThreadContextProvider() override;
-  scoped_ptr<cc::BeginFrameSource> CreateExternalBeginFrameSource(
+  std::unique_ptr<cc::BeginFrameSource> CreateExternalBeginFrameSource(
       int routing_id) override;
   cc::ImageSerializationProcessor* GetImageSerializationProcessor() override;
   cc::TaskGraphRunner* GetTaskGraphRunner() override;
@@ -462,10 +462,10 @@
  protected:
   RenderThreadImpl(
       const InProcessChildThreadParams& params,
-      scoped_ptr<scheduler::RendererScheduler> scheduler,
+      std::unique_ptr<scheduler::RendererScheduler> scheduler,
       scoped_refptr<base::SingleThreadTaskRunner>& resource_task_queue);
-  RenderThreadImpl(scoped_ptr<base::MessageLoop> main_message_loop,
-                   scoped_ptr<scheduler::RendererScheduler> scheduler);
+  RenderThreadImpl(std::unique_ptr<base::MessageLoop> main_message_loop,
+                   std::unique_ptr<scheduler::RendererScheduler> scheduler);
 
  private:
   // ChildThread
@@ -477,7 +477,8 @@
   // GpuChannelHostFactory implementation:
   bool IsMainThread() override;
   scoped_refptr<base::SingleThreadTaskRunner> GetIOThreadTaskRunner() override;
-  scoped_ptr<base::SharedMemory> AllocateSharedMemory(size_t size) override;
+  std::unique_ptr<base::SharedMemory> AllocateSharedMemory(
+      size_t size) override;
 
   void Init(scoped_refptr<base::SingleThreadTaskRunner>& resource_task_queue);
 
@@ -525,17 +526,18 @@
 
   void ReleaseFreeMemory();
 
-  scoped_ptr<WebGraphicsContext3DCommandBufferImpl> CreateOffscreenContext3d();
+  std::unique_ptr<WebGraphicsContext3DCommandBufferImpl>
+  CreateOffscreenContext3d();
 
   // These objects live solely on the render thread.
-  scoped_ptr<AppCacheDispatcher> appcache_dispatcher_;
-  scoped_ptr<DomStorageDispatcher> dom_storage_dispatcher_;
-  scoped_ptr<IndexedDBDispatcher> main_thread_indexed_db_dispatcher_;
-  scoped_ptr<scheduler::RendererScheduler> renderer_scheduler_;
-  scoped_ptr<RendererBlinkPlatformImpl> blink_platform_impl_;
-  scoped_ptr<ResourceDispatchThrottler> resource_dispatch_throttler_;
-  scoped_ptr<CacheStorageDispatcher> main_thread_cache_storage_dispatcher_;
-  scoped_ptr<EmbeddedWorkerDispatcher> embedded_worker_dispatcher_;
+  std::unique_ptr<AppCacheDispatcher> appcache_dispatcher_;
+  std::unique_ptr<DomStorageDispatcher> dom_storage_dispatcher_;
+  std::unique_ptr<IndexedDBDispatcher> main_thread_indexed_db_dispatcher_;
+  std::unique_ptr<scheduler::RendererScheduler> renderer_scheduler_;
+  std::unique_ptr<RendererBlinkPlatformImpl> blink_platform_impl_;
+  std::unique_ptr<ResourceDispatchThrottler> resource_dispatch_throttler_;
+  std::unique_ptr<CacheStorageDispatcher> main_thread_cache_storage_dispatcher_;
+  std::unique_ptr<EmbeddedWorkerDispatcher> embedded_worker_dispatcher_;
 
   // Used on the render thread and deleted by WebKit at shutdown.
   blink::WebMediaStreamCenter* media_stream_center_;
@@ -550,23 +552,23 @@
   scoped_refptr<RendererDemuxerAndroid> renderer_demuxer_;
 #endif
   scoped_refptr<DevToolsAgentFilter> devtools_agent_message_filter_;
-  scoped_ptr<V8SamplingProfiler> v8_sampling_profiler_;
+  std::unique_ptr<V8SamplingProfiler> v8_sampling_profiler_;
 
-  scoped_ptr<BrowserPluginManager> browser_plugin_manager_;
+  std::unique_ptr<BrowserPluginManager> browser_plugin_manager_;
 
 #if defined(ENABLE_WEBRTC)
-  scoped_ptr<PeerConnectionDependencyFactory> peer_connection_factory_;
+  std::unique_ptr<PeerConnectionDependencyFactory> peer_connection_factory_;
 
   // This is used to communicate to the browser process the status
   // of all the peer connections created in the renderer.
-  scoped_ptr<PeerConnectionTracker> peer_connection_tracker_;
+  std::unique_ptr<PeerConnectionTracker> peer_connection_tracker_;
 
   // Dispatches all P2P sockets.
   scoped_refptr<P2PSocketDispatcher> p2p_socket_dispatcher_;
 #endif
 
   // Used on the render thread.
-  scoped_ptr<VideoCaptureImplManager> vc_manager_;
+  std::unique_ptr<VideoCaptureImplManager> vc_manager_;
 
   // Used for communicating registering AEC dump consumers with the browser and
   // receving AEC dump file handles when AEC dump is enabled. An AEC dump is
@@ -605,13 +607,13 @@
   // The message loop of the renderer main thread.
   // This message loop should be destructed before the RenderThreadImpl
   // shuts down Blink.
-  scoped_ptr<base::MessageLoop> main_message_loop_;
+  std::unique_ptr<base::MessageLoop> main_message_loop_;
 
   // A lazily initiated thread on which file operations are run.
-  scoped_ptr<base::Thread> file_thread_;
+  std::unique_ptr<base::Thread> file_thread_;
 
   // May be null if overridden by ContentRendererClient.
-  scoped_ptr<scheduler::WebThreadBase> compositor_thread_;
+  std::unique_ptr<scheduler::WebThreadBase> compositor_thread_;
 
   // Utility class to provide GPU functionalities to media.
   // TODO(dcastagna): This should be just one scoped_ptr once
@@ -620,7 +622,7 @@
   ScopedVector<content::RendererGpuVideoAcceleratorFactories> gpu_factories_;
 
   // Thread for running multimedia operations (e.g., video decoding).
-  scoped_ptr<base::Thread> media_thread_;
+  std::unique_ptr<base::Thread> media_thread_;
 
   // Will point to appropriate task runner after initialization,
   // regardless of whether |compositor_thread_| is overriden.
@@ -631,7 +633,7 @@
 
   base::CancelableCallback<void(const IPC::Message&)> main_input_callback_;
   scoped_refptr<IPC::MessageFilter> input_event_filter_;
-  scoped_ptr<InputHandlerManager> input_handler_manager_;
+  std::unique_ptr<InputHandlerManager> input_handler_manager_;
   scoped_refptr<CompositorForwardingMessageFilter> compositor_message_filter_;
 
 #if defined(OS_ANDROID)
@@ -647,18 +649,18 @@
 
   scoped_refptr<ContextProviderCommandBuffer> shared_worker_context_provider_;
 
-  scoped_ptr<AudioRendererMixerManager> audio_renderer_mixer_manager_;
-  scoped_ptr<media::AudioHardwareConfig> audio_hardware_config_;
+  std::unique_ptr<AudioRendererMixerManager> audio_renderer_mixer_manager_;
+  std::unique_ptr<media::AudioHardwareConfig> audio_hardware_config_;
 
   HistogramCustomizer histogram_customizer_;
 
-  scoped_ptr<base::MemoryPressureListener> memory_pressure_listener_;
+  std::unique_ptr<base::MemoryPressureListener> memory_pressure_listener_;
 
 #if defined(ENABLE_WEBRTC)
-  scoped_ptr<WebRTCIdentityService> webrtc_identity_service_;
+  std::unique_ptr<WebRTCIdentityService> webrtc_identity_service_;
 #endif
 
-  scoped_ptr<MemoryObserver> memory_observer_;
+  std::unique_ptr<MemoryObserver> memory_observer_;
 
   scoped_refptr<base::SingleThreadTaskRunner>
       main_thread_compositor_task_runner_;
diff --git a/content/renderer/render_thread_impl_browsertest.cc b/content/renderer/render_thread_impl_browsertest.cc
index f1b21a4f..534a324 100644
--- a/content/renderer/render_thread_impl_browsertest.cc
+++ b/content/renderer/render_thread_impl_browsertest.cc
@@ -103,10 +103,9 @@
  public:
   RenderThreadImplForTest(
       const InProcessChildThreadParams& params,
-      scoped_ptr<scheduler::RendererScheduler> scheduler,
+      std::unique_ptr<scheduler::RendererScheduler> scheduler,
       scoped_refptr<base::SingleThreadTaskRunner>& test_task_counter)
-      : RenderThreadImpl(params, std::move(scheduler), test_task_counter) {
-  }
+      : RenderThreadImpl(params, std::move(scheduler), test_task_counter) {}
 
   ~RenderThreadImplForTest() override {}
 
@@ -176,7 +175,7 @@
     }
     cmd->AppendSwitchASCII(switches::kContentImageTextureTarget, image_targets);
 
-    scoped_ptr<scheduler::RendererScheduler> renderer_scheduler =
+    std::unique_ptr<scheduler::RendererScheduler> renderer_scheduler =
         scheduler::RendererScheduler::Create();
     InitializeMojo();
     scoped_refptr<base::SingleThreadTaskRunner> test_task_counter(
@@ -194,11 +193,11 @@
   }
 
   scoped_refptr<TestTaskCounter> test_task_counter_;
-  scoped_ptr<ContentClient> content_client_;
-  scoped_ptr<ContentBrowserClient> content_browser_client_;
-  scoped_ptr<ContentRendererClient> content_renderer_client_;
-  scoped_ptr<RenderThreadImplBrowserIPCTestHelper> test_helper_;
-  scoped_ptr<MockRenderProcess> mock_process_;
+  std::unique_ptr<ContentClient> content_client_;
+  std::unique_ptr<ContentBrowserClient> content_browser_client_;
+  std::unique_ptr<ContentRendererClient> content_renderer_client_;
+  std::unique_ptr<RenderThreadImplBrowserIPCTestHelper> test_helper_;
+  std::unique_ptr<MockRenderProcess> mock_process_;
   scoped_refptr<QuitOnTestMsgFilter> test_msg_filter_;
   RenderThreadImplForTest* thread_;  // Owned by mock_process_.
   std::string channel_id_;
diff --git a/content/renderer/render_view_browsertest.cc b/content/renderer/render_view_browsertest.cc
index 6a3c740..4e033d2 100644
--- a/content/renderer/render_view_browsertest.cc
+++ b/content/renderer/render_view_browsertest.cc
@@ -373,7 +373,7 @@
   }
 
  private:
-  scoped_ptr<MockKeyboard> mock_keyboard_;
+  std::unique_ptr<MockKeyboard> mock_keyboard_;
 };
 
 class DevToolsAgentTest : public RenderViewImplTest {
@@ -406,8 +406,9 @@
 
   void OnDevToolsMessage(
       int, int, const std::string& message, const std::string&) {
-    scoped_ptr<base::DictionaryValue> root(static_cast<base::DictionaryValue*>(
-        base::JSONReader::Read(message).release()));
+    std::unique_ptr<base::DictionaryValue> root(
+        static_cast<base::DictionaryValue*>(
+            base::JSONReader::Read(message).release()));
     int id;
     if (!root->GetInteger("id", &id)) {
       std::string notification;
@@ -621,7 +622,7 @@
 
   // Check post data sent to browser matches
   EXPECT_TRUE(base::get<0>(host_nav_params).page_state.IsValid());
-  scoped_ptr<HistoryEntry> entry =
+  std::unique_ptr<HistoryEntry> entry =
       PageStateToHistoryEntry(base::get<0>(host_nav_params).page_state);
   blink::WebHTTPBody body = entry->root().httpBody();
   blink::WebHTTPBody::Element element;
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
index ae2d8ec..0331a98f 100644
--- a/content/renderer/render_view_impl.cc
+++ b/content/renderer/render_view_impl.cc
@@ -6,6 +6,7 @@
 
 #include <algorithm>
 #include <cmath>
+#include <memory>
 
 #include "base/auto_reset.h"
 #include "base/bind.h"
@@ -18,7 +19,7 @@
 #include "base/i18n/rtl.h"
 #include "base/json/json_writer.h"
 #include "base/lazy_instance.h"
-#include "base/memory/scoped_ptr.h"
+#include "base/memory/ptr_util.h"
 #include "base/metrics/field_trial.h"
 #include "base/metrics/histogram.h"
 #include "base/process/kill.h"
@@ -722,14 +723,14 @@
     main_render_frame_->Initialize();
 
 #if defined(OS_ANDROID)
-  content_detectors_.push_back(make_scoped_ptr(new AddressDetector()));
+  content_detectors_.push_back(base::WrapUnique(new AddressDetector()));
   const std::string& contry_iso =
       params.renderer_preferences.network_contry_iso;
   if (!contry_iso.empty()) {
     content_detectors_.push_back(
-        make_scoped_ptr(new PhoneNumberDetector(contry_iso)));
+        base::WrapUnique(new PhoneNumberDetector(contry_iso)));
   }
-  content_detectors_.push_back(make_scoped_ptr(new EmailDetector()));
+  content_detectors_.push_back(base::WrapUnique(new EmailDetector()));
 #endif
 
   RenderThread::Get()->AddRoute(GetRoutingID(), this);
@@ -1492,7 +1493,7 @@
                                   0,
                                   id);
   }
-  scoped_ptr<cc::SwapPromiseMonitor> latency_info_swap_promise_monitor;
+  std::unique_ptr<cc::SwapPromiseMonitor> latency_info_swap_promise_monitor;
   if (RenderWidgetCompositor* rwc = compositor()) {
     latency_info_swap_promise_monitor =
         rwc->CreateLatencyInfoSwapPromiseMonitor(&latency_info);
@@ -2946,7 +2947,7 @@
   }
 
   file_chooser_completions_.push_back(
-      make_scoped_ptr(new PendingFileChooser(params, completion)));
+      base::WrapUnique(new PendingFileChooser(params, completion)));
   if (file_chooser_completions_.size() == 1) {
     // Actually show the browse dialog when this is the first request.
     Send(new ViewHostMsg_RunFileChooser(GetRoutingID(), params));
@@ -3148,7 +3149,7 @@
           gfx::ScaleToCeiledSize(zoom_rect.size(), new_total_scale);
       cc::SharedBitmapManager* manager =
           RenderThreadImpl::current()->shared_bitmap_manager();
-      scoped_ptr<cc::SharedBitmap> shared_bitmap =
+      std::unique_ptr<cc::SharedBitmap> shared_bitmap =
           manager->AllocateSharedBitmap(canvas_size);
       CHECK(!!shared_bitmap);
       {
diff --git a/content/renderer/render_view_impl.h b/content/renderer/render_view_impl.h
index 71f89fb..b2890431 100644
--- a/content/renderer/render_view_impl.h
+++ b/content/renderer/render_view_impl.h
@@ -10,6 +10,7 @@
 
 #include <deque>
 #include <map>
+#include <memory>
 #include <set>
 #include <string>
 #include <vector>
@@ -17,7 +18,6 @@
 #include "base/gtest_prod_util.h"
 #include "base/id_map.h"
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "base/observer_list.h"
 #include "base/process/process.h"
@@ -891,7 +891,7 @@
   // Mouse Lock dispatcher attached to this view.
   MouseLockDispatcher* mouse_lock_dispatcher_;
 
-  scoped_ptr<HistoryController> history_controller_;
+  std::unique_ptr<HistoryController> history_controller_;
 
 #if defined(OS_ANDROID)
   // Android Specific ---------------------------------------------------------
@@ -901,10 +901,10 @@
   size_t expected_content_intent_id_;
 
   // List of click-based content detectors.
-  std::vector<scoped_ptr<ContentDetector>> content_detectors_;
+  std::vector<std::unique_ptr<ContentDetector>> content_detectors_;
 
   // A date/time picker object for date and time related input elements.
-  scoped_ptr<RendererDateTimePicker> date_time_picker_client_;
+  std::unique_ptr<RendererDateTimePicker> date_time_picker_client_;
 #endif
 
   // Plugins -------------------------------------------------------------------
@@ -934,7 +934,7 @@
   // callback, and the remaining elements are the other file chooser completion
   // still waiting to be run (in order).
   struct PendingFileChooser;
-  std::deque<scoped_ptr<PendingFileChooser>> file_chooser_completions_;
+  std::deque<std::unique_ptr<PendingFileChooser>> file_chooser_completions_;
 
   // The current directory enumeration callback
   std::map<int, blink::WebFileChooserCompletion*> enumeration_completions_;
@@ -954,7 +954,7 @@
   base::ObserverList<RenderViewObserver> observers_;
 
   // Wraps the |webwidget_| as a MouseLockDispatcher::LockTarget interface.
-  scoped_ptr<MouseLockDispatcher::LockTarget> webwidget_mouse_lock_target_;
+  std::unique_ptr<MouseLockDispatcher::LockTarget> webwidget_mouse_lock_target_;
 
   // This field stores drag/drop related info for the event that is currently
   // being handled. If the current event results in starting a drag/drop
@@ -963,7 +963,7 @@
 
   // NOTE: stats_collection_observer_ should be the last members because their
   // constructors call the AddObservers method of RenderViewImpl.
-  scoped_ptr<StatsCollectionObserver> stats_collection_observer_;
+  std::unique_ptr<StatsCollectionObserver> stats_collection_observer_;
 
   typedef std::map<cc::SharedBitmapId, cc::SharedBitmap*> BitmapMap;
   BitmapMap disambiguation_bitmaps_;
diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
index 18461075..93bff83 100644
--- a/content/renderer/render_widget.cc
+++ b/content/renderer/render_widget.cc
@@ -4,6 +4,7 @@
 
 #include "content/renderer/render_widget.h"
 
+#include <memory>
 #include <utility>
 
 #include "base/auto_reset.h"
@@ -12,7 +13,7 @@
 #include "base/feature_list.h"
 #include "base/logging.h"
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
+#include "base/memory/ptr_util.h"
 #include "base/memory/singleton.h"
 #include "base/message_loop/message_loop.h"
 #include "base/metrics/histogram.h"
@@ -645,7 +646,7 @@
   // Generate a full repaint.
   if (compositor_) {
     ui::LatencyInfo swap_latency_info(latency_info);
-    scoped_ptr<cc::SwapPromiseMonitor> latency_info_swap_promise_monitor(
+    std::unique_ptr<cc::SwapPromiseMonitor> latency_info_swap_promise_monitor(
         compositor_->CreateLatencyInfoSwapPromiseMonitor(&swap_latency_info));
     compositor_->SetNeedsForcedRedraw();
   }
@@ -702,7 +703,8 @@
   webwidget_->beginFrame(frame_time_sec);
 }
 
-scoped_ptr<cc::OutputSurface> RenderWidget::CreateOutputSurface(bool fallback) {
+std::unique_ptr<cc::OutputSurface> RenderWidget::CreateOutputSurface(
+    bool fallback) {
   DCHECK(webwidget_);
   // For widgets that are never visible, we don't start the compositor, so we
   // never get a request for a cc::OutputSurface.
@@ -749,10 +751,11 @@
     vulkan_context_provider = cc::VulkanInProcessContextProvider::Create();
     if (vulkan_context_provider) {
       uint32_t output_surface_id = next_output_surface_id_++;
-      return scoped_ptr<cc::OutputSurface>(new DelegatedCompositorOutputSurface(
-          routing_id(), output_surface_id, context_provider,
-          worker_context_provider, vulkan_context_provider,
-          frame_swap_message_queue_));
+      return std::unique_ptr<cc::OutputSurface>(
+          new DelegatedCompositorOutputSurface(
+              routing_id(), output_surface_id, context_provider,
+              worker_context_provider, vulkan_context_provider,
+              frame_swap_message_queue_));
     }
 #endif
 
@@ -776,7 +779,7 @@
           context_provider, worker_context_provider);
     } else if (RenderThreadImpl::current()->sync_compositor_message_filter()) {
       uint32_t output_surface_id = next_output_surface_id_++;
-      return make_scoped_ptr(new SynchronousCompositorOutputSurface(
+      return base::WrapUnique(new SynchronousCompositorOutputSurface(
           context_provider, worker_context_provider, routing_id(),
           output_surface_id, content::RenderThreadImpl::current()
                                  ->sync_compositor_message_filter(),
@@ -792,7 +795,7 @@
   if (!RenderThreadImpl::current() ||
       !RenderThreadImpl::current()->layout_test_mode()) {
     DCHECK(compositor_deps_->GetCompositorImplThreadTaskRunner());
-    return make_scoped_ptr(new DelegatedCompositorOutputSurface(
+    return base::WrapUnique(new DelegatedCompositorOutputSurface(
         routing_id(), output_surface_id, context_provider,
         worker_context_provider,
 #if defined(ENABLE_VULKAN)
@@ -802,10 +805,10 @@
   }
 
   if (!context_provider.get()) {
-    scoped_ptr<cc::SoftwareOutputDevice> software_device(
+    std::unique_ptr<cc::SoftwareOutputDevice> software_device(
         new cc::SoftwareOutputDevice());
 
-    return make_scoped_ptr(new CompositorOutputSurface(
+    return base::WrapUnique(new CompositorOutputSurface(
         routing_id(), output_surface_id, nullptr, nullptr,
 #if defined(ENABLE_VULKAN)
         nullptr,
@@ -813,12 +816,12 @@
         std::move(software_device), frame_swap_message_queue_, true));
   }
 
-  return make_scoped_ptr(new MailboxOutputSurface(
+  return base::WrapUnique(new MailboxOutputSurface(
       routing_id(), output_surface_id, context_provider,
       worker_context_provider, frame_swap_message_queue_, cc::RGBA_8888));
 }
 
-scoped_ptr<cc::BeginFrameSource>
+std::unique_ptr<cc::BeginFrameSource>
 RenderWidget::CreateExternalBeginFrameSource() {
   return compositor_deps_->CreateExternalBeginFrameSource(routing_id_);
 }
@@ -896,8 +899,10 @@
 }
 
 void RenderWidget::RecordFrameTimingEvents(
-    scoped_ptr<cc::FrameTimingTracker::CompositeTimingSet> composite_events,
-    scoped_ptr<cc::FrameTimingTracker::MainFrameTimingSet> main_frame_events) {
+    std::unique_ptr<cc::FrameTimingTracker::CompositeTimingSet>
+        composite_events,
+    std::unique_ptr<cc::FrameTimingTracker::MainFrameTimingSet>
+        main_frame_events) {
   for (const auto& composite_event : *composite_events) {
     int64_t frameId = composite_event.first;
     const std::vector<cc::FrameTimingTracker::CompositeTimingEvent>& events =
@@ -1014,7 +1019,8 @@
   Send(new InputHostMsg_DidOverscroll(routing_id_, params));
 }
 
-void RenderWidget::OnInputEventAck(scoped_ptr<InputEventAck> input_event_ack) {
+void RenderWidget::OnInputEventAck(
+    std::unique_ptr<InputEventAck> input_event_ack) {
   Send(new InputHostMsg_HandleInputEvent_ACK(routing_id_, *input_event_ack));
 }
 
@@ -1316,19 +1322,18 @@
 }
 
 // static
-scoped_ptr<cc::SwapPromise> RenderWidget::QueueMessageImpl(
+std::unique_ptr<cc::SwapPromise> RenderWidget::QueueMessageImpl(
     IPC::Message* msg,
     MessageDeliveryPolicy policy,
     FrameSwapMessageQueue* frame_swap_message_queue,
     scoped_refptr<IPC::SyncMessageFilter> sync_message_filter,
     int source_frame_number) {
   bool first_message_for_frame = false;
-  frame_swap_message_queue->QueueMessageForFrame(policy,
-                                                 source_frame_number,
-                                                 make_scoped_ptr(msg),
+  frame_swap_message_queue->QueueMessageForFrame(policy, source_frame_number,
+                                                 base::WrapUnique(msg),
                                                  &first_message_for_frame);
   if (first_message_for_frame) {
-    scoped_ptr<cc::SwapPromise> promise(new QueueMessageSwapPromise(
+    std::unique_ptr<cc::SwapPromise> promise(new QueueMessageSwapPromise(
         sync_message_filter, frame_swap_message_queue, source_frame_number));
     return promise;
   }
@@ -1343,10 +1348,8 @@
     return;
   }
 
-  scoped_ptr<cc::SwapPromise> swap_promise =
-      QueueMessageImpl(msg,
-                       policy,
-                       frame_swap_message_queue_.get(),
+  std::unique_ptr<cc::SwapPromise> swap_promise =
+      QueueMessageImpl(msg, policy, frame_swap_message_queue_.get(),
                        RenderThreadImpl::current()->sync_message_filter(),
                        compositor_->GetSourceFrameNumber());
 
@@ -1431,7 +1434,7 @@
 }
 
 void RenderWidget::QueueSyntheticGesture(
-    scoped_ptr<SyntheticGestureParams> gesture_params,
+    std::unique_ptr<SyntheticGestureParams> gesture_params,
     const SyntheticGestureCompletionCallback& callback) {
   DCHECK(!callback.is_null());
 
@@ -2093,7 +2096,7 @@
 #endif
 }
 
-scoped_ptr<WebGraphicsContext3DCommandBufferImpl>
+std::unique_ptr<WebGraphicsContext3DCommandBufferImpl>
 RenderWidget::CreateGraphicsContext3D(gpu::GpuChannelHost* gpu_channel_host) {
   // This is for an offscreen context for raster in the compositor. So the
   // default framebuffer doesn't need alpha, depth, stencil, antialiasing.
@@ -2143,7 +2146,7 @@
   bool share_resources = true;
   bool automatic_flushes = false;
 
-  return make_scoped_ptr(new WebGraphicsContext3DCommandBufferImpl(
+  return base::WrapUnique(new WebGraphicsContext3DCommandBufferImpl(
       gpu::kNullSurfaceHandle, GetURLForGraphicsContext3D(), gpu_channel_host,
       attributes, gfx::PreferIntegratedGpu, share_resources, automatic_flushes,
       limits, nullptr));
diff --git a/content/renderer/render_widget.h b/content/renderer/render_widget.h
index d885190..612f2c1a 100644
--- a/content/renderer/render_widget.h
+++ b/content/renderer/render_widget.h
@@ -10,12 +10,12 @@
 
 #include <deque>
 #include <map>
+#include <memory>
 
 #include "base/callback.h"
 #include "base/compiler_specific.h"
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/observer_list.h"
 #include "base/time/time.h"
 #include "build/build_config.h"
@@ -185,8 +185,10 @@
                            float page_scale,
                            float top_controls_delta) override;
   void BeginMainFrame(double frame_time_sec) override;
-  scoped_ptr<cc::OutputSurface> CreateOutputSurface(bool fallback) override;
-  scoped_ptr<cc::BeginFrameSource> CreateExternalBeginFrameSource() override;
+  std::unique_ptr<cc::OutputSurface> CreateOutputSurface(
+      bool fallback) override;
+  std::unique_ptr<cc::BeginFrameSource> CreateExternalBeginFrameSource()
+      override;
   void DidCommitAndDrawCompositorFrame() override;
   void DidCommitCompositorFrame() override;
   void DidCompletePageScaleAnimation() override;
@@ -198,9 +200,10 @@
   void OnSwapBuffersComplete() override;
   void OnSwapBuffersPosted() override;
   void RecordFrameTimingEvents(
-      scoped_ptr<cc::FrameTimingTracker::CompositeTimingSet> composite_events,
-      scoped_ptr<cc::FrameTimingTracker::MainFrameTimingSet> main_frame_events)
-      override;
+      std::unique_ptr<cc::FrameTimingTracker::CompositeTimingSet>
+          composite_events,
+      std::unique_ptr<cc::FrameTimingTracker::MainFrameTimingSet>
+          main_frame_events) override;
   void RequestScheduleAnimation() override;
   void UpdateVisualState() override;
   void WillBeginCompositorFrame() override;
@@ -217,7 +220,7 @@
 
   void OnDidHandleKeyEvent() override;
   void OnDidOverscroll(const DidOverscrollParams& params) override;
-  void OnInputEventAck(scoped_ptr<InputEventAck> input_event_ack) override;
+  void OnInputEventAck(std::unique_ptr<InputEventAck> input_event_ack) override;
   void NotifyInputEventHandled(
       blink::WebInputEvent::Type handled_type) override;
   void SetInputHandler(RenderWidgetInputHandler* input_handler) override;
@@ -307,7 +310,7 @@
   // Send a synthetic gesture to the browser to be queued to the synthetic
   // gesture controller.
   void QueueSyntheticGesture(
-      scoped_ptr<SyntheticGestureParams> gesture_params,
+      std::unique_ptr<SyntheticGestureParams> gesture_params,
       const SyntheticGestureCompletionCallback& callback);
 
   // Deliveres |message| together with compositor state change updates. The
@@ -512,7 +515,7 @@
 
   // QueueMessage implementation extracted into a static method for easy
   // testing.
-  static scoped_ptr<cc::SwapPromise> QueueMessageImpl(
+  static std::unique_ptr<cc::SwapPromise> QueueMessageImpl(
       IPC::Message* msg,
       MessageDeliveryPolicy policy,
       FrameSwapMessageQueue* frame_swap_message_queue,
@@ -559,8 +562,8 @@
   void didUpdateTextOfFocusedElementByNonUserInput() override;
 
   // Creates a 3D context associated with this view.
-  scoped_ptr<WebGraphicsContext3DCommandBufferImpl> CreateGraphicsContext3D(
-      gpu::GpuChannelHost* gpu_channel_host);
+  std::unique_ptr<WebGraphicsContext3DCommandBufferImpl>
+  CreateGraphicsContext3D(gpu::GpuChannelHost* gpu_channel_host);
 
   // Sends an ACK to the browser process during the next compositor frame.
   void OnWaitNextFrameForTests(int routing_id);
@@ -581,7 +584,7 @@
   RenderWidgetOwnerDelegate* owner_delegate_;
 
   // This is lazily constructed and must not outlive webwidget_.
-  scoped_ptr<RenderWidgetCompositor> compositor_;
+  std::unique_ptr<RenderWidgetCompositor> compositor_;
 
   // Set to the ID of the view that initiated creating this view, if any. When
   // the view was initiated by the browser (the common case), this will be
@@ -703,7 +706,7 @@
   gfx::Rect view_screen_rect_;
   gfx::Rect window_screen_rect_;
 
-  scoped_ptr<RenderWidgetInputHandler> input_handler_;
+  std::unique_ptr<RenderWidgetInputHandler> input_handler_;
 
   // The time spent in input handlers this frame. Used to throttle input acks.
   base::TimeDelta total_input_handling_time_this_frame_;
@@ -738,7 +741,7 @@
   std::deque<blink::WebTextInputInfo> text_input_info_history_;
 #endif
 
-  scoped_ptr<RenderWidgetScreenMetricsEmulator> screen_metrics_emulator_;
+  std::unique_ptr<RenderWidgetScreenMetricsEmulator> screen_metrics_emulator_;
 
   // Popups may be displaced when screen metrics emulation is enabled.
   // These values are used to properly adjust popup position.
@@ -747,7 +750,7 @@
   float popup_origin_scale_for_emulation_;
 
   scoped_refptr<FrameSwapMessageQueue> frame_swap_message_queue_;
-  scoped_ptr<ResizingModeSelector> resizing_mode_selector_;
+  std::unique_ptr<ResizingModeSelector> resizing_mode_selector_;
 
   // Lists of RenderFrameProxy objects that need to be notified of
   // compositing-related events (e.g. DidCommitCompositorFrame).
@@ -764,7 +767,7 @@
   bool has_host_context_menu_location_;
   gfx::Point host_context_menu_location_;
 
-  scoped_ptr<scheduler::RenderWidgetSchedulingState>
+  std::unique_ptr<scheduler::RenderWidgetSchedulingState>
       render_widget_scheduling_state_;
 
  private:
diff --git a/content/renderer/render_widget_browsertest.cc b/content/renderer/render_widget_browsertest.cc
index 489536d..69dd2e4 100644
--- a/content/renderer/render_widget_browsertest.cc
+++ b/content/renderer/render_widget_browsertest.cc
@@ -82,8 +82,8 @@
       : RenderWidgetTest(), initial_size_(200, 100) {}
 
  protected:
-  scoped_ptr<ResizeParams> InitialSizeParams() override {
-    scoped_ptr<ResizeParams> initial_size_params(new ResizeParams());
+  std::unique_ptr<ResizeParams> InitialSizeParams() override {
+    std::unique_ptr<ResizeParams> initial_size_params(new ResizeParams());
     initial_size_params->new_size = initial_size_;
     initial_size_params->physical_backing_size = initial_size_;
     initial_size_params->needs_resize_ack = true;
diff --git a/content/renderer/render_widget_fullscreen_pepper.h b/content/renderer/render_widget_fullscreen_pepper.h
index 7f4bd448..b1ef6b4 100644
--- a/content/renderer/render_widget_fullscreen_pepper.h
+++ b/content/renderer/render_widget_fullscreen_pepper.h
@@ -7,8 +7,9 @@
 
 #include <stdint.h>
 
+#include <memory>
+
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "content/renderer/mouse_lock_dispatcher.h"
 #include "content/renderer/pepper/fullscreen_container.h"
 #include "content/renderer/render_widget_fullscreen.h"
@@ -82,7 +83,7 @@
 
   blink::WebLayer* layer_;
 
-  scoped_ptr<MouseLockDispatcher> mouse_lock_dispatcher_;
+  std::unique_ptr<MouseLockDispatcher> mouse_lock_dispatcher_;
 
   DISALLOW_COPY_AND_ASSIGN(RenderWidgetFullscreenPepper);
 };
diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer/renderer_blink_platform_impl.cc
index 45da15f57..fa17206 100644
--- a/content/renderer/renderer_blink_platform_impl.cc
+++ b/content/renderer/renderer_blink_platform_impl.cc
@@ -11,6 +11,7 @@
 #include "base/lazy_instance.h"
 #include "base/location.h"
 #include "base/logging.h"
+#include "base/memory/ptr_util.h"
 #include "base/memory/shared_memory.h"
 #include "base/metrics/histogram.h"
 #include "base/numerics/safe_conversions.h"
@@ -300,7 +301,7 @@
   // data URLs to bypass the ResourceDispatcher.
   return new content::WebURLLoaderImpl(
       child_thread ? child_thread->resource_dispatcher() : NULL,
-      make_scoped_ptr(currentThread()->getWebTaskRunner()->clone()));
+      base::WrapUnique(currentThread()->getWebTaskRunner()->clone()));
 }
 
 blink::WebThread* RendererBlinkPlatformImpl::currentThread() {
@@ -1053,7 +1054,7 @@
   gfx::GpuPreference gpu_preference = gfx::PreferDiscreteGpu;
   WebGraphicsContext3DCommandBufferImpl::SharedMemoryLimits limits;
 
-  scoped_ptr<WebGraphicsContext3DCommandBufferImpl> context(
+  std::unique_ptr<WebGraphicsContext3DCommandBufferImpl> context(
       WebGraphicsContext3DCommandBufferImpl::CreateOffscreenContext(
           gpu_channel_host.get(), attributes, gpu_preference, share_resources,
           automatic_flushes, GURL(top_document_web_url), limits,
@@ -1190,7 +1191,7 @@
 
 void RendererBlinkPlatformImpl::SetPlatformEventObserverForTesting(
     blink::WebPlatformEventType type,
-    scoped_ptr<PlatformEventObserverBase> observer) {
+    std::unique_ptr<PlatformEventObserverBase> observer) {
   if (platform_event_observers_.Lookup(type))
     platform_event_observers_.Remove(type);
   platform_event_observers_.AddWithID(observer.release(), type);
diff --git a/content/renderer/renderer_blink_platform_impl.h b/content/renderer/renderer_blink_platform_impl.h
index eb197f8..be95c061c 100644
--- a/content/renderer/renderer_blink_platform_impl.h
+++ b/content/renderer/renderer_blink_platform_impl.h
@@ -8,10 +8,11 @@
 #include <stddef.h>
 #include <stdint.h>
 
+#include <memory>
+
 #include "base/compiler_specific.h"
 #include "base/id_map.h"
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "build/build_config.h"
 #include "cc/blink/web_compositor_support_impl.h"
 #include "content/child/blink_platform_impl.h"
@@ -203,7 +204,7 @@
   // Note that |observer| will be owned by this object after the call.
   void SetPlatformEventObserverForTesting(
       blink::WebPlatformEventType type,
-      scoped_ptr<PlatformEventObserverBase> observer);
+      std::unique_ptr<PlatformEventObserverBase> observer);
 
   // Disables the WebSandboxSupport implementation for testing.
   // Tests that do not set up a full sandbox environment should call
@@ -243,20 +244,20 @@
   void SendFakeDeviceEventDataForTesting(blink::WebPlatformEventType type);
   device::VibrationManagerPtr& GetConnectedVibrationManagerService();
 
-  scoped_ptr<blink::WebThread> main_thread_;
+  std::unique_ptr<blink::WebThread> main_thread_;
 
-  scoped_ptr<RendererClipboardDelegate> clipboard_delegate_;
-  scoped_ptr<WebClipboardImpl> clipboard_;
+  std::unique_ptr<RendererClipboardDelegate> clipboard_delegate_;
+  std::unique_ptr<WebClipboardImpl> clipboard_;
 
   class FileUtilities;
-  scoped_ptr<FileUtilities> file_utilities_;
+  std::unique_ptr<FileUtilities> file_utilities_;
 
   class MimeRegistry;
-  scoped_ptr<MimeRegistry> mime_registry_;
+  std::unique_ptr<MimeRegistry> mime_registry_;
 
 #if !defined(OS_ANDROID) && !defined(OS_WIN)
   class SandboxSupport;
-  scoped_ptr<SandboxSupport> sandbox_support_;
+  std::unique_ptr<SandboxSupport> sandbox_support_;
 #endif
 
   // This counter keeps track of the number of times sudden termination is
@@ -268,15 +269,15 @@
   // If true, then a GetPlugins call is allowed to rescan the disk.
   bool plugin_refresh_allowed_;
 
-  scoped_ptr<blink::WebIDBFactory> web_idb_factory_;
+  std::unique_ptr<blink::WebIDBFactory> web_idb_factory_;
 
-  scoped_ptr<blink::WebBlobRegistry> blob_registry_;
+  std::unique_ptr<blink::WebBlobRegistry> blob_registry_;
 
   WebPublicSuffixListImpl public_suffix_list_;
 
-  scoped_ptr<DeviceLightEventPump> device_light_event_pump_;
-  scoped_ptr<DeviceMotionEventPump> device_motion_event_pump_;
-  scoped_ptr<DeviceOrientationEventPump> device_orientation_event_pump_;
+  std::unique_ptr<DeviceLightEventPump> device_light_event_pump_;
+  std::unique_ptr<DeviceMotionEventPump> device_motion_event_pump_;
+  std::unique_ptr<DeviceOrientationEventPump> device_orientation_event_pump_;
 
   scoped_refptr<base::SingleThreadTaskRunner> default_task_runner_;
   scoped_refptr<base::SingleThreadTaskRunner> loading_task_runner_;
@@ -284,11 +285,11 @@
   scoped_refptr<ThreadSafeSender> thread_safe_sender_;
   scoped_refptr<QuotaMessageFilter> quota_message_filter_;
 
-  scoped_ptr<WebDatabaseObserverImpl> web_database_observer_impl_;
+  std::unique_ptr<WebDatabaseObserverImpl> web_database_observer_impl_;
 
   cc_blink::WebCompositorSupportImpl compositor_support_;
 
-  scoped_ptr<blink::WebScrollbarBehavior> web_scrollbar_behavior_;
+  std::unique_ptr<blink::WebScrollbarBehavior> web_scrollbar_behavior_;
 
   // Handle to the Vibration mojo service.
   device::VibrationManagerPtr vibration_manager_;
@@ -300,9 +301,9 @@
 
   WebTrialTokenValidatorImpl trial_token_validator_;
 
-  scoped_ptr<LocalStorageCachedAreas> local_storage_cached_areas_;
+  std::unique_ptr<LocalStorageCachedAreas> local_storage_cached_areas_;
 
-  scoped_ptr<BlinkServiceRegistryImpl> blink_service_registry_;
+  std::unique_ptr<BlinkServiceRegistryImpl> blink_service_registry_;
 
   DISALLOW_COPY_AND_ASSIGN(RendererBlinkPlatformImpl);
 };
diff --git a/content/renderer/renderer_clipboard_delegate.cc b/content/renderer/renderer_clipboard_delegate.cc
index 6ce0203..cd72839 100644
--- a/content/renderer/renderer_clipboard_delegate.cc
+++ b/content/renderer/renderer_clipboard_delegate.cc
@@ -127,7 +127,7 @@
   DCHECK_EQ(bitmap.colorType(), kN32_SkColorType);
 
   const gfx::Size size(bitmap.width(), bitmap.height());
-  scoped_ptr<base::SharedMemory> shared_buf;
+  std::unique_ptr<base::SharedMemory> shared_buf;
   {
     SkAutoLockPixels locked(bitmap);
     void* pixels = bitmap.getPixels();
diff --git a/content/renderer/renderer_main.cc b/content/renderer/renderer_main.cc
index 661319b2..e989b27 100644
--- a/content/renderer/renderer_main.cc
+++ b/content/renderer/renderer_main.cc
@@ -75,8 +75,8 @@
 }
 
 #if defined(USE_OZONE)
-base::LazyInstance<scoped_ptr<ui::ClientNativePixmapFactory>> g_pixmap_factory =
-    LAZY_INSTANCE_INITIALIZER;
+base::LazyInstance<std::unique_ptr<ui::ClientNativePixmapFactory>>
+    g_pixmap_factory = LAZY_INSTANCE_INITIALIZER;
 #endif
 
 }  // namespace
@@ -135,12 +135,12 @@
   // As long as scrollbars on Mac are painted with Cocoa, the message pump
   // needs to be backed by a Foundation-level loop to process NSTimers. See
   // http://crbug.com/306348#c24 for details.
-  scoped_ptr<base::MessagePump> pump(new base::MessagePumpNSRunLoop());
-  scoped_ptr<base::MessageLoop> main_message_loop(
+  std::unique_ptr<base::MessagePump> pump(new base::MessagePumpNSRunLoop());
+  std::unique_ptr<base::MessageLoop> main_message_loop(
       new base::MessageLoop(std::move(pump)));
 #else
   // The main message loop of the renderer services doesn't have IO or UI tasks.
-  scoped_ptr<base::MessageLoop> main_message_loop(new base::MessageLoop());
+  std::unique_ptr<base::MessageLoop> main_message_loop(new base::MessageLoop());
 #endif
 
   base::PlatformThread::SetName("CrRendererMain");
@@ -167,13 +167,13 @@
     DCHECK(result);
   }
 
-  scoped_ptr<base::FeatureList> feature_list(new base::FeatureList);
+  std::unique_ptr<base::FeatureList> feature_list(new base::FeatureList);
   feature_list->InitializeFromCommandLine(
       parsed_command_line.GetSwitchValueASCII(switches::kEnableFeatures),
       parsed_command_line.GetSwitchValueASCII(switches::kDisableFeatures));
   base::FeatureList::SetInstance(std::move(feature_list));
 
-  scoped_ptr<scheduler::RendererScheduler> renderer_scheduler(
+  std::unique_ptr<scheduler::RendererScheduler> renderer_scheduler(
       scheduler::RendererScheduler::Create());
 
   // PlatformInitialize uses FieldTrials, so this must happen later.
diff --git a/content/renderer/renderer_main_platform_delegate_win.cc b/content/renderer/renderer_main_platform_delegate_win.cc
index 25381a5..0277d3e 100644
--- a/content/renderer/renderer_main_platform_delegate_win.cc
+++ b/content/renderer/renderer_main_platform_delegate_win.cc
@@ -6,9 +6,10 @@
 
 #include <dwrite.h>
 
+#include <memory>
+
 #include "base/command_line.h"
 #include "base/logging.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/strings/string16.h"
 #include "base/win/scoped_comptr.h"
 #include "base/win/win_util.h"
@@ -65,7 +66,7 @@
     // After TimeZone::createDefault is called once here, the timezone ID is
     // cached and there's no more need to access the registry. If the sandbox
     // is disabled, we don't have to make this dummy call.
-    scoped_ptr<icu::TimeZone> zone(icu::TimeZone::createDefault());
+    std::unique_ptr<icu::TimeZone> zone(icu::TimeZone::createDefault());
 
     if (use_direct_write) {
       InitializeDWriteFontProxy();
diff --git a/content/renderer/resource_fetcher_browsertest.cc b/content/renderer/resource_fetcher_browsertest.cc
index f525de4..66e3291 100644
--- a/content/renderer/resource_fetcher_browsertest.cc
+++ b/content/renderer/resource_fetcher_browsertest.cc
@@ -124,7 +124,7 @@
   }
 
  private:
-  scoped_ptr<ResourceFetcher> fetcher_;
+  std::unique_ptr<ResourceFetcher> fetcher_;
 };
 
 class ResourceFetcherTests : public ContentBrowserTest {
@@ -151,8 +151,8 @@
   void ResourceFetcherDownloadOnRenderer(const GURL& url) {
     WebFrame* frame = GetRenderView()->GetWebView()->mainFrame();
 
-    scoped_ptr<FetcherDelegate> delegate(new FetcherDelegate);
-    scoped_ptr<ResourceFetcher> fetcher(ResourceFetcher::Create(url));
+    std::unique_ptr<FetcherDelegate> delegate(new FetcherDelegate);
+    std::unique_ptr<ResourceFetcher> fetcher(ResourceFetcher::Create(url));
     fetcher->Start(frame,
                    WebURLRequest::RequestContextInternal,
                    WebURLRequest::FrameTypeNone,
@@ -170,8 +170,8 @@
   void ResourceFetcher404OnRenderer(const GURL& url) {
     WebFrame* frame = GetRenderView()->GetWebView()->mainFrame();
 
-    scoped_ptr<FetcherDelegate> delegate(new FetcherDelegate);
-    scoped_ptr<ResourceFetcher> fetcher(ResourceFetcher::Create(url));
+    std::unique_ptr<FetcherDelegate> delegate(new FetcherDelegate);
+    std::unique_ptr<ResourceFetcher> fetcher(ResourceFetcher::Create(url));
     fetcher->Start(frame,
                    WebURLRequest::RequestContextInternal,
                    WebURLRequest::FrameTypeNone,
@@ -189,8 +189,8 @@
 
     // Try to fetch a page on a site that doesn't exist.
     GURL url("http://localhost:1339/doesnotexist");
-    scoped_ptr<FetcherDelegate> delegate(new FetcherDelegate);
-    scoped_ptr<ResourceFetcher> fetcher(ResourceFetcher::Create(url));
+    std::unique_ptr<FetcherDelegate> delegate(new FetcherDelegate);
+    std::unique_ptr<ResourceFetcher> fetcher(ResourceFetcher::Create(url));
     fetcher->Start(frame,
                    WebURLRequest::RequestContextInternal,
                    WebURLRequest::FrameTypeNone,
@@ -210,8 +210,8 @@
   void ResourceFetcherTimeoutOnRenderer(const GURL& url) {
     WebFrame* frame = GetRenderView()->GetWebView()->mainFrame();
 
-    scoped_ptr<FetcherDelegate> delegate(new FetcherDelegate);
-    scoped_ptr<ResourceFetcher> fetcher(ResourceFetcher::Create(url));
+    std::unique_ptr<FetcherDelegate> delegate(new FetcherDelegate);
+    std::unique_ptr<ResourceFetcher> fetcher(ResourceFetcher::Create(url));
     fetcher->Start(frame,
                    WebURLRequest::RequestContextInternal,
                    WebURLRequest::FrameTypeNone,
@@ -232,8 +232,8 @@
   void ResourceFetcherDeletedInCallbackOnRenderer(const GURL& url) {
     WebFrame* frame = GetRenderView()->GetWebView()->mainFrame();
 
-    scoped_ptr<EvilFetcherDelegate> delegate(new EvilFetcherDelegate);
-    scoped_ptr<ResourceFetcher> fetcher(ResourceFetcher::Create(url));
+    std::unique_ptr<EvilFetcherDelegate> delegate(new EvilFetcherDelegate);
+    std::unique_ptr<ResourceFetcher> fetcher(ResourceFetcher::Create(url));
     fetcher->Start(frame,
                    WebURLRequest::RequestContextInternal,
                    WebURLRequest::FrameTypeNone,
@@ -251,8 +251,8 @@
 
     WebFrame* frame = GetRenderView()->GetWebView()->mainFrame();
 
-    scoped_ptr<FetcherDelegate> delegate(new FetcherDelegate);
-    scoped_ptr<ResourceFetcher> fetcher(ResourceFetcher::Create(url));
+    std::unique_ptr<FetcherDelegate> delegate(new FetcherDelegate);
+    std::unique_ptr<ResourceFetcher> fetcher(ResourceFetcher::Create(url));
     fetcher->SetMethod("POST");
     fetcher->SetBody(kBody);
     fetcher->Start(frame,
@@ -272,8 +272,8 @@
 
     WebFrame* frame = GetRenderView()->GetWebView()->mainFrame();
 
-    scoped_ptr<FetcherDelegate> delegate(new FetcherDelegate);
-    scoped_ptr<ResourceFetcher> fetcher(ResourceFetcher::Create(url));
+    std::unique_ptr<FetcherDelegate> delegate(new FetcherDelegate);
+    std::unique_ptr<ResourceFetcher> fetcher(ResourceFetcher::Create(url));
     fetcher->SetHeader("header", kHeader);
     fetcher->Start(frame,
                    WebURLRequest::RequestContextInternal,
diff --git a/content/renderer/sad_plugin.cc b/content/renderer/sad_plugin.cc
index 163ae99..f2b0886 100644
--- a/content/renderer/sad_plugin.cc
+++ b/content/renderer/sad_plugin.cc
@@ -5,8 +5,8 @@
 #include "content/renderer/sad_plugin.h"
 
 #include <algorithm>
+#include <memory>
 
-#include "base/memory/scoped_ptr.h"
 #include "skia/ext/platform_canvas.h"
 #include "ui/gfx/geometry/rect.h"
 
diff --git a/content/renderer/scheduler/resource_dispatch_throttler_unittest.cc b/content/renderer/scheduler/resource_dispatch_throttler_unittest.cc
index 15a2334..35d87a2 100644
--- a/content/renderer/scheduler/resource_dispatch_throttler_unittest.cc
+++ b/content/renderer/scheduler/resource_dispatch_throttler_unittest.cc
@@ -188,7 +188,7 @@
   ScopedMessages sent_messages_;
 
  private:
-  scoped_ptr<ResourceDispatchThrottlerForTest> throttler_;
+  std::unique_ptr<ResourceDispatchThrottlerForTest> throttler_;
   RendererSchedulerForTest scheduler_;
   int last_request_id_;
   bool flush_scheduled_;
diff --git a/content/renderer/screen_orientation/screen_orientation_dispatcher_unittest.cc b/content/renderer/screen_orientation/screen_orientation_dispatcher_unittest.cc
index c57f5d0..4d9cf0226d 100644
--- a/content/renderer/screen_orientation/screen_orientation_dispatcher_unittest.cc
+++ b/content/renderer/screen_orientation/screen_orientation_dispatcher_unittest.cc
@@ -5,9 +5,9 @@
 #include "content/renderer/screen_orientation/screen_orientation_dispatcher.h"
 
 #include <list>
+#include <memory>
 
 #include "base/logging.h"
-#include "base/memory/scoped_ptr.h"
 #include "content/common/screen_orientation_messages.h"
 #include "content/public/test/test_utils.h"
 #include "ipc/ipc_test_sink.h"
@@ -100,7 +100,7 @@
   }
 
   IPC::TestSink sink_;
-  scoped_ptr<ScreenOrientationDispatcher> dispatcher_;
+  std::unique_ptr<ScreenOrientationDispatcher> dispatcher_;
 };
 
 // Test that calling lockOrientation() followed by unlockOrientation() cancel
diff --git a/content/renderer/service_worker/embedded_worker_dispatcher.cc b/content/renderer/service_worker/embedded_worker_dispatcher.cc
index f4334ed..c3cfb32 100644
--- a/content/renderer/service_worker/embedded_worker_dispatcher.cc
+++ b/content/renderer/service_worker/embedded_worker_dispatcher.cc
@@ -4,7 +4,8 @@
 
 #include "content/renderer/service_worker/embedded_worker_dispatcher.h"
 
-#include "base/memory/scoped_ptr.h"
+#include <memory>
+
 #include "base/metrics/histogram_macros.h"
 #include "base/strings/string16.h"
 #include "base/strings/utf_string_conversions.h"
@@ -39,8 +40,8 @@
 
  private:
   ScopedChildProcessReference process_ref_;
-  scoped_ptr<blink::WebEmbeddedWorker> worker_;
-  scoped_ptr<EmbeddedWorkerDevToolsAgent> dev_tools_agent_;
+  std::unique_ptr<blink::WebEmbeddedWorker> worker_;
+  std::unique_ptr<EmbeddedWorkerDevToolsAgent> dev_tools_agent_;
 };
 
 EmbeddedWorkerDispatcher::EmbeddedWorkerDispatcher() : weak_factory_(this) {}
@@ -78,16 +79,14 @@
     const EmbeddedWorkerMsg_StartWorker_Params& params) {
   DCHECK(!workers_.Lookup(params.embedded_worker_id));
   TRACE_EVENT0("ServiceWorker", "EmbeddedWorkerDispatcher::OnStartWorker");
-  scoped_ptr<WorkerWrapper> wrapper(
-      new WorkerWrapper(blink::WebEmbeddedWorker::create(
-                            new ServiceWorkerContextClient(
-                                params.embedded_worker_id,
-                                params.service_worker_version_id,
-                                params.scope,
-                                params.script_url,
-                                params.worker_devtools_agent_route_id),
-                            NULL),
-                        params.worker_devtools_agent_route_id));
+  std::unique_ptr<WorkerWrapper> wrapper(new WorkerWrapper(
+      blink::WebEmbeddedWorker::create(
+          new ServiceWorkerContextClient(params.embedded_worker_id,
+                                         params.service_worker_version_id,
+                                         params.scope, params.script_url,
+                                         params.worker_devtools_agent_route_id),
+          NULL),
+      params.worker_devtools_agent_route_id));
 
   blink::WebEmbeddedWorkerStartData start_data;
   start_data.scriptURL = params.script_url;
diff --git a/content/renderer/service_worker/service_worker_context_client.cc b/content/renderer/service_worker/service_worker_context_client.cc
index 8d566ab7..64c72d8 100644
--- a/content/renderer/service_worker/service_worker_context_client.cc
+++ b/content/renderer/service_worker/service_worker_context_client.cc
@@ -97,7 +97,7 @@
     ServiceWorkerNetworkProvider* provider =
         ServiceWorkerNetworkProvider::FromDocumentState(
             static_cast<DataSourceExtraData*>(data_source->getExtraData()));
-    scoped_ptr<RequestExtraData> extra_data(new RequestExtraData);
+    std::unique_ptr<RequestExtraData> extra_data(new RequestExtraData);
     extra_data->set_service_worker_provider_id(provider->provider_id());
     extra_data->set_originated_from_service_worker(true);
     request.setExtraData(extra_data.release());
@@ -109,7 +109,7 @@
     int routing_id,
     const std::string& uuid,
     const base::string16& message,
-    scoped_ptr<blink::WebMessagePortChannelArray> channels) {
+    std::unique_ptr<blink::WebMessagePortChannelArray> channels) {
   sender->Send(new ServiceWorkerHostMsg_PostMessageToClient(
       routing_id, uuid, message,
       WebMessagePortChannelImpl::ExtractMessagePortIDs(std::move(channels))));
@@ -567,9 +567,9 @@
 
   // Create a content::ServiceWorkerNetworkProvider for this data source so
   // we can observe its requests.
-  scoped_ptr<ServiceWorkerNetworkProvider> provider(
-      new ServiceWorkerNetworkProvider(
-          MSG_ROUTING_NONE, SERVICE_WORKER_PROVIDER_FOR_CONTROLLER));
+  std::unique_ptr<ServiceWorkerNetworkProvider> provider(
+      new ServiceWorkerNetworkProvider(MSG_ROUTING_NONE,
+                                       SERVICE_WORKER_PROVIDER_FOR_CONTROLLER));
   provider_context_ = provider->context();
 
   // Tell the network provider about which version to load.
@@ -604,7 +604,7 @@
   // messages for MessagePort (e.g. QueueMessages) are sent from main thread
   // (with thread hopping), so we need to do the same thread hopping here not
   // to overtake those messages.
-  scoped_ptr<blink::WebMessagePortChannelArray> channel_array(channels);
+  std::unique_ptr<blink::WebMessagePortChannelArray> channel_array(channels);
   main_thread_task_runner_->PostTask(
       FROM_HERE, base::Bind(&SendPostMessageToClientOnMainThread,
                             base::RetainedRef(sender_), GetRoutingID(),
@@ -731,7 +731,7 @@
   }
 
   DCHECK(params.source.service_worker_info.IsValid());
-  scoped_ptr<ServiceWorkerHandleReference> handle =
+  std::unique_ptr<ServiceWorkerHandleReference> handle =
       ServiceWorkerHandleReference::Adopt(params.source.service_worker_info,
                                           sender_.get());
   ServiceWorkerDispatcher* dispatcher =
@@ -867,7 +867,7 @@
     NOTREACHED() << "Got stray response: " << request_id;
     return;
   }
-  scoped_ptr<blink::WebServiceWorkerClientInfo> web_client;
+  std::unique_ptr<blink::WebServiceWorkerClientInfo> web_client;
   if (!client.IsEmpty()) {
     DCHECK(client.IsValid());
     web_client.reset(new blink::WebServiceWorkerClientInfo(
@@ -908,7 +908,7 @@
     NOTREACHED() << "Got stray response: " << request_id;
     return;
   }
-  scoped_ptr<blink::WebServiceWorkerClientInfo> web_client;
+  std::unique_ptr<blink::WebServiceWorkerClientInfo> web_client;
   if (!client.IsEmpty()) {
     DCHECK(client.IsValid());
     web_client.reset(new blink::WebServiceWorkerClientInfo(
@@ -947,7 +947,7 @@
   }
   if (!client.IsEmpty()) {
     DCHECK(client.IsValid());
-    scoped_ptr<blink::WebServiceWorkerClientInfo> web_client (
+    std::unique_ptr<blink::WebServiceWorkerClientInfo> web_client(
         new blink::WebServiceWorkerClientInfo(
             ToWebServiceWorkerClientInfo(client)));
     callback->onSuccess(std::move(web_client));
@@ -971,7 +971,7 @@
     NOTREACHED() << "Got stray response: " << request_id;
     return;
   }
-  scoped_ptr<blink::WebServiceWorkerClientInfo> web_client;
+  std::unique_ptr<blink::WebServiceWorkerClientInfo> web_client;
   if (!client.IsEmpty()) {
     DCHECK(client.IsValid());
     web_client.reset(new blink::WebServiceWorkerClientInfo(
diff --git a/content/renderer/service_worker/service_worker_context_client.h b/content/renderer/service_worker/service_worker_context_client.h
index 5cc4121d..e67189c 100644
--- a/content/renderer/service_worker/service_worker_context_client.h
+++ b/content/renderer/service_worker/service_worker_context_client.h
@@ -9,13 +9,13 @@
 #include <stdint.h>
 
 #include <map>
+#include <memory>
 #include <string>
 #include <vector>
 
 #include "base/id_map.h"
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/strings/string16.h"
 #include "base/time/time.h"
 #include "content/child/webmessageportchannel_impl.h"
@@ -257,7 +257,7 @@
 
   // Initialized on the worker thread in workerContextStarted and
   // destructed on the worker thread in willDestroyWorkerContext.
-  scoped_ptr<WorkerContextData> context_;
+  std::unique_ptr<WorkerContextData> context_;
 
   DISALLOW_COPY_AND_ASSIGN(ServiceWorkerContextClient);
 };
diff --git a/content/renderer/service_worker/service_worker_type_util.cc b/content/renderer/service_worker/service_worker_type_util.cc
index 07c0e6b..9eb9f9c 100644
--- a/content/renderer/service_worker/service_worker_type_util.cc
+++ b/content/renderer/service_worker/service_worker_type_util.cc
@@ -4,9 +4,9 @@
 
 #include "content/renderer/service_worker/service_worker_type_util.h"
 
+#include <memory>
 #include <string>
 
-#include "base/memory/scoped_ptr.h"
 #include "base/strings/utf_string_conversions.h"
 #include "content/common/service_worker/service_worker_types.h"
 #include "third_party/WebKit/public/platform/WebHTTPHeaderVisitor.h"
@@ -38,8 +38,9 @@
   ServiceWorkerHeaderMap* headers_;
 };
 
-scoped_ptr<HeaderVisitor> MakeHeaderVisitor(ServiceWorkerHeaderMap* headers) {
-  return scoped_ptr<HeaderVisitor>(new HeaderVisitor(headers));
+std::unique_ptr<HeaderVisitor> MakeHeaderVisitor(
+    ServiceWorkerHeaderMap* headers) {
+  return std::unique_ptr<HeaderVisitor>(new HeaderVisitor(headers));
 }
 
 }  // namespace
diff --git a/content/renderer/shared_memory_seqlock_reader.h b/content/renderer/shared_memory_seqlock_reader.h
index 7d5bc936..a7a7a22 100644
--- a/content/renderer/shared_memory_seqlock_reader.h
+++ b/content/renderer/shared_memory_seqlock_reader.h
@@ -7,9 +7,10 @@
 
 #include <stddef.h>
 
+#include <memory>
+
 #include "base/logging.h"
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/shared_memory.h"
 #include "content/common/shared_memory_seqlock_buffer.h"
 
@@ -30,7 +31,7 @@
 
   static const int kMaximumContentionCount = 10;
   base::SharedMemoryHandle renderer_shared_memory_handle_;
-  scoped_ptr<base::SharedMemory> renderer_shared_memory_;
+  std::unique_ptr<base::SharedMemory> renderer_shared_memory_;
 };
 
 }  // namespace internal
@@ -63,7 +64,7 @@
 
  private:
   SharedMemorySeqLockBuffer<Data>* buffer_;
-  scoped_ptr<Data> temp_buffer_;
+  std::unique_ptr<Data> temp_buffer_;
 
   DISALLOW_COPY_AND_ASSIGN(SharedMemorySeqLockReader);
 };
diff --git a/content/renderer/skia_benchmarking_extension.cc b/content/renderer/skia_benchmarking_extension.cc
index 45189302..1f4a93e 100644
--- a/content/renderer/skia_benchmarking_extension.cc
+++ b/content/renderer/skia_benchmarking_extension.cc
@@ -49,7 +49,7 @@
   if (gfx::PNGCodec::Decode(data, size, bm))
     return true;
   // Try JPEG.
-  scoped_ptr<SkBitmap> decoded_jpeg(gfx::JPEGCodec::Decode(data, size));
+  std::unique_ptr<SkBitmap> decoded_jpeg(gfx::JPEGCodec::Decode(data, size));
   if (decoded_jpeg) {
     *bm = *decoded_jpeg;
     return true;
@@ -57,15 +57,16 @@
   return false;
 }
 
-scoped_ptr<base::Value> ParsePictureArg(v8::Isolate* isolate,
-                                        v8::Local<v8::Value> arg) {
-  scoped_ptr<content::V8ValueConverter> converter(
+std::unique_ptr<base::Value> ParsePictureArg(v8::Isolate* isolate,
+                                             v8::Local<v8::Value> arg) {
+  std::unique_ptr<content::V8ValueConverter> converter(
       content::V8ValueConverter::create());
-  return scoped_ptr<base::Value>(
+  return std::unique_ptr<base::Value>(
       converter->FromV8Value(arg, isolate->GetCurrentContext()));
 }
 
-scoped_ptr<Picture> CreatePictureFromEncodedString(const std::string& encoded) {
+std::unique_ptr<Picture> CreatePictureFromEncodedString(
+    const std::string& encoded) {
   std::string decoded;
   base::Base64Decode(encoded, &decoded);
   SkMemoryStream stream(decoded.data(), decoded.size());
@@ -75,15 +76,15 @@
   if (!skpicture)
     return nullptr;
 
-  scoped_ptr<Picture> picture(new Picture);
+  std::unique_ptr<Picture> picture(new Picture);
   picture->layer_rect = gfx::SkIRectToRect(skpicture->cullRect().roundOut());
   picture->picture = std::move(skpicture);
   return picture;
 }
 
-scoped_ptr<Picture> ParsePictureStr(v8::Isolate* isolate,
-                                    v8::Local<v8::Value> arg) {
-  scoped_ptr<base::Value> picture_value = ParsePictureArg(isolate, arg);
+std::unique_ptr<Picture> ParsePictureStr(v8::Isolate* isolate,
+                                         v8::Local<v8::Value> arg) {
+  std::unique_ptr<base::Value> picture_value = ParsePictureArg(isolate, arg);
   if (!picture_value)
     return nullptr;
   // Decode the picture from base64.
@@ -93,9 +94,9 @@
   return CreatePictureFromEncodedString(encoded);
 }
 
-scoped_ptr<Picture> ParsePictureHash(v8::Isolate* isolate,
-                                     v8::Local<v8::Value> arg) {
-  scoped_ptr<base::Value> picture_value = ParsePictureArg(isolate, arg);
+std::unique_ptr<Picture> ParsePictureHash(v8::Isolate* isolate,
+                                          v8::Local<v8::Value> arg) {
+  std::unique_ptr<base::Value> picture_value = ParsePictureArg(isolate, arg);
   if (!picture_value)
     return nullptr;
   const base::DictionaryValue* value = nullptr;
@@ -179,7 +180,7 @@
     return;
   v8::Local<v8::Value> picture_handle;
   args->GetNext(&picture_handle);
-  scoped_ptr<Picture> picture = ParsePictureHash(isolate, picture_handle);
+  std::unique_ptr<Picture> picture = ParsePictureHash(isolate, picture_handle);
   if (!picture.get())
     return;
 
@@ -192,9 +193,9 @@
   if (!args->PeekNext().IsEmpty()) {
     v8::Local<v8::Value> params;
     args->GetNext(&params);
-    scoped_ptr<content::V8ValueConverter> converter(
+    std::unique_ptr<content::V8ValueConverter> converter(
         content::V8ValueConverter::create());
-    scoped_ptr<base::Value> params_value(
+    std::unique_ptr<base::Value> params_value(
         converter->FromV8Value(params, context));
 
     const base::DictionaryValue* params_dict = NULL;
@@ -263,7 +264,7 @@
     return;
   v8::Local<v8::Value> picture_handle;
   args->GetNext(&picture_handle);
-  scoped_ptr<Picture> picture = ParsePictureHash(isolate, picture_handle);
+  std::unique_ptr<Picture> picture = ParsePictureHash(isolate, picture_handle);
   if (!picture.get())
     return;
 
@@ -272,7 +273,7 @@
   picture->picture->playback(&benchmarking_canvas);
 
   v8::Local<v8::Context> context = isolate->GetCurrentContext();
-  scoped_ptr<content::V8ValueConverter> converter(
+  std::unique_ptr<content::V8ValueConverter> converter(
       content::V8ValueConverter::create());
 
   args->Return(converter->ToV8Value(&benchmarking_canvas.Commands(), context));
@@ -284,7 +285,7 @@
     return;
   v8::Local<v8::Value> picture_handle;
   args->GetNext(&picture_handle);
-  scoped_ptr<Picture> picture = ParsePictureHash(isolate, picture_handle);
+  std::unique_ptr<Picture> picture = ParsePictureHash(isolate, picture_handle);
   if (!picture.get())
     return;
 
@@ -325,7 +326,7 @@
     return;
   v8::Local<v8::Value> picture_handle;
   args->GetNext(&picture_handle);
-  scoped_ptr<Picture> picture = ParsePictureStr(isolate, picture_handle);
+  std::unique_ptr<Picture> picture = ParsePictureStr(isolate, picture_handle);
   if (!picture.get())
     return;
 
diff --git a/content/renderer/speech_recognition_dispatcher.cc b/content/renderer/speech_recognition_dispatcher.cc
index 9c20752..585b61c 100644
--- a/content/renderer/speech_recognition_dispatcher.cc
+++ b/content/renderer/speech_recognition_dispatcher.cc
@@ -272,7 +272,7 @@
 
   // The instantiation and type of SyncSocket is up to the client since it
   // is dependency injected to the SpeechRecognitionAudioSink.
-  scoped_ptr<base::SyncSocket> socket(new base::CancelableSyncSocket(
+  std::unique_ptr<base::SyncSocket> socket(new base::CancelableSyncSocket(
       base::SyncSocket::UnwrapHandle(descriptor)));
 
   speech_audio_sink_.reset(new SpeechRecognitionAudioSink(
diff --git a/content/renderer/speech_recognition_dispatcher.h b/content/renderer/speech_recognition_dispatcher.h
index 21eb831..bde0bdf0 100644
--- a/content/renderer/speech_recognition_dispatcher.h
+++ b/content/renderer/speech_recognition_dispatcher.h
@@ -6,9 +6,9 @@
 #define CONTENT_RENDERER_SPEECH_RECOGNITION_DISPATCHER_H_
 
 #include <map>
+#include <memory>
 
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/shared_memory.h"
 #include "base/sync_socket.h"
 #include "content/public/common/speech_recognition_result.h"
@@ -84,7 +84,7 @@
   blink::WebMediaStreamTrack audio_track_;
 
   // Audio sink used to provide audio from the track.
-  scoped_ptr<SpeechRecognitionAudioSink> speech_audio_sink_;
+  std::unique_ptr<SpeechRecognitionAudioSink> speech_audio_sink_;
 #endif
 
   typedef std::map<int, blink::WebSpeechRecognitionHandle> HandleMap;
diff --git a/content/renderer/text_input_client_observer.cc b/content/renderer/text_input_client_observer.cc
index b97be4a3..dec0181 100644
--- a/content/renderer/text_input_client_observer.cc
+++ b/content/renderer/text_input_client_observer.cc
@@ -6,7 +6,8 @@
 
 #include <stddef.h>
 
-#include "base/memory/scoped_ptr.h"
+#include <memory>
+
 #include "build/build_config.h"
 #include "content/common/text_input_client_messages.h"
 #include "content/renderer/pepper/pepper_plugin_instance_impl.h"
@@ -54,7 +55,7 @@
   NSAttributedString* string = blink::WebSubstringUtil::attributedWordAtPoint(
       webview(), point, baselinePoint);
 
-  scoped_ptr<const mac::AttributedStringCoder::EncodedString> encoded(
+  std::unique_ptr<const mac::AttributedStringCoder::EncodedString> encoded(
       mac::AttributedStringCoder::Encode(string));
   Send(new TextInputClientReplyMsg_GotStringAtPoint(
       routing_id(), *encoded.get(), baselinePoint));
@@ -99,7 +100,7 @@
     string = blink::WebSubstringUtil::attributedSubstringInRange(
         frame, range.start(), range.length(), &baselinePoint);
   }
-  scoped_ptr<const mac::AttributedStringCoder::EncodedString> encoded(
+  std::unique_ptr<const mac::AttributedStringCoder::EncodedString> encoded(
       mac::AttributedStringCoder::Encode(string));
   Send(new TextInputClientReplyMsg_GotStringForRange(routing_id(),
       *encoded.get(), baselinePoint));
diff --git a/content/renderer/usb/web_usb_client_impl.cc b/content/renderer/usb/web_usb_client_impl.cc
index fc79424d..6f4c3af 100644
--- a/content/renderer/usb/web_usb_client_impl.cc
+++ b/content/renderer/usb/web_usb_client_impl.cc
@@ -12,7 +12,6 @@
 #include "base/bind.h"
 #include "base/callback.h"
 #include "base/memory/ptr_util.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/move.h"
 #include "base/strings/utf_string_conversions.h"
 #include "content/child/mojo/type_converters.h"
@@ -39,7 +38,7 @@
 // for any type |T|.
 template <typename CallbacksType>
 void RejectCallbacksWithError(const blink::WebUSBError& error,
-                              scoped_ptr<CallbacksType> callbacks) {
+                              std::unique_ptr<CallbacksType> callbacks) {
   callbacks->onError(error);
 }
 
diff --git a/content/renderer/usb/web_usb_device_impl.cc b/content/renderer/usb/web_usb_device_impl.cc
index bb2ca99..b66fc2e 100644
--- a/content/renderer/usb/web_usb_device_impl.cc
+++ b/content/renderer/usb/web_usb_device_impl.cc
@@ -38,12 +38,12 @@
 // for any type |T|.
 template <typename CallbacksType>
 void RejectWithError(const blink::WebUSBError& error,
-                     scoped_ptr<CallbacksType> callbacks) {
+                     std::unique_ptr<CallbacksType> callbacks) {
   callbacks->onError(error);
 }
 
 template <typename CallbacksType>
-void RejectWithTransferError(scoped_ptr<CallbacksType> callbacks) {
+void RejectWithTransferError(std::unique_ptr<CallbacksType> callbacks) {
   RejectWithError(blink::WebUSBError(blink::WebUSBError::Error::Network,
                                      base::ASCIIToUTF16(kTransferFailed)),
                   std::move(callbacks));
@@ -124,7 +124,8 @@
       RejectWithTransferError(std::move(scoped_callbacks));
       return;
   }
-  scoped_ptr<blink::WebUSBTransferInfo> info(new blink::WebUSBTransferInfo());
+  std::unique_ptr<blink::WebUSBTransferInfo> info(
+      new blink::WebUSBTransferInfo());
   info->status.assign(
       std::vector<blink::WebUSBTransferInfo::Status>(1, web_status));
   info->data.assign(data);
@@ -150,7 +151,8 @@
   }
   // TODO(rockot): Device::ControlTransferOut should expose the number of bytes
   // actually transferred so we can send it from here.
-  scoped_ptr<blink::WebUSBTransferInfo> info(new blink::WebUSBTransferInfo());
+  std::unique_ptr<blink::WebUSBTransferInfo> info(
+      new blink::WebUSBTransferInfo());
   info->status.assign(
       std::vector<blink::WebUSBTransferInfo::Status>(1, web_status));
   info->bytesTransferred.assign(std::vector<uint32_t>(1, bytes_written));
@@ -162,7 +164,8 @@
     mojo::Array<uint8_t> data,
     mojo::Array<device::usb::IsochronousPacketPtr> packets) {
   auto scoped_callbacks = callbacks.PassCallbacks();
-  scoped_ptr<blink::WebUSBTransferInfo> info(new blink::WebUSBTransferInfo());
+  std::unique_ptr<blink::WebUSBTransferInfo> info(
+      new blink::WebUSBTransferInfo());
   info->data.assign(data);
   info->status =
       blink::WebVector<blink::WebUSBTransferInfo::Status>(packets.size());
@@ -193,7 +196,8 @@
     ScopedWebCallbacks<blink::WebUSBDeviceTransferCallbacks> callbacks,
     mojo::Array<device::usb::IsochronousPacketPtr> packets) {
   auto scoped_callbacks = callbacks.PassCallbacks();
-  scoped_ptr<blink::WebUSBTransferInfo> info(new blink::WebUSBTransferInfo());
+  std::unique_ptr<blink::WebUSBTransferInfo> info(
+      new blink::WebUSBTransferInfo());
   info->status =
       blink::WebVector<blink::WebUSBTransferInfo::Status>(packets.size());
   info->bytesTransferred = blink::WebVector<uint32_t>(packets.size());
diff --git a/content/renderer/usb/web_usb_device_impl.h b/content/renderer/usb/web_usb_device_impl.h
index dea2e8f..c72eaae 100644
--- a/content/renderer/usb/web_usb_device_impl.h
+++ b/content/renderer/usb/web_usb_device_impl.h
@@ -8,8 +8,9 @@
 #include <stddef.h>
 #include <stdint.h>
 
+#include <memory>
+
 #include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "device/usb/public/interfaces/device.mojom.h"
 #include "device/usb/public/interfaces/device_manager.mojom.h"
diff --git a/content/renderer/web_ui_extension.cc b/content/renderer/web_ui_extension.cc
index 1429fd5..0751e6ee 100644
--- a/content/renderer/web_ui_extension.cc
+++ b/content/renderer/web_ui_extension.cc
@@ -4,7 +4,8 @@
 
 #include "content/renderer/web_ui_extension.h"
 
-#include "base/memory/scoped_ptr.h"
+#include <memory>
+
 #include "base/values.h"
 #include "content/common/view_messages.h"
 #include "content/public/child/v8_value_converter.h"
@@ -96,7 +97,7 @@
 
   // If they've provided an optional message parameter, convert that into a
   // Value to send to the browser process.
-  scoped_ptr<base::ListValue> content;
+  std::unique_ptr<base::ListValue> content;
   if (args->PeekNext().IsEmpty() || args->PeekNext()->IsUndefined()) {
     content.reset(new base::ListValue());
   } else {
@@ -106,7 +107,7 @@
       return;
     }
 
-    scoped_ptr<V8ValueConverter> converter(V8ValueConverter::create());
+    std::unique_ptr<V8ValueConverter> converter(V8ValueConverter::create());
 
     base::Value* value =
         converter->FromV8Value(obj, frame->mainWorldScriptContext());