SurfaceFlinger: Check frameIsEarly earlier

If we allow the transaction to apply but then later delay
the buffer we may end up 'splitting a transaction' applying
part of it without applying an included buffer.

Bug: 179712630
Test: Existing tests pass
Change-Id: Ia54ba0f9b34a7b676af95418181c2e0f0b807b25
diff --git a/services/surfaceflinger/Layer.h b/services/surfaceflinger/Layer.h
index 23758c9..a072554 100644
--- a/services/surfaceflinger/Layer.h
+++ b/services/surfaceflinger/Layer.h
@@ -924,6 +924,8 @@
 
     pid_t getOwnerPid() { return mOwnerPid; }
 
+    virtual bool frameIsEarly(nsecs_t /*expectedPresentTime*/) const { return false; }
+
     // This layer is not a clone, but it's the parent to the cloned hierarchy. The
     // variable mClonedChild represents the top layer that will be cloned so this
     // layer will be the parent of mClonedChild.