Coder Social home page Coder Social logo

microsoftedge / msedgeexplainers Goto Github PK

View Code? Open in Web Editor NEW
1.3K 135.0 205.0 78.09 MB

Home for explainer documents originated by the Microsoft Edge team

License: Creative Commons Attribution 4.0 International

HTML 90.78% WebIDL 1.44% CSS 1.17% JavaScript 6.60%
explainer microsoft-edge standards webplatform

msedgeexplainers's Introduction

Microsoft Edge LogoMicrosoft Edge Explainers

Welcome! This repo is home to "explainers" and related documents originating from the Microsoft Edge team.

Introduction

Explainers are documents focused on describing a user/ developer/ customer problem (at a high level) and exploring potential solutions. These documents are starting points for engaging in discussion with you and other members of the community. Explainers should address their stated problems in clear and easy to understand language. Proposed solutions should be easy to follow and not too deep in technical details. When you read an explainer, we hope the stated problem is compelling and you can form an opinion for whether the proposed solution would address the problem.

Please provide feedback

We are looking for feedback! Are the stated problems relevant to you? How have they impacted your experience? Do the proposed solutions seem reasonable? Do they follow good web principles? Would they solve a problem you currently have? (We love to hear that; tell us more about your scenario!) Do you have related use-cases we hadn't considered?

We appreciate you taking the time to offer feedback; it helps to improve the explainers, validate the problem and solutions they describe, and show evidence that there is potential momentum to move an idea to the next stage. We desire to see all our explainers make the journey to become cross-browser supported web standards.

Start a new issue here, or join in the discussion on existing issues. We also welcome PRs on the explainer documents themselves. Note: we use labels to filter the issues to specific explainers.

Have a product bug?

If you're looking to file a product bug on Microsoft Edge and the bug is unique to Edge, please use the in-browser "Send Feedback" tool (Alt+Shift+i in Windows, or "..." > "Help and feedback"). If the bug reproduces in another Chromium-based browser, please file the issue upstream in the Chromium bug database. Thanks!

Active Explainers 📣

These are the proposals we are currently investigating in this repo. Use the links below to read the explainers, review the current issues, and file new issues specifically for the given explainer(s). We hope they will all "graduate" and begin their journey along the standards-track as they gain sufficient interest; each explainer has a "status of this document" section that indicates what standards venue they expect to go to next (if known). When they graduate, we move them into the Alumni section below.

Explainer Issues Feedback Group
CSS Gap Decorations GitHub issues by-label New issue... CSS
Highlight Events GitHub issues by-label New issue... Editing
Pen Events GitHub issues by-label New issue... Editing
Pen Action GitHub issues by-label New issue... Editing
Delayed Clipboard Rendering GitHub issues by-label New issue... Editing
Iframe Media Playback Pause GitHub issues by-label New Issue... HTML
Source Hashes in Stack Traces GitHub issues by-label New issue... JavaScript
Call Stacks in Crash Reports GitHub issues by-label New issue... Performance
PerformanceNavigationTiming User Agent Launch GitHub issues by-label New issue... Performance
Trust Token Issuer Redemption Statistics GitHub issues by-label New issue... Privacy
Browser Binding Context Github issues by-label New issue.... Privacy
Acquisition Info GitHub issues by-label New issue... PWA
ApplicationData.LocalFolder Access GitHub issues by-label New issue... PWA
Document Subtitle GitHub issues by-label New issue... PWA
Ratings & Reviews Prompt GitHub issues by-label New issue... PWA
URL Protocol Handler Registration for PWAs GitHub issues by-label New issue... PWA
Web Install API GitHub issues by-label New issue... PWA
Widgets GitHub issues by-label New issue... PWA
Calling Notifications GitHub issues by-label New issue... Web Applications
Web Haptics API GitHub issues by-label New Issue... Web Applications
Split Tab Navigation GitHub issues by-label New Issue... Web Applications
Set Default Audio Output Device GitHub issues by-label New issue... WebRTC
Handwriting attribute GitHub issues by-label New issue... HTML

Alumni 🎓

