Jdlrobson has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/404810 )
Change subject: Fix regressions with updated lead intro transform
......................................................................
Fix regressions with updated lead intro transform
This is a combination of 2 commits:
1) Avoid notice in lead paragraph transform when encounter infobox like elements
XPath query can return tables that look like infoboxes as
contains(@class,"infobox")
is not the same as hasClass('infobox'). Thus getInfoboxContainer can resolve
to false. This test and fix guards against that.
Bug: T185106
Change-Id: I5a8fbbb956365de9af09ee8d238fb3389e8f2cef
2) Remove blacklisted content before applying transforms
Previously we removed all blacklisted elements AFTER applying
transforms such as moving lead paragraph.
This is unnecessary and can lead to problems, for example infoboxes
inside elements which are to be removed, might be moved above the
lead paragraph and skip the blacklisting altogether. This also leads
to unnecessary logging when the move is not possible.
HtmlFormatter::filterContent takes care of content removal so lets
do that BEFORE our transformations explicitly.
Bug: T185040
Change-Id: I18bc97fa37bdc53e61cb6de79fb6bc1158ffd9fe
---
M includes/MobileFormatter.php
M includes/transforms/MoveLeadParagraphTransform.php
M tests/phpunit/transforms/MoveLeadParagraphTransformTest.php
3 files changed, 8 insertions(+), 3 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/MobileFrontend
refs/changes/10/404810/1
diff --git a/includes/MobileFormatter.php b/includes/MobileFormatter.php
index 55429ba..0774271 100644
--- a/includes/MobileFormatter.php
+++ b/includes/MobileFormatter.php
@@ -183,6 +183,8 @@
$this->doRemoveImages();
}
+ // Apply all removals before continuing with transforms (see
T185040 for example)
+ $removed = parent::filterContent();
$transformOptions = [
'images' => $removeImages,
'references' => $removeReferences,
@@ -200,8 +202,7 @@
if ( $transformOptions['references'] ) {
$this->doRewriteReferencesLinksForLazyLoading( $doc );
}
-
- return parent::filterContent();
+ return $removed;
}
/**
diff --git a/includes/transforms/MoveLeadParagraphTransform.php
b/includes/transforms/MoveLeadParagraphTransform.php
index d2d5b35..08ef454 100644
--- a/includes/transforms/MoveLeadParagraphTransform.php
+++ b/includes/transforms/MoveLeadParagraphTransform.php
@@ -107,7 +107,7 @@
if ( $listElementAfterParagraph !== null ) {
$leadSectionBody->insertBefore(
$listElementAfterParagraph, $where );
}
- } elseif ( $infobox->parentNode !== $leadSectionBody ) {
+ } elseif ( $infobox && $infobox->parentNode !==
$leadSectionBody ) {
/**
* @see
https://phabricator.wikimedia.org/T149884
* @todo remove after research is done
diff --git a/tests/phpunit/transforms/MoveLeadParagraphTransformTest.php
b/tests/phpunit/transforms/MoveLeadParagraphTransformTest.php
index c2cbc2c..bfd8dc7 100644
--- a/tests/phpunit/transforms/MoveLeadParagraphTransformTest.php
+++ b/tests/phpunit/transforms/MoveLeadParagraphTransformTest.php
@@ -91,6 +91,10 @@
return [
[
+ '<div><table
class="mf-infobox"></table></div><p>one</p>',
+ '<div><table
class="mf-infobox"></table></div><p>one</p>'
+ ],
+ [
"$infobox$paragraph",
"$paragraph$infobox",
],
--
To view, visit https://gerrit.wikimedia.org/r/404810
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I18bc97fa37bdc53e61cb6de79fb6bc1158ffd9fe
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/MobileFrontend
Gerrit-Branch: wmf/1.31.0-wmf.16
Gerrit-Owner: Jdlrobson <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits