Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: prevent silent failure when DOM storage quota exceeded #21380

Merged
merged 1 commit into from Dec 4, 2019

Commits on Dec 4, 2019

  1. fix: prevent silent failure when DOM storage quota exceeded (electron…

    …#20899)
    
    * test: update DOM storage quota limits test
    
    * fix: update dom_storage_limits.patch (fixes electron#13465)
    
    The previous version of this patch did not include
    changes required to circumvent the quota enforcement
    performed by StorageAreaImpl. Consequently when
    the quota was exceeded, things still "appeared to
    work" at first but then would later fail silently.
    That is, the cache would be updated but the backing
    store would not.
    
    This could be fixed by disabling the code below
    (from `content/browser/dom_storage/storage_area_impl.cc`)
    ```
      // Only check quota if the size is increasing, this allows
      // shrinking changes to pre-existing maps that are over budget.
      if (new_item_size > old_item_size && new_storage_used > max_size_) {
        if (map_state_ == MapState::LOADED_KEYS_ONLY) {
          receivers_.ReportBadMessage(
              "The quota in browser cannot exceed when there is only one "
              "renderer.");
        } else {
          std::move(callback).Run(false);
        }
        return;
      }
    ```
    
    However, since this seems to have some unintended side-effects
    (see updated notes in dom_storage_limits.patch) it seems
    more prudent to simply increase the quota to a larger
    yet still reasonable size rather than attempt to circumvent
    the storage quota altogether.
    jacobq committed Dec 4, 2019
    Copy the full SHA
    612e54d View commit details
    Browse the repository at this point in the history