[Presentation API] Implement ondefaultsessionstart in PSImpl.
Added DefaultSessionStartContext for coordinating sending default
session back to PresentationDispatcher.
When ListenForDefaultSessionStart is called, DefaultSessionStartContext
will be installed on PresentationServiceImpl. When both the default
session and PresentationDispatcher's callback are available, the
callback will be invoked with the session.
On Reset(), if a callback is available, it will be invoked with null.
Changed PresentationDispatcher to not update Blink in that case.
Also, PSImpl now keeps track of the corresponding RFH's ID instead of
RFH* since most of the time we only need to use the ID.
Changed PresentationServiceDelegate's Add/RemoveObserver interface,
since the PresentationServiceDelegate need to be able to correlate
an Observer with a RFH. (at most 1 per RFH, as it stands today).
Added OnDefaultPresentationStarted to
PresentationServiceDelegate::Observer interface and implemented it
in PresentationServiceImpl.
Added tests in PresentationServiceImpl.
BUG=459001
Review URL: https://codereview.chromium.org/
1073893003
Cr-Commit-Position: refs/heads/master@{#326353}