Move permission warning message handling from PermissionSet to PermissionMessageProvider.

This refactors PermissionSet to be closer to just a set of permissions and moves the understanding of permission message strings to a utility class.

BUG=162530

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@229565 0039d316-1c4b-4281-b951-d872f2087c98
Printing: Keep track of WebContents lifetime for the native printing UI.

BUG=305368

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@229566 0039d316-1c4b-4281-b951-d872f2087c98
android: fix base::Time::FromLocalExploded() crash.

This patch does the following:

- Provide a work-around for an Android platform bug that
  happens on older Android releases (e.g. 4.1.2), but fixed
  on later ones (e.g. 4.3), where mktime() / mktime64()
  would return -1 even when passed proper time values.

- Improve the code to properly deal with the fact that
  SysTime is actually int64 on Android, unlike other
  platforms, allowing us to remove the CHECK() that
  was triggered by the platform bug.

- Add a new unit test to verify that the new code
  doesn't crash on Android 4.1.2 anymore, and returns
  the correct values.

BUG=287821
R=jar@chromium.org,mark@chromium.org,brettw@chromium.org

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@229567 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 229565
Hide touch selection cursor handle when out of client view

Selection handles are made hidden when they are out of client view. This
was not done for cursor handle. Other than fixing this, a check is added
to move the handles only when they're going to be visible. Since hiding
a handle fades it out, it is better to have this fade out in the
previous handle location which is inside the boundaries of the client
view. With this change, handle positions cannot be used as selection end
points; so, whenever selection end points are needed, values cached in
touch selection controller are used instead of handle positions.

Also, IsEmptySelection() function in touch selection controller is not
needed anymore; so, it is removed.

Previous review URL: https://codereview.chromium.org/25609006/

BUG=289014

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

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