media: Move CdmInitializedPromise to media/.

This class does not need to be in content/ and will be needed by MojoCdm in
media/mojo.

BUG=432998
TEST=Moves file only.

Review URL: https://codereview.chromium.org/1187603003

Cr-Commit-Position: refs/heads/master@{#334266}
diff --git a/media/base/cdm_initialized_promise.cc b/media/base/cdm_initialized_promise.cc
new file mode 100644
index 0000000..dcc9c79c
--- /dev/null
+++ b/media/base/cdm_initialized_promise.cc
@@ -0,0 +1,30 @@
+// Copyright 2015 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.
+
+#include "media/base/cdm_initialized_promise.h"
+
+namespace media {
+
+CdmInitializedPromise::CdmInitializedPromise(const CdmCreatedCB& cdm_created_cb,
+                                             scoped_ptr<MediaKeys> cdm)
+    : cdm_created_cb_(cdm_created_cb), cdm_(cdm.Pass()) {
+}
+
+CdmInitializedPromise::~CdmInitializedPromise() {
+}
+
+void CdmInitializedPromise::resolve() {
+  MarkPromiseSettled();
+  cdm_created_cb_.Run(cdm_.Pass(), "");
+}
+
+void CdmInitializedPromise::reject(MediaKeys::Exception exception_code,
+                                   uint32 system_code,
+                                   const std::string& error_message) {
+  MarkPromiseSettled();
+  cdm_created_cb_.Run(nullptr, error_message);
+  // Usually after this |this| (and the |cdm_| within it) will be destroyed.
+}
+
+}  // namespace media