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

Side by Side Diff: content/browser/devtools/renderer_overrides_handler.cc

Issue 442303002: DevTools: migrate DevTools APIs to use WebContents instead of RenderViewHost. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: for landing Created 6 years, 4 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 | Annotate | Revision Log
OLDNEW
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
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
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 WebContents* web_contents = agent_->GetWebContents();
338 if (host) { 335 if (web_contents) {
339 WebContents* web_contents = host->GetDelegate()->GetAsWebContents(); 336 JavaScriptDialogManager* manager =
340 if (web_contents) { 337 web_contents->GetDelegate()->GetJavaScriptDialogManager();
341 JavaScriptDialogManager* manager = 338 if (manager && manager->HandleJavaScriptDialog(
342 web_contents->GetDelegate()->GetJavaScriptDialogManager(); 339 web_contents, accept, prompt_override_ptr)) {
343 if (manager && manager->HandleJavaScriptDialog( 340 return command->SuccessResponse(new base::DictionaryValue());
344 web_contents, accept, prompt_override_ptr)) {
345 return command->SuccessResponse(new base::DictionaryValue());
346 }
347 } 341 }
348 } 342 }
349 return command->InternalErrorResponse("No JavaScript dialog to handle"); 343 return command->InternalErrorResponse("No JavaScript dialog to handle");
350 } 344 }
351 345
352 scoped_refptr<DevToolsProtocol::Response> 346 scoped_refptr<DevToolsProtocol::Response>
353 RendererOverridesHandler::PageNavigate( 347 RendererOverridesHandler::PageNavigate(
354 scoped_refptr<DevToolsProtocol::Command> command) { 348 scoped_refptr<DevToolsProtocol::Command> command) {
355 base::DictionaryValue* params = command->params(); 349 base::DictionaryValue* params = command->params();
356 std::string url; 350 std::string url;
357 const char* param = devtools::Page::navigate::kParamUrl; 351 const char* param = devtools::Page::navigate::kParamUrl;
358 if (!params || !params->GetString(param, &url)) 352 if (!params || !params->GetString(param, &url))
359 return command->InvalidParamResponse(param); 353 return command->InvalidParamResponse(param);
354
360 GURL gurl(url); 355 GURL gurl(url);
361 if (!gurl.is_valid()) { 356 if (!gurl.is_valid())
362 return command->InternalErrorResponse("Cannot navigate to invalid URL"); 357 return command->InternalErrorResponse("Cannot navigate to invalid URL");
358
359 WebContents* web_contents = agent_->GetWebContents();
360 if (web_contents) {
361 web_contents->GetController()
362 .LoadURL(gurl, Referrer(), PAGE_TRANSITION_TYPED, std::string());
363 // Fall through into the renderer.
364 return NULL;
363 } 365 }
364 RenderViewHost* host = agent_->GetRenderViewHost(); 366
365 if (host) {
366 WebContents* web_contents = host->GetDelegate()->GetAsWebContents();
367 if (web_contents) {
368 web_contents->GetController()
369 .LoadURL(gurl, Referrer(), PAGE_TRANSITION_TYPED, std::string());
370 // Fall through into the renderer.
371 return NULL;
372 }
373 }
374 return command->InternalErrorResponse("No WebContents to navigate"); 367 return command->InternalErrorResponse("No WebContents to navigate");
375 } 368 }
376 369
377 scoped_refptr<DevToolsProtocol::Response> 370 scoped_refptr<DevToolsProtocol::Response>
378 RendererOverridesHandler::PageReload( 371 RendererOverridesHandler::PageReload(
379 scoped_refptr<DevToolsProtocol::Command> command) { 372 scoped_refptr<DevToolsProtocol::Command> command) {
380 RenderViewHost* host = agent_->GetRenderViewHost(); 373 WebContents* web_contents = agent_->GetWebContents();
381 if (host) { 374 if (web_contents) {
382 WebContents* web_contents = host->GetDelegate()->GetAsWebContents(); 375 // Override only if it is crashed.
383 if (web_contents) { 376 if (!web_contents->IsCrashed())
384 // Override only if it is crashed. 377 return NULL;
385 if (!web_contents->IsCrashed())
386 return NULL;
387 378
388 web_contents->GetController().Reload(false); 379 web_contents->GetController().Reload(false);
389 return command->SuccessResponse(NULL); 380 return command->SuccessResponse(NULL);
390 }
391 } 381 }
392 return command->InternalErrorResponse("No WebContents to reload"); 382 return command->InternalErrorResponse("No WebContents to reload");
393 } 383 }
394 384
395 scoped_refptr<DevToolsProtocol::Response> 385 scoped_refptr<DevToolsProtocol::Response>
396 RendererOverridesHandler::PageGetNavigationHistory( 386 RendererOverridesHandler::PageGetNavigationHistory(
397 scoped_refptr<DevToolsProtocol::Command> command) { 387 scoped_refptr<DevToolsProtocol::Command> command) {
398 RenderViewHost* host = agent_->GetRenderViewHost(); 388 WebContents* web_contents = agent_->GetWebContents();
399 if (host) { 389 if (web_contents) {
400 WebContents* web_contents = host->GetDelegate()->GetAsWebContents(); 390 base::DictionaryValue* result = new base::DictionaryValue();
401 if (web_contents) { 391 NavigationController& controller = web_contents->GetController();
402 base::DictionaryValue* result = new base::DictionaryValue(); 392 result->SetInteger(
403 NavigationController& controller = web_contents->GetController(); 393 devtools::Page::getNavigationHistory::kResponseCurrentIndex,
404 result->SetInteger( 394 controller.GetCurrentEntryIndex());
405 devtools::Page::getNavigationHistory::kResponseCurrentIndex, 395 base::ListValue* entries = new base::ListValue();
406 controller.GetCurrentEntryIndex()); 396 for (int i = 0; i != controller.GetEntryCount(); ++i) {
407 base::ListValue* entries = new base::ListValue(); 397 const NavigationEntry* entry = controller.GetEntryAtIndex(i);
408 for (int i = 0; i != controller.GetEntryCount(); ++i) { 398 base::DictionaryValue* entry_value = new base::DictionaryValue();
409 const NavigationEntry* entry = controller.GetEntryAtIndex(i); 399 entry_value->SetInteger(
410 base::DictionaryValue* entry_value = new base::DictionaryValue(); 400 devtools::Page::NavigationEntry::kParamId,
411 entry_value->SetInteger( 401 entry->GetUniqueID());
412 devtools::Page::NavigationEntry::kParamId, 402 entry_value->SetString(
413 entry->GetUniqueID()); 403 devtools::Page::NavigationEntry::kParamUrl,
414 entry_value->SetString( 404 entry->GetURL().spec());
415 devtools::Page::NavigationEntry::kParamUrl, 405 entry_value->SetString(
416 entry->GetURL().spec()); 406 devtools::Page::NavigationEntry::kParamTitle,
417 entry_value->SetString( 407 entry->GetTitle());
418 devtools::Page::NavigationEntry::kParamTitle, 408 entries->Append(entry_value);
419 entry->GetTitle());
420 entries->Append(entry_value);
421 }
422 result->Set(
423 devtools::Page::getNavigationHistory::kResponseEntries,
424 entries);
425 return command->SuccessResponse(result);
426 } 409 }
410 result->Set(
411 devtools::Page::getNavigationHistory::kResponseEntries,
412 entries);
413 return command->SuccessResponse(result);
427 } 414 }
428 return command->InternalErrorResponse("No WebContents to navigate"); 415 return command->InternalErrorResponse("No WebContents to navigate");
429 } 416 }
430 417
431 scoped_refptr<DevToolsProtocol::Response> 418 scoped_refptr<DevToolsProtocol::Response>
432 RendererOverridesHandler::PageNavigateToHistoryEntry( 419 RendererOverridesHandler::PageNavigateToHistoryEntry(
433 scoped_refptr<DevToolsProtocol::Command> command) { 420 scoped_refptr<DevToolsProtocol::Command> command) {
434 base::DictionaryValue* params = command->params(); 421 base::DictionaryValue* params = command->params();
435 const char* param = devtools::Page::navigateToHistoryEntry::kParamEntryId; 422 const char* param = devtools::Page::navigateToHistoryEntry::kParamEntryId;
436 int entry_id = 0; 423 int entry_id = 0;
437 if (!params || !params->GetInteger(param, &entry_id)) { 424 if (!params || !params->GetInteger(param, &entry_id)) {
438 return command->InvalidParamResponse(param); 425 return command->InvalidParamResponse(param);
439 } 426 }
440 427
441 RenderViewHost* host = agent_->GetRenderViewHost(); 428 WebContents* web_contents = agent_->GetWebContents();
442 if (host) { 429 if (web_contents) {
443 WebContents* web_contents = host->GetDelegate()->GetAsWebContents(); 430 NavigationController& controller = web_contents->GetController();
444 if (web_contents) { 431 for (int i = 0; i != controller.GetEntryCount(); ++i) {
445 NavigationController& controller = web_contents->GetController(); 432 if (controller.GetEntryAtIndex(i)->GetUniqueID() == entry_id) {
446 for (int i = 0; i != controller.GetEntryCount(); ++i) { 433 controller.GoToIndex(i);
447 if (controller.GetEntryAtIndex(i)->GetUniqueID() == entry_id) { 434 return command->SuccessResponse(new base::DictionaryValue());
448 controller.GoToIndex(i);
449 return command->SuccessResponse(new base::DictionaryValue());
450 }
451 } 435 }
452 return command->InvalidParamResponse(param);
453 } 436 }
437 return command->InvalidParamResponse(param);
454 } 438 }
455 return command->InternalErrorResponse("No WebContents to navigate"); 439 return command->InternalErrorResponse("No WebContents to navigate");
456 } 440 }
457 441
458 scoped_refptr<DevToolsProtocol::Response> 442 scoped_refptr<DevToolsProtocol::Response>
459 RendererOverridesHandler::PageCaptureScreenshot( 443 RendererOverridesHandler::PageCaptureScreenshot(
460 scoped_refptr<DevToolsProtocol::Command> command) { 444 scoped_refptr<DevToolsProtocol::Command> command) {
461 RenderViewHostImpl* host = static_cast<RenderViewHostImpl*>( 445 RenderViewHostImpl* host = GetRenderViewHostImpl();
462 agent_->GetRenderViewHost());
463 if (!host->GetView()) 446 if (!host->GetView())
464 return command->InternalErrorResponse("Unable to access the view"); 447 return command->InternalErrorResponse("Unable to access the view");
465 448
466 host->GetSnapshotFromBrowser( 449 host->GetSnapshotFromBrowser(
467 base::Bind(&RendererOverridesHandler::ScreenshotCaptured, 450 base::Bind(&RendererOverridesHandler::ScreenshotCaptured,
468 weak_factory_.GetWeakPtr(), command)); 451 weak_factory_.GetWeakPtr(), command));
469 return command->AsyncResponsePromise(); 452 return command->AsyncResponsePromise();
470 } 453 }
471 454
472 void RendererOverridesHandler::ScreenshotCaptured( 455 void RendererOverridesHandler::ScreenshotCaptured(
(...skipping 27 matching lines...) Expand all
500 #else 483 #else
501 result->SetBoolean(devtools::kResult, false); 484 result->SetBoolean(devtools::kResult, false);
502 #endif // defined(OS_ANDROID) 485 #endif // defined(OS_ANDROID)
503 return command->SuccessResponse(result); 486 return command->SuccessResponse(result);
504 } 487 }
505 488
506 scoped_refptr<DevToolsProtocol::Response> 489 scoped_refptr<DevToolsProtocol::Response>
507 RendererOverridesHandler::PageStartScreencast( 490 RendererOverridesHandler::PageStartScreencast(
508 scoped_refptr<DevToolsProtocol::Command> command) { 491 scoped_refptr<DevToolsProtocol::Command> command) {
509 screencast_command_ = command; 492 screencast_command_ = command;
510 RenderViewHostImpl* host = static_cast<RenderViewHostImpl*>( 493 RenderViewHostImpl* host = GetRenderViewHostImpl();
511 agent_->GetRenderViewHost());
512 host->SetTouchEventEmulationEnabled(true, true); 494 host->SetTouchEventEmulationEnabled(true, true);
513 bool visible = !host->is_hidden(); 495 bool visible = !host->is_hidden();
514 NotifyScreencastVisibility(visible); 496 NotifyScreencastVisibility(visible);
515 if (visible) { 497 if (visible) {
516 if (has_last_compositor_frame_metadata_) 498 if (has_last_compositor_frame_metadata_)
517 InnerSwapCompositorFrame(); 499 InnerSwapCompositorFrame();
518 else 500 else
519 host->Send(new ViewMsg_ForceRedraw(host->GetRoutingID(), 0)); 501 host->Send(new ViewMsg_ForceRedraw(host->GetRoutingID(), 0));
520 } 502 }
521 return command->SuccessResponse(NULL); 503 return command->SuccessResponse(NULL);
522 } 504 }
523 505
524 scoped_refptr<DevToolsProtocol::Response> 506 scoped_refptr<DevToolsProtocol::Response>
525 RendererOverridesHandler::PageStopScreencast( 507 RendererOverridesHandler::PageStopScreencast(
526 scoped_refptr<DevToolsProtocol::Command> command) { 508 scoped_refptr<DevToolsProtocol::Command> command) {
527 last_frame_time_ = base::TimeTicks(); 509 last_frame_time_ = base::TimeTicks();
528 screencast_command_ = NULL; 510 screencast_command_ = NULL;
529 RenderViewHostImpl* host = static_cast<RenderViewHostImpl*>( 511 RenderViewHostImpl* host = GetRenderViewHostImpl();
530 agent_->GetRenderViewHost());
531 if (host) 512 if (host)
532 host->SetTouchEventEmulationEnabled(false, false); 513 host->SetTouchEventEmulationEnabled(false, false);
533 return command->SuccessResponse(NULL); 514 return command->SuccessResponse(NULL);
534 } 515 }
535 516
536 void RendererOverridesHandler::ScreencastFrameCaptured( 517 void RendererOverridesHandler::ScreencastFrameCaptured(
537 const std::string& format, 518 const std::string& format,
538 int quality, 519 int quality,
539 const cc::CompositorFrameMetadata& metadata, 520 const cc::CompositorFrameMetadata& metadata,
540 bool success, 521 bool success,
(...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after
813 &security_origin)) { 794 &security_origin)) {
814 return command->InvalidParamResponse( 795 return command->InvalidParamResponse(
815 devtools::Page::queryUsageAndQuota::kParamSecurityOrigin); 796 devtools::Page::queryUsageAndQuota::kParamSecurityOrigin);
816 } 797 }
817 798
818 ResponseCallback callback = base::Bind( 799 ResponseCallback callback = base::Bind(
819 &RendererOverridesHandler::PageQueryUsageAndQuotaCompleted, 800 &RendererOverridesHandler::PageQueryUsageAndQuotaCompleted,
820 weak_factory_.GetWeakPtr(), 801 weak_factory_.GetWeakPtr(),
821 command); 802 command);
822 803
823 scoped_refptr<quota::QuotaManager> quota_manager = 804 scoped_refptr<quota::QuotaManager> quota_manager = GetRenderViewHostImpl()
824 agent_->GetRenderViewHost()->GetProcess()-> 805 ->GetProcess()
825 GetStoragePartition()->GetQuotaManager(); 806 ->GetStoragePartition()
807 ->GetQuotaManager();
826 808
827 BrowserThread::PostTask( 809 BrowserThread::PostTask(
828 BrowserThread::IO, FROM_HERE, 810 BrowserThread::IO, FROM_HERE,
829 base::Bind( 811 base::Bind(
830 &QueryUsageAndQuotaOnIOThread, 812 &QueryUsageAndQuotaOnIOThread,
831 quota_manager, 813 quota_manager,
832 GURL(security_origin), 814 GURL(security_origin),
833 callback)); 815 callback));
834 816
835 return command->AsyncResponsePromise(); 817 return command->AsyncResponsePromise();
(...skipping 20 matching lines...) Expand all
856 scoped_refptr<DevToolsProtocol::Response> 838 scoped_refptr<DevToolsProtocol::Response>
857 RendererOverridesHandler::InputEmulateTouchFromMouseEvent( 839 RendererOverridesHandler::InputEmulateTouchFromMouseEvent(
858 scoped_refptr<DevToolsProtocol::Command> command) { 840 scoped_refptr<DevToolsProtocol::Command> command) {
859 if (!screencast_command_) 841 if (!screencast_command_)
860 return command->InternalErrorResponse("Screencast should be turned on"); 842 return command->InternalErrorResponse("Screencast should be turned on");
861 843
862 base::DictionaryValue* params = command->params(); 844 base::DictionaryValue* params = command->params();
863 if (!params) 845 if (!params)
864 return command->NoSuchMethodErrorResponse(); 846 return command->NoSuchMethodErrorResponse();
865 847
866 RenderViewHost* host = agent_->GetRenderViewHost();
867
868 std::string type; 848 std::string type;
869 if (!params->GetString( 849 if (!params->GetString(
870 devtools::Input::emulateTouchFromMouseEvent::kParamType, 850 devtools::Input::emulateTouchFromMouseEvent::kParamType,
871 &type)) { 851 &type)) {
872 return command->InvalidParamResponse( 852 return command->InvalidParamResponse(
873 devtools::Input::emulateTouchFromMouseEvent::kParamType); 853 devtools::Input::emulateTouchFromMouseEvent::kParamType);
874 } 854 }
875 855
876 blink::WebMouseWheelEvent wheel_event; 856 blink::WebMouseWheelEvent wheel_event;
877 blink::WebMouseEvent mouse_event; 857 blink::WebMouseEvent mouse_event;
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
967 event->button = WebMouseEvent::ButtonMiddle; 947 event->button = WebMouseEvent::ButtonMiddle;
968 event->modifiers |= WebInputEvent::MiddleButtonDown; 948 event->modifiers |= WebInputEvent::MiddleButtonDown;
969 } else if (button == "right") { 949 } else if (button == "right") {
970 event->button = WebMouseEvent::ButtonRight; 950 event->button = WebMouseEvent::ButtonRight;
971 event->modifiers |= WebInputEvent::RightButtonDown; 951 event->modifiers |= WebInputEvent::RightButtonDown;
972 } else { 952 } else {
973 return command->InvalidParamResponse( 953 return command->InvalidParamResponse(
974 devtools::Input::emulateTouchFromMouseEvent::kParamButton); 954 devtools::Input::emulateTouchFromMouseEvent::kParamButton);
975 } 955 }
976 956
957 RenderViewHost* host = GetRenderViewHostImpl();
977 if (event->type == WebInputEvent::MouseWheel) 958 if (event->type == WebInputEvent::MouseWheel)
978 host->ForwardWheelEvent(wheel_event); 959 host->ForwardWheelEvent(wheel_event);
979 else 960 else
980 host->ForwardMouseEvent(mouse_event); 961 host->ForwardMouseEvent(mouse_event);
981 return command->SuccessResponse(NULL); 962 return command->SuccessResponse(NULL);
982 } 963 }
983 964
965 RenderViewHostImpl* RendererOverridesHandler::GetRenderViewHostImpl() {
966 return static_cast<RenderViewHostImpl*>(
967 agent_->GetWebContents()->GetRenderViewHost());
968 }
969
984 } // namespace content 970 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698