Skip to content

Commit 94bc35a

Browse files
committed
Adding blink side of LBR API
1 parent 13d8eb6 commit 94bc35a

File tree

4 files changed

+303
-0
lines changed

4 files changed

+303
-0
lines changed
Lines changed: 250 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,250 @@
1+
# Copyright 2014 The Chromium Authors
2+
# Use of this source code is governed by a BSD-style license that can be
3+
# found in the LICENSE file.
4+
5+
# The database file produced by
6+
# "//third_party/blink/renderer/bindings:web_idl_database".
7+
web_idl_database_filepath =
8+
get_path_info(".", "gen_dir") + "/web_idl_database.pickle"
9+
10+
# Source files to be part of
11+
# "//third_party/blink/renderer/core:core".
12+
blink_core_sources_bindings =
13+
get_path_info([
14+
"core/v8/active_script_wrappable.cc",
15+
"core/v8/active_script_wrappable.h",
16+
"core/v8/array_value.cc",
17+
"core/v8/array_value.h",
18+
"core/v8/binding_security.cc",
19+
"core/v8/binding_security.h",
20+
"core/v8/boxed_v8_module.h",
21+
"core/v8/callback_invoke_helper.cc",
22+
"core/v8/callback_invoke_helper.h",
23+
"core/v8/callback_promise_adapter.h",
24+
"core/v8/capture_source_location.cc",
25+
"core/v8/capture_source_location.h",
26+
"core/v8/custom/v8_dev_tools_host_custom.cc",
27+
"core/v8/custom/v8_html_all_collection_custom.cc",
28+
"core/v8/custom/v8_html_plugin_element_custom.cc",
29+
"core/v8/custom/v8_promise_rejection_event_custom.cc",
30+
"core/v8/custom/v8_window_custom.cc",
31+
"core/v8/custom/v8_xml_http_request_custom.cc",
32+
"core/v8/custom_wrappable_adapter.cc",
33+
"core/v8/custom_wrappable_adapter.h",
34+
"core/v8/dictionary.cc",
35+
"core/v8/dictionary.h",
36+
"core/v8/dictionary_helper_for_core.cc",
37+
"core/v8/generated_code_helper.cc",
38+
"core/v8/generated_code_helper.h",
39+
"core/v8/idl_types.h",
40+
"core/v8/idl_types_base.h",
41+
"core/v8/isolated_world_csp.cc",
42+
"core/v8/isolated_world_csp.h",
43+
"core/v8/iterable.cc",
44+
"core/v8/iterable.h",
45+
"core/v8/js_based_event_listener.cc",
46+
"core/v8/js_based_event_listener.h",
47+
"core/v8/js_event_handler.cc",
48+
"core/v8/js_event_handler.h",
49+
"core/v8/js_event_handler_for_content_attribute.cc",
50+
"core/v8/js_event_handler_for_content_attribute.h",
51+
"core/v8/js_event_listener.cc",
52+
"core/v8/js_event_listener.h",
53+
"core/v8/local_window_proxy.cc",
54+
"core/v8/local_window_proxy.h",
55+
"core/v8/maplike.h",
56+
"core/v8/module_record.cc",
57+
"core/v8/module_record.h",
58+
"core/v8/module_request.cc",
59+
"core/v8/module_request.h",
60+
"core/v8/native_value_traits.h",
61+
"core/v8/native_value_traits_buffer_sources.cc",
62+
"core/v8/native_value_traits_impl.cc",
63+
"core/v8/native_value_traits_impl.h",
64+
"core/v8/observable_array.h",
65+
"core/v8/observable_array_exotic_object_handler.h",
66+
"core/v8/observable_array_exotic_object_impl.cc",
67+
"core/v8/observable_array_exotic_object_impl.h",
68+
"core/v8/process_profile.cc",
69+
"core/v8/process_profile.h",
70+
"core/v8/profiler_trace_builder.cc",
71+
"core/v8/profiler_trace_builder.h",
72+
"core/v8/referrer_script_info.cc",
73+
"core/v8/referrer_script_info.h",
74+
"core/v8/rejected_promises.cc",
75+
"core/v8/rejected_promises.h",
76+
"core/v8/remote_window_proxy.cc",
77+
"core/v8/remote_window_proxy.h",
78+
"core/v8/retained_object_info.h",
79+
"core/v8/sanitize_script_errors.h",
80+
"core/v8/scheduled_action.cc",
81+
"core/v8/scheduled_action.h",
82+
"core/v8/script_cache_consumer.cc",
83+
"core/v8/script_cache_consumer.h",
84+
"core/v8/script_cache_consumer_client.h",
85+
"core/v8/script_controller.cc",
86+
"core/v8/script_controller.h",
87+
"core/v8/script_custom_element_definition.cc",
88+
"core/v8/script_custom_element_definition.h",
89+
"core/v8/script_custom_element_definition_builder.cc",
90+
"core/v8/script_custom_element_definition_builder.h",
91+
"core/v8/script_custom_element_definition_data.h",
92+
"core/v8/script_evaluation_result.cc",
93+
"core/v8/script_evaluation_result.h",
94+
"core/v8/script_function.cc",
95+
"core/v8/script_function.h",
96+
"core/v8/script_iterator.cc",
97+
"core/v8/script_iterator.h",
98+
"core/v8/script_promise.cc",
99+
"core/v8/script_promise.h",
100+
"core/v8/script_promise_property.h",
101+
"core/v8/script_promise_resolver_with_tracker.h",
102+
"core/v8/script_promise_resolver.cc",
103+
"core/v8/script_promise_resolver.h",
104+
"core/v8/script_regexp.cc",
105+
"core/v8/script_regexp.h",
106+
"core/v8/script_source_location_type.h",
107+
"core/v8/script_streamer.cc",
108+
"core/v8/script_streamer.h",
109+
"core/v8/script_value.cc",
110+
"core/v8/script_value.h",
111+
"core/v8/serialization/post_message_helper.cc",
112+
"core/v8/serialization/post_message_helper.h",
113+
"core/v8/serialization/serialization_tag.h",
114+
"core/v8/serialization/serialized_color_params.cc",
115+
"core/v8/serialization/serialized_color_params.h",
116+
"core/v8/serialization/serialized_script_value.cc",
117+
"core/v8/serialization/serialized_script_value.h",
118+
"core/v8/serialization/serialized_script_value_factory.cc",
119+
"core/v8/serialization/serialized_script_value_factory.h",
120+
"core/v8/serialization/trailer_reader.cc",
121+
"core/v8/serialization/trailer_reader.h",
122+
"core/v8/serialization/trailer_writer.cc",
123+
"core/v8/serialization/trailer_writer.h",
124+
"core/v8/serialization/transferables.cc",
125+
"core/v8/serialization/transferables.h",
126+
"core/v8/serialization/unpacked_serialized_script_value.cc",
127+
"core/v8/serialization/unpacked_serialized_script_value.h",
128+
"core/v8/serialization/v8_script_value_deserializer.cc",
129+
"core/v8/serialization/v8_script_value_deserializer.h",
130+
"core/v8/serialization/v8_script_value_serializer.cc",
131+
"core/v8/serialization/v8_script_value_serializer.h",
132+
"core/v8/shadow_realm_context.cc",
133+
"core/v8/shadow_realm_context.h",
134+
"core/v8/to_v8_for_core.h",
135+
"core/v8/to_v8_traits.h",
136+
"core/v8/use_counter_callback.cc",
137+
"core/v8/use_counter_callback.h",
138+
"core/v8/v8_binding_for_core.cc",
139+
"core/v8/v8_binding_for_core.h",
140+
"core/v8/v8_code_cache.cc",
141+
"core/v8/v8_code_cache.h",
142+
"core/v8/v8_context_snapshot.cc",
143+
"core/v8/v8_context_snapshot.h",
144+
"core/v8/v8_ctype_traits.h",
145+
"core/v8/v8_embedder_graph_builder.cc",
146+
"core/v8/v8_embedder_graph_builder.h",
147+
"core/v8/v8_event_listener_info.h",
148+
"core/v8/v8_gc_controller.cc",
149+
"core/v8/v8_gc_controller.h",
150+
"core/v8/v8_gc_for_context_dispose.cc",
151+
"core/v8/v8_gc_for_context_dispose.h",
152+
"core/v8/v8_html_constructor.cc",
153+
"core/v8/v8_html_constructor.h",
154+
"core/v8/v8_idle_task_runner.h",
155+
"core/v8/v8_initializer.cc",
156+
"core/v8/v8_initializer.h",
157+
"core/v8/v8_intersection_observer_delegate.cc",
158+
"core/v8/v8_intersection_observer_delegate.h",
159+
"core/v8/v8_metrics.cc",
160+
"core/v8/v8_metrics.h",
161+
"core/v8/v8_object_builder.cc",
162+
"core/v8/v8_object_builder.h",
163+
"core/v8/v8_object_parser.cc",
164+
"core/v8/v8_object_parser.h",
165+
"core/v8/v8_page_popup_controller_binding.cc",
166+
"core/v8/v8_page_popup_controller_binding.h",
167+
"core/v8/v8_script_runner.cc",
168+
"core/v8/v8_script_runner.h",
169+
"core/v8/v8_set_return_value_for_core.h",
170+
"core/v8/v8_string_resource.h",
171+
"core/v8/v8_throw_dom_exception.cc",
172+
"core/v8/v8_throw_dom_exception.h",
173+
"core/v8/v8_wasm_response_extensions.cc",
174+
"core/v8/v8_wasm_response_extensions.h",
175+
"core/v8/window_proxy.cc",
176+
"core/v8/window_proxy.h",
177+
"core/v8/window_proxy_manager.cc",
178+
"core/v8/window_proxy_manager.h",
179+
"core/v8/worker_or_worklet_script_controller.cc",
180+
"core/v8/worker_or_worklet_script_controller.h",
181+
"core/v8/world_safe_v8_reference.cc",
182+
"core/v8/world_safe_v8_reference.h",
183+
],
184+
"abspath")
185+
186+
# Source files to be part of
187+
# "//third_party/blink/renderer/modules:modules".
188+
blink_modules_sources_bindings = get_path_info(
189+
[
190+
"modules/v8/module_bindings_initializer.cc",
191+
"modules/v8/module_bindings_initializer.h",
192+
"modules/v8/serialization/serialized_script_value_for_modules_factory.cc",
193+
"modules/v8/serialization/serialized_script_value_for_modules_factory.h",
194+
"modules/v8/serialization/serialized_track_params.cc",
195+
"modules/v8/serialization/serialized_track_params.h",
196+
"modules/v8/serialization/v8_script_value_deserializer_for_modules.cc",
197+
"modules/v8/serialization/v8_script_value_deserializer_for_modules.h",
198+
"modules/v8/serialization/v8_script_value_serializer_for_modules.cc",
199+
"modules/v8/serialization/v8_script_value_serializer_for_modules.h",
200+
"modules/v8/to_v8_for_modules.h",
201+
"modules/v8/v8_binding_for_modules.cc",
202+
"modules/v8/v8_binding_for_modules.h",
203+
"modules/v8/v8_context_snapshot_impl.cc",
204+
"modules/v8/v8_context_snapshot_impl.h",
205+
"modules/v8/webgl_any.cc",
206+
"modules/v8/webgl_any.h",
207+
],
208+
"abspath")
209+
210+
bindings_unittest_files = get_path_info(
211+
[
212+
"core/v8/activity_logger_test.cc",
213+
"core/v8/binding_security_test.cc",
214+
"core/v8/boxed_v8_module_test.cc",
215+
"core/v8/dictionary_test.cc",
216+
"core/v8/dom_wrapper_world_test.cc",
217+
"core/v8/idl_types_test.cc",
218+
"core/v8/module_record_test.cc",
219+
"core/v8/native_value_traits_impl_test.cc",
220+
"core/v8/native_value_traits_test.cc",
221+
"core/v8/no_alloc_direct_call_host_test.cc",
222+
"core/v8/profiler_trace_builder_test.cc",
223+
"core/v8/referrer_script_info_test.cc",
224+
"core/v8/script_promise_property_test.cc",
225+
"core/v8/script_promise_resolver_test.cc",
226+
"core/v8/script_promise_resolver_with_tracker_test.cc",
227+
"core/v8/script_promise_test.cc",
228+
"core/v8/script_promise_tester.cc",
229+
"core/v8/script_promise_tester.h",
230+
"core/v8/script_streamer_test.cc",
231+
"core/v8/script_wrappable_v8_gc_integration_test.cc",
232+
"core/v8/serialization/serialized_script_value_test.cc",
233+
"core/v8/serialization/serialized_script_value_threaded_test.cc",
234+
"core/v8/serialization/trailer_reader_test.cc",
235+
"core/v8/serialization/trailer_writer_test.cc",
236+
"core/v8/serialization/v8_script_value_serializer_test.cc",
237+
"core/v8/to_v8_test.cc",
238+
"core/v8/to_v8_traits_test.cc",
239+
"core/v8/trace_wrapper_v8_reference_test.cc",
240+
"core/v8/v8_binding_for_testing.cc",
241+
"core/v8/v8_binding_for_testing.h",
242+
"core/v8/v8_object_builder_test.cc",
243+
"core/v8/v8_script_runner_test.cc",
244+
"core/v8/window_proxy_test.cc",
245+
"core/v8/world_safe_v8_reference_test.cc",
246+
"modules/v8/serialization/v8_script_value_serializer_for_modules_test.cc",
247+
"modules/v8/v8_binding_for_modules_test.cc",
248+
"modules/v8/v8_element_test.cc",
249+
],
250+
"abspath")
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
2+
#include "third_party/blink/renderer/bindings/core/v8/process_profile.h"
3+
4+
#include <windows.h>
5+
6+
#include "base/threading/sequence_local_storage_slot.h"
7+
#include "mojo/public/cpp/bindings/remote.h"
8+
#include "services/device/public/mojom/device_service_provider.mojom-blink.h"
9+
#include "third_party/blink/public/common/thread_safe_browser_interface_broker_proxy.h"
10+
#include "third_party/blink/public/platform/platform.h"
11+
12+
namespace {
13+
device::mojom::blink::DeviceServiceProvider& Provider() {
14+
static base::SequenceLocalStorageSlot<
15+
mojo::Remote<device::mojom::blink::DeviceServiceProvider>>
16+
remote_slot;
17+
18+
mojo::Remote<device::mojom::blink::DeviceServiceProvider>& remote =
19+
remote_slot.GetOrCreateValue();
20+
21+
if (!remote) {
22+
blink::Platform::Current()->GetBrowserInterfaceBroker()->GetInterface(
23+
remote.BindNewPipeAndPassReceiver());
24+
}
25+
return *remote.get();
26+
}
27+
} // namespace
28+
29+
void ProcessProfiler::Initialize(v8::Isolate* isolate) {
30+
auto &provider = Provider();
31+
provider.StartCollectingLbr(::GetCurrentProcessId(), ::GetCurrentThreadId());
32+
33+
// TODO: Hook isolate to provider
34+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
2+
#ifndef THIRD_PARTY_BLINK_RENDERER_CONTROLLER_PROCESS_PROFILE_H_
3+
#define THIRD_PARTY_BLINK_RENDERER_CONTROLLER_PROCESS_PROFILE_H_
4+
5+
#include "third_party/blink/renderer/platform//wtf/allocator/allocator.h"
6+
#include "v8/include/v8.h"
7+
8+
class ProcessProfiler {
9+
STATIC_ONLY(ProcessProfiler);
10+
11+
public:
12+
static void Initialize(v8::Isolate* isolate);
13+
};
14+
15+
#endif //THIRD_PARTY_BLINK_RENDERER_CONTROLLER_PROCESS_PROFILE_H_

inteldeviceservice/src2dst.cmd

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,12 @@ xcopy "%srcpath%\src\services\device\device_service.h" "%dstpath%\src\services\d
5454
echo "third_party\blink\public\common\privacy_budget"
5555
xcopy "%srcpath%\src\third_party\blink\public\common\privacy_budget\identifiable_surface.h" "%dstpath%\src\third_party\blink\public\common\privacy_budget\*"
5656
echo "third_party\blink\render\bindings"
57+
xcopy "%srcpath%\src\third_party\blink\renderer\bindings\bindings.gni" "%dstpath%\src\third_party\blink\renderer\bindings\*"
5758
xcopy "%srcpath%\src\third_party\blink\renderer\bindings\generated_in_modules.gni" "%dstpath%\src\third_party\blink\renderer\bindings\*"
5859
xcopy "%srcpath%\src\third_party\blink\renderer\bindings\idl_in_modules.gni" "%dstpath%\src\third_party\blink\renderer\bindings\*"
60+
echo "third_party\blink\render\bindings\core\v8"
61+
xcopy "%srcpath%\src\third_party\blink\renderer\bindings\core\v8\process_profile.cc" "%dstpath%\src\third_party\blink\renderer\bindings\core\v8\*"
62+
xcopy "%srcpath%\src\third_party\blink\renderer\bindings\core\v8\process_profile.h" "%dstpath%\src\third_party\blink\renderer\bindings\core\v8\*"
5963
echo "third_party\blink\renderer\core\css\parser"
6064
xcopy "%srcpath%\src\third_party\blink\renderer\core\css\parser\media_query_parser.cc" "%dstpath%\src\third_party\blink\renderer\core\css\parser\*"
6165
echo "third_party\blink\renderer\core\css"

0 commit comments

Comments
 (0)