[dali_2.3.21] Merge branch 'devel/master'
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit / dali-toolkit-test-utils / toolkit-web-engine.cpp
old mode 100755 (executable)
new mode 100644 (file)
index b30d3b6..19f32b3
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2021 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2024 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
 
 #include "toolkit-timer.h"
 
-#include <dali/devel-api/adaptor-framework/web-engine.h>
-#include <dali/devel-api/adaptor-framework/web-engine-back-forward-list.h>
-#include <dali/devel-api/adaptor-framework/web-engine-back-forward-list-item.h>
-#include <dali/devel-api/adaptor-framework/web-engine-certificate.h>
-#include <dali/devel-api/adaptor-framework/web-engine-console-message.h>
-#include <dali/devel-api/adaptor-framework/web-engine-context.h>
-#include <dali/devel-api/adaptor-framework/web-engine-context-menu.h>
-#include <dali/devel-api/adaptor-framework/web-engine-context-menu-item.h>
-#include <dali/devel-api/adaptor-framework/web-engine-cookie-manager.h>
-#include <dali/devel-api/adaptor-framework/web-engine-form-repost-decision.h>
-#include <dali/devel-api/adaptor-framework/web-engine-frame.h>
-#include <dali/devel-api/adaptor-framework/web-engine-hit-test.h>
-#include <dali/devel-api/adaptor-framework/web-engine-http-auth-handler.h>
-#include <dali/devel-api/adaptor-framework/web-engine-load-error.h>
-#include <dali/devel-api/adaptor-framework/web-engine-policy-decision.h>
-#include <dali/devel-api/adaptor-framework/web-engine-request-interceptor.h>
-#include <dali/devel-api/adaptor-framework/web-engine-security-origin.h>
-#include <dali/devel-api/adaptor-framework/web-engine-settings.h>
+#include <dali/devel-api/adaptor-framework/web-engine/web-engine-back-forward-list-item.h>
+#include <dali/devel-api/adaptor-framework/web-engine/web-engine-back-forward-list.h>
+#include <dali/devel-api/adaptor-framework/web-engine/web-engine-certificate.h>
+#include <dali/devel-api/adaptor-framework/web-engine/web-engine-console-message.h>
+#include <dali/devel-api/adaptor-framework/web-engine/web-engine-context-menu-item.h>
+#include <dali/devel-api/adaptor-framework/web-engine/web-engine-context-menu.h>
+#include <dali/devel-api/adaptor-framework/web-engine/web-engine-context.h>
+#include <dali/devel-api/adaptor-framework/web-engine/web-engine-cookie-manager.h>
+#include <dali/devel-api/adaptor-framework/web-engine/web-engine-form-repost-decision.h>
+#include <dali/devel-api/adaptor-framework/web-engine/web-engine-frame.h>
+#include <dali/devel-api/adaptor-framework/web-engine/web-engine-hit-test.h>
+#include <dali/devel-api/adaptor-framework/web-engine/web-engine-http-auth-handler.h>
+#include <dali/devel-api/adaptor-framework/web-engine/web-engine-load-error.h>
+#include <dali/devel-api/adaptor-framework/web-engine/web-engine-policy-decision.h>
+#include <dali/devel-api/adaptor-framework/web-engine/web-engine-request-interceptor.h>
+#include <dali/devel-api/adaptor-framework/web-engine/web-engine-security-origin.h>
+#include <dali/devel-api/adaptor-framework/web-engine/web-engine-settings.h>
+#include <dali/devel-api/adaptor-framework/web-engine/web-engine.h>
 #include <dali/public-api/adaptor-framework/native-image-source.h>
 #include <dali/public-api/images/pixel-data.h>
 #include <dali/public-api/object/any.h>
 #include <dali/public-api/object/base-object.h>
 #include <dali/public-api/object/property-map.h>
-#include <memory>
 #include <string.h>
 #include <toolkit-application.h>
