Commit-Queue | +1 |
Dave, a simple follow-up CL to fix the CL you reviewd for Zhengzheng. Hope it is okay. Thanks.
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. | Gerrit |
I don't think this is the right fix. I think there is something wrong with the probe DEPs.. in https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/probe/BUILD.gn;l=47?q=instrumentation_probes%20BUILD.gn&ss=chromium
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. | Gerrit |
Commit-Queue | +1 |
I don't think this is the right fix. I think there is something wrong with the probe DEPs.. in https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/probe/BUILD.gn;l=47?q=instrumentation_probes%20BUILD.gn&ss=chromium
Thanks for the link.
Please check wheter PS2 make sense. It also fixes the compile error locally for me.
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. | Gerrit |
Xiyuan XiaI don't think this is the right fix. I think there is something wrong with the probe DEPs.. in https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/probe/BUILD.gn;l=47?q=instrumentation_probes%20BUILD.gn&ss=chromium
Thanks for the link.
Please check wheter PS2 make sense. It also fixes the compile error locally for me.
I'm not sure the deps Dave is pointing to are wrong. First, at the template level we have no idea what actual probes would be dependent on (this would be determined by the actual `probe_set` argument and thus would be more appropriate at the invoker level ([here](https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/probe/BUILD.gn;l=80) in this case), and second, if you look at the actual stuff core_probes_impl includes, it's [all within core](https://source.chromium.org/chromium/chromium/src/+/main:out/linux-Debug/gen/third_party/blink/renderer/core/core_probes_impl.cc), i.e. should not require an additional dependency. My reading of this error log:
```
In file included from gen/third_party/blink/renderer/core/core_probes_impl.cc:16:
In file included from ../../third_party/blink/renderer/core/inspector/inspector_animation_agent.h:12:
In file included from ../../third_party/blink/renderer/core/animation/scroll_snapshot_timeline.h:15:
In file included from ../../third_party/blink/renderer/core/layout/layout_box.h:46:
In file included from ../../third_party/blink/renderer/core/scroll/scrollbar_theme.h:32:
In file included from ../../third_party/blink/renderer/core/exported/web_view_impl.h:67:
In file included from ../../third_party/blink/renderer/core/frame/resize_viewport_anchor.h:9:
In file included from ../../third_party/blink/renderer/core/page/page.h:50:
../../third_party/blink/renderer/bindings/core/v8/v8_compile_hints_producer.h:8:10: fatal error: 'third_party/blink/renderer/bindings/buildflags.h' file not found
8 | #include "third_party/blink/renderer/bindings/buildflags.h"
```
is that the missing dependency is somewhere within the bottom couple of entries.
"//third_party/blink/renderer/bindings:buildflags",
So where do we actually depend on bindings in the generated code?
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. | Gerrit |
Xiyuan XiaI don't think this is the right fix. I think there is something wrong with the probe DEPs.. in https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/probe/BUILD.gn;l=47?q=instrumentation_probes%20BUILD.gn&ss=chromium
Andrey KosyakovThanks for the link.
Please check wheter PS2 make sense. It also fixes the compile error locally for me.
I'm not sure the deps Dave is pointing to are wrong. First, at the template level we have no idea what actual probes would be dependent on (this would be determined by the actual `probe_set` argument and thus would be more appropriate at the invoker level ([here](https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/probe/BUILD.gn;l=80) in this case), and second, if you look at the actual stuff core_probes_impl includes, it's [all within core](https://source.chromium.org/chromium/chromium/src/+/main:out/linux-Debug/gen/third_party/blink/renderer/core/core_probes_impl.cc), i.e. should not require an additional dependency. My reading of this error log:
```
In file included from gen/third_party/blink/renderer/core/core_probes_impl.cc:16:
In file included from ../../third_party/blink/renderer/core/inspector/inspector_animation_agent.h:12:
In file included from ../../third_party/blink/renderer/core/animation/scroll_snapshot_timeline.h:15:
In file included from ../../third_party/blink/renderer/core/layout/layout_box.h:46:
In file included from ../../third_party/blink/renderer/core/scroll/scrollbar_theme.h:32:
In file included from ../../third_party/blink/renderer/core/exported/web_view_impl.h:67:
In file included from ../../third_party/blink/renderer/core/frame/resize_viewport_anchor.h:9:
In file included from ../../third_party/blink/renderer/core/page/page.h:50:
../../third_party/blink/renderer/bindings/core/v8/v8_compile_hints_producer.h:8:10: fatal error: 'third_party/blink/renderer/bindings/buildflags.h' file not found
8 | #include "third_party/blink/renderer/bindings/buildflags.h"
```
is that the missing dependency is somewhere within the bottom couple of entries.
I think you got to gn describe the core_probes target and see if it has the buildflags as a deps. Liekly it doesn't. We generally don't public_deps the dependencies and that is likely the problem here is that the probes code doesn't explicitly list deps (and incorrectly depends on public_deps) to have those defined to haul things in for the header files it includes.
Is there a way to define the deps per generated probe file? (with the generated code?)
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. | Gerrit |
Commit-Queue | +1 |
Xiyuan XiaI don't think this is the right fix. I think there is something wrong with the probe DEPs.. in https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/probe/BUILD.gn;l=47?q=instrumentation_probes%20BUILD.gn&ss=chromium
Andrey KosyakovThanks for the link.
Please check wheter PS2 make sense. It also fixes the compile error locally for me.
Dave TapuskaI'm not sure the deps Dave is pointing to are wrong. First, at the template level we have no idea what actual probes would be dependent on (this would be determined by the actual `probe_set` argument and thus would be more appropriate at the invoker level ([here](https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/probe/BUILD.gn;l=80) in this case), and second, if you look at the actual stuff core_probes_impl includes, it's [all within core](https://source.chromium.org/chromium/chromium/src/+/main:out/linux-Debug/gen/third_party/blink/renderer/core/core_probes_impl.cc), i.e. should not require an additional dependency. My reading of this error log:
```
In file included from gen/third_party/blink/renderer/core/core_probes_impl.cc:16:
In file included from ../../third_party/blink/renderer/core/inspector/inspector_animation_agent.h:12:
In file included from ../../third_party/blink/renderer/core/animation/scroll_snapshot_timeline.h:15:
In file included from ../../third_party/blink/renderer/core/layout/layout_box.h:46:
In file included from ../../third_party/blink/renderer/core/scroll/scrollbar_theme.h:32:
In file included from ../../third_party/blink/renderer/core/exported/web_view_impl.h:67:
In file included from ../../third_party/blink/renderer/core/frame/resize_viewport_anchor.h:9:
In file included from ../../third_party/blink/renderer/core/page/page.h:50:
../../third_party/blink/renderer/bindings/core/v8/v8_compile_hints_producer.h:8:10: fatal error: 'third_party/blink/renderer/bindings/buildflags.h' file not found
8 | #include "third_party/blink/renderer/bindings/buildflags.h"
```
is that the missing dependency is somewhere within the bottom couple of entries.
I think you got to gn describe the core_probes target and see if it has the buildflags as a deps. Liekly it doesn't. We generally don't public_deps the dependencies and that is likely the problem here is that the probes code doesn't explicitly list deps (and incorrectly depends on public_deps) to have those defined to haul things in for the header files it includes.
Is there a way to define the deps per generated probe file? (with the generated code?)
The missing deps is for build target `//third_party/blink/renderer/core/probe:instrumentation_probes`. As mentioned in the bug, we could repro the problem with a clean build.
`gn path` shows no deps between `instrumentation_probes` and `renderer/bindings:buildflags`.
```
$ gn path $OUT //third_party/blink/renderer/core/probe:instrumentation_probes //third_party/blink/renderer/bindings:buildflags
No non-data paths found between these two targets.
```
I revised the CL to pass in the extra deps to `probe_generator` template separately at the invoker side. Would that look better?
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. | Gerrit |
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. | Gerrit |
Ok, on a closer look we do depend on bindings on core_probes, so this lgtm. I would also vote for landing the original change as a matter of preventing accidental circular header dependencies in the future, including the class definition, especially such a high-level one, just for the sake of a `friend` declaration looks wasteful to me.
deps += invoker.extra_deps
I think we commonly use just the usual `deps` for that: https://source.chromium.org/search?q=invoker.deps
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. | Gerrit |
Bring back PS1 change to use forward declaration for `friend`.
Lost stamps after uploading new PS. And I need stamps from both you guys.
So where do we actually depend on bindings in the generated code?
Acknowledged. Discussed in other comments.
I think we commonly use just the usual `deps` for that: https://source.chromium.org/search?q=invoker.deps
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. | Gerrit |
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. | Gerrit |
Commit-Queue | +2 |
Thanks for reviewing. Landing...
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. | Gerrit |
blink: Fix v8_compile_hints_producer.h compile error
Follow up of http://crrev.com/c/5977022.
Including "web_view_impl.h" in "scrollbar_theme.h" brings in new
deps. The new deps seem to be missing in build gn files. As a
result, compilation occasionally fails with
```
v8_compile_hints_producer.h:8:10: fatal error:
'third_party/blink/renderer/bindings/buildflags.h' file
```
This CL adds the missing deps exposed by the above CL.
`instrumentation_probes` -> `blink/renderer/bindings:buildflags`
And also uses forward declaration for `friend`.
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. | Gerrit |