blob: 5bcfa0a11ea95be61107e46fed069a7185df3052 [file] [log] [blame]
// Copyright 2014 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.
#ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_CONTENT_DECRYPTION_MODULE_RESULT_H_
#define THIRD_PARTY_BLINK_RENDERER_PLATFORM_CONTENT_DECRYPTION_MODULE_RESULT_H_
#include "third_party/blink/public/platform/web_content_decryption_module_exception.h"
#include "third_party/blink/public/platform/web_content_decryption_module_result.h"
#include "third_party/blink/public/platform/web_encrypted_media_key_information.h"
#include "third_party/blink/renderer/platform/heap/handle.h"
namespace blink {
class WebContentDecryptionModule;
class WebString;
// Used to notify completion of a CDM operation.
class ContentDecryptionModuleResult
: public GarbageCollected<ContentDecryptionModuleResult> {
public:
virtual ~ContentDecryptionModuleResult() = default;
virtual void Complete() = 0;
virtual void CompleteWithContentDecryptionModule(
WebContentDecryptionModule*) = 0;
virtual void CompleteWithSession(
WebContentDecryptionModuleResult::SessionStatus) = 0;
virtual void CompleteWithKeyStatus(
WebEncryptedMediaKeyInformation::KeyStatus) = 0;
virtual void CompleteWithError(WebContentDecryptionModuleException,
uint32_t system_code,
const WebString&) = 0;
WebContentDecryptionModuleResult Result() {
return WebContentDecryptionModuleResult(this);
}
virtual void Trace(Visitor* visitor) {}
};
} // namespace blink
#endif // THIRD_PARTY_BLINK_RENDERER_PLATFORM_CONTENT_DECRYPTION_MODULE_RESULT_H_