Now when debugger is paused scope sections are properly populated with corresponding name:value pairs for all variables.
Eventually InjectedScript may become something like a regular Sky module but at the moment I don't see how to do this gracefully given that it is parametrised by InjectedScriptHost binding. So at the moment I just store it in "injectedScript" property on the global object,
BUG=435243
R=abarth@chromium.org
Review URL: https://codereview.chromium.org/766683005
ScriptDebugServer needs a way to find ScriptDebugListener for the paused v8::Context. The listeners are added per InspectorHost. Now we have to mapping v8::Context -> InspectorHost, InspectorHost -> ScriptDebugListener which allow to map v8::Context -> ScriptDebugListener. This allows to avoid storing InspectorHost on Page.
BUG=435243
R=abarth@chromium.org
Review URL: https://codereview.chromium.org/764573002
e223e0c6d51f027196a2597b556641328a65d4b5 accidentally
sent all elements down the margin:auto codepath.
The patch incorrectly removed just the
"&& containingBlockStyle->textAlign() == WEBKIT_CENTER"
instead of the whole clause.
R=abarth@chromium.org
Review URL: https://codereview.chromium.org/760143002
Particularly, this deletes RenderLayerCompositor. After this,
there's just CompositingState left to remove.
This is all dead code, so there should be no change in behavior.
R=abarth@chromium.org
Review URL: https://codereview.chromium.org/758843004
This is another step towards making attach non-virtual. InsertionPoints are
core to the engine, so it seems fine to bake them directly into recalcStyle.
I did this already to willRecalcStyle.
R=ojan@chromium.org
Review URL: https://codereview.chromium.org/765523002
This hook existed because some elements wanted to run script inside
::insertedInto, but that wasn't a safe time. Now nothing can run script
inside there so we don't need this extra hook.
HTMLStyleElement's usage of this hook is not clear, but it seems like
it might have related to a pre-lazy attach bug.
R=abarth@chromium.org
Review URL: https://codereview.chromium.org/758623002
This regressed in 3db9471ae80bd492f2a346113d2323ba8eee0c09.
Accidentally sent some code down the override by sending the
top LayoutUnit instead of the left/right LayoutUnit. The
root problem was bad overloading, which is also fixed in
this patch. Inlined the overloaded method since one of
the calls was only called from one place.
The new test demonstrates the ellipsizing, but that doesn't
show through in the render tree dump. We don't get real
test coverage here until we either start doing pixel tests
or start exposing ellipsis in the render tree dumps.
R=esprehn@chromium.org
Review URL: https://codereview.chromium.org/751483002
This caused us to lose our gn check certification. :(
Turns out gn check was just ignoring all the header
paths it didn't understand and so gn check passing
for sky wasn't meaning much. I tried to straighten
out some of the mess in this CL, but its going to take
several more rounds of massaging before gn check
passes again. On the bright side (almost) all of
our headers are absolute now. Turns out my script
(attached to the bug) didn't notice ../ includes
but I'll fix that in the next patch.
R=abarth@chromium.org
BUG=435361
Review URL: https://codereview.chromium.org/746023002
The only place it's used now is making it so that
anonymous flex items don't do ellipsizing the same
way anonymous items inside a block would. This
is something we don't need, especially now that
we only have anonymous paragraphs around text nodes.
It's not clear to me if we want this looking at the
parent behavior at all, but that's something that
can be fixed in a followup.
Also delete some dead anonymous block functions.
R=esprehn@chromium.org
Review URL: https://codereview.chromium.org/741893002
This starts to break the dependency between blink and
the new v8_inspector. At least now the front-end
object InspectorBackendMojo is treated as a peer to
WebView instead of WebView providing one.
Unfortunately I also had to teach Page about
InspectorHost in order to make it possible to
lookup the InspectorHost from the v8::Context.
I'm sure there is a nicer way to associate the
InspectorHost with the context but for now
I've chosen this path, we can untangle the
connection in a later patch.
I also ended up removing Page::allPages
and all callers, since they ended up as dead code.
R=abarth@chromium.org, yurys@chromium.org
BUG=435243
Review URL: https://codereview.chromium.org/746713002
v8_inspector is a peer to web for now.
Eventually it should be its own separate target
and not depend on core or platform at all, but we can't yet.
This creates a place for us to move the debugger-inspector
code to so it can be refactored to not depend on core.
I also moved the public target for sky out of public/
and renamed it "engine" instead of blink.
R=abarth@chromium.org, yurys@chromium.org
Review URL: https://codereview.chromium.org/744143002
Fix (most) generated includes to have gen/ in their path.
This makes it easier to tell where files exist on disk.
Unfortunately I had to leave the old include path
in engine/BUILD.gn to support all the v8 includes
which were too many to deal with in this patch.
It's a little nasty to have the raw build directory
in our include path, but it produces nicer paths.
R=abarth@chromium.org
This is actually a backport of the following Blink change https://src.chromium.org/viewvc/blink?view=rev&revision=185426. New scope types introduced by ES6 features are not yes supported by DevTools and should just be ignored by the debugger. ScriptScope that caused troubles in this particular case was supported in V8 debugger quite recently (https://codereview.chromium.org/726643002).
This fixes following crash on pause in Sky:
#0 0x00007f8a39cffe1b in blink::TypeBuilder::Debugger::Scope::Type::assertCorrectValue (value=0xd98ce760450) at gen/sky/core/InspectorTypeBuilder.cpp:596
#1 0x00007f8a39d00072 in blink::TypeBuilder::Debugger::Scope::assertCorrectValue (value=0xd98ce658898) at gen/sky/core/InspectorTypeBuilder.cpp:610
#2 0x00007f8a39d033c5 in blink::TypeBuilder::StructItemTraits::assertCorrectValue<blink::TypeBuilder::Debugger::Scope> (value=0xd98ce658898) at gen/sky/core/InspectorTypeBuilder.h:160
#3 0x00007f8a39d02f71 in blink::TypeBuilder::Array<blink::TypeBuilder::Debugger::Scope>::assertCorrectValue (value=0xd98ce60af00) at gen/sky/core/InspectorTypeBuilder.h:139
#4 0x00007f8a39cffaaf in blink::TypeBuilder::Debugger::CallFrame::assertCorrectValue (value=0xd98ce658420) at gen/sky/core/InspectorTypeBuilder.cpp:569
#5 0x00007f8a3a753435 in blink::TypeBuilder::StructItemTraits::assertCorrectValue<blink::TypeBuilder::Debugger::CallFrame> (value=0xd98ce658420) at gen/sky/core/InspectorTypeBuilder.h:160
#6 0x00007f8a3a753371 in blink::TypeBuilder::Array<blink::TypeBuilder::Debugger::CallFrame>::assertCorrectValue (value=0xd98ce60af50) at gen/sky/core/InspectorTypeBuilder.h:139
#7 0x00007f8a3a752fa6 in blink::TypeBuilder::Array<blink::TypeBuilder::Debugger::CallFrame>::runtimeCast (value=...) at gen/sky/core/InspectorTypeBuilder.h:121
#8 0x00007f8a3a751e8c in blink::InjectedScript::wrapCallFrames (this=0x7f8a5560d988, callFrames=..., asyncOrdinal=0) at ../../sky/engine/core/inspector/InjectedScript.cpp:261
#9 0x00007f8a3a765350 in blink::InspectorDebuggerAgent::currentCallFrames (this=0xd98ce689410) at ../../sky/engine/core/inspector/InspectorDebuggerAgent.cpp:1149
#10 0x00007f8a3a76ae84 in blink::InspectorDebuggerAgent::didPause (this=0xd98ce689410, scriptState=0xd98ce670170, callFrames=..., exception=..., hitBreakpoints=...) at ../../sky/engine/core/inspector/InspectorDebuggerAgent.cpp:1354
#11 0x00007f8a3a76b0b7 in non-virtual thunk to blink::InspectorDebuggerAgent::didPause(blink::ScriptState*, blink::ScriptValue const&, blink::ScriptValue const&, WTF::Vector<WTF::String, 0ul, WTF::DefaultAllocator> const&) ()
at ../../sky/engine/core/inspector/InspectorDebuggerAgent.cpp:1368
#12 0x00007f8a399dae78 in blink::ScriptDebugServer::handleProgramBreak (this=0x7f8a441c5070, pausedScriptState=0xd98ce670170, executionState=..., exception=..., hitBreakpointNumbers=...) at ../../sky/engine/bindings/core/v8/ScriptDebugServer.cpp:449
#13 0x00007f8a399dbaa8 in blink::ScriptDebugServer::handleV8DebugEvent (this=0x7f8a441c5070, eventDetails=...) at ../../sky/engine/bindings/core/v8/ScriptDebugServer.cpp:519
#14 0x00007f8a399db064 in blink::ScriptDebugServer::v8DebugEventCallback (eventDetails=...) at ../../sky/engine/bindings/core/v8/ScriptDebugServer.cpp:470
#15 0x00007f8a3937bc93 in v8::internal::Debug::CallEventCallback (this=0x7f8a44015510, event=v8::Break, exec_state=..., event_data=..., client_data=0x0) at ../../v8/src/debug.cc:2826
#16 0x00007f8a3937a5af in v8::internal::Debug::ProcessDebugEvent (this=0x7f8a44015510, event=v8::Break, event_data=..., auto_continue=false) at ../../v8/src/debug.cc:2793
#17 0x00007f8a39375589 in v8::internal::Debug::OnDebugBreak (this=0x7f8a44015510, break_points_hit=..., auto_continue=false) at ../../v8/src/debug.cc:2657
#18 0x00007f8a39374132 in v8::internal::Debug::Break (this=0x7f8a44015510, args=..., frame=0x7f8a5560e958) at ../../v8/src/debug.cc:939
#19 0x00007f8a393756d0 in v8::internal::__RT_impl_Debug_Break (args=..., isolate=0x7f8a44007380) at ../../v8/src/debug.cc:982
#20 0x00007f8a3937562e in v8::internal::Debug_Break (args_length=0, args_object=0x7f8a5560eb80, isolate=0x7f8a44007380) at ../../v8/src/debug.cc:979
BUG=None
R=eseidel@chromium.org
Review URL: https://codereview.chromium.org/743673002
We can simplify the checks given that there's fewer node types now. This does
make the error messages from Range a little worse, but it's weird that Range
is doing its own error checking anyway.
I also took this as an opportunity to add a bunch of DOM tests.
R=ojan@chromium.org
Review URL: https://codereview.chromium.org/732203004
Unfortunately we don't yet have a way to walk into
imports, so this only is the first-level of the
source tree, but this is a huge step forward.
You can now click to set breakpoints, however
setting breakpoints crashes sky.
I had to fix Console.log to flush stdout
so that I could actually debug my timing-out test.
Also had to fix Chai to dump differences for deepEqual.
R=esprehn@chromium.org, abarth@chromium.org, esprhen@chromium.org
Review URL: https://codereview.chromium.org/732413004
The debugger can now correctly break on exceptions
and show the corresponding line in the inspector.
It correctly understands which scripts are internal
to sky and does not pause during them.
There is still a ton to make work here
(including stacktraces which I have not tested),
but basic functionality seems to work.
The current implementation is not smart enough to
unpause the inspector when the frontend disconnects.
BUG=434510,434513
R=abarth@chromium.org
Review URL: https://codereview.chromium.org/727593004
Instead of using a custom ::attach to do post insertion work
when assigning the image resource to the RenderImage, we should
just fix the logic inside RenderImage to be able to handle
not being in the tree yet when the resource is first set.
Soon attach will not be virtual anymore.
I also made RenderImage final and most methods private as there
are no longer subclasses.
R=ojan@chromium.org
Review URL: https://codereview.chromium.org/732163004