Awesome! These explainers have moved on to bigger and better things! We've archived the original explainers here for posterity and updated their document status section to help you find where the latest discussions are happening. Please continue to participate and follow the links below to the current standards communities. Thanks for your continued interest!

Current Explainer Current Venue Archive link and date
CSS Anchored Positioning W3C CSS Working Group 2022-10-30
PARAKEET with Noisy Ranking Web Incubator Community Group 2022-04-19
focusgroup for HTML and CSS Open UI Community Group 2022-04-09
Web App Link Handling Manifest Options Web Incubator Community Group 2021-09-28
EyeDropper API Web Incubator Community Group 2021-08-03
Virtual Keyboard Policy W3C Editing Working Group 2021-07-29
Masked LARK Web Incubator Community Group 2021-07-11
Accessible Confirmation of Action Web Incubator Community Group 2021-06-23
MACAW Web Incubator Community Group 2021-04-07
Enabling popups Open UI Community Group 2021-03-22
PARAKEET Web Incubator Community Group 2021-03-04
Virtual Keyboard API W3C Editing Working Group 2021-03-02
Canvas Formatted Text Web Incubator Community Group 2020-09-23
Window Controls Overlay for Installed Desktop Web Apps Web Incubator Community Group 2020-07-08
PWAs as URL Handlers (updated proposal here) Web Incubator Community Group 2020-05-28
EditContext API W3C Editing Working Group 2020-03-17
Bidirectional WebDriver Protocol WebDriver incubator of the W3C Browser Testing and Tools Working Group 2020-03-13
Web Ink Enhancement: Delegated Ink Trail Presentation Aided By The OS Web Incubator Community Group 2020-02-27
Viewport Segments Property (formerly Window Segments Enumeration API) Web Incubator Community Group 2020-02-26
@media queries for HDR video in Media Queries Level 4 W3C CSS Working Group 2020-01-17
Improved Client-side Video Editing Web Incubator Community Group 2020-01-08
CSS Custom Highlight API Module Level 1 W3C CSS Working Group 2019-12-10
Import Assertions ECMA TC39 Task Group 2019-11-08
'shortcuts' member of Web App Manifest W3C Web Applications Working Group 2019-11-04
'spatialRendering' for spatial audio query in Media Capabilities W3C Media Working Group 2019-10-02
ARIA Virtual Content Web Incubator Community Group 2019-09-27
CSS Modules V1 Web Incubator Community Group 2019-08-08
System Colors section of CSS Color Module Level 4 W3C CSS Working Group 2019-08-05
'hdrMetadataType' for HDR query in Media Capabilities W3C Media Working Group 2019-07-29
Native GLTF proposal W3C Immersive Web Community Group 2019-07-15
Open UI (Standardized Form Controls) Web Incubator Community Group 2019-05-15
'forced-colors' of Media Queries Level 5 W3C CSS Working Group 2019-04-19
'forced-color-adjust' of CSS Color Adjustment Module Level 1 W3C CSS Working Group 2019-04-19
HTML Modules Web Incubator Community Group 2019-02-26
CSS color-mix() function W3C CSS Working Group 2023-07-17
Audio Stream Category W3C Web Real-Time Communications Working Group 2023-07-17
Storage Access API W3C Privacy Community Group 2023-07-17
Primitives for Enlightened Experiences on Foldable Devices (CSS parts) Web Incubator Community Group 2023-07-17
Exporting IDs from shadow roots for cross-root ARIA Web Incubator Community Group 2023-09-22
writingsuggestions attribute WHATWG 2024-03-12
PointerEvent DeviceId W3C Web Incubator Community Group 2024-01-11
Gamepad Trigger Rumble W3C Web Applications Working Group 2024-04-10

DevTools 🧰

⭐Our DevTools explainers have moved to their own repo for improved tracking and update frequency!⭐

For explainers that were hosted in this repo, an achived copy remains here, and the related explainers link to their new location.

Other Documents

A collection of explainers documenting platform enhancements (not web developer-facing features), implementation designs, and other public documents related to the construction of Microsoft Edge.

Accessibility

