feat(webkit): move quads to float space (#162)

This commit is contained in:
Pavel Feldman 2019-12-05 17:57:21 -08:00 коммит произвёл Dmitry Gozman
Родитель 39b22b41c5
Коммит 2c185e3ead
2 изменённых файлов: 24 добавлений и 19 удалений

Просмотреть файл

@ -1 +1 @@
1014
1015

Просмотреть файл

@ -1,6 +1,6 @@
From 058f2450a6d88f65e939bf61b9b54a15ac0cbfd6 Mon Sep 17 00:00:00 2001
From ce5a6f85786584191480f777a95958c0ab151484 Mon Sep 17 00:00:00 2001
From: Pavel Feldman <pavel.feldman@gmail.com>
Date: Thu, 5 Dec 2019 14:38:40 -0800
Date: Thu, 5 Dec 2019 17:54:56 -0800
Subject: [PATCH] chore: bootstrap
---
@ -21,7 +21,7 @@ Subject: [PATCH] chore: bootstrap
Source/WebCore/html/FileInputType.cpp | 6 +
.../inspector/InspectorInstrumentation.cpp | 14 +-
.../inspector/InspectorInstrumentation.h | 21 +
.../inspector/agents/InspectorDOMAgent.cpp | 108 +++-
.../inspector/agents/InspectorDOMAgent.cpp | 113 +++-
.../inspector/agents/InspectorDOMAgent.h | 4 +
.../agents/InspectorDOMStorageAgent.h | 1 +
.../inspector/agents/InspectorPageAgent.cpp | 523 +++++++++++++++++-
@ -123,7 +123,7 @@ Subject: [PATCH] chore: bootstrap
.../mac/WK2BrowserWindowController.h | 3 +
.../mac/WK2BrowserWindowController.m | 37 +-
Tools/MiniBrowser/wpe/main.cpp | 37 ++
119 files changed, 4710 insertions(+), 77 deletions(-)
119 files changed, 4715 insertions(+), 77 deletions(-)
create mode 100644 Source/JavaScriptCore/inspector/protocol/Browser.json
create mode 100644 Source/JavaScriptCore/inspector/protocol/Dialog.json
create mode 100644 Source/JavaScriptCore/inspector/protocol/Emulation.json
@ -1203,7 +1203,7 @@ index 6698431f316..486a6781d81 100644
{
return context ? instrumentingAgentsForContext(*context) : nullptr;
diff --git a/Source/WebCore/inspector/agents/InspectorDOMAgent.cpp b/Source/WebCore/inspector/agents/InspectorDOMAgent.cpp
index aecc79bc0ca..a5e1de17d9e 100644
index aecc79bc0ca..71f8863378b 100644
--- a/Source/WebCore/inspector/agents/InspectorDOMAgent.cpp
+++ b/Source/WebCore/inspector/agents/InspectorDOMAgent.cpp
@@ -61,12 +61,16 @@
@ -1256,16 +1256,21 @@ index aecc79bc0ca..a5e1de17d9e 100644
}
static bool parseQuad(const JSON::Array& quadArray, FloatQuad* quad)
@@ -1475,6 +1482,61 @@ void InspectorDOMAgent::setInspectedNode(ErrorString& errorString, int nodeId)
@@ -1475,6 +1482,66 @@ void InspectorDOMAgent::setInspectedNode(ErrorString& errorString, int nodeId)
m_suppressEventListenerChangedEvent = false;
}
+static void frameQuadToViewport(const FrameView* containingView, FloatQuad& quad)
+static FloatPoint contentsToRootView(FrameView& containingView, const FloatPoint& point)
+{
+ quad.setP1(containingView->contentsToRootView(quad.p1()));
+ quad.setP2(containingView->contentsToRootView(quad.p2()));
+ quad.setP3(containingView->contentsToRootView(quad.p3()));
+ quad.setP4(containingView->contentsToRootView(quad.p4()));
+ return containingView.convertToRootView(point - toFloatSize(containingView.documentScrollPositionRelativeToViewOrigin()));
+}
+
+static void frameQuadToViewport(FrameView& containingView, FloatQuad& quad)
+{
+ quad.setP1(contentsToRootView(containingView, quad.p1()));
+ quad.setP2(contentsToRootView(containingView, quad.p2()));
+ quad.setP3(contentsToRootView(containingView, quad.p3()));
+ quad.setP4(contentsToRootView(containingView, quad.p4()));
+}
+
+static RefPtr<Inspector::Protocol::DOM::Quad> buildObjectForQuad(const FloatQuad& quad)
@ -1294,31 +1299,31 @@ index aecc79bc0ca..a5e1de17d9e 100644
+{
+ Node* node = nodeForObjectId(objectId);
+ if (!node) {
+ error = "Node not found";
+ error = "Node not found"_s;
+ return;
+ }
+ RenderObject* renderer = node->renderer();
+ if (!renderer) {
+ error = "Node doesn't have renderer";
+ error = "Node doesn't have renderer"_s;
+ return;
+ }
+ Frame* containingFrame = renderer->document().frame();
+ if (!containingFrame) {
+ error = "No containing frame";
+ FrameView* containingView = containingFrame ? containingFrame->view() : nullptr;
+ if (!containingView) {
+ error = "Internal error: no containing view"_s;
+ return;
+ }
+ FrameView* containingView = containingFrame->view();
+ Vector<FloatQuad> quads;
+ renderer->absoluteQuads(quads);
+ for (auto& quad : quads)
+ frameQuadToViewport(containingView, quad);
+ frameQuadToViewport(*containingView, quad);
+ out_quads = buildArrayOfQuads(quads);
+}
+
void InspectorDOMAgent::resolveNode(ErrorString& errorString, int nodeId, const String* objectGroup, RefPtr<Inspector::Protocol::Runtime::RemoteObject>& result)
{
String objectGroupName = objectGroup ? *objectGroup : emptyString();
@@ -2686,4 +2748,46 @@ void InspectorDOMAgent::setAllowEditingUserAgentShadowTrees(ErrorString&, bool a
@@ -2686,4 +2753,46 @@ void InspectorDOMAgent::setAllowEditingUserAgentShadowTrees(ErrorString&, bool a
m_allowEditingUserAgentShadowTrees = allow;
}