Chromium html<img>对应c++接口定义

ops/2024/10/19 1:02:02/
<img src="tulip.jpg" alt="上海鲜花港 - 郁金香" />

1、html_tag_names.json5中接口定义:

   (third_party\blink\renderer\core\html\html_tag_names.json5)

    {name: "img",constructorNeedsCreateElementFlags: true,interfaceName: "HTMLImageElement",},

2、html_image_element.idl接口定义:

  (third_party\blink\renderer\core\html\html_image_element.idl)

/** Copyright (C) 2006, 2009, 2010 Apple Inc. All rights reserved.* Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>** This library is free software; you can redistribute it and/or* modify it under the terms of the GNU Library General Public* License as published by the Free Software Foundation; either* version 2 of the License, or (at your option) any later version.** This library is distributed in the hope that it will be useful,* but WITHOUT ANY WARRANTY; without even the implied warranty of* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU* Library General Public License for more details.** You should have received a copy of the GNU Library General Public License* along with this library; see the file COPYING.LIB.  If not, write to* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,* Boston, MA 02110-1301, USA.*/// https://html.spec.whatwg.org/C/#the-img-element[ActiveScriptWrappable,Exposed=Window,LegacyFactoryFunction=Image(optional unsigned long width, optional unsigned long height),LegacyFactoryFunction_CallWith=Document
] interface HTMLImageElement : HTMLElement {[HTMLConstructor] constructor();[CEReactions, Reflect] attribute DOMString alt;[CEReactions, Reflect, URL] attribute USVString src;[CEReactions, Reflect] attribute DOMString srcset;[CEReactions, Reflect] attribute DOMString sizes;[CEReactions, Reflect, ReflectOnly=("anonymous","use-credentials"), ReflectEmpty="anonymous", ReflectInvalid="anonymous"] attribute DOMString? crossOrigin;[CEReactions, Reflect] attribute DOMString useMap;[CEReactions, Reflect] attribute boolean isMap;[CEReactions] attribute unsigned long width;[CEReactions] attribute unsigned long height;readonly attribute unsigned long naturalWidth;readonly attribute unsigned long naturalHeight;readonly attribute boolean complete;readonly attribute DOMString currentSrc;[CEReactions, Reflect, ReflectOnly=("","no-referrer","origin","no-referrer-when-downgrade","origin-when-cross-origin","unsafe-url"), ReflectMissing="", ReflectInvalid=""] attribute DOMString referrerPolicy;[CEReactions, Reflect, ReflectOnly=("async", "sync", "auto"), ReflectMissing="auto", ReflectInvalid="auto"] attribute DOMString decoding;[CEReactions, MeasureAs=PriorityHints, Reflect, ReflectOnly=("low", "auto", "high"), ReflectMissing="auto", ReflectInvalid="auto"] attribute DOMString fetchPriority;[CEReactions, Reflect, ReflectOnly=("lazy", "eager", "auto"), ReflectMissing="auto", ReflectInvalid="auto"] attribute DOMString loading;// obsolete members// https://html.spec.whatwg.org/C/#HTMLImageElement-partial[CEReactions, Reflect] attribute DOMString name;[CEReactions, Reflect, URL] attribute DOMString lowsrc;[CEReactions, Reflect] attribute DOMString align;[CEReactions, Reflect] attribute unsigned long hspace;[CEReactions, Reflect] attribute unsigned long vspace;[CEReactions, Reflect, URL] attribute DOMString longDesc;[CEReactions, Reflect] attribute [LegacyNullToEmptyString] DOMString border;// CSSOM View Module// https://drafts.csswg.org/cssom-view/#extensions-to-the-htmlimageelement-interface[MeasureAs=HTMLImageElementX] readonly attribute long x;[MeasureAs=HTMLImageElementY] readonly attribute long y;[CallWith=ScriptState, RaisesException] Promise<void> decode();
};HTMLImageElement includes HTMLAttributionSrcElementUtils;
HTMLImageElement includes HTMLSharedStorageWritableElementUtils;

3、html_image_element在 bink接口定义:

   third_party\blink\renderer\core\html\html_image_element.h

  third_party\blink\renderer\core\html\html_image_element.cc


