[M130] Fix NativeTCT Failures 56/318856/10
authorSatyaveer Singh <satyaveer.s@samsung.com>
Tue, 28 Jan 2025 05:50:07 +0000 (11:20 +0530)
committerSatyaveer Singh <satyaveer.s@samsung.com>
Fri, 7 Feb 2025 12:22:03 +0000 (17:52 +0530)
This commit fixes below failures:
1) utc_webkit2_ewk_manifest_background_color_get_p
2) utc_webkit2_ewk_view_javascript_message_handler_add_p
3) utc_webkit2_ewk_intercept_request_headers_get_p
4) utc_wekbit2_ewk_context_form_autofill_profile_add_remove_p
5) utc_webkit2_ewk_context_form_password_data_delete_all_p
6) Itc_ewk_intercept_request_response_write_chunk_p

Change-Id: I25168ed704c95e35ab008eb73dd622341e512656
Signed-off-by: Satyaveer Singh <satyaveer.s@samsung.com>
Signed-off-by: Avinash Bhojwani <avinash.b@samsung.com>
components/password_manager/core/browser/password_store/password_store_built_in_backend.cc
tizen_src/ewk/efl_integration/browser/network_service/proxying_url_loader_efl.cc
tizen_src/ewk/efl_integration/browser/network_service/proxying_url_loader_factory_efl.cc
tizen_src/ewk/efl_integration/browser/network_service/proxying_url_loader_factory_efl.h
tizen_src/ewk/efl_integration/browser/webdata/web_data_service_factory.cc
tizen_src/ewk/efl_integration/browser/webdata/web_data_service_factory.h
tizen_src/ewk/efl_integration/content_browser_client_efl.cc
tizen_src/ewk/efl_integration/eweb_view.cc
tizen_src/ewk/efl_integration/web_contents_delegate_efl.cc
tizen_src/ewk/efl_integration/web_contents_delegate_efl.h

