diff --git a/gpu/include/GrTypes.h b/gpu/include/GrTypes.h
index c51ee12..c57ed51 100644
--- a/gpu/include/GrTypes.h
+++ b/gpu/include/GrTypes.h
@@ -506,13 +506,6 @@
     kNone_GrPlatformRenderTargetFlagBit             = 0x0,
 
     /**
-     * Specifies that the object being created is multisampled.
-     * WILL BE REMOVED ONCE WEBKIT STOPS USING THIS. INSTEAD
-     * SPECIFY # OF SAMPLES IN GrPlatformSurfaceDesc::fSampleCnt
-     */
-    kIsMultisampled_GrPlatformRenderTargetFlagBit   = 0x1,
-
-    /**
      * Gives permission to Gr to perform the downsample-resolve of a
      * multisampled render target. If this is not set then read pixel
      * operations may fail. If the object is both a texture and render target
diff --git a/gpu/src/GrContext.cpp b/gpu/src/GrContext.cpp
index 689cb57..639e25d 100644
--- a/gpu/src/GrContext.cpp
+++ b/gpu/src/GrContext.cpp
@@ -522,29 +522,17 @@
     // validate flags here so that GrGpu subclasses don't have to check
     if (kTexture_GrPlatformSurfaceType == desc.fSurfaceType &&
         0 != desc.fRenderTargetFlags) {
-            return NULL;
-    }
-#if !GR_USE_PLATFORM_CREATE_SAMPLE_COUNT
-    if (!(kIsMultisampled_GrPlatformRenderTargetFlagBit & desc.fRenderTargetFlags) &&
-        (kGrCanResolve_GrPlatformRenderTargetFlagBit & desc.fRenderTargetFlags)) {
-            return NULL;
-    }
-    if (kTextureRenderTarget_GrPlatformSurfaceType == desc.fSurfaceType &&
-        (kIsMultisampled_GrPlatformRenderTargetFlagBit & desc.fRenderTargetFlags) &&
-        !(kGrCanResolve_GrPlatformRenderTargetFlagBit & desc.fRenderTargetFlags)) {
         return NULL;
     }
-#else
     if (desc.fSampleCnt &&
         (kGrCanResolve_GrPlatformRenderTargetFlagBit & desc.fRenderTargetFlags)) {
-            return NULL;
+        return NULL;
     }
     if (kTextureRenderTarget_GrPlatformSurfaceType == desc.fSurfaceType &&
         desc.fSampleCnt &&
         !(kGrCanResolve_GrPlatformRenderTargetFlagBit & desc.fRenderTargetFlags)) {
         return NULL;
     }
-#endif
     return fGpu->createPlatformSurface(desc);
 }
 
diff --git a/gpu/src/GrGpuGL.cpp b/gpu/src/GrGpuGL.cpp
index fcfe2b0..c3b5f97 100644
--- a/gpu/src/GrGpuGL.cpp
+++ b/gpu/src/GrGpuGL.cpp
@@ -626,11 +626,7 @@
     if (isRenderTarget) {
         rtDesc.fRTFBOID = desc.fPlatformRenderTarget;
         rtDesc.fConfig = desc.fConfig;
-#if GR_USE_PLATFORM_CREATE_SAMPLE_COUNT
         if (desc.fSampleCnt) {
-#else
-        if (kIsMultisampled_GrPlatformRenderTargetFlagBit & desc.fRenderTargetFlags) {
-#endif
             if (kGrCanResolve_GrPlatformRenderTargetFlagBit  & desc.fRenderTargetFlags) {
                 rtDesc.fTexFBOID = desc.fPlatformResolveDestination;
             } else {
@@ -643,18 +639,7 @@
         // we don't know what the RB ids are without glGets and we don't care
         // since we aren't responsible for deleting them.
         rtDesc.fMSColorRenderbufferID = 0;
-#if GR_USE_PLATFORM_CREATE_SAMPLE_COUNT
         rtDesc.fSampleCnt = desc.fSampleCnt;
-#else
-        if (kIsMultisampled_GrPlatformRenderTargetFlagBit & desc.fRenderTargetFlags) {
-            // just guess, this code path is only compiled in WK and we aren't
-            // using MSAA anyway. This will be stripped out soon when WK sets
-            // the fSampleCnt in GrPlatformSurfaceDesc.
-            rtDesc.fSampleCnt = 4;
-        } else {
-            rtDesc.fSampleCnt = 0;
-        }
-#endif
         if (desc.fStencilBits) {
             GrGLStencilBuffer::Format format;
             format.fInternalFormat = GrGLStencilBuffer::kUnknownInternalFormat;
