Skip to content

Flatten HTMLHyperlinkElementUtils mixin to HTMLAnchorElement/HTMLAreaElement - #8933

Merged
ddbeck merged 1 commit into
mdn:masterfrom
Elchi3:mixin-poc
Feb 11, 2021
Merged

ddbeck merged 1 commit into
mdn:masterfrom
Elchi3:mixin-poc

Conversation

@Elchi3

@Elchi3 Elchi3 commented Feb 2, 2021

Copy link
Copy Markdown
Member

This is a proof of concept for #8929

Currently, BCD exposes api.HTMLHyperlinkElementUtils, a non-observable mixin and no real JS interface/class/object.

api.HTMLHyperlinkElementUtils.href
api.HTMLHyperlinkElementUtils.origin
api.HTMLHyperlinkElementUtils.protocol
api.HTMLHyperlinkElementUtils.username
api.HTMLHyperlinkElementUtils.password
api.HTMLHyperlinkElementUtils.host
api.HTMLHyperlinkElementUtils.hostname
api.HTMLHyperlinkElementUtils.port
api.HTMLHyperlinkElementUtils.pathname
api.HTMLHyperlinkElementUtils.search
api.HTMLHyperlinkElementUtils.hash

With this change, BCD extends HTMLAnchorElement and HTMLAreaElement and exposes instead:

api.HTMLAnchorElement.href
api.HTMLAnchorElement.origin
api.HTMLAnchorElement.protocol
api.HTMLAnchorElement.username
api.HTMLAnchorElement.password
api.HTMLAnchorElement.host
api.HTMLAnchorElement.hostname
api.HTMLAnchorElement.port
api.HTMLAnchorElement.pathname
api.HTMLAnchorElement.search
api.HTMLAnchorElement.hash

api.HTMLAreaElement.href
api.HTMLAreaElement.origin
api.HTMLAreaElement.protocol
api.HTMLAreaElement.username
api.HTMLAreaElement.password
api.HTMLAreaElement.host
api.HTMLAreaElement.hostname
api.HTMLAreaElement.port
api.HTMLAreaElement.pathname
api.HTMLAreaElement.search
api.HTMLAreaElement.hash

It does so by having two files in the /api/_mixins/ folder:

  • HTMLHyperlinkElementUtils__HTMLAnchorElement.json
  • HTMLHyperlinkElementUtils__HTMLAreaElement.json
@github-actions github-actions Bot added the data:api Compatibility data for Web API features. https://developer.mozilla.org/docs/Web/API label Feb 2, 2021
@Elchi3

Elchi3 commented Feb 2, 2021

Copy link
Copy Markdown
Member Author

Reviewers: Please leave your feedback in the issue: #8929

@Elchi3 Elchi3 changed the title Proof of concept for new mixin approach Feb 5, 2021
@Elchi3
Elchi3 marked this pull request as ready for review February 5, 2021 13:39
@Elchi3

Elchi3 commented Feb 5, 2021

Copy link
Copy Markdown
Member Author

Seems like there is consensus on this approach so marking as ready for review. Might be blocked by getting the data guideline merged, though (#9016)

@ddbeck ddbeck left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great!

Should we bump the version number to 3.1.0 for this?

@Elchi3

Elchi3 commented Feb 11, 2021

Copy link
Copy Markdown
Member Author

Should we bump the version number to 3.1.0 for this?

According to #472 (comment), about 21 mixins are affected by this (although we already agreed that some larger mixins (workers) probably need special treatment. So, I assume something like 100-300 features are affected? (out of 12,000). So, yeah, could do a minor bump, I don't think it's major.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

data:api Compatibility data for Web API features. https://developer.mozilla.org/docs/Web/API

3 participants