diff --git a/chrome/VERSION b/chrome/VERSION
index cf4ac37..0c57c35 100644
--- a/chrome/VERSION
+++ b/chrome/VERSION
@@ -1,4 +1,4 @@
 MAJOR=57
 MINOR=0
-BUILD=2940
+BUILD=2941
 PATCH=0
diff --git a/services/ui/DEPS b/services/ui/DEPS
index 555506d..fb1ee86 100644
--- a/services/ui/DEPS
+++ b/services/ui/DEPS
@@ -8,6 +8,7 @@
   "+services/service_manager",
   "+services/tracing/public",
   "-services/ui/gpu",
+  "-services/ui/surfaces",
   "+third_party/skia/include",
   "+ui",
 ]
diff --git a/services/ui/gpu/DEPS b/services/ui/gpu/DEPS
index 78294ae4..7c622586 100644
--- a/services/ui/gpu/DEPS
+++ b/services/ui/gpu/DEPS
@@ -5,5 +5,12 @@
   "+gpu/ipc/common",
   "+gpu/ipc/service",
   "+media/gpu/ipc/service",
-  "+services/ui/surfaces",
+  "-services/ui/common",
 ]
+
+specific_include_rules = {
+  "gpu_main.*": [
+    "+services/ui/common",
+    "+services/ui/surfaces",
+  ]
+}
diff --git a/services/ui/gpu/gpu_service_internal.cc b/services/ui/gpu/gpu_service_internal.cc
index 6a204b52..076cb08 100644
--- a/services/ui/gpu/gpu_service_internal.cc
+++ b/services/ui/gpu/gpu_service_internal.cc
@@ -28,7 +28,6 @@
 #include "media/gpu/ipc/service/gpu_video_encode_accelerator.h"
 #include "media/gpu/ipc/service/media_gpu_channel_manager.h"
 #include "mojo/public/cpp/bindings/strong_binding.h"
-#include "services/ui/common/mus_gpu_memory_buffer_manager.h"
 #include "ui/gl/gl_implementation.h"
 #include "ui/gl/gl_switches.h"
 #include "ui/gl/gpu_switching_manager.h"
diff --git a/services/ui/surfaces/DEPS b/services/ui/surfaces/DEPS
index 99486850..257582d 100644
--- a/services/ui/surfaces/DEPS
+++ b/services/ui/surfaces/DEPS
@@ -7,6 +7,5 @@
   "+mojo/common",
   "+mojo/converters",
   "+mojo/public",
-  "+services/ui/gpu",  # TODO(sad): This needs to be removed.
   "+ui/display/types",
 ]
diff --git a/third_party/WebKit/Source/devtools/front_end/layers/LayerTreeModel.js b/third_party/WebKit/Source/devtools/front_end/layers/LayerTreeModel.js
index 33b83c6..1729feb 100644
--- a/third_party/WebKit/Source/devtools/front_end/layers/LayerTreeModel.js
+++ b/third_party/WebKit/Source/devtools/front_end/layers/LayerTreeModel.js
@@ -48,7 +48,7 @@
     if (!target.hasDOMCapability())
       return null;
 
-    var model = /** @type {?Layers.LayerTreeModel} */ (target.model(Layers.LayerTreeModel));
+    var model = target.model(Layers.LayerTreeModel);
     if (!model)
       model = new Layers.LayerTreeModel(target);
     return model;
