mirror of
https://github.com/servo/servo.git
synced 2025-06-27 18:43:40 +01:00
Initial IndexedDB Support (#33044)
Adds indexeddb support to servo. At the moment heed is being used as the backend, although this can be swapped out by implementing `KvsEngine`. This PR adds a thread + a thread pool for Indexeddb related operations. Also `database_access_task_source` is added for Indexeddb related operations. This is a partial rewrite of #25214. (Reopened due to branching issue) Fixes #6963 --------- Signed-off-by: Ashwin Naren <arihant2math@gmail.com> Signed-off-by: Josh Matthews <josh@joshmatthews.net> Co-authored-by: Rasmus Viitanen <rasviitanen@gmail.com> Co-authored-by: Josh Matthews <josh@joshmatthews.net>
This commit is contained in:
parent
d33cf8fbd1
commit
ed9a79f3f4
259 changed files with 11141 additions and 8 deletions
|
@ -32,6 +32,7 @@ use servo_url::{ImmutableOrigin, ServoUrl};
|
|||
|
||||
use crate::filemanager_thread::FileManagerThreadMsg;
|
||||
use crate::http_status::HttpStatus;
|
||||
use crate::indexeddb_thread::IndexedDBThreadMsg;
|
||||
use crate::request::{Request, RequestBuilder};
|
||||
use crate::response::{HttpsState, Response, ResponseInit};
|
||||
use crate::storage_thread::StorageThreadMsg;
|
||||
|
@ -40,6 +41,7 @@ pub mod blob_url_store;
|
|||
pub mod filemanager_thread;
|
||||
pub mod http_status;
|
||||
pub mod image_cache;
|
||||
pub mod indexeddb_thread;
|
||||
pub mod mime_classifier;
|
||||
pub mod policy_container;
|
||||
pub mod pub_domains;
|
||||
|
@ -414,13 +416,19 @@ where
|
|||
pub struct ResourceThreads {
|
||||
pub core_thread: CoreResourceThread,
|
||||
storage_thread: IpcSender<StorageThreadMsg>,
|
||||
idb_thread: IpcSender<IndexedDBThreadMsg>,
|
||||
}
|
||||
|
||||
impl ResourceThreads {
|
||||
pub fn new(c: CoreResourceThread, s: IpcSender<StorageThreadMsg>) -> ResourceThreads {
|
||||
pub fn new(
|
||||
c: CoreResourceThread,
|
||||
s: IpcSender<StorageThreadMsg>,
|
||||
i: IpcSender<IndexedDBThreadMsg>,
|
||||
) -> ResourceThreads {
|
||||
ResourceThreads {
|
||||
core_thread: c,
|
||||
storage_thread: s,
|
||||
idb_thread: i,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -439,6 +447,16 @@ impl IpcSend<CoreResourceMsg> for ResourceThreads {
|
|||
}
|
||||
}
|
||||
|
||||
impl IpcSend<IndexedDBThreadMsg> for ResourceThreads {
|
||||
fn send(&self, msg: IndexedDBThreadMsg) -> IpcSendResult {
|
||||
self.idb_thread.send(msg)
|
||||
}
|
||||
|
||||
fn sender(&self) -> IpcSender<IndexedDBThreadMsg> {
|
||||
self.idb_thread.clone()
|
||||
}
|
||||
}
|
||||
|
||||
impl IpcSend<StorageThreadMsg> for ResourceThreads {
|
||||
fn send(&self, msg: StorageThreadMsg) -> IpcSendResult {
|
||||
self.storage_thread.send(msg)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue