[M108 Migration] Migrate patches related to NavigationThrottle and Ewk_Error 13/286713/2
authorayush.k123 <ayush.k123@samsung.com>
Wed, 11 Jan 2023 08:58:50 +0000 (14:28 +0530)
committerAyush Kumar <ayush.k123@samsung.com>
Thu, 12 Jan 2023 09:43:22 +0000 (15:13 +0530)
This patch enables proper functionality of ewk_error_* APIs.

References: https://review.tizen.org/gerrit/273622/

Change-Id: I150edcb9497529bac5b7f8eb2c08a596f8145cfc
Signed-off-by: Ayush Kumar <ayush.k123@samsung.com>
tizen_src/ewk/efl_integration/BUILD.gn
tizen_src/ewk/efl_integration/browser/navigation_throttle_efl.cc [new file with mode: 0644]
tizen_src/ewk/efl_integration/browser/navigation_throttle_efl.h [new file with mode: 0644]
tizen_src/ewk/efl_integration/content_browser_client_efl.cc
tizen_src/ewk/efl_integration/content_browser_client_efl.h
tizen_src/ewk/efl_integration/eweb_view.cc
tizen_src/ewk/efl_integration/eweb_view.h
tizen_src/ewk/efl_integration/private/ewk_error_private.cc [new file with mode: 0644]
tizen_src/ewk/efl_integration/private/ewk_error_private.h
tizen_src/ewk/efl_integration/public/ewk_error.cc
tizen_src/ewk/efl_integration/web_contents_delegate_efl.cc

