[M120 Migration] Fix coverity issue
[platform/framework/web/chromium-efl.git] / tizen_src / ewk / efl_integration / wrt / wrt_widget_host.cc
index 5f75ddd..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);
 }
 }
 
@@ -73,6 +78,8 @@ WrtWidgetHost* WrtWidgetHost::Get() {
   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
 }
 
@@ -82,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(
@@ -117,12 +126,11 @@ std::string WrtWidgetHost::TizenAppId() const {
 }
 
 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);
 }