Commit 21768375 authored by Alex Rudenko's avatar Alex Rudenko Committed by Commit Bot

Refactor InspectTool::Init/DoInit

This CL proposes refactoring Init/DoInit methods by moving the overlay
and frontend parameters to the constructor to avoid confusion about
at what time they are set on a tool. Also, it removes DoInit/Init methods
and moves the ScreenshotTool's init to the constructor as well.

Change-Id: I246c1383c66f6977c0b69fd82938a6c7baa192e3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2428926Reviewed-by: default avatarSigurd Schneider <sigurds@chromium.org>
Reviewed-by: default avatarAndrey Kosyakov <caseq@chromium.org>
Commit-Queue: Alex Rudenko <alexrudenko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#812677}
parent 47b9e775
...@@ -102,10 +102,14 @@ Node* HoveredNodeForEvent(LocalFrame* frame, ...@@ -102,10 +102,14 @@ Node* HoveredNodeForEvent(LocalFrame* frame,
// SearchingForNodeTool -------------------------------------------------------- // SearchingForNodeTool --------------------------------------------------------
SearchingForNodeTool::SearchingForNodeTool(InspectorDOMAgent* dom_agent, SearchingForNodeTool::SearchingForNodeTool(InspectorOverlayAgent* overlay,
OverlayFrontend* frontend,
InspectorDOMAgent* dom_agent,
bool ua_shadow, bool ua_shadow,
const std::vector<uint8_t>& config) const std::vector<uint8_t>& config)
: dom_agent_(dom_agent), ua_shadow_(ua_shadow) { : InspectTool(overlay, frontend),
dom_agent_(dom_agent),
ua_shadow_(ua_shadow) {
auto parsed_config = protocol::Overlay::HighlightConfig::FromBinary( auto parsed_config = protocol::Overlay::HighlightConfig::FromBinary(
config.data(), config.size()); config.data(), config.size());
if (parsed_config) { if (parsed_config) {
...@@ -131,7 +135,6 @@ void SearchingForNodeTool::Draw(float scale) { ...@@ -131,7 +135,6 @@ void SearchingForNodeTool::Draw(float scale) {
!omit_tooltip_ && highlight_config_->show_info && !omit_tooltip_ && highlight_config_->show_info &&
node->GetLayoutObject() && node->GetLayoutObject() &&
node->GetDocument().GetFrame(); node->GetDocument().GetFrame();
DCHECK(overlay_);
overlay_->EnsureAXContext(node); overlay_->EnsureAXContext(node);
InspectorHighlight highlight(node, *highlight_config_, contrast_info_, InspectorHighlight highlight(node, *highlight_config_, contrast_info_,
append_element_info, false, is_locked_ancestor_); append_element_info, false, is_locked_ancestor_);
...@@ -262,10 +265,15 @@ void SearchingForNodeTool::NodeHighlightRequested(Node* node) { ...@@ -262,10 +265,15 @@ void SearchingForNodeTool::NodeHighlightRequested(Node* node) {
// QuadHighlightTool ----------------------------------------------------------- // QuadHighlightTool -----------------------------------------------------------
QuadHighlightTool::QuadHighlightTool(std::unique_ptr<FloatQuad> quad, QuadHighlightTool::QuadHighlightTool(InspectorOverlayAgent* overlay,
OverlayFrontend* frontend,
std::unique_ptr<FloatQuad> quad,
Color color, Color color,
Color outline_color) Color outline_color)
: quad_(std::move(quad)), color_(color), outline_color_(outline_color) {} : InspectTool(overlay, frontend),
quad_(std::move(quad)),
color_(color),
outline_color_(outline_color) {}
bool QuadHighlightTool::ForwardEventsToOverlay() { bool QuadHighlightTool::ForwardEventsToOverlay() {
return false; return false;
...@@ -284,10 +292,13 @@ void QuadHighlightTool::Draw(float scale) { ...@@ -284,10 +292,13 @@ void QuadHighlightTool::Draw(float scale) {
// NodeHighlightTool ----------------------------------------------------------- // NodeHighlightTool -----------------------------------------------------------
NodeHighlightTool::NodeHighlightTool( NodeHighlightTool::NodeHighlightTool(
InspectorOverlayAgent* overlay,
OverlayFrontend* frontend,
Member<Node> node, Member<Node> node,
String selector_list, String selector_list,
std::unique_ptr<InspectorHighlightConfig> highlight_config) std::unique_ptr<InspectorHighlightConfig> highlight_config)
: selector_list_(selector_list), : InspectTool(overlay, frontend),
selector_list_(selector_list),
highlight_config_(std::move(highlight_config)) { highlight_config_(std::move(highlight_config)) {
if (Node* locked_ancestor = if (Node* locked_ancestor =
DisplayLockUtilities::HighestLockedExclusiveAncestor(*node)) { DisplayLockUtilities::HighestLockedExclusiveAncestor(*node)) {
...@@ -339,7 +350,6 @@ void NodeHighlightTool::DrawMatchingSelector() { ...@@ -339,7 +350,6 @@ void NodeHighlightTool::DrawMatchingSelector() {
if (!query_base) if (!query_base)
query_base = node_->ownerDocument(); query_base = node_->ownerDocument();
DCHECK(overlay_);
overlay_->EnsureAXContext(query_base); overlay_->EnsureAXContext(query_base);
StaticElementList* elements = query_base->QuerySelectorAll( StaticElementList* elements = query_base->QuerySelectorAll(
...@@ -369,7 +379,6 @@ std::unique_ptr<protocol::DictionaryValue> ...@@ -369,7 +379,6 @@ std::unique_ptr<protocol::DictionaryValue>
NodeHighlightTool::GetNodeInspectorHighlightAsJson( NodeHighlightTool::GetNodeInspectorHighlightAsJson(
bool append_element_info, bool append_element_info,
bool append_distance_info) const { bool append_distance_info) const {
DCHECK(overlay_);
overlay_->EnsureAXContext(node_.Get()); overlay_->EnsureAXContext(node_.Get());
InspectorHighlight highlight(node_.Get(), *highlight_config_, contrast_info_, InspectorHighlight highlight(node_.Get(), *highlight_config_, contrast_info_,
append_element_info, append_distance_info, append_element_info, append_distance_info,
...@@ -434,9 +443,12 @@ GridHighlightTool::GetGridInspectorHighlightsAsJson() const { ...@@ -434,9 +443,12 @@ GridHighlightTool::GetGridInspectorHighlightsAsJson() const {
// SourceOrderTool ----------------------------------------------------------- // SourceOrderTool -----------------------------------------------------------
SourceOrderTool::SourceOrderTool( SourceOrderTool::SourceOrderTool(
InspectorOverlayAgent* overlay,
OverlayFrontend* frontend,
Node* node, Node* node,
std::unique_ptr<InspectorSourceOrderConfig> source_order_config) std::unique_ptr<InspectorSourceOrderConfig> source_order_config)
: source_order_config_(std::move(source_order_config)) { : InspectTool(overlay, frontend),
source_order_config_(std::move(source_order_config)) {
if (Node* locked_ancestor = if (Node* locked_ancestor =
DisplayLockUtilities::HighestLockedExclusiveAncestor(*node)) { DisplayLockUtilities::HighestLockedExclusiveAncestor(*node)) {
node_ = locked_ancestor; node_ = locked_ancestor;
...@@ -559,7 +571,6 @@ void NearbyDistanceTool::Draw(float scale) { ...@@ -559,7 +571,6 @@ void NearbyDistanceTool::Draw(float scale) {
Node* node = hovered_node_.Get(); Node* node = hovered_node_.Get();
if (!node) if (!node)
return; return;
DCHECK(overlay_);
overlay_->EnsureAXContext(node); overlay_->EnsureAXContext(node);
InspectorHighlight highlight( InspectorHighlight highlight(
node, InspectorHighlight::DefaultConfig(), node, InspectorHighlight::DefaultConfig(),
...@@ -589,7 +600,9 @@ bool ShowViewSizeTool::ForwardEventsToOverlay() { ...@@ -589,7 +600,9 @@ bool ShowViewSizeTool::ForwardEventsToOverlay() {
// ScreenshotTool -------------------------------------------------------------- // ScreenshotTool --------------------------------------------------------------
void ScreenshotTool::DoInit() { ScreenshotTool::ScreenshotTool(InspectorOverlayAgent* overlay,
OverlayFrontend* frontend)
: InspectTool(overlay, frontend) {
auto& client = overlay_->GetFrame()->GetPage()->GetChromeClient(); auto& client = overlay_->GetFrame()->GetPage()->GetChromeClient();
client.SetCursorOverridden(false); client.SetCursorOverridden(false);
client.SetCursor(CrossCursor(), overlay_->GetFrame()); client.SetCursor(CrossCursor(), overlay_->GetFrame());
......
...@@ -19,7 +19,9 @@ class WebPointerEvent; ...@@ -19,7 +19,9 @@ class WebPointerEvent;
class SearchingForNodeTool : public InspectTool { class SearchingForNodeTool : public InspectTool {
public: public:
SearchingForNodeTool(InspectorDOMAgent* dom_agent, SearchingForNodeTool(InspectorOverlayAgent* overlay,
OverlayFrontend* frontend,
InspectorDOMAgent* dom_agent,
bool ua_shadow, bool ua_shadow,
const std::vector<uint8_t>& highlight_config); const std::vector<uint8_t>& highlight_config);
...@@ -52,7 +54,9 @@ class SearchingForNodeTool : public InspectTool { ...@@ -52,7 +54,9 @@ class SearchingForNodeTool : public InspectTool {
class QuadHighlightTool : public InspectTool { class QuadHighlightTool : public InspectTool {
public: public:
QuadHighlightTool(std::unique_ptr<FloatQuad> quad, QuadHighlightTool(InspectorOverlayAgent* overlay,
OverlayFrontend* frontend,
std::unique_ptr<FloatQuad> quad,
Color color, Color color,
Color outline_color); Color outline_color);
...@@ -70,7 +74,9 @@ class QuadHighlightTool : public InspectTool { ...@@ -70,7 +74,9 @@ class QuadHighlightTool : public InspectTool {
class NodeHighlightTool : public InspectTool { class NodeHighlightTool : public InspectTool {
public: public:
NodeHighlightTool(Member<Node> node, NodeHighlightTool(InspectorOverlayAgent* overlay,
OverlayFrontend* frontend,
Member<Node> node,
String selector_list, String selector_list,
std::unique_ptr<InspectorHighlightConfig> highlight_config); std::unique_ptr<InspectorHighlightConfig> highlight_config);
...@@ -101,6 +107,8 @@ class NodeHighlightTool : public InspectTool { ...@@ -101,6 +107,8 @@ class NodeHighlightTool : public InspectTool {
class SourceOrderTool : public InspectTool { class SourceOrderTool : public InspectTool {
public: public:
SourceOrderTool( SourceOrderTool(
InspectorOverlayAgent* overlay,
OverlayFrontend* frontend,
Node* node, Node* node,
std::unique_ptr<InspectorSourceOrderConfig> source_order_config); std::unique_ptr<InspectorSourceOrderConfig> source_order_config);
std::unique_ptr<protocol::DictionaryValue> std::unique_ptr<protocol::DictionaryValue>
...@@ -123,8 +131,9 @@ class SourceOrderTool : public InspectTool { ...@@ -123,8 +131,9 @@ class SourceOrderTool : public InspectTool {
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
class GridHighlightTool : public InspectTool { class GridHighlightTool : public InspectTool {
using InspectTool::InspectTool;
public: public:
GridHighlightTool() = default;
void Draw(float scale) override; void Draw(float scale) override;
void AddGridConfig( void AddGridConfig(
Node* node, Node* node,
...@@ -147,8 +156,7 @@ class GridHighlightTool : public InspectTool { ...@@ -147,8 +156,7 @@ class GridHighlightTool : public InspectTool {
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
class NearbyDistanceTool : public InspectTool { class NearbyDistanceTool : public InspectTool {
public: using InspectTool::InspectTool;
NearbyDistanceTool() = default;
private: private:
int GetDataResourceId() override; int GetDataResourceId() override;
...@@ -166,8 +174,7 @@ class NearbyDistanceTool : public InspectTool { ...@@ -166,8 +174,7 @@ class NearbyDistanceTool : public InspectTool {
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
class ShowViewSizeTool : public InspectTool { class ShowViewSizeTool : public InspectTool {
public: using InspectTool::InspectTool;
ShowViewSizeTool() = default;
private: private:
bool ForwardEventsToOverlay() override; bool ForwardEventsToOverlay() override;
...@@ -180,11 +187,10 @@ class ShowViewSizeTool : public InspectTool { ...@@ -180,11 +187,10 @@ class ShowViewSizeTool : public InspectTool {
class ScreenshotTool : public InspectTool { class ScreenshotTool : public InspectTool {
public: public:
ScreenshotTool() = default; ScreenshotTool(InspectorOverlayAgent* overlay, OverlayFrontend* frontend);
private: private:
int GetDataResourceId() override; int GetDataResourceId() override;
void DoInit() override;
void Dispatch(const String& message) override; void Dispatch(const String& message) override;
DISALLOW_COPY_AND_ASSIGN(ScreenshotTool); DISALLOW_COPY_AND_ASSIGN(ScreenshotTool);
...@@ -194,9 +200,13 @@ class ScreenshotTool : public InspectTool { ...@@ -194,9 +200,13 @@ class ScreenshotTool : public InspectTool {
class PausedInDebuggerTool : public InspectTool { class PausedInDebuggerTool : public InspectTool {
public: public:
PausedInDebuggerTool(v8_inspector::V8InspectorSession* v8_session, PausedInDebuggerTool(InspectorOverlayAgent* overlay,
OverlayFrontend* frontend,
v8_inspector::V8InspectorSession* v8_session,
const String& message) const String& message)
: v8_session_(v8_session), message_(message) {} : InspectTool(overlay, frontend),
v8_session_(v8_session),
message_(message) {}
private: private:
int GetDataResourceId() override; int GetDataResourceId() override;
......
...@@ -111,13 +111,6 @@ bool ParseQuad(std::unique_ptr<protocol::Array<double>> quad_array, ...@@ -111,13 +111,6 @@ bool ParseQuad(std::unique_ptr<protocol::Array<double>> quad_array,
// InspectTool ----------------------------------------------------------------- // InspectTool -----------------------------------------------------------------
void InspectTool::Init(InspectorOverlayAgent* overlay,
OverlayFrontend* frontend) {
overlay_ = overlay;
frontend_ = frontend;
DoInit();
}
int InspectTool::GetDataResourceId() { int InspectTool::GetDataResourceId() {
return IDR_INSPECT_TOOL_HIGHLIGHT_JS; return IDR_INSPECT_TOOL_HIGHLIGHT_JS;
} }
...@@ -624,7 +617,8 @@ Response InspectorOverlayAgent::highlightRect( ...@@ -624,7 +617,8 @@ Response InspectorOverlayAgent::highlightRect(
std::unique_ptr<FloatQuad> quad = std::unique_ptr<FloatQuad> quad =
std::make_unique<FloatQuad>(FloatRect(x, y, width, height)); std::make_unique<FloatQuad>(FloatRect(x, y, width, height));
SetInspectTool(MakeGarbageCollected<QuadHighlightTool>( SetInspectTool(MakeGarbageCollected<QuadHighlightTool>(
std::move(quad), InspectorDOMAgent::ParseColor(color.fromMaybe(nullptr)), this, GetFrontend(), std::move(quad),
InspectorDOMAgent::ParseColor(color.fromMaybe(nullptr)),
InspectorDOMAgent::ParseColor(outline_color.fromMaybe(nullptr)))); InspectorDOMAgent::ParseColor(outline_color.fromMaybe(nullptr))));
return Response::Success(); return Response::Success();
} }
...@@ -637,7 +631,8 @@ Response InspectorOverlayAgent::highlightQuad( ...@@ -637,7 +631,8 @@ Response InspectorOverlayAgent::highlightQuad(
if (!ParseQuad(std::move(quad_array), quad.get())) if (!ParseQuad(std::move(quad_array), quad.get()))
return Response::ServerError("Invalid Quad format"); return Response::ServerError("Invalid Quad format");
SetInspectTool(MakeGarbageCollected<QuadHighlightTool>( SetInspectTool(MakeGarbageCollected<QuadHighlightTool>(
std::move(quad), InspectorDOMAgent::ParseColor(color.fromMaybe(nullptr)), this, GetFrontend(), std::move(quad),
InspectorDOMAgent::ParseColor(color.fromMaybe(nullptr)),
InspectorDOMAgent::ParseColor(outline_color.fromMaybe(nullptr)))); InspectorDOMAgent::ParseColor(outline_color.fromMaybe(nullptr))));
return Response::Success(); return Response::Success();
} }
...@@ -704,7 +699,8 @@ Response InspectorOverlayAgent::highlightNode( ...@@ -704,7 +699,8 @@ Response InspectorOverlayAgent::highlightNode(
return response; return response;
SetInspectTool(MakeGarbageCollected<NodeHighlightTool>( SetInspectTool(MakeGarbageCollected<NodeHighlightTool>(
node, selector_list.fromMaybe(String()), std::move(highlight_config))); this, GetFrontend(), node, selector_list.fromMaybe(String()),
std::move(highlight_config)));
return Response::Success(); return Response::Success();
} }
...@@ -714,7 +710,8 @@ Response InspectorOverlayAgent::setShowGridOverlays( ...@@ -714,7 +710,8 @@ Response InspectorOverlayAgent::setShowGridOverlays(
persistent_tool_ = nullptr; persistent_tool_ = nullptr;
if (grid_node_highlight_configs->size()) { if (grid_node_highlight_configs->size()) {
GridHighlightTool* grid_tool = MakeGarbageCollected<GridHighlightTool>(); GridHighlightTool* grid_tool =
MakeGarbageCollected<GridHighlightTool>(this, GetFrontend());
for (std::unique_ptr<protocol::Overlay::GridNodeHighlightConfig>& config : for (std::unique_ptr<protocol::Overlay::GridNodeHighlightConfig>& config :
*grid_node_highlight_configs) { *grid_node_highlight_configs) {
Node* node = nullptr; Node* node = nullptr;
...@@ -725,7 +722,6 @@ Response InspectorOverlayAgent::setShowGridOverlays( ...@@ -725,7 +722,6 @@ Response InspectorOverlayAgent::setShowGridOverlays(
InspectorOverlayAgent::ToGridHighlightConfig( InspectorOverlayAgent::ToGridHighlightConfig(
config->getGridHighlightConfig())); config->getGridHighlightConfig()));
} }
grid_tool->Init(this, GetFrontend());
persistent_tool_ = grid_tool; persistent_tool_ = grid_tool;
} }
...@@ -752,7 +748,7 @@ Response InspectorOverlayAgent::highlightSourceOrder( ...@@ -752,7 +748,7 @@ Response InspectorOverlayAgent::highlightSourceOrder(
std::make_unique<InspectorSourceOrderConfig>(config); std::make_unique<InspectorSourceOrderConfig>(config);
SetInspectTool(MakeGarbageCollected<SourceOrderTool>( SetInspectTool(MakeGarbageCollected<SourceOrderTool>(
node, std::move(source_order_config))); this, GetFrontend(), node, std::move(source_order_config)));
return Response::Success(); return Response::Success();
} }
...@@ -775,7 +771,8 @@ Response InspectorOverlayAgent::highlightFrame( ...@@ -775,7 +771,8 @@ Response InspectorOverlayAgent::highlightFrame(
InspectorDOMAgent::ParseColor(outline_color.fromMaybe(nullptr)); InspectorDOMAgent::ParseColor(outline_color.fromMaybe(nullptr));
SetInspectTool(MakeGarbageCollected<NodeHighlightTool>( SetInspectTool(MakeGarbageCollected<NodeHighlightTool>(
frame->DeprecatedLocalOwner(), String(), std::move(highlight_config))); this, GetFrontend(), frame->DeprecatedLocalOwner(), String(),
std::move(highlight_config)));
} else { } else {
PickTheRightTool(); PickTheRightTool();
} }
...@@ -815,8 +812,8 @@ Response InspectorOverlayAgent::getHighlightObjectForTest( ...@@ -815,8 +812,8 @@ Response InspectorOverlayAgent::getHighlightObjectForTest(
config->color_format = ColorFormat::HEX; config->color_format = ColorFormat::HEX;
} }
NodeHighlightTool tool(node, "" /* selector_list */, std::move(config)); NodeHighlightTool tool(this, GetFrontend(), node, "" /* selector_list */,
tool.Init(this, GetFrontend()); std::move(config));
*result = tool.GetNodeInspectorHighlightAsJson( *result = tool.GetNodeInspectorHighlightAsJson(
true /* append_element_info */, include_distance.fromMaybe(false)); true /* append_element_info */, include_distance.fromMaybe(false));
return Response::Success(); return Response::Success();
...@@ -825,8 +822,7 @@ Response InspectorOverlayAgent::getHighlightObjectForTest( ...@@ -825,8 +822,7 @@ Response InspectorOverlayAgent::getHighlightObjectForTest(
Response InspectorOverlayAgent::getGridHighlightObjectsForTest( Response InspectorOverlayAgent::getGridHighlightObjectsForTest(
std::unique_ptr<protocol::Array<int>> node_ids, std::unique_ptr<protocol::Array<int>> node_ids,
std::unique_ptr<protocol::DictionaryValue>* highlights) { std::unique_ptr<protocol::DictionaryValue>* highlights) {
GridHighlightTool grid_highlight_tool; GridHighlightTool grid_highlight_tool(this, GetFrontend());
grid_highlight_tool.Init(this, GetFrontend());
for (const int node_id : *node_ids) { for (const int node_id : *node_ids) {
Node* node = nullptr; Node* node = nullptr;
Response response = dom_agent_->AssertNode(node_id, node); Response response = dom_agent_->AssertNode(node_id, node);
...@@ -851,8 +847,7 @@ Response InspectorOverlayAgent::getSourceOrderHighlightObjectForTest( ...@@ -851,8 +847,7 @@ Response InspectorOverlayAgent::getSourceOrderHighlightObjectForTest(
auto config = std::make_unique<InspectorSourceOrderConfig>( auto config = std::make_unique<InspectorSourceOrderConfig>(
InspectorSourceOrderHighlight::DefaultConfig()); InspectorSourceOrderHighlight::DefaultConfig());
SourceOrderTool tool(node, std::move(config)); SourceOrderTool tool(this, GetFrontend(), node, std::move(config));
tool.Init(this, GetFrontend());
*result = tool.GetNodeInspectorSourceOrderHighlightAsJson(); *result = tool.GetNodeInspectorSourceOrderHighlightAsJson();
return Response::Success(); return Response::Success();
} }
...@@ -1230,7 +1225,7 @@ void InspectorOverlayAgent::OnResizeTimer(TimerBase*) { ...@@ -1230,7 +1225,7 @@ void InspectorOverlayAgent::OnResizeTimer(TimerBase*) {
} }
// Show the resize tool. // Show the resize tool.
SetInspectTool(MakeGarbageCollected<ShowViewSizeTool>()); SetInspectTool(MakeGarbageCollected<ShowViewSizeTool>(this, GetFrontend()));
resize_timer_active_ = true; resize_timer_active_ = true;
resize_timer_.Stop(); resize_timer_.Stop();
resize_timer_.StartOneShot(base::TimeDelta::FromSeconds(1), FROM_HERE); resize_timer_.StartOneShot(base::TimeDelta::FromSeconds(1), FROM_HERE);
...@@ -1322,19 +1317,20 @@ void InspectorOverlayAgent::PickTheRightTool() { ...@@ -1322,19 +1317,20 @@ void InspectorOverlayAgent::PickTheRightTool() {
inspect_mode == inspect_mode ==
protocol::Overlay::InspectModeEnum::SearchForUAShadowDOM) { protocol::Overlay::InspectModeEnum::SearchForUAShadowDOM) {
inspect_tool = MakeGarbageCollected<SearchingForNodeTool>( inspect_tool = MakeGarbageCollected<SearchingForNodeTool>(
dom_agent_, this, GetFrontend(), dom_agent_,
inspect_mode == inspect_mode ==
protocol::Overlay::InspectModeEnum::SearchForUAShadowDOM, protocol::Overlay::InspectModeEnum::SearchForUAShadowDOM,
inspect_mode_protocol_config_.Get()); inspect_mode_protocol_config_.Get());
} else if (inspect_mode == } else if (inspect_mode ==
protocol::Overlay::InspectModeEnum::CaptureAreaScreenshot) { protocol::Overlay::InspectModeEnum::CaptureAreaScreenshot) {
inspect_tool = MakeGarbageCollected<ScreenshotTool>(); inspect_tool = MakeGarbageCollected<ScreenshotTool>(this, GetFrontend());
} else if (inspect_mode == } else if (inspect_mode ==
protocol::Overlay::InspectModeEnum::ShowDistances) { protocol::Overlay::InspectModeEnum::ShowDistances) {
inspect_tool = MakeGarbageCollected<NearbyDistanceTool>(); inspect_tool =
MakeGarbageCollected<NearbyDistanceTool>(this, GetFrontend());
} else if (!paused_in_debugger_message_.Get().IsNull()) { } else if (!paused_in_debugger_message_.Get().IsNull()) {
inspect_tool = MakeGarbageCollected<PausedInDebuggerTool>( inspect_tool = MakeGarbageCollected<PausedInDebuggerTool>(
v8_session_, paused_in_debugger_message_.Get()); this, GetFrontend(), v8_session_, paused_in_debugger_message_.Get());
} else if (persistent_tool_) { } else if (persistent_tool_) {
inspect_tool = persistent_tool_; inspect_tool = persistent_tool_;
} }
...@@ -1375,7 +1371,6 @@ void InspectorOverlayAgent::SetInspectTool(InspectTool* inspect_tool) { ...@@ -1375,7 +1371,6 @@ void InspectorOverlayAgent::SetInspectTool(InspectTool* inspect_tool) {
// tool will be included into the JS resource. // tool will be included into the JS resource.
LoadFrameForTool(inspect_tool->GetDataResourceId()); LoadFrameForTool(inspect_tool->GetDataResourceId());
EnsureEnableFrameOverlay(); EnsureEnableFrameOverlay();
inspect_tool->Init(this, GetFrontend());
} else { } else {
inspect_tool_ = nullptr; inspect_tool_ = nullptr;
if (!hinge_) if (!hinge_)
......
...@@ -78,9 +78,10 @@ using OverlayFrontend = protocol::Overlay::Metainfo::FrontendClass; ...@@ -78,9 +78,10 @@ using OverlayFrontend = protocol::Overlay::Metainfo::FrontendClass;
class CORE_EXPORT InspectTool : public GarbageCollected<InspectTool> { class CORE_EXPORT InspectTool : public GarbageCollected<InspectTool> {
public: public:
InspectTool(InspectorOverlayAgent* overlay, OverlayFrontend* frontend)
: overlay_(overlay), frontend_(frontend) {}
virtual ~InspectTool() = default; virtual ~InspectTool() = default;
void Init(InspectorOverlayAgent* overlay, OverlayFrontend* frontend);
virtual int GetDataResourceId(); virtual int GetDataResourceId();
virtual bool HandleInputEvent(LocalFrameView* frame_view, virtual bool HandleInputEvent(LocalFrameView* frame_view,
const WebInputEvent& input_event, const WebInputEvent& input_event,
...@@ -103,8 +104,6 @@ class CORE_EXPORT InspectTool : public GarbageCollected<InspectTool> { ...@@ -103,8 +104,6 @@ class CORE_EXPORT InspectTool : public GarbageCollected<InspectTool> {
virtual bool HideOnMouseMove(); virtual bool HideOnMouseMove();
protected: protected:
InspectTool() = default;
virtual void DoInit() {}
Member<InspectorOverlayAgent> overlay_; Member<InspectorOverlayAgent> overlay_;
OverlayFrontend* frontend_ = nullptr; OverlayFrontend* frontend_ = nullptr;
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment