1 /*
2 * Copyright (c) 2025 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include "ohos_adapter/bridge/ark_drm_callback_adapter_impl.h"
17
18 namespace OHOS::ArkWeb {
19
ArkDrmCallbackAdapterImpl(std::shared_ptr<OHOS::NWeb::DrmCallbackAdapter> ref)20 ArkDrmCallbackAdapterImpl::ArkDrmCallbackAdapterImpl(std::shared_ptr<OHOS::NWeb::DrmCallbackAdapter> ref) : real_(ref)
21 {}
22
OnSessionMessage(const ArkWebString & sessionId,int32_t & type,const ArkWebUint8Vector & msg)23 void ArkDrmCallbackAdapterImpl::OnSessionMessage(
24 const ArkWebString& sessionId, int32_t& type, const ArkWebUint8Vector& msg)
25 {
26 real_->OnSessionMessage(
27 ArkWebStringStructToClass(sessionId), type, ArkWebBasicVectorStructToClass<uint8_t, ArkWebUint8Vector>(msg));
28 }
29
OnProvisionRequest(const ArkWebString & defaultUrl,const ArkWebString & requestData)30 void ArkDrmCallbackAdapterImpl::OnProvisionRequest(const ArkWebString& defaultUrl, const ArkWebString& requestData)
31 {
32 real_->OnProvisionRequest(ArkWebStringStructToClass(defaultUrl), ArkWebStringStructToClass(requestData));
33 }
34
OnProvisioningComplete(bool success)35 void ArkDrmCallbackAdapterImpl::OnProvisioningComplete(bool success)
36 {
37 real_->OnProvisioningComplete(success);
38 }
39
OnMediaKeySessionReady(void * session)40 void ArkDrmCallbackAdapterImpl::OnMediaKeySessionReady(void* session)
41 {
42 real_->OnMediaKeySessionReady(session);
43 }
44
OnPromiseRejected(uint32_t promiseId,const ArkWebString & errorMessage)45 void ArkDrmCallbackAdapterImpl::OnPromiseRejected(uint32_t promiseId, const ArkWebString& errorMessage)
46 {
47 real_->OnPromiseRejected(promiseId, ArkWebStringStructToClass(errorMessage));
48 }
49
OnPromiseResolved(uint32_t promiseId)50 void ArkDrmCallbackAdapterImpl::OnPromiseResolved(uint32_t promiseId)
51 {
52 real_->OnPromiseResolved(promiseId);
53 }
54
OnPromiseResolvedWithSession(uint32_t promiseId,const ArkWebString & sessionId)55 void ArkDrmCallbackAdapterImpl::OnPromiseResolvedWithSession(uint32_t promiseId, const ArkWebString& sessionId)
56 {
57 real_->OnPromiseResolvedWithSession(promiseId, ArkWebStringStructToClass(sessionId));
58 }
59
OnSessionClosed(const ArkWebString & sessionId)60 void ArkDrmCallbackAdapterImpl::OnSessionClosed(const ArkWebString& sessionId)
61 {
62 real_->OnSessionClosed(ArkWebStringStructToClass(sessionId));
63 }
64
OnSessionKeysChange(const ArkWebString & sessionId,const ArkWebStringVector & keyIdArray,const ArkWebUint32Vector & statusArray,bool hasAdditionalUsableKey,bool isRelease)65 void ArkDrmCallbackAdapterImpl::OnSessionKeysChange(const ArkWebString& sessionId, const ArkWebStringVector& keyIdArray,
66 const ArkWebUint32Vector& statusArray, bool hasAdditionalUsableKey, bool isRelease)
67 {
68 real_->OnSessionKeysChange(ArkWebStringStructToClass(sessionId), ArkWebStringVectorStructToClass(keyIdArray),
69 ArkWebBasicVectorStructToClass<uint32_t, ArkWebUint32Vector>(statusArray), hasAdditionalUsableKey, isRelease);
70 }
71
OnSessionExpirationUpdate(const ArkWebString & sessionId,uint64_t expirationTime)72 void ArkDrmCallbackAdapterImpl::OnSessionExpirationUpdate(const ArkWebString& sessionId, uint64_t expirationTime)
73 {
74 real_->OnSessionExpirationUpdate(ArkWebStringStructToClass(sessionId), expirationTime);
75 }
76
OnStorageProvisioned()77 void ArkDrmCallbackAdapterImpl::OnStorageProvisioned()
78 {
79 real_->OnStorageProvisioned();
80 }
81
OnStorageSaveInfo(const ArkWebUint8Vector & ketSetId,const ArkWebString & mimeType,const ArkWebString & sessionId,int32_t keyType)82 void ArkDrmCallbackAdapterImpl::OnStorageSaveInfo(
83 const ArkWebUint8Vector& ketSetId, const ArkWebString& mimeType, const ArkWebString& sessionId, int32_t keyType)
84 {
85 real_->OnStorageSaveInfo(ArkWebBasicVectorStructToClass<uint8_t, ArkWebUint8Vector>(ketSetId),
86 ArkWebStringStructToClass(mimeType), ArkWebStringStructToClass(sessionId), keyType);
87 }
88
OnStorageLoadInfo(const ArkWebString & sessionId)89 void ArkDrmCallbackAdapterImpl::OnStorageLoadInfo(const ArkWebString& sessionId)
90 {
91 real_->OnStorageLoadInfo(ArkWebStringStructToClass(sessionId));
92 }
93
OnStorageClearInfoForKeyRelease(const ArkWebString & sessionId)94 void ArkDrmCallbackAdapterImpl::OnStorageClearInfoForKeyRelease(const ArkWebString& sessionId)
95 {
96 real_->OnStorageClearInfoForKeyRelease(ArkWebStringStructToClass(sessionId));
97 }
98
OnStorageClearInfoForLoadFail(const ArkWebString & sessionId)99 void ArkDrmCallbackAdapterImpl::OnStorageClearInfoForLoadFail(const ArkWebString& sessionId)
100 {
101 real_->OnStorageClearInfoForLoadFail(ArkWebStringStructToClass(sessionId));
102 }
103
OnMediaLicenseReady(bool success)104 void ArkDrmCallbackAdapterImpl::OnMediaLicenseReady(bool success)
105 {
106 real_->OnMediaLicenseReady(success);
107 }
108 } // namespace OHOS::ArkWeb
109