[webkit-changes] [WebKit/WebKit] 5bc131: REGRESSION (iOS 16): LocalStorage is cleared after...

Sihui noreply at github.com
Fri Nov 18 17:24:05 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 5bc131992783cd2f65a8e2ed0c827eaef6df1427
      https://github.com/WebKit/WebKit/commit/5bc131992783cd2f65a8e2ed0c827eaef6df1427
  Author: Sihui Liu <sihui_liu at apple.com>
  Date:   2022-11-18 (Fri, 18 Nov 2022)

  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:
  -----------
  REGRESSION (iOS 16): LocalStorage is cleared after quota error
https://bugs.webkit.org/show_bug.cgi?id=245479
rdar://problem/100252023

Reviewed by Chris Dumez.

StorageAreaMap should sync with backend again instead of clearing map when an error occurs in backend. Also, all
synchronization should not remove pending changes from map, because backend will handle the requests and StorageAreaMap
will receive reply for pending requests after that. Until StorageAreaMap receives error in reply, it should assume
the request succeeds and report value in pending requests to client.

* Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp:
(WebKit::NetworkStorageManager::setItem):
* Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h:
* Source/WebKit/NetworkProcess/storage/NetworkStorageManager.messages.in:
* Source/WebKit/WebProcess/WebStorage/StorageAreaMap.cpp:
(WebKit::StorageAreaMap::setItem):
(WebKit::StorageAreaMap::clear):
(WebKit::StorageAreaMap::ensureMap):
(WebKit::StorageAreaMap::didSetItem):
(WebKit::StorageAreaMap::applyChange):
(WebKit::StorageAreaMap::clearCache):
(WebKit::StorageAreaMap::disconnect):
(WebKit::StorageAreaMap::syncOneItem):
(WebKit::StorageAreaMap::syncItems):
(WebKit::StorageAreaMap::resetValues): Deleted.
(WebKit::StorageAreaMap::shouldApplyChangeForKey const): Deleted.
* Source/WebKit/WebProcess/WebStorage/StorageAreaMap.h:

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




More information about the webkit-changes mailing list