index ccf84e3..67046b2 100644 (file)
@@ -203,6 +203,8 @@ shared_library("chromium-ewk") {
     "browser/mime_override_manager_efl.h",
     "browser/navigation_policy_handler_efl.cc",
     "browser/navigation_policy_handler_efl.h",
+    "browser/navigation_throttle_efl.cc",
+    "browser/navigation_throttle_efl.h",
     "browser/network_service/proxying_url_loader_efl.cc",
     "browser/network_service/proxying_url_loader_efl.h",
     "browser/network_service/proxying_url_loader_factory_efl.cc",
@@ -371,6 +373,7 @@ shared_library("chromium-ewk") {
     "private/ewk_cookie_manager_private.h",
     "private/ewk_custom_handlers_private.cc",
     "private/ewk_custom_handlers_private.h",
+    "private/ewk_error_private.cc",
     "private/ewk_error_private.h",
     "private/ewk_favicon_database_private.h",
     "private/ewk_frame_private.cc",
diff --git a/tizen_src/ewk/efl_integration/browser/navigation_throttle_efl.cc b/tizen_src/ewk/efl_integration/browser/navigation_throttle_efl.cc
new file mode 100644 (file)
index 0000000..a0cecf5
--- /dev/null
@@ -0,0 +1,45 @@
+// Copyright 2019 Samsung Electronics. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "browser/navigation_throttle_efl.h"
+
+#include "common/web_contents_utils.h"
+#include "content/public/browser/navigation_handle.h"
+#include "eweb_view.h"
+
+#if BUILDFLAG(IS_TIZEN_TV)
+#include "common/application_type.h"
+#endif
+
+namespace content {
+
+NavigationThrottleEfl::NavigationThrottleEfl(
+    NavigationHandle* navigation_handle)
+    : NavigationThrottle(navigation_handle) {}
+
+NavigationThrottleEfl::~NavigationThrottleEfl() = default;
+
+NavigationThrottle::ThrottleCheckResult
+NavigationThrottleEfl::WillFailRequest() {
+  auto* handle = navigation_handle();
+  auto* web_view =
+      web_contents_utils::WebViewFromWebContents(handle->GetWebContents());
+  if (web_view) {
+    int error_code = handle->GetNetErrorCode();
+    web_view->InvokeLoadError(handle->GetURL(), error_code,
+                              error_code == net::ERR_ABORTED);
+#if BUILDFLAG(IS_TIZEN_TV)
+    // In VD tizen, WebBrowser will load error page by itself.
+    if (IsWebBrowser())
+      return NavigationThrottle::CANCEL_AND_IGNORE;
+#endif
+  }
+  return NavigationThrottle::PROCEED;
+}
+
+const char* NavigationThrottleEfl::GetNameForLogging() {
+  return "NavigationThrottleEfl";
+}
+
+}  // namespace content
diff --git a/tizen_src/ewk/efl_integration/browser/navigation_throttle_efl.h b/tizen_src/ewk/efl_integration/browser/navigation_throttle_efl.h
new file mode 100644 (file)
index 0000000..d138db2
--- /dev/null
@@ -0,0 +1,27 @@
+// Copyright 2019 Samsung Electronics. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef NAVIGATION_THROTTLE_EFL_H_
+#define NAVIGATION_THROTTLE_EFL_H_
+
+#include "content/public/browser/navigation_throttle.h"
+
+namespace content {
+class NavigationThrottleEfl : public NavigationThrottle {
+ public:
+  explicit NavigationThrottleEfl(NavigationHandle* navigation_handle);
+
+  NavigationThrottleEfl(NavigationThrottleEfl&) = delete;
+  NavigationThrottleEfl& operator=(NavigationThrottleEfl&) = delete;
+
+  ~NavigationThrottleEfl() override;
+
+  NavigationThrottle::ThrottleCheckResult WillFailRequest() override;
+
+  const char* GetNameForLogging() override;
+};
+
+}  // namespace content
+
+#endif  // NAVIGATION_THROTTLE_EFL_H_
index 0e27dd4..0140567 100644 (file)
@@ -7,6 +7,7 @@
 #include "base/callback.h"
 #include "base/strings/string_number_conversions.h"
 #include "browser/editor_client_observer.h"
+#include "browser/navigation_throttle_efl.h"
 #include "browser/network_service/proxying_url_loader_factory_efl.h"
 #include "browser/notification/notification_controller_efl.h"
 #include "browser/quota_permission_context_efl.h"
@@ -20,6 +21,7 @@
 #include "components/error_page/common/error.h"
 #include "components/error_page/common/localized_error.h"
 #include "content/public/browser/browser_thread.h"
+#include "content/public/browser/navigation_handle.h"
 #include "content/public/browser/render_widget_host.h"
 #include "content/public/browser/render_widget_host_iterator.h"
 #include "content/public/browser/web_contents.h"
@@ -426,6 +428,14 @@ ContentBrowserClientEfl::CreateQuotaPermissionContext() {
   return new QuotaPermissionContextEfl();
 }
 
+std::vector<std::unique_ptr<NavigationThrottle>>
+ContentBrowserClientEfl::CreateThrottlesForNavigation(
+    NavigationHandle* handle) {
+  std::vector<std::unique_ptr<NavigationThrottle>> throttles;
+  throttles.push_back(std::make_unique<NavigationThrottleEfl>(handle));
+  return throttles;
+}
+
 std::string ContentBrowserClientEfl::GetProduct() {
   return EflWebView::VersionInfo::GetInstance()->ProductNameAndVersionForUserAgent();
 }
index 7c977c0..6bee4ac 100644 (file)
@@ -126,6 +126,8 @@ class ContentBrowserClientEfl : public ContentBrowserClient {
   void SetPreferredLangs(const std::string& preferred_langs);
   void AddAcceptLangsChangedCallback(AcceptLangsChangedCallback callback);
   void RemoveAcceptLangsChangedCallback(AcceptLangsChangedCallback callback);
+  std::vector<std::unique_ptr<NavigationThrottle>> CreateThrottlesForNavigation(
+      NavigationHandle* handle) override;
 
  private:
   bool WillCreateURLLoaderFactory(
index 28ae038..18b8468 100644 (file)
@@ -922,12 +922,11 @@ void EWebView::LoadData(const char* data,
 
 void EWebView::InvokeLoadError(const GURL& url,
                                int error_code,
-                               const std::string& error_description) {
-  std::unique_ptr<_Ewk_Error> err(
-      new _Ewk_Error(error_code, url.possibly_invalid_spec().c_str(),
-                     error_description.c_str()));
+                               bool is_cancellation) {
+  _Ewk_Error err(error_code, is_cancellation,
+                 url.possibly_invalid_spec().c_str());
 
-  SmartCallback<EWebViewCallbacks::LoadError>().call(err.get());
+  SmartCallback<EWebViewCallbacks::LoadError>().call(&err);
 }
 
 void EWebView::ShowPopupMenu(const std::vector<blink::MenuItemInfo>& items,
index c25546d..00a71e1 100644 (file)
@@ -257,9 +257,7 @@ class EWebView {
                 const char* base_uri,
                 const char* unreachable_uri = NULL);
 
-  void InvokeLoadError(const GURL& url,
-                       int error_code,
-                       const std::string& error_description);
+  void InvokeLoadError(const GURL& url, int error_code, bool is_cancellation);
 
   void SetViewAuthCallback(Ewk_View_Authentication_Callback callback,
                            void* user_data);
diff --git a/tizen_src/ewk/efl_integration/private/ewk_error_private.cc b/tizen_src/ewk/efl_integration/private/ewk_error_private.cc
new file mode 100644 (file)
index 0000000..8426f4d
--- /dev/null
@@ -0,0 +1,139 @@
+// Copyright (C) 2012 Intel Corporation.
+// Copyright 2013 Samsung Electronics. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "private/ewk_error_private.h"
+
+#include "base/notreached.h"
+#include "public/ewk_error.h"
+
+int ConvertErrorCode(int error_code) {
+  switch (error_code) {
+    case net::ERR_ABORTED:
+      return EWK_ERROR_CODE_CANCELED;
+
+    case net::ERR_FILE_EXISTS:
+    case net::ERR_FILE_NOT_FOUND:
+    case net::ERR_FILE_NO_SPACE:
+    case net::ERR_FILE_PATH_TOO_LONG:
+    case net::ERR_FILE_TOO_BIG:
+    case net::ERR_FILE_VIRUS_INFECTED:
+      return EWK_ERROR_CODE_FAILED_FILE_IO;
+
+    case net::ERR_CONNECTION_ABORTED:
+    case net::ERR_CONNECTION_CLOSED:
+    case net::ERR_CONNECTION_FAILED:
+    case net::ERR_CONNECTION_REFUSED:
+    case net::ERR_CONNECTION_RESET:
+      return EWK_ERROR_CODE_CANT_CONNECT;
+
+    case net::ERR_DNS_MALFORMED_RESPONSE:
+    case net::ERR_DNS_SERVER_REQUIRES_TCP:
+    case net::ERR_DNS_SERVER_FAILED:
+    case net::ERR_DNS_TIMED_OUT:
+    case net::ERR_DNS_CACHE_MISS:
+    case net::ERR_DNS_SEARCH_EMPTY:
+    case net::ERR_DNS_SORT_ERROR:
+    case net::ERR_HOST_RESOLVER_QUEUE_TOO_LARGE:
+    case net::ERR_NAME_NOT_RESOLVED:
+    case net::ERR_NAME_RESOLUTION_FAILED:
+      return EWK_ERROR_CODE_CANT_LOOKUP_HOST;
+
+    case net::ERR_BAD_SSL_CLIENT_AUTH_CERT:
+    case net::ERR_SSL_CLIENT_AUTH_SIGNATURE_FAILED:
+    case net::ERR_SSL_HANDSHAKE_NOT_COMPLETED:
+      return EWK_ERROR_CODE_FAILED_TLS_HANDSHAKE;
+
+    case net::ERR_CERT_AUTHORITY_INVALID:
+    case net::ERR_CERT_COMMON_NAME_INVALID:
+    case net::ERR_CERT_CONTAINS_ERRORS:
+    case net::ERR_CERT_DATE_INVALID:
+    case net::ERR_CERT_INVALID:
+    case net::ERR_CERT_NAME_CONSTRAINT_VIOLATION:
+    case net::ERR_CERT_NON_UNIQUE_NAME:
+    case net::ERR_CERT_NO_REVOCATION_MECHANISM:
+    case net::ERR_CERT_REVOKED:
+    case net::ERR_CERT_UNABLE_TO_CHECK_REVOCATION:
+    case net::ERR_CERT_WEAK_KEY:
+    case net::ERR_CERT_WEAK_SIGNATURE_ALGORITHM:
+      return EWK_ERROR_CODE_INVALID_CERTIFICATE;
+
+    case net::ERR_TIMED_OUT:
+    case net::ERR_CONNECTION_TIMED_OUT:
+      return EWK_ERROR_CODE_REQUEST_TIMEOUT;
+
+    case net::ERR_TOO_MANY_REDIRECTS:
+      return EWK_ERROR_CODE_TOO_MANY_REDIRECTS;
+
+    case net::ERR_TEMPORARILY_THROTTLED:
+      return EWK_ERROR_CODE_TOO_MANY_REQUESTS;
+
+    case net::ERR_ADDRESS_INVALID:
+    case net::ERR_INVALID_URL:
+      return EWK_ERROR_CODE_BAD_URL;
+
+    case net::ERR_DISALLOWED_URL_SCHEME:
+    case net::ERR_UNKNOWN_URL_SCHEME:
+      return EWK_ERROR_CODE_UNSUPPORTED_SCHEME;
+
+    case net::ERR_CLIENT_AUTH_CERT_TYPE_UNSUPPORTED:
+    case net::ERR_INVALID_AUTH_CREDENTIALS:
+    case net::ERR_MALFORMED_IDENTITY:
+    case net::ERR_MISCONFIGURED_AUTH_ENVIRONMENT:
+    case net::ERR_MISSING_AUTH_CREDENTIALS:
+    case net::ERR_PROXY_AUTH_REQUESTED_WITH_NO_CONNECTION:
+    case net::ERR_PROXY_AUTH_UNSUPPORTED:
+    case net::ERR_UNEXPECTED_PROXY_AUTH:
+    case net::ERR_UNSUPPORTED_AUTH_SCHEME:
+      return EWK_ERROR_CODE_AUTHENTICATION;
+
+    case net::ERR_CACHE_CHECKSUM_MISMATCH:
+    case net::ERR_CACHE_CHECKSUM_READ_FAILURE:
+    case net::ERR_CACHE_LOCK_TIMEOUT:
+    case net::ERR_CACHE_RACE:
+    case net::ERR_IMPORT_SERVER_CERT_FAILED:
+      return EWK_ERROR_CODE_INTERNAL_SERVER;
+
+    default:
+      return EWK_ERROR_CODE_UNKNOWN;
+  }
+}
+
+const char* GetDescriptionFromErrorCode(int error_code) {
+  switch (ConvertErrorCode(error_code)) {
+    case EWK_ERROR_CODE_CANCELED:
+      return "User canceled";
+    case EWK_ERROR_CODE_CANT_SUPPORT_MIMETYPE:
+      return "Can't show page for this MIME Type";
+    case EWK_ERROR_CODE_FAILED_FILE_IO:
+      return "Error regarding to file io";
+    case EWK_ERROR_CODE_CANT_CONNECT:
+      return "Cannot connect to Network";
+    case EWK_ERROR_CODE_CANT_LOOKUP_HOST:
+      return "Fail to look up host from DNS";
+    case EWK_ERROR_CODE_FAILED_TLS_HANDSHAKE:
+      return "Fail to SSL/TLS handshake";
+    case EWK_ERROR_CODE_INVALID_CERTIFICATE:
+      return "Received certificate is invalid";
+    case EWK_ERROR_CODE_REQUEST_TIMEOUT:
+      return "Connection timeout";
+    case EWK_ERROR_CODE_TOO_MANY_REDIRECTS:
+      return "Too many redirects";
+    case EWK_ERROR_CODE_TOO_MANY_REQUESTS:
+      return "Too many requests during this load";
+    case EWK_ERROR_CODE_BAD_URL:
+      return "Malformed url";
+    case EWK_ERROR_CODE_UNSUPPORTED_SCHEME:
+      return "Unsupported scheme";
+    case EWK_ERROR_CODE_AUTHENTICATION:
+      return "User authentication failed on server";
+    case EWK_ERROR_CODE_INTERNAL_SERVER:
+      return "Web server has internal server error";
+    case EWK_ERROR_CODE_UNKNOWN:
+      return "Unknown";
+    default:
+      NOTREACHED();
+      return "Unknown";
+  }
+}
index a3e56a1..31b5ba9 100644 (file)
@@ -7,21 +7,27 @@
 #define ewk_error_private_h
 
 #include <Eina.h>
+#include "net/base/net_errors.h"
+
+int ConvertErrorCode(int error_code);
+const char* GetDescriptionFromErrorCode(int error_code);
 
 struct _Ewk_Error {
   int error_code;
+  bool is_cancellation;
   Eina_Stringshare* url;
   Eina_Stringshare* description;
   Eina_Stringshare* domain;
 
-  _Ewk_Error(int error_code_in, const char* url_in, const char* description_in)
-      : error_code(error_code_in),
+  _Ewk_Error(int error_code_in, bool is_cancellation_in, const char* url_in)
+      : error_code(ConvertErrorCode(error_code_in)),
+        is_cancellation(is_cancellation_in),
         url(eina_stringshare_add(url_in)),
-        description(eina_stringshare_add(description_in)),
+        description(
+            eina_stringshare_add(GetDescriptionFromErrorCode(error_code_in))),
         // Chromium always reports "net" as error domain anyways,
         // so we just hardcode it.
-        domain(eina_stringshare_add("net")) {
-  }
+        domain(eina_stringshare_add("net")) {}
 
   ~_Ewk_Error() {
     eina_stringshare_del(url);
index 6feff94..fea70ec 100644 (file)
 #include "ewk_error_internal.h"
 
 #include "components/error_page/common/error.h"
-#include "net/base/net_errors.h"
 
 #include "private/ewk_error_private.h"
 #include "private/ewk_private.h"
 
-static Ewk_Error_Code convertErrorCode(const Ewk_Error* error);
-
 Ewk_Error_Type ewk_error_type_get(const Ewk_Error* error)
 {
   EINA_SAFETY_ON_NULL_RETURN_VAL(error, EWK_ERROR_TYPE_NONE);
@@ -50,19 +47,19 @@ Ewk_Error_Type ewk_error_type_get(const Ewk_Error* error)
 
 const char* ewk_error_url_get(const Ewk_Error* error)
 {
-  EINA_SAFETY_ON_NULL_RETURN_VAL(error, 0);
+  EINA_SAFETY_ON_NULL_RETURN_VAL(error, nullptr);
   return error->url;
 }
 
 int ewk_error_code_get(const Ewk_Error* error)
 {
   EINA_SAFETY_ON_NULL_RETURN_VAL(error, 0);
-  return convertErrorCode(error);
+  return error->error_code;
 }
 
 const char* ewk_error_description_get(const Ewk_Error* error)
 {
-  EINA_SAFETY_ON_NULL_RETURN_VAL(error, 0);
+  EINA_SAFETY_ON_NULL_RETURN_VAL(error, nullptr);
   return error->description;
 }
 
@@ -74,96 +71,6 @@ const char* ewk_error_domain_get(const Ewk_Error* error)
 
 Eina_Bool ewk_error_cancellation_get(const Ewk_Error* error)
 {
-  return EINA_FALSE;
-}
-
-static Ewk_Error_Code convertErrorCode(const Ewk_Error* error)
-{
-  switch (error->error_code) {
-    case net::ERR_ABORTED:
-      return EWK_ERROR_CODE_CANCELED;
-
-    case net::ERR_FILE_EXISTS:
-    case net::ERR_FILE_NOT_FOUND:
-    case net::ERR_FILE_NO_SPACE:
-    case net::ERR_FILE_PATH_TOO_LONG:
-    case net::ERR_FILE_TOO_BIG:
-    case net::ERR_FILE_VIRUS_INFECTED:
-      return EWK_ERROR_CODE_FAILED_FILE_IO;
-
-    case net::ERR_CONNECTION_ABORTED:
-    case net::ERR_CONNECTION_CLOSED:
-    case net::ERR_CONNECTION_FAILED:
-    case net::ERR_CONNECTION_REFUSED:
-    case net::ERR_CONNECTION_RESET:
-      return EWK_ERROR_CODE_CANT_CONNECT;
-
-    case net::ERR_DNS_MALFORMED_RESPONSE:
-    case net::ERR_DNS_SERVER_REQUIRES_TCP:
-    case net::ERR_DNS_SERVER_FAILED:
-    case net::ERR_DNS_TIMED_OUT:
-    case net::ERR_DNS_CACHE_MISS:
-    case net::ERR_DNS_SEARCH_EMPTY:
-    case net::ERR_DNS_SORT_ERROR:
-    case net::ERR_HOST_RESOLVER_QUEUE_TOO_LARGE:
-    case net::ERR_NAME_NOT_RESOLVED:
-      return EWK_ERROR_CODE_CANT_LOOKUP_HOST;
-
-    case net::ERR_BAD_SSL_CLIENT_AUTH_CERT:
-    case net::ERR_SSL_CLIENT_AUTH_SIGNATURE_FAILED:
-    case net::ERR_SSL_HANDSHAKE_NOT_COMPLETED:
-      return EWK_ERROR_CODE_FAILED_TLS_HANDSHAKE;
-
-    case net::ERR_CERT_AUTHORITY_INVALID:
-    case net::ERR_CERT_COMMON_NAME_INVALID:
-    case net::ERR_CERT_CONTAINS_ERRORS:
-    case net::ERR_CERT_DATE_INVALID:
-    case net::ERR_CERT_INVALID:
-    case net::ERR_CERT_NAME_CONSTRAINT_VIOLATION:
-    case net::ERR_CERT_NON_UNIQUE_NAME:
-    case net::ERR_CERT_NO_REVOCATION_MECHANISM:
-    case net::ERR_CERT_REVOKED:
-    case net::ERR_CERT_UNABLE_TO_CHECK_REVOCATION:
-    case net::ERR_CERT_WEAK_KEY:
-    case net::ERR_CERT_WEAK_SIGNATURE_ALGORITHM:
-      return EWK_ERROR_CODE_INVALID_CERTIFICATE;
-
-    case net::ERR_TIMED_OUT:
-    case net::ERR_CONNECTION_TIMED_OUT:
-      return EWK_ERROR_CODE_REQUEST_TIMEOUT;
-
-    case net::ERR_TOO_MANY_REDIRECTS:
-      return EWK_ERROR_CODE_TOO_MANY_REDIRECTS;
-
-    case net::ERR_TEMPORARILY_THROTTLED:
-      return EWK_ERROR_CODE_TOO_MANY_REQUESTS;
-
-    case net::ERR_ADDRESS_INVALID:
-    case net::ERR_INVALID_URL:
-      return EWK_ERROR_CODE_BAD_URL;
-    case net::ERR_DISALLOWED_URL_SCHEME:
-    case net::ERR_UNKNOWN_URL_SCHEME:
-      return EWK_ERROR_CODE_UNSUPPORTED_SCHEME;
-
-    case net::ERR_CLIENT_AUTH_CERT_TYPE_UNSUPPORTED:
-    case net::ERR_INVALID_AUTH_CREDENTIALS:
-    case net::ERR_MALFORMED_IDENTITY:
-    case net::ERR_MISCONFIGURED_AUTH_ENVIRONMENT:
-    case net::ERR_MISSING_AUTH_CREDENTIALS:
-    case net::ERR_PROXY_AUTH_REQUESTED_WITH_NO_CONNECTION:
-    case net::ERR_PROXY_AUTH_UNSUPPORTED:
-    case net::ERR_UNEXPECTED_PROXY_AUTH:
-    case net::ERR_UNSUPPORTED_AUTH_SCHEME:
-      return EWK_ERROR_CODE_AUTHENTICATION;
-
-    case net::ERR_CACHE_CHECKSUM_MISMATCH:
-    case net::ERR_CACHE_CHECKSUM_READ_FAILURE:
-    case net::ERR_CACHE_LOCK_TIMEOUT:
-    case net::ERR_CACHE_RACE:
-    case net::ERR_IMPORT_SERVER_CERT_FAILED:
-      return EWK_ERROR_CODE_INTERNAL_SERVER;
-
-    default:
-      return EWK_ERROR_CODE_UNKNOWN;
-  }
-}
+  EINA_SAFETY_ON_NULL_RETURN_VAL(error, EINA_FALSE);
+  return error->is_cancellation;
+}
\ No newline at end of file
index 8936be0..ac72d7c 100644 (file)
@@ -435,7 +435,8 @@ void WebContentsDelegateEfl::DidFailLoad(RenderFrameHost* render_frame_host,
   if (!IsMainFrame(render_frame_host))
     return;
 
-  web_view_->InvokeLoadError(validated_url, error_code, std::string());
+  web_view_->InvokeLoadError(validated_url, error_code,
+                             error_code == net::ERR_ABORTED);
 }
 
 void WebContentsDelegateEfl::DidUpdateFaviconURL(