AngleSharp by Florian Rappl

<PackageReference Include="AngleSharp" Version="0.9.0" />

.NET API 1,206,784 bytes

 HtmlObjectElement

Represents the HTML object element.
using AngleSharp.Dom.Css; using AngleSharp.Extensions; using AngleSharp.Html; using AngleSharp.Network; using AngleSharp.Services.Media; using System.Threading.Tasks; namespace AngleSharp.Dom.Html { internal sealed class HtmlObjectElement : HtmlFormControlElement, IHtmlObjectElement, IHtmlElement, IElement, INode, IEventTarget, IMarkupFormattable, IParentNode, IChildNode, INonDocumentTypeChildNode, IElementCssInlineStyle, IValidation { private readonly BoundLocation _data; private IObjectInfo _obj; public string Source { get { return _data.Href; } set { _data.Href = value; } } public string Type { get { return GetOwnAttribute(AttributeNames.Type); } set { SetOwnAttribute(AttributeNames.Type, value); } } public bool TypeMustMatch { get { return HasOwnAttribute(AttributeNames.TypeMustMatch); } set { SetOwnAttribute(AttributeNames.TypeMustMatch, value ? string.Empty : null); } } public string UseMap { get { return GetOwnAttribute(AttributeNames.UseMap); } set { SetOwnAttribute(AttributeNames.UseMap, value); } } public int DisplayWidth { get { return GetOwnAttribute(AttributeNames.Width).ToInteger(OriginalWidth); } set { SetOwnAttribute(AttributeNames.Width, value.ToString()); } } public int DisplayHeight { get { return GetOwnAttribute(AttributeNames.Height).ToInteger(OriginalHeight); } set { SetOwnAttribute(AttributeNames.Height, value.ToString()); } } public int OriginalWidth { get { if (_obj == null) return 0; return _obj.Width; } } public int OriginalHeight { get { if (_obj == null) return 0; return _obj.Height; } } public IDocument ContentDocument => null; public IWindow ContentWindow => null; public HtmlObjectElement(Document owner, string prefix = null) : base(owner, Tags.Object, prefix, NodeFlags.Scoped) { _data = new BoundLocation(this, AttributeNames.Data); RegisterAttributeObserver(AttributeNames.Data, UpdateSource); } protected override bool CanBeValidated() { return false; } private void UpdateSource(string value) { this.CancelTasks(); if (!string.IsNullOrEmpty(value)) { Url url = new Url(Source); ResourceRequest request = this.CreateRequestFor(url); this.LoadResource<IObjectInfo>(request).ContinueWith(delegate(Task<IObjectInfo> m) { if (!m.IsFaulted) _obj = m.Result; this.FireLoadOrErrorEvent(m); }); } } } }