[Display Cutout] Do not create DisplayCutoutHostImpl

Do not create DisplayCutoutHostImpl automatically in WebContentsImpl

BUG=859241

Change-Id: I1dff20d653d1712f529f595c3fb9d0ce08eaceeb
Reviewed-on: https://chromium-review.googlesource.com/1129557
Reviewed-by: Bo <[email protected]>
Commit-Queue: Becca Hughes <[email protected]>
Cr-Commit-Position: refs/heads/master@{#573451}
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index 3409617..c1a8e3e 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -679,7 +679,10 @@
   host_zoom_map_observer_.reset(new HostZoomMapObserver(this));
 #endif  // !defined(OS_ANDROID)
 
-  display_cutout_host_impl_ = std::make_unique<DisplayCutoutHostImpl>(this);
+#if defined(OS_ANDROID)
+  if (base::FeatureList::IsEnabled(features::kDisplayCutoutAPI))
+    display_cutout_host_impl_ = std::make_unique<DisplayCutoutHostImpl>(this);
+#endif
 
   registry_.AddInterface(base::BindRepeating(
       &WebContentsImpl::OnColorChooserFactoryRequest, base::Unretained(this)));
@@ -1392,7 +1395,8 @@
 #if defined(OS_ANDROID)
 
 void WebContentsImpl::SetDisplayCutoutSafeArea(gfx::Insets insets) {
-  display_cutout_host_impl_->SetDisplayCutoutSafeArea(insets);
+  if (display_cutout_host_impl_)
+    display_cutout_host_impl_->SetDisplayCutoutSafeArea(insets);
 }
 
 #endif
@@ -4152,9 +4156,11 @@
   SetNotWaitingForResponse();
 
   // Reset the viewport fit
-  display_cutout_host_impl_->ViewportFitChangedForFrame(
-      navigation_handle->GetRenderFrameHost(),
-      blink::mojom::ViewportFit::kAuto);
+  if (display_cutout_host_impl_) {
+    display_cutout_host_impl_->ViewportFitChangedForFrame(
+        navigation_handle->GetRenderFrameHost(),
+        blink::mojom::ViewportFit::kAuto);
+  }
 }
 
 void WebContentsImpl::DidFinishNavigation(NavigationHandle* navigation_handle) {