Sorry, that was poorly worded. We evict "a page in BFCache if *[evicting
the page in BFCache]* allows another page to take an FSA lock."

For example, a page in BFCache may have a sync access handle open on a
file. An active page may attempt to open a writable on that same file.
Previous behavior is to reject with a NoModificationAllowedError. The new
behavior is to evict the page in BFCache to allow the active page to open
the writable.

On Thu, Dec 21, 2023, 8:23 AM Vladimir Levin <vmp...@google.com> wrote:

>
>
> On Wed, Dec 20, 2023 at 8:17 PM 'Nathan Memmott' via blink-dev <
> blink-dev@chromium.org> wrote:
>
>> Howdy blink-dev,
>>
>> In Chromium M121, we will update how the File System Access (FSA) API
>> interacts with the back/forward cache (BFCache). This should only affect
>> the conditions a page can remain in the BFCache. There should be no
>> behavioral changes to the FSA API.
>>
>> A page can hold FSA locks to files via FileSystemWritableFileStream,
>> FileSystemSyncAccessHandle, and file operations. These FSA locks prevent
>> incompatible concurrent access to a file (e.g. having both a writable and
>> access handle open on a file). A page in BFCache can hold FSA locks and
>> prevent an active (not in BFCache) page from accessing a file. This can be
>> unexpected behavior to a developer/user.
>>
>> The changes made in Chromium M121 address this issue by evicting a page
>> in BFCache if it allows another page to take an FSA lock. If it doesn't
>> allow another page to take an FSA lock, then the page can remain in BFCache.
>>
>
> This might be a misunderstanding in terminology on my part, but is this
> backwards? If the BFCache page allows an active page to acquire a lock,
> then it's evicted? Or is it then allowed to stay?
>
>
>> This doesn't break any assumptions about concurrent access. An FSA lock
>> is not given out until incompatible FSA locks have been released.
>>
>> This PR for the whatwg/fs spec defines the behavior in more detail:
>> https://github.com/whatwg/fs/pull/154
>>
>> Thanks,
>> Nathan
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "blink-dev" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to blink-dev+unsubscr...@chromium.org.
>> To view this discussion on the web visit
>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAO4d-SusHj7XEePhBqBkvH24Q50KHF%3DhMNOPpK5wkwpGvkwe4g%40mail.gmail.com
>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAO4d-SusHj7XEePhBqBkvH24Q50KHF%3DhMNOPpK5wkwpGvkwe4g%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to blink-dev+unsubscr...@chromium.org.
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAO4d-SuFB_G_H%2Bqdq2OhN6Fc3gR5Npy%3D5unk5EB1bJbzvPRtHg%40mail.gmail.com.

Reply via email to