#include "third_party/blink/renderer/platform/bindings/source_location.h"
#include <memory>
#include "base/memory/ptr_util.h"
#include "base/tracing/protos/chrome_track_event.pbzero.h"
#include "third_party/blink/renderer/platform/bindings/script_forbidden_scope.h"
#include "third_party/blink/renderer/platform/bindings/thread_debugger.h"
#include "third_party/blink/renderer/platform/bindings/v8_binding.h"
#include "third_party/blink/renderer/platform/bindings/v8_binding_macros.h"
#include "third_party/blink/renderer/platform/bindings/v8_per_isolate_data.h"
#include "third_party/blink/renderer/platform/instrumentation/tracing/traced_value.h"
#include "third_party/perfetto/include/perfetto/tracing/traced_proto.h"
#include "v8/include/v8-inspector-protocol.h"
namespace blink {
namespace {
String ToPlatformString(const v8_inspector::StringView& string) { … }
String ToPlatformString(std::unique_ptr<v8_inspector::StringBuffer> buffer) { … }
}
std::unique_ptr<SourceLocation> SourceLocation::CaptureWithFullStackTrace() { … }
std::unique_ptr<v8_inspector::V8StackTrace>
SourceLocation::CaptureStackTraceInternal(bool full) { … }
std::unique_ptr<SourceLocation>
SourceLocation::CreateFromNonEmptyV8StackTraceInternal(
std::unique_ptr<v8_inspector::V8StackTrace> stack_trace) { … }
SourceLocation::SourceLocation(
const String& url,
const String& function,
unsigned line_number,
unsigned column_number,
std::unique_ptr<v8_inspector::V8StackTrace> stack_trace,
int script_id)
: … { … }
SourceLocation::~SourceLocation() = default;
std::unique_ptr<SourceLocation> SourceLocation::Clone() const { … }
void SourceLocation::WriteIntoTrace(
perfetto::TracedProto<SourceLocation::Proto> proto) const { … }
void SourceLocation::WriteIntoTrace(perfetto::TracedValue context) const { … }
void SourceLocation::ToTracedValue(TracedValue* value, const char* name) const { … }
String SourceLocation::ToString() const { … }
std::unique_ptr<v8_inspector::protocol::Runtime::API::StackTrace>
SourceLocation::BuildInspectorObject() const { … }
std::unique_ptr<v8_inspector::protocol::Runtime::API::StackTrace>
SourceLocation::BuildInspectorObject(int max_async_depth) const { … }
std::unique_ptr<SourceLocation> CaptureSourceLocation(const String& url,
unsigned line_number,
unsigned column_number) { … }
std::unique_ptr<SourceLocation> CaptureSourceLocation() { … }
std::unique_ptr<SourceLocation> CaptureSourceLocation(
v8::Isolate* isolate,
v8::Local<v8::Function> function) { … }
}