// this is equivalent to receiving the signal. first_content_metadata_received_ = true; input_router()->MakeActive(); } void RenderWidgetHostImpl::OnKeyboardEventAck( const input::NativeWebKeyboardEventWithLatencyInfo& event, blink::mojom::InputEventResultSource ack_source, blink::mojom::InputEventResultState ack_result) { GetRenderInputRouter()->GetLatencyTracker()->OnInputEventAck( event.event, &event.latency, ack_result); NotifyObserversOfInputEventAcks(ack_source, ack_result, event.event); bool processed = (blink::mojom::InputEventResultState::kConsumed == ack_result); // We only send unprocessed key event upwards if we are not hidden, // because the user has moved away from us and no longer expect any effect // of this key event. if (delegate_ && !processed && !IsHidden() && !event.event.skip_if_unhandled) { delegate_->HandleKeyboardEvent(event.event); } // WARNING: This RenderWidgetHostImpl can be deallocated at this point // (i.e. in the case of Ctrl+W, where the call to // HandleKeyboardEvent destroys this RenderWidgetHostImpl). } void RenderWidgetHostImpl::RequestClosePopup() { CHECK(!owner_delegate_); ShutdownAndDestroyWidget(true); } void RenderWidgetHostImpl::SetPopupBounds(const gfx::Rect& bounds, SetPopupBoundsCallback callback) { // If the browser changes bounds, do not allow renderer changing bounds at the // same time until it acked the changes. Otherwise, if they simultaneously // change bounds, browser's bounds can be clobbered. if (view_ && !waiting_for_screen_rects_ack_) { view_->SetBounds(bounds); } std::move(callback).Run(); } input::RenderWidgetHostInputEventRouter* RenderWidgetHostImpl::GetInputEventRouter() { return delegate()->GetInputEventRouter(); } input::RenderWidgetHostViewInput* RenderWidgetHostImpl::GetPointerLockView() { return delegate()->GetPointerLockWidget()->GetView(); } void RenderWidgetHostImpl::ForwardDelegatedInkPoint( gfx::DelegatedInkPoint& delegated_ink_point, bool& ended_delegated_ink_trail) { if (!view_) { return; }