RenderWidget::ShowCallback is called once, it should be OnceCallback
[email protected]
Bug: 419087
Change-Id: I46b6451680a15696b8bc5881b40a6389860a46ab
Reviewed-on: https://chromium-review.googlesource.com/1142131
Reviewed-by: Avi Drissman <[email protected]>
Commit-Queue: danakj <[email protected]>
Cr-Commit-Position: refs/heads/master@{#576177}
diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
index 9b7107d..cc609dc 100644
--- a/content/renderer/render_widget.cc
+++ b/content/renderer/render_widget.cc
@@ -516,8 +516,8 @@
scoped_refptr<RenderWidget> widget(new RenderWidget(
routing_id, compositor_deps, popup_type, screen_info, false, false, false,
task_runner, std::move(widget_channel_request)));
- ShowCallback opener_callback =
- base::Bind(&RenderViewImpl::ShowCreatedPopupWidget, opener->GetWeakPtr());
+ ShowCallback opener_callback = base::BindOnce(
+ &RenderViewImpl::ShowCreatedPopupWidget, opener->GetWeakPtr());
widget->Init(std::move(opener_callback),
RenderWidget::CreateWebWidget(widget.get()));
DCHECK(!widget->HasOneRef()); // RenderWidget::Init() adds a reference.
@@ -561,7 +561,7 @@
widget->for_oopif_ = true;
// Init increments the reference count on |widget|, keeping it alive after
// this function returns.
- widget->Init(RenderWidget::ShowCallback(),
+ widget->Init(base::NullCallback(),
RenderWidget::CreateWebFrameWidget(widget.get(), frame));
widget->UpdateWebViewWithDeviceScaleFactor();
@@ -608,8 +608,7 @@
RenderProcess::current()->AddRefProcess();
}
-void RenderWidget::Init(const ShowCallback& show_callback,
- WebWidget* web_widget) {
+void RenderWidget::Init(ShowCallback show_callback, WebWidget* web_widget) {
DCHECK(!webwidget_internal_);
DCHECK_NE(routing_id_, MSG_ROUTING_NONE);
@@ -628,7 +627,7 @@
render_thread_impl ? render_thread_impl->GetWebMainThreadScheduler()
: nullptr);
- show_callback_ = show_callback;
+ show_callback_ = std::move(show_callback);
webwidget_internal_ = web_widget;
webwidget_mouse_lock_target_.reset(
@@ -1572,7 +1571,7 @@
void RenderWidget::Show(WebNavigationPolicy policy) {
DCHECK(!did_show_) << "received extraneous Show call";
DCHECK(routing_id_ != MSG_ROUTING_NONE);
- DCHECK(!show_callback_.is_null());
+ DCHECK(show_callback_);
if (did_show_)
return;
@@ -1580,8 +1579,7 @@
did_show_ = true;
// The opener is responsible for actually showing this widget.
- show_callback_.Run(this, policy, initial_rect_);
- show_callback_.Reset();
+ std::move(show_callback_).Run(this, policy, initial_rect_);
// NOTE: initial_rect_ may still have its default values at this point, but
// that's okay. It'll be ignored if as_popup is false, or the browser