OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2011 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * | 7 * |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
213 }; | 213 }; |
214 | 214 |
215 InspectorOverlayAgent::InspectorOverlayAgent( | 215 InspectorOverlayAgent::InspectorOverlayAgent( |
216 WebLocalFrameImpl* frame_impl, | 216 WebLocalFrameImpl* frame_impl, |
217 InspectedFrames* inspected_frames, | 217 InspectedFrames* inspected_frames, |
218 v8_inspector::V8InspectorSession* v8_session, | 218 v8_inspector::V8InspectorSession* v8_session, |
219 InspectorDOMAgent* dom_agent) | 219 InspectorDOMAgent* dom_agent) |
220 : frame_impl_(frame_impl), | 220 : frame_impl_(frame_impl), |
221 inspected_frames_(inspected_frames), | 221 inspected_frames_(inspected_frames), |
222 enabled_(false), | 222 enabled_(false), |
223 overlay_host_(new InspectorOverlayHost(this)), | |
224 draw_view_size_(false), | 223 draw_view_size_(false), |
225 resize_timer_active_(false), | 224 resize_timer_active_(false), |
226 omit_tooltip_(false), | 225 omit_tooltip_(false), |
227 timer_(TaskRunnerHelper::Get(TaskType::kUnspecedTimer, | 226 timer_(TaskRunnerHelper::Get(TaskType::kUnspecedTimer, |
228 frame_impl->GetFrame()), | 227 frame_impl->GetFrame()), |
229 this, | 228 this, |
230 &InspectorOverlayAgent::OnTimer), | 229 &InspectorOverlayAgent::OnTimer), |
231 suspended_(false), | 230 suspended_(false), |
| 231 disposed_(false), |
232 show_reloading_blanket_(false), | 232 show_reloading_blanket_(false), |
233 in_layout_(false), | 233 in_layout_(false), |
234 needs_update_(false), | 234 needs_update_(false), |
235 v8_session_(v8_session), | 235 v8_session_(v8_session), |
236 dom_agent_(dom_agent), | 236 dom_agent_(dom_agent), |
237 swallow_next_mouse_up_(false), | 237 swallow_next_mouse_up_(false), |
238 inspect_mode_(kNotSearching), | 238 inspect_mode_(kNotSearching), |
239 backend_node_id_to_inspect_(0) {} | 239 backend_node_id_to_inspect_(0) {} |
240 | 240 |
241 InspectorOverlayAgent::~InspectorOverlayAgent() { | 241 InspectorOverlayAgent::~InspectorOverlayAgent() { |
(...skipping 20 matching lines...) Expand all Loading... |
262 state_->booleanProperty(OverlayAgentState::kShowDebugBorders, false)); | 262 state_->booleanProperty(OverlayAgentState::kShowDebugBorders, false)); |
263 setShowFPSCounter( | 263 setShowFPSCounter( |
264 state_->booleanProperty(OverlayAgentState::kShowFPSCounter, false)); | 264 state_->booleanProperty(OverlayAgentState::kShowFPSCounter, false)); |
265 setShowPaintRects( | 265 setShowPaintRects( |
266 state_->booleanProperty(OverlayAgentState::kShowPaintRects, false)); | 266 state_->booleanProperty(OverlayAgentState::kShowPaintRects, false)); |
267 setShowScrollBottleneckRects(state_->booleanProperty( | 267 setShowScrollBottleneckRects(state_->booleanProperty( |
268 OverlayAgentState::kShowScrollBottleneckRects, false)); | 268 OverlayAgentState::kShowScrollBottleneckRects, false)); |
269 setShowViewportSizeOnResize( | 269 setShowViewportSizeOnResize( |
270 state_->booleanProperty(OverlayAgentState::kShowSizeOnResize, false)); | 270 state_->booleanProperty(OverlayAgentState::kShowSizeOnResize, false)); |
271 String message; | 271 String message; |
272 state_->getString(OverlayAgentState::kPausedInDebuggerMessage, &message); | 272 if (state_->getString(OverlayAgentState::kPausedInDebuggerMessage, &message)) |
273 setPausedInDebuggerMessage(message); | 273 setPausedInDebuggerMessage(message); |
274 setSuspended(state_->booleanProperty(OverlayAgentState::kSuspended, false)); | 274 setSuspended(state_->booleanProperty(OverlayAgentState::kSuspended, false)); |
275 } | 275 } |
276 | 276 |
277 void InspectorOverlayAgent::Dispose() { | 277 void InspectorOverlayAgent::Dispose() { |
| 278 InspectorBaseAgent::Dispose(); |
278 show_reloading_blanket_ = false; | 279 show_reloading_blanket_ = false; |
| 280 disposed_ = true; |
279 ClearInternal(); | 281 ClearInternal(); |
280 InspectorBaseAgent::Dispose(); | |
281 } | 282 } |
282 | 283 |
283 Response InspectorOverlayAgent::enable() { | 284 Response InspectorOverlayAgent::enable() { |
284 if (!dom_agent_->Enabled()) | 285 if (!dom_agent_->Enabled()) |
285 return Response::Error("DOM should be enabled first"); | 286 return Response::Error("DOM should be enabled first"); |
286 state_->setBoolean(OverlayAgentState::kEnabled, true); | 287 state_->setBoolean(OverlayAgentState::kEnabled, true); |
287 enabled_ = true; | 288 enabled_ = true; |
288 if (backend_node_id_to_inspect_) | 289 if (backend_node_id_to_inspect_) |
289 GetFrontend()->inspectNodeRequested(backend_node_id_to_inspect_); | 290 GetFrontend()->inspectNodeRequested(backend_node_id_to_inspect_); |
290 backend_node_id_to_inspect_ = 0; | 291 backend_node_id_to_inspect_ = 0; |
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
491 Node* node = nullptr; | 492 Node* node = nullptr; |
492 Response response = dom_agent_->AssertNode(node_id, node); | 493 Response response = dom_agent_->AssertNode(node_id, node); |
493 if (!response.isSuccess()) | 494 if (!response.isSuccess()) |
494 return response; | 495 return response; |
495 InspectorHighlight highlight(node, InspectorHighlight::DefaultConfig(), true); | 496 InspectorHighlight highlight(node, InspectorHighlight::DefaultConfig(), true); |
496 *result = highlight.AsProtocolValue(); | 497 *result = highlight.AsProtocolValue(); |
497 return Response::OK(); | 498 return Response::OK(); |
498 } | 499 } |
499 | 500 |
500 void InspectorOverlayAgent::Invalidate() { | 501 void InspectorOverlayAgent::Invalidate() { |
| 502 if (IsEmpty()) |
| 503 return; |
| 504 |
501 if (!page_overlay_) { | 505 if (!page_overlay_) { |
502 page_overlay_ = PageOverlay::Create( | 506 page_overlay_ = PageOverlay::Create( |
503 frame_impl_, WTF::WrapUnique(new InspectorPageOverlayDelegate(*this))); | 507 frame_impl_, WTF::WrapUnique(new InspectorPageOverlayDelegate(*this))); |
504 } | 508 } |
505 | 509 |
506 page_overlay_->Update(); | 510 page_overlay_->Update(); |
507 } | 511 } |
508 | 512 |
509 void InspectorOverlayAgent::UpdateAllLifecyclePhases() { | 513 void InspectorOverlayAgent::UpdateAllLifecyclePhases() { |
510 if (IsEmpty()) | 514 if (IsEmpty()) |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
633 Maybe<protocol::DOM::RGBA> outline_color) { | 637 Maybe<protocol::DOM::RGBA> outline_color) { |
634 quad_content_color_ = InspectorDOMAgent::ParseColor(color.fromMaybe(nullptr)); | 638 quad_content_color_ = InspectorDOMAgent::ParseColor(color.fromMaybe(nullptr)); |
635 quad_content_outline_color_ = | 639 quad_content_outline_color_ = |
636 InspectorDOMAgent::ParseColor(outline_color.fromMaybe(nullptr)); | 640 InspectorDOMAgent::ParseColor(outline_color.fromMaybe(nullptr)); |
637 highlight_quad_ = std::move(quad); | 641 highlight_quad_ = std::move(quad); |
638 omit_tooltip_ = false; | 642 omit_tooltip_ = false; |
639 ScheduleUpdate(); | 643 ScheduleUpdate(); |
640 } | 644 } |
641 | 645 |
642 bool InspectorOverlayAgent::IsEmpty() { | 646 bool InspectorOverlayAgent::IsEmpty() { |
| 647 if (disposed_) |
| 648 return true; |
643 if (show_reloading_blanket_) | 649 if (show_reloading_blanket_) |
644 return false; | 650 return false; |
645 if (suspended_) | 651 if (suspended_) |
646 return true; | 652 return true; |
647 bool has_visible_elements = highlight_node_ || event_target_node_ || | 653 bool has_visible_elements = highlight_node_ || event_target_node_ || |
648 highlight_quad_ || | 654 highlight_quad_ || |
649 (resize_timer_active_ && draw_view_size_) || | 655 (resize_timer_active_ && draw_view_size_) || |
650 !paused_in_debugger_message_.IsNull(); | 656 !paused_in_debugger_message_.IsNull(); |
651 return !has_visible_elements && inspect_mode_ == kNotSearching; | 657 return !has_visible_elements && inspect_mode_ == kNotSearching; |
652 } | 658 } |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
775 | 781 |
776 DEFINE_STATIC_LOCAL(LocalFrameClient, dummy_local_frame_client, | 782 DEFINE_STATIC_LOCAL(LocalFrameClient, dummy_local_frame_client, |
777 (EmptyLocalFrameClient::Create())); | 783 (EmptyLocalFrameClient::Create())); |
778 Page::PageClients page_clients; | 784 Page::PageClients page_clients; |
779 FillWithEmptyClients(page_clients); | 785 FillWithEmptyClients(page_clients); |
780 DCHECK(!overlay_chrome_client_); | 786 DCHECK(!overlay_chrome_client_); |
781 overlay_chrome_client_ = InspectorOverlayChromeClient::Create( | 787 overlay_chrome_client_ = InspectorOverlayChromeClient::Create( |
782 frame_impl_->GetFrame()->GetPage()->GetChromeClient(), *this); | 788 frame_impl_->GetFrame()->GetPage()->GetChromeClient(), *this); |
783 page_clients.chrome_client = overlay_chrome_client_.Get(); | 789 page_clients.chrome_client = overlay_chrome_client_.Get(); |
784 overlay_page_ = Page::Create(page_clients); | 790 overlay_page_ = Page::Create(page_clients); |
| 791 overlay_host_ = new InspectorOverlayHost(this); |
785 | 792 |
786 Settings& settings = frame_impl_->GetFrame()->GetPage()->GetSettings(); | 793 Settings& settings = frame_impl_->GetFrame()->GetPage()->GetSettings(); |
787 Settings& overlay_settings = overlay_page_->GetSettings(); | 794 Settings& overlay_settings = overlay_page_->GetSettings(); |
788 | 795 |
789 overlay_settings.GetGenericFontFamilySettings().UpdateStandard( | 796 overlay_settings.GetGenericFontFamilySettings().UpdateStandard( |
790 settings.GetGenericFontFamilySettings().Standard()); | 797 settings.GetGenericFontFamilySettings().Standard()); |
791 overlay_settings.GetGenericFontFamilySettings().UpdateSerif( | 798 overlay_settings.GetGenericFontFamilySettings().UpdateSerif( |
792 settings.GetGenericFontFamilySettings().Serif()); | 799 settings.GetGenericFontFamilySettings().Serif()); |
793 overlay_settings.GetGenericFontFamilySettings().UpdateSansSerif( | 800 overlay_settings.GetGenericFontFamilySettings().UpdateSansSerif( |
794 settings.GetGenericFontFamilySettings().SansSerif()); | 801 settings.GetGenericFontFamilySettings().SansSerif()); |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
921 void InspectorOverlayAgent::OnTimer(TimerBase*) { | 928 void InspectorOverlayAgent::OnTimer(TimerBase*) { |
922 resize_timer_active_ = false; | 929 resize_timer_active_ = false; |
923 ScheduleUpdate(); | 930 ScheduleUpdate(); |
924 } | 931 } |
925 | 932 |
926 void InspectorOverlayAgent::ClearInternal() { | 933 void InspectorOverlayAgent::ClearInternal() { |
927 if (overlay_page_) { | 934 if (overlay_page_) { |
928 overlay_page_->WillBeDestroyed(); | 935 overlay_page_->WillBeDestroyed(); |
929 overlay_page_.Clear(); | 936 overlay_page_.Clear(); |
930 overlay_chrome_client_.Clear(); | 937 overlay_chrome_client_.Clear(); |
| 938 overlay_host_->ClearListener(); |
| 939 overlay_host_.Clear(); |
931 } | 940 } |
932 resize_timer_active_ = false; | 941 resize_timer_active_ = false; |
933 paused_in_debugger_message_ = String(); | 942 paused_in_debugger_message_ = String(); |
934 inspect_mode_ = kNotSearching; | 943 inspect_mode_ = kNotSearching; |
935 timer_.Stop(); | 944 timer_.Stop(); |
| 945 page_overlay_.reset(); |
936 InnerHideHighlight(); | 946 InnerHideHighlight(); |
937 } | 947 } |
938 | 948 |
939 void InspectorOverlayAgent::OverlayResumed() { | 949 void InspectorOverlayAgent::OverlayResumed() { |
940 if (v8_session_) | 950 if (v8_session_) |
941 v8_session_->resume(); | 951 v8_session_->resume(); |
942 } | 952 } |
943 | 953 |
944 void InspectorOverlayAgent::OverlaySteppedOver() { | 954 void InspectorOverlayAgent::OverlaySteppedOver() { |
945 if (v8_session_) | 955 if (v8_session_) |
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1153 InspectorDOMAgent::ParseColor(config->getShapeColor(nullptr)); | 1163 InspectorDOMAgent::ParseColor(config->getShapeColor(nullptr)); |
1154 highlight_config->shape_margin = | 1164 highlight_config->shape_margin = |
1155 InspectorDOMAgent::ParseColor(config->getShapeMarginColor(nullptr)); | 1165 InspectorDOMAgent::ParseColor(config->getShapeMarginColor(nullptr)); |
1156 highlight_config->selector_list = config->getSelectorList(""); | 1166 highlight_config->selector_list = config->getSelectorList(""); |
1157 | 1167 |
1158 *out_config = std::move(highlight_config); | 1168 *out_config = std::move(highlight_config); |
1159 return Response::OK(); | 1169 return Response::OK(); |
1160 } | 1170 } |
1161 | 1171 |
1162 } // namespace blink | 1172 } // namespace blink |
OLD | NEW |