OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef GOOGLE_APIS_GCM_ENGINE_UNREGISTRATION_REQUEST_H_ | 5 #ifndef GOOGLE_APIS_GCM_ENGINE_UNREGISTRATION_REQUEST_H_ |
6 #define GOOGLE_APIS_GCM_ENGINE_UNREGISTRATION_REQUEST_H_ | 6 #define GOOGLE_APIS_GCM_ENGINE_UNREGISTRATION_REQUEST_H_ |
7 | 7 |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <memory> | 10 #include <memory> |
(...skipping 22 matching lines...) Expand all Loading... |
33 // TODO(fgorski): Consider sharing code with RegistrationRequest if possible. | 33 // TODO(fgorski): Consider sharing code with RegistrationRequest if possible. |
34 class GCM_EXPORT UnregistrationRequest : public net::URLFetcherDelegate { | 34 class GCM_EXPORT UnregistrationRequest : public net::URLFetcherDelegate { |
35 public: | 35 public: |
36 // Outcome of the response parsing. Note that these enums are consumed by a | 36 // Outcome of the response parsing. Note that these enums are consumed by a |
37 // histogram, so ordering should not be modified. | 37 // histogram, so ordering should not be modified. |
38 enum Status { | 38 enum Status { |
39 SUCCESS, // Unregistration completed successfully. | 39 SUCCESS, // Unregistration completed successfully. |
40 URL_FETCHING_FAILED, // URL fetching failed. | 40 URL_FETCHING_FAILED, // URL fetching failed. |
41 NO_RESPONSE_BODY, // No response body. | 41 NO_RESPONSE_BODY, // No response body. |
42 RESPONSE_PARSING_FAILED, // Failed to parse a meaningful output from | 42 RESPONSE_PARSING_FAILED, // Failed to parse a meaningful output from |
43 // response | 43 // response body. |
44 // body. | |
45 INCORRECT_APP_ID, // App ID returned by the fetcher does not match | 44 INCORRECT_APP_ID, // App ID returned by the fetcher does not match |
46 // request. | 45 // request. |
47 INVALID_PARAMETERS, // Request parameters were invalid. | 46 INVALID_PARAMETERS, // Request parameters were invalid. |
48 SERVICE_UNAVAILABLE, // Unregistration service unavailable. | 47 SERVICE_UNAVAILABLE, // Unregistration service unavailable. |
49 INTERNAL_SERVER_ERROR, // Internal server error happened during request. | 48 INTERNAL_SERVER_ERROR, // Internal server error happened during request. |
50 HTTP_NOT_OK, // HTTP response code was not OK. | 49 HTTP_NOT_OK, // HTTP response code was not OK. |
51 UNKNOWN_ERROR, // Unknown error. | 50 UNKNOWN_ERROR, // Unknown error. |
52 REACHED_MAX_RETRIES, // Reached maximum number of retries. | 51 REACHED_MAX_RETRIES, // Reached maximum number of retries. |
| 52 DEVICE_REGISTRATION_ERROR,// Chrome is not properly registered. |
53 // NOTE: Always keep this entry at the end. Add new status types only | 53 // NOTE: Always keep this entry at the end. Add new status types only |
54 // immediately above this line. Make sure to update the corresponding | 54 // immediately above this line. Make sure to update the corresponding |
55 // histogram enum accordingly. | 55 // histogram enum accordingly. |
56 UNREGISTRATION_STATUS_COUNT, | 56 UNREGISTRATION_STATUS_COUNT, |
57 }; | 57 }; |
58 | 58 |
59 // Callback completing the unregistration request. | 59 // Callback completing the unregistration request. |
60 typedef base::Callback<void(Status success)> UnregistrationCallback; | 60 typedef base::Callback<void(Status success)> UnregistrationCallback; |
61 | 61 |
62 // Defines the common info about an unregistration/token-deletion request. | 62 // Defines the common info about an unregistration/token-deletion request. |
(...skipping 26 matching lines...) Expand all Loading... |
89 CustomRequestHandler(); | 89 CustomRequestHandler(); |
90 virtual ~CustomRequestHandler(); | 90 virtual ~CustomRequestHandler(); |
91 | 91 |
92 // Builds the HTTP request body data. It is called after | 92 // Builds the HTTP request body data. It is called after |
93 // UnregistrationRequest::BuildRequestBody to append more custom info to | 93 // UnregistrationRequest::BuildRequestBody to append more custom info to |
94 // |body|. Note that the request body is encoded in HTTP form format. | 94 // |body|. Note that the request body is encoded in HTTP form format. |
95 virtual void BuildRequestBody(std::string* body) = 0; | 95 virtual void BuildRequestBody(std::string* body) = 0; |
96 | 96 |
97 // Parses the HTTP response. It is called after | 97 // Parses the HTTP response. It is called after |
98 // UnregistrationRequest::ParseResponse to proceed the parsing. | 98 // UnregistrationRequest::ParseResponse to proceed the parsing. |
99 virtual Status ParseResponse(const net::URLFetcher* source) = 0; | 99 virtual Status ParseResponse(const std::string& response) = 0; |
100 | 100 |
101 // Reports various UMAs, including status, retry count and completion time. | 101 // Reports various UMAs, including status, retry count and completion time. |
102 virtual void ReportUMAs(Status status, | 102 virtual void ReportUMAs(Status status, |
103 int retry_count, | 103 int retry_count, |
104 base::TimeDelta complete_time) = 0; | 104 base::TimeDelta complete_time) = 0; |
105 }; | 105 }; |
106 | 106 |
107 // Creates an instance of UnregistrationRequest. |callback| will be called | 107 // Creates an instance of UnregistrationRequest. |callback| will be called |
108 // once registration has been revoked or there has been an error that makes | 108 // once registration has been revoked or there has been an error that makes |
109 // further retries pointless. | 109 // further retries pointless. |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
149 std::string source_to_record_; | 149 std::string source_to_record_; |
150 | 150 |
151 base::WeakPtrFactory<UnregistrationRequest> weak_ptr_factory_; | 151 base::WeakPtrFactory<UnregistrationRequest> weak_ptr_factory_; |
152 | 152 |
153 DISALLOW_COPY_AND_ASSIGN(UnregistrationRequest); | 153 DISALLOW_COPY_AND_ASSIGN(UnregistrationRequest); |
154 }; | 154 }; |
155 | 155 |
156 } // namespace gcm | 156 } // namespace gcm |
157 | 157 |
158 #endif // GOOGLE_APIS_GCM_ENGINE_UNREGISTRATION_REQUEST_H_ | 158 #endif // GOOGLE_APIS_GCM_ENGINE_UNREGISTRATION_REQUEST_H_ |
OLD | NEW |