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 #20899

Merged
merged 2 commits into from Nov 22, 2019

Commits on Nov 14, 2019

  1. Configuration menu
    Copy the full SHA
    9ee210c View commit details
    Browse the repository at this point in the history
  2. 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 Nov 14, 2019
    Configuration menu
    Copy the full SHA
    e2d61d2 View commit details
    Browse the repository at this point in the history