Changeset 282222 in webkit
- Timestamp:
- Sep 9, 2021, 10:03:31 AM (5 years ago)
- Location:
- trunk/Source
- Files:
-
- 10 edited
-
WebCore/ChangeLog (modified) (1 diff)
-
WebCore/Modules/storage/StorageManager.cpp (modified) (1 diff)
-
WebCore/Modules/storage/StorageManager.h (modified) (1 diff)
-
WebCore/dom/Document.cpp (modified) (1 diff)
-
WebCore/dom/Document.h (modified) (1 diff)
-
WebCore/dom/ScriptExecutionContext.h (modified) (1 diff)
-
WebCore/page/NavigatorBase.cpp (modified) (1 diff)
-
WebCore/page/NavigatorBase.h (modified) (1 diff)
-
WebKit/ChangeLog (modified) (1 diff)
-
WebKit/NetworkProcess/storage/NetworkStorageManager.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r282220 r282222 1 2021-09-09 Sihui Liu <sihui_liu@apple.com> 2 3 Address post-commit comments on r282130 (Add basic support for Storage API) 4 https://bugs.webkit.org/show_bug.cgi?id=230059 5 6 Reviewed by Youenn Fablet. 7 8 No new tests as no behavior change. 9 10 * Modules/storage/StorageManager.cpp: 11 (WebCore::StorageManager::StorageManager): 12 (WebCore::StorageManager::persisted): 13 (WebCore::StorageManager::persist): 14 (WebCore::clientOrigin): Deleted. 15 * Modules/storage/StorageManager.h: 16 * dom/Document.cpp: 17 (WebCore::Document::storageConnection): 18 * dom/Document.h: 19 * dom/ScriptExecutionContext.h: 20 (WebCore::ScriptExecutionContext::storageConnection): 21 * page/NavigatorBase.cpp: 22 (WebCore::NavigatorBase::storage): 23 * page/NavigatorBase.h: 24 1 25 2021-09-09 Jer Noble <jer.noble@apple.com> 2 26 -
trunk/Source/WebCore/Modules/storage/StorageManager.cpp
r282130 r282222 43 43 44 44 StorageManager::StorageManager(NavigatorBase& navigator) 45 : m_navigator( navigator)45 : m_navigator(makeWeakPtr(navigator)) 46 46 { 47 }48 49 static ClientOrigin clientOrigin(ScriptExecutionContext& context)50 {51 auto* origin = context.securityOrigin();52 return { context.topOrigin().data(), origin ? origin->data() : SecurityOriginData { } };53 47 } 54 48 55 49 void StorageManager::persisted(DOMPromiseDeferred<IDLBoolean>&& promise) 56 50 { 57 auto context = m_navigator.scriptExecutionContext(); 51 if (!m_navigator) 52 return promise.reject(Exception { InvalidStateError, "Navigator does not exist"_s }); 53 54 auto context = m_navigator->scriptExecutionContext(); 58 55 if (!context) 59 56 return promise.reject(Exception { InvalidStateError, "The context is invalid"_s }); 60 57 61 if (auto connection = context->storageConnection()) { 62 return connection->persisted(clientOrigin(*context), [promise = WTFMove(promise)](bool persisted) mutable { 63 promise.resolve(persisted); 64 }); 65 } 58 auto connection = context->storageConnection(); 59 if (!connection) 60 return promise.reject(Exception { InvalidStateError, "The connection is invalid"_s }); 66 61 67 return promise.reject(Exception { InvalidStateError, "The connection is invalid"_s }); 62 auto* origin = context->securityOrigin(); 63 if (!origin) 64 return promise.reject(Exception { InvalidStateError, "Origin is invalid"_s }); 65 66 return connection->persisted({ context->topOrigin().data(), origin->data() }, [promise = WTFMove(promise)](bool persisted) mutable { 67 promise.resolve(persisted); 68 }); 68 69 } 69 70 70 71 void StorageManager::persist(DOMPromiseDeferred<IDLBoolean>&& promise) 71 72 { 72 auto context = m_navigator.scriptExecutionContext(); 73 if (!m_navigator) 74 return promise.reject(Exception { InvalidStateError, "Navigator does not exist"_s }); 75 76 auto context = m_navigator->scriptExecutionContext(); 73 77 if (!context) 74 78 return promise.reject(Exception { InvalidStateError, "The context is invalid"_s }); 75 79 76 if (auto connection = context->storageConnection()) { 77 return connection->persist(clientOrigin(*context), [promise = WTFMove(promise)](bool persisted) mutable { 78 promise.resolve(persisted); 79 }); 80 } 80 auto connection = context->storageConnection(); 81 if (!connection) 82 return promise.reject(Exception { InvalidStateError, "The connection is invalid"_s }); 81 83 82 return promise.reject(Exception { InvalidStateError, "The connection is invalid"_s }); 84 auto* origin = context->securityOrigin(); 85 if (!origin) 86 return promise.reject(Exception { InvalidStateError, "Origin is invalid"_s }); 87 88 return connection->persist({ context->topOrigin().data(), origin->data() }, [promise = WTFMove(promise)](bool persisted) mutable { 89 promise.resolve(persisted); 90 }); 83 91 } 84 92 -
trunk/Source/WebCore/Modules/storage/StorageManager.h
r282130 r282222 44 44 explicit StorageManager(NavigatorBase&); 45 45 46 NavigatorBase&m_navigator;46 WeakPtr<NavigatorBase> m_navigator; 47 47 }; 48 48 -
trunk/Source/WebCore/dom/Document.cpp
r282130 r282222 3560 3560 } 3561 3561 3562 RefPtr<StorageConnection>Document::storageConnection()3562 StorageConnection* Document::storageConnection() 3563 3563 { 3564 3564 return page() ? &page()->storageConnection() : nullptr; -
trunk/Source/WebCore/dom/Document.h
r282130 r282222 707 707 IDBClient::IDBConnectionProxy* idbConnectionProxy() final; 708 708 RefPtr<PermissionController> permissionController() final; 709 RefPtr<StorageConnection>storageConnection() final;709 StorageConnection* storageConnection() final; 710 710 SocketProvider* socketProvider() final; 711 711 RefPtr<RTCDataChannelRemoteHandlerConnection> createRTCDataChannelRemoteHandlerConnection() final; -
trunk/Source/WebCore/dom/ScriptExecutionContext.h
r282130 r282222 119 119 virtual IDBClient::IDBConnectionProxy* idbConnectionProxy() = 0; 120 120 virtual RefPtr<PermissionController> permissionController() { return nullptr; } 121 virtual RefPtr<StorageConnection>storageConnection() { return nullptr; }121 virtual StorageConnection* storageConnection() { return nullptr; } 122 122 123 123 virtual SocketProvider* socketProvider() = 0; -
trunk/Source/WebCore/page/NavigatorBase.cpp
r282130 r282222 141 141 } 142 142 143 ExceptionOr<StorageManager&>NavigatorBase::storage()143 StorageManager& NavigatorBase::storage() 144 144 { 145 145 if (!m_storageManager) -
trunk/Source/WebCore/page/NavigatorBase.h
r282130 r282222 60 60 static Vector<String> languages(); 61 61 62 ExceptionOr<StorageManager&>storage();62 StorageManager& storage(); 63 63 64 64 protected: -
trunk/Source/WebKit/ChangeLog
r282218 r282222 1 2021-09-09 Sihui Liu <sihui_liu@apple.com> 2 3 Address post-commit comments on r282130 (Add basic support for Storage API) 4 https://bugs.webkit.org/show_bug.cgi?id=230059 5 6 Reviewed by Youenn Fablet. 7 8 * NetworkProcess/storage/NetworkStorageManager.cpp: 9 (WebKit::NetworkStorageManager::localOriginStorageManager): 10 1 11 2021-09-09 Chris Dumez <cdumez@apple.com> 2 12 -
trunk/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp
r282170 r282222 92 92 ASSERT(!RunLoop::isMain()); 93 93 94 return *m_localOriginStorageManagers.ensure(origin, [ path = m_path, origin, salt = m_salt] {95 return makeUnique<OriginStorageManager>(originPath( path, origin,salt));94 return *m_localOriginStorageManagers.ensure(origin, [&] { 95 return makeUnique<OriginStorageManager>(originPath(m_path, origin, m_salt)); 96 96 }).iterator->value; 97 97 }
Note:
See TracChangeset
for help on using the changeset viewer.