#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_HTML_HTML_IMAGE_ELEMENT_H_
#define THIRD_PARTY_BLINK_RENDERER_CORE_HTML_HTML_IMAGE_ELEMENT_H_#include <memory>#include "third_party/blink/renderer/bindings/core/v8/active_script_wrappable.h"
#include "third_party/blink/renderer/core/core_export.h"
#include "third_party/blink/renderer/core/dom/create_element_flags.h"
#include "third_party/blink/renderer/core/frame/local_frame_view.h"
#include "third_party/blink/renderer/core/html/canvas/image_element_base.h"
#include "third_party/blink/renderer/core/html/forms/form_associated.h"
#include "third_party/blink/renderer/core/html/html_element.h"
#include "third_party/blink/renderer/core/html/html_image_loader.h"
#include "third_party/blink/renderer/core/html/lazy_load_image_observer.h"
#include "third_party/blink/renderer/core/resize_observer/resize_observer.h"
#include "third_party/blink/renderer/platform/graphics/graphics_types.h"
#include "third_party/blink/renderer/platform/graphics/image_orientation.h"
#include "third_party/blink/renderer/platform/loader/fetch/fetch_parameters.h"
#include "third_party/blink/renderer/platform/loader/fetch/resource_response.h"
#include "ui/gfx/geometry/size.h"namespace blink {class ExceptionState;
class HTMLFormElement;
class ImageCandidate;
class ShadowRoot;class CORE_EXPORT HTMLImageElement final: public HTMLElement,public ImageElementBase,public ActiveScriptWrappable<HTMLImageElement>,public FormAssociated,public LocalFrameView::LifecycleNotificationObserver {DEFINE_WRAPPERTYPEINFO();public:class ViewportChangeListener;static HTMLImageElement* CreateForJSConstructor(Document&);static HTMLImageElement* CreateForJSConstructor(Document&, unsigned width);static HTMLImageElement* CreateForJSConstructor(Document&,unsigned width,unsigned height);HTMLImageElement(Document&, const CreateElementFlags);explicit HTMLImageElement(Document&, bool created_by_parser = false);~HTMLImageElement() override;void Trace(Visitor*) const override;unsigned width();unsigned height();unsigned naturalWidth() const;unsigned naturalHeight() const;unsigned LayoutBoxWidth() const;unsigned LayoutBoxHeight() const;bool IsBeingRendered() const;bool AllowAutoSizes() const;const String& currentSrc() const;bool IsServerMap() const;String AltText() const final;ImageResourceContent* CachedImage() const {return GetImageLoader().GetContent();}void LoadDeferredImageFromMicrotask() {GetImageLoader().LoadDeferredImage(/*force_blocking*/ false,/*update_from_microtask*/ true);}void LoadDeferredImageBlockingLoad() {GetImageLoader().LoadDeferredImage(/*force_blocking*/ true);}void SetImageForTest(ImageResourceContent* content) {GetImageLoader().SetImageForTest(content);}void StartLoadingImageDocument(ImageResourceContent* image_content);void setHeight(unsigned);void setWidth(unsigned);bool IsDefaultIntrinsicSize() const {return is_default_overridden_intrinsic_size_;}int x() const;int y() const;ScriptPromise decode(ScriptState*, ExceptionState&);bool complete() const;void OnResize();bool HasPendingActivity() const final {return GetImageLoader().HasPendingActivity();}bool CanContainRangeEndPoint() const override { return false; }const AtomicString ImageSourceURL() const override;HTMLFormElement* formOwner() const override;void FormRemovedFromTree(const Node& form_root);virtual void EnsureCollapsedOrFallbackContent();virtual void EnsureFallbackForGeneratedContent();virtual void EnsurePrimaryContent();bool IsCollapsed() const;void SetAutoSizesUsecounter();// CanvasImageSource interface implementation.gfx::SizeF DefaultDestinationSize(const gfx::SizeF&,const RespectImageOrientationEnum) const override;// public so that HTMLPictureElement can call this as well.void SelectSourceURL(ImageLoader::UpdateFromElementBehavior);void SetIsFallbackImage() { is_fallback_image_ = true; }absl::optional<float> GetResourceWidth() const;float SourceSize(Element&);void ForceReload() const;FormAssociated* ToFormAssociatedOrNull() override { return this; }void AssociateWith(HTMLFormElement*) override;bool ElementCreatedByParser() const { return element_created_by_parser_; }LazyLoadImageObserver::VisibleLoadTimeMetrics&EnsureVisibleLoadTimeMetrics() {if (!visible_load_time_metrics_) {visible_load_time_metrics_ =std::make_unique<LazyLoadImageObserver::VisibleLoadTimeMetrics>();}return *visible_load_time_metrics_;}// Updates if any optimized image policy is violated. When any policy is// violated, the image should be rendered as a placeholder image.void SetImagePolicyViolated() {is_legacy_format_or_unoptimized_image_ = true;}bool IsImagePolicyViolated() {return is_legacy_format_or_unoptimized_image_;}// Keeps track of whether the image comes from an ad.void SetIsAdRelated();bool IsAdRelated() const override { return is_ad_related_; }// Keeps track whether this image is an LCP element.// If the element is reused for loading another image, this flag might be// retained so use with caution.void SetIsLCPElement() { is_lcp_element_ = true; }bool IsLCPElement() const { return is_lcp_element_; }void SetPredictedLcpElement() { is_predicted_lcp_element_ = true; }bool IsPredictedLcpElement() const { return is_predicted_lcp_element_; }bool IsChangedShortlyAfterMouseover() const {return is_changed_shortly_after_mouseover_;}void InvalidateAttributeMapping();bool IsRichlyEditableForAccessibility() const override { return false; }static bool SupportedImageType(const String& type,const HashSet<String>* disabled_image_types);// True if the `loading` attribute is present and the value is lazy. Note that// additional conditions can prevent lazy loading even when this is true, such// as script being disabled (see: `LazyImageHelper::ShouldDeferImageLoad`).bool HasLazyLoadingAttribute() const;// True if the `sizes` attribute is present.bool HasSizesAttribute() const;// Returns script urls that were in execution while this element was being// created, if LCPScriptObserver was active.const HashSet<String>& creator_scripts() const { return creator_scripts_; }protected:// Controls how an image element appears in the layout. See:// https://html.spec.whatwg.org/C/#image-requestenum class LayoutDisposition : uint8_t {// Displayed as a partially or completely loaded image. Corresponds to the// `current request` state being: `unavailable`, `partially available`, or// `completely available`.kPrimaryContent,// Showing a broken image icon and 'alt' text, if any. Corresponds to the// `current request` being in the `broken` state.kFallbackContent,// No layout object. Corresponds to the `current request` being in the// `broken` state when the resource load failed with an error that has the// |shouldCollapseInitiator| flag set.kCollapsed};void DidMoveToNewDocument(Document& old_document) override;void DidAddUserAgentShadowRoot(ShadowRoot&) override;void AdjustStyle(ComputedStyleBuilder&) override;private:bool AreAuthorShadowsAllowed() const override { return false; }void ParseAttribute(const AttributeModificationParams&) override;bool IsPresentationAttribute(const QualifiedName&) const override;void CollectStyleForPresentationAttribute(const QualifiedName&,const AtomicString&,MutableCSSPropertyValueSet*) override;// For mapping attributes from the <source> element, if any.bool HasExtraStyleForPresentationAttribute() const override {return source_ != nullptr;}void CollectExtraStyleForPresentationAttribute(MutableCSSPropertyValueSet*) override;void SetLayoutDisposition(LayoutDisposition, bool force_reattach = false);void AttachLayoutTree(AttachContext&) override;LayoutObject* CreateLayoutObject(const ComputedStyle&) override;bool CanStartSelection() const override { return false; }bool IsURLAttribute(const Attribute&) const override;bool HasLegalLinkAttribute(const QualifiedName&) const override;bool draggable() const override;InsertionNotificationRequest InsertedInto(ContainerNode&) override;void RemovedFrom(ContainerNode&) override;NamedItemType GetNamedItemType() const override {return NamedItemType::kNameOrIdWithName;}bool IsInteractiveContent() const override;Image* ImageContents() override;void ResetFormOwner();ImageCandidate FindBestFitImageFromPictureParent();void SetBestFitURLAndDPRFromImageCandidate(const ImageCandidate&);PhysicalSize DensityCorrectedIntrinsicDimensions() const;HTMLImageLoader& GetImageLoader() const override { return *image_loader_; }void NotifyViewportChanged();void CreateMediaQueryListIfDoesNotExist();// LocalFrameView::LifecycleNotificationObservervoid DidFinishLifecycleUpdate(const LocalFrameView&) override;Member<HTMLImageLoader> image_loader_;Member<ViewportChangeListener> listener_;Member<HTMLFormElement> form_;AtomicString best_fit_image_url_;float image_device_pixel_ratio_;Member<HTMLSourceElement> source_;LayoutDisposition layout_disposition_;bool form_was_set_by_parser_ : 1;bool element_created_by_parser_ : 1;bool is_fallback_image_ : 1;bool is_default_overridden_intrinsic_size_ : 1;// This flag indicates if the image violates one or more optimized image// policies. When any policy is violated, the image should be rendered as a// placeholder image.bool is_legacy_format_or_unoptimized_image_ : 1;bool is_ad_related_ : 1;bool is_lcp_element_ : 1;bool is_changed_shortly_after_mouseover_ : 1;bool is_auto_sized_ : 1;bool is_predicted_lcp_element_ : 1;HashSet<String> creator_scripts_;std::unique_ptr<LazyLoadImageObserver::VisibleLoadTimeMetrics>visible_load_time_metrics_;bool image_ad_use_counter_recorded_ = false;// The last rectangle reported to the `PageTimingMetricsSender`.// `last_reported_ad_rect_` is empty if there's no report before, or if the// last report was used to signal the removal of this element (i.e. both cases// will be handled the same way).gfx::Rect last_reported_ad_rect_;
};}  // namespace blink#endif  // THIRD_PARTY_BLINK_RENDERER_CORE_HTML_HTML_IMAGE_ELEMENT_H_

