From 8f08aeab1e7353420925911336d64120e20df670 Mon Sep 17 00:00:00 2001 From: Mustapha Jaber Date: Fri, 9 Jun 2017 15:26:21 -0700 Subject: [PATCH 1/4] Added RequestPayment function check recipe --- Recipe.min.js | 34 ++++++++++++++++++++++++++++++++++ cssUsage.src.js | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+) diff --git a/Recipe.min.js b/Recipe.min.js index d4d2b57..5341278 100644 --- a/Recipe.min.js +++ b/Recipe.min.js @@ -1540,6 +1540,40 @@ void function() { try { } catch (ex) { /* do something maybe */ throw ex; } }(); +/* + RECIPE: Request Payment + ------------------------------------------------------------- + Author: Mustapha Jaber + Description: Find use of RequestPayment in script. +*/ + +void function() { + window.CSSUsage.StyleWalker.recipesToRun.push( function paymentRequest(/*HTML DOM Element*/ element, results) { + var nodeName = element.nodeName; + var script = "RequestPayment" + if (nodeName == "SCRIPT") + { + results[nodeName] = results[nodeName] || { count: 0, }; + // if inline script. ensure that it's not our recipe script and look for string of interest + if (element.text !== undefined && element.text.indexOf(script) != -1) + { + results[nodeName].count++; + } + else if (element.src !== undefined && element.src != "") + { + var xhr = new XMLHttpRequest(); + xhr.open("GET", element.src, false); + //xhr.setRequestHeader("Content-type", "text/javascript"); + xhr.send(); + if (xhr.status === 200 && xhr.responseText.indexOf(script) != -1) + { + results[nodeName].count++; + } + } + } + return results; + }); +}(); /* RECIPE: z-index on static flex items ------------------------------------------------------------- diff --git a/cssUsage.src.js b/cssUsage.src.js index 9995397..57a1b28 100644 --- a/cssUsage.src.js +++ b/cssUsage.src.js @@ -1540,6 +1540,40 @@ void function() { try { } catch (ex) { /* do something maybe */ throw ex; } }(); +/* + RECIPE: Request Payment + ------------------------------------------------------------- + Author: Mustapha Jaber + Description: Find use of RequestPayment in script. +*/ + +void function() { + window.CSSUsage.StyleWalker.recipesToRun.push( function paymentRequest(/*HTML DOM Element*/ element, results) { + var nodeName = element.nodeName; + var script = "RequestPayment" + if (nodeName == "SCRIPT") + { + results[nodeName] = results[nodeName] || { count: 0, }; + // if inline script. ensure that it's not our recipe script and look for string of interest + if (element.text !== undefined && element.text.indexOf(script) != -1) + { + results[nodeName].count++; + } + else if (element.src !== undefined && element.src != "") + { + var xhr = new XMLHttpRequest(); + xhr.open("GET", element.src, false); + //xhr.setRequestHeader("Content-type", "text/javascript"); + xhr.send(); + if (xhr.status === 200 && xhr.responseText.indexOf(script) != -1) + { + results[nodeName].count++; + } + } + } + return results; + }); +}(); /* RECIPE: z-index on static flex items ------------------------------------------------------------- From 2ee98422340ef3159835c5540007199a337403f5 Mon Sep 17 00:00:00 2001 From: Mustapha Jaber Date: Fri, 9 Jun 2017 15:38:10 -0700 Subject: [PATCH 2/4] Added PaymentRequest.js recipe --- src/recipes/paymentrequest.js | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/recipes/paymentrequest.js diff --git a/src/recipes/paymentrequest.js b/src/recipes/paymentrequest.js new file mode 100644 index 0000000..c213435 --- /dev/null +++ b/src/recipes/paymentrequest.js @@ -0,0 +1,34 @@ +/* + RECIPE: Request Payment + ------------------------------------------------------------- + Author: Mustapha Jaber + Description: Find use of RequestPayment in script. +*/ + +void function() { + window.CSSUsage.StyleWalker.recipesToRun.push( function paymentRequest(/*HTML DOM Element*/ element, results) { + var nodeName = element.nodeName; + var script = "RequestPayment" + if (nodeName == "SCRIPT") + { + results[nodeName] = results[nodeName] || { count: 0, }; + // if inline script. ensure that it's not our recipe script and look for string of interest + if (element.text !== undefined && element.text.indexOf(script) != -1) + { + results[nodeName].count++; + } + else if (element.src !== undefined && element.src != "") + { + var xhr = new XMLHttpRequest(); + xhr.open("GET", element.src, false); + //xhr.setRequestHeader("Content-type", "text/javascript"); + xhr.send(); + if (xhr.status === 200 && xhr.responseText.indexOf(script) != -1) + { + results[nodeName].count++; + } + } + } + return results; + }); +}(); \ No newline at end of file From f2280a16883da3ca355a676882ddf422fa94659d Mon Sep 17 00:00:00 2001 From: Grisha Lyukshin Date: Mon, 7 Aug 2017 18:50:27 -0700 Subject: [PATCH 3/4] adding new recipe for elementfrompoint api --- Recipe.min.js | 22 +++++++++++-------- cssUsage.src.js | 22 +++++++++++-------- ...{paymentrequest.js => elementFromPoint.js} | 22 +++++++++++-------- tests/recipes/elementFromPoint.html | 20 +++++++++++++++++ 4 files changed, 59 insertions(+), 27 deletions(-) rename src/recipes/{paymentrequest.js => elementFromPoint.js} (54%) create mode 100644 tests/recipes/elementFromPoint.html diff --git a/Recipe.min.js b/Recipe.min.js index 5341278..0d7a40d 100644 --- a/Recipe.min.js +++ b/Recipe.min.js @@ -1541,16 +1541,16 @@ void function() { try { } catch (ex) { /* do something maybe */ throw ex; } }(); /* - RECIPE: Request Payment + RECIPE: elementFromPoint ------------------------------------------------------------- - Author: Mustapha Jaber - Description: Find use of RequestPayment in script. + Author: Grisha Lyukshin + Description: Find use of elementFromPoint in script. */ void function() { - window.CSSUsage.StyleWalker.recipesToRun.push( function paymentRequest(/*HTML DOM Element*/ element, results) { + window.CSSUsage.StyleWalker.recipesToRun.push( function elementFromPointUsage(/*HTML DOM Element*/ element, results) { var nodeName = element.nodeName; - var script = "RequestPayment" + var script = ".elementFromPoint" if (nodeName == "SCRIPT") { results[nodeName] = results[nodeName] || { count: 0, }; @@ -1562,12 +1562,16 @@ void function() { else if (element.src !== undefined && element.src != "") { var xhr = new XMLHttpRequest(); - xhr.open("GET", element.src, false); + xhr.open("GET", element.src, true); //xhr.setRequestHeader("Content-type", "text/javascript"); xhr.send(); - if (xhr.status === 200 && xhr.responseText.indexOf(script) != -1) - { - results[nodeName].count++; + xhr.onreadystatechange = function() { + if(this.readyState == this.HEADERS_RECEIVED ) { + if (xhr.status === 200 && xhr.responseText.indexOf(script) != -1) + { + results[nodeName].count++; + } + } } } } diff --git a/cssUsage.src.js b/cssUsage.src.js index 57a1b28..9b06157 100644 --- a/cssUsage.src.js +++ b/cssUsage.src.js @@ -1541,16 +1541,16 @@ void function() { try { } catch (ex) { /* do something maybe */ throw ex; } }(); /* - RECIPE: Request Payment + RECIPE: elementFromPoint ------------------------------------------------------------- - Author: Mustapha Jaber - Description: Find use of RequestPayment in script. + Author: Grisha Lyukshin + Description: Find use of elementFromPoint in script. */ void function() { - window.CSSUsage.StyleWalker.recipesToRun.push( function paymentRequest(/*HTML DOM Element*/ element, results) { + window.CSSUsage.StyleWalker.recipesToRun.push( function elementFromPointUsage(/*HTML DOM Element*/ element, results) { var nodeName = element.nodeName; - var script = "RequestPayment" + var script = ".elementFromPoint" if (nodeName == "SCRIPT") { results[nodeName] = results[nodeName] || { count: 0, }; @@ -1562,12 +1562,16 @@ void function() { else if (element.src !== undefined && element.src != "") { var xhr = new XMLHttpRequest(); - xhr.open("GET", element.src, false); + xhr.open("GET", element.src, true); //xhr.setRequestHeader("Content-type", "text/javascript"); xhr.send(); - if (xhr.status === 200 && xhr.responseText.indexOf(script) != -1) - { - results[nodeName].count++; + xhr.onreadystatechange = function() { + if(this.readyState == this.HEADERS_RECEIVED ) { + if (xhr.status === 200 && xhr.responseText.indexOf(script) != -1) + { + results[nodeName].count++; + } + } } } } diff --git a/src/recipes/paymentrequest.js b/src/recipes/elementFromPoint.js similarity index 54% rename from src/recipes/paymentrequest.js rename to src/recipes/elementFromPoint.js index c213435..f294ec3 100644 --- a/src/recipes/paymentrequest.js +++ b/src/recipes/elementFromPoint.js @@ -1,14 +1,14 @@ /* - RECIPE: Request Payment + RECIPE: elementFromPoint ------------------------------------------------------------- - Author: Mustapha Jaber - Description: Find use of RequestPayment in script. + Author: Grisha Lyukshin + Description: Find use of elementFromPoint in script. */ void function() { - window.CSSUsage.StyleWalker.recipesToRun.push( function paymentRequest(/*HTML DOM Element*/ element, results) { + window.CSSUsage.StyleWalker.recipesToRun.push( function elementFromPointUsage(/*HTML DOM Element*/ element, results) { var nodeName = element.nodeName; - var script = "RequestPayment" + var script = ".elementFromPoint" if (nodeName == "SCRIPT") { results[nodeName] = results[nodeName] || { count: 0, }; @@ -20,12 +20,16 @@ void function() { else if (element.src !== undefined && element.src != "") { var xhr = new XMLHttpRequest(); - xhr.open("GET", element.src, false); + xhr.open("GET", element.src, true); //xhr.setRequestHeader("Content-type", "text/javascript"); xhr.send(); - if (xhr.status === 200 && xhr.responseText.indexOf(script) != -1) - { - results[nodeName].count++; + xhr.onreadystatechange = function() { + if(this.readyState == this.HEADERS_RECEIVED ) { + if (xhr.status === 200 && xhr.responseText.indexOf(script) != -1) + { + results[nodeName].count++; + } + } } } } diff --git a/tests/recipes/elementFromPoint.html b/tests/recipes/elementFromPoint.html new file mode 100644 index 0000000..8c04801 --- /dev/null +++ b/tests/recipes/elementFromPoint.html @@ -0,0 +1,20 @@ + + + +elementFromPoint example + + + + + + +

Some text here

+ + + + \ No newline at end of file From 06e5bb20ec0b4b023fd65eea5ad243482c9dd153 Mon Sep 17 00:00:00 2001 From: Grisha Lyukshin Date: Tue, 8 Aug 2017 14:43:35 -0700 Subject: [PATCH 4/4] creating caretRangeFromPoint recipe --- Recipe.min.js | 38 ++++++++++++++++++++++++ cssUsage.src.js | 38 ++++++++++++++++++++++++ src/recipes/caretRangeFromPoint.js | 38 ++++++++++++++++++++++++ tests/recipes/caretRangeFromPoint.html | 40 ++++++++++++++++++++++++++ 4 files changed, 154 insertions(+) create mode 100644 src/recipes/caretRangeFromPoint.js create mode 100644 tests/recipes/caretRangeFromPoint.html diff --git a/Recipe.min.js b/Recipe.min.js index 0d7a40d..ddf0d93 100644 --- a/Recipe.min.js +++ b/Recipe.min.js @@ -1540,6 +1540,44 @@ void function() { try { } catch (ex) { /* do something maybe */ throw ex; } }(); +/* + RECIPE: caretRangeFromPoint + ------------------------------------------------------------- + Author: Grisha Lyukshin + Description: Find use of caretRangeFromPoint in script. +*/ + +void function() { + window.CSSUsage.StyleWalker.recipesToRun.push( function caretRangeFromPoint(/*HTML DOM Element*/ element, results) { + var nodeName = element.nodeName; + var script = ".caretRangeFromPoint" + if (nodeName == "SCRIPT") + { + results[nodeName] = results[nodeName] || { count: 0, }; + // if inline script. ensure that it's not our recipe script and look for string of interest + if (element.text !== undefined && element.text.indexOf(script) != -1) + { + results[nodeName].count++; + } + else if (element.src !== undefined && element.src != "") + { + var xhr = new XMLHttpRequest(); + xhr.open("GET", element.src, true); + //xhr.setRequestHeader("Content-type", "text/javascript"); + xhr.send(); + xhr.onreadystatechange = function() { + if(this.readyState == this.HEADERS_RECEIVED ) { + if (xhr.status === 200 && xhr.responseText.indexOf(script) != -1) + { + results[nodeName].count++; + } + } + } + } + } + return results; + }); +}(); /* RECIPE: elementFromPoint ------------------------------------------------------------- diff --git a/cssUsage.src.js b/cssUsage.src.js index 9b06157..0a6f663 100644 --- a/cssUsage.src.js +++ b/cssUsage.src.js @@ -1540,6 +1540,44 @@ void function() { try { } catch (ex) { /* do something maybe */ throw ex; } }(); +/* + RECIPE: caretRangeFromPoint + ------------------------------------------------------------- + Author: Grisha Lyukshin + Description: Find use of caretRangeFromPoint in script. +*/ + +void function() { + window.CSSUsage.StyleWalker.recipesToRun.push( function caretRangeFromPoint(/*HTML DOM Element*/ element, results) { + var nodeName = element.nodeName; + var script = ".caretRangeFromPoint" + if (nodeName == "SCRIPT") + { + results[nodeName] = results[nodeName] || { count: 0, }; + // if inline script. ensure that it's not our recipe script and look for string of interest + if (element.text !== undefined && element.text.indexOf(script) != -1) + { + results[nodeName].count++; + } + else if (element.src !== undefined && element.src != "") + { + var xhr = new XMLHttpRequest(); + xhr.open("GET", element.src, true); + //xhr.setRequestHeader("Content-type", "text/javascript"); + xhr.send(); + xhr.onreadystatechange = function() { + if(this.readyState == this.HEADERS_RECEIVED ) { + if (xhr.status === 200 && xhr.responseText.indexOf(script) != -1) + { + results[nodeName].count++; + } + } + } + } + } + return results; + }); +}(); /* RECIPE: elementFromPoint ------------------------------------------------------------- diff --git a/src/recipes/caretRangeFromPoint.js b/src/recipes/caretRangeFromPoint.js new file mode 100644 index 0000000..c93c9a2 --- /dev/null +++ b/src/recipes/caretRangeFromPoint.js @@ -0,0 +1,38 @@ +/* + RECIPE: caretRangeFromPoint + ------------------------------------------------------------- + Author: Grisha Lyukshin + Description: Find use of caretRangeFromPoint in script. +*/ + +void function() { + window.CSSUsage.StyleWalker.recipesToRun.push( function caretRangeFromPoint(/*HTML DOM Element*/ element, results) { + var nodeName = element.nodeName; + var script = ".caretRangeFromPoint" + if (nodeName == "SCRIPT") + { + results[nodeName] = results[nodeName] || { count: 0, }; + // if inline script. ensure that it's not our recipe script and look for string of interest + if (element.text !== undefined && element.text.indexOf(script) != -1) + { + results[nodeName].count++; + } + else if (element.src !== undefined && element.src != "") + { + var xhr = new XMLHttpRequest(); + xhr.open("GET", element.src, true); + //xhr.setRequestHeader("Content-type", "text/javascript"); + xhr.send(); + xhr.onreadystatechange = function() { + if(this.readyState == this.HEADERS_RECEIVED ) { + if (xhr.status === 200 && xhr.responseText.indexOf(script) != -1) + { + results[nodeName].count++; + } + } + } + } + } + return results; + }); +}(); \ No newline at end of file diff --git a/tests/recipes/caretRangeFromPoint.html b/tests/recipes/caretRangeFromPoint.html new file mode 100644 index 0000000..31e036d --- /dev/null +++ b/tests/recipes/caretRangeFromPoint.html @@ -0,0 +1,40 @@ + + + +elementFromPoint example + + + + + + +

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, +sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, +sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. +Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.

+ + \ No newline at end of file