commit | ecb96d59c49c4a98c0568ca4d370ab4d4a64eb2f | [log] [tgz] |
---|---|---|
author | Christine Smith <christinesm@chromium.org> | Tue Apr 02 14:17:01 2024 |
committer | Chromium LUCI CQ <chromium-scoped@luci-project-accounts.iam.gserviceaccount.com> | Tue Apr 02 14:17:01 2024 |
tree | 1faf2f34549b49462338d6a16ef69581198cbd69 | |
parent | 0fcf3b3f35990b72b8c8e3eaac83c30785987567 [diff] |
Reland "FilePathWatcher: Synchronously start watching on Mac" This is a reland of commit b8bf2ad060e659004a5b4a0f57d6d157f7a437fb 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: Wez <wez@chromium.org> > Commit-Queue: Austin Sullivan <asully@chromium.org> > Reviewed-by: Robert 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: Daseul Lee <dslee@chromium.org> Reviewed-by: Wez <wez@chromium.org> Cr-Commit-Position: refs/heads/main@{#1281149}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
To check out the source code locally, don't use git clone
! Instead, follow the instructions on how to get the code.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure.
For historical reasons, there are some small top level directories. Now the guidance is that new top level directories are for product (e.g. Chrome, Android WebView, Ash). Even if these products have multiple executables, the code should be in subdirectories of the product.
If you found a bug, please file it at https://crbug.com/new.