Sample extension for device info API.

BUG=170375

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

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

Introduce ModelNeutralWriteTransactions that allows changes to entries
only if those changes do not need to be sent back to the model.  In
other words, they have write access to almost everything except
SPECIFICS, UNIQUE_POSITION, PARENT_ID, and other similar fields that
need to be reported back to the model to keep it in sync.

We enforce this restriction by allowing the construction of
ModelNeutralMutableEntries from these transactions, but requiring a full
WriteTransaction to construct regular MutableEntries.

To make it easier to write generic functions, this change also
introduces a common base class called BaseWriteTransaction.  This class
is a parent of both WriteTransaction and ModelNeutralWriteTransaction,
so it can be used in contexts where we're willing to accept either.
This is similar to the way BaseTransaction currently enables generic
functions to work with either ReadTransactions or WriteTransactions.

This patch does not actually instantiate any
ModelNeutralWriteTransactions.  The work of converting existing code to
use this new function will be started in future CLs.

BUG=284672

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@225423 0039d316-1c4b-4281-b951-d872f2087c98
Add more descriptive error messages for common issues

Add more descriptive error messages for user cancelation on printer and for
confirmation timeout on printer. Add UMA histogram tracking for both cases.

BUG=297371

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

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

Client Hints can be used as input to proactive content negotiation;
just as the Accept header allowed clients to indicate what formats
they prefer, Client Hints allow clients to indicate a list of device
and agent specific preferences.

See:
https://github.com/igrigorik/http-client-hints/blob/draft2/draft-grigorik-http-client-hints-01.txt

Patched from https://codereview.chromium.org/23654014/, which was
patched from https://codereview.chromium.org/11970002

BUG=170388
CONTRIBUTOR=yoav@yoav.ws

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

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