2018-11-12 17:19:01 +00:00
|
|
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
|
|
From: Jacob Quant <jacobq@gmail.com>
|
2019-11-22 19:35:54 +00:00
|
|
|
Date: Thu, 31 Oct 2019 14:00:00 -0500
|
2018-11-12 17:19:01 +00:00
|
|
|
Subject: dom_storage_limits.patch
|
|
|
|
|
2019-11-22 19:35:54 +00:00
|
|
|
This patch increases the DOM storage (e.g. `localStorage`
|
|
|
|
and `sessionStorage`) size quota from 10MiB to 100MiB.
|
|
|
|
Previous versions of this patch attempted to circumvent
|
|
|
|
the restriction altogether.
|
|
|
|
However, this can lead to other problems, such as crashing
|
|
|
|
the Dev Tools when attempting to read or write values that exceed
|
|
|
|
`IPC::Channel::kMaximumMessageSize` (128MiB).
|
2018-11-12 17:19:01 +00:00
|
|
|
|
2019-11-22 19:35:54 +00:00
|
|
|
Increasing the quota rather than bypassing it reduces the
|
|
|
|
amount of chromium code that needs to be changed for Electron
|
|
|
|
as well as keeps these storage areas limited to a bounded
|
|
|
|
size meanwhile giving application developers more space to work with.
|
2018-11-12 17:19:01 +00:00
|
|
|
|
2019-09-18 19:58:00 +00:00
|
|
|
diff --git a/content/browser/dom_storage/dom_storage_types.h b/content/browser/dom_storage/dom_storage_types.h
|
2019-11-22 19:35:54 +00:00
|
|
|
index 6c0b831ebaaa2c1749bbc7436ce1025656588310..96d1c73adb09d33cf591ca569f46de9b21f9a4df 100644
|
2019-09-18 19:58:00 +00:00
|
|
|
--- a/content/browser/dom_storage/dom_storage_types.h
|
|
|
|
+++ b/content/browser/dom_storage/dom_storage_types.h
|
2019-11-22 19:35:54 +00:00
|
|
|
@@ -21,7 +21,8 @@ typedef std::map<base::string16, base::NullableString16> DOMStorageValuesMap;
|
2019-01-12 01:00:43 +00:00
|
|
|
|
2018-11-12 17:19:01 +00:00
|
|
|
// The quota for each storage area.
|
|
|
|
// This value is enforced in renderer processes and the browser process.
|
2019-11-22 19:35:54 +00:00
|
|
|
-const size_t kPerStorageAreaQuota = 10 * 1024 * 1024;
|
|
|
|
+// Electron's dom_storage_limits.patch increased this value from 10MiB to 100MiB
|
|
|
|
+const size_t kPerStorageAreaQuota = 100 * 1024 * 1024;
|
2019-01-12 01:00:43 +00:00
|
|
|
|
2018-11-12 17:19:01 +00:00
|
|
|
// In the browser process we allow some overage to
|
2019-11-22 19:35:54 +00:00
|
|
|
// accomodate concurrent writes from different renderers
|
|
|
|
diff --git a/third_party/blink/public/mojom/dom_storage/storage_area.mojom b/third_party/blink/public/mojom/dom_storage/storage_area.mojom
|
|
|
|
index 1f1b2c6fa109aa52c4e7c7f5fcaac91beb538449..d8f15eed9be83340ffd1f2400df08558e9554710 100644
|
|
|
|
--- a/third_party/blink/public/mojom/dom_storage/storage_area.mojom
|
|
|
|
+++ b/third_party/blink/public/mojom/dom_storage/storage_area.mojom
|
|
|
|
@@ -40,7 +40,8 @@ interface StorageAreaGetAllCallback {
|
|
|
|
interface StorageArea {
|
|
|
|
// The quota for each storage area.
|
|
|
|
// This value is enforced in renderer processes and the browser process.
|
|
|
|
- const uint32 kPerStorageAreaQuota = 10485760; // 10 MiB
|
|
|
|
+ // Electron's dom_storage_limits.patch increased this value from 10MiB to 100MiB
|
|
|
|
+ const uint32 kPerStorageAreaQuota = 104857600; // 100 MiB
|
2019-01-11 19:48:27 +00:00
|
|
|
|
2019-11-22 19:35:54 +00:00
|
|
|
// In the browser process we allow some overage to
|
|
|
|
// accommodate concurrent writes from different renderers
|