Optimize overdraw on partially overlapped windows

Overdraw means that one single pixel is drawn more than once, this can
slow down our chrome browser performance; and this causes our browser
to use more power to run. In this patch, a new draw occlusion tracker
to remove DrawQuads that are not shown on the screen from the
CompositorFrame is added.
For detailed description:
https://docs.google.com/document/d/1skSwTc7fDr_O_pYz1mH4hV7QtMkzAOhhKf5Qr4FQx2I/edit

TEST=display_unittest.cc

Bug: 672929
Change-Id: I910597230c432450eabbef8166cab2cb9d3925ac
Reviewed-on: https://chromium-review.googlesource.com/711391
Commit-Queue: Yi Xu <[email protected]>
Reviewed-by: Scott Violet <[email protected]>
Reviewed-by: Ilya Sherman <[email protected]>
Reviewed-by: danakj <[email protected]>
Cr-Commit-Position: refs/heads/master@{#510942}
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
index 29b9b49..65bb733 100644
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -1203,6 +1203,11 @@
     "Visualize overdraw by color-coding elements based on if they have other "
     "elements drawn underneath.";
 
+const char kEnableDrawOcclusionName[] = "Enable draw occlusion";
+const char kEnableDrawOcclusionDescription[] =
+    "Enable the system to use draw occlusion to skip draw quads when they are "
+    "not shown on the screen.";
+
 const char kShowSavedCopyName[] = "Show Saved Copy Button";
 const char kShowSavedCopyDescription[] =
     "When a page fails to load, if a stale copy of the page exists in the "