Thank you for bringing up that use case, Ryan.

I should have mentioned that I'll file bugs for all internal users of storage: 
"persistent" so that we can deal with this in the 61 cycle. As Andrew mentioned 
we don't expect any issues, and it's a priority that this change is not an 
inconvenience or causes disruption to any other team.

Thanks!

Johann

Andrew Sutherland wrote:
> QuotaManager already has a notion of "internal" origins[1] that explicitly 
> white-lists devtools' synthetic "indexeddb" fake scheme.  It's this check 
> that avoids the prompt when persistent storage is requested.
> 
> It might make sense to expand the existing logic that acts like all 
> system-principaled origins are asking for persistent storage[2] to use the 
> check as well, or at least for the IndexedDB protocol until we get to the 
> next steps for changing how QuotaManager handles persistent data.  We could 
> do this in the same commit that removes devtools' use of the storage property.
> 
> Andrew
> 
> 1: 
> https://searchfox.org/mozilla-central/rev/bffd3e0225b65943364be721881470590b9377c1/dom/quota/ActorsParent.cpp#5524
> 
> 2: 
> https://searchfox.org/mozilla-central/rev/bffd3e0225b65943364be721881470590b9377c1/dom/indexedDB/IDBFactory.cpp#681
> 
> 
> On 03/06/2018 01:18 PM, J. Ryan Stinnett wrote:
>> DevTools is one chrome caller that might be impacted. We craft a custom
>> principal and pass `storage: persistent`[1] when using IndexedDB in the
>> tools.
>>
>> DevTools uses this storage for developer settings that should be retained
>> over time. It sounds like with the proposed change here, DevTools storage
>> might lose the persistent status. If that's true, what's the right approach
>> to maintain the status quo? I don't think it makes sense to show a
>> permission prompt when DevTools access its storage, since it is a browser
>> feature.
>>
>> Should we add an exception for the DevTools iDB principal? Should DevTools
>> use the system principal and migrate existing data?
>>
>> [1]:
>> https://searchfox.org/mozilla-central/rev/bffd3e0225b65943364be721881470590b9377c1/devtools/shared/indexed-db.js#34
>>
>> - Ryan
>>
>> On Tue, Mar 6, 2018 at 9:58 AM, Johann Hofmann <jhofm...@mozilla.com> wrote:
>>
>>> I would like to unship the proprietary "storage" attribute in
>>> indexedDB.open()[0]. It allows developers to prevent their indexedDB
>>> storage from being evicted as part of quota management[1]. However,
>>> there is a web standard which specifies a better persistent storage
>>> mechanism and has broader vendor support[2].
>>>
>>> There are several issues with the old proprietary version:
>>>
>>> - It's only supported by Firefox.
>>> - It can be used over insecure HTTP, which is against the persistent
>>> storage spec.
>>> - Its internal mechanism is only concerned with indexedDB and does not
>>> integrate with other quota managed storage.
>>> - We actually need to maintain two separate permissions that do more or
>>> less the same thing ("indexedDB" and "persistent-storage"). The UI for
>>> managing these looks almost exactly the same and it's impossible to
>>> clarify the difference. It's a pretty annoying security/privacy UX issue
>>> and difficult to justify to users.
>>>
>>> The plan is to ignore the "storage" attribute and label all databases
>>> opened from iDB.open as default (i.e. dependent on the persistent
>>> storage mechanism).
>>>
>>> Before doing this, we will issue a deprecation warning in the browser
>>> console and write a blog post on Mozilla Hacks. Affected websites could
>>> lose their indexedDB data (equivalent to the user clearing their
>>> cookies), unless they migrate to the new storage model.
>>>
>>> We are tracking this work in bug 1354500
>>> (https://bugzilla.mozilla.org/show_bug.cgi?id=1354500).
>>>
>>> We have seen very low usage on beta[3], with the exception of a spike in
>>> November which we attribute to about:home usage from a/b testing. After
>>> we stopped counting usage from about: pages on Nightly, the telemetry
>>> probe stopped signaling completely[4].
>>>
>>> I personally consider these numbers (prior to any evangelism or console
>>> warnings) low enough to unship within the Firefox 62 timeframe, without
>>> migration.
>>>
>>> Chrome callers should not be affected by this, since we upgrade the
>>> system principal to persistent storage automatically.
>>>
>>> Please let me know what you think.
>>>
>>> Thanks,
>>>
>>> Johann
>>>
>>> [0] https://developer.mozilla.org/en-US/docs/Web/API/IDBFactory/
>>> open#Syntax
>>> [1]
>>> https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_
>>> API/Browser_storage_limits_and_eviction_criteria
>>> [2] https://storage.spec.whatwg.org/
>>> [3] https://mzl.la/2GVyQ7g
>>> [4] https://mzl.la/2FqW0FH
>>> _______________________________________________
>>> dev-platform mailing list
>>> dev-platform@lists.mozilla.org
>>> https://lists.mozilla.org/listinfo/dev-platform
>>>
>> _______________________________________________
>> dev-platform mailing list
>> dev-platform@lists.mozilla.org
>> https://lists.mozilla.org/listinfo/dev-platform
> 
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to