提交 07b83624 编写于 作者: A Alex Dima

Remove support for IE9 and IE10

上级 aefac3b8
......@@ -4,7 +4,6 @@
*--------------------------------------------------------------------------------------------*/
'use strict';
import types = require('vs/base/common/types');
import * as Platform from 'vs/base/common/platform';
import Event, { Emitter } from 'vs/base/common/event';
import { IDisposable } from 'vs/base/common/lifecycle';
......@@ -129,37 +128,9 @@ export const canUseTranslate3d = !isFirefox;
export const enableEmptySelectionClipboard = isWebKit;
/**
* Returns if the browser supports CSS 3 animations.
*/
export function hasCSSAnimationSupport() {
if (this._hasCSSAnimationSupport === true || this._hasCSSAnimationSupport === false) {
return this._hasCSSAnimationSupport;
}
let supported = false;
let element = document.createElement('div');
let properties = ['animationName', 'webkitAnimationName', 'msAnimationName', 'MozAnimationName', 'OAnimationName'];
for (let i = 0; i < properties.length; i++) {
let property = properties[i];
if (!types.isUndefinedOrNull(element.style[property]) || element.style.hasOwnProperty(property)) {
supported = true;
break;
}
}
if (supported) {
this._hasCSSAnimationSupport = true;
} else {
this._hasCSSAnimationSupport = false;
}
return this._hasCSSAnimationSupport;
}
export function supportsExecCommand(command: string): boolean {
return (
(isIE || Platform.isNative)
&& document.queryCommandSupported(command)
);
}
\ No newline at end of file
}
......@@ -8,10 +8,8 @@
import 'vs/css!./progressbar';
import { TPromise, ValueCallback } from 'vs/base/common/winjs.base';
import assert = require('vs/base/common/assert');
import browser = require('vs/base/browser/browser');
import { Builder, $ } from 'vs/base/browser/builder';
import DOM = require('vs/base/browser/dom');
import uuid = require('vs/base/common/uuid');
import { IDisposable, dispose } from 'vs/base/common/lifecycle';
const css_done = 'done';
......@@ -33,7 +31,6 @@ export class ProgressBar {
private bit: HTMLElement;
private totalWork: number;
private animationStopToken: ValueCallback;
private currentProgressToken: string;
constructor(builder: Builder) {
this.toUnbind = [];
......@@ -130,55 +127,9 @@ export class ProgressBar {
this.element.addClass(css_active);
this.element.addClass(css_infinite);
if (!browser.hasCSSAnimationSupport()) {
// Use a generated token to avoid race conditions from reentrant calls to this function
let currentProgressToken = uuid.v4().asHex();
this.currentProgressToken = currentProgressToken;
this.manualInfinite(currentProgressToken);
}
return this;
}
private manualInfinite(currentProgressToken: string): void {
this.bit.style.width = '5%';
this.bit.style.display = 'inherit';
let counter = 0;
let animationFn: () => void = () => {
TPromise.timeout(50).then(() => {
// Return if another manualInfinite() call was made
if (currentProgressToken !== this.currentProgressToken) {
return;
}
// Animation done
else if (this.element.hasClass(css_done)) {
this.bit.style.display = 'none';
this.bit.style.left = '0';
}
// Wait until progress bar becomes visible
else if (this.element.isHidden()) {
animationFn();
}
// Continue Animation until done
else {
counter = (counter + 1) % 95;
this.bit.style.left = counter + '%';
animationFn();
}
});
};
// Start Animation
animationFn();
}
/**
* Tells the progress bar the total number of work. Use in combination with workedVal() to let
* the progress bar show the actual progress based on the work that is done.
......
......@@ -6,43 +6,9 @@
import * as assert from 'assert';
import { isWindows, isMacintosh } from 'vs/base/common/platform';
import * as browser from 'vs/base/browser/browser';
suite('Browsers', () => {
test('all', function () {
assert(!(isWindows && isMacintosh));
let isOpera = browser.isOpera || navigator.userAgent.indexOf('OPR') >= 0;
let isIE = browser.isIE;
let isFirefox = browser.isFirefox;
let isWebKit = browser.isWebKit;
let isChrome = browser.isChrome;
let isSafari = browser.isSafari;
let hasCSSAnimations = browser.hasCSSAnimationSupport();
let browserCount = 0;
if (isOpera) {
browserCount++;
}
if (isIE) {
browserCount++;
}
if (isFirefox) {
browserCount++;
assert(hasCSSAnimations);
}
if (isWebKit) {
browserCount++;
assert(hasCSSAnimations);
}
if (isChrome) {
browserCount++;
assert(hasCSSAnimations);
}
if (isSafari) {
browserCount++;
assert(hasCSSAnimations);
}
});
});
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册