OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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/renderer_overrides_handler.h" | 5 #include "content/browser/devtools/renderer_overrides_handler.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/barrier_closure.h" | 10 #include "base/barrier_closure.h" |
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
144 RegisterCommandHandler( | 144 RegisterCommandHandler( |
145 devtools::Input::emulateTouchFromMouseEvent::kName, | 145 devtools::Input::emulateTouchFromMouseEvent::kName, |
146 base::Bind( | 146 base::Bind( |
147 &RendererOverridesHandler::InputEmulateTouchFromMouseEvent, | 147 &RendererOverridesHandler::InputEmulateTouchFromMouseEvent, |
148 base::Unretained(this))); | 148 base::Unretained(this))); |
149 } | 149 } |
150 | 150 |
151 RendererOverridesHandler::~RendererOverridesHandler() {} | 151 RendererOverridesHandler::~RendererOverridesHandler() {} |
152 | 152 |
153 void RendererOverridesHandler::OnClientDetached() { | 153 void RendererOverridesHandler::OnClientDetached() { |
154 RenderViewHostImpl* host = static_cast<RenderViewHostImpl*>( | 154 RenderViewHostImpl* host = GetRenderViewHostImpl(); |
155 agent_->GetRenderViewHost()); | |
156 if (screencast_command_ && host) | 155 if (screencast_command_ && host) |
157 host->SetTouchEventEmulationEnabled(false, false); | 156 host->SetTouchEventEmulationEnabled(false, false); |
158 screencast_command_ = NULL; | 157 screencast_command_ = NULL; |
159 } | 158 } |
160 | 159 |
161 void RendererOverridesHandler::OnSwapCompositorFrame( | 160 void RendererOverridesHandler::OnSwapCompositorFrame( |
162 const cc::CompositorFrameMetadata& frame_metadata) { | 161 const cc::CompositorFrameMetadata& frame_metadata) { |
163 last_compositor_frame_metadata_ = frame_metadata; | 162 last_compositor_frame_metadata_ = frame_metadata; |
164 has_last_compositor_frame_metadata_ = true; | 163 has_last_compositor_frame_metadata_ = true; |
165 | 164 |
166 if (screencast_command_) | 165 if (screencast_command_) |
167 InnerSwapCompositorFrame(); | 166 InnerSwapCompositorFrame(); |
168 } | 167 } |
169 | 168 |
170 void RendererOverridesHandler::OnVisibilityChanged(bool visible) { | 169 void RendererOverridesHandler::OnVisibilityChanged(bool visible) { |
171 if (!screencast_command_) | 170 if (!screencast_command_) |
172 return; | 171 return; |
173 NotifyScreencastVisibility(visible); | 172 NotifyScreencastVisibility(visible); |
174 } | 173 } |
175 | 174 |
176 void RendererOverridesHandler::OnRenderViewHostChanged() { | 175 void RendererOverridesHandler::OnRenderViewHostChanged() { |
177 RenderViewHostImpl* host = static_cast<RenderViewHostImpl*>( | 176 RenderViewHostImpl* host = GetRenderViewHostImpl(); |
178 agent_->GetRenderViewHost()); | |
179 if (screencast_command_ && host) | 177 if (screencast_command_ && host) |
180 host->SetTouchEventEmulationEnabled(true, true); | 178 host->SetTouchEventEmulationEnabled(true, true); |
181 } | 179 } |
182 | 180 |
183 bool RendererOverridesHandler::OnSetTouchEventEmulationEnabled() { | 181 bool RendererOverridesHandler::OnSetTouchEventEmulationEnabled() { |
184 return screencast_command_.get() != NULL; | 182 return screencast_command_.get() != NULL; |
185 } | 183 } |
186 | 184 |
187 void RendererOverridesHandler::InnerSwapCompositorFrame() { | 185 void RendererOverridesHandler::InnerSwapCompositorFrame() { |
188 if ((base::TimeTicks::Now() - last_frame_time_).InMilliseconds() < | 186 if ((base::TimeTicks::Now() - last_frame_time_).InMilliseconds() < |
189 kFrameRateThresholdMs) { | 187 kFrameRateThresholdMs) { |
190 return; | 188 return; |
191 } | 189 } |
192 | 190 |
193 RenderViewHost* host = agent_->GetRenderViewHost(); | 191 RenderViewHost* host = GetRenderViewHostImpl(); |
194 if (!host->GetView()) | 192 if (!host->GetView()) |
195 return; | 193 return; |
196 | 194 |
197 last_frame_time_ = base::TimeTicks::Now(); | 195 last_frame_time_ = base::TimeTicks::Now(); |
198 | 196 |
199 RenderWidgetHostViewBase* view = static_cast<RenderWidgetHostViewBase*>( | 197 RenderWidgetHostViewBase* view = static_cast<RenderWidgetHostViewBase*>( |
200 host->GetView()); | 198 host->GetView()); |
201 // TODO(vkuzkokov): do not use previous frame metadata. | 199 // TODO(vkuzkokov): do not use previous frame metadata. |
202 cc::CompositorFrameMetadata& metadata = last_compositor_frame_metadata_; | 200 cc::CompositorFrameMetadata& metadata = last_compositor_frame_metadata_; |
203 | 201 |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
265 | 263 |
266 scoped_refptr<DevToolsProtocol::Response> | 264 scoped_refptr<DevToolsProtocol::Response> |
267 RendererOverridesHandler::GrantPermissionsForSetFileInputFiles( | 265 RendererOverridesHandler::GrantPermissionsForSetFileInputFiles( |
268 scoped_refptr<DevToolsProtocol::Command> command) { | 266 scoped_refptr<DevToolsProtocol::Command> command) { |
269 base::DictionaryValue* params = command->params(); | 267 base::DictionaryValue* params = command->params(); |
270 base::ListValue* file_list = NULL; | 268 base::ListValue* file_list = NULL; |
271 const char* param = | 269 const char* param = |
272 devtools::DOM::setFileInputFiles::kParamFiles; | 270 devtools::DOM::setFileInputFiles::kParamFiles; |
273 if (!params || !params->GetList(param, &file_list)) | 271 if (!params || !params->GetList(param, &file_list)) |
274 return command->InvalidParamResponse(param); | 272 return command->InvalidParamResponse(param); |
275 RenderViewHost* host = agent_->GetRenderViewHost(); | 273 RenderViewHost* host = GetRenderViewHostImpl(); |
276 if (!host) | 274 if (!host) |
277 return NULL; | 275 return NULL; |
278 | 276 |
279 for (size_t i = 0; i < file_list->GetSize(); ++i) { | 277 for (size_t i = 0; i < file_list->GetSize(); ++i) { |
280 base::FilePath::StringType file; | 278 base::FilePath::StringType file; |
281 if (!file_list->GetString(i, &file)) | 279 if (!file_list->GetString(i, &file)) |
282 return command->InvalidParamResponse(param); | 280 return command->InvalidParamResponse(param); |
283 ChildProcessSecurityPolicyImpl::GetInstance()->GrantReadFile( | 281 ChildProcessSecurityPolicyImpl::GetInstance()->GrantReadFile( |
284 host->GetProcess()->GetID(), base::FilePath(file)); | 282 host->GetProcess()->GetID(), base::FilePath(file)); |
285 } | 283 } |
286 return NULL; | 284 return NULL; |
287 } | 285 } |
288 | 286 |
289 | 287 |
290 // Network agent handlers ---------------------------------------------------- | 288 // Network agent handlers ---------------------------------------------------- |
291 | 289 |
292 scoped_refptr<DevToolsProtocol::Response> | 290 scoped_refptr<DevToolsProtocol::Response> |
293 RendererOverridesHandler::ClearBrowserCache( | 291 RendererOverridesHandler::ClearBrowserCache( |
294 scoped_refptr<DevToolsProtocol::Command> command) { | 292 scoped_refptr<DevToolsProtocol::Command> command) { |
295 GetContentClient()->browser()->ClearCache(agent_->GetRenderViewHost()); | 293 GetContentClient()->browser()->ClearCache(GetRenderViewHostImpl()); |
296 return command->SuccessResponse(NULL); | 294 return command->SuccessResponse(NULL); |
297 } | 295 } |
298 | 296 |
299 scoped_refptr<DevToolsProtocol::Response> | 297 scoped_refptr<DevToolsProtocol::Response> |
300 RendererOverridesHandler::ClearBrowserCookies( | 298 RendererOverridesHandler::ClearBrowserCookies( |
301 scoped_refptr<DevToolsProtocol::Command> command) { | 299 scoped_refptr<DevToolsProtocol::Command> command) { |
302 GetContentClient()->browser()->ClearCookies(agent_->GetRenderViewHost()); | 300 GetContentClient()->browser()->ClearCookies(GetRenderViewHostImpl()); |
303 return command->SuccessResponse(NULL); | 301 return command->SuccessResponse(NULL); |
304 } | 302 } |
305 | 303 |
306 | 304 |
307 // Page agent handlers ------------------------------------------------------- | 305 // Page agent handlers ------------------------------------------------------- |
308 | 306 |
309 scoped_refptr<DevToolsProtocol::Response> | 307 scoped_refptr<DevToolsProtocol::Response> |
310 RendererOverridesHandler::PageDisable( | 308 RendererOverridesHandler::PageDisable( |
311 scoped_refptr<DevToolsProtocol::Command> command) { | 309 scoped_refptr<DevToolsProtocol::Command> command) { |
312 RenderViewHostImpl* host = static_cast<RenderViewHostImpl*>( | 310 RenderViewHostImpl* host = GetRenderViewHostImpl(); |
313 agent_->GetRenderViewHost()); | |
314 if (screencast_command_ && host) | 311 if (screencast_command_ && host) |
315 host->SetTouchEventEmulationEnabled(false, false); | 312 host->SetTouchEventEmulationEnabled(false, false); |
316 screencast_command_ = NULL; | 313 screencast_command_ = NULL; |
317 return NULL; | 314 return NULL; |
318 } | 315 } |
319 | 316 |
320 scoped_refptr<DevToolsProtocol::Response> | 317 scoped_refptr<DevToolsProtocol::Response> |
321 RendererOverridesHandler::PageHandleJavaScriptDialog( | 318 RendererOverridesHandler::PageHandleJavaScriptDialog( |
322 scoped_refptr<DevToolsProtocol::Command> command) { | 319 scoped_refptr<DevToolsProtocol::Command> command) { |
323 base::DictionaryValue* params = command->params(); | 320 base::DictionaryValue* params = command->params(); |
324 const char* paramAccept = | 321 const char* paramAccept = |
325 devtools::Page::handleJavaScriptDialog::kParamAccept; | 322 devtools::Page::handleJavaScriptDialog::kParamAccept; |
326 bool accept = false; | 323 bool accept = false; |
327 if (!params || !params->GetBoolean(paramAccept, &accept)) | 324 if (!params || !params->GetBoolean(paramAccept, &accept)) |
328 return command->InvalidParamResponse(paramAccept); | 325 return command->InvalidParamResponse(paramAccept); |
329 base::string16 prompt_override; | 326 base::string16 prompt_override; |
330 base::string16* prompt_override_ptr = &prompt_override; | 327 base::string16* prompt_override_ptr = &prompt_override; |
331 if (!params || !params->GetString( | 328 if (!params || !params->GetString( |
332 devtools::Page::handleJavaScriptDialog::kParamPromptText, | 329 devtools::Page::handleJavaScriptDialog::kParamPromptText, |
333 prompt_override_ptr)) { | 330 prompt_override_ptr)) { |
334 prompt_override_ptr = NULL; | 331 prompt_override_ptr = NULL; |
335 } | 332 } |
336 | 333 |
337 RenderViewHost* host = agent_->GetRenderViewHost(); | 334 RenderViewHost* host = GetRenderViewHostImpl(); |
338 if (host) { | 335 if (host) { |
339 WebContents* web_contents = host->GetDelegate()->GetAsWebContents(); | 336 WebContents* web_contents = host->GetDelegate()->GetAsWebContents(); |
340 if (web_contents) { | 337 if (web_contents) { |
341 JavaScriptDialogManager* manager = | 338 JavaScriptDialogManager* manager = |
342 web_contents->GetDelegate()->GetJavaScriptDialogManager(); | 339 web_contents->GetDelegate()->GetJavaScriptDialogManager(); |
343 if (manager && manager->HandleJavaScriptDialog( | 340 if (manager && manager->HandleJavaScriptDialog( |
344 web_contents, accept, prompt_override_ptr)) { | 341 web_contents, accept, prompt_override_ptr)) { |
345 return command->SuccessResponse(new base::DictionaryValue()); | 342 return command->SuccessResponse(new base::DictionaryValue()); |
346 } | 343 } |
347 } | 344 } |
348 } | 345 } |
349 return command->InternalErrorResponse("No JavaScript dialog to handle"); | 346 return command->InternalErrorResponse("No JavaScript dialog to handle"); |
350 } | 347 } |
351 | 348 |
352 scoped_refptr<DevToolsProtocol::Response> | 349 scoped_refptr<DevToolsProtocol::Response> |
353 RendererOverridesHandler::PageNavigate( | 350 RendererOverridesHandler::PageNavigate( |
354 scoped_refptr<DevToolsProtocol::Command> command) { | 351 scoped_refptr<DevToolsProtocol::Command> command) { |
355 base::DictionaryValue* params = command->params(); | 352 base::DictionaryValue* params = command->params(); |
356 std::string url; | 353 std::string url; |
357 const char* param = devtools::Page::navigate::kParamUrl; | 354 const char* param = devtools::Page::navigate::kParamUrl; |
358 if (!params || !params->GetString(param, &url)) | 355 if (!params || !params->GetString(param, &url)) |
359 return command->InvalidParamResponse(param); | 356 return command->InvalidParamResponse(param); |
360 GURL gurl(url); | 357 GURL gurl(url); |
361 if (!gurl.is_valid()) { | 358 if (!gurl.is_valid()) { |
362 return command->InternalErrorResponse("Cannot navigate to invalid URL"); | 359 return command->InternalErrorResponse("Cannot navigate to invalid URL"); |
363 } | 360 } |
364 RenderViewHost* host = agent_->GetRenderViewHost(); | 361 RenderViewHost* host = GetRenderViewHostImpl(); |
365 if (host) { | 362 if (host) { |
366 WebContents* web_contents = host->GetDelegate()->GetAsWebContents(); | 363 WebContents* web_contents = host->GetDelegate()->GetAsWebContents(); |
367 if (web_contents) { | 364 if (web_contents) { |
368 web_contents->GetController() | 365 web_contents->GetController() |
369 .LoadURL(gurl, Referrer(), PAGE_TRANSITION_TYPED, std::string()); | 366 .LoadURL(gurl, Referrer(), PAGE_TRANSITION_TYPED, std::string()); |
370 // Fall through into the renderer. | 367 // Fall through into the renderer. |
371 return NULL; | 368 return NULL; |
372 } | 369 } |
373 } | 370 } |
374 return command->InternalErrorResponse("No WebContents to navigate"); | 371 return command->InternalErrorResponse("No WebContents to navigate"); |
375 } | 372 } |
376 | 373 |
377 scoped_refptr<DevToolsProtocol::Response> | 374 scoped_refptr<DevToolsProtocol::Response> |
378 RendererOverridesHandler::PageReload( | 375 RendererOverridesHandler::PageReload( |
379 scoped_refptr<DevToolsProtocol::Command> command) { | 376 scoped_refptr<DevToolsProtocol::Command> command) { |
380 RenderViewHost* host = agent_->GetRenderViewHost(); | 377 RenderViewHost* host = GetRenderViewHostImpl(); |
381 if (host) { | 378 if (host) { |
382 WebContents* web_contents = host->GetDelegate()->GetAsWebContents(); | 379 WebContents* web_contents = host->GetDelegate()->GetAsWebContents(); |
383 if (web_contents) { | 380 if (web_contents) { |
384 // Override only if it is crashed. | 381 // Override only if it is crashed. |
385 if (!web_contents->IsCrashed()) | 382 if (!web_contents->IsCrashed()) |
386 return NULL; | 383 return NULL; |
387 | 384 |
388 web_contents->GetController().Reload(false); | 385 web_contents->GetController().Reload(false); |
389 return command->SuccessResponse(NULL); | 386 return command->SuccessResponse(NULL); |
390 } | 387 } |
391 } | 388 } |
392 return command->InternalErrorResponse("No WebContents to reload"); | 389 return command->InternalErrorResponse("No WebContents to reload"); |
393 } | 390 } |
394 | 391 |
395 scoped_refptr<DevToolsProtocol::Response> | 392 scoped_refptr<DevToolsProtocol::Response> |
396 RendererOverridesHandler::PageGetNavigationHistory( | 393 RendererOverridesHandler::PageGetNavigationHistory( |
397 scoped_refptr<DevToolsProtocol::Command> command) { | 394 scoped_refptr<DevToolsProtocol::Command> command) { |
398 RenderViewHost* host = agent_->GetRenderViewHost(); | 395 RenderViewHost* host = GetRenderViewHostImpl(); |
399 if (host) { | 396 if (host) { |
400 WebContents* web_contents = host->GetDelegate()->GetAsWebContents(); | 397 WebContents* web_contents = host->GetDelegate()->GetAsWebContents(); |
401 if (web_contents) { | 398 if (web_contents) { |
402 base::DictionaryValue* result = new base::DictionaryValue(); | 399 base::DictionaryValue* result = new base::DictionaryValue(); |
403 NavigationController& controller = web_contents->GetController(); | 400 NavigationController& controller = web_contents->GetController(); |
404 result->SetInteger( | 401 result->SetInteger( |
405 devtools::Page::getNavigationHistory::kResponseCurrentIndex, | 402 devtools::Page::getNavigationHistory::kResponseCurrentIndex, |
406 controller.GetCurrentEntryIndex()); | 403 controller.GetCurrentEntryIndex()); |
407 base::ListValue* entries = new base::ListValue(); | 404 base::ListValue* entries = new base::ListValue(); |
408 for (int i = 0; i != controller.GetEntryCount(); ++i) { | 405 for (int i = 0; i != controller.GetEntryCount(); ++i) { |
(...skipping 22 matching lines...) Expand all Loading... |
431 scoped_refptr<DevToolsProtocol::Response> | 428 scoped_refptr<DevToolsProtocol::Response> |
432 RendererOverridesHandler::PageNavigateToHistoryEntry( | 429 RendererOverridesHandler::PageNavigateToHistoryEntry( |
433 scoped_refptr<DevToolsProtocol::Command> command) { | 430 scoped_refptr<DevToolsProtocol::Command> command) { |
434 base::DictionaryValue* params = command->params(); | 431 base::DictionaryValue* params = command->params(); |
435 const char* param = devtools::Page::navigateToHistoryEntry::kParamEntryId; | 432 const char* param = devtools::Page::navigateToHistoryEntry::kParamEntryId; |
436 int entry_id = 0; | 433 int entry_id = 0; |
437 if (!params || !params->GetInteger(param, &entry_id)) { | 434 if (!params || !params->GetInteger(param, &entry_id)) { |
438 return command->InvalidParamResponse(param); | 435 return command->InvalidParamResponse(param); |
439 } | 436 } |
440 | 437 |
441 RenderViewHost* host = agent_->GetRenderViewHost(); | 438 RenderViewHost* host = GetRenderViewHostImpl(); |
442 if (host) { | 439 if (host) { |
443 WebContents* web_contents = host->GetDelegate()->GetAsWebContents(); | 440 WebContents* web_contents = host->GetDelegate()->GetAsWebContents(); |
444 if (web_contents) { | 441 if (web_contents) { |
445 NavigationController& controller = web_contents->GetController(); | 442 NavigationController& controller = web_contents->GetController(); |
446 for (int i = 0; i != controller.GetEntryCount(); ++i) { | 443 for (int i = 0; i != controller.GetEntryCount(); ++i) { |
447 if (controller.GetEntryAtIndex(i)->GetUniqueID() == entry_id) { | 444 if (controller.GetEntryAtIndex(i)->GetUniqueID() == entry_id) { |
448 controller.GoToIndex(i); | 445 controller.GoToIndex(i); |
449 return command->SuccessResponse(new base::DictionaryValue()); | 446 return command->SuccessResponse(new base::DictionaryValue()); |
450 } | 447 } |
451 } | 448 } |
452 return command->InvalidParamResponse(param); | 449 return command->InvalidParamResponse(param); |
453 } | 450 } |
454 } | 451 } |
455 return command->InternalErrorResponse("No WebContents to navigate"); | 452 return command->InternalErrorResponse("No WebContents to navigate"); |
456 } | 453 } |
457 | 454 |
458 scoped_refptr<DevToolsProtocol::Response> | 455 scoped_refptr<DevToolsProtocol::Response> |
459 RendererOverridesHandler::PageCaptureScreenshot( | 456 RendererOverridesHandler::PageCaptureScreenshot( |
460 scoped_refptr<DevToolsProtocol::Command> command) { | 457 scoped_refptr<DevToolsProtocol::Command> command) { |
461 RenderViewHostImpl* host = static_cast<RenderViewHostImpl*>( | 458 RenderViewHostImpl* host = GetRenderViewHostImpl(); |
462 agent_->GetRenderViewHost()); | |
463 if (!host->GetView()) | 459 if (!host->GetView()) |
464 return command->InternalErrorResponse("Unable to access the view"); | 460 return command->InternalErrorResponse("Unable to access the view"); |
465 | 461 |
466 host->GetSnapshotFromBrowser( | 462 host->GetSnapshotFromBrowser( |
467 base::Bind(&RendererOverridesHandler::ScreenshotCaptured, | 463 base::Bind(&RendererOverridesHandler::ScreenshotCaptured, |
468 weak_factory_.GetWeakPtr(), command)); | 464 weak_factory_.GetWeakPtr(), command)); |
469 return command->AsyncResponsePromise(); | 465 return command->AsyncResponsePromise(); |
470 } | 466 } |
471 | 467 |
472 void RendererOverridesHandler::ScreenshotCaptured( | 468 void RendererOverridesHandler::ScreenshotCaptured( |
(...skipping 27 matching lines...) Expand all Loading... |
500 #else | 496 #else |
501 result->SetBoolean(devtools::kResult, false); | 497 result->SetBoolean(devtools::kResult, false); |
502 #endif // defined(OS_ANDROID) | 498 #endif // defined(OS_ANDROID) |
503 return command->SuccessResponse(result); | 499 return command->SuccessResponse(result); |
504 } | 500 } |
505 | 501 |
506 scoped_refptr<DevToolsProtocol::Response> | 502 scoped_refptr<DevToolsProtocol::Response> |
507 RendererOverridesHandler::PageStartScreencast( | 503 RendererOverridesHandler::PageStartScreencast( |
508 scoped_refptr<DevToolsProtocol::Command> command) { | 504 scoped_refptr<DevToolsProtocol::Command> command) { |
509 screencast_command_ = command; | 505 screencast_command_ = command; |
510 RenderViewHostImpl* host = static_cast<RenderViewHostImpl*>( | 506 RenderViewHostImpl* host = GetRenderViewHostImpl(); |
511 agent_->GetRenderViewHost()); | |
512 host->SetTouchEventEmulationEnabled(true, true); | 507 host->SetTouchEventEmulationEnabled(true, true); |
513 bool visible = !host->is_hidden(); | 508 bool visible = !host->is_hidden(); |
514 NotifyScreencastVisibility(visible); | 509 NotifyScreencastVisibility(visible); |
515 if (visible) { | 510 if (visible) { |
516 if (has_last_compositor_frame_metadata_) | 511 if (has_last_compositor_frame_metadata_) |
517 InnerSwapCompositorFrame(); | 512 InnerSwapCompositorFrame(); |
518 else | 513 else |
519 host->Send(new ViewMsg_ForceRedraw(host->GetRoutingID(), 0)); | 514 host->Send(new ViewMsg_ForceRedraw(host->GetRoutingID(), 0)); |
520 } | 515 } |
521 return command->SuccessResponse(NULL); | 516 return command->SuccessResponse(NULL); |
522 } | 517 } |
523 | 518 |
524 scoped_refptr<DevToolsProtocol::Response> | 519 scoped_refptr<DevToolsProtocol::Response> |
525 RendererOverridesHandler::PageStopScreencast( | 520 RendererOverridesHandler::PageStopScreencast( |
526 scoped_refptr<DevToolsProtocol::Command> command) { | 521 scoped_refptr<DevToolsProtocol::Command> command) { |
527 last_frame_time_ = base::TimeTicks(); | 522 last_frame_time_ = base::TimeTicks(); |
528 screencast_command_ = NULL; | 523 screencast_command_ = NULL; |
529 RenderViewHostImpl* host = static_cast<RenderViewHostImpl*>( | 524 RenderViewHostImpl* host = GetRenderViewHostImpl(); |
530 agent_->GetRenderViewHost()); | |
531 if (host) | 525 if (host) |
532 host->SetTouchEventEmulationEnabled(false, false); | 526 host->SetTouchEventEmulationEnabled(false, false); |
533 return command->SuccessResponse(NULL); | 527 return command->SuccessResponse(NULL); |
534 } | 528 } |
535 | 529 |
536 void RendererOverridesHandler::ScreencastFrameCaptured( | 530 void RendererOverridesHandler::ScreencastFrameCaptured( |
537 const std::string& format, | 531 const std::string& format, |
538 int quality, | 532 int quality, |
539 const cc::CompositorFrameMetadata& metadata, | 533 const cc::CompositorFrameMetadata& metadata, |
540 bool success, | 534 bool success, |
(...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
813 &security_origin)) { | 807 &security_origin)) { |
814 return command->InvalidParamResponse( | 808 return command->InvalidParamResponse( |
815 devtools::Page::queryUsageAndQuota::kParamSecurityOrigin); | 809 devtools::Page::queryUsageAndQuota::kParamSecurityOrigin); |
816 } | 810 } |
817 | 811 |
818 ResponseCallback callback = base::Bind( | 812 ResponseCallback callback = base::Bind( |
819 &RendererOverridesHandler::PageQueryUsageAndQuotaCompleted, | 813 &RendererOverridesHandler::PageQueryUsageAndQuotaCompleted, |
820 weak_factory_.GetWeakPtr(), | 814 weak_factory_.GetWeakPtr(), |
821 command); | 815 command); |
822 | 816 |
823 scoped_refptr<quota::QuotaManager> quota_manager = | 817 scoped_refptr<quota::QuotaManager> quota_manager = GetRenderViewHostImpl() |
824 agent_->GetRenderViewHost()->GetProcess()-> | 818 ->GetProcess() |
825 GetStoragePartition()->GetQuotaManager(); | 819 ->GetStoragePartition() |
| 820 ->GetQuotaManager(); |
826 | 821 |
827 BrowserThread::PostTask( | 822 BrowserThread::PostTask( |
828 BrowserThread::IO, FROM_HERE, | 823 BrowserThread::IO, FROM_HERE, |
829 base::Bind( | 824 base::Bind( |
830 &QueryUsageAndQuotaOnIOThread, | 825 &QueryUsageAndQuotaOnIOThread, |
831 quota_manager, | 826 quota_manager, |
832 GURL(security_origin), | 827 GURL(security_origin), |
833 callback)); | 828 callback)); |
834 | 829 |
835 return command->AsyncResponsePromise(); | 830 return command->AsyncResponsePromise(); |
(...skipping 20 matching lines...) Expand all Loading... |
856 scoped_refptr<DevToolsProtocol::Response> | 851 scoped_refptr<DevToolsProtocol::Response> |
857 RendererOverridesHandler::InputEmulateTouchFromMouseEvent( | 852 RendererOverridesHandler::InputEmulateTouchFromMouseEvent( |
858 scoped_refptr<DevToolsProtocol::Command> command) { | 853 scoped_refptr<DevToolsProtocol::Command> command) { |
859 if (!screencast_command_) | 854 if (!screencast_command_) |
860 return command->InternalErrorResponse("Screencast should be turned on"); | 855 return command->InternalErrorResponse("Screencast should be turned on"); |
861 | 856 |
862 base::DictionaryValue* params = command->params(); | 857 base::DictionaryValue* params = command->params(); |
863 if (!params) | 858 if (!params) |
864 return command->NoSuchMethodErrorResponse(); | 859 return command->NoSuchMethodErrorResponse(); |
865 | 860 |
866 RenderViewHost* host = agent_->GetRenderViewHost(); | 861 RenderViewHost* host = GetRenderViewHostImpl(); |
867 | 862 |
868 std::string type; | 863 std::string type; |
869 if (!params->GetString( | 864 if (!params->GetString( |
870 devtools::Input::emulateTouchFromMouseEvent::kParamType, | 865 devtools::Input::emulateTouchFromMouseEvent::kParamType, |
871 &type)) { | 866 &type)) { |
872 return command->InvalidParamResponse( | 867 return command->InvalidParamResponse( |
873 devtools::Input::emulateTouchFromMouseEvent::kParamType); | 868 devtools::Input::emulateTouchFromMouseEvent::kParamType); |
874 } | 869 } |
875 | 870 |
876 blink::WebMouseWheelEvent wheel_event; | 871 blink::WebMouseWheelEvent wheel_event; |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
974 devtools::Input::emulateTouchFromMouseEvent::kParamButton); | 969 devtools::Input::emulateTouchFromMouseEvent::kParamButton); |
975 } | 970 } |
976 | 971 |
977 if (event->type == WebInputEvent::MouseWheel) | 972 if (event->type == WebInputEvent::MouseWheel) |
978 host->ForwardWheelEvent(wheel_event); | 973 host->ForwardWheelEvent(wheel_event); |
979 else | 974 else |
980 host->ForwardMouseEvent(mouse_event); | 975 host->ForwardMouseEvent(mouse_event); |
981 return command->SuccessResponse(NULL); | 976 return command->SuccessResponse(NULL); |
982 } | 977 } |
983 | 978 |
| 979 RenderViewHostImpl* RendererOverridesHandler::GetRenderViewHostImpl() { |
| 980 return static_cast<RenderViewHostImpl*>( |
| 981 agent_->GetWebContents()->GetRenderViewHost()); |
| 982 } |
| 983 |
984 } // namespace content | 984 } // namespace content |
OLD | NEW |