Make Navigator an interface.

InterstitialPageImpl has very different requirements for navigations than regular pages. As such, we need a different implementation of Navigator for it. This CL creates a specific version for interstitial pages and makes Navigator be an interface.

BUG=304341

Review URL: https://codereview.chromium.org/105923002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@239194 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 239194
Fix Android VEA crash issue on x86 Android

This is due to function parameter evaluation is not specified by C++, on arm Android shm->memory() will be executed before Passed(&shm), but on x86 Android Passed(&shm) will be executed before shm->memory(), it will cause a null pointer issue when shm wants to access memory() since Passed(&shm) has already released shm.

BUG=None
TEST=HW VP8 encoder works well on x86 Android.

Review URL: https://codereview.chromium.org/106333002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@239195 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 239195