]> scripts.mit.edu Git - autoinstalls/wordpress.git/blobdiff - wp-includes/js/tinymce/plugins/paste/plugin.js
WordPress 4.3.1
[autoinstalls/wordpress.git] / wp-includes / js / tinymce / plugins / paste / plugin.js
index 65ed95d2256dd180f72633565e8562b89d95f501..9c504700d95ae8cd5cdb6ccd711902f9649647d6 100644 (file)
        }
 
        function expose(ids) {
-               for (var i = 0; i < ids.length; i++) {
-                       var target = exports;
-                       var id = ids[i];
-                       var fragments = id.split(/[.\/]/);
+               var i, target, id, fragments, privateModules;
+
+               for (i = 0; i < ids.length; i++) {
+                       target = exports;
+                       id = ids[i];
+                       fragments = id.split(/[.\/]/);
 
                        for (var fi = 0; fi < fragments.length - 1; ++fi) {
                                if (target[fragments[fi]] === undefined) {
 
                        target[fragments[fragments.length - 1]] = modules[id];
                }
+               
+               // Expose private modules for unit tests
+               if (exports.AMDLC_TESTS) {
+                       privateModules = exports.privateModules || {};
+
+                       for (id in modules) {
+                               privateModules[id] = modules[id];
+                       }
+
+                       for (i = 0; i < ids.length; i++) {
+                               delete privateModules[ids[i]];
+                       }
+
+                       exports.privateModules = privateModules;
+               }
        }
 
 // Included from: js/tinymce/plugins/paste/classes/Utils.js
 /**
  * Utils.js
  *
- * Copyright, Moxiecode Systems AB
  * Released under LGPL License.
+ * Copyright (c) 1999-2015 Ephox Corp. All rights reserved
  *
  * License: http://www.tinymce.com/license
  * Contributing: http://www.tinymce.com/contributing
@@ -217,8 +234,8 @@ define("tinymce/pasteplugin/Utils", [
 /**
  * Clipboard.js
  *
- * Copyright, Moxiecode Systems AB
  * Released under LGPL License.
+ * Copyright (c) 1999-2015 Ephox Corp. All rights reserved
  *
  * License: http://www.tinymce.com/license
  * Contributing: http://www.tinymce.com/contributing
@@ -281,7 +298,7 @@ define("tinymce/pasteplugin/Clipboard", [
                                }
 
                                if (!args.isDefaultPrevented()) {
-                                       editor.insertContent(html, {merge: editor.settings.paste_merge_formats !== false});
+                                       editor.insertContent(html, {merge: editor.settings.paste_merge_formats !== false, data: {paste: true}});
                                }
                        }
                }
@@ -805,19 +822,40 @@ define("tinymce/pasteplugin/Clipboard", [
 
                        // Remove all data images from paste for example from Gecko
                        // except internal images like video elements
-                       editor.parser.addNodeFilter('img', function(nodes) {
-                               if (!editor.settings.paste_data_images) {
+                       editor.parser.addNodeFilter('img', function(nodes, name, args) {
+                               function isPasteInsert(args) {
+                                       return args.data && args.data.paste === true;
+                               }
+
+                               function remove(node) {
+                                       if (!node.attr('data-mce-object') && src !== Env.transparentSrc) {
+                                               node.remove();
+                                       }
+                               }
+
+                               function isWebKitFakeUrl(src) {
+                                       return src.indexOf("webkit-fake-url") === 0;
+                               }
+
+                               function isDataUri(src) {
+                                       return src.indexOf("data:") === 0;
+                               }
+
+                               if (!editor.settings.paste_data_images && isPasteInsert(args)) {
                                        var i = nodes.length;
 
                                        while (i--) {
                                                var src = nodes[i].attributes.map.src;
 
-                                               // Some browsers automatically produce data uris on paste
+                                               if (!src) {
+                                                       continue;
+                                               }
+
                                                // Safari on Mac produces webkit-fake-url see: https://bugs.webkit.org/show_bug.cgi?id=49141
-                                               if (src && /^(data:image|webkit\-fake\-url)/.test(src)) {
-                                                       if (!nodes[i].attr('data-mce-object') && src !== Env.transparentSrc) {
-                                                               nodes[i].remove();
-                                                       }
+                                               if (isWebKitFakeUrl(src)) {
+                                                       remove(nodes[i]);
+                                               } else if (!editor.settings.allow_html_data_urls && isDataUri(src)) {
+                                                       remove(nodes[i]);
                                                }
                                        }
                                }
@@ -831,8 +869,8 @@ define("tinymce/pasteplugin/Clipboard", [
 /**
  * WordFilter.js
  *
- * Copyright, Moxiecode Systems AB
  * Released under LGPL License.
+ * Copyright (c) 1999-2015 Ephox Corp. All rights reserved
  *
  * License: http://www.tinymce.com/license
  * Contributing: http://www.tinymce.com/contributing
@@ -1332,8 +1370,8 @@ define("tinymce/pasteplugin/WordFilter", [
 /**
  * Quirks.js
  *
- * Copyright, Moxiecode Systems AB
  * Released under LGPL License.
+ * Copyright (c) 1999-2015 Ephox Corp. All rights reserved
  *
  * License: http://www.tinymce.com/license
  * Contributing: http://www.tinymce.com/contributing
@@ -1494,8 +1532,8 @@ define("tinymce/pasteplugin/Quirks", [
 /**
  * Plugin.js
  *
- * Copyright, Moxiecode Systems AB
  * Released under LGPL License.
+ * Copyright (c) 1999-2015 Ephox Corp. All rights reserved
  *
  * License: http://www.tinymce.com/license
  * Contributing: http://www.tinymce.com/contributing