+#include <memory>
 
 namespace Dali
 {
-
 namespace Internal
 {
-
 namespace Adaptor
 {
-
 class WebEngine;
 class MockWebEngineContext;
+class MockWebEngineCookieManager;
 
 namespace
 {
-
 // Generally only one WebEngine instance exists.
 // If > 1, a new web engine has been created by CreateWindowSignal.
-static WebEngine* gInstance = nullptr;
-static int gInstanceCount = 0;
-static MockWebEngineContext* gWebEngineContextInstance = nullptr;
+WebEngine*                  gInstance                   = nullptr;
+int                         gInstanceCount              = 0;
+MockWebEngineContext*       gWebEngineContextInstance   = nullptr;
+MockWebEngineCookieManager* gMockWebEngineCookieManager = nullptr;
 
 bool OnGoBack();
 bool OnGoForward();
@@ -83,26 +81,28 @@ bool OnStorageUsageAcquired();
 bool OnFormPasswordAcquired();
 bool OnDownloadStarted();
 bool OnMimeOverridden();
+bool OnRequestIntercepted();
 bool OnChangesWatch();
+bool OnPlainTextReceived();
 
-static void ConnectToGlobalSignal( bool ( *func )() )
+static void ConnectToGlobalSignal(bool (*func)())
 {
-  Dali::Timer timer = Dali::Timer::New( 0 );
-  timer.TickSignal().Connect( func );
+  Dali::Timer timer = Dali::Timer::New(0);
+  timer.TickSignal().Connect(func);
 }
 
-static void DisconnectFromGlobalSignal( bool ( *func )() )
+static void DisconnectFromGlobalSignal(bool (*func)())
 {
-  Dali::Timer timer = Dali::Timer::New( 0 );
-  timer.TickSignal().Disconnect( func );
+  Dali::Timer timer = Dali::Timer::New(0);
+  timer.TickSignal().Disconnect(func);
 }
-} // namespace anonymous
+} // namespace
 
 class MockWebEngineContext : public Dali::WebEngineContext
 {
 public:
   MockWebEngineContext()
-    : mockModel( Dali::WebEngineContext::CacheModel::DOCUMENT_VIEWER )
+  : mockModel(Dali::WebEngineContext::CacheModel::DOCUMENT_VIEWER)
   {
   }
 
@@ -111,30 +111,52 @@ public:
     return mockModel;
   }
 
-  void SetCacheModel( Dali::WebEngineContext::CacheModel cacheModel ) override
+  void SetCacheModel(Dali::WebEngineContext::CacheModel cacheModel) override
   {
     mockModel = cacheModel;
   }
 
-  void SetProxyUri( const std::string& uri ) override
+  void SetProxyUri(const std::string& uri) override
+  {
+    mockProxyUri = uri;
+  }
+
+  std::string GetProxyUri() const override
+  {
+    return mockProxyUri;
+  }
+
+  void SetProxyBypassRule(const std::string& proxy, const std::string& bypass) override
+  {
+    mockBypassRule = bypass;
+  }
+
+  std::string GetProxyBypassRule() const override
   {
+    return mockBypassRule;
   }
 
-  void SetDefaultProxyAuth( const std::string& username, const std::string& password ) override
+  void SetDefaultProxyAuth(const std::string& username, const std::string& password) override
   {
   }
 
-  void SetCertificateFilePath( const std::string& certificatePath ) override
+  void SetCertificateFilePath(const std::string& certificatePath) override
   {
+    mockCertificateFilePath = certificatePath;
+  }
+
+  std::string GetCertificateFilePath() const override
+  {
+    return mockCertificateFilePath;
   }
 
   void DeleteAllWebDatabase() override
   {
   }
 
-  bool GetWebDatabaseOrigins(Dali::WebEngineContext::WebEngineSecurityOriginAcquiredCallback callback)
+  bool GetWebDatabaseOrigins(Dali::WebEngineContext::WebEngineSecurityOriginAcquiredCallback callback) override
   {
-    if (callback)
+    if(callback)
     {
       ConnectToGlobalSignal(&OnSecurityOriginAcquired);
       mSecurityOriginAcquiredCallback = callback;
@@ -142,14 +164,14 @@ public:
     return true;
   }
 
-  bool DeleteWebDatabase(Dali::WebEngineSecurityOrigin& origin)
+  bool DeleteWebDatabase(Dali::WebEngineSecurityOrigin& origin) override
   {
     return true;
   }
 
-  bool GetWebStorageOrigins(Dali::WebEngineContext::WebEngineSecurityOriginAcquiredCallback callback)
+  bool GetWebStorageOrigins(Dali::WebEngineContext::WebEngineSecurityOriginAcquiredCallback callback) override
   {
-    if (callback)
+    if(callback)
     {
       ConnectToGlobalSignal(&OnSecurityOriginAcquired);
       mSecurityOriginAcquiredCallback = callback;
@@ -157,9 +179,9 @@ public:
     return true;
   }
 
-  bool GetWebStorageUsageForOrigin(Dali::WebEngineSecurityOrigin& origin, Dali::WebEngineContext::WebEngineStorageUsageAcquiredCallback callback) 
+  bool GetWebStorageUsageForOrigin(Dali::WebEngineSecurityOrigin& origin, Dali::WebEngineContext::WebEngineStorageUsageAcquiredCallback callback) override
   {
-    if (callback)
+    if(callback)
     {
       ConnectToGlobalSignal(&OnStorageUsageAcquired);
       mStorageUsageAcquiredCallback = callback;
@@ -171,7 +193,7 @@ public:
   {
   }
 
-  bool DeleteWebStorage(Dali::WebEngineSecurityOrigin& origin)
+  bool DeleteWebStorage(Dali::WebEngineSecurityOrigin& origin) override
   {
     return true;
   }
@@ -184,70 +206,75 @@ public:
   {
   }
 
-  bool DeleteApplicationCache(Dali::WebEngineSecurityOrigin& origin)
+  bool DeleteApplicationCache(Dali::WebEngineSecurityOrigin& origin) override
   {
     return true;
   }
 
-  void GetFormPasswordList(Dali::WebEngineContext::WebEngineFormPasswordAcquiredCallback callback)
+  void GetFormPasswordList(Dali::WebEngineContext::WebEngineFormPasswordAcquiredCallback callback) override
   {
-    if (callback)
+    if(callback)
     {
       ConnectToGlobalSignal(&OnFormPasswordAcquired);
       mFormPasswordAcquiredCallback = callback;
     }
   }
 
-  void RegisterDownloadStartedCallback(Dali::WebEngineContext::WebEngineDownloadStartedCallback callback)
+  void RegisterDownloadStartedCallback(Dali::WebEngineContext::WebEngineDownloadStartedCallback callback) override
   {
-    if (callback)
+    if(callback)
     {
       ConnectToGlobalSignal(&OnDownloadStarted);
       mDownloadStartedCallback = callback;
     }
   }
 
-  void RegisterMimeOverriddenCallback(Dali::WebEngineContext::WebEngineMimeOverriddenCallback callback)
+  void RegisterMimeOverriddenCallback(Dali::WebEngineContext::WebEngineMimeOverriddenCallback callback) override
   {
-    if (callback)
+    if(callback)
     {
       ConnectToGlobalSignal(&OnMimeOverridden);
       mMimeOverriddenCallback = callback;
     }
   }
 
-  void EnableCache( bool cacheEnabled ) override
+  void RegisterRequestInterceptedCallback(Dali::WebEngineContext::WebEngineRequestInterceptedCallback callback) override
   {
+    if(callback)
+    {
+      ConnectToGlobalSignal(&OnRequestIntercepted);
+      mRequestInterceptedCallback = callback;
+    }
   }
 
-  bool IsCacheEnabled() const override
+  void EnableCache(bool cacheEnabled) override
   {
-    return true;
+    mockCacheEnabled = cacheEnabled;
   }
 
-  std::string GetContextCertificateFile() const override
+  bool IsCacheEnabled() const override
   {
-    return "test";
+    return mockCacheEnabled;
   }
 
-  void SetContextAppId(const std::string& appID) override
+  void SetAppId(const std::string& appID) override
   {
   }
 
-  bool SetContextAppVersion(const std::string& appVersion) override
+  bool SetAppVersion(const std::string& appVersion) override
   {
     return true;
   }
 
-  void SetContextApplicationType(const Dali::WebEngineContext::ApplicationType applicationType) override
+  void SetApplicationType(const Dali::WebEngineContext::ApplicationType applicationType) override
   {
   }
 
-  void SetContextTimeOffset(float timeOffset) override
+  void SetTimeOffset(float timeOffset) override
   {
   }
 
-  void SetContextTimeZoneOffset(float timeZoneOffset, float daylightSavingTime) override
+  void SetTimeZoneOffset(float timeZoneOffset, float daylightSavingTime) override
   {
   }
 
@@ -261,11 +288,12 @@ public:
 
   void SetDefaultZoomFactor(float zoomFactor) override
   {
+    mockZoomFactor = zoomFactor;
   }
 
-  float GetContextDefaultZoomFactor() const override
+  float GetDefaultZoomFactor() const override
   {
-    return 0;
+    return mockZoomFactor;
   }
 
   bool DeleteAllApplicationCache() override
@@ -290,20 +318,6 @@ public:
   {
   }
 
-  std::string GetContextProxy() const override
-  {
-    return "test";
-  }
-
-  void SetContextProxy(const std::string& proxy, const std::string& bypass) override
-  {
-  }
-
-  std::string GetProxyBypassRule() const override
-  {
-    return "test";
-  }
-
   bool FreeUnusedMemory() override
   {
     return true;
@@ -311,24 +325,39 @@ public:
 
 public:
   Dali::WebEngineContext::WebEngineSecurityOriginAcquiredCallback mSecurityOriginAcquiredCallback;
-  Dali::WebEngineContext::WebEngineStorageUsageAcquiredCallback mStorageUsageAcquiredCallback;
-  Dali::WebEngineContext::WebEngineFormPasswordAcquiredCallback mFormPasswordAcquiredCallback;
-  Dali::WebEngineContext::WebEngineDownloadStartedCallback mDownloadStartedCallback;
-  Dali::WebEngineContext::WebEngineMimeOverriddenCallback mMimeOverriddenCallback;
+  Dali::WebEngineContext::WebEngineStorageUsageAcquiredCallback   mStorageUsageAcquiredCallback;
+  Dali::WebEngineContext::WebEngineFormPasswordAcquiredCallback   mFormPasswordAcquiredCallback;
+  Dali::WebEngineContext::WebEngineDownloadStartedCallback        mDownloadStartedCallback;
+  Dali::WebEngineContext::WebEngineMimeOverriddenCallback         mMimeOverriddenCallback;
+  Dali::WebEngineContext::WebEngineRequestInterceptedCallback     mRequestInterceptedCallback;
 
 private:
   Dali::WebEngineContext::CacheModel mockModel;
+  std::string                        mockProxyUri;
+  std::string                        mockBypassRule;
+  std::string                        mockCertificateFilePath;
+  bool                               mockCacheEnabled;
+  float                              mockZoomFactor;
 };
 
+Dali::WebEngineContext* GetContext()
+{
+  if(!gWebEngineContextInstance)
+  {
+    gWebEngineContextInstance = new MockWebEngineContext();
+  }
+  return gWebEngineContextInstance;
+}
+
 class MockWebEngineCookieManager : public Dali::WebEngineCookieManager
 {
 public:
   MockWebEngineCookieManager()
-    : mockCookieAcceptPolicy( Dali::WebEngineCookieManager::CookieAcceptPolicy::NO_THIRD_PARTY )
+  : mockCookieAcceptPolicy(Dali::WebEngineCookieManager::CookieAcceptPolicy::NO_THIRD_PARTY)
   {
   }
 
-  void SetCookieAcceptPolicy( Dali::WebEngineCookieManager::CookieAcceptPolicy policy ) override
+  void SetCookieAcceptPolicy(Dali::WebEngineCookieManager::CookieAcceptPolicy policy) override
   {
     mockCookieAcceptPolicy = policy;
   }
@@ -342,15 +371,15 @@ public:
   {
   }
 
-  void SetPersistentStorage( const std::string& path, Dali::WebEngineCookieManager::CookiePersistentStorage storage ) override
+  void SetPersistentStorage(const std::string& path, Dali::WebEngineCookieManager::CookiePersistentStorage storage) override
   {
   }
 
-  void ChangesWatch( Dali::WebEngineCookieManager::WebEngineCookieManagerChangesWatchCallback callback ) override
+  void ChangesWatch(Dali::WebEngineCookieManager::WebEngineCookieManagerChangesWatchCallback callback) override
   {
-    if ( callback )
+    if(callback)
     {
-      ConnectToGlobalSignal( &OnChangesWatch );
+      ConnectToGlobalSignal(&OnChangesWatch);
       mChangesWatchCallback = callback;
     }
   }
@@ -362,13 +391,22 @@ private:
   Dali::WebEngineCookieManager::CookieAcceptPolicy mockCookieAcceptPolicy;
 };
 
+Dali::WebEngineCookieManager* GetCookieManager()
+{
+  if(!gMockWebEngineCookieManager)
+  {
+    gMockWebEngineCookieManager = new MockWebEngineCookieManager();
+  }
+  return gMockWebEngineCookieManager;
+}
+
 class MockWebEngineBackForwardListItem : public Dali::WebEngineBackForwardListItem
 {
 public:
   MockWebEngineBackForwardListItem()
-    : mockUrl( "http://url" ),
-      mockTitle( "title" ),
-      mockOriginalUrl( "http://originalurl" )
+  : mockUrl("http://url"),
+    mockTitle("title"),
+    mockOriginalUrl("http://originalurl")
   {
   }
 
@@ -418,7 +456,7 @@ public:
     return ret;
   }
 
-  std::unique_ptr<Dali::WebEngineBackForwardListItem> GetItemAtIndex( uint32_t index ) const override
+  std::unique_ptr<Dali::WebEngineBackForwardListItem> GetItemAtIndex(uint32_t index) const override
   {
     std::unique_ptr<Dali::WebEngineBackForwardListItem> ret(new MockWebEngineBackForwardListItem());
     return ret;
@@ -432,7 +470,7 @@ public:
   std::vector<std::unique_ptr<Dali::WebEngineBackForwardListItem>> GetBackwardItems(int limit) override
   {
     std::vector<std::unique_ptr<Dali::WebEngineBackForwardListItem>> ret;
-    std::unique_ptr<Dali::WebEngineBackForwardListItem> item(new MockWebEngineBackForwardListItem());
+    std::unique_ptr<Dali::WebEngineBackForwardListItem>              item(new MockWebEngineBackForwardListItem());
     ret.push_back(std::move(item));
     return ret;
   }
@@ -440,13 +478,12 @@ public:
   std::vector<std::unique_ptr<Dali::WebEngineBackForwardListItem>> GetForwardItems(int limit) override
   {
     std::vector<std::unique_ptr<Dali::WebEngineBackForwardListItem>> ret;
-    std::unique_ptr<Dali::WebEngineBackForwardListItem> item(new MockWebEngineBackForwardListItem());
+    std::unique_ptr<Dali::WebEngineBackForwardListItem>              item(new MockWebEngineBackForwardListItem());
     ret.push_back(std::move(item));
     return ret;
   }
 };
 
-
 class MockWebEngineCertificate : public Dali::WebEngineCertificate
 {
 public:
@@ -506,7 +543,9 @@ public:
   {
   }
 
-  void Reply(bool allowed) override {}
+  void Reply(bool allowed) override
+  {
+  }
 };
 
 class MockWebEngineFrame : public Dali::WebEngineFrame
@@ -588,39 +627,6 @@ private:
   MockWebEngineFrame mockWebFrame;
 };
 
-class MockWebEngineRequestInterceptor : public WebEngineRequestInterceptor
-{
-public:
-  MockWebEngineRequestInterceptor()
-  {
-  }
-
-  std::string GetUrl() const override
-  {
-    return "http://test.html";
-  }
-
-  bool Ignore() override
-  {
-    return true;
-  }
-
-  bool SetResponseStatus(int statusCode, const std::string &customedStatusText) override
-  {
-    return true;
-  }
-
-  bool AddResponseHeader(const std::string &fieldName, const std::string &fieldValue) override
-  {
-    return true;
-  }
-
-  bool AddResponseBody(const std::string &body, uint32_t length) override
-  {
-    return true;
-  }
-};
-
 class MockWebEngineConsoleMessage : public Dali::WebEngineConsoleMessage
 {
 public:
@@ -653,7 +659,7 @@ class MockWebEngineLoadError : public Dali::WebEngineLoadError
 {
 public:
   MockWebEngineLoadError(const std::string& url)
-    : mockUrl(url)
+  : mockUrl(url)
   {
   }
 
@@ -746,16 +752,11 @@ public:
   std::vector<std::unique_ptr<WebEngineContextMenuItem>> GetItemList() const override
   {
     std::vector<std::unique_ptr<WebEngineContextMenuItem>> result;
-    std::unique_ptr<Dali::WebEngineContextMenuItem> webitem(new MockWebEngineContextMenuItem());
+    std::unique_ptr<Dali::WebEngineContextMenuItem>        webitem(new MockWebEngineContextMenuItem());
     result.push_back(std::move(webitem));
     return result;
   }
 
-  Dali::Vector2 GetPosition() const override
-  {
-    return Dali::Vector2(100, 100);
-  }
-
   bool RemoveItem(WebEngineContextMenuItem& item) override
   {
     return true;
@@ -829,7 +830,7 @@ public:
     return "test";
   }
 
-  Dali::Property::Map& GetAttributes() const override
+  Dali::Property::Map GetAttributes() const override
   {
     return mockAttributesMap;
   }
@@ -843,9 +844,7 @@ public:
   {
     uint8_t* imageData = new uint8_t[16];
     memset(imageData, 0xff, 16);
-    return Dali::PixelData::New(imageData, 16, 2, 2,
-                                Dali::Pixel::Format::RGBA8888,
-                                Dali::PixelData::ReleaseFunction::DELETE_ARRAY);
+    return Dali::PixelData::New(imageData, 16, 2, 2, Dali::Pixel::Format::RGBA8888, Dali::PixelData::ReleaseFunction::DELETE_ARRAY);
   }
 
 private:
@@ -856,8 +855,8 @@ class MockWebEngineSecurityOrigin : public Dali::WebEngineSecurityOrigin
 {
 public:
   MockWebEngineSecurityOrigin()
-    : mockUrl("https://test.html")
-    mockPotocol("https")
+  : mockUrl("https://test.html"),
+    mockPotocol("https")
   {
   }
 
@@ -880,22 +879,22 @@ class MockWebEngineSettings : public WebEngineSettings
 {
 public:
   MockWebEngineSettings()
-    : mockDefaultFontSize( 16 ),
-      mockJavaScriptEnabled( true ),
-      mockAutoFittingEnabled ( true ),
-      mockPluginsEnabled ( true ),
-      mockPrivateBrowsingEnabled( true ),
-      mockLinkMagnifierEnabled( true ),
-      mockKeypadWithoutUserActionUsed( true ),
-      mockAutofillPasswordFormEnabled( true ),
-      mockFormCandidateDataEnabled( true ),
-      mockTextSelectionEnabled( true ),
-      mockTextAutosizingEnable( true ),
-      mockArrowScrollEnable( true ),
-      mockClipboardEnabled( true ),
-      mockImePanelEnabled( true ),
-      mockImageLoadedAutomatically( true ),
-      mockDefaultTextEncodingName()
+  : mockDefaultFontSize(16),
+    mockJavaScriptEnabled(true),
+    mockAutoFittingEnabled(true),
+    mockPluginsEnabled(true),
+    mockPrivateBrowsingEnabled(true),
+    mockLinkMagnifierEnabled(true),
+    mockKeypadWithoutUserActionUsed(true),
+    mockAutofillPasswordFormEnabled(true),
+    mockFormCandidateDataEnabled(true),
+    mockTextSelectionEnabled(true),
+    mockTextAutosizingEnable(true),
+    mockArrowScrollEnable(true),
+    mockClipboardEnabled(true),
+    mockImePanelEnabled(true),
+    mockImageLoadedAutomatically(true),
+    mockDefaultTextEncodingName()
   {
   }
 
@@ -904,7 +903,7 @@ public:
     return mockDefaultFontSize;
   }
 
-  void SetDefaultFontSize( uint32_t size ) override
+  void SetDefaultFontSize(uint32_t size) override
   {
     mockDefaultFontSize = size;
   }
@@ -914,7 +913,7 @@ public:
     return mockJavaScriptEnabled;
   }
 
-  void EnableJavaScript( bool enabled ) override
+  void EnableJavaScript(bool enabled) override
   {
     mockJavaScriptEnabled = enabled;
   }
@@ -924,7 +923,7 @@ public:
     return mockAutoFittingEnabled;
   }
 
-  void EnableAutoFitting( bool enabled ) override
+  void EnableAutoFitting(bool enabled) override
   {
     mockAutoFittingEnabled = enabled;
   }
@@ -934,7 +933,7 @@ public:
     return mockPluginsEnabled;
   }
 
-  void EnablePlugins( bool enabled ) override
+  void EnablePlugins(bool enabled) override
   {
     mockPluginsEnabled = enabled;
   }
@@ -944,7 +943,7 @@ public:
     return mockPrivateBrowsingEnabled;
   }
 
-  void EnablePrivateBrowsing( bool enabled ) override
+  void EnablePrivateBrowsing(bool enabled) override
   {
     mockPrivateBrowsingEnabled = enabled;
   }
@@ -954,7 +953,7 @@ public:
     return mockLinkMagnifierEnabled;
   }
 
-  void EnableLinkMagnifier( bool enabled ) override
+  void EnableLinkMagnifier(bool enabled) override
   {
     mockLinkMagnifierEnabled = enabled;
   }
@@ -964,7 +963,7 @@ public:
     return mockKeypadWithoutUserActionUsed;
   }
 
-  void UseKeypadWithoutUserAction( bool used ) override
+  void UseKeypadWithoutUserAction(bool used) override
   {
     mockKeypadWithoutUserActionUsed = used;
   }
@@ -974,7 +973,7 @@ public:
     return mockAutofillPasswordFormEnabled;
   }
 
-  void EnableAutofillPasswordForm( bool enabled ) override
+  void EnableAutofillPasswordForm(bool enabled) override
   {
     mockAutofillPasswordFormEnabled = enabled;
   }
@@ -984,7 +983,7 @@ public:
     return mockFormCandidateDataEnabled;
   }
 
-  void EnableFormCandidateData( bool enabled ) override
+  void EnableFormCandidateData(bool enabled) override
   {
     mockFormCandidateDataEnabled = enabled;
   }
@@ -994,7 +993,7 @@ public:
     return mockTextSelectionEnabled;
   }
 
-  void EnableTextSelection( bool enabled ) override
+  void EnableTextSelection(bool enabled) override
   {
     mockTextSelectionEnabled = enabled;
   }
@@ -1004,7 +1003,7 @@ public:
     return mockTextAutosizingEnable;
   }
 
-  void EnableTextAutosizing( bool enabled ) override
+  void EnableTextAutosizing(bool enabled) override
   {
     mockTextAutosizingEnable = enabled;
   }
@@ -1014,7 +1013,7 @@ public:
     return mockArrowScrollEnable;
   }
 
-  void EnableArrowScroll( bool enabled ) override
+  void EnableArrowScroll(bool enabled) override
   {
     mockArrowScrollEnable = enabled;
   }
@@ -1024,7 +1023,7 @@ public:
     return mockClipboardEnabled;
   }
 
-  void EnableClipboard( bool enabled ) override
+  void EnableClipboard(bool enabled) override
   {
     mockClipboardEnabled = enabled;
   }
