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 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
65 | 65 |
66 static const char kPng[] = "png"; | 66 static const char kPng[] = "png"; |
67 static const char kJpeg[] = "jpeg"; | 67 static const char kJpeg[] = "jpeg"; |
68 static int kDefaultScreenshotQuality = 80; | 68 static int kDefaultScreenshotQuality = 80; |
69 static int kFrameRateThresholdMs = 100; | 69 static int kFrameRateThresholdMs = 100; |
70 static int kCaptureRetryLimit = 2; | 70 static int kCaptureRetryLimit = 2; |
71 | 71 |
72 } // namespace | 72 } // namespace |
73 | 73 |
74 RendererOverridesHandler::RendererOverridesHandler() | 74 RendererOverridesHandler::RendererOverridesHandler() |
75 : has_last_compositor_frame_metadata_(false), | 75 : page_domain_enabled_(false), |
| 76 has_last_compositor_frame_metadata_(false), |
76 capture_retry_count_(0), | 77 capture_retry_count_(0), |
77 touch_emulation_enabled_(false), | 78 touch_emulation_enabled_(false), |
78 color_picker_enabled_(false), | 79 color_picker_enabled_(false), |
79 last_cursor_x_(-1), | 80 last_cursor_x_(-1), |
80 last_cursor_y_(-1), | 81 last_cursor_y_(-1), |
81 weak_factory_(this) { | 82 weak_factory_(this) { |
82 RegisterCommandHandler( | 83 RegisterCommandHandler( |
83 devtools::DOM::setFileInputFiles::kName, | 84 devtools::DOM::setFileInputFiles::kName, |
84 base::Bind( | 85 base::Bind( |
85 &RendererOverridesHandler::GrantPermissionsForSetFileInputFiles, | 86 &RendererOverridesHandler::GrantPermissionsForSetFileInputFiles, |
86 base::Unretained(this))); | 87 base::Unretained(this))); |
87 RegisterCommandHandler( | 88 RegisterCommandHandler( |
88 devtools::Network::canEmulateNetworkConditions::kName, | 89 devtools::Network::canEmulateNetworkConditions::kName, |
89 base::Bind( | 90 base::Bind( |
90 &RendererOverridesHandler::CanEmulateNetworkConditions, | 91 &RendererOverridesHandler::CanEmulateNetworkConditions, |
91 base::Unretained(this))); | 92 base::Unretained(this))); |
92 RegisterCommandHandler( | 93 RegisterCommandHandler( |
93 devtools::Network::clearBrowserCache::kName, | 94 devtools::Network::clearBrowserCache::kName, |
94 base::Bind( | 95 base::Bind( |
95 &RendererOverridesHandler::ClearBrowserCache, | 96 &RendererOverridesHandler::ClearBrowserCache, |
96 base::Unretained(this))); | 97 base::Unretained(this))); |
97 RegisterCommandHandler( | 98 RegisterCommandHandler( |
98 devtools::Network::clearBrowserCookies::kName, | 99 devtools::Network::clearBrowserCookies::kName, |
99 base::Bind( | 100 base::Bind( |
100 &RendererOverridesHandler::ClearBrowserCookies, | 101 &RendererOverridesHandler::ClearBrowserCookies, |
101 base::Unretained(this))); | 102 base::Unretained(this))); |
102 RegisterCommandHandler( | 103 RegisterCommandHandler( |
| 104 devtools::Page::enable::kName, |
| 105 base::Bind( |
| 106 &RendererOverridesHandler::PageEnable, base::Unretained(this))); |
| 107 RegisterCommandHandler( |
103 devtools::Page::disable::kName, | 108 devtools::Page::disable::kName, |
104 base::Bind( | 109 base::Bind( |
105 &RendererOverridesHandler::PageDisable, base::Unretained(this))); | 110 &RendererOverridesHandler::PageDisable, base::Unretained(this))); |
106 RegisterCommandHandler( | 111 RegisterCommandHandler( |
107 devtools::Page::handleJavaScriptDialog::kName, | 112 devtools::Page::handleJavaScriptDialog::kName, |
108 base::Bind( | 113 base::Bind( |
109 &RendererOverridesHandler::PageHandleJavaScriptDialog, | 114 &RendererOverridesHandler::PageHandleJavaScriptDialog, |
110 base::Unretained(this))); | 115 base::Unretained(this))); |
111 RegisterCommandHandler( | 116 RegisterCommandHandler( |
112 devtools::Page::navigate::kName, | 117 devtools::Page::navigate::kName, |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
209 host->AddMouseEventCallback(mouse_event_callback_); | 214 host->AddMouseEventCallback(mouse_event_callback_); |
210 } | 215 } |
211 | 216 |
212 void RendererOverridesHandler::ClearRenderViewHost() { | 217 void RendererOverridesHandler::ClearRenderViewHost() { |
213 if (host_) | 218 if (host_) |
214 host_->RemoveMouseEventCallback(mouse_event_callback_); | 219 host_->RemoveMouseEventCallback(mouse_event_callback_); |
215 host_ = NULL; | 220 host_ = NULL; |
216 ResetColorPickerFrame(); | 221 ResetColorPickerFrame(); |
217 } | 222 } |
218 | 223 |
| 224 void RendererOverridesHandler::DidAttachInterstitialPage() { |
| 225 if (page_domain_enabled_) |
| 226 SendNotification(devtools::Page::interstitialShown::kName, NULL); |
| 227 } |
| 228 |
| 229 void RendererOverridesHandler::DidDetachInterstitialPage() { |
| 230 if (page_domain_enabled_) |
| 231 SendNotification(devtools::Page::interstitialHidden::kName, NULL); |
| 232 } |
| 233 |
219 void RendererOverridesHandler::InnerSwapCompositorFrame() { | 234 void RendererOverridesHandler::InnerSwapCompositorFrame() { |
220 if ((base::TimeTicks::Now() - last_frame_time_).InMilliseconds() < | 235 if ((base::TimeTicks::Now() - last_frame_time_).InMilliseconds() < |
221 kFrameRateThresholdMs) { | 236 kFrameRateThresholdMs) { |
222 return; | 237 return; |
223 } | 238 } |
224 | 239 |
225 if (!host_ || !host_->GetView()) | 240 if (!host_ || !host_->GetView()) |
226 return; | 241 return; |
227 | 242 |
228 last_frame_time_ = base::TimeTicks::Now(); | 243 last_frame_time_ = base::TimeTicks::Now(); |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
334 RendererOverridesHandler::ClearBrowserCookies( | 349 RendererOverridesHandler::ClearBrowserCookies( |
335 scoped_refptr<DevToolsProtocol::Command> command) { | 350 scoped_refptr<DevToolsProtocol::Command> command) { |
336 GetContentClient()->browser()->ClearCookies(host_); | 351 GetContentClient()->browser()->ClearCookies(host_); |
337 return command->SuccessResponse(NULL); | 352 return command->SuccessResponse(NULL); |
338 } | 353 } |
339 | 354 |
340 | 355 |
341 // Page agent handlers ------------------------------------------------------- | 356 // Page agent handlers ------------------------------------------------------- |
342 | 357 |
343 scoped_refptr<DevToolsProtocol::Response> | 358 scoped_refptr<DevToolsProtocol::Response> |
| 359 RendererOverridesHandler::PageEnable( |
| 360 scoped_refptr<DevToolsProtocol::Command> command) { |
| 361 page_domain_enabled_ = true; |
| 362 // Fall through to the renderer. |
| 363 return NULL; |
| 364 } |
| 365 |
| 366 scoped_refptr<DevToolsProtocol::Response> |
344 RendererOverridesHandler::PageDisable( | 367 RendererOverridesHandler::PageDisable( |
345 scoped_refptr<DevToolsProtocol::Command> command) { | 368 scoped_refptr<DevToolsProtocol::Command> command) { |
| 369 page_domain_enabled_ = false; |
346 OnClientDetached(); | 370 OnClientDetached(); |
| 371 // Fall through to the renderer. |
347 return NULL; | 372 return NULL; |
348 } | 373 } |
349 | 374 |
350 scoped_refptr<DevToolsProtocol::Response> | 375 scoped_refptr<DevToolsProtocol::Response> |
351 RendererOverridesHandler::PageHandleJavaScriptDialog( | 376 RendererOverridesHandler::PageHandleJavaScriptDialog( |
352 scoped_refptr<DevToolsProtocol::Command> command) { | 377 scoped_refptr<DevToolsProtocol::Command> command) { |
353 base::DictionaryValue* params = command->params(); | 378 base::DictionaryValue* params = command->params(); |
354 const char* paramAccept = | 379 const char* paramAccept = |
355 devtools::Page::handleJavaScriptDialog::kParamAccept; | 380 devtools::Page::handleJavaScriptDialog::kParamAccept; |
356 bool accept = false; | 381 bool accept = false; |
(...skipping 922 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1279 return; | 1304 return; |
1280 bool enabled = touch_emulation_enabled_ || screencast_command_; | 1305 bool enabled = touch_emulation_enabled_ || screencast_command_; |
1281 host_->SetTouchEventEmulationEnabled(enabled); | 1306 host_->SetTouchEventEmulationEnabled(enabled); |
1282 WebContentsImpl* web_contents = static_cast<WebContentsImpl*>( | 1307 WebContentsImpl* web_contents = static_cast<WebContentsImpl*>( |
1283 WebContents::FromRenderViewHost(host_)); | 1308 WebContents::FromRenderViewHost(host_)); |
1284 if (web_contents) | 1309 if (web_contents) |
1285 web_contents->SetForceDisableOverscrollContent(enabled); | 1310 web_contents->SetForceDisableOverscrollContent(enabled); |
1286 } | 1311 } |
1287 | 1312 |
1288 } // namespace content | 1313 } // namespace content |
OLD | NEW |