Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(219)

Side by Side Diff: content/browser/devtools/protocol/input_handler.cc

Issue 2898793002: DevTools: disable input event processing while auditing with lighthouse. (Closed)
Patch Set: Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/devtools/protocol/input_handler.h" 5 #include "content/browser/devtools/protocol/input_handler.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include "base/strings/stringprintf.h" 9 #include "base/strings/stringprintf.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
193 InputHandler::InputHandler() 193 InputHandler::InputHandler()
194 : DevToolsDomainHandler(Input::Metainfo::domainName), 194 : DevToolsDomainHandler(Input::Metainfo::domainName),
195 host_(nullptr), 195 host_(nullptr),
196 input_queued_(false), 196 input_queued_(false),
197 page_scale_factor_(1.0), 197 page_scale_factor_(1.0),
198 last_id_(0), 198 last_id_(0),
199 weak_factory_(this) { 199 weak_factory_(this) {
200 } 200 }
201 201
202 InputHandler::~InputHandler() { 202 InputHandler::~InputHandler() {
203 if (host_ && ignore_input_events_)
dgozman 2017/05/22 18:35:54 Drop this.
204 host_->GetRenderWidgetHost()->SetIgnoreInputEvents(false);
203 } 205 }
204 206
205 // static 207 // static
206 std::vector<InputHandler*> InputHandler::ForAgentHost( 208 std::vector<InputHandler*> InputHandler::ForAgentHost(
207 DevToolsAgentHostImpl* host) { 209 DevToolsAgentHostImpl* host) {
208 return DevToolsSession::HandlersForAgentHost<InputHandler>( 210 return DevToolsSession::HandlersForAgentHost<InputHandler>(
209 host, Input::Metainfo::domainName); 211 host, Input::Metainfo::domainName);
210 } 212 }
211 213
212 void InputHandler::SetRenderFrameHost(RenderFrameHostImpl* host) { 214 void InputHandler::SetRenderFrameHost(RenderFrameHostImpl* host) {
213 ClearPendingKeyAndMouseCallbacks(); 215 ClearPendingKeyAndMouseCallbacks();
214 if (host_) 216 if (host_) {
215 host_->GetRenderWidgetHost()->RemoveInputEventObserver(this); 217 host_->GetRenderWidgetHost()->RemoveInputEventObserver(this);
218 if (ignore_input_events_)
219 host_->GetRenderWidgetHost()->SetIgnoreInputEvents(false);
220 }
216 host_ = host; 221 host_ = host;
217 if (host) 222 if (host) {
218 host->GetRenderWidgetHost()->AddInputEventObserver(this); 223 host->GetRenderWidgetHost()->AddInputEventObserver(this);
224 if (ignore_input_events_)
225 host_->GetRenderWidgetHost()->SetIgnoreInputEvents(true);
226 }
219 } 227 }
220 228
221 void InputHandler::OnInputEvent(const blink::WebInputEvent& event) { 229 void InputHandler::OnInputEvent(const blink::WebInputEvent& event) {
222 input_queued_ = true; 230 input_queued_ = true;
223 } 231 }
224 232
225 void InputHandler::OnInputEventAck(const blink::WebInputEvent& event) { 233 void InputHandler::OnInputEventAck(const blink::WebInputEvent& event) {
226 if (blink::WebInputEvent::IsKeyboardEventType(event.GetType()) && 234 if (blink::WebInputEvent::IsKeyboardEventType(event.GetType()) &&
227 !pending_key_callbacks_.empty()) { 235 !pending_key_callbacks_.empty()) {
228 pending_key_callbacks_.front()->sendSuccess(); 236 pending_key_callbacks_.front()->sendSuccess();
(...skipping 10 matching lines...) Expand all
239 } 247 }
240 248
241 void InputHandler::OnSwapCompositorFrame( 249 void InputHandler::OnSwapCompositorFrame(
242 const cc::CompositorFrameMetadata& frame_metadata) { 250 const cc::CompositorFrameMetadata& frame_metadata) {
243 page_scale_factor_ = frame_metadata.page_scale_factor; 251 page_scale_factor_ = frame_metadata.page_scale_factor;
244 scrollable_viewport_size_ = frame_metadata.scrollable_viewport_size; 252 scrollable_viewport_size_ = frame_metadata.scrollable_viewport_size;
245 } 253 }
246 254
247 Response InputHandler::Disable() { 255 Response InputHandler::Disable() {
248 ClearPendingKeyAndMouseCallbacks(); 256 ClearPendingKeyAndMouseCallbacks();
249 if (host_) 257 if (host_) {
250 host_->GetRenderWidgetHost()->RemoveInputEventObserver(this); 258 host_->GetRenderWidgetHost()->RemoveInputEventObserver(this);
259 if (ignore_input_events_)
260 host_->GetRenderWidgetHost()->SetIgnoreInputEvents(false);
261 }
262 ignore_input_events_ = false;
251 return Response::OK(); 263 return Response::OK();
252 } 264 }
253 265
254 void InputHandler::DispatchKeyEvent( 266 void InputHandler::DispatchKeyEvent(
255 const std::string& type, 267 const std::string& type,
256 Maybe<int> modifiers, 268 Maybe<int> modifiers,
257 Maybe<double> timestamp, 269 Maybe<double> timestamp,
258 Maybe<std::string> text, 270 Maybe<std::string> text,
259 Maybe<std::string> unmodified_text, 271 Maybe<std::string> unmodified_text,
260 Maybe<std::string> key_identifier, 272 Maybe<std::string> key_identifier,
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
451 if (!host_ || !host_->GetRenderWidgetHost()) 463 if (!host_ || !host_->GetRenderWidgetHost())
452 return Response::InternalError(); 464 return Response::InternalError();
453 465
454 if (wheel_event) 466 if (wheel_event)
455 host_->GetRenderWidgetHost()->ForwardWheelEvent(*wheel_event); 467 host_->GetRenderWidgetHost()->ForwardWheelEvent(*wheel_event);
456 else 468 else
457 host_->GetRenderWidgetHost()->ForwardMouseEvent(*mouse_event); 469 host_->GetRenderWidgetHost()->ForwardMouseEvent(*mouse_event);
458 return Response::OK(); 470 return Response::OK();
459 } 471 }
460 472
473 Response InputHandler::SetIgnoreInputEvents(bool ignore) {
474 ignore_input_events_ = ignore;
475 if (host_)
476 host_->GetRenderWidgetHost()->SetIgnoreInputEvents(ignore);
477 return Response::OK();
478 }
479
461 void InputHandler::SynthesizePinchGesture( 480 void InputHandler::SynthesizePinchGesture(
462 int x, 481 int x,
463 int y, 482 int y,
464 double scale_factor, 483 double scale_factor,
465 Maybe<int> relative_speed, 484 Maybe<int> relative_speed,
466 Maybe<std::string> gesture_source_type, 485 Maybe<std::string> gesture_source_type,
467 std::unique_ptr<SynthesizePinchGestureCallback> callback) { 486 std::unique_ptr<SynthesizePinchGestureCallback> callback) {
468 if (!host_ || !host_->GetRenderWidgetHost()) { 487 if (!host_ || !host_->GetRenderWidgetHost()) {
469 callback->sendFailure(Response::InternalError()); 488 callback->sendFailure(Response::InternalError());
470 return; 489 return;
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
661 } 680 }
662 681
663 bool InputHandler::PointIsWithinContents(gfx::PointF point) const { 682 bool InputHandler::PointIsWithinContents(gfx::PointF point) const {
664 gfx::Rect bounds = host_->GetView()->GetViewBounds(); 683 gfx::Rect bounds = host_->GetView()->GetViewBounds();
665 bounds -= bounds.OffsetFromOrigin(); // Translate the bounds to (0,0). 684 bounds -= bounds.OffsetFromOrigin(); // Translate the bounds to (0,0).
666 return bounds.Contains(point.x(), point.y()); 685 return bounds.Contains(point.x(), point.y());
667 } 686 }
668 687
669 } // namespace protocol 688 } // namespace protocol
670 } // namespace content 689 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698