@@ -1034,7 +1033,7 @@ public:
     return mockImePanelEnabled;
   }
 
-  void EnableImePanel( bool enabled ) override
+  void EnableImePanel(bool enabled) override
   {
     mockImePanelEnabled = enabled;
   }
@@ -1044,7 +1043,7 @@ public:
     return mockImageLoadedAutomatically;
   }
 
-  void AllowImagesLoadAutomatically( bool automatic ) override
+  void AllowImagesLoadAutomatically(bool automatic) override
   {
     mockImageLoadedAutomatically = automatic;
   }
@@ -1054,40 +1053,40 @@ public:
     return mockDefaultTextEncodingName;
   }
 
-  void SetDefaultTextEncodingName( const std::string& defaultTextEncodingName ) override
+  void SetDefaultTextEncodingName(const std::string& defaultTextEncodingName) override
   {
     mockDefaultTextEncodingName = defaultTextEncodingName;
   }
 
-  void AllowMixedContents( bool allowed ) override
+  void AllowMixedContents(bool allowed) override
   {
   }
 
-  void EnableSpatialNavigation( bool enabled ) override
+  void EnableSpatialNavigation(bool enabled) override
   {
   }
 
-  void EnableWebSecurity( bool enabled ) override
+  void EnableWebSecurity(bool enabled) override
   {
   }
 
-  void EnableCacheBuilder( bool enabled ) override
+  void EnableCacheBuilder(bool enabled) override
   {
   }
 
-  void UseScrollbarThumbFocusNotifications( bool used ) override
+  void UseScrollbarThumbFocusNotifications(bool used) override
   {
   }
 
-  void EnableDoNotTrack( bool enabled ) override
+  void EnableDoNotTrack(bool enabled) override
   {
   }
 
-  void AllowFileAccessFromExternalUrl( bool allowed ) override
+  void AllowFileAccessFromExternalUrl(bool allowed) override
   {
   }
 
-  void AllowScriptsOpenWindows( bool allowed ) override
+  void AllowScriptsOpenWindows(bool allowed) override
   {
   }
 
@@ -1122,72 +1121,473 @@ public:
 
   bool IsExtraFeatureEnabled(const std::string& feature) const override
   {
-    return  true;
+    return true;
   }
 
 private:
-  int mockDefaultFontSize;
-  bool mockJavaScriptEnabled;
-  bool mockAutoFittingEnabled;
-  bool mockPluginsEnabled;
-  bool mockPrivateBrowsingEnabled;
-  bool mockLinkMagnifierEnabled;
-  bool mockKeypadWithoutUserActionUsed;
-  bool mockAutofillPasswordFormEnabled;
-  bool mockFormCandidateDataEnabled;
-  bool mockTextSelectionEnabled;
-  bool mockTextAutosizingEnable;
-  bool mockArrowScrollEnable;
-  bool mockClipboardEnabled;
-  bool mockImePanelEnabled;
-  bool mockImageLoadedAutomatically;
+  int         mockDefaultFontSize;
+  bool        mockJavaScriptEnabled;
+  bool        mockAutoFittingEnabled;
+  bool        mockPluginsEnabled;
+  bool        mockPrivateBrowsingEnabled;
+  bool        mockLinkMagnifierEnabled;
+  bool        mockKeypadWithoutUserActionUsed;
+  bool        mockAutofillPasswordFormEnabled;
+  bool        mockFormCandidateDataEnabled;
+  bool        mockTextSelectionEnabled;
+  bool        mockTextAutosizingEnable;
+  bool        mockArrowScrollEnable;
+  bool        mockClipboardEnabled;
+  bool        mockImePanelEnabled;
+  bool        mockImageLoadedAutomatically;
   std::string mockDefaultTextEncodingName;
 };
 
-class WebEngine: public Dali::BaseObject
+class MockWebEnginePlugin : public Dali::WebEnginePlugin
 {
 public:
+  MockWebEnginePlugin()
+  {
+  }
+  void Create(uint32_t width, uint32_t height, const std::string& locale, const std::string& timezoneId) override
+  {
+  }
+  void Create(uint32_t width, uint32_t height, uint32_t argc, char** argv) override
+  {
+  }
+  void Destroy() override
+  {
+  }
+  WebEngineSettings& GetSettings() const override
+  {
+    return *((WebEngineSettings*)&settings);
+  }
+  WebEngineBackForwardList& GetBackForwardList() const override
+  {
+    return *((WebEngineBackForwardList*)&backForwardList);
+  }
+  void LoadUrl(const std::string& url) override
+  {
+  }
+  std::string GetTitle() const override
+  {
+    return std::string();
+  }
+  Dali::PixelData GetFavicon() const override
+  {
+    return Dali::PixelData();
+  }
+  NativeImageSourcePtr GetNativeImageSource() override
+  {
+    return nullptr;
+  }
+  std::string GetUrl() const override
+  {
+    return std::string();
+  }
+  void LoadHtmlString(const std::string& htmlString) override
+  {
+  }
+  bool LoadHtmlStringOverrideCurrentEntry(const std::string& html, const std::string& basicUri, const std::string& unreachableUrl) override
+  {
+    return false;
+  }
+  bool LoadContents(const int8_t* contents, uint32_t contentSize, const std::string& mimeType, const std::string& encoding, const std::string& baseUri) override
+  {
+    return false;
+  }
+  void Reload() override
+  {
+  }
+  bool ReloadWithoutCache() override
+  {
+    return false;
+  }
+  void StopLoading() override
+  {
+  }
+  void Suspend() override
+  {
+  }
+  void Resume() override
+  {
+  }
+  void SuspendNetworkLoading() override
+  {
+  }
+  void ResumeNetworkLoading() override
+  {
+  }
+  bool AddCustomHeader(const std::string& name, const std::string& value) override
+  {
+    return false;
+  }
+  bool RemoveCustomHeader(const std::string& name) override
+  {
+    return false;
+  }
+  uint32_t StartInspectorServer(uint32_t port) override
+  {
+    return 0;
+  }
+  bool StopInspectorServer() override
+  {
+    return false;
+  }
+  void ScrollBy(int32_t deltaX, int32_t deltaY) override
+  {
+  }
+  bool ScrollEdgeBy(int32_t deltaX, int32_t deltaY) override
+  {
+    return false;
+  }
+  void SetScrollPosition(int32_t x, int32_t y) override
+  {
+  }
+  Dali::Vector2 GetScrollPosition() const override
+  {
+    return Dali::Vector2();
+  }
+  Dali::Vector2 GetScrollSize() const override
+  {
+    return Dali::Vector2();
+  }
+  Dali::Vector2 GetContentSize() const override
+  {
+    return Dali::Vector2();
+  }
+  bool CanGoForward() override
+  {
+    return false;
+  }
+  void GoForward() override
+  {
+  }
+  bool CanGoBack() override
+  {
+    return false;
+  }
+  void GoBack() override
+  {
+  }
+  void EvaluateJavaScript(const std::string& script, JavaScriptMessageHandlerCallback resultHandler) override
+  {
+  }
+  void AddJavaScriptMessageHandler(const std::string& exposedObjectName, JavaScriptMessageHandlerCallback handler) override
+  {
+  }
+  void RegisterJavaScriptAlertCallback(JavaScriptAlertCallback callback) override
+  {
+  }
+  void JavaScriptAlertReply() override
+  {
+  }
+  void RegisterJavaScriptConfirmCallback(JavaScriptConfirmCallback callback) override
+  {
+  }
+  void JavaScriptConfirmReply(bool confirmed) override
+  {
+  }
+  void RegisterJavaScriptPromptCallback(JavaScriptPromptCallback callback) override
+  {
+  }
+  void JavaScriptPromptReply(const std::string& result) override
+  {
+  }
+  std::unique_ptr<Dali::WebEngineHitTest> CreateHitTest(int32_t x, int32_t y, Dali::WebEngineHitTest::HitTestMode mode) override
+  {
+    return nullptr;
+  }
+  bool CreateHitTestAsynchronously(int32_t x, int32_t y, Dali::WebEngineHitTest::HitTestMode mode, WebEngineHitTestCreatedCallback callback) override
+  {
+    return false;
+  }
+  void ClearHistory() override
+  {
+  }
+  void ClearAllTilesResources() override
+  {
+  }
+  std::string GetUserAgent() const override
+  {
+    return std::string();
+  }
+  void SetUserAgent(const std::string& userAgent) override
+  {
+  }
+  void SetSize(uint32_t width, uint32_t height) override
+  {
+  }
+  void SetDocumentBackgroundColor(Dali::Vector4 color) override
+  {
+  }
+  void ClearTilesWhenHidden(bool cleared) override
+  {
+  }
+  void SetTileCoverAreaMultiplier(float multiplier) override
+  {
+  }
+  void EnableCursorByClient(bool enabled) override
+  {
+  }
+  std::string GetSelectedText() const override
+  {
+    return std::string();
+  }
+  bool SendTouchEvent(const TouchEvent& touch) override
+  {
+    return false;
+  }
+  bool SendKeyEvent(const KeyEvent& event) override
+  {
+    return false;
+  }
+  void EnableMouseEvents(bool enabled) override
+  {
+  }
+  void EnableKeyEvents(bool enabled) override
+  {
+  }
+  void SetFocus(bool focused) override
+  {
+  }
+  void SetPageZoomFactor(float zoomFactor) override
+  {
+  }
+  float GetPageZoomFactor() const override
+  {
+    return 0.0f;
+  }
+  void SetTextZoomFactor(float zoomFactor) override
+  {
+  }
+  float GetTextZoomFactor() const override
+  {
+    return 0.0f;
+  }
+  float GetLoadProgressPercentage() const override
+  {
+    return 0.0f;
+  }
+  void SetScaleFactor(float scaleFactor, Dali::Vector2 point) override
+  {
+  }
+  float GetScaleFactor() const override
+  {
+    return 0.0f;
+  }
+  void ActivateAccessibility(bool activated) override
+  {
+  }
+  Accessibility::Address GetAccessibilityAddress() override
+  {
+    return Accessibility::Address();
+  }
+  bool SetVisibility(bool visible) override
+  {
+    return false;
+  }
+  bool HighlightText(const std::string& text, FindOption options, uint32_t maxMatchCount) override
+  {
+    return false;
+  }
+  void AddDynamicCertificatePath(const std::string& host, const std::string& certPath) override
+  {
+  }
+  Dali::PixelData GetScreenshot(Dali::Rect<int32_t> viewArea, float scaleFactor) override
+  {
+    return Dali::PixelData();
+  }
+  bool GetScreenshotAsynchronously(Dali::Rect<int32_t> viewArea, float scaleFactor, ScreenshotCapturedCallback callback) override
+  {
+    return false;
+  }
+  bool CheckVideoPlayingAsynchronously(VideoPlayingCallback callback) override
+  {
+    return false;
+  }
+  void RegisterGeolocationPermissionCallback(GeolocationPermissionCallback callback) override
+  {
+  }
+  void UpdateDisplayArea(Dali::Rect<int32_t> displayArea) override
+  {
+  }
+  void EnableVideoHole(bool enabled) override
+  {
+  }
+  bool SendHoverEvent(const HoverEvent& event) override
+  {
+    return false;
+  }
+  bool SendWheelEvent(const WheelEvent& event) override
+  {
+    return false;
+  }
+  void RegisterFrameRenderedCallback(WebEngineFrameRenderedCallback callback) override
+  {
+  }
+  void RegisterPageLoadStartedCallback(WebEnginePageLoadCallback callback) override
+  {
+  }
+  void RegisterPageLoadInProgressCallback(WebEnginePageLoadCallback callback) override
+  {
+  }
+  void RegisterPageLoadFinishedCallback(WebEnginePageLoadCallback callback) override
+  {
+  }
+  void RegisterPageLoadErrorCallback(WebEnginePageLoadErrorCallback callback) override
+  {
+  }
+  void RegisterScrollEdgeReachedCallback(WebEngineScrollEdgeReachedCallback callback) override
+  {
+  }
+  void RegisterUrlChangedCallback(WebEngineUrlChangedCallback callback) override
+  {
+  }
+  void RegisterFormRepostDecidedCallback(WebEngineFormRepostDecidedCallback callback) override
+  {
+  }
+  void RegisterConsoleMessageReceivedCallback(WebEngineConsoleMessageReceivedCallback callback) override
+  {
+  }
+  void RegisterResponsePolicyDecidedCallback(WebEngineResponsePolicyDecidedCallback callback) override
+  {
+  }
+  void RegisterNavigationPolicyDecidedCallback(WebEngineNavigationPolicyDecidedCallback callback) override
+  {
+  }
+  void RegisterNewWindowCreatedCallback(WebEngineNewWindowCreatedCallback callback) override
+  {
+  }
+  void RegisterCertificateConfirmedCallback(WebEngineCertificateCallback callback) override
+  {
+  }
+  void RegisterSslCertificateChangedCallback(WebEngineCertificateCallback callback) override
+  {
+  }
+  void RegisterHttpAuthHandlerCallback(WebEngineHttpAuthHandlerCallback callback) override
+  {
+  }
+  void RegisterContextMenuShownCallback(WebEngineContextMenuShownCallback callback) override
+  {
+  }
+  void RegisterContextMenuHiddenCallback(WebEngineContextMenuHiddenCallback callback) override
+  {
+  }
+  void GetPlainTextAsynchronously(PlainTextReceivedCallback callback) override
+  {
+  }
+
+private:
+  MockWebEngineSettings        settings;
+  MockWebEngineBackForwardList backForwardList;
+};
+
+Dali::WebEnginePlugin* GetWebEnginePlugin()
+{
+  static MockWebEnginePlugin plugin;
+  return &plugin;
+}
+
+class MockWebEngineRequestInterceptor : public WebEngineRequestInterceptor
+{
+public:
+  MockWebEngineRequestInterceptor()
+  {
+  }
+
+  Dali::WebEnginePlugin* GetWebEngine() const
+  {
+    return GetWebEnginePlugin();
+  }
 
-  using JavaScriptEvaluatedResultCallback = std::function<void(const std::string&)>;
+  std::string GetUrl() const override
+  {
+    return "http://test.html";
+  }
+
+  Dali::Property::Map GetHeaders() const override
+  {
+    return mockHeadersMap;
+  }
+
+  std::string GetMethod() const override
+  {
+    return "GET";
+  }
+
+  bool Ignore() override
+  {
+    return true;
+  }
+
+  bool SetResponseStatus(int statusCode, const std::string& customedStatusText) override
+  {
+    return true;
+  }
+
+  bool AddResponseHeader(const std::string& fieldName, const std::string& fieldValue) override
+  {
+    mockHeadersMap.Add(fieldName, fieldValue);
+    return true;
+  }
+
+  bool AddResponseHeaders(const Dali::Property::Map& headers) override
+  {
+    mockHeadersMap.Merge(headers);
+    return true;
+  }
 
+  bool AddResponseBody(const int8_t* body, uint32_t length) override
+  {
+    return true;
+  }
+
+  bool AddResponse(const std::string& headers, const int8_t* body, uint32_t length) override
+  {
+    return true;
+  }
+
+  bool WriteResponseChunk(const int8_t* chunk, uint32_t length) override
+  {
+    return true;
+  }
+
+private:
+  Dali::Property::Map mockHeadersMap;
+};
+
+class WebEngine : public Dali::BaseObject
+{
+public:
   WebEngine()
-    : mUrl()
-    , mCurrentPlusOnePos( 0 )
-    , mUserAgent()
-    , mEvaluating( false )
-    , mScrollPosition( 0, 0 )
-    , mScrollSize( 500, 500 )
-    , mContentSize( 500, 500 )
+  : mUrl(),
+    mCurrentPlusOnePos(0),
+    mUserAgent(),
+    mEvaluating(false),
+    mScrollPosition(0, 0),
+    mScrollSize(500, 500),
+    mContentSize(500, 500)
   {
     gInstanceCount++;
-    if ( gInstanceCount == 1 ) // only first web engine need be saved.
+    if(gInstanceCount == 1) // only first web engine need be saved.
     {
       gInstance = this;
     }
 
-    mockWebEngineSettings = new MockWebEngineSettings();
-    MockWebEngineContext* engineContext = new MockWebEngineContext();
-    mockWebEngineContext = engineContext;
-    if ( gInstanceCount == 1 )
-    {
-      gWebEngineContextInstance = engineContext;
-    }
-    mockWebEngineCookieManager = new MockWebEngineCookieManager();
+    mockWebEngineSettings        = new MockWebEngineSettings();
     mockWebEngineBackForwardList = new MockWebEngineBackForwardList();
   }
 
   virtual ~WebEngine()
   {
     gInstanceCount--;
-    if( !gInstanceCount )
+    if(!gInstanceCount)
     {
-      gInstance = 0;
-      gWebEngineContextInstance = 0;
+      gInstance = nullptr;
     }
 
     delete mockWebEngineSettings;
-    delete mockWebEngineContext;
-    delete mockWebEngineCookieManager;
     delete mockWebEngineBackForwardList;
   }
 
@@ -1196,28 +1596,18 @@ public:
     return *mockWebEngineSettings;
   }
 
