haikuwebkit/ManualTests/inspector/overlay-nodes.html

132 lines
3.2 KiB
HTML
Raw Permalink Normal View History

Web Inspector: Change the InspectorOverlay to use native rather than canvas https://bugs.webkit.org/show_bug.cgi?id=105023 <rdar://problem/13443692> Reviewed by Brian Burg. .: * ManualTests/inspector/overlay-nodes.html: Added. * ManualTests/inspector/overlay-rulers.html: Added. Source/JavaScriptCore: * inspector/protocol/OverlayTypes.json: Removed. Now that the overlay is entirely generated in C++, we no longer need the special prototol types for transferring data to a JavaScript context. * inspector/protocol/Debugger.json: * inspector/agents/InspectorDebuggerAgent.h: * inspector/agents/InspectorDebuggerAgent.cpp: (Inspector::InspectorDebuggerAgent::setOverlayMessage): Deleted. Remove `Debugger.setOverlayMessage` command as it hasn't been used and is no longer supported. * CMakeLists.txt: * DerivedSources-input.xcfilelist: * DerivedSources.make: Source/WebCore: Should be no change in observed functionality. * inspector/InspectorOverlay.h: * inspector/InspectorOverlay.cpp: (WebCore::truncateWithEllipsis): Added. (WebCore::localPointToRootPoint): Added. (WebCore::contentsQuadToCoordinateSystem): (WebCore::effectiveElementForNode): Added. (WebCore::quadToPath): Added. (WebCore::drawOutlinedQuadWithClip): Added. (WebCore::drawOutlinedQuad): Added. (WebCore::drawFragmentHighlight): Added. (WebCore::drawShapeHighlight): Added. (WebCore::InspectorOverlay::paint): (WebCore::InspectorOverlay::setIndicating): (WebCore::InspectorOverlay::shouldShowOverlay const): (WebCore::InspectorOverlay::update): (WebCore::InspectorOverlay::setShowPaintRects): Added. (WebCore::InspectorOverlay::showPaintRect): (WebCore::InspectorOverlay::updatePaintRectsTimerFired): (WebCore::InspectorOverlay::drawNodeHighlight): (WebCore::InspectorOverlay::drawQuadHighlight): (WebCore::InspectorOverlay::drawPaintRects): (WebCore::InspectorOverlay::drawBounds): Added. (WebCore::InspectorOverlay::drawRulers): (WebCore::InspectorOverlay::drawElementTitle): Added. (WebCore::contentsQuadToPage): Deleted. (WebCore::InspectorOverlay::setPausedInDebuggerMessage): Deleted. (WebCore::buildObjectForPoint): Deleted. (WebCore::buildObjectForRect): Deleted. (WebCore::buildArrayForQuad): Deleted. (WebCore::buildObjectForHighlight): Deleted. (WebCore::buildObjectForSize): Deleted. (WebCore::InspectorOverlay::setShowingPaintRects): Deleted. (WebCore::buildArrayForRendererFragments): Deleted. (WebCore::localPointToRoot): Deleted. (WebCore::appendPathCommandAndPoints): Deleted. (WebCore::appendPathSegment): Deleted. (WebCore::buildObjectForShapeOutside): Deleted. (WebCore::buildObjectForElementData): Deleted. (WebCore::InspectorOverlay::buildHighlightObjectForNode const): Deleted. (WebCore::InspectorOverlay::buildObjectForHighlightedNodes const): Deleted. (WebCore::InspectorOverlay::drawPausedInDebuggerMessage): Deleted. (WebCore::InspectorOverlay::overlayPage): Deleted. (WebCore::InspectorOverlay::forcePaint): Deleted. (WebCore::InspectorOverlay::reset): Deleted. (WebCore::evaluateCommandInOverlay): Deleted. (WebCore::InspectorOverlay::evaluateInOverlay): Deleted. (WebCore::InspectorOverlay::freePage): Deleted. * inspector/agents/InspectorPageAgent.cpp: (WebCore::InspectorPageAgent::disable): (WebCore::InspectorPageAgent::setShowPaintRects): Drive-by: rename `setShowingPaintRects` to better match the protocol. * inspector/agents/page/PageDebuggerAgent.h: * inspector/agents/page/PageDebuggerAgent.cpp: (WebCore::PageDebuggerAgent::PageDebuggerAgent): (WebCore::PageDebuggerAgent::setOverlayMessage): Deleted. Remove `Debugger.setOverlayMessage` command as it hasn't been used and is no longer supported. * inspector/InspectorController.h: * inspector/InspectorController.cpp: (WebCore::InspectorController::createLazyAgents): (WebCore::InspectorController::disconnectFrontend): (WebCore::InspectorController::disconnectAllFrontends): (WebCore::InspectorController::buildObjectForHighlightedNodes const): Deleted. * testing/Internals.h: * testing/Internals.idl: * testing/Internals.cpp: (WebCore::Internals::inspectorHighlightObject): Deleted. * inspector/InspectorOverlayPage.css: Removed. * inspector/InspectorOverlayPage.html: Removed. * inspector/InspectorOverlayPage.js: Removed. * CMakeLists.txt: * DerivedSources-input.xcfilelist: * DerivedSources-output.xcfilelist: * DerivedSources.make: * WebCore.xcodeproj/project.pbxproj: Source/WebInspectorUI: * UserInterface/Base/Main.js: (WI.initializeTarget): * UserInterface/Protocol/Legacy/10.0/InspectorBackendCommands.js: * UserInterface/Protocol/Legacy/10.3/InspectorBackendCommands.js: * UserInterface/Protocol/Legacy/11.0/InspectorBackendCommands.js: * UserInterface/Protocol/Legacy/11.3/InspectorBackendCommands.js: * UserInterface/Protocol/Legacy/12.0/InspectorBackendCommands.js: * UserInterface/Protocol/Legacy/12.2/InspectorBackendCommands.js: * UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js: * UserInterface/Protocol/Legacy/9.0/InspectorBackendCommands.js: * UserInterface/Protocol/Legacy/9.3/InspectorBackendCommands.js: * Versions/Inspector-iOS-10.0.json: * Versions/Inspector-iOS-10.3.json: * Versions/Inspector-iOS-11.0.json: * Versions/Inspector-iOS-11.3.json: * Versions/Inspector-iOS-12.0.json: * Versions/Inspector-iOS-12.2.json: * Versions/Inspector-iOS-8.0.json: * Versions/Inspector-iOS-9.0.json: * Versions/Inspector-iOS-9.3.json: Remove `Debugger.setOverlayMessage` command as it hasn't been used and is no longer supported. LayoutTests: * http/tests/inspector/dom/shapes-test.js: Removed. * inspector/dom/hideHighlight.html: Removed. * inspector/dom/hideHighlight-expected.txt: Removed. * inspector/dom/highlight-shape-outside.html: Removed. * inspector/dom/highlight-shape-outside-expected.txt: Removed. * inspector/dom/highlight-shape-outside-margin.html: Removed. * inspector/dom/highlight-shape-outside-margin-expected.txt: Removed. * inspector/dom/highlightFrame.html: Removed. * inspector/dom/highlightFrame-expected.txt: Removed. * inspector/dom/highlightNode.html: Removed. * inspector/dom/highlightNode-expected.txt: Removed. * inspector/dom/highlightNodeList.html: Removed. * inspector/dom/highlightNodeList-expected.txt: Removed. * inspector/dom/highlightSelector.html: Removed. * inspector/dom/highlightSelector-expected.txt: Removed. * platform/mac/TestExpectations: Canonical link: https://commits.webkit.org/209354@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@242019 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-02-25 04:41:53 +00:00
<style>
p {
position: fixed;
right: 20px;
bottom: 20px;
margin: 0;
}
[id^="test"] {
position: relative;
pointer-events: none;
--content: 0;
--padding: 0;
--border: 0;
--margin: 0;
--content-color: rgba(246, 178, 107, 0.66);
--padding-color: rgba(255, 229, 153, 0.66);
--border-color: rgba(147, 196, 125, 0.66);
--margin-color: rgba(111, 168, 220, 0.66);
}
.expected {
position: absolute;
top: 0;
left: 0;
z-index: -1;
pointer-events: none;
}
.expected > .margin {
position: absolute;
top: 0;
left: 0;
width: calc((var(--border) * 2) + (var(--padding) * 2) + var(--content));
height: calc((var(--border) * 2) + (var(--padding) * 2) + var(--content));
border: var(--margin) solid var(--content-color);
}
.expected > .border {
position: absolute;
top: var(--margin);
left: var(--margin);
width: calc((var(--padding) * 2) + var(--content));
height: calc((var(--padding) * 2) + var(--content));
border: var(--border) solid var(--padding-color);
}
.expected > .padding {
position: absolute;
top: calc(var(--margin) + var(--border));
left: calc(var(--margin) + var(--border));
width: var(--content);
height: var(--content);
border: var(--padding) solid var(--border-color);
}
.expected > .content {
position: absolute;
top: calc(var(--margin) + var(--border) + var(--padding));
left: calc(var(--margin) + var(--border) + var(--padding));
width: var(--content);
height: var(--content);
background-color: var(--margin-color);
}
.actual {
display: inline-block;
pointer-events: all;
width: var(--content);
height: var(--content);
margin: var(--margin);
padding: var(--padding);
border: var(--border) solid transparent;
}
.clear {
clear: both;
}
#test1 {
--content: 10px;
--padding: 20px;
--border: 30px;
--margin: 40px;
}
#test2 {
--content: 100px;
}
#test2 > .expected > .content::after {
display: block;
width: 100%;
height: 100%;
content: "";
background-color: rgba(96, 82, 127, 0.8);
border-radius: 50%;
}
#test2 > .actual {
float: left;
shape-outside: ellipse(50%);
}
</style>
<body>
<div id="test1">
<div class="expected" hidden>
<div class="margin"></div>
<div class="border"></div>
<div class="padding"></div>
<div class="content"></div>
</div>
<div class="actual"></div>
<div class="clear"></div>
</div>
<hr>
<div id="test2">
<div class="expected" hidden>
<div class="margin"></div>
<div class="border"></div>
<div class="padding"></div>
<div class="content"></div>
</div>
<div class="actual"></div>
<div class="clear"></div>
</div>
<p>Inspect this page and hover each test area in the Elements tab. Click <button>Show Expected</button> to compare with the expected result.</p>
<script>
let showingExpected = false;
document.querySelector("button").addEventListener("click", (event) => {
showingExpected = !showingExpected;
for (let node of document.querySelectorAll(".expected"))
node.hidden = !showingExpected;
});
</script>
</body>