diff --git a/third_party/WebKit/Source/devtools/front_end/resources/DOMStorageModel.js b/third_party/WebKit/Source/devtools/front_end/resources/DOMStorageModel.js
index 58bb873..436f62d 100644
--- a/third_party/WebKit/Source/devtools/front_end/resources/DOMStorageModel.js
+++ b/third_party/WebKit/Source/devtools/front_end/resources/DOMStorageModel.js
@@ -121,7 +121,7 @@
    * @return {!Resources.DOMStorageModel}
    */
   static fromTarget(target) {
-    var model = /** @type {?Resources.DOMStorageModel} */ (target.model(Resources.DOMStorageModel));
+    var model = target.model(Resources.DOMStorageModel);
     if (!model)
       model = new Resources.DOMStorageModel(target, SDK.SecurityOriginManager.fromTarget(target));
 
diff --git a/third_party/WebKit/Source/devtools/front_end/resources/IndexedDBModel.js b/third_party/WebKit/Source/devtools/front_end/resources/IndexedDBModel.js
index cf70e6c..7fcfe518 100644
--- a/third_party/WebKit/Source/devtools/front_end/resources/IndexedDBModel.js
+++ b/third_party/WebKit/Source/devtools/front_end/resources/IndexedDBModel.js
@@ -144,7 +144,7 @@
    * @return {!Resources.IndexedDBModel}
    */
   static fromTarget(target) {
-    var model = /** @type {?Resources.IndexedDBModel} */ (target.model(Resources.IndexedDBModel));
+    var model = target.model(Resources.IndexedDBModel);
     if (!model)
       model = new Resources.IndexedDBModel(target, SDK.SecurityOriginManager.fromTarget(target));
     return model;
diff --git a/third_party/WebKit/Source/devtools/front_end/sdk/ApplicationCacheModel.js b/third_party/WebKit/Source/devtools/front_end/sdk/ApplicationCacheModel.js
index e592f77..17352c30 100644
--- a/third_party/WebKit/Source/devtools/front_end/sdk/ApplicationCacheModel.js
+++ b/third_party/WebKit/Source/devtools/front_end/sdk/ApplicationCacheModel.js
@@ -56,7 +56,7 @@
    * @return {?SDK.ApplicationCacheModel}
    */
   static fromTarget(target) {
-    return /** @type {?SDK.ApplicationCacheModel} */ (target.model(SDK.ApplicationCacheModel));
+    return target.model(SDK.ApplicationCacheModel);
   }
 
   _frameNavigated(event) {
diff --git a/third_party/WebKit/Source/devtools/front_end/sdk/CSSModel.js b/third_party/WebKit/Source/devtools/front_end/sdk/CSSModel.js
index 4476b928..da779c0 100644
--- a/third_party/WebKit/Source/devtools/front_end/sdk/CSSModel.js
+++ b/third_party/WebKit/Source/devtools/front_end/sdk/CSSModel.js
@@ -88,7 +88,7 @@
    * @return {?SDK.CSSModel}
    */
   static fromTarget(target) {
-    return /** @type {?SDK.CSSModel} */ (target.model(SDK.CSSModel));
+    return target.model(SDK.CSSModel);
   }
 
   /**
diff --git a/third_party/WebKit/Source/devtools/front_end/sdk/DOMModel.js b/third_party/WebKit/Source/devtools/front_end/sdk/DOMModel.js
index 4b651e7..b4a07c0 100644
--- a/third_party/WebKit/Source/devtools/front_end/sdk/DOMModel.js
+++ b/third_party/WebKit/Source/devtools/front_end/sdk/DOMModel.js
@@ -1107,7 +1107,7 @@
    * @return {?SDK.DOMModel}
    */
   static fromTarget(target) {
-    return /** @type {?SDK.DOMModel} */ (target.model(SDK.DOMModel));
+    return target.model(SDK.DOMModel);
   }
 
   /**
diff --git a/third_party/WebKit/Source/devtools/front_end/sdk/DebuggerModel.js b/third_party/WebKit/Source/devtools/front_end/sdk/DebuggerModel.js
index 74a277e8..788c5dd 100644
--- a/third_party/WebKit/Source/devtools/front_end/sdk/DebuggerModel.js
+++ b/third_party/WebKit/Source/devtools/front_end/sdk/DebuggerModel.js
@@ -81,7 +81,7 @@
   static fromTarget(target) {
     if (!target || !target.hasJSCapability())
       return null;
-    return /** @type {?SDK.DebuggerModel} */ (target.model(SDK.DebuggerModel));
+    return target.model(SDK.DebuggerModel);
   }
 
   /**
diff --git a/third_party/WebKit/Source/devtools/front_end/sdk/NetworkLog.js b/third_party/WebKit/Source/devtools/front_end/sdk/NetworkLog.js
index 176ae779..e1628598 100644
--- a/third_party/WebKit/Source/devtools/front_end/sdk/NetworkLog.js
+++ b/third_party/WebKit/Source/devtools/front_end/sdk/NetworkLog.js
@@ -54,7 +54,7 @@
    * @return {?SDK.NetworkLog}
    */
   static fromTarget(target) {
-    return /** @type {?SDK.NetworkLog} */ (target.model(SDK.NetworkLog));
+    return target.model(SDK.NetworkLog);
   }
 
   /**
diff --git a/third_party/WebKit/Source/devtools/front_end/sdk/NetworkManager.js b/third_party/WebKit/Source/devtools/front_end/sdk/NetworkManager.js
index 00d3361..d16da37 100644
--- a/third_party/WebKit/Source/devtools/front_end/sdk/NetworkManager.js
+++ b/third_party/WebKit/Source/devtools/front_end/sdk/NetworkManager.js
@@ -65,7 +65,7 @@
    * @return {?SDK.NetworkManager}
    */
   static fromTarget(target) {
-    return /** @type {?SDK.NetworkManager} */ (target.model(SDK.NetworkManager));
+    return target.model(SDK.NetworkManager);
   }
 
   /**
diff --git a/third_party/WebKit/Source/devtools/front_end/sdk/ResourceTreeModel.js b/third_party/WebKit/Source/devtools/front_end/sdk/ResourceTreeModel.js
index ce0d8c3..606fd98 100644
--- a/third_party/WebKit/Source/devtools/front_end/sdk/ResourceTreeModel.js
+++ b/third_party/WebKit/Source/devtools/front_end/sdk/ResourceTreeModel.js
@@ -63,7 +63,7 @@
    * @return {?SDK.ResourceTreeModel}
    */
   static fromTarget(target) {
-    return /** @type {?SDK.ResourceTreeModel} */ (target.model(SDK.ResourceTreeModel));
+    return target.model(SDK.ResourceTreeModel);
   }
 
   /**
diff --git a/third_party/WebKit/Source/devtools/front_end/sdk/SecurityOriginManager.js b/third_party/WebKit/Source/devtools/front_end/sdk/SecurityOriginManager.js
index fe60be7..2b0b903f 100644
--- a/third_party/WebKit/Source/devtools/front_end/sdk/SecurityOriginManager.js
+++ b/third_party/WebKit/Source/devtools/front_end/sdk/SecurityOriginManager.js
@@ -20,8 +20,7 @@
    * @return {!SDK.SecurityOriginManager}
    */
   static fromTarget(target) {
-    var securityOriginManager =
-        /** @type {?SDK.SecurityOriginManager} */ (target.model(SDK.SecurityOriginManager));
+    var securityOriginManager = target.model(SDK.SecurityOriginManager);
     if (!securityOriginManager)
       securityOriginManager = new SDK.SecurityOriginManager(target);
     return securityOriginManager;
diff --git a/third_party/WebKit/Source/devtools/front_end/sdk/ServiceWorkerCacheModel.js b/third_party/WebKit/Source/devtools/front_end/sdk/ServiceWorkerCacheModel.js
index 0408bacd..42a8245c 100644
--- a/third_party/WebKit/Source/devtools/front_end/sdk/ServiceWorkerCacheModel.js
+++ b/third_party/WebKit/Source/devtools/front_end/sdk/ServiceWorkerCacheModel.js
@@ -31,8 +31,7 @@
   static fromTarget(target) {
     if (!target.hasBrowserCapability())
       return null;
-    var instance =
-        /** @type {?SDK.ServiceWorkerCacheModel} */ (target.model(SDK.ServiceWorkerCacheModel));
+    var instance = target.model(SDK.ServiceWorkerCacheModel);
     if (!instance)
       instance = new SDK.ServiceWorkerCacheModel(target, SDK.SecurityOriginManager.fromTarget(target));
     return instance;
diff --git a/third_party/WebKit/Source/devtools/front_end/sdk/SubTargetsManager.js b/third_party/WebKit/Source/devtools/front_end/sdk/SubTargetsManager.js
index 605acf35f..8561c06 100644
--- a/third_party/WebKit/Source/devtools/front_end/sdk/SubTargetsManager.js
+++ b/third_party/WebKit/Source/devtools/front_end/sdk/SubTargetsManager.js
@@ -37,7 +37,7 @@
    * @return {?SDK.SubTargetsManager}
    */
   static fromTarget(target) {
-    return /** @type {?SDK.SubTargetsManager} */ (target.model(SDK.SubTargetsManager));
+    return target.model(SDK.SubTargetsManager);
   }
 
   /**
diff --git a/third_party/WebKit/Source/devtools/front_end/sdk/Target.js b/third_party/WebKit/Source/devtools/front_end/sdk/Target.js
index c7a38f1..64ddbdda 100644
--- a/third_party/WebKit/Source/devtools/front_end/sdk/Target.js
+++ b/third_party/WebKit/Source/devtools/front_end/sdk/Target.js
@@ -136,8 +136,9 @@
   }
 
   /**
-   * @param {!Function} modelClass
-   * @return {?SDK.SDKModel}
+   * @param {function(new: (!T<!SDK.SDKModel>), ...)} modelClass
+   * @return {?T}
+   * @template T
    */
   model(modelClass) {
     return this._modelByConstructor.get(modelClass) || null;
diff --git a/third_party/WebKit/Source/devtools/front_end/security/SecurityModel.js b/third_party/WebKit/Source/devtools/front_end/security/SecurityModel.js
index 8e65e9a..f1d91a7 100644
--- a/third_party/WebKit/Source/devtools/front_end/security/SecurityModel.js
+++ b/third_party/WebKit/Source/devtools/front_end/security/SecurityModel.js
@@ -21,7 +21,7 @@
    * @return {?Security.SecurityModel}
    */
   static fromTarget(target) {
-    var model = /** @type {?Security.SecurityModel} */ (target.model(Security.SecurityModel));
+    var model = target.model(Security.SecurityModel);
     if (!model)
       model = new Security.SecurityModel(target);
     return model;