-  Dali::WebEngineContext& GetContext() const
-  {
-    return *mockWebEngineContext;
-  }
-
-  Dali::WebEngineCookieManager& GetCookieManager() const
-  {
-    return *mockWebEngineCookieManager;
-  }
-
   Dali::WebEngineBackForwardList& GetBackForwardList() const
   {
     return *mockWebEngineBackForwardList;
   }
 
-  void LoadUrl( const std::string& url )
+  void LoadUrl(const std::string& url)
   {
     mUrl = url;
-    ConnectToGlobalSignal( &OnLoadUrl );
+    ConnectToGlobalSignal(&OnLoadUrl);
   }
 
-  const std::string& GetUrl() const
+  std::string GetUrl() const
   {
     return mUrl;
   }
@@ -1230,14 +1620,12 @@ public:
   Dali::PixelData GetFavicon() const
   {
     static int testGetFaviconCount = 0;
-    if (testGetFaviconCount == 0)
+    if(testGetFaviconCount == 0)
     {
       testGetFaviconCount++;
       uint8_t* faviconData = new uint8_t[16];
       memset(faviconData, 0xff, 16);
-      return Dali::PixelData::New(faviconData, 16, 2, 2,
-                                  Dali::Pixel::Format::RGBA8888,
-                                  Dali::PixelData::ReleaseFunction::DELETE_ARRAY);
+      return Dali::PixelData::New(faviconData, 16, 2, 2, Dali::Pixel::Format::RGBA8888, Dali::PixelData::ReleaseFunction::DELETE_ARRAY);
     }
     else
     {
@@ -1252,7 +1640,7 @@ public:
 
   void GoForward()
   {
-    ConnectToGlobalSignal( &OnGoForward );
+    ConnectToGlobalSignal(&OnGoForward);
   }
 
   bool CanGoBack() const
@@ -1262,44 +1650,44 @@ public:
 
   void GoBack()
   {
-    ConnectToGlobalSignal( &OnGoBack );
+    ConnectToGlobalSignal(&OnGoBack);
   }
 
-  void EvaluateJavaScript( const std::string& script, std::function< void( const std::string& ) > resultHandler )
+  void EvaluateJavaScript(const std::string& script, std::function<void(const std::string&)> resultHandler)
   {
-    if( resultHandler )
+    if(resultHandler)
     {
-      if( !mEvaluating )
+      if(!mEvaluating)
       {
-        ConnectToGlobalSignal( &OnEvaluteJavaScript );
+        ConnectToGlobalSignal(&OnEvaluteJavaScript);
       }
-      mResultCallbacks.push_back( resultHandler );
+      mResultCallbacks.push_back(resultHandler);
     }
   }
 
-  void RegisterJavaScriptAlertCallback( Dali::WebEnginePlugin::JavaScriptAlertCallback callback )
+  void RegisterJavaScriptAlertCallback(Dali::WebEnginePlugin::JavaScriptAlertCallback callback)
   {
-    if ( callback )
+    if(callback)
     {
-      ConnectToGlobalSignal( &OnJavaScriptAlert );
+      ConnectToGlobalSignal(&OnJavaScriptAlert);
       mJavaScriptAlertCallback = callback;
     }
   }
 
-  void RegisterJavaScriptConfirmCallback( Dali::WebEnginePlugin::JavaScriptConfirmCallback callback )
+  void RegisterJavaScriptConfirmCallback(Dali::WebEnginePlugin::JavaScriptConfirmCallback callback)
   {
-    if ( callback )
+    if(callback)
     {
-      ConnectToGlobalSignal( &OnJavaScriptConfirm );
+      ConnectToGlobalSignal(&OnJavaScriptConfirm);
       mJavaScriptConfirmCallback = callback;
     }
   }
 
-  void RegisterJavaScriptPromptCallback( Dali::WebEnginePlugin::JavaScriptPromptCallback callback )
+  void RegisterJavaScriptPromptCallback(Dali::WebEnginePlugin::JavaScriptPromptCallback callback)
   {
-    if ( callback )
+    if(callback)
     {
-      ConnectToGlobalSignal( &OnJavaScriptPrompt );
+      ConnectToGlobalSignal(&OnJavaScriptPrompt);
       mJavaScriptPromptCallback = callback;
     }
   }
@@ -1312,9 +1700,9 @@ public:
 
   bool CreateHitTestAsynchronously(int32_t x, int32_t y, Dali::WebEngineHitTest::HitTestMode mode, Dali::WebEnginePlugin::WebEngineHitTestCreatedCallback callback)
   {
-    if (callback)
+    if(callback)
     {
-      ConnectToGlobalSignal( &OnHitTestCreated );
+      ConnectToGlobalSignal(&OnHitTestCreated);
       mHitTestCreatedCallback = callback;
     }
     return true;
@@ -1322,39 +1710,39 @@ public:
 
   void ClearHistory()
   {
-    ConnectToGlobalSignal( &OnClearHistory );
+    ConnectToGlobalSignal(&OnClearHistory);
   }
 
-  const std::string& GetUserAgent() const
+  std::string GetUserAgent() const
   {
     return mUserAgent;
   }
 
-  void SetUserAgent( const std::string& userAgent )
+  void SetUserAgent(const std::string& userAgent)
   {
     mUserAgent = userAgent;
   }
 
-  void ScrollBy( int32_t dx, int32_t dy )
+  void ScrollBy(int32_t dx, int32_t dy)
   {
-    mScrollPosition += Dali::Vector2( dx, dy );
-    if ( mScrollPosition.y + mScrollSize.height > mContentSize.height )
+    mScrollPosition += Dali::Vector2(dx, dy);
+    if(mScrollPosition.y + mScrollSize.height > mContentSize.height)
     {
-      ConnectToGlobalSignal( &OnScrollEdge );
+      ConnectToGlobalSignal(&OnScrollEdge);
     }
   }
 
-  bool ScrollEdgeBy( int32_t dx, int32_t dy )
+  bool ScrollEdgeBy(int32_t dx, int32_t dy)
   {
-    mScrollPosition += Dali::Vector2( dx, dy );
-    if ( mScrollPosition.y + mScrollSize.height > mContentSize.height )
+    mScrollPosition += Dali::Vector2(dx, dy);
+    if(mScrollPosition.y + mScrollSize.height > mContentSize.height)
     {
-      ConnectToGlobalSignal( &OnScrollEdge );
+      ConnectToGlobalSignal(&OnScrollEdge);
     }
     return true;
   }
 
-  void SetScrollPosition( int32_t x, int32_t y )
+  void SetScrollPosition(int32_t x, int32_t y)
   {
     mScrollPosition.x = x;
     mScrollPosition.y = y;
@@ -1410,21 +1798,30 @@ public:
     return mScaleFactor;
   }
 
+  bool SetVisibility(bool visible)
+  {
+    mVisible = visible;
+    return true;
+  }
+
+  Dali::Accessibility::Address GetAccessibilityAddress()
+  {
+    return {":9.99", "root"};
+  }
+
   Dali::PixelData GetScreenshot(Dali::Rect<int32_t> viewArea, float scaleFactor)
   {
-    uint32_t bufferSize = viewArea.width * viewArea.height * 4 ;
-    uint8_t* pixel = new uint8_t[ bufferSize ];
+    uint32_t bufferSize = viewArea.width * viewArea.height * 4;
+    uint8_t* pixel      = new uint8_t[bufferSize];
     memset(pixel, 0xff, bufferSize);
-    return Dali::PixelData::New( pixel, bufferSize, viewArea.width, viewArea.height,
-                                 Dali::Pixel::Format::RGBA8888,
-                                 Dali::PixelData::ReleaseFunction::DELETE_ARRAY );
+    return Dali::PixelData::New(pixel, bufferSize, viewArea.width, viewArea.height, Dali::Pixel::Format::RGBA8888, Dali::PixelData::ReleaseFunction::DELETE_ARRAY);
   }
 
   bool GetScreenshotAsynchronously(Dali::Rect<int32_t> viewArea, float scaleFactor, Dali::WebEnginePlugin::ScreenshotCapturedCallback callback)
   {
-    if ( callback )
+    if(callback)
     {
-      ConnectToGlobalSignal( &OnScreenshotCaptured );
+      ConnectToGlobalSignal(&OnScreenshotCaptured);
       mScreenshotCapturedCallback = callback;
     }
     return true;
@@ -1432,9 +1829,9 @@ public:
 
   bool CheckVideoPlayingAsynchronously(Dali::WebEnginePlugin::VideoPlayingCallback callback)
   {
-    if ( callback )
+    if(callback)
     {
-      ConnectToGlobalSignal( &OnVideoPlaying );
+      ConnectToGlobalSignal(&OnVideoPlaying);
       mVideoPlayingCallback = callback;
     }
     return true;
@@ -1442,91 +1839,105 @@ public:
 
   void RegisterGeolocationPermissionCallback(Dali::WebEnginePlugin::GeolocationPermissionCallback callback)
   {
-    if ( callback )
+    if(callback)
     {
-      ConnectToGlobalSignal( &OnGeolocationPermission );
+      ConnectToGlobalSignal(&OnGeolocationPermission);
       mGeolocationPermissionCallback = callback;
     }
   }
 
-  Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadStartedSignal()
+  void RegisterFrameRenderedCallback(Dali::WebEnginePlugin::WebEngineFrameRenderedCallback callback)
+  {
+    mFrameRenderedCallback = callback;
+  }
+
+  void RegisterPageLoadStartedCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback)
   {
-    return mPageLoadStartedSignal;
+    mPageLoadStartedCallback = callback;
   }
 
-  Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadInProgressSignal()
+  void RegisterPageLoadInProgressCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback)
   {
-    return mPageLoadInProgressSignal;
+    mPageLoadInProgressCallback = callback;
   }
 
-  Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadFinishedSignal()
+  void RegisterPageLoadFinishedCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback)
   {
-    return mPageLoadFinishedSignal;
+    mPageLoadFinishedCallback = callback;
   }
 
-  Dali::WebEnginePlugin::WebEnginePageLoadErrorSignalType& PageLoadErrorSignal()
+  void RegisterPageLoadErrorCallback(Dali::WebEnginePlugin::WebEnginePageLoadErrorCallback callback)
   {
-    return mPageLoadErrorSignal;
+    mPageLoadErrorCallback = callback;
   }
 
-  Dali::WebEnginePlugin::WebEngineScrollEdgeReachedSignalType& ScrollEdgeReachedSignal()
+  void RegisterScrollEdgeReachedCallback(Dali::WebEnginePlugin::WebEngineScrollEdgeReachedCallback callback)
   {
-    return mScrollEdgeReachedSignal;
+    mScrollEdgeReachedCallback = callback;
   }
 
-  Dali::WebEnginePlugin::WebEngineUrlChangedSignalType& UrlChangedSignal()
+  void RegisterUrlChangedCallback(Dali::WebEnginePlugin::WebEngineUrlChangedCallback callback)
   {
-    return mUrlChangedSignal;
+    mUrlChangedCallback = callback;
   }
 
-  Dali::WebEnginePlugin::WebEngineFormRepostDecisionSignalType& FormRepostDecisionSignal()
+  void RegisterFormRepostDecidedCallback(Dali::WebEnginePlugin::WebEngineFormRepostDecidedCallback callback)
   {
-    return mFormRepostDecisionSignal;
+    mFormRepostDecidedCallback = callback;
   }
 
-  Dali::WebEnginePlugin::WebEngineFrameRenderedSignalType& FrameRenderedSignal()
+  void RegisterConsoleMessageReceivedCallback(Dali::WebEnginePlugin::WebEngineConsoleMessageReceivedCallback callback)
   {
-    return mFrameRenderedSignal;
+    mConsoleMessageCallback = callback;
   }
 
-  Dali::WebEnginePlugin::WebEngineRequestInterceptorSignalType& RequestInterceptorSignal()
+  void RegisterResponsePolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineResponsePolicyDecidedCallback callback)
   {
-    return mRequestInterceptorSignal;
+    mResponsePolicyDecisionCallback = callback;
   }
 
-  Dali::WebEnginePlugin::WebEngineConsoleMessageSignalType& ConsoleMessageSignal()
+  void RegisterNavigationPolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineNavigationPolicyDecidedCallback callback)
   {
-    return mConsoleMessageSignal;
+    mNavigationPolicyDecisionCallback = callback;
   }
 
