OLD | NEW |
---|---|
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 package org.chromium.chrome.browser; | 5 package org.chromium.chrome.browser; |
6 | 6 |
7 import android.annotation.SuppressLint; | 7 import android.annotation.SuppressLint; |
8 import android.annotation.TargetApi; | 8 import android.annotation.TargetApi; |
9 import android.app.Activity; | 9 import android.app.Activity; |
10 import android.app.SearchManager; | 10 import android.app.SearchManager; |
11 import android.app.assist.AssistContent; | 11 import android.app.assist.AssistContent; |
12 import android.content.ActivityNotFoundException; | |
12 import android.content.Context; | 13 import android.content.Context; |
13 import android.content.Intent; | 14 import android.content.Intent; |
14 import android.content.res.Configuration; | 15 import android.content.res.Configuration; |
15 import android.graphics.Bitmap; | 16 import android.graphics.Bitmap; |
16 import android.graphics.Color; | 17 import android.graphics.Color; |
17 import android.graphics.Rect; | 18 import android.graphics.Rect; |
18 import android.graphics.drawable.ColorDrawable; | 19 import android.graphics.drawable.ColorDrawable; |
19 import android.graphics.drawable.Drawable; | 20 import android.graphics.drawable.Drawable; |
20 import android.net.Uri; | 21 import android.net.Uri; |
21 import android.os.Build; | 22 import android.os.Build; |
(...skipping 15 matching lines...) Expand all Loading... | |
37 import android.view.accessibility.AccessibilityManager; | 38 import android.view.accessibility.AccessibilityManager; |
38 import android.view.accessibility.AccessibilityManager.AccessibilityStateChangeL istener; | 39 import android.view.accessibility.AccessibilityManager.AccessibilityStateChangeL istener; |
39 import android.view.accessibility.AccessibilityManager.TouchExplorationStateChan geListener; | 40 import android.view.accessibility.AccessibilityManager.TouchExplorationStateChan geListener; |
40 | 41 |
41 import org.chromium.base.ActivityState; | 42 import org.chromium.base.ActivityState; |
42 import org.chromium.base.ApiCompatibilityUtils; | 43 import org.chromium.base.ApiCompatibilityUtils; |
43 import org.chromium.base.ApplicationStatus; | 44 import org.chromium.base.ApplicationStatus; |
44 import org.chromium.base.BaseSwitches; | 45 import org.chromium.base.BaseSwitches; |
45 import org.chromium.base.Callback; | 46 import org.chromium.base.Callback; |
46 import org.chromium.base.CommandLine; | 47 import org.chromium.base.CommandLine; |
48 import org.chromium.base.ContextUtils; | |
47 import org.chromium.base.SysUtils; | 49 import org.chromium.base.SysUtils; |
48 import org.chromium.base.TraceEvent; | 50 import org.chromium.base.TraceEvent; |
49 import org.chromium.base.VisibleForTesting; | 51 import org.chromium.base.VisibleForTesting; |
50 import org.chromium.base.metrics.RecordHistogram; | 52 import org.chromium.base.metrics.RecordHistogram; |
51 import org.chromium.base.metrics.RecordUserAction; | 53 import org.chromium.base.metrics.RecordUserAction; |
52 import org.chromium.chrome.R; | 54 import org.chromium.chrome.R; |
53 import org.chromium.chrome.browser.IntentHandler.IntentHandlerDelegate; | 55 import org.chromium.chrome.browser.IntentHandler.IntentHandlerDelegate; |
54 import org.chromium.chrome.browser.IntentHandler.TabOpenType; | 56 import org.chromium.chrome.browser.IntentHandler.TabOpenType; |
55 import org.chromium.chrome.browser.appmenu.AppMenu; | 57 import org.chromium.chrome.browser.appmenu.AppMenu; |
56 import org.chromium.chrome.browser.appmenu.AppMenuHandler; | 58 import org.chromium.chrome.browser.appmenu.AppMenuHandler; |
(...skipping 23 matching lines...) Expand all Loading... | |
80 import org.chromium.chrome.browser.gsa.GSAAccountChangeListener; | 82 import org.chromium.chrome.browser.gsa.GSAAccountChangeListener; |
81 import org.chromium.chrome.browser.gsa.GSAState; | 83 import org.chromium.chrome.browser.gsa.GSAState; |
82 import org.chromium.chrome.browser.help.HelpAndFeedback; | 84 import org.chromium.chrome.browser.help.HelpAndFeedback; |
83 import org.chromium.chrome.browser.history.HistoryManagerUtils; | 85 import org.chromium.chrome.browser.history.HistoryManagerUtils; |
84 import org.chromium.chrome.browser.infobar.InfoBarContainer; | 86 import org.chromium.chrome.browser.infobar.InfoBarContainer; |
85 import org.chromium.chrome.browser.init.AsyncInitializationActivity; | 87 import org.chromium.chrome.browser.init.AsyncInitializationActivity; |
86 import org.chromium.chrome.browser.metrics.LaunchMetrics; | 88 import org.chromium.chrome.browser.metrics.LaunchMetrics; |
87 import org.chromium.chrome.browser.metrics.StartupMetrics; | 89 import org.chromium.chrome.browser.metrics.StartupMetrics; |
88 import org.chromium.chrome.browser.metrics.UmaSessionStats; | 90 import org.chromium.chrome.browser.metrics.UmaSessionStats; |
89 import org.chromium.chrome.browser.metrics.UmaUtils; | 91 import org.chromium.chrome.browser.metrics.UmaUtils; |
92 import org.chromium.chrome.browser.metrics.WebApkUma; | |
90 import org.chromium.chrome.browser.multiwindow.MultiWindowUtils; | 93 import org.chromium.chrome.browser.multiwindow.MultiWindowUtils; |
91 import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings; | 94 import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings; |
92 import org.chromium.chrome.browser.nfc.BeamController; | 95 import org.chromium.chrome.browser.nfc.BeamController; |
93 import org.chromium.chrome.browser.nfc.BeamProvider; | 96 import org.chromium.chrome.browser.nfc.BeamProvider; |
94 import org.chromium.chrome.browser.ntp.NewTabPage; | 97 import org.chromium.chrome.browser.ntp.NewTabPage; |
95 import org.chromium.chrome.browser.ntp.NewTabPageUma; | 98 import org.chromium.chrome.browser.ntp.NewTabPageUma; |
96 import org.chromium.chrome.browser.offlinepages.OfflinePageBridge; | 99 import org.chromium.chrome.browser.offlinepages.OfflinePageBridge; |
97 import org.chromium.chrome.browser.offlinepages.OfflinePageUtils; | 100 import org.chromium.chrome.browser.offlinepages.OfflinePageUtils; |
98 import org.chromium.chrome.browser.omaha.UpdateMenuItemHelper; | 101 import org.chromium.chrome.browser.omaha.UpdateMenuItemHelper; |
99 import org.chromium.chrome.browser.pageinfo.WebsiteSettingsPopup; | 102 import org.chromium.chrome.browser.pageinfo.WebsiteSettingsPopup; |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
142 import org.chromium.content_public.browser.readback_types.ReadbackResponse; | 145 import org.chromium.content_public.browser.readback_types.ReadbackResponse; |
143 import org.chromium.policy.CombinedPolicyProvider; | 146 import org.chromium.policy.CombinedPolicyProvider; |
144 import org.chromium.policy.CombinedPolicyProvider.PolicyChangeListener; | 147 import org.chromium.policy.CombinedPolicyProvider.PolicyChangeListener; |
145 import org.chromium.printing.PrintManagerDelegateImpl; | 148 import org.chromium.printing.PrintManagerDelegateImpl; |
146 import org.chromium.printing.PrintingController; | 149 import org.chromium.printing.PrintingController; |
147 import org.chromium.printing.PrintingControllerImpl; | 150 import org.chromium.printing.PrintingControllerImpl; |
148 import org.chromium.ui.base.ActivityWindowAndroid; | 151 import org.chromium.ui.base.ActivityWindowAndroid; |
149 import org.chromium.ui.base.DeviceFormFactor; | 152 import org.chromium.ui.base.DeviceFormFactor; |
150 import org.chromium.ui.base.PageTransition; | 153 import org.chromium.ui.base.PageTransition; |
151 import org.chromium.ui.base.WindowAndroid; | 154 import org.chromium.ui.base.WindowAndroid; |
155 import org.chromium.ui.widget.Toast; | |
156 import org.chromium.webapk.lib.client.WebApkValidator; | |
152 | 157 |
153 import java.util.ArrayList; | 158 import java.util.ArrayList; |
154 import java.util.HashSet; | 159 import java.util.HashSet; |
155 import java.util.List; | 160 import java.util.List; |
156 import java.util.Set; | 161 import java.util.Set; |
157 import java.util.concurrent.TimeUnit; | 162 import java.util.concurrent.TimeUnit; |
158 | 163 |
159 import javax.annotation.Nullable; | 164 import javax.annotation.Nullable; |
160 | 165 |
161 /** | 166 /** |
(...skipping 1607 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1769 && PrefServiceBridge.getInstance().isPrintingEnabled()) { | 1774 && PrefServiceBridge.getInstance().isPrintingEnabled()) { |
1770 printingController.startPrint(new TabPrinter(currentTab), | 1775 printingController.startPrint(new TabPrinter(currentTab), |
1771 new PrintManagerDelegateImpl(this)); | 1776 new PrintManagerDelegateImpl(this)); |
1772 RecordUserAction.record("MobileMenuPrint"); | 1777 RecordUserAction.record("MobileMenuPrint"); |
1773 } | 1778 } |
1774 } else if (id == R.id.add_to_homescreen_id) { | 1779 } else if (id == R.id.add_to_homescreen_id) { |
1775 AddToHomescreenManager addToHomescreenManager = | 1780 AddToHomescreenManager addToHomescreenManager = |
1776 new AddToHomescreenManager(this, currentTab); | 1781 new AddToHomescreenManager(this, currentTab); |
1777 addToHomescreenManager.start(); | 1782 addToHomescreenManager.start(); |
1778 RecordUserAction.record("MobileMenuAddToHomescreen"); | 1783 RecordUserAction.record("MobileMenuAddToHomescreen"); |
1784 } else if (id == R.id.open_webapk_id) { | |
1785 Context context = ContextUtils.getApplicationContext(); | |
nyquist
2017/02/28 07:04:19
Is there a reason why you don't use |this| as the
gonzalon
2017/02/28 16:12:23
Not sure why I used the application context, we ca
| |
1786 String packageName = WebApkValidator.queryWebApkPackage(context, cur rentTab.getUrl()); | |
nyquist
2017/02/28 07:04:19
This ended up being a very long section of the men
gonzalon
2017/02/28 16:12:23
Sounds great, it did get quite big. Only thing I w
nyquist
2017/02/28 17:57:17
Yeah, that's totally fine.
| |
1787 Intent launchIntent = | |
1788 context.getPackageManager().getLaunchIntentForPackage(packag eName); | |
1789 boolean launchFailed = false; | |
1790 if (launchIntent != null) { | |
1791 try { | |
1792 context.startActivity(launchIntent); | |
1793 RecordUserAction.record("MobileMenuOpenWebApk"); | |
1794 WebApkUma.recordWebApkOpenAttempt(WebApkUma.WEBAPK_OPEN_LAUN CH_SUCCESS); | |
1795 } catch (ActivityNotFoundException e) { | |
1796 WebApkUma.recordWebApkOpenAttempt(WebApkUma.WEBAPK_OPEN_ACTI VITY_NOT_FOUND); | |
1797 launchFailed = true; | |
1798 } | |
1799 } else { | |
1800 WebApkUma.recordWebApkOpenAttempt(WebApkUma.WEBAPK_OPEN_NO_LAUNC H_INTENT); | |
1801 launchFailed = true; | |
1802 } | |
1803 if (launchFailed) { | |
1804 Toast.makeText(context, R.string.open_webapk_failed, Toast.LENGT H_SHORT).show(); | |
1805 } | |
1779 } else if (id == R.id.request_desktop_site_id) { | 1806 } else if (id == R.id.request_desktop_site_id) { |
1780 final boolean reloadOnChange = !currentTab.isNativePage(); | 1807 final boolean reloadOnChange = !currentTab.isNativePage(); |
1781 final boolean usingDesktopUserAgent = currentTab.getUseDesktopUserAg ent(); | 1808 final boolean usingDesktopUserAgent = currentTab.getUseDesktopUserAg ent(); |
1782 currentTab.setUseDesktopUserAgent(!usingDesktopUserAgent, reloadOnCh ange); | 1809 currentTab.setUseDesktopUserAgent(!usingDesktopUserAgent, reloadOnCh ange); |
1783 RecordUserAction.record("MobileMenuRequestDesktopSite"); | 1810 RecordUserAction.record("MobileMenuRequestDesktopSite"); |
1784 } else if (id == R.id.reader_mode_prefs_id) { | 1811 } else if (id == R.id.reader_mode_prefs_id) { |
1785 if (currentTab.getWebContents() != null) { | 1812 if (currentTab.getWebContents() != null) { |
1786 RecordUserAction.record("DomDistiller_DistilledPagePrefsOpened") ; | 1813 RecordUserAction.record("DomDistiller_DistilledPagePrefsOpened") ; |
1787 AlertDialog.Builder builder = | 1814 AlertDialog.Builder builder = |
1788 new AlertDialog.Builder(this, R.style.AlertDialogTheme); | 1815 new AlertDialog.Builder(this, R.style.AlertDialogTheme); |
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2020 "Android.MultiWindowMode.IsTabletScreenWidthBelow600", | 2047 "Android.MultiWindowMode.IsTabletScreenWidthBelow600", |
2021 mScreenWidthDp < DeviceFormFactor.MINIMUM_TABLET_WIDTH_DP); | 2048 mScreenWidthDp < DeviceFormFactor.MINIMUM_TABLET_WIDTH_DP); |
2022 | 2049 |
2023 if (mScreenWidthDp < DeviceFormFactor.MINIMUM_TABLET_WIDTH_DP) { | 2050 if (mScreenWidthDp < DeviceFormFactor.MINIMUM_TABLET_WIDTH_DP) { |
2024 RecordHistogram.recordLinearCountHistogram( | 2051 RecordHistogram.recordLinearCountHistogram( |
2025 "Android.MultiWindowMode.TabletScreenWidth", mScreenWidthDp, 1, | 2052 "Android.MultiWindowMode.TabletScreenWidth", mScreenWidthDp, 1, |
2026 DeviceFormFactor.MINIMUM_TABLET_WIDTH_DP, 50); | 2053 DeviceFormFactor.MINIMUM_TABLET_WIDTH_DP, 50); |
2027 } | 2054 } |
2028 } | 2055 } |
2029 } | 2056 } |
OLD | NEW |