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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java

Issue 2622313002: Add app indexing reporter public class. (Closed)
Patch Set: Add app indexing reporter public class. Created 3 years, 11 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: chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
index 6ea48095ad3cec016f3533bb3fdc9f9ae29726c9..d4addccd93ecf67f342aa7511f90a83d09c82cc5 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
@@ -70,6 +70,7 @@ import org.chromium.chrome.browser.firstrun.FirstRunSignInProcessor;
import org.chromium.chrome.browser.firstrun.FirstRunStatus;
import org.chromium.chrome.browser.fullscreen.ChromeFullscreenManager;
import org.chromium.chrome.browser.fullscreen.ComposedBrowserControlsVisibilityDelegate;
+import org.chromium.chrome.browser.historyreport.AppIndexingReporter;
import org.chromium.chrome.browser.incognito.IncognitoNotificationManager;
import org.chromium.chrome.browser.infobar.DataReductionPromoInfoBar;
import org.chromium.chrome.browser.locale.LocaleManager;
@@ -115,6 +116,7 @@ import org.chromium.content.browser.ContentVideoView;
import org.chromium.content.browser.ContentViewCore;
import org.chromium.content.browser.crypto.CipherFactory;
import org.chromium.content.common.ContentSwitches;
+import org.chromium.content_public.browser.JavaScriptCallback;
import org.chromium.content_public.browser.LoadUrlParams;
import org.chromium.content_public.common.Referrer;
import org.chromium.ui.base.DeviceFormFactor;
@@ -122,6 +124,9 @@ import org.chromium.ui.base.PageTransition;
import org.chromium.ui.base.WindowAndroid;
import org.chromium.ui.widget.Toast;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.ref.WeakReference;
@@ -194,6 +199,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode
/** The task id of the activity that tabs were merged into. */
private static int sMergedInstanceTaskId;
+ private static String sParseStructuredDataScript;
+
private final ActivityStopMetrics mActivityStopMetrics = new ActivityStopMetrics();
private FindToolbarManager mFindToolbarManager;
@@ -1033,6 +1040,51 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode
}
@Override
+ public void onPageLoadFinished(final Tab tab) {
+ if (tab.isIncognito()) {
+ Log.v(TAG, "Not indexing incognito page.");
+ return;
+ }
+ // Read sParseStructuredDataScript from resources if not already initialized.
+ if (sParseStructuredDataScript == null) {
+ BufferedReader reader = null;
+ try {
+ reader = new BufferedReader(
+ new InputStreamReader(getResources().openRawResource(R.raw.parse)));
+ StringBuilder fullText = new StringBuilder();
+ String line;
+ while ((line = reader.readLine()) != null) {
+ fullText.append(line);
+ }
+ sParseStructuredDataScript = fullText.toString();
+ } catch (IOException e) {
+ Log.e(TAG, "Failed to load asset." + e);
+ } finally {
+ if (reader != null) {
+ try {
+ reader.close();
+ } catch (IOException e) {
+ Log.e(TAG, "Failed to close asset." + e);
+ }
+ }
+ }
+ }
+ tab.getWebContents().evaluateJavaScriptForTests(
+ sParseStructuredDataScript,
+ new JavaScriptCallback() {
+ @Override
+ public void handleJavaScriptResult(String jsonResult) {
+ if ("null".equals(jsonResult)) {
+ return;
+ }
+ AppIndexingReporter.getInstance().reportEntityJsonLd(
+ tab.getUrl(), jsonResult);
+ }
+ });
+ }
+
+
+ @Override
public void onDidNavigateMainFrame(Tab tab, String url, String baseUrl,
boolean isNavigationToDifferentPage, boolean isFragmentNavigation,
int statusCode) {

Powered by Google App Engine
This is Rietveld 408576698