Commit 98663059 authored by Aaron Wells's avatar Aaron Wells Committed by Robert Lyon
Browse files

Revert bad merge changes in tinymce.jquery.js

Bug 1521058

behatnotneeded: Covered by existing tests

Change-Id: I7f4d2a290375074551f72ce2db731b80cab5c278
(cherry picked from commit c687a52a)
parent d48f5bbf
Loading
Loading
Loading
Loading
+0 −233
Original line number Diff line number Diff line
@@ -5345,239 +5345,6 @@ define("tinymce/dom/DOMUtils", [
		 */
		setAttrib: function(elm, name, value) {
			var self = this, originalValue, hook, settings = self.settings;
		documentMode: ie ? (document.documentMode || 7) : 10
	};
});
// Included from: js/tinymce/classes/dom/StyleSheetLoader.js
/**
 * StyleSheetLoader.js
 *
 * Copyright, Moxiecode Systems AB
 * Released under LGPL License.
 *
 * License: http://www.tinymce.com/license
 * Contributing: http://www.tinymce.com/contributing
 */
/**
 * This class handles loading of external stylesheets and fires events when these are loaded.
 *
 * @class tinymce.dom.StyleSheetLoader
 * @private
 */
define("tinymce/dom/StyleSheetLoader", [], function() {
	"use strict";
	return function(document, settings) {
		var idCount = 0, loadedStates = {}, maxLoadTime;
		settings = settings || {};
		maxLoadTime = settings.maxLoadTime || 5000;
		function appendToHead(node) {
			document.getElementsByTagName('head')[0].appendChild(node);
		}
		/**
		 * Loads the specified css style sheet file and call the loadedCallback once it's finished loading.
		 *
		 * @method load
		 * @param {String} url Url to be loaded.
		 * @param {Function} loadedCallback Callback to be executed when loaded.
		 * @param {Function} errorCallback Callback to be executed when failed loading.
		 */
		function load(url, loadedCallback, errorCallback) {
			var link, style, startTime, state;
			function passed() {
				var callbacks = state.passed, i = callbacks.length;
				while (i--) {
					callbacks[i]();
				}
				state.status = 2;
				state.passed = [];
				state.failed = [];
			}
			function failed() {
				var callbacks = state.failed, i = callbacks.length;
				while (i--) {
					callbacks[i]();
				}
				state.status = 3;
				state.passed = [];
				state.failed = [];
			}
			// Sniffs for older WebKit versions that have the link.onload but a broken one
			function isOldWebKit() {
				var webKitChunks = navigator.userAgent.match(/WebKit\/(\d*)/);
				return !!(webKitChunks && webKitChunks[1] < 536);
			}
			// Calls the waitCallback until the test returns true or the timeout occurs
			function wait(testCallback, waitCallback) {
				if (!testCallback()) {
					// Wait for timeout
					if ((new Date().getTime()) - startTime < maxLoadTime) {
						window.setTimeout(waitCallback, 0);
					} else {
						failed();
					}
				}
			}
			// Workaround for WebKit that doesn't properly support the onload event for link elements
			// Or WebKit that fires the onload event before the StyleSheet is added to the document
			function waitForWebKitLinkLoaded() {
				wait(function() {
					var styleSheets = document.styleSheets, styleSheet, i = styleSheets.length, owner;
					while (i--) {
						styleSheet = styleSheets[i];
						owner = styleSheet.ownerNode ? styleSheet.ownerNode : styleSheet.owningElement;
						if (owner && owner.id === link.id) {
							passed();
							return true;
						}
					}
				}, waitForWebKitLinkLoaded);
			}
			// Workaround for older Geckos that doesn't have any onload event for StyleSheets
			function waitForGeckoLinkLoaded() {
				wait(function() {
					try {
						// Accessing the cssRules will throw an exception until the CSS file is loaded
						var cssRules = style.sheet.cssRules;
						passed();
						return !!cssRules;
					} catch (ex) {
						// Ignore
					}
				}, waitForGeckoLinkLoaded);
			}
			if (!loadedStates[url]) {
				state = {
					passed: [],
					failed: []
				};
				loadedStates[url] = state;
			} else {
				state = loadedStates[url];
			}
			if (loadedCallback) {
				state.passed.push(loadedCallback);
			}
			if (errorCallback) {
				state.failed.push(errorCallback);
			}
			// Is loading wait for it to pass
			if (state.status == 1) {
				return;
			}
			// Has finished loading and was success
			if (state.status == 2) {
				passed();
				return;
			}
			// Has finished loading and was a failure
			if (state.status == 3) {
				failed();
				return;
			}
			// Start loading
			state.status = 1;
			link = document.createElement('link');
			link.rel = 'stylesheet';
			link.type = 'text/css';
			link.id = 'u' + (idCount++);
			link.async = false;
			link.defer = false;
			startTime = new Date().getTime();
			// Feature detect onload on link element and sniff older webkits since it has an broken onload event
			if ("onload" in link && !isOldWebKit()) {
				link.onload = waitForWebKitLinkLoaded;
				link.onerror = failed;
			} else {
				// Sniff for old Firefox that doesn't support the onload event on link elements
				// TODO: Remove this in the future when everyone uses modern browsers
				if (navigator.userAgent.indexOf("Firefox") > 0) {
					style = document.createElement('style');
					style.textContent = '@import "' + url + '"';
					waitForGeckoLinkLoaded();
					appendToHead(style);
					return;
				} else {
					// Use the id owner on older webkits
					waitForWebKitLinkLoaded();
				}
			}
			appendToHead(link);
			link.href = url;
		}
		this.load = load;
	};
});
// Included from: js/tinymce/classes/dom/DOMUtils.js
/**
 * DOMUtils.js
 *
 * Copyright, Moxiecode Systems AB
 * Released under LGPL License.
 *
 * License: http://www.tinymce.com/license
 * Contributing: http://www.tinymce.com/contributing
 */
/**
 * Utility class for various DOM manipulation and retrieval functions.
 *
 * @class tinymce.dom.DOMUtils
 * @example
 * // Add a class to an element by id in the page
 * tinymce.DOM.addClass('someid', 'someclass');
 *
 * // Add a class to an element by id inside the editor
 * tinymce.activeEditor.dom.addClass('someid', 'someclass');
 */
define("tinymce/dom/DOMUtils", [
	"tinymce/dom/Sizzle",
	"tinymce/html/Styles",
	"tinymce/dom/EventUtils",
	"tinymce/dom/TreeWalker",
	"tinymce/dom/Range",
	"tinymce/html/Entities",
	"tinymce/Env",
	"tinymce/util/Tools",
	"tinymce/dom/StyleSheetLoader"
], function(Sizzle, Styles, EventUtils, TreeWalker, Range, Entities, Env, Tools, StyleSheetLoader) {
	// Shorten names
	var each = Tools.each, is = Tools.is, grep = Tools.grep, trim = Tools.trim, extend = Tools.extend;
	var isWebKit = Env.webkit, isIE = Env.ie;
	var simpleSelectorRe = /^([a-z0-9],?)+$/i;
	var whiteSpaceRegExp = /^[ \t\r\n]*$/;
	var numericCssMap = Tools.makeMap('fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom', ' ');
>>>>>>> BUG: Fix fieldsets
			if (value === '') {
				value = null;