Skip to content

Commit

Permalink
Adopt dynamicDowncast<> in JSC inspector code
Browse files Browse the repository at this point in the history
https://bugs.webkit.org/show_bug.cgi?id=270457

Reviewed by Devin Rousso.

For security & performance.

* Source/JavaScriptCore/inspector/remote/RemoteConnectionToTarget.cpp:
(Inspector::RemoteConnectionToTarget::setup):
* Source/JavaScriptCore/inspector/remote/RemoteInspector.cpp:
(Inspector::RemoteInspector::listingForTarget const):
* Source/JavaScriptCore/inspector/remote/cocoa/RemoteConnectionToTargetCocoa.mm:
(Inspector::RemoteConnectionToTarget::setup):
* Source/JavaScriptCore/inspector/remote/cocoa/RemoteInspectorCocoa.mm:
(Inspector::RemoteInspector::receivedIndicateMessage):

Canonical link: https://commits.webkit.org/275679@main
  • Loading branch information
annevk committed Mar 5, 2024
1 parent 767834b commit acf3bc8
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -55,14 +55,12 @@ bool RemoteConnectionToTarget::setup(bool isAutomaticInspection, bool automatica
if (!m_target || !m_target->remoteControlAllowed()) {
RemoteInspector::singleton().setupFailed(targetIdentifier);
m_target = nullptr;
} else if (is<RemoteInspectionTarget>(m_target)) {
auto target = downcast<RemoteInspectionTarget>(m_target);
} else if (auto* target = dynamicDowncast<RemoteInspectionTarget>(m_target)) {
target->connect(*this, isAutomaticInspection, automaticallyPause);
m_connected = true;

RemoteInspector::singleton().updateTargetListing(targetIdentifier);
} else if (is<RemoteAutomationTarget>(m_target)) {
auto target = downcast<RemoteAutomationTarget>(m_target);
} else if (auto* target = dynamicDowncast<RemoteAutomationTarget>(m_target)) {
target->connect(*this);
m_connected = true;

Expand Down
8 changes: 4 additions & 4 deletions Source/JavaScriptCore/inspector/remote/RemoteInspector.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -216,10 +216,10 @@ void RemoteInspector::stop()

TargetListing RemoteInspector::listingForTarget(const RemoteControllableTarget& target) const
{
if (is<RemoteInspectionTarget>(target))
return listingForInspectionTarget(downcast<RemoteInspectionTarget>(target));
if (is<RemoteAutomationTarget>(target))
return listingForAutomationTarget(downcast<RemoteAutomationTarget>(target));
if (auto* inspectionTarget = dynamicDowncast<RemoteInspectionTarget>(target))
return listingForInspectionTarget(*inspectionTarget);
if (auto* automationTarget = dynamicDowncast<RemoteAutomationTarget>(target))
return listingForAutomationTarget(*automationTarget);

ASSERT_NOT_REACHED();
return nullptr;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -170,15 +170,13 @@ static void RemoteTargetHandleRunSourceWithInfo(void* info)
if (!m_target || !m_target->remoteControlAllowed()) {
RemoteInspector::singleton().setupFailed(targetIdentifier);
m_target = nullptr;
} else if (is<RemoteInspectionTarget>(m_target)) {
auto castedTarget = downcast<RemoteInspectionTarget>(m_target);
castedTarget->connect(*this, isAutomaticInspection, automaticallyPause);
} else if (auto* inspectionTarget = dynamicDowncast<RemoteInspectionTarget>(m_target)) {
inspectionTarget->connect(*this, isAutomaticInspection, automaticallyPause);
m_connected = true;

RemoteInspector::singleton().updateTargetListing(targetIdentifier);
} else if (is<RemoteAutomationTarget>(m_target)) {
auto castedTarget = downcast<RemoteAutomationTarget>(m_target);
castedTarget->connect(*this);
} else if (auto* automationTarget = dynamicDowncast<RemoteAutomationTarget>(m_target)) {
automationTarget->connect(*this);
m_connected = true;

RemoteInspector::singleton().updateTargetListing(targetIdentifier);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -720,8 +720,8 @@ static bool canAccessWebInspectorMachPort()

target = findResult->value;
}
if (is<RemoteInspectionTarget>(target))
downcast<RemoteInspectionTarget>(target)->setIndicating(indicateEnabled);
if (auto* inspectionTarget = dynamicDowncast<RemoteInspectionTarget>(target))
inspectionTarget->setIndicating(indicateEnabled);
});
}

Expand Down

0 comments on commit acf3bc8

Please sign in to comment.