Wrap insertBefore in Windows 8 apps
Andreww8xx8 committed
Feb 18, 2016 at 06:04 UTC
8d08f3f00aa2a09536f396b4527881112c3728b1
2 files changed
+20
-2
src/renderers/dom/client/utils/DOMChildrenOperations.js
+10
-1
@@ -9,6 +9,8 @@
9
* @providesModule DOMChildrenOperations
10
*/
11
12
+/* globals MSApp */
13
+
14
'use strict';
15
16
var DOMLazyTree = require('DOMLazyTree');
@@ -35,7 +37,14 @@ function insertChildAt(parentNode, childNode, referenceNode) {
37
// We rely exclusively on `insertBefore(node, null)` instead of also using
38
// `appendChild(node)`. (Using `undefined` is not allowed by all browsers so
39
// we are careful to use `null`.)
38
- parentNode.insertBefore(childNode, referenceNode);
40
+
41
+ if (typeof MSApp !== 'undefined' && MSApp.execUnsafeLocalFunction) {
42
+ MSApp.execUnsafeLocalFunction(function() {
43
+ parentNode.insertBefore(childNode, referenceNode);
44
+ });
45
+ } else {
46
+ parentNode.insertBefore(childNode, referenceNode);
47
+ }
48
}
49
50
function insertLazyTreeChildAt(parentNode, childTree, referenceNode) {
src/renderers/dom/client/utils/DOMLazyTree.js
+10
-1
@@ -9,6 +9,8 @@
9
* @providesModule DOMLazyTree
10
*/
11
12
+/* globals MSApp */
13
+
14
'use strict';
15
16
var setTextContent = require('setTextContent');
@@ -51,7 +53,14 @@ function insertTreeChildren(tree) {
53
}
54
55
function insertTreeBefore(parentNode, tree, referenceNode) {
54
- parentNode.insertBefore(tree.node, referenceNode);
56
+ if (typeof MSApp !== 'undefined' && MSApp.execUnsafeLocalFunction) {
57
+ MSApp.execUnsafeLocalFunction(function() {
58
+ parentNode.insertBefore(tree.node, referenceNode);
59
+ });
60
+ } else {
61
+ parentNode.insertBefore(tree.node, referenceNode);
62
+ }
63
+
64
insertTreeChildren(tree);
65
}
66