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 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
83 | 83 |
84 params->GetDouble( | 84 params->GetDouble( |
85 devtools::Input::emulateTouchFromMouseEvent::kParamTimestamp, | 85 devtools::Input::emulateTouchFromMouseEvent::kParamTimestamp, |
86 &event->timeStampSeconds); | 86 &event->timeStampSeconds); |
87 } | 87 } |
88 | 88 |
89 } // namespace | 89 } // namespace |
90 | 90 |
91 RendererOverridesHandler::RendererOverridesHandler(DevToolsAgentHost* agent) | 91 RendererOverridesHandler::RendererOverridesHandler(DevToolsAgentHost* agent) |
92 : agent_(agent), | 92 : agent_(agent), |
| 93 has_last_compositor_frame_metadata_(false), |
93 capture_retry_count_(0), | 94 capture_retry_count_(0), |
94 weak_factory_(this) { | 95 weak_factory_(this) { |
95 RegisterCommandHandler( | 96 RegisterCommandHandler( |
96 devtools::DOM::setFileInputFiles::kName, | 97 devtools::DOM::setFileInputFiles::kName, |
97 base::Bind( | 98 base::Bind( |
98 &RendererOverridesHandler::GrantPermissionsForSetFileInputFiles, | 99 &RendererOverridesHandler::GrantPermissionsForSetFileInputFiles, |
99 base::Unretained(this))); | 100 base::Unretained(this))); |
100 RegisterCommandHandler( | 101 RegisterCommandHandler( |
101 devtools::Network::clearBrowserCache::kName, | 102 devtools::Network::clearBrowserCache::kName, |
102 base::Bind( | 103 base::Bind( |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
184 RenderViewHostImpl* host = static_cast<RenderViewHostImpl*>( | 185 RenderViewHostImpl* host = static_cast<RenderViewHostImpl*>( |
185 agent_->GetRenderViewHost()); | 186 agent_->GetRenderViewHost()); |
186 if (screencast_command_ && host) | 187 if (screencast_command_ && host) |
187 host->SetTouchEventEmulationEnabled(false, false); | 188 host->SetTouchEventEmulationEnabled(false, false); |
188 screencast_command_ = NULL; | 189 screencast_command_ = NULL; |
189 } | 190 } |
190 | 191 |
191 void RendererOverridesHandler::OnSwapCompositorFrame( | 192 void RendererOverridesHandler::OnSwapCompositorFrame( |
192 const cc::CompositorFrameMetadata& frame_metadata) { | 193 const cc::CompositorFrameMetadata& frame_metadata) { |
193 last_compositor_frame_metadata_ = frame_metadata; | 194 last_compositor_frame_metadata_ = frame_metadata; |
| 195 has_last_compositor_frame_metadata_ = true; |
194 | 196 |
195 if (screencast_command_) | 197 if (screencast_command_) |
196 InnerSwapCompositorFrame(); | 198 InnerSwapCompositorFrame(); |
197 } | 199 } |
198 | 200 |
199 void RendererOverridesHandler::OnVisibilityChanged(bool visible) { | 201 void RendererOverridesHandler::OnVisibilityChanged(bool visible) { |
200 if (!screencast_command_) | 202 if (!screencast_command_) |
201 return; | 203 return; |
202 NotifyScreencastVisibility(visible); | 204 NotifyScreencastVisibility(visible); |
203 } | 205 } |
(...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
534 | 536 |
535 scoped_refptr<DevToolsProtocol::Response> | 537 scoped_refptr<DevToolsProtocol::Response> |
536 RendererOverridesHandler::PageStartScreencast( | 538 RendererOverridesHandler::PageStartScreencast( |
537 scoped_refptr<DevToolsProtocol::Command> command) { | 539 scoped_refptr<DevToolsProtocol::Command> command) { |
538 screencast_command_ = command; | 540 screencast_command_ = command; |
539 RenderViewHostImpl* host = static_cast<RenderViewHostImpl*>( | 541 RenderViewHostImpl* host = static_cast<RenderViewHostImpl*>( |
540 agent_->GetRenderViewHost()); | 542 agent_->GetRenderViewHost()); |
541 host->SetTouchEventEmulationEnabled(true, true); | 543 host->SetTouchEventEmulationEnabled(true, true); |
542 bool visible = !host->is_hidden(); | 544 bool visible = !host->is_hidden(); |
543 NotifyScreencastVisibility(visible); | 545 NotifyScreencastVisibility(visible); |
544 if (visible) | 546 if (visible) { |
545 InnerSwapCompositorFrame(); | 547 if (has_last_compositor_frame_metadata_) |
| 548 InnerSwapCompositorFrame(); |
| 549 else |
| 550 host->Send(new ViewMsg_ForceRedraw(host->GetRoutingID(), 0)); |
| 551 } |
546 return command->SuccessResponse(NULL); | 552 return command->SuccessResponse(NULL); |
547 } | 553 } |
548 | 554 |
549 scoped_refptr<DevToolsProtocol::Response> | 555 scoped_refptr<DevToolsProtocol::Response> |
550 RendererOverridesHandler::PageStopScreencast( | 556 RendererOverridesHandler::PageStopScreencast( |
551 scoped_refptr<DevToolsProtocol::Command> command) { | 557 scoped_refptr<DevToolsProtocol::Command> command) { |
552 last_frame_time_ = base::TimeTicks(); | 558 last_frame_time_ = base::TimeTicks(); |
553 screencast_command_ = NULL; | 559 screencast_command_ = NULL; |
554 RenderViewHostImpl* host = static_cast<RenderViewHostImpl*>( | 560 RenderViewHostImpl* host = static_cast<RenderViewHostImpl*>( |
555 agent_->GetRenderViewHost()); | 561 agent_->GetRenderViewHost()); |
(...skipping 523 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1079 return NULL; | 1085 return NULL; |
1080 } | 1086 } |
1081 event.data.pinchUpdate.scale = static_cast<float>(scale); | 1087 event.data.pinchUpdate.scale = static_cast<float>(scale); |
1082 } | 1088 } |
1083 | 1089 |
1084 host->ForwardGestureEvent(event); | 1090 host->ForwardGestureEvent(event); |
1085 return command->SuccessResponse(NULL); | 1091 return command->SuccessResponse(NULL); |
1086 } | 1092 } |
1087 | 1093 |
1088 } // namespace content | 1094 } // namespace content |
OLD | NEW |