135 lines
8.2 KiB
Diff
135 lines
8.2 KiB
Diff
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
|
Date: Mon, 13 Jul 2020 00:37:06 +0200
|
|
Subject: Add menu item to view source
|
|
|
|
---
|
|
chrome/android/java/res/menu/custom_tabs_menu.xml | 3 +++
|
|
chrome/android/java/res/menu/main_menu.xml | 2 ++
|
|
chrome/android/java/res/menu/main_menu_regroup.xml | 3 +++
|
|
.../chrome/browser/ChromeTabbedActivity.java | 2 ++
|
|
.../chrome/browser/app/ChromeActivity.java | 2 ++
|
|
.../app/appmenu/AppMenuPropertiesDelegateImpl.java | 14 ++++++++++++++
|
|
.../CustomTabAppMenuPropertiesDelegate.java | 1 +
|
|
.../ui/android/strings/android_chrome_strings.grd | 3 +++
|
|
8 files changed, 30 insertions(+)
|
|
|
|
diff --git a/chrome/android/java/res/menu/custom_tabs_menu.xml b/chrome/android/java/res/menu/custom_tabs_menu.xml
|
|
--- a/chrome/android/java/res/menu/custom_tabs_menu.xml
|
|
+++ b/chrome/android/java/res/menu/custom_tabs_menu.xml
|
|
@@ -46,6 +46,9 @@
|
|
<item android:id="@+id/add_to_homescreen_id"
|
|
android:title="@string/menu_add_to_homescreen"
|
|
android:orderInCategory="2" />
|
|
+ <item android:id="@+id/view_source_id"
|
|
+ android:title="@string/view_source"
|
|
+ android:orderInCategory="2" />
|
|
<item android:id="@+id/open_webapk_id"
|
|
android:title="@string/menu_open_webapk"
|
|
android:orderInCategory="2" />
|
|
diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml
|
|
--- a/chrome/android/java/res/menu/main_menu.xml
|
|
+++ b/chrome/android/java/res/menu/main_menu.xml
|
|
@@ -91,6 +91,8 @@
|
|
<item android:id="@+id/add_to_homescreen_id"
|
|
android:title="@string/menu_add_to_homescreen"
|
|
android:icon="@drawable/ic_add_to_home_screen" />
|
|
+ <item android:id="@+id/view_source_id"
|
|
+ android:title="@string/view_source" />
|
|
<item android:id="@+id/open_webapk_id"
|
|
android:title="@string/menu_open_webapk"
|
|
android:icon="@drawable/ic_add_to_home_screen" />
|
|
diff --git a/chrome/android/java/res/menu/main_menu_regroup.xml b/chrome/android/java/res/menu/main_menu_regroup.xml
|
|
--- a/chrome/android/java/res/menu/main_menu_regroup.xml
|
|
+++ b/chrome/android/java/res/menu/main_menu_regroup.xml
|
|
@@ -142,6 +142,9 @@
|
|
<item android:id="@+id/add_to_homescreen_id"
|
|
android:title="@string/menu_add_to_homescreen"
|
|
android:icon="@drawable/ic_add_to_home_screen" />
|
|
+ <item android:id="@+id/view_source_id"
|
|
+ android:title="@string/view_source"
|
|
+ android:icon="@drawable/ic_drive_document_24dp" />
|
|
<item android:id="@+id/open_webapk_id"
|
|
android:title="@string/menu_open_webapk"
|
|
android:icon="@drawable/ic_add_to_home_screen" />
|
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
|
@@ -1811,6 +1811,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
|
NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_DOWNLOADS_MANAGER);
|
|
}
|
|
RecordUserAction.record("MobileMenuDownloadManager");
|
|
+ } else if (id == R.id.view_source_id) {
|
|
+ currentTab.getWebContents().getNavigationController().loadUrl(new LoadUrlParams("view-source:"+currentTab.getUrlString()));
|
|
} else if (id == R.id.open_recently_closed_tab) {
|
|
TabModel currentModel = mTabModelSelectorImpl.getCurrentModel();
|
|
if (!currentModel.isIncognito()) currentModel.openMostRecentlyClosedTab();
|
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
|
@@ -2054,6 +2054,8 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
|
} catch (ActivityNotFoundException e) {
|
|
Toast.makeText(context, R.string.open_webapk_failed, Toast.LENGTH_SHORT).show();
|
|
}
|
|
+ } else if (id == R.id.view_source_id) {
|
|
+ currentTab.getWebContents().getNavigationController().loadUrl(new LoadUrlParams("view-source:"+currentTab.getUrlString()));
|
|
} else if (id == R.id.request_desktop_site_id || id == R.id.request_desktop_site_check_id) {
|
|
final boolean reloadOnChange = !currentTab.isNativePage();
|
|
final boolean usingDesktopUserAgent =
|
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
|
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
|
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
|
|
@@ -503,6 +503,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
|
}
|
|
|
|
updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */);
|
|
+ updateViewSourceMenuItem(menu, currentTab);
|
|
|
|
// Only display reader mode settings menu option if the current page is in reader mode.
|
|
menu.findItem(R.id.reader_mode_prefs_id).setVisible(shouldShowReaderModePrefs(currentTab));
|
|
@@ -920,6 +921,19 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
|
}
|
|
}
|
|
|
|
+ /**
|
|
+ * Updates the view source menu item's state.
|
|
+ *
|
|
+ * @param menu {@link Menu} for view source.
|
|
+ * @param currentTab Current tab being displayed.
|
|
+ */
|
|
+ protected void updateViewSourceMenuItem(
|
|
+ Menu menu, Tab currentTab) {
|
|
+ MenuItem viewSourceMenuItem = menu.findItem(R.id.view_source_id);
|
|
+ String url = currentTab.getUrlString();
|
|
+ viewSourceMenuItem.setVisible(!url.isEmpty() && !url.startsWith("view-source:"));
|
|
+ }
|
|
+
|
|
/**
|
|
* Updates the request desktop site item's state.
|
|
*
|
|
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
|
|
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
|
|
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
|
|
@@ -233,6 +233,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
|
|
updateRequestDesktopSiteMenuItem(menu, currentTab, requestDesktopSiteVisible);
|
|
MenuItem homescreenItem = menu.findItem(R.id.add_to_homescreen_id);
|
|
MenuItem openWebApkItem = menu.findItem(R.id.open_webapk_id);
|
|
+ updateViewSourceMenuItem(menu, currentTab);
|
|
prepareAddToHomescreenMenuItem(
|
|
homescreenItem, null, openWebApkItem, menu, currentTab, addToHomeScreenVisible);
|
|
}
|
|
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
|
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
|
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
|
@@ -329,6 +329,9 @@ CHAR-LIMIT guidelines:
|
|
<message name="IDS_SERVICES_CATEGORY_TITLE" desc="Title for the group of preferences that control non-personalized Google services. This group contains preferences for data that is not tied to user's Google Account.">
|
|
Other Google services
|
|
</message>
|
|
+ <message name="IDS_VIEW_SOURCE" desc="Title for the menu command to view the source of the current page. [CHAR-LIMIT=40]">
|
|
+ View source
|
|
+ </message>
|
|
<message name="IDS_PREFS_GOOGLE_SERVICES" desc="Title for the group of preferences that control non-personalized Google services. This group contains preferences for data that is not tied to user's Google Account. [CHAR-LIMIT=40]">
|
|
Google services
|
|
</message>
|
|
--
|
|
2.17.1
|
|
|