-  Dali::WebEnginePlugin::WebEngineResponsePolicyDecisionSignalType& ResponsePolicyDecisionSignal()
+  void RegisterNewWindowCreatedCallback(Dali::WebEnginePlugin::WebEngineNewWindowCreatedCallback callback)
   {
-    return mResponsePolicyDecisionSignal;
+    mNewWindowCreatedCallback = callback;
   }
 
-  Dali::WebEnginePlugin::WebEngineCertificateSignalType& CertificateConfirmSignal()
+  void RegisterCertificateConfirmedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback)
   {
-    return mCertificateConfirmSignal;
+    mCertificateConfirmCallback = callback;
   }
 
-  Dali::WebEnginePlugin::WebEngineCertificateSignalType& SslCertificateChangedSignal()
+  void RegisterSslCertificateChangedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback)
   {
-    return mSslCertificateChangedSignal;
+    mSslCertificateChangedCallback = callback;
   }
 
-  Dali::WebEnginePlugin::WebEngineHttpAuthHandlerSignalType& HttpAuthHandlerSignal()
+  void RegisterHttpAuthHandlerCallback(Dali::WebEnginePlugin::WebEngineHttpAuthHandlerCallback callback)
   {
-    return mHttpAuthHandlerSignal;
+    mHttpAuthHandlerCallback = callback;
   }
 
-  Dali::WebEnginePlugin::WebEngineContextMenuCustomizedSignalType& ContextMenuCustomizedSignal()
+  void RegisterContextMenuShownCallback(Dali::WebEnginePlugin::WebEngineContextMenuShownCallback callback)
   {
-    return mContextMenuCustomizedSignal;
+    mContextMenuShownCallback = callback;
   }
 
-  Dali::WebEnginePlugin::WebEngineContextMenuItemSelectedSignalType& ContextMenuItemSelectedSignal()
+  void RegisterContextMenuHiddenCallback(Dali::WebEnginePlugin::WebEngineContextMenuHiddenCallback callback)
   {
-    return mContextMenuItemSelectedSignal;
+    mContextMenuHiddenCallback = callback;
+  }
+
+  void GetPlainTextAsynchronously(Dali::WebEnginePlugin::PlainTextReceivedCallback callback)
+  {
+    if(callback)
+    {
+      ConnectToGlobalSignal(&OnPlainTextReceived);
+      mPlainTextReceivedCallback = callback;
+    }
   }
 
   std::string              mUrl;
@@ -1534,55 +1945,54 @@ public:
   size_t                   mCurrentPlusOnePos;
   std::string              mUserAgent;
 
-  Dali::WebEnginePlugin::WebEnginePageLoadSignalType                mPageLoadStartedSignal;
-  Dali::WebEnginePlugin::WebEnginePageLoadSignalType                mPageLoadInProgressSignal;
-  Dali::WebEnginePlugin::WebEnginePageLoadSignalType                mPageLoadFinishedSignal;
-  Dali::WebEnginePlugin::WebEnginePageLoadErrorSignalType           mPageLoadErrorSignal;
-  Dali::WebEnginePlugin::WebEngineScrollEdgeReachedSignalType       mScrollEdgeReachedSignal;
-  Dali::WebEnginePlugin::WebEngineUrlChangedSignalType              mUrlChangedSignal;
-  Dali::WebEnginePlugin::WebEngineFormRepostDecisionSignalType      mFormRepostDecisionSignal;
-  Dali::WebEnginePlugin::WebEngineFrameRenderedSignalType           mFrameRenderedSignal;
-  Dali::WebEnginePlugin::WebEngineRequestInterceptorSignalType      mRequestInterceptorSignal;
-  Dali::WebEnginePlugin::WebEngineConsoleMessageSignalType          mConsoleMessageSignal;
-  Dali::WebEnginePlugin::WebEngineResponsePolicyDecisionSignalType  mResponsePolicyDecisionSignal;
-  Dali::WebEnginePlugin::WebEngineCertificateSignalType             mCertificateConfirmSignal;
-  Dali::WebEnginePlugin::WebEngineCertificateSignalType             mSslCertificateChangedSignal;
-  Dali::WebEnginePlugin::WebEngineHttpAuthHandlerSignalType         mHttpAuthHandlerSignal;
-  Dali::WebEnginePlugin::WebEngineContextMenuCustomizedSignalType   mContextMenuCustomizedSignal;
-  Dali::WebEnginePlugin::WebEngineContextMenuItemSelectedSignalType mContextMenuItemSelectedSignal;
-
   bool  mEvaluating;
   float mPageZoomFactor;
   float mTextZoomFactor;
   float mScaleFactor;
+  bool  mVisible;
 
   Dali::Vector2             mScrollPosition;
   Dali::Vector2             mScrollSize;
   Dali::Vector2             mContentSize;
   WebEngineBackForwardList* mockWebEngineBackForwardList;
-  WebEngineContext*         mockWebEngineContext;
-  WebEngineCookieManager*   mockWebEngineCookieManager;
   WebEngineSettings*        mockWebEngineSettings;
 
-  std::vector<JavaScriptEvaluatedResultCallback>         mResultCallbacks;
-  Dali::WebEnginePlugin::JavaScriptAlertCallback         mJavaScriptAlertCallback;
-  Dali::WebEnginePlugin::JavaScriptConfirmCallback       mJavaScriptConfirmCallback;
-  Dali::WebEnginePlugin::JavaScriptPromptCallback        mJavaScriptPromptCallback;
-  Dali::WebEnginePlugin::ScreenshotCapturedCallback      mScreenshotCapturedCallback;
-  Dali::WebEnginePlugin::VideoPlayingCallback            mVideoPlayingCallback;
-  Dali::WebEnginePlugin::GeolocationPermissionCallback   mGeolocationPermissionCallback;
-  Dali::WebEnginePlugin::WebEngineHitTestCreatedCallback mHitTestCreatedCallback;
+  std::vector<Dali::WebEnginePlugin::JavaScriptMessageHandlerCallback> mResultCallbacks;
+
+  Dali::WebEnginePlugin::WebEnginePageLoadCallback                mPageLoadStartedCallback;
+  Dali::WebEnginePlugin::WebEnginePageLoadCallback                mPageLoadInProgressCallback;
+  Dali::WebEnginePlugin::WebEnginePageLoadCallback                mPageLoadFinishedCallback;
+  Dali::WebEnginePlugin::WebEnginePageLoadErrorCallback           mPageLoadErrorCallback;
+  Dali::WebEnginePlugin::WebEngineScrollEdgeReachedCallback       mScrollEdgeReachedCallback;
+  Dali::WebEnginePlugin::WebEngineUrlChangedCallback              mUrlChangedCallback;
+  Dali::WebEnginePlugin::WebEngineFormRepostDecidedCallback       mFormRepostDecidedCallback;
+  Dali::WebEnginePlugin::WebEngineFrameRenderedCallback           mFrameRenderedCallback;
+  Dali::WebEnginePlugin::WebEngineConsoleMessageReceivedCallback  mConsoleMessageCallback;
+  Dali::WebEnginePlugin::WebEngineResponsePolicyDecidedCallback   mResponsePolicyDecisionCallback;
+  Dali::WebEnginePlugin::WebEngineNavigationPolicyDecidedCallback mNavigationPolicyDecisionCallback;
+  Dali::WebEnginePlugin::WebEngineNewWindowCreatedCallback        mNewWindowCreatedCallback;
+  Dali::WebEnginePlugin::WebEngineCertificateCallback             mCertificateConfirmCallback;
+  Dali::WebEnginePlugin::WebEngineCertificateCallback             mSslCertificateChangedCallback;
+  Dali::WebEnginePlugin::WebEngineHttpAuthHandlerCallback         mHttpAuthHandlerCallback;
+  Dali::WebEnginePlugin::WebEngineContextMenuShownCallback        mContextMenuShownCallback;
+  Dali::WebEnginePlugin::WebEngineContextMenuHiddenCallback       mContextMenuHiddenCallback;
+  Dali::WebEnginePlugin::JavaScriptAlertCallback                  mJavaScriptAlertCallback;
+  Dali::WebEnginePlugin::JavaScriptConfirmCallback                mJavaScriptConfirmCallback;
+  Dali::WebEnginePlugin::JavaScriptPromptCallback                 mJavaScriptPromptCallback;
+  Dali::WebEnginePlugin::ScreenshotCapturedCallback               mScreenshotCapturedCallback;
+  Dali::WebEnginePlugin::VideoPlayingCallback                     mVideoPlayingCallback;
+  Dali::WebEnginePlugin::GeolocationPermissionCallback            mGeolocationPermissionCallback;
+  Dali::WebEnginePlugin::WebEngineHitTestCreatedCallback          mHitTestCreatedCallback;
+  Dali::WebEnginePlugin::PlainTextReceivedCallback                mPlainTextReceivedCallback;
 };
 
