New Sync datatype for Synced Notifications App Info

This is the first checkin for creating a new sync datatype for the synced notifications app info.  The new datatype will be used for synced notification metadata such as the name and icon of the service sending the synced notification.

BUG=280266

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@247551 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 247551
Clean up BrowserWindowController by using the ObjCCast helper function.

BUG=none
TEST=no change

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@247553 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 247553
Kills some dead code because it is no longer possible to drag maximized windows. (https://codereview.chromium.org/80323002)

Also removes DragDetails::window_resizer which is no longer needed.

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@247555 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 247555
Simplify directory initialization in Files app.

This patch cleans up the initialization code, by separating the current directory from selection. Before, there was only one variable holding either current directory or the selection, and heuristics were used to determine how to interpred the path there.
The new code is also a preparation for migrating to URLs, since there are no more operations on the passed paths on the JS side. Note, that before we were fetching parent of a non existing path, which would be very tricky after migrating to URLs.

And finally, this patch fixes wrong behaviour of the select directory dialog. Since now, the selected directory is really selected, and not opened.

TEST=Tested manually several scenarios. All dialogs + recovering from crash. Drive and Downloads.
BUG=328767, 321962

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@247556 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 247556
Fix a leak in client_cert_resolver

BUG=272596
TEST=chromeos_unittests under valgrind

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@247558 0039d316-1c4b-4281-b951-d872f2087c98
drive: FileCache::Store marks the entry as dirty if empty MD5 is given

Store() and MarkAsDirty() should be performed together, atomically.
Otherwise, it may cause troubles when something goes wrong. (e.g. sudden shutdown of the device)

Provide a way to perform Store() and MarkAsDirty() at the same time by specially handling empty MD5.

BUG=260539
TEST=unit_tests

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@247559 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 247558
SVN changes up to revision 247559
Clarify and separate the concept of "Drive path" and "Filesystem relative path".

- RelativeFileSystemPath (also called VirtualPath) is the path appended
in the filesystem URL, after .../external/. So it looks like
"drive-xxx/root/foo/bar" or "Downloads-xxx/foo/bar".
Note that in the Drive case, it begins with the mount point name,
that differs from profile to profile.

- DrivePath is the path in the hierarchy we manage in drive::ResourceMetadata.
It is like "drive/root/foo/bar" and always begins with "drive".

Every path comes from drive::FileSystem is in DrivePath.
Every path that will be the part of FileSystem API must be in RelativeFileSystemPath.
We need proper conversion for the bridging codes.

BUG=337095

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@247561 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 247561
Move 'profile' histograms to public list.

BUG=305652,223859

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@247562 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 247562
Fix mistaken assumptions in tests

This test assumes that spinning the event loop is sufficient to trigger
asynchronous style recalculation. After we move style recalculation to be
triggered off requestAnimationFrame, this assumption will no longer be valid.
This CL removes this assumption by triggering layout explicitly

R=fsamuel@chromium.org
BUG=337617

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@247563 0039d316-1c4b-4281-b951-d872f2087c98
Protect AppListItemList Add/Remove and fix sync bugs

This should fixe the issues seen in the bug, and includes some cleanup
in prep for syncing folders.

BUG=338520
TBR=jamescook@chromium.org for ash_shell.cc

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@247565 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 247565
DevTools: Fix "Add folder" infobar message.

BUG=334202
R=pfeldman

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

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