index 8eebb5a2f9fabca128bb64a2639b2d2f6677566f..a98fa683f681009729b7c2a6e54472eec4132138 100644 (file)
@@ -182,6 +182,9 @@ void PasswordStoreBuiltInBackend::InitBackend(
   DCHECK(helper_);
   affiliated_match_helper_ = affiliated_match_helper;
 
+#if !defined(EWK_BRINGUP)  // FIXME: m130 bringup
+  // |pref_service_| here is null for EFL resulting in NativeTCT tc crash.
+  // so, feature is temporarily disabled for EFL to fix crash.
 #if !BUILDFLAG(IS_ANDROID)
   // To ensure that groups of the kClearUndecryptablePasswords will stay
   // balanced, after the cleanup is done an additional flag check is needed.
@@ -191,6 +194,7 @@ void PasswordStoreBuiltInBackend::InitBackend(
   if (pref_service_->GetBoolean(prefs::kClearingUndecryptablePasswords)) {
     base::FeatureList::IsEnabled(features::kClearUndecryptablePasswords);
   }
+#endif
 #endif
 
   background_task_runner_->PostTask(
index 916dd4c7f991c3efc128f8e7bf8a79b6523a2a22..4e4220806c4bb82210ba3f54ed30ab7db307cc2c 100644 (file)
@@ -122,12 +122,11 @@ void ProxyingURLLoaderEfl::SendRawData() {
     }
 
     net::DrainableIOBuffer* buffer = buffers_.front().get();
-    size_t write_size = buffer->BytesRemaining();
-    DCHECK_GT(write_size, 0);
+    size_t bytes_written = 0;
 
-#if !defined(EWK_BRINGUP)  // FIXME: m130 bringup
-    MojoResult result = producer_handle_->WriteData(buffer->data(), &write_size,
-                                                    MOJO_WRITE_DATA_FLAG_NONE);
+    MojoResult result = producer_handle_->WriteData(
+        base::as_byte_span(std::string(buffer->data(), buffer->size())),
+        MOJO_WRITE_DATA_FLAG_NONE, bytes_written);
     if (result == MOJO_RESULT_SHOULD_WAIT) {
       producer_handle_watcher_->ArmOrNotify();
       return;
@@ -137,9 +136,8 @@ void ProxyingURLLoaderEfl::SendRawData() {
       Finish(net::ERR_FAILED);
       return;
     }
-#endif
 
-    buffer->DidConsume(write_size);
+    buffer->DidConsume(bytes_written);
     if (!buffer->BytesRemaining())
       buffers_.pop();
   }
index 943ccb619a60e2c8929190e64410c71e3e280d39..53deceb08319d918f00a45ec5a37210a865ed871 100644 (file)
@@ -62,21 +62,20 @@ class FileElementReader : public net::UploadFileElementReader {
   scoped_refptr<ResourceRequestBody> resource_request_body_;
 };
 
-#if !defined(EWK_BRINGUP)  // FIXME: m130 bringup
-EWebView* GetWebViewFromFrameTreeNodeId(int frame_tree_node_id) {
+EWebView* GetWebViewFromFrameTreeNodeId(
+    content::FrameTreeNodeId frame_tree_node_id) {
   auto* web_content =
       content::WebContents::FromFrameTreeNodeId(frame_tree_node_id);
   if (!web_content)
     return nullptr;
   return web_contents_utils::WebViewFromWebContents(web_content);
 }
-#endif
 
 }  // namespace
 
 // static
 void ProxyingURLLoaderFactoryEfl::CreateProxy(
-    int frame_tree_node_id,
+    content::FrameTreeNodeId frame_tree_node_id,
     content::BrowserContextEfl::ResourceContextEfl* resource_context,
     mojo::PendingReceiver<network::mojom::URLLoaderFactory> loader_receiver,
     mojo::PendingRemote<network::mojom::URLLoaderFactory>
@@ -88,7 +87,7 @@ void ProxyingURLLoaderFactoryEfl::CreateProxy(
 }
 
 ProxyingURLLoaderFactoryEfl::ProxyingURLLoaderFactoryEfl(
-    int frame_tree_node_id,
+    content::FrameTreeNodeId frame_tree_node_id,
     content::BrowserContextEfl::ResourceContextEfl* resource_context,
     mojo::PendingReceiver<network::mojom::URLLoaderFactory> loader_receiver,
     mojo::PendingRemote<network::mojom::URLLoaderFactory> target_factory_remote)
@@ -144,9 +143,7 @@ void ProxyingURLLoaderFactoryEfl::CreateLoaderAndStart(
     mojo::PendingRemote<network::mojom::URLLoaderClient> client,
     const net::MutableNetworkTrafficAnnotationTag& traffic_annotation) {
   InterceptRequestParams params;
-#if !defined(EWK_BRINGUP)  // FIXME: m130 bringup
   params.web_view = GetWebViewFromFrameTreeNodeId(frame_tree_node_id_);
-#endif
   params.url = request.url;
   params.method = request.method;
   params.headers = request.headers;
index bd1a788ac4536b150dd49cb991c0005ff919dd87..c7cca1396520173cb969b5eef02f021e87391bd1 100644 (file)
@@ -19,7 +19,7 @@ class ResourceContext;
 class ProxyingURLLoaderFactoryEfl : public network::mojom::URLLoaderFactory {
  public:
   static void CreateProxy(
-      int frame_tree_node_id,
+      content::FrameTreeNodeId frame_tree_node_id,
       content::BrowserContextEfl::ResourceContextEfl* resource_context,
       mojo::PendingReceiver<network::mojom::URLLoaderFactory> loader_receiver,
       mojo::PendingRemote<network::mojom::URLLoaderFactory>
@@ -41,7 +41,7 @@ class ProxyingURLLoaderFactoryEfl : public network::mojom::URLLoaderFactory {
                  loader_receiver) override;
 
   ProxyingURLLoaderFactoryEfl(
-      int frame_tree_node_id,
+      content::FrameTreeNodeId frame_tree_node_id,
       content::BrowserContextEfl::ResourceContextEfl* resource_context,
       mojo::PendingReceiver<network::mojom::URLLoaderFactory> loader_receiver,
       mojo::PendingRemote<network::mojom::URLLoaderFactory>
@@ -57,7 +57,7 @@ class ProxyingURLLoaderFactoryEfl : public network::mojom::URLLoaderFactory {
       network::ResourceRequestBody* body,
       base::SingleThreadTaskRunner* file_task_runner);
 
-  int frame_tree_node_id_;
+  content::FrameTreeNodeId frame_tree_node_id_;
 
   content::BrowserContextEfl::ResourceContextEfl* resource_context_;
 
index ac73d44fde2406c31a8d6b54e8e82356c602416c..54e18233004fc0772c1fab7cfb4999d5972743a9 100644 (file)
@@ -64,9 +64,10 @@ WebDataServiceWrapperEfl::WebDataServiceWrapperEfl() {
   web_database_->AddTable(std::make_unique<autofill::AutocompleteTable>());
   web_database_->AddTable(std::make_unique<autofill::AddressAutofillTable>());
   web_database_->AddTable(std::make_unique<autofill::PaymentsAutofillTable>());
-#if !defined(EWK_BRINGUP)  // FIXME: m130 bringup
-  web_database_->LoadDatabase();
-#endif
+  os_crypt_async_ = std::make_unique<os_crypt_async::OSCryptAsync>(
+      std::vector<
+          std::pair<size_t, std::unique_ptr<os_crypt_async::KeyProvider>>>());
+  web_database_->LoadDatabase(os_crypt_async_.get());
 
   autofill_web_data_ =
       new AutofillWebDataService(web_database_, ui_task_runner);
index 694a243bb0f6c21a102952b789ee453c9a61ef7d..00154ea7254a973177702dd21ddb76aeb1bec516 100644 (file)
@@ -10,6 +10,7 @@
 
 #include "base/memory/ref_counted.h"
 #include "base/memory/singleton.h"
+#include "components/os_crypt/async/browser/os_crypt_async.h"
 #include "components/webdata/common/web_database_service.h"
 #include "web_data_service.h"
 
@@ -36,6 +37,7 @@ class WebDataServiceWrapperEfl {
   scoped_refptr<WebDatabaseService> web_database_;
   scoped_refptr<autofill::AutofillWebDataService> autofill_web_data_;
   scoped_refptr<WebDataService> web_data_;
+  std::unique_ptr<os_crypt_async::OSCryptAsync> os_crypt_async_;
 };
 
 // Singleton that owns all WebDataServiceWrapperEfls
index 9603b3623e25796b4696a717494b983efd4a523e..478aa7efe6547d19933615e4c5cab1b94afe1439 100644 (file)
@@ -636,14 +636,13 @@ void ContentBrowserClientEfl::WillCreateURLLoaderFactory(
     std::tie(proxied_receiver, target_factory_remote) =
         factory_builder.Append();
   }
-#if !defined(EWK_BRINGUP)  // FIXME: m130 bringup
+
   GetIOThreadTaskRunner({})->PostTask(
       FROM_HERE,
       base::BindOnce(&ProxyingURLLoaderFactoryEfl::CreateProxy,
                      frame->GetFrameTreeNodeId(), resource_context_efl,
                      std::move(proxied_receiver),
                      std::move(target_factory_remote)));
-#endif
 }
 
 std::vector<std::unique_ptr<blink::URLLoaderThrottle>>
index 2d756743877a202f5888e44c10181817cebc5d7d..652ce22a668d7c4edb9cba34b86979916942b152 100644 (file)
@@ -1104,20 +1104,16 @@ bool EWebView::ExecuteJavaScript(const char* script,
     // In M47, it isn't possible anymore to execute javascript in the generic
     // case. We need to call ExecuteJavaScriptForTests to keep the behaviour
     // unchanged @see https://codereview.chromium.org/1123783002
-#if !defined(EWK_BRINGUP)  // FIXME: m130 bringup
     render_frame_host->ExecuteJavaScriptWithUserGestureForTests(
-        js_script, std::move(js_callback));
-#endif
+        js_script, std::move(js_callback), ISOLATED_WORLD_ID_GLOBAL);
   } else {
     // We use ExecuteJavaScriptWithUserGestureForTests instead of
     // ExecuteJavaScript because
     // ExecuteJavaScriptWithUserGestureForTests sets user_gesture to true. This
     // was the
     // behaviour is m34, and we want to keep it that way.
-#if !defined(EWK_BRINGUP)  // FIXME: m130 bringup
     render_frame_host->ExecuteJavaScriptWithUserGestureForTests(
-        js_script, base::NullCallback());
-#endif
+        js_script, base::NullCallback(), ISOLATED_WORLD_ID_GLOBAL);
   }
 
   return true;
index 30c3ceac617d8cfb888b0197950e53a81cd24dc2..66119853653a5e3781424fd76ed97f723e131a31 100644 (file)
@@ -704,16 +704,15 @@ void WebContentsDelegateEfl::RequestManifestInfo(
     return;
   }
 
-#if !defined(EWK_BRINGUP)  // FIXME: m130 bringup
   manifest_manager_host->GetManifest(
       base::BindOnce(&WebContentsDelegateEfl::OnDidGetManifest,
                      base::Unretained(this), callback, user_data));
-#endif
 }
 
 void WebContentsDelegateEfl::OnDidGetManifest(
     Ewk_View_Request_Manifest_Callback callback,
     void* user_data,
+    blink::mojom::ManifestRequestResult result,
     const GURL& manifest_url,
     blink::mojom::ManifestPtr manifest) {
   if (blink::IsEmptyManifest(*manifest) || manifest_url.is_empty()) {
index 5a6b0f3fb3b00ee6c54d7082bff22f9a7c1180a9..3a8532b2f3f7e86e64193b1c1822448371a6dce7 100644 (file)
@@ -182,6 +182,7 @@ class WebContentsDelegateEfl : public WebContentsDelegate {
  private:
   void OnDidGetManifest(Ewk_View_Request_Manifest_Callback callback,
                         void* user_data,
+                        blink::mojom::ManifestRequestResult result,
                         const GURL& manifest_url,
                         blink::mojom::ManifestPtr manifest);
 #if BUILDFLAG(IS_TIZEN_TV)