Commit 244727d0 authored by wychen's avatar wychen Committed by Commit bot

Trigger Copyless Paste metadata parsing

BUG=693650

Review-Url: https://codereview.chromium.org/2802863003
Cr-Commit-Position: refs/heads/master@{#463380}
parent b6c7ab52
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser;
import android.webkit.URLUtil;
import org.chromium.base.SysUtils;
import org.chromium.blink.mojom.document_metadata.CopylessPaste;
import org.chromium.blink.mojom.document_metadata.WebPage;
import org.chromium.chrome.browser.historyreport.AppIndexingReporter;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.content_public.browser.RenderFrameHost;
import org.chromium.content_public.browser.WebContents;
import org.chromium.services.service_manager.InterfaceProvider;
/**
* This is the top-level CopylessPaste metadata extraction for AppIndexing.
*/
public class AppIndexingUtil {
public static void extractCopylessPasteMetadata(final Tab tab) {
String url = tab.getUrl();
boolean isHttpOrHttps = URLUtil.isHttpsUrl(url) || URLUtil.isHttpUrl(url);
if (SysUtils.isLowEndDevice() || tab.isIncognito()
|| !ChromeFeatureList.isEnabled(ChromeFeatureList.COPYLESS_PASTE)
|| !isHttpOrHttps) {
return;
}
WebContents webContents = tab.getWebContents();
if (webContents == null) return;
RenderFrameHost mainFrame = webContents.getMainFrame();
if (mainFrame == null) return;
InterfaceProvider interfaces = mainFrame.getRemoteInterfaces();
if (interfaces == null) return;
CopylessPaste copylesspaste = interfaces.getInterface(CopylessPaste.MANAGER);
copylesspaste.getEntities(new CopylessPaste.GetEntitiesResponse() {
@Override
public void call(WebPage webpage) {
if (webpage == null) return;
AppIndexingReporter.getInstance().reportWebPage(webpage);
}
});
}
}
...@@ -132,6 +132,7 @@ public abstract class ChromeFeatureList { ...@@ -132,6 +132,7 @@ public abstract class ChromeFeatureList {
public static final String CONTENT_SUGGESTIONS_SETTINGS = "ContentSuggestionsSettings"; public static final String CONTENT_SUGGESTIONS_SETTINGS = "ContentSuggestionsSettings";
public static final String CONTEXTUAL_SEARCH_SINGLE_ACTIONS = "ContextualSearchSingleActions"; public static final String CONTEXTUAL_SEARCH_SINGLE_ACTIONS = "ContextualSearchSingleActions";
public static final String CONTEXTUAL_SEARCH_URL_ACTIONS = "ContextualSearchUrlActions"; public static final String CONTEXTUAL_SEARCH_URL_ACTIONS = "ContextualSearchUrlActions";
public static final String COPYLESS_PASTE = "CopylessPaste";
public static final String CUSTOM_CONTEXT_MENU = "CustomContextMenu"; public static final String CUSTOM_CONTEXT_MENU = "CustomContextMenu";
public static final String CUSTOM_FEEDBACK_UI = "CustomFeedbackUi"; public static final String CUSTOM_FEEDBACK_UI = "CustomFeedbackUi";
// Enables the Data Reduction Proxy menu item in the main menu rather than under Settings on // Enables the Data Reduction Proxy menu item in the main menu rather than under Settings on
......
...@@ -1247,6 +1247,11 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode ...@@ -1247,6 +1247,11 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode
} }
} }
@Override
public void onPageLoadFinished(final Tab tab) {
AppIndexingUtil.extractCopylessPasteMetadata(tab);
}
@Override @Override
public void onDidFinishNavigation(Tab tab, String url, boolean isInMainFrame, public void onDidFinishNavigation(Tab tab, String url, boolean isInMainFrame,
boolean isErrorPage, boolean hasCommitted, boolean isSameDocument, boolean isErrorPage, boolean hasCommitted, boolean isSameDocument,
......
...@@ -7,6 +7,7 @@ chrome_java_sources = [ ...@@ -7,6 +7,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/ActivityTabTaskDescriptionHelper.java", "java/src/org/chromium/chrome/browser/ActivityTabTaskDescriptionHelper.java",
"java/src/org/chromium/chrome/browser/ActivityTaskDescriptionIconGenerator.java", "java/src/org/chromium/chrome/browser/ActivityTaskDescriptionIconGenerator.java",
"java/src/org/chromium/chrome/browser/AfterStartupTaskUtils.java", "java/src/org/chromium/chrome/browser/AfterStartupTaskUtils.java",
"java/src/org/chromium/chrome/browser/AppIndexingUtil.java",
"java/src/org/chromium/chrome/browser/ApplicationInitialization.java", "java/src/org/chromium/chrome/browser/ApplicationInitialization.java",
"java/src/org/chromium/chrome/browser/ApplicationLifetime.java", "java/src/org/chromium/chrome/browser/ApplicationLifetime.java",
"java/src/org/chromium/chrome/browser/AssistStatusHandler.java", "java/src/org/chromium/chrome/browser/AssistStatusHandler.java",
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
"autofill::mojom::AutofillAgent", "autofill::mojom::AutofillAgent",
"autofill::mojom::PasswordAutofillAgent", "autofill::mojom::PasswordAutofillAgent",
"autofill::mojom::PasswordGenerationAgent", "autofill::mojom::PasswordGenerationAgent",
"blink::mojom::document_metadata::CopylessPaste",
"chrome::mojom::ImageContextMenuRenderer", "chrome::mojom::ImageContextMenuRenderer",
"chrome::mojom::InsecureContentRenderer", "chrome::mojom::InsecureContentRenderer",
"chrome::mojom::ThumbnailCapturer", "chrome::mojom::ThumbnailCapturer",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment