Cherry-pick "[Android WebView] Provide user-initiated provisional load detection"

Original CL:

Original description:
    [Android WebView] Provide user-initiated provisional load detection

    Do not synthesize page loading events on DOM modification, if the provisional
    load has been started from the API side.

    It appears that a lot of apps tend to use the following scenario:


    Which was triggering page loading events to be emitted. This scenario is
    dubious, as no one guarantees that loading will actually finish prior to
    executing javascript. But for compatibility reasons we must take it into
    account and not emit page loading events for "about:blank", as it seems
    that some apps do unexpected things when they receive it.


Note that this patch also contains bits from this commit required for changes
in AwWebContentsObserver to work:

Bug: 19729876
Change-Id: I12c9610a13a382d725cc9a14fcb9879c92f1f461
8 files changed