4、html_image_element在 v8接口定义:

out\Debug\gen\third_party\blink\renderer\bindings\core\v8\v8_html_image_element.h

out\Debug\gen\third_party\blink\renderer\bindings\core\v8\v8_html_image_element.cc

截取部分:

void V8HTMLImageElement::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;v8::Local<v8::FunctionTemplate> interface_function_template = interface_template.As<v8::FunctionTemplate>();
v8::Local<v8::Signature> signature = v8::Signature::New(isolate, interface_function_template);
{static const IDLMemberInstaller::AttributeConfig kAttributeTable[] = {
{"alt", AltAttributeGetCallback, AltAttributeSetCallback, 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)},
{"src", SrcAttributeGetCallback, SrcAttributeSetCallback, 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)},
{"srcset", SrcsetAttributeGetCallback, SrcsetAttributeSetCallback, 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)},
{"sizes", SizesAttributeGetCallback, SizesAttributeSetCallback, 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)},
{"crossOrigin", CrossOriginAttributeGetCallback, CrossOriginAttributeSetCallback, 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)},
{"useMap", UseMapAttributeGetCallback, UseMapAttributeSetCallback, 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)},
{"isMap", IsMapAttributeGetCallback, IsMapAttributeSetCallback, 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, WidthAttributeSetCallback, 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, HeightAttributeSetCallback, 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)},
{"naturalWidth", NaturalWidthAttributeGetCallback, 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)},
{"naturalHeight", NaturalHeightAttributeGetCallback, 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)},
{"complete", CompleteAttributeGetCallback, 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)},
{"currentSrc", CurrentSrcAttributeGetCallback, 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)},
{"referrerPolicy", ReferrerPolicyAttributeGetCallback, ReferrerPolicyAttributeSetCallback, 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)},
{"decoding", DecodingAttributeGetCallback, DecodingAttributeSetCallback, 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)},
{"fetchPriority", FetchPriorityAttributeGetCallback, FetchPriorityAttributeSetCallback, 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)},
{"loading", LoadingAttributeGetCallback, LoadingAttributeSetCallback, 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)},
{"name", NameAttributeGetCallback, NameAttributeSetCallback, 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)},
{"lowsrc", LowsrcAttributeGetCallback, LowsrcAttributeSetCallback, 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)},
{"align", AlignAttributeGetCallback, AlignAttributeSetCallback, 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)},
{"hspace", HspaceAttributeGetCallback, HspaceAttributeSetCallback, 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)},
{"vspace", VspaceAttributeGetCallback, VspaceAttributeSetCallback, 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)},
{"longDesc", LongDescAttributeGetCallback, LongDescAttributeSetCallback, 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)},
{"border", BorderAttributeGetCallback, BorderAttributeSetCallback, 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)},
{"x", XAttributeGetCallback, 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)},
{"y", YAttributeGetCallback, 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)},
};
IDLMemberInstaller::InstallAttributes(isolate, world, instance_template, prototype_template, interface_template, signature, kAttributeTable);
}


