Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Untangle PageSummary call from page loading sequence. #4095

Open
wants to merge 36 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
ebebf2f
Begin.
dbrant Jul 19, 2023
5740999
Retrieve metadata from html.
dbrant Jul 19, 2023
178dcdc
Right.
dbrant Jul 21, 2023
a1140e1
Merge branch 'main' into untanglePageSummary
dbrant Jul 24, 2023
f0a81c8
Keep going.
dbrant Jul 24, 2023
c974fea
Further untangle.
dbrant Jul 24, 2023
5b0918d
Correctly show offline toast.
dbrant Jul 24, 2023
884be6f
Add redirect message.
dbrant Jul 25, 2023
756c2f4
Merge branch 'main' into untanglePageSummary
dbrant Jul 25, 2023
d28569a
Correctly show messages.
dbrant Jul 25, 2023
fea3774
Correctly handle no lead image.
dbrant Jul 25, 2023
602e0b8
Properly urldecode lead image url.
dbrant Jul 25, 2023
2c42055
Correctly load mobileWeb pages.
dbrant Jul 25, 2023
00d1764
Correctly load non-pcs pages.
dbrant Jul 25, 2023
90b7cdc
Merge branch 'main' into untanglePageSummary
dbrant Jul 27, 2023
9e7c921
Merge branch 'main' into untanglePageSummary
dbrant Sep 21, 2023
f93d971
Lint.
dbrant Sep 21, 2023
0e91219
Merge branch 'main' into untanglePageSummary
dbrant Sep 22, 2023
14af39b
Merge branch 'main' into untanglePageSummary
dbrant Dec 12, 2023
b6072ab
Merge branch 'main' into untanglePageSummary
dbrant Dec 19, 2023
12e947d
Merge branch 'main' into untanglePageSummary
dbrant Jan 4, 2024
3805d6b
Merge branch 'main' into untanglePageSummary
dbrant Jan 5, 2024
c9b746e
Merge branch 'main' into untanglePageSummary
dbrant Jan 8, 2024
6f443ed
Merge branch 'main' into untanglePageSummary
dbrant Jan 12, 2024
bbc36ce
Merge branch 'main' into untanglePageSummary
dbrant Jan 17, 2024
7aa083e
Merge branch 'main' into untanglePageSummary
dbrant Jan 25, 2024
62b0ddb
Merge branch 'main' into untanglePageSummary
dbrant Feb 2, 2024
6602816
Merge branch 'main' into untanglePageSummary
dbrant Feb 8, 2024
3b612f1
Merge branch 'main' into untanglePageSummary
dbrant Feb 23, 2024
f37b3ad
Merge branch 'main' into untanglePageSummary
dbrant Mar 12, 2024
0484d78
Merge branch 'main' into untanglePageSummary
dbrant Mar 20, 2024
55626e7
Merge branch 'main' into untanglePageSummary
dbrant Mar 28, 2024
97a4471
Merge branch 'main' into untanglePageSummary
dbrant Apr 2, 2024
5a6d792
Merge branch 'main' into untanglePageSummary
dbrant Jun 3, 2024
d13381f
Merge branch 'main' into untanglePageSummary
dbrant Jun 18, 2024
c0c989b
Use correct constructor.
dbrant Jun 18, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import android.os.Message
import android.webkit.*
import kotlinx.serialization.Serializable
import kotlinx.serialization.json.JsonObject
import org.wikipedia.bridge.JavaScriptActionHandler.setUp
import org.wikipedia.dataclient.RestService
import org.wikipedia.dataclient.ServiceFactory
import org.wikipedia.json.JsonUtil
Expand Down Expand Up @@ -173,7 +172,7 @@ class CommunicationBridge constructor(private val communicationBridgeListener: C
@get:Synchronized
@get:JavascriptInterface
val setupSettings: String
get() = setUp(communicationBridgeListener.webView.context,
get() = JavaScriptActionHandler.setUp(communicationBridgeListener.webView.context,
communicationBridgeListener.model.title!!, communicationBridgeListener.isPreview,
communicationBridgeListener.toolbarMargin)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,12 +50,26 @@ object JavaScriptActionHandler {
return "pcs.c1.Page.getTableOfContents()"
}

fun getProtection(): String {
return "pcs.c1.Page.getProtection()"
}

fun getRevision(): String {
return "pcs.c1.Page.getRevision();"
fun requestMetadata(): String {
return "var metadata = {};" +
"metadata.revision = parseInt(pcs.c1.Page.getRevision());" +
"metadata.leadImage = pcs.c1.Page.getLeadImage();" +
"metadata.protection = pcs.c1.Page.getProtection();" +
"var m = document.head.querySelector('meta[property=\"mw:pageId\"]');" +
"if (m) metadata.pageId = parseInt(m.getAttribute('content'));" +
"m = document.head.querySelector('meta[property=\"mw:pageNamespace\"]');" +
"if (m) metadata.pageNamespace = parseInt(m.getAttribute('content'));" +
"m = document.head.querySelector('meta[property=\"dc:modified\"]');" +
"if (m) metadata.timeStamp = m.getAttribute('content');" +
"m = document.head.querySelector('title');" +
"if (m) metadata.title = m.textContent;" +
"m = document.body.querySelector('#pcs-edit-section-title-description');" +
"if (m) {" +
" metadata.description = m.textContent;" +
" metadata.descriptionSource = m.getAttribute('data-description-source');" +
" metadata.wikibaseItem = m.getAttribute('data-wikdata-entity-id');" +
"}" +
"metadata;"
}

fun expandCollapsedTables(expand: Boolean): String {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import org.wikipedia.util.UriUtil
import org.wikipedia.util.log.L
import java.io.IOException
import java.nio.charset.Charset
import java.time.Instant

abstract class OkHttpWebViewClient : WebViewClient() {
/*
Expand All @@ -26,6 +27,9 @@ abstract class OkHttpWebViewClient : WebViewClient() {
abstract val model: PageViewModel
abstract val linkHandler: LinkHandler

var lastPageHtmlOfflineDate: Instant? = null
var lastPageHtmlWasRedirect = false

override fun shouldOverrideUrlLoading(view: WebView, url: String): Boolean {
if (model.shouldLoadAsMobileWeb) {
// If the page was loaded as Mobile Web, then pass all link clicks through
Expand Down Expand Up @@ -54,12 +58,13 @@ abstract class OkHttpWebViewClient : WebViewClient() {
}
var response: WebResourceResponse
try {
val shouldLogLatency = request.url.encodedPath?.contains(RestService.PAGE_HTML_ENDPOINT) == true
if (shouldLogLatency) {
val isPageHtmlCall = request.url.encodedPath?.contains(RestService.PAGE_HTML_ENDPOINT) == true
if (isPageHtmlCall) {
WikipediaApp.instance.appSessionEvent.pageFetchStart()
lastPageHtmlOfflineDate = null
}
val rsp = request(request)
if (rsp.networkResponse != null && shouldLogLatency) {
if (rsp.networkResponse != null && isPageHtmlCall) {
WikipediaApp.instance.appSessionEvent.pageFetchEnd()
}
val contentType = rsp.header(HEADER_CONTENT_TYPE).orEmpty()
Expand All @@ -68,6 +73,12 @@ abstract class OkHttpWebViewClient : WebViewClient() {
rsp.close()
return null
} else {
if (isPageHtmlCall) {
lastPageHtmlWasRedirect = rsp.priorResponse?.isRedirect == true
if (OfflineCacheInterceptor.SAVE_HEADER_SAVE == rsp.headers[OfflineCacheInterceptor.SAVE_HEADER]) {
lastPageHtmlOfflineDate = rsp.headers.getInstant("date")
}
}
// noinspection ConstantConditions
WebResourceResponse(rsp.body!!.contentType()!!.type + "/" + rsp.body!!.contentType()!!.subtype,
rsp.body!!.contentType()!!.charset(Charset.defaultCharset())!!.name(),
Expand Down
Loading
Loading