X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/7f1521bf193b382565eb753043c161f4cb3fcda7..refs/tags/wordpress-4.3.1:/wp-includes/js/tinymce/plugins/paste/plugin.js diff --git a/wp-includes/js/tinymce/plugins/paste/plugin.js b/wp-includes/js/tinymce/plugins/paste/plugin.js index 65ed95d2..9c504700 100644 --- a/wp-includes/js/tinymce/plugins/paste/plugin.js +++ b/wp-includes/js/tinymce/plugins/paste/plugin.js @@ -63,10 +63,12 @@ } 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) { @@ -78,6 +80,21 @@ 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 @@ -85,8 +102,8 @@ /** * 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