Move GCMDecryptionResult to its own file

It's used in places beyond the GCMEncryptionProvider now, and might be
exposed to GCM app handlers in the future, so let's factor it out.

BUG=678347

Change-Id: I2301c05b403a4ec52d04e45616988ff40f270fde
Reviewed-on: https://chromium-review.googlesource.com/550155
Commit-Queue: Peter Beverloo <[email protected]>
Reviewed-by: Anita Woodruff <[email protected]>
Cr-Commit-Position: refs/heads/master@{#482657}
diff --git a/components/gcm_driver/gcm_client.h b/components/gcm_driver/gcm_client.h
index 921c414..64cbd56 100644
--- a/components/gcm_driver/gcm_client.h
+++ b/components/gcm_driver/gcm_client.h
@@ -14,7 +14,6 @@
 
 #include "base/memory/linked_ptr.h"
 #include "components/gcm_driver/common/gcm_messages.h"
-#include "components/gcm_driver/crypto/gcm_encryption_provider.h"
 #include "components/gcm_driver/gcm_activity.h"
 #include "components/gcm_driver/registration_info.h"
 
@@ -33,8 +32,9 @@
 
 namespace gcm {
 
-class Encryptor;
 struct AccountMapping;
+class Encryptor;
+enum class GCMDecryptionResult;
 
 // Interface that encapsulates the network communications with the Google Cloud
 // Messaging server. This interface is not supposed to be thread-safe.
@@ -288,9 +288,8 @@
                     const OutgoingMessage& message) = 0;
 
   // Records a decryption failure due to |result| for the |app_id|.
-  virtual void RecordDecryptionFailure(
-      const std::string& app_id,
-      GCMEncryptionProvider::DecryptionResult result) = 0;
+  virtual void RecordDecryptionFailure(const std::string& app_id,
+                                       GCMDecryptionResult result) = 0;
 
   // Enables or disables internal activity recording.
   virtual void SetRecording(bool recording) = 0;