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

Unified Diff: src/com/dom_distiller/client/PagingLinksFinder.java

Issue 661883003: add option for original domain (Closed) Base URL: https://code.google.com/p/dom-distiller/@master
Patch Set: rm empty line Created 6 years, 2 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
Index: src/com/dom_distiller/client/PagingLinksFinder.java
diff --git a/src/com/dom_distiller/client/PagingLinksFinder.java b/src/com/dom_distiller/client/PagingLinksFinder.java
index 8e856f4cb60de38f96c6c601c060fc518dc5f4df..b6fba67c5176af7913a8361f38c9e79bc58ab969 100644
--- a/src/com/dom_distiller/client/PagingLinksFinder.java
+++ b/src/com/dom_distiller/client/PagingLinksFinder.java
@@ -50,36 +50,38 @@ public class PagingLinksFinder {
// Examples that don't match PAGE_NUMBER_REGEX are: "_p3 ", "p", "p123".
private static final String PAGE_NUMBER_REGEX = "((_|-)?p[a-z]*|(_|-))[0-9]{1,2}$";
- public static DomDistillerProtos.PaginationInfo getPaginationInfo() {
+ public static DomDistillerProtos.PaginationInfo getPaginationInfo(String original_domain) {
DomDistillerProtos.PaginationInfo info = DomDistillerProtos.PaginationInfo.create();
- String next = findNext(Document.get().getDocumentElement());
+ String next = findNext(Document.get().getDocumentElement(), original_domain);
if (next != null) {
info.setNextPage(next);
}
return info;
}
- public static String findNext(Element root) {
/**
+ * @param original_domain The original domain of the page being processed if it's a file://.
* @return The next page link for the document.
*/
- return findPagingLink(root, PageLink.NEXT);
+ public static String findNext(Element root, String original_domain) {
+ return findPagingLink(root, original_domain, PageLink.NEXT);
}
- public static String findPrevious(Element root) {
/**
+ * @param original_domain The original domain of the page being processed if it's a file://.
* @return The previous page link for the document.
*/
- return findPagingLink(root, PageLink.PREV);
+ public static String findPrevious(Element root, String original_domain) {
+ return findPagingLink(root, original_domain, PageLink.PREV);
}
- private static String findPagingLink(Element root, PageLink pageLink) {
+ private static String findPagingLink(Element root, String original_domain, PageLink pageLink) {
// findPagingLink() is static, so clear mLinkDebugInfo before processing the links.
if (LogUtil.isLoggable(LogUtil.DEBUG_LEVEL_PAGING_INFO)) {
mLinkDebugInfo.clear();
}
- String baseUrl = findBaseUrl();
+ String baseUrl = findBaseUrl(original_domain);
// Remove trailing '/' from window location href, because it'll be used to compare with
// other href's whose trailing '/' are also removed.
String wndLocationHref = StringUtil.findAndReplace(Window.Location.getHref(), "\\/$", "");
@@ -128,7 +130,7 @@ public class PagingLinksFinder {
// If it's on a different domain, skip it.
String[] urlSlashes = StringUtil.split(linkHref, "\\/+");
if (urlSlashes.length < 3 || // Expect at least the protocol, domain, and path.
- !Window.Location.getHost().equalsIgnoreCase(urlSlashes[1])) {
+ !getLocationHost(original_domain).equalsIgnoreCase(urlSlashes[1])) {
appendDbgStrForLink(link, "ignored: different domain");
continue;
}
@@ -312,7 +314,11 @@ public class PagingLinksFinder {
return pagingHref;
}
- private static String findBaseUrl() {
+ private static String getLocationHost(String original_domain) {
+ return original_domain.isEmpty() ? Window.Location.getHost() : original_domain;
+ }
+
+ private static String findBaseUrl(String original_domain) {
// This extracts relevant parts from the window location's path based on various heuristics
// to determine the path of the base URL of the document. This path is then appended to the
// window location protocol and host to form the base URL of the document. This base URL is
@@ -372,7 +378,7 @@ public class PagingLinksFinder {
cleanedSegments.add(segment);
} // for all urlSlashes
- return Window.Location.getProtocol() + "//" + Window.Location.getHost() + "/" +
+ return Window.Location.getProtocol() + "//" + getLocationHost(original_domain) + "/" +
reverseJoin(cleanedSegments, "/");
}
« no previous file with comments | « src/com/dom_distiller/client/DomDistiller.java ('k') | test/com/dom_distiller/client/PagingLinksFinderTest.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698