From 9925a4ebb536b7687a6128fb2a662cabae8c0b51 Mon Sep 17 00:00:00 2001
From: Andrew Ozz <admin@laptoptips.ca>
Date: Mon, 21 Nov 2016 20:15:31 +0000
Subject: [PATCH] TinyMCE: avoid calling `editor.focus()` on loading the
 content in the editor. It may trigger scroll-into-view in the browser. Call
 the quirks fix in TinyMCE directly.

Props gitlost.
Fixes #38511.
Built from https://develop.svn.wordpress.org/trunk@39334


git-svn-id: http://core.svn.wordpress.org/trunk@39274 1a063a9b-81f0-0310-95a4-ce76da25c4cd
---
 .../js/tinymce/plugins/wpview/plugin.js       |   8 ++++----
 .../js/tinymce/plugins/wpview/plugin.min.js   |   2 +-
 wp-includes/js/tinymce/wp-tinymce.js.gz       | Bin 171832 -> 171850 bytes
 wp-includes/version.php                       |   2 +-
 4 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/wp-includes/js/tinymce/plugins/wpview/plugin.js b/wp-includes/js/tinymce/plugins/wpview/plugin.js
index 3202178612..e131474831 100644
--- a/wp-includes/js/tinymce/plugins/wpview/plugin.js
+++ b/wp-includes/js/tinymce/plugins/wpview/plugin.js
@@ -93,10 +93,10 @@
 
 		// Replace any new markers nodes with views.
 		editor.on( 'setcontent', function( event ) {
-			if ( event.load && ! event.initial ) {
-				// Make sure that the editor is focussed.
-				// May refresh the content internally which resets the iframes.
-				editor.focus();
+			if ( event.load && ! event.initial && editor.quirks.refreshContentEditable ) {
+				// Make sure there is a selection in Gecko browsers.
+				// Or it will refresh the content internally which resets the iframes.
+				editor.quirks.refreshContentEditable();
 			}
 
 			wp.mce.views.render();
diff --git a/wp-includes/js/tinymce/plugins/wpview/plugin.min.js b/wp-includes/js/tinymce/plugins/wpview/plugin.min.js
index 07c0d53bf5..bec6f2ef78 100644
--- a/wp-includes/js/tinymce/plugins/wpview/plugin.min.js
+++ b/wp-includes/js/tinymce/plugins/wpview/plugin.min.js
@@ -1 +1 @@
-!function(a,b){a.PluginManager.add("wpview",function(c){function d(){}function e(a){return c.dom.hasClass(a,"wpview")}function f(a){function b(a,b){return"<p>"+window.decodeURIComponent(b)+"</p>"}return a?a.replace(/<div[^>]+data-wpview-text="([^"]+)"[^>]*>(?:\.|[\s\S]+?wpview-end[^>]+>\s*<\/span>\s*)?<\/div>/g,b).replace(/<p[^>]+data-wpview-marker="([^"]+)"[^>]*>[\s\S]*?<\/p>/g,b):a}return b&&b.mce&&b.mce.views?(c.on("init",function(){var a=window.MutationObserver||window.WebKitMutationObserver;a&&new a(function(){c.fire("wp-body-class-change")}).observe(c.getBody(),{attributes:!0,attributeFilter:["class"]}),c.on("wp-body-class-change",function(){var a=c.getBody().className;c.$('iframe[class="wpview-sandbox"]').each(function(b,c){if(!c.src||'javascript:""'===c.src)try{c.contentWindow.document.body.className=a}catch(d){}})})}),c.on("beforesetcontent",function(a){var d;if(a.selection||b.mce.views.unbind(),a.content){if(!a.load&&(d=c.selection.getNode(),d&&d!==c.getBody()&&/^\s*https?:\/\/\S+\s*$/i.test(a.content))){if(d=c.dom.getParent(d,"p"),!d||!/^[\s\uFEFF\u00A0]*$/.test(c.$(d).text()||""))return;d.innerHTML=""}a.content=b.mce.views.setMarkers(a.content)}}),c.on("setcontent",function(a){a.load&&!a.initial&&c.focus(),b.mce.views.render()}),c.on("preprocess hide",function(a){c.$("div[data-wpview-text], p[data-wpview-marker]",a.node).each(function(a,b){b.innerHTML="."})},!0),c.on("postprocess",function(a){a.content=f(a.content)}),c.on("beforeaddundo",function(a){a.level.content=f(a.level.content)}),c.on("drop objectselected",function(a){e(a.targetClone)&&(a.targetClone=c.getDoc().createTextNode(window.decodeURIComponent(c.dom.getAttrib(a.targetClone,"data-wpview-text"))))}),c.on("pastepreprocess",function(b){var c=b.content;c&&(c=a.trim(c.replace(/<[^>]+>/g,"")),/^https?:\/\/\S+$/i.test(c)&&(b.content=c))}),c.on("resolvename",function(a){e(a.target)&&(a.name=c.dom.getAttrib(a.target,"data-wpview-type")||"object")}),c.on("click keyup",function(){var a=c.selection.getNode();e(a)&&c.dom.getAttrib(a,"data-mce-selected")&&a.setAttribute("data-mce-selected","2")}),c.addButton("wp_view_edit",{tooltip:"Edit ",icon:"dashicon dashicons-edit",onclick:function(){var a=c.selection.getNode();e(a)&&b.mce.views.edit(c,a)}}),c.addButton("wp_view_remove",{tooltip:"Remove",icon:"dashicon dashicons-no",onclick:function(){c.fire("cut")}}),c.once("preinit",function(){var a;c.wp&&c.wp._createToolbar&&(a=c.wp._createToolbar(["wp_view_edit","wp_view_remove"]),c.on("wptoolbar",function(b){e(b.element)&&(b.toolbar=a)}))}),c.wp=c.wp||{},c.wp.getView=d,c.wp.setViewCursor=d,{getView:d}):{getView:d}})}(window.tinymce,window.wp);
\ No newline at end of file
+!function(a,b){a.PluginManager.add("wpview",function(c){function d(){}function e(a){return c.dom.hasClass(a,"wpview")}function f(a){function b(a,b){return"<p>"+window.decodeURIComponent(b)+"</p>"}return a?a.replace(/<div[^>]+data-wpview-text="([^"]+)"[^>]*>(?:\.|[\s\S]+?wpview-end[^>]+>\s*<\/span>\s*)?<\/div>/g,b).replace(/<p[^>]+data-wpview-marker="([^"]+)"[^>]*>[\s\S]*?<\/p>/g,b):a}return b&&b.mce&&b.mce.views?(c.on("init",function(){var a=window.MutationObserver||window.WebKitMutationObserver;a&&new a(function(){c.fire("wp-body-class-change")}).observe(c.getBody(),{attributes:!0,attributeFilter:["class"]}),c.on("wp-body-class-change",function(){var a=c.getBody().className;c.$('iframe[class="wpview-sandbox"]').each(function(b,c){if(!c.src||'javascript:""'===c.src)try{c.contentWindow.document.body.className=a}catch(d){}})})}),c.on("beforesetcontent",function(a){var d;if(a.selection||b.mce.views.unbind(),a.content){if(!a.load&&(d=c.selection.getNode(),d&&d!==c.getBody()&&/^\s*https?:\/\/\S+\s*$/i.test(a.content))){if(d=c.dom.getParent(d,"p"),!d||!/^[\s\uFEFF\u00A0]*$/.test(c.$(d).text()||""))return;d.innerHTML=""}a.content=b.mce.views.setMarkers(a.content)}}),c.on("setcontent",function(a){a.load&&!a.initial&&c.quirks.refreshContentEditable&&c.quirks.refreshContentEditable(),b.mce.views.render()}),c.on("preprocess hide",function(a){c.$("div[data-wpview-text], p[data-wpview-marker]",a.node).each(function(a,b){b.innerHTML="."})},!0),c.on("postprocess",function(a){a.content=f(a.content)}),c.on("beforeaddundo",function(a){a.level.content=f(a.level.content)}),c.on("drop objectselected",function(a){e(a.targetClone)&&(a.targetClone=c.getDoc().createTextNode(window.decodeURIComponent(c.dom.getAttrib(a.targetClone,"data-wpview-text"))))}),c.on("pastepreprocess",function(b){var c=b.content;c&&(c=a.trim(c.replace(/<[^>]+>/g,"")),/^https?:\/\/\S+$/i.test(c)&&(b.content=c))}),c.on("resolvename",function(a){e(a.target)&&(a.name=c.dom.getAttrib(a.target,"data-wpview-type")||"object")}),c.on("click keyup",function(){var a=c.selection.getNode();e(a)&&c.dom.getAttrib(a,"data-mce-selected")&&a.setAttribute("data-mce-selected","2")}),c.addButton("wp_view_edit",{tooltip:"Edit ",icon:"dashicon dashicons-edit",onclick:function(){var a=c.selection.getNode();e(a)&&b.mce.views.edit(c,a)}}),c.addButton("wp_view_remove",{tooltip:"Remove",icon:"dashicon dashicons-no",onclick:function(){c.fire("cut")}}),c.once("preinit",function(){var a;c.wp&&c.wp._createToolbar&&(a=c.wp._createToolbar(["wp_view_edit","wp_view_remove"]),c.on("wptoolbar",function(b){e(b.element)&&(b.toolbar=a)}))}),c.wp=c.wp||{},c.wp.getView=d,c.wp.setViewCursor=d,{getView:d}):{getView:d}})}(window.tinymce,window.wp);
\ No newline at end of file
diff --git a/wp-includes/js/tinymce/wp-tinymce.js.gz b/wp-includes/js/tinymce/wp-tinymce.js.gz
index 1c1f0de8c8eaade38adb20ecb5425b824f23daa2..df9a64a0826a2776196a44c8338be228c56406b1 100644
GIT binary patch
delta 373
zcmV-*0gC>(z6#2|3V?(Gv;yUwfADELT1`-&M2O$gR^ye7dVX&PvWqf3V;z!jKCiJi
zX%wshW86QF2%hw^c;H-##`3a!G+cQS@~CX3&Pob1b#0`Q$f7fSpmTQAw<ptGo^YgZ
zt4uu{n~i?SVnf%0P%jb-&?rvqx^nGG{bGtpUu2JICGaw3ybfu$3e!X@f4Tm&Piwrj
zsYY!crzhQ$R)Xn0)<PBvr5xxvxe+ProwUZjClHSDGg}iWX2O90O09m>x~ZEf<Jp=s
zdgVP1>O5Ltpb<dQ<4@w5)=042D6=T)h^@jA%BB9U(6WW*Vf0uGhEs_!VrkT#$R4@!
zV(j{VE-cLbBeM53xdf-^XS`n5vHx789CfRvXz;8~wYtzFEbd9kKs~JtK!Ss;u~4^W
zv^b6{bNiOnfC;X?MDuO5c9o(kW}E|ojZ(|ROHmhKg8za3ni)T?`H_VSka#EGV@UeY
TdN>4{5S;&iKj_OzIpqfcL$JH^

delta 355
zcmV-p0i6EIz6!X$3V?(Gv;yUwf1o5=b_1*m^37K=W+RP)QD2PP;1QvWUKY=dE74e9
zmUsA-Cy|TF#^$VRFf-6bVuuVf(+B!kM}2!v+*JlA^R~)j!!f<+mkcj-Er{46A^nX0
z!>%jW9?>tR2-rntl~w|;Hiq4h)~7H{v>@vb?X<?}nrhTmZhF!^Y3!HYe`EAxfl11N
zo|89_GQvq~%ya_b*f6tEkm3m(B%jpkN3FNHnKGWOIfGE%<7dvJ1wI&YAU*yho@tHb
z!;Lbhp-##wIG|jr;R-EVpd3aW#h5mgKp~c5?1}7=EB3{%|L3B++&?0FUz2BViazLd
z9sAD(yiu29igwHDaH@+SRl-u6l<dsY$~Yo8$Qna)YetLXxH6Y$S(}&O>Ps~HMQc~-
zn_`A55ZEZSOe_&~0Ven#=ysX$<C-5?MgWO-@;yeD53Pqo*ayM+{|9o@n7jbx2LS5;
Bu)_cV

diff --git a/wp-includes/version.php b/wp-includes/version.php
index 33e181a355..9a0a8e4d4a 100644
--- a/wp-includes/version.php
+++ b/wp-includes/version.php
@@ -4,7 +4,7 @@
  *
  * @global string $wp_version
  */
-$wp_version = '4.7-beta4-39333';
+$wp_version = '4.7-beta4-39334';
 
 /**
  * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.