Speculatively launch Service Workers on mouse/touch events. [1/5]

1/5: Introduce NavigationHintSender.
     This CL.
2/5: Pipe NavigationHints from NavigationHintSender to ChromeRenderMessageFilter
     https://codereview.chromium.org/2043083002/
3/5: Call StartServiceWorkerForNavigationHint() from ChromeRenderMessageFilter
     https://codereview.chromium.org/2052613003/
4/5: Measure the precision of the speculative launch of Service Workers for NavigationHints
     https://codereview.chromium.org/2045153003/
5/5: Add flags to enable SupeculativeLaunchServiceWorker
     https://codereview.chromium.org/2053573002/

We will introduces a new feature named "SpeculativeLaunchServiceWorker".
When the feature is enabled, HTMLAnchorElement will have NavigationHintSender.
It is similar to PrefetchEventHandler which was removed by https://codereview.chromium.org/344133002.

When HTMLAnchorElement receives mousedown events for the left button or gesturetapunconfirmed or gestureshowpress events, a NavigationHint IPC message will be sent to the browser process.

IPC related code is in [2/5] https://codereview.chromium.org/2043083002/

BUG=616502

Review-Url: https://codereview.chromium.org/2043863003
Cr-Commit-Position: refs/heads/master@{#401225}
2 files changed