#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"
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);
}
}
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
}
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(
}
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);
}