Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2013 Apple Inc. All rights reserved. | 2 * Copyright (C) 2013 Apple Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
| 8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
| 9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
| 10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
| (...skipping 925 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 936 // 6. Resolve promise. | 936 // 6. Resolve promise. |
| 937 m_closedPromise->resolve(ToV8UndefinedGenerator()); | 937 m_closedPromise->resolve(ToV8UndefinedGenerator()); |
| 938 | 938 |
| 939 // After this algorithm has run, event handlers for the events queued by | 939 // After this algorithm has run, event handlers for the events queued by |
| 940 // this algorithm will be executed, but no further events can be queued. | 940 // this algorithm will be executed, but no further events can be queued. |
| 941 // As a result, no messages can be sent by the CDM as a result of closing | 941 // As a result, no messages can be sent by the CDM as a result of closing |
| 942 // the session. | 942 // the session. |
| 943 m_isClosed = true; | 943 m_isClosed = true; |
| 944 } | 944 } |
| 945 | 945 |
| 946 void MediaKeySession::expirationChanged(double updatedExpiryTimeInMS) { | 946 void MediaKeySession::expirationChanged(double updatedExpiryTimeInMS) { |
|
majidvp
2017/01/25 22:29:02
nit: Please update the function comment for
WebCo
xhwang
2017/01/25 22:34:06
I looked at quiet_NaN() and isnan() call sites and
majidvp
2017/01/25 22:49:01
fair enough.
| |
| 947 DVLOG(MEDIA_KEY_SESSION_LOG_LEVEL) << __func__ << "(" << this << ") " | 947 DVLOG(MEDIA_KEY_SESSION_LOG_LEVEL) << __func__ << "(" << this << ") " |
| 948 << updatedExpiryTimeInMS; | 948 << updatedExpiryTimeInMS; |
| 949 | 949 |
| 950 // From https://w3c.github.io/encrypted-media/#update-expiration: | 950 // From https://w3c.github.io/encrypted-media/#update-expiration: |
| 951 // The following steps are run: | 951 // The following steps are run: |
| 952 // 1. Let the session be the associated MediaKeySession object. | 952 // 1. Let the session be the associated MediaKeySession object. |
| 953 // 2. Let expiration time be NaN. | 953 // 2. Let expiration time be NaN. |
| 954 double expirationTime = std::numeric_limits<double>::quiet_NaN(); | 954 double expirationTime = std::numeric_limits<double>::quiet_NaN(); |
|
majidvp
2017/01/25 22:29:02
nit: how about turning this quient_NaN() value int
xhwang
2017/01/25 22:34:06
Well, if you read the spec language on line 953, i
majidvp
2017/01/25 22:49:02
I am not suggesting to change it from NaN. Rather
xhwang
2017/01/25 23:22:39
Well... quiet_Nan() is already such a constant nam
| |
| 955 | 955 |
| 956 // 3. If the new expiration time is not NaN, let expiration time be the | 956 // 3. If the new expiration time is not NaN, let expiration time be the |
| 957 // new expiration time in milliseconds since 01 January 1970 UTC. | 957 // new expiration time in milliseconds since 01 January 1970 UTC. |
| 958 // (Note that Chromium actually passes 0 to indicate no expiry.) | 958 if (!std::isnan(updatedExpiryTimeInMS)) |
| 959 // FIXME: Get Chromium to pass NaN. | |
| 960 if (!std::isnan(updatedExpiryTimeInMS) && updatedExpiryTimeInMS != 0.0) | |
| 961 expirationTime = updatedExpiryTimeInMS; | 959 expirationTime = updatedExpiryTimeInMS; |
| 962 | 960 |
| 963 // 4. Set the session's expiration attribute to expiration time. | 961 // 4. Set the session's expiration attribute to expiration time. |
| 964 m_expiration = expirationTime; | 962 m_expiration = expirationTime; |
| 965 } | 963 } |
| 966 | 964 |
| 967 void MediaKeySession::keysStatusesChange( | 965 void MediaKeySession::keysStatusesChange( |
| 968 const WebVector<WebEncryptedMediaKeyInformation>& keys, | 966 const WebVector<WebEncryptedMediaKeyInformation>& keys, |
| 969 bool hasAdditionalUsableKey) { | 967 bool hasAdditionalUsableKey) { |
| 970 DVLOG(MEDIA_KEY_SESSION_LOG_LEVEL) | 968 DVLOG(MEDIA_KEY_SESSION_LOG_LEVEL) |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1043 visitor->trace(m_asyncEventQueue); | 1041 visitor->trace(m_asyncEventQueue); |
| 1044 visitor->trace(m_pendingActions); | 1042 visitor->trace(m_pendingActions); |
| 1045 visitor->trace(m_mediaKeys); | 1043 visitor->trace(m_mediaKeys); |
| 1046 visitor->trace(m_keyStatusesMap); | 1044 visitor->trace(m_keyStatusesMap); |
| 1047 visitor->trace(m_closedPromise); | 1045 visitor->trace(m_closedPromise); |
| 1048 EventTargetWithInlineData::trace(visitor); | 1046 EventTargetWithInlineData::trace(visitor); |
| 1049 ContextLifecycleObserver::trace(visitor); | 1047 ContextLifecycleObserver::trace(visitor); |
| 1050 } | 1048 } |
| 1051 | 1049 |
| 1052 } // namespace blink | 1050 } // namespace blink |
| OLD | NEW |