http://www.ppmy.cn/ops/126597.html

相关文章

MySQL—CRUD—进阶— (一) |ू・ω・` )

文本目录&#xff1a; ❄️一、数据库约束&#xff1a; ☑1、约束类型&#xff1a; 1&#xff09;、NULL 约束&#xff1a; 2&#xff09;、唯一约束&#xff1a; 3&#xff09;、默认约束&#xff1a; 4&#xff09;、主键约束&#xff1a; 5&#xff09;、外键约束&#xff…

linux命令之less用法

less 分屏上下翻页浏览文件内容 补充说明 less命令 的作用与more十分相似&#xff0c;都可以用来浏览文字档案的内容&#xff0c;不同的是less命令允许用户向前或向后浏览文件&#xff0c;而more命令只能向前浏览。用less命令显示文件时&#xff0c;用PageUp键向上翻页&…

巨日禄AI故事转漫画视频创作教程

【一】新建作品 添加剧本&#xff0c;从30多个画风中选择一个匹配文案的画风。如果拿不准可以参考样图。巨日禄可以一次性制作6000字&#xff0c;20分钟以上的视频。&#xff08;第一次限制了1000字&#xff0c;仅为新用户更完整体验整个流程&#xff09; 【二】选择画风 那文…

设计模式之-策略模式配合枚举

1、定义枚举接收不同的参数使用不同的handler, 2、定义个handerl接口&#xff0c;统一方法处理&#xff0c;每个handler实现该接口 public interface IMethodHandler<T, R> {/*** 处理统一入口** param req*/R process(T req); } java3、定义一个简单工厂统一处理 Comp…

【LeetCode】每日一题 2024_10_18 使二进制数组全部等于 1 的最少操作次数 I(贪心)

前言 每天和你一起刷 LeetCode 每日一题~ LeetCode 启动&#xff01; 题目&#xff1a;使二进制数组全部等于 1 的最少操作次数 I 昨天的题目写不出来 . . . 如果我哪一天突然断更了&#xff0c;不用怀疑&#xff0c;就是那天的每日一题我写不了一点呜呜 代码与解题思路 今…

嵌入式系统---看门狗

在嵌入式系统中&#xff0c;看门狗定时器&#xff08;Watchdog Timer&#xff0c;WDT&#xff09;是一种常用的机制&#xff0c;用于检测和恢复系统在异常情况下的故障。如果系统因为某种原因&#xff08;如软件死循环&#xff09;而变得无响应&#xff0c;看门狗定时器可以自动…

【代码随想录——数组——二刷】

数组 1. 二分查找(704) 给定一个 n 个元素有序的&#xff08;升序&#xff09;整型数组 nums 和一个目标值 target &#xff0c;写一个函数搜索 nums 中的 target&#xff0c;如果目标值存在返回下标&#xff0c;否则返回 -1。 1.1 二分法的第一种写法 我们定义 target 是在…

如何在算家云搭建Video-Infinity(视频生成)

一、模型介绍 Video-Infinity是一个先进的视频生成模型&#xff0c;使用多个 GPU 快速生成长视频&#xff0c;无需额外训练。它能够基于用户提供的文本或图片提示&#xff0c;创造出高质量、多样化的视频内容。 二、模型搭建流程 1.大模型 Video-Infinity 一键使用 基础环境…