blob: c6e2b2aff9eed563012760464fb8066921e84dce [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
module media.mojom;
import "mojo/common/unguessable_token.mojom";
struct SessionData {
array<uint8> key_set_id;
string mime_type;
};
// Allows MediaDrmBridge to store and retrieve persistent data. This is needed
// for features like per-origin provisioning and persistent license support.
interface MediaDrmStorage {
// Initializes |this| and return a random orign ID which can identify the
// current origin. The origin ID should be randomly generated if it doesn't
// exist. |origin_id| must be valid.
// This should not modify anything in the storage.
Initialize() => (mojo.common.mojom.UnguessableToken origin_id);
// Saves origin information (e.g. origin ID, provision time) in the storage
// after MediaDrm is provisioned for current origin.
OnProvisioned() => (bool success);
// Saves persistent session data for |session_id|.
SavePersistentSession(
string session_id, SessionData session_data) => (bool success);
// Loads persistent session data for |session_id|.
// Upon failure, null |session_data| will be returned.
LoadPersistentSession(string session_id) => (SessionData? session_data);
// Removes the persistent session data for |session_id|.
RemovePersistentSession(string session_id) => (bool success);
};