FrameLoader: only commit a navigation from an explicit call

This replaces WebLocalFrameClient::DecidePolicyForNavigation with
BeginNavigation, where client may decide how to proceed.

Typically, the client would just call CommitNavigation to commit
the requested navigation.

However, for browser-side navigation, we do instead ask browser
to proceed, and temporarily call CreatePlaceholderDocumentLoader.

After this patch, we can start removing WebLocalFrameClient
callbacks, like {Did,Will}StartProvisionalLoad, since the client
now controls the navigation flow and doesn't need a callback.

Bug: 855189
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: Ic995073e191a238ac46ae6be2114af596e41425f
Reviewed-on: https://chromium-review.googlesource.com/c/1271411
Commit-Queue: Dmitry Gozman <dgozman@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Reviewed-by: Tommy Li <tommycli@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#607486}
32 files changed