Skip to content
Commit ecb96d59 authored by Christine Smith's avatar Christine Smith Committed by Chromium LUCI CQ
Browse files

Reland "FilePathWatcher: Synchronously start watching on Mac"

This is a reland of commit b8bf2ad0

The original CL was reverted due to a failing browsertest
(https://ci.chromium.org/ui/p/chromium/builders/findit/test-single-revision/3436/overview).

It was later determined that this specific test was flaky (https://crbug.com/40939929).

This flake has been resolved as a result of CL: crrev.com/c/5205950

Now that the failing / flaky test has been fixed, this change is ready to re-land in order to unblock FSA Change Observers implementation on Mac.

Original change's description:
> FilePathWatcher: Synchronously start watching on Mac
>
> This CL includes two key changes:
>
> 1) Moves all manipulation of the event stream (start, stop, etc)
>    to the sequence the FilePathWatcher lives on
>
> Prior to this CL, the event stream was manipulated on the dispatch
> queue. This does not appear to have been necessary. Moving the stream
> manipulation to the sequence the FilePathWatcher lives on allows the
> event stream to be started synchronously, from the Watch() method
>
> 2) Use kFSEventStreamEventIdSinceNow
>
> Prior to this CL, the event stream was started via async dispatch in
> the Watch() method. FSEventsGetCurrentEventId() was used to
> synchronously get the ID of the most recent (system-wide) event, to
> ensure that any changes between when Watch() returned and when the
> stream asynchronously started would be played back as historical
> events. See the documentation of the sinceWhen field here:
> https://developer.apple.com/documentation/coreservices/1443980-fseventstreamcreate
>
> Since the stream is now started synchronously,
> kFSEventStreamEventIdSinceNow is sufficient for ensuring that all
> changes after Watch() returns are noticed
>
> Note that creating a stream with kFSEventStreamEventIdSinceNow will
> no longer fire a "history done" event shortly after stream creation.
> Any callers which relied on the this behavior may break.
> See the documentation here:
> https://developer.apple.com/documentation/coreservices/kfseventstreameventflaghistorydone
>
> Bug: 1019297
> Change-Id: Ib720f8b19d0309714d153de974404fab25b16894
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4814677


> Reviewed-by: default avatarWez <wez@chromium.org>
> Commit-Queue: Austin Sullivan <asully@chromium.org>
> Reviewed-by: default avatarRobert Sesek <rsesek@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#1218981}

Bug: 1019297
Change-Id: I5d9297c7b3e187bcfdaeaaaf5946984f082b1877
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5274142


Commit-Queue: Christine Hollingsworth <christinesm@chromium.org>
Reviewed-by: default avatarDaseul Lee <dslee@chromium.org>
Reviewed-by: default avatarWez <wez@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1281149}
parent 0fcf3b3f
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment