[M120 Migration] Fix coverity issue
[platform/framework/web/chromium-efl.git] / tizen_src / ewk / efl_integration / wrt / wrt_widget_host.cc
index 553e8b0..6fa53a8 100644 (file)
@@ -8,7 +8,6 @@
 #include "common/render_messages_ewk.h"
 #include "content/public/browser/browser_message_filter.h"
 #include "content/public/browser/render_process_host.h"
-#include "content/public/browser/resource_request_info.h"
 #include "ipc/ipc_message_macros.h"
 #include "ipc_message_start_ewk.h"
 #include "net/url_request/url_request.h"
@@ -26,15 +25,21 @@ bool SendToAllRenderers(IPC::Message* message) {
   content::RenderProcessHost::iterator it =
       content::RenderProcessHost::AllHostsIterator();
   while (!it.IsAtEnd()) {
-    if (it.GetCurrentValue()->Send(message))
+    if (it.GetCurrentValue()->Send(new IPC::Message(*message)))
       result = true;
     it.Advance();
   }
+  delete message;
   return result;
 }
 
 bool SendToRenderer(int renderer_id, IPC::Message* message) {
-  return content::RenderProcessHost::FromID(renderer_id)->Send(message);
+  content::RenderProcessHost* host =
+      content::RenderProcessHost::FromID(renderer_id);
+  if (!host)
+    return false;
+
+  return host->Send(message);
 }
 }
 
@@ -66,9 +71,16 @@ bool WrtWidgetHostMessageFilter::OnMessageReceived(const IPC::Message& message)
 WrtWidgetHost* WrtWidgetHost::Get() {
   // TODO(z.kostrzewa) LazyInstance is thread-safe but creating
   // WrtWidgetHost is not - make it thread-safe.
+#if !defined(EWK_BRINGUP)  // FIXME: m67 bringup
+  // FIXME: ‘New’ is not a member of
+  // ‘base::internal::ErrorMustSelectLazyOrDestructorAtExitForLazyInstance<std::unique_ptr<WrtWidgetHost>
+  // >’
   if (!g_wrt_widget_host.Get().get())
     g_wrt_widget_host.Get().reset(new WrtWidgetHost);
   return g_wrt_widget_host.Get().get();
+#else
+  return nullptr;
+#endif
 }
 
 WrtWidgetHost::WrtWidgetHost()
@@ -77,21 +89,23 @@ WrtWidgetHost::WrtWidgetHost()
 
 void WrtWidgetHost::GetUrlForRequest(
     net::URLRequest* request,
-    base::Callback<void(const GURL&)> callback) {
+    base::OnceCallback<void(const GURL&)> callback) {
   // TODO(z.kostrzewa) Check on which thread(s) callbacks_ is touched
   // and provide synchronization if required (either via a lock or
   // by assuring that it is referenced only on one thread)
   int callback_id = callback_id_generator_.GetNext();
-  callbacks_[callback_id] = callback;
+  callbacks_[callback_id] = std::move(callback);
 
+#if !defined(EWK_BRINGUP)  // FIXME: m85 bringup
   int renderer_id, frame_id;
   if (content::ResourceRequestInfo::GetRenderFrameForRequest(request, &renderer_id,
                                                              &frame_id))
     if (SendToRenderer(renderer_id, new WrtMsg_ParseUrl(callback_id, request->url())))
       return;
+#endif
 
+  std::move(callbacks_[callback_id]).Run(GURL());
   callbacks_.erase(callback_id);
-  callback.Run(GURL());
 }
 
 void WrtWidgetHost::SendWrtMessage(
@@ -107,17 +121,16 @@ bool WrtWidgetHost::InWrt() const {
 
 // It's only used by the wrt_file_protocol_handler which is not going to be used in the future
 // Candidate for deletion.
-std::string WrtWidgetHost::TizenId() const {
+std::string WrtWidgetHost::TizenAppId() const {
   return std::string();
 }
 
 void WrtWidgetHost::OnUrlRetrieved(int callback_id, const GURL& url) {
-  callbacks_type::iterator it = callbacks_.find(callback_id);
+  auto it = callbacks_.find(callback_id);
   if (callbacks_.end() == it)
     return;
 
-  callbacks_type::mapped_type callback = it->second;
-  callbacks_.erase(callback_id);
-  callback.Run(url);
+  std::move(it->second).Run(url);
+  callbacks_.erase(it);
 }