Don't call ScheduleDraw from destructor

BUG=127614
TEST=asan bot passes

Review URL: https://chromiumcodereview.appspot.com/10387062

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@136377 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/ui/compositor/compositor.cc b/ui/compositor/compositor.cc
index 18da91cc..4b23d86 100644
--- a/ui/compositor/compositor.cc
+++ b/ui/compositor/compositor.cc
@@ -145,6 +145,8 @@
 }
 
 Compositor::~Compositor() {
+  // Don't call |CompositorDelegate::ScheduleDraw| from this point.
+  delegate_ = NULL;
   // There's a cycle between |root_web_layer_| and |host_|, which results in
   // leaking and/or crashing. Explicitly set the root layer to NULL so the cycle
   // is broken.
@@ -175,7 +177,7 @@
     // compositeImmediately() directly.
     layout();
     host_.composite();
-  } else {
+  } else if (delegate_) {
     delegate_->ScheduleDraw();
   }
 }
diff --git a/ui/compositor/layer_unittest.cc b/ui/compositor/layer_unittest.cc
index e50a712..b0aa874 100644
--- a/ui/compositor/layer_unittest.cc
+++ b/ui/compositor/layer_unittest.cc
@@ -336,20 +336,19 @@
 #define MAYBE_ScaleReparent DISABLED_ScaleReparent
 #define MAYBE_NoScaleCanvas DISABLED_NoScaleCanvas
 #else
-#define MAYBE_Delegate DISABLED_Delegate
+#define MAYBE_Delegate Delegate
 #define MAYBE_Draw Draw
-#define MAYBE_DrawTree DISABLED_DrawTree
+#define MAYBE_DrawTree DrawTree
 #define MAYBE_Hierarchy Hierarchy
-#define MAYBE_HierarchyNoTexture DISABLED_HierarchyNoTexture
+#define MAYBE_HierarchyNoTexture HierarchyNoTexture
 #define MAYBE_DrawPixels DrawPixels
 #define MAYBE_SetRootLayer SetRootLayer
-#define MAYBE_CompositorObservers DISABLED_CompositorObservers
+#define MAYBE_CompositorObservers CompositorObservers
 #define MAYBE_ModifyHierarchy ModifyHierarchy
 #define MAYBE_Opacity Opacity
-// Real bug, see http://crbug.com/127534.
-#define MAYBE_ScaleUpDown DISABLED_ScaleUpDown
-#define MAYBE_ScaleReparent DISABLED_ScaleReparent
-#define MAYBE_NoScaleCanvas DISABLED_NoScaleCanvas
+#define MAYBE_ScaleUpDown ScaleUpDown
+#define MAYBE_ScaleReparent ScaleReparent
+#define MAYBE_NoScaleCanvas NoScaleCanvas
 #endif
 
 TEST_F(LayerWithRealCompositorTest, MAYBE_Draw) {