Skip to content

Commit

Permalink
Drop Legacy Edge support.
Browse files Browse the repository at this point in the history
This allows us to move forward without being held back. Microsoft already replaces the Legacy Edge with the new one on supported Windows versions.
  • Loading branch information
XhmikosR committed Nov 5, 2020
1 parent 0766a09 commit e8f1709
Show file tree
Hide file tree
Showing 13 changed files with 11 additions and 127 deletions.
4 changes: 3 additions & 1 deletion .browserslistrc
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@ last 1 major version
not dead
Chrome >= 60
Firefox >= 60
Edge >= 16
# needed since Legacy Edge still has usage; 79 was the first Chromium Edge version
# should be removed in the future when its usage drops or when it's moved to dead browsers
not Edge < 79
iOS >= 10
Safari >= 10
Android >= 6
Expand Down
7 changes: 0 additions & 7 deletions js/src/dom/event-handler.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
*/

import { getjQuery } from '../util/index'
import { defaultPreventedPreservedOnDispatch } from './polyfill'

/**
* ------------------------------------------------------------------------
Expand Down Expand Up @@ -314,12 +313,6 @@ const EventHandler = {

if (defaultPrevented) {
evt.preventDefault()

if (!defaultPreventedPreservedOnDispatch) {
Object.defineProperty(evt, 'defaultPrevented', {
get: () => true
})
}
}

if (nativeDispatch) {
Expand Down
17 changes: 1 addition & 16 deletions js/src/dom/polyfill.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,20 +10,6 @@ import { getUID } from '../util/index'
let find = Element.prototype.querySelectorAll
let findOne = Element.prototype.querySelector

// MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached
const defaultPreventedPreservedOnDispatch = (() => {
const e = new CustomEvent('Bootstrap', {
cancelable: true
})

const element = document.createElement('div')
element.addEventListener('Bootstrap', () => null)

e.preventDefault()
element.dispatchEvent(e)
return e.defaultPrevented
})()

const scopeSelectorRegex = /:scope\b/
const supportsScopeQuery = (() => {
const element = document.createElement('div')
Expand Down Expand Up @@ -75,6 +61,5 @@ if (!supportsScopeQuery) {

export {
find,
findOne,
defaultPreventedPreservedOnDispatch
findOne
}
7 changes: 0 additions & 7 deletions js/tests/browsers.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,6 @@ const browsers = {
browser: 'Firefox',
browser_version: 'latest'
},
edgeWin10: {
base: 'BrowserStack',
os: 'Windows',
os_version: '10',
browser: 'Edge',
browser_version: '16'
},
chromeWin10: {
base: 'BrowserStack',
os: 'Windows',
Expand Down
16 changes: 2 additions & 14 deletions scss/_reboot.scss
Original file line number Diff line number Diff line change
Expand Up @@ -295,8 +295,6 @@ samp {
// 1. Remove browser default top margin
// 2. Reset browser default of `1em` to use `rem`s
// 3. Don't allow content to break outside
// 4. Disable auto-hiding scrollbar in legacy Edge to avoid overlap,
// making it impossible to interact with the content

pre {
display: block;
Expand All @@ -305,7 +303,6 @@ pre {
overflow: auto; // 3
@include font-size($code-font-size);
color: $pre-color;
-ms-overflow-style: scrollbar; // 4

// Account for some code outputs that place code tags in pre tags
code {
Expand Down Expand Up @@ -434,13 +431,6 @@ textarea {
line-height: inherit;
}

// Show the overflow in Edge

button,
input {
overflow: visible;
}

// Remove the inheritance of text transform in Firefox

button,
Expand Down Expand Up @@ -516,8 +506,7 @@ fieldset {

// 1. By using `float: left`, the legend will behave like a block element.
// This way the border of a fieldset wraps around the legend if present.
// 2. Correct the text wrapping in Edge.
// 3. Fix wrapping bug.
// 2. Fix wrapping bug.
// See https://github.com/twbs/bootstrap/issues/29712

legend {
Expand All @@ -528,10 +517,9 @@ legend {
@include font-size($legend-font-size);
font-weight: $legend-font-weight;
line-height: inherit;
white-space: normal; // 2

+ * {
clear: left; // 3
clear: left; // 2
}
}

Expand Down
22 changes: 0 additions & 22 deletions scss/forms/_floating-labels.scss
Original file line number Diff line number Diff line change
Expand Up @@ -61,25 +61,3 @@
}
// stylelint-enable no-duplicate-selectors
}


//
// Fallback for classic Edge
//

@supports (-ms-ime-align: auto) {
.form-floating {
display: flex;
flex-direction: column-reverse;
}
.form-floating > label {
position: static;
padding: 0;
margin-bottom: calc(#{$form-floating-padding-y} / 2); // stylelint-disable-line function-disallowed-list
border: 0;
@include transition(none);
}
.form-floating > .form-control::-ms-input-placeholder {
color: $input-placeholder-color;
}
}
45 changes: 0 additions & 45 deletions scss/forms/_form-range.scss
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
// No box-shadow() mixin for focus accessibility.
&::-webkit-slider-thumb { box-shadow: $form-range-thumb-focus-box-shadow; }
&::-moz-range-thumb { box-shadow: $form-range-thumb-focus-box-shadow; }
&::-ms-thumb { box-shadow: $form-range-thumb-focus-box-shadow; }
}

&::-moz-focus-outer {
Expand Down Expand Up @@ -78,46 +77,6 @@
@include box-shadow($form-range-track-box-shadow);
}

&::-ms-thumb {
width: $form-range-thumb-width;
height: $form-range-thumb-height;
margin-top: 0; // Edge specific
margin-right: $form-range-thumb-focus-box-shadow-width; // Workaround that overflowed box-shadow is hidden.
margin-left: $form-range-thumb-focus-box-shadow-width; // Workaround that overflowed box-shadow is hidden.
@include gradient-bg($form-range-thumb-bg);
border: $form-range-thumb-border;
@include border-radius($form-range-thumb-border-radius);
@include box-shadow($form-range-thumb-box-shadow);
@include transition($form-range-thumb-transition);
appearance: none;

&:active {
@include gradient-bg($form-range-thumb-active-bg);
}
}

&::-ms-track {
width: $form-range-track-width;
height: $form-range-track-height;
color: transparent;
cursor: $form-range-track-cursor;
background-color: transparent;
border-color: transparent;
border-width: $form-range-thumb-height / 2;
@include box-shadow($form-range-track-box-shadow);
}

&::-ms-fill-lower {
background-color: $form-range-track-bg;
@include border-radius($form-range-track-border-radius);
}

&::-ms-fill-upper {
margin-right: 15px; // arbitrary?
background-color: $form-range-track-bg;
@include border-radius($form-range-track-border-radius);
}

&:disabled {
pointer-events: none;

Expand All @@ -128,9 +87,5 @@
&::-moz-range-thumb {
background-color: $form-range-thumb-disabled-bg;
}

&::-ms-thumb {
background-color: $form-range-thumb-disabled-bg;
}
}
}
10 changes: 0 additions & 10 deletions scss/forms/_form-select.scss
Original file line number Diff line number Diff line change
Expand Up @@ -32,16 +32,6 @@
// Avoid using mixin so we can pass custom focus shadow properly
box-shadow: $form-select-focus-box-shadow;
}

&::-ms-value {
// For visual consistency with other platforms/browsers,
// suppress the default white text on blue background highlight given to
// the selected option text when the (still closed) <select> receives focus
// in Edge.
// See https://github.com/twbs/bootstrap/issues/19398.
color: $input-color;
background-color: $input-bg;
}
}

&[multiple],
Expand Down
1 change: 0 additions & 1 deletion site/assets/scss/_component-examples.scss
Original file line number Diff line number Diff line change
Expand Up @@ -273,7 +273,6 @@
padding: 1rem;
margin-bottom: 1rem;
background-color: $gray-100;
-ms-overflow-style: -ms-autohiding-scrollbar;

@include media-breakpoint-up(sm) {
padding: 1rem 1.5rem;
Expand Down
2 changes: 0 additions & 2 deletions site/content/docs/5.0/forms/floating-labels.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@ toc: true

Wrap a pair of `<input class="form-control">` and `<label>` elements in `.form-floating` to enable floating labels with Bootstrap's textual form fields. A `placeholder` is required on each `<input>` as our method of CSS-only floating labels uses the `:placeholder-shown` pseudo-element. Also note that the `<input>` must come first so we can utilize a sibling selector (e.g., `~`).

This approach works in the new Microsoft Edge built on Chromium and gracefully degrades on older versions.

{{< example >}}
<div class="form-floating mb-3">
<input type="email" class="form-control" id="floatingInput" placeholder="[email protected]">
Expand Down
2 changes: 1 addition & 1 deletion site/content/docs/5.0/getting-started/browsers-devices.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ toc: true

## Supported browsers

Bootstrap supports the **latest, stable releases** of all major browsers and platforms. This also includes the latest version of Legacy Edge (EdgeHTML layout engine).
Bootstrap supports the **latest, stable releases** of all major browsers and platforms.

Alternative browsers which use the latest version of WebKit, Blink, or Gecko, whether directly or via the platform's web view API, are not explicitly supported. However, Bootstrap should (in most cases) display and function correctly in these browsers as well. More specific support information is provided below.

Expand Down
4 changes: 4 additions & 0 deletions site/content/docs/5.0/migration.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@ toc: true

## v5.0.0-alpha3

### Browser support

- Dropped support for Microsoft Edge Legacy. See [here](#browser-support-1) for the previous browser support changes.

### Colors

- The color system which worked with `color-level()` and `$theme-color-interval` was removed in favor of a new color system.
Expand Down
1 change: 0 additions & 1 deletion site/layouts/_default/examples.html
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@
text-anchor: middle;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}

Expand Down

0 comments on commit e8f1709

Please sign in to comment.