2018-11-29 23:47:45 +03:00
|
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
|
|
|
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
|
|
|
|
include protocol PBackground;
|
|
|
|
|
|
|
|
include PBackgroundSharedTypes;
|
|
|
|
|
2019-04-29 07:05:56 +03:00
|
|
|
include "mozilla/dom/localstorage/SerializationHelpers.h";
|
|
|
|
|
|
|
|
using mozilla::dom::LSValue
|
|
|
|
from "mozilla/dom/LSValue.h";
|
|
|
|
|
2018-11-29 23:47:45 +03:00
|
|
|
namespace mozilla {
|
|
|
|
namespace dom {
|
|
|
|
|
2018-11-05 22:04:39 +03:00
|
|
|
/**
|
|
|
|
* The observer protocol sends "storage" event notifications for changes to
|
|
|
|
* LocalStorage that take place in other processes as their Snapshots are
|
|
|
|
* Checkpointed to the canonical Datastore in the parent process. Same-process
|
|
|
|
* notifications are generated as mutations happen.
|
|
|
|
*
|
|
|
|
* Note that mutations are never generated for redundant mutations. Setting the
|
|
|
|
* key "foo" to have value "bar" when it already has value "bar" will never
|
|
|
|
* result in a "storage" event.
|
|
|
|
*/
|
2018-11-29 23:47:45 +03:00
|
|
|
async protocol PBackgroundLSObserver
|
|
|
|
{
|
|
|
|
manager PBackground;
|
|
|
|
|
|
|
|
parent:
|
2018-11-05 22:04:39 +03:00
|
|
|
/**
|
|
|
|
* Sent by the LSObserver's destructor when it's going away. Any Observe
|
|
|
|
* messages received after this is sent will be ignored. Which is fine,
|
|
|
|
* because there should be nothing around left to hear. In the event a new
|
|
|
|
* page came into existence, its Observer creation will happen (effectively)
|
|
|
|
* synchronously.
|
|
|
|
*/
|
2018-11-29 23:47:45 +03:00
|
|
|
async DeleteMe();
|
|
|
|
|
|
|
|
child:
|
2018-11-05 22:04:39 +03:00
|
|
|
/**
|
|
|
|
* Only sent by the parent in response to a deletion request.
|
|
|
|
*/
|
2018-11-29 23:47:45 +03:00
|
|
|
async __delete__();
|
|
|
|
|
2018-11-05 22:04:39 +03:00
|
|
|
/**
|
|
|
|
* Sent by the parent process as Snapshots from other processes are
|
|
|
|
* Checkpointed, applying their mutations. The child actor currently directly
|
|
|
|
* shunts these to Storage::NotifyChange to generate "storage" events for
|
|
|
|
* immediate dispatch.
|
|
|
|
*/
|
2018-11-29 23:47:45 +03:00
|
|
|
async Observe(PrincipalInfo principalInfo,
|
|
|
|
uint32_t privateBrowsingId,
|
|
|
|
nsString documentURI,
|
|
|
|
nsString key,
|
2019-04-29 07:05:56 +03:00
|
|
|
LSValue oldValue,
|
|
|
|
LSValue newValue);
|
2018-11-29 23:47:45 +03:00
|
|
|
};
|
|
|
|
|
|
|
|
} // namespace dom
|
|
|
|
} // namespace mozilla
|