drive: More reliable MD5 management of FileCacheEntry

Add FileCache::UpdateMd5().
Stop setting MD5 with FileCache::ClearDirty().
Remove UpdateOperation::ContentCheckMode. (Instead, use FileCacheEntry::md5 to determine whether content check is needed or not.)

MD5 of a FileCacheEntry changes as follows:
(md5.empty()==true means MD5 is unknown)
1. FileCache::Initialize clears MD5 of all dirty entries for backward compatibility.
2. FileCache::OpenForWrite clears MD5.
3. FileCache::UpdateMd5 calculates MD5.
4. FileCache::ClearDirty does nothing for MD5.

UpdateOperation behaves in the following way:
- Before upload, UpdateMD5() is called if FIleCacheEntry::MD5 is empty. IsOpenedForWrite() is used to prevent unneeded upload from starting.
- After upload, ResourceEntry's MD5 is checked against FileCacheEntry::MD5. If it doesn't match, it means someone has opened the file (i.e. clearing MD5) so shouldn't clear the dirty bit.

BUG=326054
TEST=unit_tests
R=kinaba@chromium.org

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@245982 0039d316-1c4b-4281-b951-d872f2087c98
Make generated bookmark apps have no web extent.

This patch removes web extents from bookmark apps and stops them from
using the launch url as the web extent by default. This was preventing
creation of bookmark apps for any page that was in an overlapping extent
(e.g it wasn't possible to create a bookmark app for drive.google.com/keep
while the default Google Drive app was installed).

This doesn't affect the hosted app security model because bookmark apps
don't use the hosted app process model and have no permissions.

BUG=318607
TBR=dbeam@chromium.org

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@245983 0039d316-1c4b-4281-b951-d872f2087c98
Updating trunk VERSION from 1797.0 to 1798.0

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@245985 0039d316-1c4b-4281-b951-d872f2087c98
Wait for volume manager initialization before resolving urls in the audio player.

Converting from URLs to Entries required permissions, which are granted asynchronously by the volume manager. Therefore, we have to call ensureInitialized() before trying to resolve them.

TEST=Tested manually.
BUG=336301

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@245987 0039d316-1c4b-4281-b951-d872f2087c98