| Index: Source/modules/encryptedmedia/NavigatorRequestMediaKeySystemAccess.cpp
 | 
| diff --git a/Source/modules/encryptedmedia/NavigatorRequestMediaKeySystemAccess.cpp b/Source/modules/encryptedmedia/NavigatorRequestMediaKeySystemAccess.cpp
 | 
| index 19ccc9615b9c347f5c9d31e84df8b96570543d50..a9768db0864e179d61317c1ad854355b6e6cf07e 100644
 | 
| --- a/Source/modules/encryptedmedia/NavigatorRequestMediaKeySystemAccess.cpp
 | 
| +++ b/Source/modules/encryptedmedia/NavigatorRequestMediaKeySystemAccess.cpp
 | 
| @@ -10,6 +10,7 @@
 | 
|  #include "core/dom/DOMException.h"
 | 
|  #include "core/dom/Document.h"
 | 
|  #include "core/dom/ExceptionCode.h"
 | 
| +#include "core/frame/UseCounter.h"
 | 
|  #include "modules/encryptedmedia/EncryptedMediaUtils.h"
 | 
|  #include "modules/encryptedmedia/MediaKeySession.h"
 | 
|  #include "modules/encryptedmedia/MediaKeySystemAccess.h"
 | 
| @@ -174,13 +175,22 @@ ScriptPromise NavigatorRequestMediaKeySystemAccess::requestMediaKeySystemAccess(
 | 
|      }
 | 
|  
 | 
|      // 3-4. 'May Document use powerful features?' check.
 | 
| -    // FIXME: Implement 'May Document use powerful features?' check.
 | 
| +    ExecutionContext* executionContext = scriptState->executionContext();
 | 
| +    String errorMessage;
 | 
| +    if (executionContext->isPrivilegedContext(errorMessage)) {
 | 
| +        UseCounter::count(executionContext, UseCounter::EncryptedMediaSecureOrigin);
 | 
| +    } else {
 | 
| +        UseCounter::countDeprecation(executionContext, UseCounter::EncryptedMediaInsecureOrigin);
 | 
| +        // TODO(ddorwin): Implement the following:
 | 
| +        // Reject promise with a new DOMException whose name is NotSupportedError.
 | 
| +    }
 | 
| +
 | 
|  
 | 
|      // 5. Let origin be the origin of document.
 | 
|      //    (Passed with the execution context in step 7.)
 | 
|  
 | 
|      // 6. Let promise be a new promise.
 | 
| -    Document* document = toDocument(scriptState->executionContext());
 | 
| +    Document* document = toDocument(executionContext);
 | 
|      if (!document->page()) {
 | 
|          return ScriptPromise::rejectWithDOMException(
 | 
|              scriptState, DOMException::create(InvalidStateError, "Document does not have a page."));
 | 
| @@ -192,7 +202,7 @@ ScriptPromise NavigatorRequestMediaKeySystemAccess::requestMediaKeySystemAccess(
 | 
|      // 7. Asynchronously determine support, and if allowed, create and
 | 
|      //    initialize the MediaKeySystemAccess object.
 | 
|      MediaKeysController* controller = MediaKeysController::from(document->page());
 | 
| -    WebEncryptedMediaClient* mediaClient = controller->encryptedMediaClient(scriptState->executionContext());
 | 
| +    WebEncryptedMediaClient* mediaClient = controller->encryptedMediaClient(executionContext);
 | 
|      mediaClient->requestMediaKeySystemAccess(WebEncryptedMediaRequest(initializer));
 | 
|  
 | 
|      // 8. Return promise.
 | 
| 
 |