diff --git a/include/utils/SkDeferredCanvas.h b/include/utils/SkDeferredCanvas.h
index ed7ec00..f531371 100644
--- a/include/utils/SkDeferredCanvas.h
+++ b/include/utils/SkDeferredCanvas.h
@@ -33,15 +33,6 @@
     */
     explicit SkDeferredCanvas(SkDevice* device);
 
-    /** Construct a canvas with the specified device to draw into, and
-     *  a device context. Equivalent to calling default constructor, then
-     *  setDevice. The canvas takes reference on the device and notification
-     *  client.
-     *  @param device Specifies a device for the canvas to draw into.
-     *  @param client Interface for dispatching notifications
-     */
-    explicit SkDeferredCanvas(SkDevice* device, NotificationClient* client);
-
     virtual ~SkDeferredCanvas();
 
     /**
@@ -65,10 +56,6 @@
      *  @return The notificationClient argument, for convenience.
      */
     NotificationClient* setNotificationClient(NotificationClient* notificationClient);
-    // Temporarily bootstrapping the deprecated method name
-    NotificationClient* setDeviceContext(NotificationClient* notificationClient) {
-        return setNotificationClient(notificationClient);
-    }
 
     /**
      *  Enable or disable deferred drawing. When deferral is disabled,
@@ -208,9 +195,6 @@
         typedef SkRefCnt INHERITED;
     };
 
-    // Temporarily bootstrapping the deprecated name for a smooth chromium DEPS roll
-    typedef NotificationClient DeviceContext;
-
 protected:
     virtual SkCanvas* canvasForDrawIter();
     DeferredDevice* getDeferredDevice() const;
diff --git a/src/utils/SkDeferredCanvas.cpp b/src/utils/SkDeferredCanvas.cpp
index c66e09c..bb33e22 100644
--- a/src/utils/SkDeferredCanvas.cpp
+++ b/src/utils/SkDeferredCanvas.cpp
@@ -571,13 +571,6 @@
     this->setDevice(device);
 }
 
-SkDeferredCanvas::SkDeferredCanvas(SkDevice* device, 
-                                   NotificationClient* notificationClient) {
-    this->init();
-    this->setDevice(device);
-    this->setNotificationClient(notificationClient);
-}
-
 void SkDeferredCanvas::init() {
     fDeferredDrawing = true; // On by default
 }
diff --git a/tests/DeferredCanvasTest.cpp b/tests/DeferredCanvasTest.cpp
index d56bba6..8f72603 100644
--- a/tests/DeferredCanvasTest.cpp
+++ b/tests/DeferredCanvasTest.cpp
@@ -241,7 +241,8 @@
     store.allocPixels();
     SkDevice device(store);
     NotificationCounter notificationCounter;
-    SkDeferredCanvas canvas(&device, &notificationCounter);
+    SkDeferredCanvas canvas(&device);
+    canvas.setNotificationClient(&notificationCounter);
 
     const int imageCount = 2;
     SkBitmap sourceImages[imageCount];