Editing

Fonts

HTML

Media

Privacy

  • Auditing Privacy on the Web a principles document describing our commitment to privacy through the principles of transparency, control, respect, and protection for our users.

Testing & Trials

User Interaction

Web Performance Measurement

Withdrawn

When at first you don't succeed… don't give up! We're no longer pursuing the solutions described in these explainers at this time, but that doesn't mean the problem isn't worth solving. Have an idea for an alternate solution? We'd love to hear your feedback!

Explainer Notes Date
Set and Reset Clip This feature proved technically infeasable during implementation due to shortcoming in the underlying Canvas technology stack, namely that Skia only had a way to restrict clip but not to expand it. Given additional compelling use cases, or changes in the implementation stack, this proposal could be re-considered. 2022-04-21
Custom Dialog on Close This design conflicted with the philosophy of keeping tab close as fast as possible. Work is ongoing to describe a way to meet the needs that this design aimed to address. 2020-03-25
Arbitrary Text Fragments We are now directing our efforts into providing feedback on the similar proposal ScrollToTextFragment already being incubated in the W3C Web Incubator Community Group. 2019-10-31
Password Reveal Rather than working on this HTML controls feature in isolation, we have rolled this effort into the larger Open UI project of the Web Incubator Community Group in an effort to provide a standardized set of form controls for the web, including password. 2019-06-17
Range innerText 2023-07-17
Enabling Custom Control UI Originally driven by Microsoft, the project has since been handed off to the Open UI project and implementation handled by Google 2023-07-17
Time-limited Permissions 2023-07-17
Cache API Response Metadata 2023-07-17
First Run Permissions Prompt 2023-07-17
Version History 2023-07-17
Confirmation of Action This effort is being pursued in a similar proposal, AriaNotify 2023-11-13
PerformanceNavigationTiming Protocol Launch 2024-04-22

msedgeexplainers's People

Contributors

aarongustafson avatar adolfdaniel avatar amandabaker avatar anaskim avatar atanassov avatar atulkatti avatar benjycui avatar bmathwig avatar bocupp-microsoft avatar dandclark avatar diekus avatar dlibby- avatar fabiorocha avatar gabrielsanbrito avatar hxlnt avatar issackjohn avatar kbabbitt avatar luhuangmsft avatar luisjuansp avatar melanierichards avatar mwjacksonmsft avatar rahulsingh-msft avatar sahirv avatar sanketj avatar scottlow avatar sjdallst2 avatar snianu avatar travisleithead avatar wicarr avatar zouhir avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

msedgeexplainers's Issues

Accessibility

moving from https://github.com/dlibby-/highlight/issues/11
@Reinmar and @Comandeer as FYI

Question:
I wonder if and how the semantics of created highlights should be exposed to assistive technologies.

For instance – when highlights would be used to render spellchecking squiggles we should also have a way to tell the that this piece of text is misspelled. I don't know how the selection itself is rendered in the Accessibility Object Model, but I think that highlights should be able to use the same mechanism.

