blob: 0a8afe3410153e3710b5d6b081f5c4069c390d64 [file] [log] [blame]
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// DO NOT EDIT: This file is auto-generated by
// //third_party/blink/renderer/bindings/scripts/generate_bindings.py
//
// Use the GN flag `blink_enable_generated_code_formatting=true` to enable
// formatting of the generated files.
#include "third_party/blink/renderer/bindings/extensions_chromeos/v8/v8_cros_screen.h"
#include "third_party/blink/renderer/bindings/core/v8/generated_code_helper.h"
#include "third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h"
#include "third_party/blink/renderer/bindings/core/v8/to_v8_traits.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_set_return_value_for_core.h"
#include "third_party/blink/renderer/extensions/chromeos/system_extensions/window_management/cros_screen.h"
#include "third_party/blink/renderer/platform/bindings/exception_messages.h"
#include "third_party/blink/renderer/platform/bindings/idl_member_installer.h"
#include "third_party/blink/renderer/platform/bindings/runtime_call_stats.h"
#include "third_party/blink/renderer/platform/bindings/v8_binding.h"
#include "third_party/blink/renderer/platform/bindings/wrapper_type_info.h"
namespace blink {
// Construction of WrapperTypeInfo may require non-trivial initialization due
// to cross-component address resolution in order to load the pointer to the
// parent interface's WrapperTypeInfo. We ignore this issue because the issue
// happens only on component builds and the official release builds
// (statically-linked builds) are never affected by this issue.
#if defined(COMPONENT_BUILD) && defined(WIN32) && defined(__clang__)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wglobal-constructors"
#endif
const WrapperTypeInfo V8CrosScreen::wrapper_type_info_{
gin::kEmbedderBlink,
V8CrosScreen::InstallInterfaceTemplate,
nullptr,
"CrosScreen",
nullptr,
WrapperTypeInfo::kWrapperTypeObjectPrototype,
WrapperTypeInfo::kObjectClassId,
WrapperTypeInfo::kNotInheritFromActiveScriptWrappable,
WrapperTypeInfo::kIdlInterface,
};
#if defined(COMPONENT_BUILD) && defined(WIN32) && defined(__clang__)
#pragma clang diagnostic pop
#endif
const WrapperTypeInfo& CrosScreen::wrapper_type_info_ =
V8CrosScreen::wrapper_type_info_;
// non-[ActiveScriptWrappable]
static_assert(!std::is_base_of<ActiveScriptWrappableBase, CrosScreen>::value,
"CrosScreen inherits from ActiveScriptWrappable<> without "
"[ActiveScriptWrappable] extended attribute.");
static_assert(
std::is_same<decltype(&CrosScreen::HasPendingActivity),
decltype(&ScriptWrappable::HasPendingActivity)>::value,
"CrosScreen is overriding hasPendingActivity() without "
"[ActiveScriptWrappable] extended attribute.");
namespace {
namespace v8_cros_screen {
void AvailWidthAttributeGetCallback(
const v8::FunctionCallbackInfo<v8::Value>& info) {
RUNTIME_CALL_TIMER_SCOPE_DISABLED_BY_DEFAULT(
info.GetIsolate(), "Blink_CrosScreen_availWidth_Getter");
BLINK_BINDINGS_TRACE_EVENT("CrosScreen.availWidth.get");
v8::Local<v8::Object> v8_receiver = info.This();
CrosScreen* blink_receiver = V8CrosScreen::ToWrappableUnsafe(v8_receiver);
auto&& return_value = blink_receiver->availWidth();
bindings::V8SetReturnValue(info, return_value,
bindings::V8ReturnValue::PrimitiveType<int32_t>());
}
void AvailHeightAttributeGetCallback(
const v8::FunctionCallbackInfo<v8::Value>& info) {
RUNTIME_CALL_TIMER_SCOPE_DISABLED_BY_DEFAULT(
info.GetIsolate(), "Blink_CrosScreen_availHeight_Getter");
BLINK_BINDINGS_TRACE_EVENT("CrosScreen.availHeight.get");
v8::Local<v8::Object> v8_receiver = info.This();
CrosScreen* blink_receiver = V8CrosScreen::ToWrappableUnsafe(v8_receiver);
auto&& return_value = blink_receiver->availHeight();
bindings::V8SetReturnValue(info, return_value,
bindings::V8ReturnValue::PrimitiveType<int32_t>());
}
void WidthAttributeGetCallback(
const v8::FunctionCallbackInfo<v8::Value>& info) {
RUNTIME_CALL_TIMER_SCOPE_DISABLED_BY_DEFAULT(info.GetIsolate(),
"Blink_CrosScreen_width_Getter");
BLINK_BINDINGS_TRACE_EVENT("CrosScreen.width.get");
v8::Local<v8::Object> v8_receiver = info.This();
CrosScreen* blink_receiver = V8CrosScreen::ToWrappableUnsafe(v8_receiver);
auto&& return_value = blink_receiver->width();
bindings::V8SetReturnValue(info, return_value,
bindings::V8ReturnValue::PrimitiveType<int32_t>());
}
void HeightAttributeGetCallback(
const v8::FunctionCallbackInfo<v8::Value>& info) {
RUNTIME_CALL_TIMER_SCOPE_DISABLED_BY_DEFAULT(
info.GetIsolate(), "Blink_CrosScreen_height_Getter");
BLINK_BINDINGS_TRACE_EVENT("CrosScreen.height.get");
v8::Local<v8::Object> v8_receiver = info.This();
CrosScreen* blink_receiver = V8CrosScreen::ToWrappableUnsafe(v8_receiver);
auto&& return_value = blink_receiver->height();
bindings::V8SetReturnValue(info, return_value,
bindings::V8ReturnValue::PrimitiveType<int32_t>());
}
void LeftAttributeGetCallback(const v8::FunctionCallbackInfo<v8::Value>& info) {
RUNTIME_CALL_TIMER_SCOPE_DISABLED_BY_DEFAULT(info.GetIsolate(),
"Blink_CrosScreen_left_Getter");
BLINK_BINDINGS_TRACE_EVENT("CrosScreen.left.get");
v8::Local<v8::Object> v8_receiver = info.This();
CrosScreen* blink_receiver = V8CrosScreen::ToWrappableUnsafe(v8_receiver);
auto&& return_value = blink_receiver->left();
bindings::V8SetReturnValue(info, return_value,
bindings::V8ReturnValue::PrimitiveType<int32_t>());
}
void TopAttributeGetCallback(const v8::FunctionCallbackInfo<v8::Value>& info) {
RUNTIME_CALL_TIMER_SCOPE_DISABLED_BY_DEFAULT(info.GetIsolate(),
"Blink_CrosScreen_top_Getter");
BLINK_BINDINGS_TRACE_EVENT("CrosScreen.top.get");
v8::Local<v8::Object> v8_receiver = info.This();
CrosScreen* blink_receiver = V8CrosScreen::ToWrappableUnsafe(v8_receiver);
auto&& return_value = blink_receiver->top();
bindings::V8SetReturnValue(info, return_value,
bindings::V8ReturnValue::PrimitiveType<int32_t>());
}
void IsPrimaryAttributeGetCallback(
const v8::FunctionCallbackInfo<v8::Value>& info) {
RUNTIME_CALL_TIMER_SCOPE_DISABLED_BY_DEFAULT(
info.GetIsolate(), "Blink_CrosScreen_isPrimary_Getter");
BLINK_BINDINGS_TRACE_EVENT("CrosScreen.isPrimary.get");
v8::Local<v8::Object> v8_receiver = info.This();
CrosScreen* blink_receiver = V8CrosScreen::ToWrappableUnsafe(v8_receiver);
auto&& return_value = blink_receiver->isPrimary();
bindings::V8SetReturnValue(info, return_value,
bindings::V8ReturnValue::PrimitiveType<bool>());
}
} // namespace v8_cros_screen
using namespace v8_cros_screen;
} // namespace
void V8CrosScreen::InstallInterfaceTemplate(
v8::Isolate* isolate,
const DOMWrapperWorld& world,
v8::Local<v8::Template> interface_template) {
const WrapperTypeInfo* const wrapper_type_info =
V8CrosScreen::GetWrapperTypeInfo();
v8::Local<v8::FunctionTemplate> interface_function_template =
interface_template.As<v8::FunctionTemplate>();
v8::Local<v8::ObjectTemplate> instance_object_template =
interface_function_template->InstanceTemplate();
v8::Local<v8::ObjectTemplate> prototype_object_template =
interface_function_template->PrototypeTemplate();
v8::Local<v8::FunctionTemplate> parent_interface_template;
bindings::SetupIDLInterfaceTemplate(
isolate, wrapper_type_info, instance_object_template,
prototype_object_template, interface_function_template,
parent_interface_template);
v8::Local<v8::Template> instance_template = instance_object_template;
v8::Local<v8::Template> prototype_template = prototype_object_template;
InstallUnconditionalProperties(isolate, world, instance_template,
prototype_template, interface_template);
}
void V8CrosScreen::InstallUnconditionalProperties(
v8::Isolate* isolate,
const DOMWrapperWorld& world,
v8::Local<v8::Template> instance_template,
v8::Local<v8::Template> prototype_template,
v8::Local<v8::Template> interface_template) {
using bindings::IDLMemberInstaller;
{
static const IDLMemberInstaller::AttributeConfig kAttributeTable[] = {
{"availWidth", AvailWidthAttributeGetCallback, nullptr,
unsigned(v8::None),
unsigned(IDLMemberInstaller::FlagLocation::kPrototype),
unsigned(IDLMemberInstaller::FlagWorld::kAllWorlds),
unsigned(IDLMemberInstaller::FlagReceiverCheck::kCheck),
unsigned(IDLMemberInstaller::FlagCrossOriginCheck::kCheck),
unsigned(IDLMemberInstaller::FlagCrossOriginCheck::kCheck),
unsigned(v8::SideEffectType::kHasNoSideEffect),
unsigned(V8PrivateProperty::CachedAccessor::kNone)},
{"availHeight", AvailHeightAttributeGetCallback, nullptr,
unsigned(v8::None),
unsigned(IDLMemberInstaller::FlagLocation::kPrototype),
unsigned(IDLMemberInstaller::FlagWorld::kAllWorlds),
unsigned(IDLMemberInstaller::FlagReceiverCheck::kCheck),
unsigned(IDLMemberInstaller::FlagCrossOriginCheck::kCheck),
unsigned(IDLMemberInstaller::FlagCrossOriginCheck::kCheck),
unsigned(v8::SideEffectType::kHasNoSideEffect),
unsigned(V8PrivateProperty::CachedAccessor::kNone)},
{"width", WidthAttributeGetCallback, nullptr, unsigned(v8::None),
unsigned(IDLMemberInstaller::FlagLocation::kPrototype),
unsigned(IDLMemberInstaller::FlagWorld::kAllWorlds),
unsigned(IDLMemberInstaller::FlagReceiverCheck::kCheck),
unsigned(IDLMemberInstaller::FlagCrossOriginCheck::kCheck),
unsigned(IDLMemberInstaller::FlagCrossOriginCheck::kCheck),
unsigned(v8::SideEffectType::kHasNoSideEffect),
unsigned(V8PrivateProperty::CachedAccessor::kNone)},
{"height", HeightAttributeGetCallback, nullptr, unsigned(v8::None),
unsigned(IDLMemberInstaller::FlagLocation::kPrototype),
unsigned(IDLMemberInstaller::FlagWorld::kAllWorlds),
unsigned(IDLMemberInstaller::FlagReceiverCheck::kCheck),
unsigned(IDLMemberInstaller::FlagCrossOriginCheck::kCheck),
unsigned(IDLMemberInstaller::FlagCrossOriginCheck::kCheck),
unsigned(v8::SideEffectType::kHasNoSideEffect),
unsigned(V8PrivateProperty::CachedAccessor::kNone)},
{"left", LeftAttributeGetCallback, nullptr, unsigned(v8::None),
unsigned(IDLMemberInstaller::FlagLocation::kPrototype),
unsigned(IDLMemberInstaller::FlagWorld::kAllWorlds),
unsigned(IDLMemberInstaller::FlagReceiverCheck::kCheck),
unsigned(IDLMemberInstaller::FlagCrossOriginCheck::kCheck),
unsigned(IDLMemberInstaller::FlagCrossOriginCheck::kCheck),
unsigned(v8::SideEffectType::kHasNoSideEffect),
unsigned(V8PrivateProperty::CachedAccessor::kNone)},
{"top", TopAttributeGetCallback, nullptr, unsigned(v8::None),
unsigned(IDLMemberInstaller::FlagLocation::kPrototype),
unsigned(IDLMemberInstaller::FlagWorld::kAllWorlds),
unsigned(IDLMemberInstaller::FlagReceiverCheck::kCheck),
unsigned(IDLMemberInstaller::FlagCrossOriginCheck::kCheck),
unsigned(IDLMemberInstaller::FlagCrossOriginCheck::kCheck),
unsigned(v8::SideEffectType::kHasNoSideEffect),
unsigned(V8PrivateProperty::CachedAccessor::kNone)},
{"isPrimary", IsPrimaryAttributeGetCallback, nullptr,
unsigned(v8::None),
unsigned(IDLMemberInstaller::FlagLocation::kPrototype),
unsigned(IDLMemberInstaller::FlagWorld::kAllWorlds),
unsigned(IDLMemberInstaller::FlagReceiverCheck::kCheck),
unsigned(IDLMemberInstaller::FlagCrossOriginCheck::kCheck),
unsigned(IDLMemberInstaller::FlagCrossOriginCheck::kCheck),
unsigned(v8::SideEffectType::kHasNoSideEffect),
unsigned(V8PrivateProperty::CachedAccessor::kNone)},
};
v8::Local<v8::FunctionTemplate> interface_function_template =
interface_template.As<v8::FunctionTemplate>();
v8::Local<v8::Signature> signature =
v8::Signature::New(isolate, interface_function_template);
IDLMemberInstaller::InstallAttributes(
isolate, world, instance_template, prototype_template,
interface_template, signature, kAttributeTable);
}
}
} // namespace blink