Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(413)

Unified Diff: java/org/chromium/distiller/webdocument/DomConverter.java

Issue 2267403008: Fix partially hidden article (Closed) Base URL: git@github.com:chromium/dom-distiller.git@master
Patch Set: speed optimization Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « java/org/chromium/distiller/ContentExtractor.java ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: java/org/chromium/distiller/webdocument/DomConverter.java
diff --git a/java/org/chromium/distiller/webdocument/DomConverter.java b/java/org/chromium/distiller/webdocument/DomConverter.java
index 31f17a342dd8804bf68a041adb8f54b27698ac7b..5cd462033945abcba7deb8ee5694e56cd662550f 100644
--- a/java/org/chromium/distiller/webdocument/DomConverter.java
+++ b/java/org/chromium/distiller/webdocument/DomConverter.java
@@ -6,6 +6,7 @@ package org.chromium.distiller.webdocument;
import org.chromium.distiller.DomUtil;
import org.chromium.distiller.DomWalker;
+import org.chromium.distiller.JavaScript;
import org.chromium.distiller.LogUtil;
import org.chromium.distiller.TableClassifier;
@@ -37,11 +38,14 @@ public class DomConverter implements DomWalker.Visitor {
// For quick lookup of tags that could possibly be embeds.
private final HashSet<String> embedTagNames;
+ private boolean isMobileFriendly;
+ private boolean hasArticleElement;
+
public DomConverter(WebDocumentBuilderInterface builder) {
- hiddenElements = new HashSet<Node>();
+ hiddenElements = new HashSet<>();
this.builder = builder;
- extractors = new ArrayList<EmbedExtractor>();
+ extractors = new ArrayList<>();
extractors.add(new ImageExtractor());
extractors.add(new TwitterExtractor());
extractors.add(new VimeoExtractor());
@@ -53,6 +57,14 @@ public class DomConverter implements DomWalker.Visitor {
}
}
+ public void setIsMobileFriendly(boolean mobileFriendly) {
+ isMobileFriendly = mobileFriendly;
+ }
+
+ public void setHasArticleElement(boolean hasArticle) {
+ hasArticleElement = hasArticle;
+ }
+
public final Set<Node> getHiddenElements() {
return hiddenElements;
}
@@ -78,8 +90,17 @@ public class DomConverter implements DomWalker.Visitor {
private boolean visitElement(Element e) {
// Skip invisible or uninteresting elements.
boolean visible = DomUtil.isVisible(e);
- logVisibilityInfo(e, visible);
+ boolean keepAnyway = false;
if (!visible) {
+ if (isMobileFriendly && hasArticleElement && DomUtil.hasClassName(e, "hidden")) {
+ // Process more hidden elements in a marked article in mobile-friendly pages
+ // because some sites hide the lower part of the article.
+ // See crbug.com/599121
+ keepAnyway = true;
+ }
+ }
+ logVisibilityInfo(e, visible || keepAnyway);
+ if (!visible && !keepAnyway) {
hiddenElements.add(e);
return false;
}
« no previous file with comments | « java/org/chromium/distiller/ContentExtractor.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698