I'd imagine that the easiest solution may be to allow defining a highlight's title. For a misspelled fragment of text it could be set to "misspelled" (that's at least what VoiceOver reads).

Post from @Comandeer
In the simplest case something like HighlightRange#label should be enough. However, if you already referenced AOM, there is proposal for virtual accessibility nodes, that are dedicated just for this case: exposing non-element nodes in accessibility tree. In such case HighlightRange interface should be updated in following manner:

partial interface HighlightRange {
	AccessibleNode attachAccessibleRoot();
}

The only part that it's worrying me a little is the fact that VANs are behaving a little like pseudoelements (they could have dimensions and position).

Relation between HighlightRange#priority and other highlight pseudo elements

moving from https://github.com/dlibby-/highlight/issues/13
@Reinmar as FYI

As I understand, HighlightRange#priority is needed to control which highlight is rendered above which. Since we have other highlight pseudo-elements like ::selection or :spelling-error, could we prioritize our highlight range above those?

In other words – do the UA's highlight pseud-elements have defined priorities?

Crazy idea – couldn't z-index be used for that instead of priorities?

Defined or Device?

the title says "End User Defined Characters" but the first sentence says "End User Device Characters". I assume the later is a typo.

inputMode property of EditContext

inputMode property on the EditContext denotes what type of input the EditContext is associated with. This information is typically provided to the underlying system as a hint for which software keyboard to load (e.g. keyboard for phone numbers may be a numpad instead of the default keyboard). This defaults to 'text'.

This is very similar to the inputMode (https://html.spec.whatwg.org/multipage/interaction.html#input-modalities:-the-inputmode-attribute) attribute in textarea/contenteditable elements. One value that is missing from the inputMode attribute list of supported values is "password".

On Windows (and I believe Android/iOS VKs too), the software input panel provides a different layout for password. The text input service doesn't perform any text input intelligence such as auto-capitalization, suggestions on the VK etc.

I've added screenshots of various input panels to show the differences in this PR

We definitely want to support password on EditContext.

Questions:

  1. Should we add this property to the list of supported inputMode attribute values?
  2. The spec for inputMode (the attribute) says to fallback to the default VK if the attribute specified is unsupported. Does it make more sense though to fallback from something like numeric to decimal or vice versa?

Possible to disable OS-level High Contrast alterations?

As I read the spec, and the Microsoft implementation, it seems like high-contrast color alterations are applied by the browser as a sort of media query. Then on top of these browser changes, we as developers can apply our own media queries to override those.

My question is about the dreaded css-in-js debate. At Twitter, we do not use media queries and are strict css-in-js via React Native styles. Thus for handling something like night mode, or high contrast night mode, we simply swap our color palette and re-render. I worry that in Windows high-contrast mode, the OS would still apply its enhancements on top of our specific theme.

I know that we can simply run the media query to see if we should use our high contrast palette, but is there a way to then signal that the OS should skip applying any special formatting?

Thanks!

How to follow Edge's intents?

Previously, there was a way to subscribe Edge's intentions for new features via RSS feed. Is there any equivalent considered for new Edge?

Right now, all intents are also posted to blink-devs, so that's one way. But I assume there will eventually be a feature intents which will only be available to Edge and not in Chromium. I think there should be a way for developers and users to follow Edge's intents :)

Extension Menu Blowout

Check out, how on smaller viewport, the Browser Window menu is blownout. Notice the excess padding to the left and bottom?

2019-04-11_22-30-26

Sharpen Operation needed, High contrast isn't

I work with people with limited vision... I found that websites that are hard to read are often harder to read with high contrast enabled...

What we need is a SHARPEN operation, where two colors that are similar are made more dissimilar at the edge between the two. I was looking for a way to add this, it looks like it might just be choosing a different image operation on the canvas from the image manipulation library. This would be a true usability enhancement.

Should we fire a HighlightRangePointerEvent on the Range that was hit, instead of the containing HighlightRangeGroup?

The benefit of making Range an EventTarget and firing the event on the Range object directly is that the HighlightRangePointerEvent would not need to maintain a special Range pointer internally - the hit range can be obtained via the event's target property.

On the other hand, unless we define a new event path from Range objects to their containing HighlightRangeGroups, web developers would need to create one event listener per Range in order to listen for the event on an entire group. If the event is fired on the HighlightRangeGroup instead, developers can just create a single listener on the group, which seems more convenient.

CLI launch parameters not working

No CLI parameters work with current builds. Tried options that work in Chromium using --parametername as well as -CHROMIUM_FLAGS="--flagname=value" and they both get ignored.

Highlight API: Need to clarify behavior for replaced elements, tables, etc.

This API is intended only to create text highlights. The explainer should probably clarify the behavior when a range covers replaced elements like images or controls and when multiple table cells are selected.

Specifically I'm referring to the rendering of the highlight and whether we intend to create a "frosted" appearance as images are covered by a highlighted range, etc.

[Time-limited Permissions] Extending the "block" option

Is there an opportunity to extend the "block" option shown in the user interface mockup to at least a few options, like Firefox (and maybe other browsers) already does?

I would like to always be able to chose between:

  • not now
  • never for this site
  • never for any site

Obviously, "not now" could mean "not during this session" or "not for at least a few days", I don't know how it is managed in Firefox.

MS Edge Chromium Roadmap Suggestion

Microsoft not only deliver top rate C/C++ App Ecosystem so do Web Ecosystem in future

  1. MS Edge Chromium webview
  2. MS Edge Chromium's Electron (neutron/proton/particle )

Microsoft can achieve unbeatable long term success if Web Ecosystem is top class support in future. Deliver an API that closely resemble to Electron, to deliver using Native Webview with Microsoft own sandboxing/Custom permission.

Although ChromeOS consider competitor of Windows..Even can consider another layer of integration on ChromeOS and WSL layer.

Working with Chromium closely, Microsoft should think how to sustain the leadership in Desktop Market so ChromeOS is in control/never surpass in desktop market.

For Mobile Market, supporting Android? but in a way that Microsoft always as leading in Desktop market? It is more reason, Microsoft team should have more power in Chromium Community.

Hardware acceleration causes changing contrast/color in webpage between monitors

When Hardware Acceleration is enabled, if I move a window from my main monitor to the secondary monitor, the constrast or color of any webpage in that window will become dimmer (less contrast). Moving the window back to the main monitor makes the webpage normal again. After disabling Hardware Acceleration this problem is gone. GPU: Intel HD 4600, driver version 20.19.15.5058; Windows 10 x64 17763.437

Shortcut: Probably should not limit the amount

Should we include a hard limit on Shortcuts? If no, should we allow for collections?

I don't think that we can assume all platforms to support collections.

Also, platforms might have a limit today and change it tomorrow, so limiting it might not make sense. What we might want to do it for sites to know if not all are shown or add the ability to query the max length...

That might enable fingerprintability but nothing more that what is already possible today

Memory leaks HTML Modules

Forgot it isn't about only one spec. This is an issue about HTML Modules.

It looks like there will be a memory leak because of exporting nodes from one document to another, meaning that the imported document always will be in memory, even if you removed its contents from the current document's tree. It will have to be somehow unloaded.

Is the intended usage of it only with dynamic (import(...)) imports? Because I don't know anyway to de-reference static ES Modules.

Allow to query limits on number of shortcuts?

Every platform would have a different limit on shortcuts. The author should be allowed to query the max limit and allow to decide what shortcuts they want to present on that basis.

Package is from unidentified developer on MacOS

On macOS when downloading the edge pkg from here

The following errors are displayed under security settings.

“MicrosoftEdgeBeta-77.0.235.9.pkg” can’t be opened because it comes from an unidentified developer.

After overriding the warning the next error comes up:

“MicrosoftEdgeBeta-77.0.235.9.pkg” can’t be opened because Apple cannot check it for malicious software.

Adding HighlightRange to the selection

moving the issue from https://github.com/dlibby-/highlight/issues/14
@Reinmar as FYI

My understanding is that since HighlightRange inherits from Range, it can be passed to Selection#addRange().

According to https://www.w3.org/TR/selection-api/#dom-selection-addrange that range is passed there by a reference and it should be updated once the selection changes.

Does it mean that someone can add a highlight range to the selection? And, if so, could it cause some problems?

Also, we could imagine that the selection is highlighting its ranges internally (so ::selection ~== ::highlight(selection)). I wonder if this could have some interesting implications.

Allow exporting without a script

Define a new HTML content attribute, export or exportname or namedexport (and defaultexport?) or something similar that allows elements to be exported without any inline scripts.

<!-- module.html -->
<div namedexport="content">
Warning - this might hurt.
</div>
// main.js
import {content} from "module.html";
document.body.appendChild(content);

I imagine some HTML modules might have no scripting logic, they would only exist to share content and inline scripts are too wordy for those cases.

That could maybe make them available from HTML directly as well...

<!-- Bonus -->
<!-- page.html -->
<content import="module.html" namedimport="content"></content>

A little bit like server-side includes. But this is crazy talk.

Highlight API: Hit testing?

It may be useful to be able to listen for events like click on these ranges. Is this something you've already considered?

Relying only on content type might be too late for certain optimizations

What about one of the following?

import {baz} from html "foo.html";
import {baz} from html, "foo.html";
import {baz} from "foo.html" html;
import {baz} from "foo.html", html;
import {baz} from "foo.html", type "html";
import {baz} from [html] "foo.html"
import {baz} from [type = "html"] "foo.html"
import {baz} from [type: "html"] "foo.html"
import {baz} from {type: "html"} "foo.html"
import {baz} from {html: "foo.html"}

My https://discourse.wicg.io/t/specifying-nonce-or-integrity-when-importing-modules/1861 has some prior art for the syntax and some acknowledgement and suggestions by Dominic.

I am not developing a browser, but I imagine that knowing this in advance might be useful to trigger more optimizations.
Furthermore (or perhaps more importantly?), it would be more readable and self explanatory (.html is not mandatory in the URL).

EditContext: EditContextTextRange seems superfluous

This "class" does not have data and behavior; it just has some data. This is a bit of a smell. In particular code like selection: new EditContextTextRange(11, 11) is very unusual on the web, compared to e.g. selectionStart: 11, selectionEnd: 11.

It is also troublesome because it's a mutable class, but it's unclear what that means. E.g. what happens when you change someEvent.updateRange.start.

I think the easiest thing to do there is to just inline it into the places it appears, so instead of updateRange you have updateStart and updateEnd, etc. You can then make these readonly or mutable as makes sense.

An alternate naming approach would be to try to emulate the existing text selection APIs and use selectionStart and selectionEnd everywhere, coupled with setSelectionRange() whenever appropriate. I like that more, but I'm not 100% sure if it works.

Highlight API: way to select a highlight / edit the range of a highlight with native selection control

In e-readers that have persistent highlight features, it's common to be able to tap on a highlight to edit it. When tapped, the highlight becomes a selection instead, and the selection's range can be tweaked just like you usually do, with the platform's native selection editing mechanism. De-selecting "commits" the change to the highlight.

Maybe this should be specified to be the default behavior when a highlight is tapped (see #54), and sites can do something else by calling preventDefault()?

Highlight API should explicitly prohibit layout changes

There are issues with text shaping broken across element boundaries, see this for example. Also, behavior in this case varies significantly between browser or browser versions:

image

Highlight API should explicitly prohibit changes in layout when highlight is added, it must only have effect on rendering.

Virtual Content: Reverse navigation

In the Virtual Content explainer, the last two steps of the scenario walkthrough say:

  1. Eventually, the backing server sends a content payload which also contains a signal that the end of the document has been reached. Script code removes
    the aria-virtualcontent attribute from the main element to indicate there is no more virtualized content.
  1. The next time the user attempts to navigate to the next heading, the AT searches for a virtual content container, finds none, and announces there are
    no further headings in the document.>

In this scenario, what would happen if/when the screen reader user decides to reverse direction and move backwards through the headings?

Do we need HighlightRange?

Moving the original issue from https://github.com/dlibby-/highlight/issues/15

@Reinmar as FYI

To avoid defining a new subclass of Range, perhaps the entire API could be somehow built around the HighlightsMap.

const range = new Range();

const highlight = document.highlights.create( 'example-highlight', range, {
    priority: 1
} );

highlight.style.color = 'red';
highlight.priority = 42;

document.highlights.remove( range );

HighlightsMap#create() doing create&add at once is not the prettiest method, but maybe something along these lines could work. Having those new properties (style, priority, label) in some new interface (rather than squashed together with Range's properties) might avoid creating one giant class.

Outlook messages deleted when dropped in Edge

I am maintaining a web application that receives files via drag and drop. In the current stable version of Edge I can drag a message from Outlook and it will be uploaded. If I use Chromium Edge Beta (or Google Chrome) the message will be uploaded as expected, but is also deleted from Outlook. In SharePoint Online document libraries the message is not deleted so I guess there is something missing in my JavaScript code.

Where do I/we go from here? If you need a small repro I will need some time to develop that.

Thank you.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.