Revert "Reland "base: Don't keep running tasks after nested run loop quits on iOS""

This reverts commit 6a988bfbbdae7880bd3fba26f96c120600a76db5.

Reason for revert: should not have relanded

Original change's description:
> Reland "base: Don't keep running tasks after nested run loop quits on iOS"
> 
> This reverts commit d0de086966fe7e05b6aa69d3ec69eedad2aa9e64.
> 
> Reason for revert: broke ios-simulator bots
> 
> Original change's description:
> > Revert "base: Don't keep running tasks after nested run loop quits on iOS"
> > 
> > This reverts commit 3ce69a991fd9ca03030738e324a1833c02462da0.
> > 
> > Reason for revert:
> > Sheriff suspects this broke a handful of menu tests on macOS 10.12:
> > 
> > https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/Mac10.12%20Tests/17564
> > 
> > e.g.:
> > WebViewTest.TestContextMenu
> > 
> > Original change's description:
> > > base: Don't keep running tasks after nested run loop quits on iOS
> > > 
> > > The CoreFoundation message pump (MessagePumpCFRunLoop) scheduled an extra call
> > > to Delegate::DoWork in the following scenario:
> > > 
> > >   1. Start a run loop and schedule DoWork.
> > >   2. In DoWork, start a second run nested run loop which quits immediately.
> > >   3. After the nested run loop quits, schedule another DoWork which quits the
> > >      original run loop.
> > > 
> > > After step #3, the message pump would call DoWork again because the nested
> > > run loop triggered the execution of the nesting deferred work source.
> > > 
> > > This patch fixes the issue by checking whether the further work is allowed
> > > before calling DoWork. Note that this check can't be done just for the nested
> > > deferred work source, because in the flow above that source is what triggers
> > > the call to DoWork in step #3, i.e., the run loop hasn't quit yet at that point.
> > > 
> > > The patch also includes a fix to
> > > WebContentsViewMacInteractiveTest.SelectMenuLifetime; the test had the
> > > following sequence in it (while a select menu is open):
> > > 
> > >   1. Quit an outer run loop.
> > >   2. Post a task onto an inner run loop to continue the test.
> > > 
> > > The assumption here was that a select menu causes an inner run loop to
> > > be active while the menu is open. This wasn't strictly correct: the
> > > inner run loop is a native (CoreFoundation) run loop as opposed to a
> > > base::RunLoop, which can't be explicitly exited with RunLoop::Quit().
> > > This means that the Quit() in step #1 affects the same run loop as the
> > > PostTask in step #2, i.e., the task is prevented from running.
> > > 
> > > This patch changes the test to only quit the test run loop after the
> > > posted task (which closes the select menu) has run.
> > > 
> > > Bug: 891670
> > > Change-Id: I6fe21289205664c4e1b1469547495667c753f56d
> > > Reviewed-on: https://chromium-review.googlesource.com/c/1373754
> > > Reviewed-by: Mark Mentovai <mark@chromium.org>
> > > Commit-Queue: Sami Kyöstilä <skyostil@chromium.org>
> > > Cr-Commit-Position: refs/heads/master@{#615967}
> > 
> > TBR=skyostil@chromium.org,mark@chromium.org
> > 
> > Change-Id: If6e3b032ae40a391df56b62ae78f0bc1ed8d93f6
> > No-Presubmit: true
> > No-Tree-Checks: true
> > No-Try: true
> > Bug: 891670
> > Reviewed-on: https://chromium-review.googlesource.com/c/1375382
> > Reviewed-by: Elly Fong-Jones <ellyjones@chromium.org>
> > Commit-Queue: Elly Fong-Jones <ellyjones@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#616297}
> 
> TBR=ellyjones@chromium.org,skyostil@chromium.org,mark@chromium.org
> 
> Change-Id: I68d7b4687fd1f2a4906961f55b31038199089ff3
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: 891670
> Reviewed-on: https://chromium-review.googlesource.com/c/1376249
> Reviewed-by: Elly Fong-Jones <ellyjones@chromium.org>
> Commit-Queue: Elly Fong-Jones <ellyjones@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#616350}

TBR=ellyjones@chromium.org,skyostil@chromium.org,mark@chromium.org

Change-Id: Ia05259cd2f2d60b41efdc7b73702da865680c1a3
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 891670
Reviewed-on: https://chromium-review.googlesource.com/c/1376250
Reviewed-by: Elly Fong-Jones <ellyjones@chromium.org>
Commit-Queue: Elly Fong-Jones <ellyjones@chromium.org>
Cr-Commit-Position: refs/heads/master@{#616352}
3 files changed