Mobrovac has submitted this change and it was merged.

Change subject: Perform Wiktionary-specific transform queries only for 
Wiktionary requests
......................................................................


Perform Wiktionary-specific transform queries only for Wiktionary requests

Profiling reveals that stripping various content from the DOM is a long-
running and expensive set of operations in every mobile-sections* request,
and we should look for ways to streamline where possible.

This patch removes a set of selectors specific to Wiktionary from the list
of selectors used for all mobile-sections* requests and moves them to a
function called only from the Wiktionary endpoint code.

I looked here to determine which transforms were added specifically for
Wiktionary:

https://gerrit.wikimedia.org/r/#/c/255263/23/lib/transforms.js

Change-Id: I0f383d60fbaf12edd9a2aad85200d358ac4e8732
---
M lib/parsoid-access.js
M lib/transforms.js
M test/features/definition/definition.js
3 files changed, 13 insertions(+), 3 deletions(-)

Approvals:
  Mobrovac: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/lib/parsoid-access.js b/lib/parsoid-access.js
index 26fc4b8..2df9572 100644
--- a/lib/parsoid-access.js
+++ b/lib/parsoid-access.js
@@ -190,6 +190,7 @@
         .then(function (response) {
             var doc = domino.createDocument(response.body);
             transforms.stripUnneededMarkup(doc);
+            transforms.stripWiktionarySpecificMarkup(doc);
             transforms.rmElementsWithSelector(doc, 'sup');
             transforms.inlineSpanText(doc);
             addSectionDivs(doc);
diff --git a/lib/transforms.js b/lib/transforms.js
index ab3b327..096e12a 100644
--- a/lib/transforms.js
+++ b/lib/transforms.js
@@ -167,9 +167,6 @@
 function _runAllSectionsTransforms(doc) {
     var rmSelectors = [
         'span.Z3988',                               // Remove <span 
class=\"Z3988\"></span>
-        'span.ib-brac',                             // Remove <span 
class=\"ib-brac\"></span>
-        'span.ib-content',                          // Remove <span 
class=\"ib-content\"></span>
-        'span.defdate',
         'span:empty',                               // Remove empty 
<span></span>
         'link',
         'sup.noprint',
@@ -213,6 +210,14 @@
 //}
 
 /**
+ * Remove Wiktionary-specific unwanted content from the DOM
+ */
+transforms.stripWiktionarySpecificMarkup = function(doc) {
+    var unwantedAttrs = [ '.ib-brac', '.ib-content', '.defdate' ];
+    _rmElementsWithSelectors(doc, unwantedAttrs);
+};
+
+/**
  * Nukes stuff from the DOM we don't want for pages from Parsoid.
  */
 transforms.stripUnneededMarkup = function(doc) {
diff --git a/test/features/definition/definition.js 
b/test/features/definition/definition.js
index 2f3aaa7..40c583b 100644
--- a/test/features/definition/definition.js
+++ b/test/features/definition/definition.js
@@ -18,6 +18,10 @@
         return preq.get({ uri: server.config.uri + 
'en.wiktionary.org/v1/page/definition/cat' })
             .then(function(res) {
                 var en = res.body.en;
+                var bodytext = JSON.stringify(res.body);
+                assert.ok(bodytext.indexOf('ib-brac') === -1);
+                assert.ok(bodytext.indexOf('ib-content') === -1);
+                assert.ok(bodytext.indexOf('defdate') === -1);
                 assert.deepEqual(res.status, 200);
                 assert.notDeepEqual(en, undefined);
                 assert.ok(en.length == 8)

-- 
To view, visit https://gerrit.wikimedia.org/r/299296
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I0f383d60fbaf12edd9a2aad85200d358ac4e8732
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/services/mobileapps
Gerrit-Branch: master
Gerrit-Owner: Mholloway <mhollo...@wikimedia.org>
Gerrit-Reviewer: BearND <bsitzm...@wikimedia.org>
Gerrit-Reviewer: Dbrant <dbr...@wikimedia.org>
Gerrit-Reviewer: Fjalapeno <cfl...@wikimedia.org>
Gerrit-Reviewer: GWicke <gwi...@wikimedia.org>
Gerrit-Reviewer: Jhernandez <jhernan...@wikimedia.org>
Gerrit-Reviewer: Mholloway <mhollo...@wikimedia.org>
Gerrit-Reviewer: Mhurd <mh...@wikimedia.org>
Gerrit-Reviewer: Mobrovac <mobro...@wikimedia.org>
Gerrit-Reviewer: Niedzielski <sniedziel...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to