[webkit-changes] [WebKit/WebKit] 3f0295: StorageAreaMap should sync items again when remove...

Sihui noreply at github.com
Wed May 3 11:05:19 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 3f02953de140ca0c44ff14b8c1e939eb0a56d800
      https://github.com/WebKit/WebKit/commit/3f02953de140ca0c44ff14b8c1e939eb0a56d800
  Author: Sihui Liu <sihui_liu at apple.com>
  Date:   2023-05-03 (Wed, 03 May 2023)

  Changed paths:
    M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp
    M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h
    M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.messages.in
    M Source/WebKit/WebProcess/WebStorage/StorageAreaMap.cpp
    M Source/WebKit/WebProcess/WebStorage/StorageAreaMap.h

  Log Message:
  -----------
  StorageAreaMap should sync items again when removeItem fails in backend
https://bugs.webkit.org/show_bug.cgi?id=251651
rdar://104984022

Reviewed by Brent Fulgham.

SQLiteStorageArea currently batches writes with database transaction. That means if one operation fails, the other
operations in the same transcation completed before the failed operation will also be reverted. Therefore,
StorageAreaMap should sync with StorageArea again when an error occurs. We did this for setItem by letting it send back
all items in message reply when there is an error, and we should do the same thing for removeItem.

* Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp:
(WebKit::NetworkStorageManager::removeItem):
* Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h:
* Source/WebKit/NetworkProcess/storage/NetworkStorageManager.messages.in:
* Source/WebKit/WebProcess/WebStorage/StorageAreaMap.cpp:
(WebKit::StorageAreaMap::setItem):
(WebKit::StorageAreaMap::removeItem):
(WebKit::StorageAreaMap::didRemoveItem):
* Source/WebKit/WebProcess/WebStorage/StorageAreaMap.h:

Canonical link: https://commits.webkit.org/263637@main




More information about the webkit-changes mailing list