2 * Copyright (C) 2016 Intel Corporation. All rights reserved.
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23 * THE POSSIBILITY OF SUCH DAMAGE.
27 * @file ewk_error_internal.h
28 * @brief Describes the Web Error API.
31 #ifndef ewk_error_internal_h
32 #define ewk_error_internal_h
34 #include "ewk_error.h"
40 /// Creates a type name for Ewk_Error_Type.
43 EWK_ERROR_TYPE_INTERNAL,
44 EWK_ERROR_TYPE_NETWORK,
45 EWK_ERROR_TYPE_POLICY,
46 EWK_ERROR_TYPE_PLUGIN,
47 EWK_ERROR_TYPE_DOWNLOAD,
52 EWK_ERROR_NETWORK_STATUS_NONE,
54 /* Transport Errors */
55 EWK_ERROR_NETWORK_STATUS_CANCELLED = 1,
56 EWK_ERROR_NETWORK_STATUS_CANT_RESOLVE,
57 EWK_ERROR_NETWORK_STATUS_CANT_RESOLVE_PROXY,
58 EWK_ERROR_NETWORK_STATUS_CANT_CONNECT,
59 EWK_ERROR_NETWORK_STATUS_CANT_CONNECT_PROXY,
60 EWK_ERROR_NETWORK_STATUS_SSL_FAILED,
61 EWK_ERROR_NETWORK_STATUS_IO_ERROR,
62 EWK_ERROR_NETWORK_STATUS_MALFORMED,
63 EWK_ERROR_NETWORK_STATUS_TRY_AGAIN,
64 EWK_ERROR_NETWORK_STATUS_TOO_MANY_REDIRECTS,
65 EWK_ERROR_NETWORK_STATUS_TLS_FAILED,
67 /* HTTP Status Codes */
68 EWK_ERROR_NETWORK_STATUS_CONTINUE = 100,
69 EWK_ERROR_NETWORK_STATUS_SWITCHING_PROTOCOLS,
70 EWK_ERROR_NETWORK_STATUS_PROCESSING,
72 EWK_ERROR_NETWORK_STATUS_OK = 200,
73 EWK_ERROR_NETWORK_STATUS_CREATED,
74 EWK_ERROR_NETWORK_STATUS_ACCEPTED,
75 EWK_ERROR_NETWORK_STATUS_NON_AUTHORITATIVE,
76 EWK_ERROR_NETWORK_STATUS_NO_CONTENT,
77 EWK_ERROR_NETWORK_STATUS_RESET_CONTENT,
78 EWK_ERROR_NETWORK_STATUS_PARTIAL_CONTENT,
79 EWK_ERROR_NETWORK_STATUS_MULTI_STATUS,
81 EWK_ERROR_NETWORK_STATUS_MULTIPLE_CHOICES = 300,
82 EWK_ERROR_NETWORK_STATUS_MOVED_PERMANENTLY,
83 EWK_ERROR_NETWORK_STATUS_FOUND = 302,
84 EWK_ERROR_NETWORK_STATUS_MOVED_TEMPORARILY = 302,
85 EWK_ERROR_NETWORK_STATUS_SEE_OTHER,
86 EWK_ERROR_NETWORK_STATUS_NOT_MODIFIED,
87 EWK_ERROR_NETWORK_STATUS_USE_PROXY,
88 EWK_ERROR_NETWORK_STATUS_NOT_APPEARING_IN_THIS_PROTOCOL,
89 EWK_ERROR_NETWORK_STATUS_TEMPORARY_REDIRECT,
91 EWK_ERROR_NETWORK_STATUS_BAD_REQUEST = 400,
92 EWK_ERROR_NETWORK_STATUS_UNAUTHORIZED,
93 EWK_ERROR_NETWORK_STATUS_PAYMENT_REQUIRED,
94 EWK_ERROR_NETWORK_STATUS_FORBIDDEN,
95 EWK_ERROR_NETWORK_STATUS_NOT_FOUND,
96 EWK_ERROR_NETWORK_STATUS_METHOD_NOT_ALLOWED,
97 EWK_ERROR_NETWORK_STATUS_NOT_ACCEPTABLE,
98 EWK_ERROR_NETWORK_STATUS_PROXY_AUTHENTICATION_REQUIRED,
99 EWK_ERROR_NETWORK_STATUS_PROXY_UNAUTHORIZED = EWK_ERROR_NETWORK_STATUS_PROXY_AUTHENTICATION_REQUIRED,
100 EWK_ERROR_NETWORK_STATUS_REQUEST_TIMEOUT,
101 EWK_ERROR_NETWORK_STATUS_CONFLICT,
102 EWK_ERROR_NETWORK_STATUS_GONE,
103 EWK_ERROR_NETWORK_STATUS_LENGTH_REQUIRED,
104 EWK_ERROR_NETWORK_STATUS_PRECONDITION_FAILED,
105 EWK_ERROR_NETWORK_STATUS_REQUEST_ENTITY_TOO_LARGE,
106 EWK_ERROR_NETWORK_STATUS_REQUEST_URI_TOO_LONG,
107 EWK_ERROR_NETWORK_STATUS_UNSUPPORTED_MEDIA_TYPE,
108 EWK_ERROR_NETWORK_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE,
109 EWK_ERROR_NETWORK_STATUS_INVALID_RANGE = EWK_ERROR_NETWORK_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE,
110 EWK_ERROR_NETWORK_STATUS_EXPECTATION_FAILED,
111 EWK_ERROR_NETWORK_STATUS_UNPROCESSABLE_ENTITY = 422,
112 EWK_ERROR_NETWORK_STATUS_LOCKED,
113 EWK_ERROR_NETWORK_STATUS_FAILED_DEPENDENCY,
115 EWK_ERROR_NETWORK_STATUS_INTERNAL_SERVER_ERROR = 500,
116 EWK_ERROR_NETWORK_STATUS_NOT_IMPLEMENTED,
117 EWK_ERROR_NETWORK_STATUS_BAD_GATEWAY,
118 EWK_ERROR_NETWORK_STATUS_SERVICE_UNAVAILABLE,
119 EWK_ERROR_NETWORK_STATUS_GATEWAY_TIMEOUT,
120 EWK_ERROR_NETWORK_STATUS_HTTP_VERSION_NOT_SUPPORTED,
121 EWK_ERROR_NETWORK_STATUS_INSUFFICIENT_STORAGE = 507,
122 EWK_ERROR_NETWORK_STATUS_NOT_EXTENDED = 510
123 } Ewk_Error_Network_Status;
126 EWK_ERROR_IO_CODE_FAILED,
127 EWK_ERROR_IO_CODE_NOT_FOUND,
128 EWK_ERROR_IO_CODE_EXISTS,
129 EWK_ERROR_IO_CODE_IS_DIRECTORY,
130 EWK_ERROR_IO_CODE_NOT_DIRECTORY,
131 EWK_ERROR_IO_CODE_NOT_EMPTY,
132 EWK_ERROR_IO_CODE_NOT_REGULAR_FILE,
133 EWK_ERROR_IO_CODE_NOT_SYMBOLIC_LINK,
134 EWK_ERROR_IO_CODE_NOT_MOUNTABLE_FILE,
135 EWK_ERROR_IO_CODE_FILENAME_TOO_LONG,
136 EWK_ERROR_IO_CODE_INVALID_FILENAME,
137 EWK_ERROR_IO_CODE_TOO_MANY_LINKS,
138 EWK_ERROR_IO_CODE_NO_SPACE,
139 EWK_ERROR_IO_CODE_INVALID_ARGUMENT,
140 EWK_ERROR_IO_CODE_PERMISSION_DENIED,
141 EWK_ERROR_IO_CODE_NOT_SUPPORTED,
142 EWK_ERROR_IO_CODE_NOT_MOUNTED,
143 EWK_ERROR_IO_CODE_ALREADY_MOUNTED,
144 EWK_ERROR_IO_CODE_CLOSED,
145 EWK_ERROR_IO_CODE_CANCELLED,
146 EWK_ERROR_IO_CODE_PENDING,
147 EWK_ERROR_IO_CODE_READ_ONLY,
148 EWK_ERROR_IO_CODE_CANT_CREATE_BACKUP,
149 EWK_ERROR_IO_CODE_WRONG_ETAG,
150 EWK_ERROR_IO_CODE_TIMED_OUT,
151 EWK_ERROR_IO_CODE_WOULD_RECURSE,
152 EWK_ERROR_IO_CODE_BUSY,
153 EWK_ERROR_IO_CODE_WOULD_BLOCK,
154 EWK_ERROR_IO_CODE_HOST_NOT_FOUND,
155 EWK_ERROR_IO_CODE_WOULD_MERGE,
156 EWK_ERROR_IO_CODE_FAILED_HANDLED,
157 EWK_ERROR_IO_CODE_TOO_MANY_OPEN_FILES,
158 EWK_ERROR_IO_CODE_NOT_INITIALIZED,
159 EWK_ERROR_IO_CODE_ADDRESS_IN_USE,
160 EWK_ERROR_IO_CODE_PARTIAL_INPUT,
161 EWK_ERROR_IO_CODE_INVALID_DATA,
162 EWK_ERROR_IO_CODE_DBUS_ERROR,
163 EWK_ERROR_IO_CODE_HOST_UNREACHABLE,
164 EWK_ERROR_IO_CODE_NETWORK_UNREACHABLE,
165 EWK_ERROR_IO_CODE_CONNECTION_REFUSED,
166 EWK_ERROR_IO_CODE_PROXY_FAILED,
167 EWK_ERROR_IO_CODE_PROXY_AUTH_FAILED,
168 EWK_ERROR_IO_CODE_PROXY_NEED_AUTH,
169 EWK_ERROR_IO_CODE_PROXY_NOT_ALLOWED
173 * Query type for this error.
175 * @param error error object to query.
177 * @return the error type, that may be @c NULL. This pointer is
178 * guaranteed to be eina_stringshare, so whenever possible
179 * save yourself some cpu cycles and use
180 * eina_stringshare_ref() instead of eina_stringshare_add() or
183 EXPORT_API Ewk_Error_Type ewk_error_type_get(const Ewk_Error *error);
186 * Returns domain from Ewk_Error.
188 * @param error Ewk_Error object received from "load,error" evas object smart callback
190 * @return @c domain string on success or empty string on failure
192 EXPORT_API const char* ewk_error_domain_get(const Ewk_Error* error);
198 #endif // ewk_error_internal_h