| 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 |