-
 namespace
 {
-
 bool OnGoBack()
 {
-  DisconnectFromGlobalSignal( &OnGoBack );
+  DisconnectFromGlobalSignal(&OnGoBack);
 
-  if( gInstance && gInstance->CanGoBack() )
+  if(gInstance && gInstance->CanGoBack())
   {
     gInstance->mCurrentPlusOnePos--;
   }
@@ -1591,9 +2001,9 @@ bool OnGoBack()
 
 bool OnGoForward()
 {
-  DisconnectFromGlobalSignal( &OnGoForward );
+  DisconnectFromGlobalSignal(&OnGoForward);
 
-  if( gInstance && gInstance->CanGoForward() )
+  if(gInstance && gInstance->CanGoForward())
   {
     gInstance->mCurrentPlusOnePos++;
   }
@@ -1602,56 +2012,102 @@ bool OnGoForward()
 
 bool OnLoadUrl()
 {
-  DisconnectFromGlobalSignal( &OnLoadUrl );
+  DisconnectFromGlobalSignal(&OnLoadUrl);
 
-  if( gInstance )
+  if(gInstance)
   {
-    if( gInstance->mHistory.size() > gInstance->mCurrentPlusOnePos )
+    if(gInstance->mHistory.size() > gInstance->mCurrentPlusOnePos)
     {
-      gInstance->mHistory.erase( gInstance->mHistory.begin() + gInstance->mCurrentPlusOnePos, gInstance->mHistory.end() );
+      gInstance->mHistory.erase(gInstance->mHistory.begin() + gInstance->mCurrentPlusOnePos, gInstance->mHistory.end());
     }
-    gInstance->mHistory.push_back( gInstance->mUrl );
+    gInstance->mHistory.push_back(gInstance->mUrl);
     gInstance->mCurrentPlusOnePos++;
-    gInstance->mPageLoadStartedSignal.Emit( gInstance->mUrl );
-    gInstance->mPageLoadInProgressSignal.Emit( gInstance->mUrl );
-    gInstance->mPageLoadFinishedSignal.Emit( gInstance->mUrl );
-    gInstance->mUrlChangedSignal.Emit( "http://new-test" );
-
-    std::shared_ptr<Dali::WebEngineFormRepostDecision> repostDecision(new MockWebEngineFormRepostDecision());
-    gInstance->mFormRepostDecisionSignal.Emit(std::move(repostDecision));
-    gInstance->mFrameRenderedSignal.Emit();
-    std::shared_ptr<Dali::WebEngineRequestInterceptor> interceptor(new MockWebEngineRequestInterceptor());
-    gInstance->mRequestInterceptorSignal.Emit(std::move(interceptor));
-
-    std::shared_ptr<Dali::WebEngineLoadError> error(new MockWebEngineLoadError(gInstance->mUrl));
-    gInstance->mPageLoadErrorSignal.Emit(std::move(error));
-    std::shared_ptr<Dali::WebEngineConsoleMessage> message(new MockWebEngineConsoleMessage());
-    gInstance->mConsoleMessageSignal.Emit(std::move(message));
-    std::shared_ptr<Dali::WebEnginePolicyDecision> policyDecision(new MockWebEnginePolicyDecision());
-    gInstance->mResponsePolicyDecisionSignal.Emit(std::move(policyDecision));
-
-    std::shared_ptr<Dali::WebEngineCertificate> certificate(new MockWebEngineCertificate());
-    gInstance->mCertificateConfirmSignal.Emit(std::move(certificate));
-    std::shared_ptr<Dali::WebEngineCertificate> sslCertificate(new MockWebEngineCertificate());
-    gInstance->mSslCertificateChangedSignal.Emit(std::move(sslCertificate));
-    std::shared_ptr<Dali::WebEngineHttpAuthHandler> handler(new MockWebEngineHttpAuthHandler());
-    gInstance->mHttpAuthHandlerSignal.Emit(std::move(handler));
-
-    std::shared_ptr<Dali::WebEngineContextMenu> menu(new MockWebEngineContextMenu());
-    gInstance->mContextMenuCustomizedSignal.Emit(std::move(menu));
-    std::shared_ptr<Dali::WebEngineContextMenuItem> item(new MockWebEngineContextMenuItem());
-    gInstance->mContextMenuItemSelectedSignal.Emit(std::move(item));
+    if(gInstance->mPageLoadStartedCallback)
+    {
+      gInstance->mPageLoadStartedCallback(gInstance->mUrl);
+    }
+    if(gInstance->mPageLoadInProgressCallback)
+    {
+      gInstance->mPageLoadInProgressCallback(gInstance->mUrl);
+    }
+    if(gInstance->mPageLoadFinishedCallback)
+    {
+      gInstance->mPageLoadFinishedCallback(gInstance->mUrl);
+    }
+    if(gInstance->mPageLoadErrorCallback)
+    {
+      std::unique_ptr<Dali::WebEngineLoadError> error(new MockWebEngineLoadError(gInstance->mUrl));
+      gInstance->mPageLoadErrorCallback(std::move(error));
+    }
+    if(gInstance->mUrlChangedCallback)
+    {
+      gInstance->mUrlChangedCallback("http://new-test");
+    }
+    if(gInstance->mFormRepostDecidedCallback)
+    {
+      std::unique_ptr<Dali::WebEngineFormRepostDecision> repostDecision(new MockWebEngineFormRepostDecision());
+      gInstance->mFormRepostDecidedCallback(std::move(repostDecision));
+    }
+    if(gInstance->mFrameRenderedCallback)
+    {
+      gInstance->mFrameRenderedCallback();
+    }
+    if(gInstance->mConsoleMessageCallback)
+    {
+      std::unique_ptr<Dali::WebEngineConsoleMessage> message(new MockWebEngineConsoleMessage());
+      gInstance->mConsoleMessageCallback(std::move(message));
+    }
+    if(gInstance->mResponsePolicyDecisionCallback)
+    {
+      std::unique_ptr<Dali::WebEnginePolicyDecision> policyDecision(new MockWebEnginePolicyDecision());
+      gInstance->mResponsePolicyDecisionCallback(std::move(policyDecision));
+    }
+    if(gInstance->mNavigationPolicyDecisionCallback)
+    {
+      std::unique_ptr<Dali::WebEnginePolicyDecision> policyDecision(new MockWebEnginePolicyDecision());
+      gInstance->mNavigationPolicyDecisionCallback(std::move(policyDecision));
+    }
+    if(gInstance->mNewWindowCreatedCallback)
+    {
+      Dali::WebEnginePlugin* plugin = 0;
+      gInstance->mNewWindowCreatedCallback(plugin);
+    }
+    if(gInstance->mCertificateConfirmCallback)
+    {
+      std::unique_ptr<Dali::WebEngineCertificate> certificate(new MockWebEngineCertificate());
+      gInstance->mCertificateConfirmCallback(std::move(certificate));
+    }
+    if(gInstance->mSslCertificateChangedCallback)
+    {
+      std::unique_ptr<Dali::WebEngineCertificate> sslCertificate(new MockWebEngineCertificate());
+      gInstance->mSslCertificateChangedCallback(std::move(sslCertificate));
+    }
+    if(gInstance->mHttpAuthHandlerCallback)
+    {
+      std::unique_ptr<Dali::WebEngineHttpAuthHandler> handler(new MockWebEngineHttpAuthHandler());
+      gInstance->mHttpAuthHandlerCallback(std::move(handler));
+    }
+    if(gInstance->mContextMenuShownCallback)
+    {
+      std::unique_ptr<Dali::WebEngineContextMenu> menu(new MockWebEngineContextMenu());
+      gInstance->mContextMenuShownCallback(std::move(menu));
+    }
+    if(gInstance->mContextMenuHiddenCallback)
+    {
+      std::unique_ptr<Dali::WebEngineContextMenu> hiddenMenu(new MockWebEngineContextMenu());
+      gInstance->mContextMenuHiddenCallback(std::move(hiddenMenu));
+    }
   }
   return false;
 }
 
 bool OnScrollEdge()
 {
-  DisconnectFromGlobalSignal( &OnScrollEdge );
+  DisconnectFromGlobalSignal(&OnScrollEdge);
 
-  if( gInstance )
+  if(gInstance && gInstance->mScrollEdgeReachedCallback)
   {
-    gInstance->mScrollEdgeReachedSignal.Emit( Dali::WebEnginePlugin::ScrollEdge::BOTTOM );
+    gInstance->mScrollEdgeReachedCallback(Dali::WebEnginePlugin::ScrollEdge::BOTTOM);
   }
 
   return false;
@@ -1659,11 +2115,11 @@ bool OnScrollEdge()
 
 bool OnEvaluteJavaScript()
 {
-  DisconnectFromGlobalSignal( &OnEvaluteJavaScript );
+  DisconnectFromGlobalSignal(&OnEvaluteJavaScript);
 
-  if( gInstance )
+  if(gInstance)
   {
-    for( auto& func : gInstance->mResultCallbacks )
+    for(auto& func : gInstance->mResultCallbacks)
     {
       func("undefined");
     }
@@ -1674,65 +2130,63 @@ bool OnEvaluteJavaScript()
 
 bool OnJavaScriptAlert()
 {
-  DisconnectFromGlobalSignal( &OnJavaScriptAlert );
-  if ( gInstance )
+  DisconnectFromGlobalSignal(&OnJavaScriptAlert);
+  if(gInstance)
   {
-    gInstance->mJavaScriptAlertCallback( "this is an alert popup." );
+    gInstance->mJavaScriptAlertCallback("this is an alert popup.");
   }
   return false;
 }
 
 bool OnJavaScriptConfirm()
 {
-  DisconnectFromGlobalSignal( &OnJavaScriptConfirm );
-  if ( gInstance )
+  DisconnectFromGlobalSignal(&OnJavaScriptConfirm);
+  if(gInstance)
   {
-    gInstance->mJavaScriptConfirmCallback( "this is a confirm popup." );
+    gInstance->mJavaScriptConfirmCallback("this is a confirm popup.");
   }
   return false;
 }
 
 bool OnJavaScriptPrompt()
 {
-  DisconnectFromGlobalSignal( &OnJavaScriptPrompt );
-  if ( gInstance )
+  DisconnectFromGlobalSignal(&OnJavaScriptPrompt);
+  if(gInstance)
   {
-    gInstance->mJavaScriptPromptCallback( "this is a prompt pompt.", "" );
+    gInstance->mJavaScriptPromptCallback("this is a prompt pompt.", "");
   }
   return false;
 }
 
 bool OnScreenshotCaptured()
 {
-  DisconnectFromGlobalSignal( &OnScreenshotCaptured );
-  if ( gInstance )
+  DisconnectFromGlobalSignal(&OnScreenshotCaptured);
+  if(gInstance)
   {
-    uint8_t* pixel = new uint8_t[ 2 * 2 * 4 ];
+    uint8_t* pixel = new uint8_t[2 * 2 * 4];
     memset(pixel, 0xff, 2 * 2 * 4);
-    Dali::PixelData data = Dali::PixelData::New( pixel, 2 * 2 * 4, 2, 2,
-                                 Dali::Pixel::Format::RGBA8888,
-                                 Dali::PixelData::ReleaseFunction::DELETE_ARRAY );
-    gInstance->mScreenshotCapturedCallback( data );
+    Dali::PixelData data = Dali::PixelData::New(pixel, 2 * 2 * 4, 2, 2, Dali::Pixel::Format::RGBA8888, Dali::PixelData::ReleaseFunction::DELETE_ARRAY);
+    gInstance->mScreenshotCapturedCallback(data);
   }
   return false;
 }
 
 bool OnVideoPlaying()
 {
-  DisconnectFromGlobalSignal( &OnVideoPlaying );
-  if ( gInstance )
+  DisconnectFromGlobalSignal(&OnVideoPlaying);
+  if(gInstance)
   {
-    gInstance->mVideoPlayingCallback( true );
+    gInstance->mVideoPlayingCallback(true);
   }
   return false;
 }
 
 bool OnGeolocationPermission()
 {
-  DisconnectFromGlobalSignal( &OnGeolocationPermission );
-  if ( gInstance )
+  DisconnectFromGlobalSignal(&OnGeolocationPermission);
+  if(gInstance)
   {
-    gInstance->mGeolocationPermissionCallback( "", "" );
+    gInstance->mGeolocationPermissionCallback("", "");
   }
   return false;
 }
@@ -1740,7 +2194,7 @@ bool OnGeolocationPermission()
 bool OnHitTestCreated()
 {
   DisconnectFromGlobalSignal(&OnHitTestCreated);
-  if (gInstance)
+  if(gInstance)
   {
     std::unique_ptr<Dali::WebEngineHitTest> test(new MockWebEngineHitTest());
     gInstance->mHitTestCreatedCallback(std::move(test));
@@ -1750,13 +2204,13 @@ bool OnHitTestCreated()
 
 bool OnClearHistory()
 {
-  DisconnectFromGlobalSignal( &OnClearHistory );
+  DisconnectFromGlobalSignal(&OnClearHistory);
 
-  if( gInstance && gInstance->mCurrentPlusOnePos )
+  if(gInstance && gInstance->mCurrentPlusOnePos)
   {
-    std::string url = gInstance->mHistory[ gInstance->mCurrentPlusOnePos - 1 ];
-    std::vector< std::string >().swap( gInstance->mHistory );
-    gInstance->mHistory.push_back( url );
+    std::string url = gInstance->mHistory[gInstance->mCurrentPlusOnePos - 1];
+    std::vector<std::string>().swap(gInstance->mHistory);
+    gInstance->mHistory.push_back(url);
     gInstance->mCurrentPlusOnePos = 1;
   }
   return false;
@@ -1765,10 +2219,10 @@ bool OnClearHistory()
 bool OnSecurityOriginAcquired()
 {
   DisconnectFromGlobalSignal(&OnSecurityOriginAcquired);
-  if (gWebEngineContextInstance)
+  if(gWebEngineContextInstance)
   {
     std::vector<std::unique_ptr<Dali::WebEngineSecurityOrigin>> securityOriginList;
-    std::unique_ptr<Dali::WebEngineSecurityOrigin> origin(new MockWebEngineSecurityOrigin());
+    std::unique_ptr<Dali::WebEngineSecurityOrigin>              origin(new MockWebEngineSecurityOrigin());
     securityOriginList.push_back(std::move(origin));
     gWebEngineContextInstance->mSecurityOriginAcquiredCallback(securityOriginList);
   }
@@ -1778,7 +2232,7 @@ bool OnSecurityOriginAcquired()
 bool OnStorageUsageAcquired()
 {
   DisconnectFromGlobalSignal(&OnStorageUsageAcquired);
-  if (gWebEngineContextInstance)
+  if(gWebEngineContextInstance)
   {
     gWebEngineContextInstance->mStorageUsageAcquiredCallback(0);
   }
@@ -1788,11 +2242,11 @@ bool OnStorageUsageAcquired()
 bool OnFormPasswordAcquired()
 {
   DisconnectFromGlobalSignal(&OnFormPasswordAcquired);
-  if (gWebEngineContextInstance)
+  if(gWebEngineContextInstance)
   {
     std::vector<std::unique_ptr<Dali::WebEngineContext::PasswordData>> formPasswordList;
-    std::unique_ptr<Dali::WebEngineContext::PasswordData> data(new Dali::WebEngineContext::PasswordData());
-    data->url = "http://test.html";
+    std::unique_ptr<Dali::WebEngineContext::PasswordData>              data(new Dali::WebEngineContext::PasswordData());
+    data->url            = "http://test.html";
     data->useFingerprint = false;
     formPasswordList.push_back(std::move(data));
     gWebEngineContextInstance->mFormPasswordAcquiredCallback(formPasswordList);
@@ -1803,7 +2257,7 @@ bool OnFormPasswordAcquired()
 bool OnDownloadStarted()
 {
   DisconnectFromGlobalSignal(&OnDownloadStarted);
-  if (gWebEngineContextInstance)
+  if(gWebEngineContextInstance)
   {
     gWebEngineContextInstance->mDownloadStartedCallback("http://test.html");
   }
@@ -1813,7 +2267,7 @@ bool OnDownloadStarted()
 bool OnMimeOverridden()
 {
   DisconnectFromGlobalSignal(&OnMimeOverridden);
-  if (gWebEngineContextInstance)
+  if(gWebEngineContextInstance)
   {
     std::string newMime;
     gWebEngineContextInstance->mMimeOverriddenCallback("http://test.html", "txt/xml", newMime);
@@ -1821,36 +2275,52 @@ bool OnMimeOverridden()
   return false;
 }
 
-bool OnChangesWatch()
+bool OnRequestIntercepted()
 {
-  DisconnectFromGlobalSignal( &OnChangesWatch );
+  DisconnectFromGlobalSignal(&OnRequestIntercepted);
+  if(gWebEngineContextInstance)
+  {
+    Dali::WebEngineRequestInterceptorPtr interceptor = new MockWebEngineRequestInterceptor();
+    gWebEngineContextInstance->mRequestInterceptedCallback(interceptor);
+  }
+  return false;
+}
 
-  if ( gInstance )
+bool OnChangesWatch()
+{
+  DisconnectFromGlobalSignal(&OnChangesWatch);
+  if(gMockWebEngineCookieManager)
   {
-    MockWebEngineCookieManager* temp = (MockWebEngineCookieManager *)(&(gInstance->GetCookieManager()));
-    if ( temp )
-    {
-      temp->mChangesWatchCallback();
-    }
+    gMockWebEngineCookieManager->mChangesWatchCallback();
   }
+  return false;
+}
 
+bool OnPlainTextReceived()
+{
+  DisconnectFromGlobalSignal(&OnPlainTextReceived);
+  if(gInstance)
+  {
+    std::string dummyResultText;
+    gInstance->mPlainTextReceivedCallback(dummyResultText);
+  }
   return false;
 }
 
 } // namespace
 
-inline WebEngine& GetImplementation( Dali::WebEngine& webEngine )
+inline WebEngine& GetImplementation(Dali::WebEngine& webEngine)
 {
-  DALI_ASSERT_ALWAYS( webEngine && "WebEngine handle is empty." );
+  DALI_ASSERT_ALWAYS(webEngine && "WebEngine handle is empty.");
   BaseObject& handle = webEngine.GetBaseObject();
-  return static_cast< Internal::Adaptor::WebEngine& >( handle );
+  return static_cast<Internal::Adaptor::WebEngine&>(handle);
 }
 
-inline const WebEngine& GetImplementation( const Dali::WebEngine& webEngine )
+inline const WebEngine& GetImplementation(const Dali::WebEngine& webEngine)
 {
-  DALI_ASSERT_ALWAYS( webEngine && "WebEngine handle is empty." );
+  DALI_ASSERT_ALWAYS(webEngine && "WebEngine handle is empty.");
   const BaseObject& handle = webEngine.GetBaseObject();
-  return static_cast< const Internal::Adaptor::WebEngine& >( handle );
+  return static_cast<const Internal::Adaptor::WebEngine&>(handle);
 }
 
 } // namespace Adaptor
@@ -1862,8 +2332,8 @@ WebEngine::WebEngine()
 {
 }
 
-WebEngine::WebEngine( Internal::Adaptor::WebEngine* internal )
-: BaseHandle( internal )
+WebEngine::WebEngine(Internal::Adaptor::WebEngine* internal)
+: BaseHandle(internal)
 {
 }
 
@@ -1875,85 +2345,90 @@ WebEngine WebEngine::New()
 {
   Internal::Adaptor::WebEngine* baseObject = new Internal::Adaptor::WebEngine();
 
-  return WebEngine( baseObject );
+  return WebEngine(baseObject);
 }
 
-WebEngine::WebEngine( const WebEngine& WebEngine )
-: BaseHandle( WebEngine )
+Dali::WebEngineContext* WebEngine::GetContext()
 {
+  return Internal::Adaptor::GetContext();
 }
 
-WebEngine& WebEngine::operator=( const WebEngine& webEngine )
+Dali::WebEngineCookieManager* WebEngine::GetCookieManager()
 {
-  BaseHandle::operator=( webEngine );
-  return *this;
+  return Internal::Adaptor::GetCookieManager();
 }
 
-WebEngine WebEngine::DownCast( BaseHandle handle )
+WebEngine::WebEngine(const WebEngine& WebEngine)
+: BaseHandle(WebEngine)
 {
-  return WebEngine( dynamic_cast< Internal::Adaptor::WebEngine* >( handle.GetObjectPtr() ) );
 }
 
-void WebEngine::Create( uint32_t width, uint32_t height, const std::string& locale, const std::string& timezoneId )
+WebEngine& WebEngine::operator=(const WebEngine& webEngine)
 {
+  BaseHandle::operator=(webEngine);
+  return *this;
 }
 
-void WebEngine::Create( uint32_t width, uint32_t height, uint32_t argc, char** argv )
+WebEngine WebEngine::DownCast(BaseHandle handle)
 {
+  return WebEngine(dynamic_cast<Internal::Adaptor::WebEngine*>(handle.GetObjectPtr()));
 }
 
-void WebEngine::Destroy()
+void WebEngine::Create(uint32_t width, uint32_t height, const std::string& locale, const std::string& timezoneId)
 {
 }
 
-WebEngineSettings& WebEngine::GetSettings() const
+void WebEngine::Create(uint32_t width, uint32_t height, uint32_t argc, char** argv)
 {
-  return Internal::Adaptor::GetImplementation( *this ).GetSettings();
 }
 
-WebEngineContext& WebEngine::GetContext() const
+void WebEngine::Destroy()
 {
-  return Internal::Adaptor::GetImplementation( *this ).GetContext();
 }
 
-WebEngineCookieManager& WebEngine::GetCookieManager() const
+WebEngineSettings& WebEngine::GetSettings() const
 {
-  return Internal::Adaptor::GetImplementation( *this ).GetCookieManager();
+  return Internal::Adaptor::GetImplementation(*this).GetSettings();
 }
 
 WebEngineBackForwardList& WebEngine::GetBackForwardList() const
 {
-  return Internal::Adaptor::GetImplementation( *this ).GetBackForwardList();
+  return Internal::Adaptor::GetImplementation(*this).GetBackForwardList();
 }
 
-void WebEngine::LoadUrl( const std::string& url )
+void WebEngine::LoadUrl(const std::string& url)
 {
-  return Internal::Adaptor::GetImplementation( *this ).LoadUrl( url );
+  return Internal::Adaptor::GetImplementation(*this).LoadUrl(url);
 }
 
 std::string WebEngine::GetTitle() const
 {
-  return Internal::Adaptor::GetImplementation( *this ).GetTitle();
+  return Internal::Adaptor::GetImplementation(*this).GetTitle();
 }
 
 Dali::PixelData WebEngine::GetFavicon() const
 {
-  return Internal::Adaptor::GetImplementation( *this ).GetFavicon();
+  return Internal::Adaptor::GetImplementation(*this).GetFavicon();
 }
 
-const std::string& WebEngine::GetUrl()
+std::string WebEngine::GetUrl() const
 {
-  return Internal::Adaptor::GetImplementation( *this ).GetUrl();
+  return Internal::Adaptor::GetImplementation(*this).GetUrl();
 }
 
-NativeImageInterfacePtr WebEngine::GetNativeImageSource()
+Dali::WebEnginePlugin* WebEngine::GetPlugin() const
 {
-  Any source;
-  Dali::NativeImageSourcePtr sourcePtr = Dali::NativeImageSource::New( source );
+  return Internal::Adaptor::GetWebEnginePlugin();
+}
+
+NativeImageSourcePtr WebEngine::GetNativeImageSource()
+{
+  Any                        source;
+  Dali::NativeImageSourcePtr sourcePtr = Dali::NativeImageSource::New(source);
   return sourcePtr;
 }
 
-void WebEngine::LoadHtmlString( const std::string& htmlString )
+void WebEngine::LoadHtmlString(const std::string& htmlString)
 {
 }
 
@@ -1962,7 +2437,7 @@ bool WebEngine::LoadHtmlStringOverrideCurrentEntry(const std::string& html, cons
   return true;
 }
 
-bool WebEngine::LoadContents(const std::string& contents, uint32_t contentSize, const std::string& mimeType, const std::string& encoding, const std::string& baseUri)
+bool WebEngine::LoadContents(const int8_t* contents, uint32_t contentSize, const std::string& mimeType, const std::string& encoding, const std::string& baseUri)
 {
   return true;
 }
@@ -2018,57 +2493,57 @@ bool WebEngine::StopInspectorServer()
 
 bool WebEngine::CanGoForward()
 {
-  return Internal::Adaptor::GetImplementation( *this ).CanGoForward();
+  return Internal::Adaptor::GetImplementation(*this).CanGoForward();
 }
 
 void WebEngine::GoForward()
 {
-  Internal::Adaptor::GetImplementation( *this ).GoForward();
+  Internal::Adaptor::GetImplementation(*this).GoForward();
 }
 
 bool WebEngine::CanGoBack()
 {
-  return Internal::Adaptor::GetImplementation( *this ).CanGoBack();
+  return Internal::Adaptor::GetImplementation(*this).CanGoBack();
 }
 
 void WebEngine::GoBack()
 {
-  Internal::Adaptor::GetImplementation( *this ).GoBack();
+  Internal::Adaptor::GetImplementation(*this).GoBack();
 }
 
-void WebEngine::EvaluateJavaScript( const std::string& script, std::function< void( const std::string& ) > resultHandler )
+void WebEngine::EvaluateJavaScript(const std::string& script, std::function<void(const std::string&)> resultHandler)
 {
-  Internal::Adaptor::GetImplementation( *this ).EvaluateJavaScript( script, resultHandler );
+  Internal::Adaptor::GetImplementation(*this).EvaluateJavaScript(script, resultHandler);
 }
 
-void WebEngine::AddJavaScriptMessageHandler( const std::string& exposedObjectName, std::function< void(const std::string&) > handler )
+void WebEngine::AddJavaScriptMessageHandler(const std::string& exposedObjectName, std::function<void(const std::string&)> handler)
 {
 }
 
-void WebEngine::RegisterJavaScriptAlertCallback( Dali::WebEnginePlugin::JavaScriptAlertCallback callback )
+void WebEngine::RegisterJavaScriptAlertCallback(Dali::WebEnginePlugin::JavaScriptAlertCallback callback)
 {
-  Internal::Adaptor::GetImplementation( *this ).RegisterJavaScriptAlertCallback( callback );
+  Internal::Adaptor::GetImplementation(*this).RegisterJavaScriptAlertCallback(callback);
 }
 
 void WebEngine::JavaScriptAlertReply()
 {
 }
 
-void WebEngine::RegisterJavaScriptConfirmCallback( Dali::WebEnginePlugin::JavaScriptConfirmCallback callback )
+void WebEngine::RegisterJavaScriptConfirmCallback(Dali::WebEnginePlugin::JavaScriptConfirmCallback callback)
 {
-  Internal::Adaptor::GetImplementation( *this ).RegisterJavaScriptConfirmCallback( callback );
+  Internal::Adaptor::GetImplementation(*this).RegisterJavaScriptConfirmCallback(callback);
 }
 
-void WebEngine::JavaScriptConfirmReply( bool confirmed )
+void WebEngine::JavaScriptConfirmReply(bool confirmed)
 {
 }
 
-void WebEngine::RegisterJavaScriptPromptCallback( Dali::WebEnginePlugin::JavaScriptPromptCallback callback )
+void WebEngine::RegisterJavaScriptPromptCallback(Dali::WebEnginePlugin::JavaScriptPromptCallback callback)
 {
-  Internal::Adaptor::GetImplementation( *this ).RegisterJavaScriptPromptCallback( callback );
+  Internal::Adaptor::GetImplementation(*this).RegisterJavaScriptPromptCallback(callback);
 }
 
-void WebEngine::JavaScriptPromptReply( const std::string& result )
+void WebEngine::JavaScriptPromptReply(const std::string& result)
 {
 }
 
@@ -2088,23 +2563,33 @@ void WebEngine::ClearAllTilesResources()
 
 void WebEngine::ClearHistory()
 {
-  Internal::Adaptor::GetImplementation( *this ).ClearHistory();
+  Internal::Adaptor::GetImplementation(*this).ClearHistory();
 }
 
 void WebEngine::SetScaleFactor(float scaleFactor, Dali::Vector2 point)
 {
-  Internal::Adaptor::GetImplementation( *this ).SetScaleFactor(scaleFactor, point);
+  Internal::Adaptor::GetImplementation(*this).SetScaleFactor(scaleFactor, point);
 }
 
 float WebEngine::GetScaleFactor() const
 {
-  return Internal::Adaptor::GetImplementation( *this ).GetScaleFactor();
+  return Internal::Adaptor::GetImplementation(*this).GetScaleFactor();
+}
+
+bool WebEngine::SetVisibility(bool visible)
+{
+  return Internal::Adaptor::GetImplementation(*this).SetVisibility(visible);
 }
 
 void WebEngine::ActivateAccessibility(bool activated)
 {
 }
 
+Accessibility::Address WebEngine::GetAccessibilityAddress()
+{
+  return Internal::Adaptor::GetImplementation(*this).GetAccessibilityAddress();
+}
+
 bool WebEngine::HighlightText(const std::string& text, Dali::WebEnginePlugin::FindOption options, uint32_t maxMatchCount)
 {
   return true;
@@ -2116,65 +2601,65 @@ void WebEngine::AddDynamicCertificatePath(const std::string& host, const std::st
 
 Dali::PixelData WebEngine::GetScreenshot(Dali::Rect<int32_t> viewArea, float scaleFactor)
 {
-  return Internal::Adaptor::GetImplementation( *this ).GetScreenshot(viewArea, scaleFactor);
+  return Internal::Adaptor::GetImplementation(*this).GetScreenshot(viewArea, scaleFactor);
 }
 
 bool WebEngine::GetScreenshotAsynchronously(Dali::Rect<int32_t> viewArea, float scaleFactor, Dali::WebEnginePlugin::ScreenshotCapturedCallback callback)
 {
-  return Internal::Adaptor::GetImplementation( *this ).GetScreenshotAsynchronously(viewArea, scaleFactor, callback);
+  return Internal::Adaptor::GetImplementation(*this).GetScreenshotAsynchronously(viewArea, scaleFactor, callback);
 }
 
 bool WebEngine::CheckVideoPlayingAsynchronously(Dali::WebEnginePlugin::VideoPlayingCallback callback)
 {
-  return Internal::Adaptor::GetImplementation( *this ).CheckVideoPlayingAsynchronously(callback);
+  return Internal::Adaptor::GetImplementation(*this).CheckVideoPlayingAsynchronously(callback);
 }
 
 void WebEngine::RegisterGeolocationPermissionCallback(Dali::WebEnginePlugin::GeolocationPermissionCallback callback)
 {
-  Internal::Adaptor::GetImplementation( *this ).RegisterGeolocationPermissionCallback(callback);
+  Internal::Adaptor::GetImplementation(*this).RegisterGeolocationPermissionCallback(callback);
 }
 
-const std::string& WebEngine::GetUserAgent() const
+std::string WebEngine::GetUserAgent() const
 {
-  return Internal::Adaptor::GetImplementation( *this ).GetUserAgent();
+  return Internal::Adaptor::GetImplementation(*this).GetUserAgent();
 }
 
-void WebEngine::SetUserAgent( const std::string& userAgent )
+void WebEngine::SetUserAgent(const std::string& userAgent)
 {
-  Internal::Adaptor::GetImplementation( *this ).SetUserAgent( userAgent );
+  Internal::Adaptor::GetImplementation(*this).SetUserAgent(userAgent);
 }
 
-void WebEngine::ScrollBy( int32_t dx, int32_t dy )
+void WebEngine::ScrollBy(int32_t dx, int32_t dy)
 {
-  Internal::Adaptor::GetImplementation( *this ).ScrollBy( dx, dy );
+  Internal::Adaptor::GetImplementation(*this).ScrollBy(dx, dy);
 }
 
-bool WebEngine::ScrollEdgeBy( int32_t dx, int32_t dy )
+bool WebEngine::ScrollEdgeBy(int32_t dx, int32_t dy)
 {
-  return Internal::Adaptor::GetImplementation( *this ).ScrollEdgeBy( dx, dy );
+  return Internal::Adaptor::GetImplementation(*this).ScrollEdgeBy(dx, dy);
 }
 
-void WebEngine::SetScrollPosition( int32_t x, int32_t y )
+void WebEngine::SetScrollPosition(int32_t x, int32_t y)
 {
-  Internal::Adaptor::GetImplementation( *this ).SetScrollPosition( x, y );
+  Internal::Adaptor::GetImplementation(*this).SetScrollPosition(x, y);
 }
 
 Dali::Vector2 WebEngine::GetScrollPosition() const
 {
-  return Internal::Adaptor::GetImplementation( *this ).GetScrollPosition();
+  return Internal::Adaptor::GetImplementation(*this).GetScrollPosition();
 }
 
 Dali::Vector2 WebEngine::GetScrollSize() const
 {
-  return Internal::Adaptor::GetImplementation( *this ).GetScrollSize();
+  return Internal::Adaptor::GetImplementation(*this).GetScrollSize();
 }
 
 Dali::Vector2 WebEngine::GetContentSize() const
 {
-  return Internal::Adaptor::GetImplementation( *this ).GetContentSize();
+  return Internal::Adaptor::GetImplementation(*this).GetContentSize();
 }
 
-void WebEngine::SetSize( uint32_t width, uint32_t height )
+void WebEngine::SetSize(uint32_t width, uint32_t height)
 {
 }
 
@@ -2199,150 +2684,159 @@ std::string WebEngine::GetSelectedText() const
   return "test";
 }
 
-bool WebEngine::SendTouchEvent( const TouchEvent& touch )
+bool WebEngine::SendTouchEvent(const TouchEvent& touch)
 {
   return true;
 }
 
-bool WebEngine::SendKeyEvent( const KeyEvent& event )
+bool WebEngine::SendKeyEvent(const KeyEvent& event)
 {
   return true;
 }
 
-bool WebEngine::SendHoverEvent( const HoverEvent& event )
+bool WebEngine::SendHoverEvent(const HoverEvent& event)
 {
   return true;
 }
 
-bool WebEngine::SendWheelEvent( const WheelEvent& event )
+bool WebEngine::SendWheelEvent(const WheelEvent& event)
 {
   return true;
 }
 
-void WebEngine::SetFocus( bool focused )
+void WebEngine::SetFocus(bool focused)
 {
 }
 
 void WebEngine::SetPageZoomFactor(float zoomFactor)
 {
-  Internal::Adaptor::GetImplementation( *this ).SetPageZoomFactor(zoomFactor);
+  Internal::Adaptor::GetImplementation(*this).SetPageZoomFactor(zoomFactor);
 }
 
 float WebEngine::GetPageZoomFactor() const
 {
-  return Internal::Adaptor::GetImplementation( *this ).GetPageZoomFactor();
+  return Internal::Adaptor::GetImplementation(*this).GetPageZoomFactor();
 }
 
 void WebEngine::SetTextZoomFactor(float zoomFactor)
 {
-  Internal::Adaptor::GetImplementation( *this ).SetTextZoomFactor(zoomFactor);
+  Internal::Adaptor::GetImplementation(*this).SetTextZoomFactor(zoomFactor);
 }
 
 float WebEngine::GetTextZoomFactor() const
 {
-  return Internal::Adaptor::GetImplementation( *this ).GetTextZoomFactor();
+  return Internal::Adaptor::GetImplementation(*this).GetTextZoomFactor();
 }
 
 float WebEngine::GetLoadProgressPercentage() const
 {
-  return Internal::Adaptor::GetImplementation( *this ).GetLoadProgressPercentage();
+  return Internal::Adaptor::GetImplementation(*this).GetLoadProgressPercentage();
+}
+
+void WebEngine::UpdateDisplayArea(Dali::Rect<int32_t> displayArea)
+{
 }
 
-void WebEngine::UpdateDisplayArea( Dali::Rect< int32_t > displayArea )
+void WebEngine::EnableVideoHole(bool enabled)
 {
 }
 
-void WebEngine::EnableVideoHole( bool enabled )
+void WebEngine::EnableMouseEvents(bool enabled)
 {
 }
 
-void WebEngine::EnableMouseEvents( bool enabled )
+void WebEngine::EnableKeyEvents(bool enabled)
 {
 }
 
-void WebEngine::EnableKeyEvents( bool enabled )
+void WebEngine::RegisterFrameRenderedCallback(Dali::WebEnginePlugin::WebEngineFrameRenderedCallback callback)
 {
+  Internal::Adaptor::GetImplementation(*this).RegisterFrameRenderedCallback(callback);
 }
 
-Dali::WebEnginePlugin::WebEnginePageLoadSignalType& WebEngine::PageLoadStartedSignal()
+void WebEngine::RegisterPageLoadStartedCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback)
 {
-  return Internal::Adaptor::GetImplementation( *this ).PageLoadStartedSignal();
+  Internal::Adaptor::GetImplementation(*this).RegisterPageLoadStartedCallback(callback);
 }
 
-Dali::WebEnginePlugin::WebEnginePageLoadSignalType& WebEngine::PageLoadInProgressSignal()
+void WebEngine::RegisterPageLoadInProgressCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback)
 {
-  return Internal::Adaptor::GetImplementation( *this ).PageLoadInProgressSignal();
+  Internal::Adaptor::GetImplementation(*this).RegisterPageLoadInProgressCallback(callback);
 }
 
-Dali::WebEnginePlugin::WebEnginePageLoadSignalType& WebEngine::PageLoadFinishedSignal()
+void WebEngine::RegisterPageLoadFinishedCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback)
 {
-  return Internal::Adaptor::GetImplementation( *this ).PageLoadFinishedSignal();
+  Internal::Adaptor::GetImplementation(*this).RegisterPageLoadFinishedCallback(callback);
 }
 
-Dali::WebEnginePlugin::WebEnginePageLoadErrorSignalType& WebEngine::PageLoadErrorSignal()
+void WebEngine::RegisterPageLoadErrorCallback(Dali::WebEnginePlugin::WebEnginePageLoadErrorCallback callback)
 {
-  return Internal::Adaptor::GetImplementation( *this ).PageLoadErrorSignal();
+  Internal::Adaptor::GetImplementation(*this).RegisterPageLoadErrorCallback(callback);
 }
 
-Dali::WebEnginePlugin::WebEngineScrollEdgeReachedSignalType& WebEngine::ScrollEdgeReachedSignal()
+void WebEngine::RegisterScrollEdgeReachedCallback(Dali::WebEnginePlugin::WebEngineScrollEdgeReachedCallback callback)
 {
-  return Internal::Adaptor::GetImplementation( *this ).ScrollEdgeReachedSignal();
+  Internal::Adaptor::GetImplementation(*this).RegisterScrollEdgeReachedCallback(callback);
 }
 
-Dali::WebEnginePlugin::WebEngineUrlChangedSignalType& WebEngine::UrlChangedSignal()
+void WebEngine::RegisterUrlChangedCallback(Dali::WebEnginePlugin::WebEngineUrlChangedCallback callback)
 {
-  return Internal::Adaptor::GetImplementation( *this ).UrlChangedSignal();
+  Internal::Adaptor::GetImplementation(*this).RegisterUrlChangedCallback(callback);
 }
 
-Dali::WebEnginePlugin::WebEngineFormRepostDecisionSignalType& WebEngine::FormRepostDecisionSignal()
+void WebEngine::RegisterFormRepostDecidedCallback(Dali::WebEnginePlugin::WebEngineFormRepostDecidedCallback callback)
 {
-  return Internal::Adaptor::GetImplementation(*this).FormRepostDecisionSignal();
+  Internal::Adaptor::GetImplementation(*this).RegisterFormRepostDecidedCallback(callback);
 }
 
-Dali::WebEnginePlugin::WebEngineFrameRenderedSignalType& WebEngine::FrameRenderedSignal()
+void WebEngine::RegisterConsoleMessageReceivedCallback(Dali::WebEnginePlugin::WebEngineConsoleMessageReceivedCallback callback)
 {
-  return Internal::Adaptor::GetImplementation(*this).FrameRenderedSignal();
+  Internal::Adaptor::GetImplementation(*this).RegisterConsoleMessageReceivedCallback(callback);
 }
 
-Dali::WebEnginePlugin::WebEngineRequestInterceptorSignalType& WebEngine::RequestInterceptorSignal()
+void WebEngine::RegisterResponsePolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineResponsePolicyDecidedCallback callback)
 {
-  return Internal::Adaptor::GetImplementation(*this).RequestInterceptorSignal();
+  Internal::Adaptor::GetImplementation(*this).RegisterResponsePolicyDecidedCallback(callback);
 }
 
-Dali::WebEnginePlugin::WebEngineConsoleMessageSignalType& WebEngine::ConsoleMessageSignal()
+void WebEngine::RegisterNavigationPolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineNavigationPolicyDecidedCallback callback)
 {
-  return Internal::Adaptor::GetImplementation(*this).ConsoleMessageSignal();
+  Internal::Adaptor::GetImplementation(*this).RegisterNavigationPolicyDecidedCallback(callback);
 }
 
-Dali::WebEnginePlugin::WebEngineResponsePolicyDecisionSignalType& WebEngine::ResponsePolicyDecisionSignal()
+void WebEngine::RegisterNewWindowCreatedCallback(Dali::WebEnginePlugin::WebEngineNewWindowCreatedCallback callback)
 {
-  return Internal::Adaptor::GetImplementation(*this).ResponsePolicyDecisionSignal();
+  Internal::Adaptor::GetImplementation(*this).RegisterNewWindowCreatedCallback(callback);
 }
 
-Dali::WebEnginePlugin::WebEngineCertificateSignalType& WebEngine::CertificateConfirmSignal()
+void WebEngine::RegisterCertificateConfirmedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback)
 {
-  return Internal::Adaptor::GetImplementation(*this).CertificateConfirmSignal();
+  Internal::Adaptor::GetImplementation(*this).RegisterCertificateConfirmedCallback(callback);
 }
 
-Dali::WebEnginePlugin::WebEngineCertificateSignalType& WebEngine::SslCertificateChangedSignal()
+void WebEngine::RegisterSslCertificateChangedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback)
 {
-  return Internal::Adaptor::GetImplementation(*this).SslCertificateChangedSignal();
+  Internal::Adaptor::GetImplementation(*this).RegisterSslCertificateChangedCallback(callback);
 }
 
-Dali::WebEnginePlugin::WebEngineHttpAuthHandlerSignalType& WebEngine::HttpAuthHandlerSignal()
+void WebEngine::RegisterHttpAuthHandlerCallback(Dali::WebEnginePlugin::WebEngineHttpAuthHandlerCallback callback)
 {
-  return Internal::Adaptor::GetImplementation(*this).HttpAuthHandlerSignal();
+  Internal::Adaptor::GetImplementation(*this).RegisterHttpAuthHandlerCallback(callback);
 }
 
-Dali::WebEnginePlugin::WebEngineContextMenuCustomizedSignalType& WebEngine::ContextMenuCustomizedSignal()
+void WebEngine::RegisterContextMenuShownCallback(Dali::WebEnginePlugin::WebEngineContextMenuShownCallback callback)
 {
-  return Internal::Adaptor::GetImplementation( *this ).ContextMenuCustomizedSignal();
+  Internal::Adaptor::GetImplementation(*this).RegisterContextMenuShownCallback(callback);
 }
 
-Dali::WebEnginePlugin::WebEngineContextMenuItemSelectedSignalType& WebEngine::ContextMenuItemSelectedSignal()
+void WebEngine::RegisterContextMenuHiddenCallback(Dali::WebEnginePlugin::WebEngineContextMenuHiddenCallback callback)
 {
-  return Internal::Adaptor::GetImplementation( *this ).ContextMenuItemSelectedSignal();
+  Internal::Adaptor::GetImplementation(*this).RegisterContextMenuHiddenCallback(callback);
 }
 
-} // namespace Dali;
+void WebEngine::GetPlainTextAsynchronously(Dali::WebEnginePlugin::PlainTextReceivedCallback callback)
+{
+  Internal::Adaptor::GetImplementation(*this).GetPlainTextAsynchronously(callback);
+}
 
+} // namespace Dali