Add smoke test for timeline-based is_fast measurement.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#290093}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@290093 0039d316-1c4b-4281-b951-d872f2087c98
Cast: Move retransmission to the transport

This change is to move the logic of retransmission from AudioSender/
VideoSender to CastTransportSender.

With this change AudioSender and VideoSender will not handle packets any
more. They will simply see frames. Retransmission is now handled by
CastTransportSender.

Added two more public methods for CastTransportSender:
* CancelSendingFrames
  Cancel sending certain frames.
* SendFrameForKickstart
  Sends the last packet of a frame to kick start the session.

cast_simulator shows no regression.
BUG=393042

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

Cr-Commit-Position: refs/heads/master@{#290094}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@290094 0039d316-1c4b-4281-b951-d872f2087c98
Display quic-connection-options passed in the command line in QUIC tab
of net-internals page. connection-options also includes enable-pacing
argument which is displayed as PACE.

Fixes the rch's comments in https://codereview.chromium.org/471613002/

R=rch@chromium.org, thestig@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#290095}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@290095 0039d316-1c4b-4281-b951-d872f2087c98
Easy Unlock: Add support for hard locking

When user clicks on the easy-unlock icon on "Click to enter" lock screen
(i.e. when lock screen auth type is USER_CLICK), the lock screen changes to
state in which password is required to unlock the screen.
This adds new auth state FORCE_OFFLINE_PASSWORD which, unlike OFFLINE_PASSWORD,
can't be changed to any other.

BUG=397363
TBR=asargent@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#290096}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@290096 0039d316-1c4b-4281-b951-d872f2087c98
Adding extension/mime mapping for HLS streams

This change adds a mapping between m3u8 extension and its mime type.
For android, we need to handle HLS streams separately later on

BUG=400145

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

Cr-Commit-Position: refs/heads/master@{#290097}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@290097 0039d316-1c4b-4281-b951-d872f2087c98
Mojo: simple iframe support.

BUG=394644

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

Cr-Commit-Position: refs/heads/master@{#290098}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@290098 0039d316-1c4b-4281-b951-d872f2087c98
[Mac, Win] Don't allow blank spaces in profile names in the new avatar bubble.

TrimString ftw.

BUG=403753

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

Cr-Commit-Position: refs/heads/master@{#290099}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@290099 0039d316-1c4b-4281-b951-d872f2087c98
Roll HarfBuzz to 0.9.35

0.9.35 contains a couple of fixes for the CoreText shaper
backend, which are required to work on removing the CoreText
codepaths in Blink.

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

Cr-Commit-Position: refs/heads/master@{#290100}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@290100 0039d316-1c4b-4281-b951-d872f2087c98
[Profiles] Fix the usage of custom/default names and avatars

(Hopefully for the last time).
This is based on treib's patch 476703002

The problem that this CL is fixing is that it was a mess to tell whether
a user had a default name/avatar (Lemonade) because we randomly assigned
it at a profile creation time (in old, legacy cases), and then they synced
it because that's what sync does, or because they did that on purpose.
The idea being, of course, that if we randomly called them Lemonade and they
have a Gaia name, we should use the latter, but if they synced "bob", we should
use the sync name.

Ok. Here's how this works now:
- there's a preference for the profile name, and a preference "if it's default"
- if this preference is not set, we assume this is a legacy created profile, so
if it is named First User or Lemonade, the user probably didn't change that.
This sets a "kIsUsingDefaultNameKey" preference in the ProfileInfoCache
- if the ProfileInfoCache has a profile with a kIsUsingDefaultNameKey, then it
uses a Gaia name if it's available.
- the moment the user changes the name of a profile, it stops being default. So
even if I change the profile name from Lemonade to Pickles, even though Pickles
is one of the default profile names, we allow this insanity. 
- a similar dance is done for the default avatar/gaia avatar, only here we maintain
two preferences, because the ProfileInfoCache holds both the gaia and the profile avatar.

Profiles, right? <3

BUG=394586

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

Cr-Commit-Position: refs/heads/master@{#290101}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@290101 0039d316-1c4b-4281-b951-d872f2087c98
Remove tab_capture_performance_tests isolate and _run target.

The Perf bots don't invoke these tests via isolates.

BUG=401985

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

Cr-Commit-Position: refs/heads/master@{#290102}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@290102 0039d316-1c4b-4281-b951-d872f2087c98
Enqueuing new frames in a Surface should cause Displays to reaggregate it

Keep track of which Surfaces were included in a Display last
frame, so if a new frame is enqueued in a Surface the Displays containing it will tell their clients to redraw. This way the browser compositor
doesn't have to commit if only the renderer contents changed.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#290103}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@290103 0039d316-1c4b-4281-b951-d872f2087c98
JavaScript bindings for Mojo message validation

For each interface Foo, the Mojo JavaScript bindings now generate
a pair of functions: |validateFooRequest(validator)| and 
|validateFooResponse(messageValidator)|.

For each Mojo struct type, an additional |validate(validator)|
method is generated.

All of the validate methods return a validationError;
validationError.NONE if the message is valid or not recognized.

The JS validator class has been extended to validate structs, arrays,
and handles.

The generated methods are unit tested, in the same way as their C++
counterparts, by reading test messages and expected results from 
/mojo/public/interfaces/bindings/tests/data/validation/.

Currently the two pointer overflow test cases are skipped because
they depend on reading 64 uints, which the test message file parser
can't handle at the moment. JS doesn't support 64 bit integers. 53
bits is the limit for integer Numbers.

The message router still only checks the validity of incoming message
headers. I'd like to integrate the router with the new validation code
in a separate commit.


BUG=386808

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

Cr-Commit-Position: refs/heads/master@{#290104}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@290104 0039d316-1c4b-4281-b951-d872f2087c98
Add NotifyOnPermissionLevelChanged implementation of notification
provider API

When an extension/app with notificationProvider permission shows a user
information about sources of the notifications, the notifiers. When the
user wants to allow or disallow one notifier, NotifyOnPermissionLevelChanged
can be used to inform the notifier that its permission level was changed.

BUG=397197

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

Cr-Commit-Position: refs/heads/master@{#290105}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@290105 0039d316-1c4b-4281-b951-d872f2087c98
Land Recent QUIC Changes.

Slight improvement to QUIC version negotation debug logging.

Merge internal change: 73319950
https://codereview.chromium.org/477813003/


Improve QUIC's SentEntropyManagerTest and removing a test from
QuicConnectionTest that tests no code in QuicConnection.

Merge internal change: 73298415
https://codereview.chromium.org/479463002/


quic_session.h doesn't need to include util/gtl/linked_hash_map.h.

Merge internal change: 73256287
https://codereview.chromium.org/477863003/


Fix comment for QUIC handshake message tag COPT.

Merge internal change: 73256108
https://codereview.chromium.org/474133002/


Not used in production. Add InRecovery() method to QUIC send algorithm
interface, and pass slow start bool to bandwidth recorder.

We still want to generate bandwidth estimates while in slow start, and
include this information in the STK proto. We also need to know when we
are in recovery mode so we can avoid calculating estimates.

Merge internal change: 73239536
https://codereview.chromium.org/479443002/


Add a flag to enable QUIC's BBR congestion control by default instead of
Cubic in order to test and gather logs on internal servers.

Merge internal change: 73146298
https://codereview.chromium.org/477863002/


Add a QuicSustainedBandwidthEstimator class. Not yet used.

Followup change list in progress (not ready for review, but in case you
want to see intended usage) which does the following:

1) Use this in the QuicSentPacketManager.
2) Detect substantial differences between subsequent sustained bandwidth
   estimates.
3) Send estimates to client in server config update.

internal change list: 72831442

Merge internal change: 73132177
https://codereview.chromium.org/477053002/


Re-add the QUIC DCHECK to ensure packets are always sent in the order of
increasing sequence number.

Merge internal change: 73128051
https://codereview.chromium.org/469383004/


Change to optimize QUIC's RetransmittableFrames::HasCryptoHandshake by
storing it once when the crypto frame is added to RetransmittableFrames.

Merge internal change: 73125935
https://codereview.chromium.org/467263003/


Add an Update method on QuicAlarm which contains a granularity.  Also
change the idle network timeout to be 1 second shorter on the client and
1 second longer on the server.

Change saves ~2% of CPU according to an EndToEndTest profile.

Merge internal change: 73125905
https://codereview.chromium.org/471313002/

R=rch@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#290106}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@290106 0039d316-1c4b-4281-b951-d872f2087c98
[Android] Perform haptic feedback after long press when appropriate

Tentatively trigger haptic feedback when ContentViewCore is directed to show the
the paste popup. While there are no guarantees that such a commend was triggered
by a long press gesture, it should still be a usability improvement. Also
trigger feedback when the selection is updated via a repeated long press gesture.

BUG=150151,399619

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

Cr-Commit-Position: refs/heads/master@{#290107}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@290107 0039d316-1c4b-4281-b951-d872f2087c98
Add new histograms to confirm that PINGs are outstanding when a QUIC connection times out with open streams.

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

Cr-Commit-Position: refs/heads/master@{#290108}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@290108 0039d316-1c4b-4281-b951-d872f2087c98
Early wait on texture resource sync points in gl_renderer.

Previously texture resource sync points were waited on
a just-in-time basis, just before drawing with the texture.

This change moves all sync point waits ahead of drawing a
frame, to ensure that we don't switch GLContexts in the
middle of drawing.

BUG=394547

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

Cr-Commit-Position: refs/heads/master@{#290109}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@290109 0039d316-1c4b-4281-b951-d872f2087c98
Automated Commit: Committing new LKGM version 6156.0.0 for chromeos.

Cr-Commit-Position: refs/heads/master@{#290110}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@290110 0039d316-1c4b-4281-b951-d872f2087c98
Cleanup: Another round of removing unneeded grit #includes in chrome.

This time, figure out what IDS entries are in a .grd file + .grdp files.
Then look for files that have the associated #include, but does not use
any of those entries.

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

Cr-Commit-Position: refs/heads/master@{#290111}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@290111 0039d316-1c4b-4281-b951-d872f2087c98
[Telemetry] Speed up unittests on mac by about 10s.

No need to have unittests repeatedly check the USB devices.

BUG=388256
TBR=baxley@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#290112}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@290112 0039d316-1c4b-4281-b951-d872f2087c98