fix flashing bottom gray bar when navigating away from NTP w/ unpinned bookmark bar

cause:
- when NTP has unpinned bmb, the web contents takes up the remaining height of the tab contents area.
- when navigating away from NTP, unpinned bmb disappears, so the web contents take up the entire tab contents area, i.e. taller than when on NTP.
- this resize of web contents view causes a flashing bottom gray bar after the NTP contents are cleared and before the new page contents are completely painted.

fix is to prevent any resizing, and hence re-layout, of the new page contents:
- add a method to WebContentsDelegate to allow size specification for newly-created render views.
- WebContentsImpl calls this method when creating render views and updating their sizes.
- this prevents render views from being created at a default size only to be resized immediately.
- also added browser_tests for browser and content

BUG=264207
TEST=verify per bug rpt

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@219794 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h
index bb56ddba2..55f377b 100644
--- a/content/browser/web_contents/web_contents_impl.h
+++ b/content/browser/web_contents/web_contents_impl.h
@@ -760,6 +760,9 @@
   // Clear all PowerSaveBlockers, leave power_save_blocker_ empty.
   void ClearAllPowerSaveBlockers();
 
+  // Helper function to invoke WebContentsDelegate::GetSizeForNewRenderView().
+  gfx::Size GetSizeForNewRenderView() const;
+
   // Data for core operation ---------------------------------------------------
 
   // Delegate for notifying our owner about stuff. Not owned by us.