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