)]}'
{"id": 5161589557821440, "name": "IndexedDB: SQLite backend", "summary": "Chromium's IndexedDB implementation is rewritten on top of SQLite, to replace the previous implementation that uses a hybrid of LevelDB and flat files. There is no change to the Web API.\n\nThis is expected to improve reliability and, to a lesser extent, performance.\n\nFor now this is applied to *new data stores*. This is step 2 of a multi-phase rollout. See https://chromestatus.com/feature/5126896685809664 which tracks step 1, the rollout for in-memory i.e. incognito contexts. Step 3 will consist of migrating existing data from LevelDB stores to SQLite stores.\n\nIn this step, the first time a user visits a site, or after clearing site data, new IDB data will be stored in a backend that makes use of SQLite, but existing data stored in LevelDB is unimpacted.\n\nSee Documentation link below for a list of differences to be aware of.", "markdown_fields": [], "blink_components": ["Blink>Storage>IndexedDB"], "star_count": 63, "search_tags": [], "created": {"by": "estade@chromium.org", "when": "2026-04-01 21:19:11.704941"}, "updated": {"by": "fergal@google.com", "when": "2026-08-17 10:14:13.261333"}, "category": "Offline / Storage", "category_int": 7, "feature_notes": null, "web_feature": "indexeddb", "is_official_web_feature": true, "webdx_usecounter_enum": null, "enterprise_feature_categories": ["2"], "enterprise_product_category": 0, "is_releasenotes_content_reviewed": false, "is_releasenotes_publish_ready": false, "stages": [{"id": 5186347091492864, "created": "2026-04-01 21:19:12.724087", "feature_id": 5161589557821440, "stage_type": 320, "display_name": null, "intent_stage": 1, "pm_emails": [], "tl_emails": [], "ux_emails": [], "te_emails": [], "intent_thread_url": null, "announcement_url": null, "experiment_goals": null, "experiment_risks": null, "origin_trial_id": null, "origin_trial_feedback_url": null, "ot_action_requested": false, "ot_approval_buganizer_component": null, "ot_approval_buganizer_custom_field_id": null, "ot_approval_criteria_url": null, "ot_approval_group_email": null, "ot_chromium_trial_name": null, "ot_description": null, "ot_display_name": null, "ot_documentation_url": null, "ot_emails": [], "ot_feedback_submission_url": null, "ot_has_third_party_support": false, "ot_is_critical_trial": false, "ot_is_deprecation_trial": false, "ot_owner_email": null, "ot_requester_email": null, "ot_require_approvals": false, "ot_use_counter_bucket_number": null, "ot_webfeature_use_counter": null, "extensions": [], "experiment_extension_reason": null, "ot_stage_id": null, "finch_url": null, "rollout_milestone": null, "rollout_platforms": [], "rollout_details": null, "rollout_impact": 2, "rollout_stage_plan": null, "enterprise_policies": [], "desktop_first": null, "android_first": null, "ios_first": null, "webview_first": null, "desktop_last": null, "android_last": null, "ios_last": null, "webview_last": null}, {"id": 5199976901771264, "created": "2026-04-01 21:19:12.784923", "feature_id": 5161589557821440, "stage_type": 330, "display_name": null, "intent_stage": 2, "pm_emails": [], "tl_emails": [], "ux_emails": [], "te_emails": [], "intent_thread_url": null, "announcement_url": null, "experiment_goals": null, "experiment_risks": null, "origin_trial_id": null, "origin_trial_feedback_url": null, "ot_action_requested": false, "ot_approval_buganizer_component": null, "ot_approval_buganizer_custom_field_id": null, "ot_approval_criteria_url": null, "ot_approval_group_email": null, "ot_chromium_trial_name": null, "ot_description": null, "ot_display_name": null, "ot_documentation_url": null, "ot_emails": [], "ot_feedback_submission_url": null, "ot_has_third_party_support": false, "ot_is_critical_trial": false, "ot_is_deprecation_trial": false, "ot_owner_email": null, "ot_requester_email": null, "ot_require_approvals": false, "ot_use_counter_bucket_number": null, "ot_webfeature_use_counter": null, "extensions": [], "experiment_extension_reason": null, "ot_stage_id": null, "finch_url": null, "rollout_milestone": null, "rollout_platforms": [], "rollout_details": null, "rollout_impact": 2, "rollout_stage_plan": null, "enterprise_policies": [], "desktop_first": 149, "android_first": 149, "ios_first": null, "webview_first": null, "desktop_last": null, "android_last": null, "ios_last": null, "webview_last": null}, {"id": 6290878126751744, "created": "2026-04-01 21:19:12.846309", "feature_id": 5161589557821440, "stage_type": 360, "display_name": null, "intent_stage": 5, "pm_emails": [], "tl_emails": [], "ux_emails": [], "te_emails": [], "intent_thread_url": null, "announcement_url": null, "experiment_goals": null, "experiment_risks": null, "origin_trial_id": null, "origin_trial_feedback_url": null, "ot_action_requested": false, "ot_approval_buganizer_component": null, "ot_approval_buganizer_custom_field_id": null, "ot_approval_criteria_url": null, "ot_approval_group_email": null, "ot_chromium_trial_name": null, "ot_description": null, "ot_display_name": null, "ot_documentation_url": null, "ot_emails": [], "ot_feedback_submission_url": null, "ot_has_third_party_support": false, "ot_is_critical_trial": false, "ot_is_deprecation_trial": false, "ot_owner_email": null, "ot_requester_email": null, "ot_require_approvals": false, "ot_use_counter_bucket_number": null, "ot_webfeature_use_counter": null, "extensions": [], "experiment_extension_reason": null, "ot_stage_id": null, "finch_url": null, "rollout_milestone": null, "rollout_platforms": [], "rollout_details": null, "rollout_impact": 2, "rollout_stage_plan": null, "enterprise_policies": [], "desktop_first": 156, "android_first": 156, "ios_first": null, "webview_first": 156, "desktop_last": null, "android_last": null, "ios_last": null, "webview_last": null}], "accurate_as_of": "2026-08-17 10:14:13.261333", "creator_email": "estade@chromium.org", "updater_email": "fergal@google.com", "owner_emails": ["evanstade@microsoft.com", "abhishek.shanthkumar@microsoft.com", "fergal@google.com"], "editor_emails": ["stevebe@microsoft.com"], "cc_emails": [], "spec_mentor_emails": [], "unlisted": false, "deleted": false, "editors": ["stevebe@microsoft.com"], "cc_recipients": [], "spec_mentors": [], "creator": "estade@chromium.org", "feature_type": "No developer-visible change", "feature_type_int": 2, "intent_stage": "None", "intent_stage_int": 0, "active_stage_id": 6290878126751744, "bug_url": "https://issues.chromium.org/issues/498644996", "launch_bug_url": null, "new_crbug_url": "https://bugs.chromium.org/p/chromium/issues/entry?components=Blink>Storage>IndexedDB&blocking=498644996&cc=evanstade@microsoft.com,abhishek.shanthkumar@microsoft.com,fergal@google.com", "screenshot_links": [], "first_enterprise_notification_milestone": null, "enterprise_impact": 1, "breaking_change": false, "confidential": false, "shipping_year": 2026, "flag_name": "idb-sqlite-backing-store", "finch_name": "IdbSqliteOnDiskRollout", "non_finch_justification": null, "ongoing_constraints": null, "rollout_plan": 2, "rollout_plan_displayname": "(RARE) Experiment users ramp up over time", "motivation": "Chromium's IndexedDB implementation suffers from poor reliability and maintainability because it is highly dependent on a database engine (LevelDB) that is not maintained or supported, or as featureful as a full RDBMS. Many sophisticated web apps report high rates of missing or corrupt data, and bugs in the aging backend are hard to find and fix. SQLite is a more suitable replacement for long-term maintainability as it has an active development team and community, and its features like native support for transactions should yield improved reliability.", "devtrial_instructions": "https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API/Using_IndexedDB", "activation_risks": "There are already many libraries wrapping IndexedDB, and its use is widespread.\n\nHowever, not all sites will be able to immediately take advantage of this feature, because there is not yet a mechanism to migrate data from the implementation that uses LevelDB to that which uses SQLite. Sites that are willing and able to clear user data (such as small local caches of server-stored data) can make use of the feature immediately.", "measurement": null, "availability_expectation": null, "adoption_expectation": null, "adoption_plan": null, "initial_public_proposal_url": null, "explainer_links": [], "requires_embedder_support": false, "spec_link": "https://www.w3.org/TR/IndexedDB", "api_spec": false, "automation_spec": false, "interop_compat_risks": "Interop: this work entails a web-visible behavioral change concerning an edge case in IDB transaction scheduling. This change brings Chromium in line with Firefox and Safari. (Both new and old behavior are standards-compliant.) See demo.\n\nCompatibility: This PSA exists primarily to warn of the risk of unintended breakage. The performance characteristics, including reliability, runtime + CPU usage, memory usage, disk access, and storage utilization will all change, to varying extents based on exact details of site usage. This could become problematic in cases where sites are operating at the limits of device abilities (e.g. a kiosk app running on extremely storage-constrained hardware).", "all_platforms": true, "all_platforms_descr": null, "non_oss_deps": null, "anticipated_spec_changes": null, "security_risks": "All data on disk is still segregated by storage bucket (origin).\n\nBoth new and old implementation are newly fuzz-tested.\n\nMore details: https://docs.google.com/document/d/19OeH_F02tfzdWiECtUndTpCh6LKz6ayUZ2nI6Lsug3o/edit?usp=sharing", "ergonomics_risks": null, "wpt": true, "wpt_descr": "https://wpt.fyi/results/IndexedDB", "webview_risks": null, "devrel_emails": ["devrel-chromestatus-all@google.com"], "debuggability": "existing IndexedDB DevTools support is unimpacted", "doc_links": ["https://docs.google.com/document/d/1S9Rx67BmCZIP7tpasKaQ2FlV4TL1Z15DitR2kRZs9nw/edit?usp=sharing", "https://docs.google.com/document/d/1-N4NqdYjqaWEbfVPYnCg2Ho1u4YK48pUoQ_tSy9SUg8/edit?usp=sharing"], "sample_links": ["https://evanstade.github.io/web-storage-demos/idb-txn-scopes"], "prefixed": null, "tags": [], "tag_review": null, "tag_review_status": "Not applicable", "tag_review_status_int": 4, "security_review_status": "Pending", "security_review_status_int": 1, "privacy_review_status": "Pending", "privacy_review_status_int": 1, "security_continuity_id": null, "security_launch_issue_id": null, "updated_display": null, "resources": {"samples": ["https://evanstade.github.io/web-storage-demos/idb-txn-scopes"], "docs": ["https://docs.google.com/document/d/1S9Rx67BmCZIP7tpasKaQ2FlV4TL1Z15DitR2kRZs9nw/edit?usp=sharing", "https://docs.google.com/document/d/1-N4NqdYjqaWEbfVPYnCg2Ho1u4YK48pUoQ_tSy9SUg8/edit?usp=sharing"]}, "comments": null, "ff_views": 1, "safari_views": 1, "web_dev_views": 4, "browsers": {"chrome": {"bug": "https://issues.chromium.org/issues/498644996", "blink_components": ["Blink>Storage>IndexedDB"], "devrel": ["devrel-chromestatus-all@google.com"], "owners": ["evanstade@microsoft.com", "abhishek.shanthkumar@microsoft.com", "fergal@google.com"], "origintrial": false, "prefixed": null, "flag": false, "status": {"text": "Proposed", "val": 2, "milestone_str": "Proposed"}, "announced": true, "desktop": 156, "android": 156, "webview": 156, "ios": null}, "ff": {"view": {"url": null, "notes": "Firefox uses SQLite for IndexedDB.", "text": "Shipped/Shipping", "val": 1}}, "safari": {"view": {"url": null, "notes": "Safari uses SQLite for IndexedDB.", "text": "Shipped/Shipping", "val": 1}}, "webdev": {"view": {"text": "No signals", "val": 4, "url": null, "notes": null}}, "other": {"view": {"text": null, "val": null, "url": null, "notes": null}}}, "standards": {"spec": "https://www.w3.org/TR/IndexedDB", "maturity": {"text": "Final published standard: Recommendation, Living Standard, Candidate Recommendation, or similar final form", "short_text": "Published standard", "val": 5}}, "is_released": false, "is_enterprise_feature": false, "experiment_timeline": null, "ai_test_eval_report": null, "ai_test_eval_run_status": null, "ai_test_eval_status_timestamp": null}