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

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java

Issue 2282273002: Remove the obsolete MinidumpDirectoryObserver experiment. (Closed)
Patch Set: Created 4 years, 3 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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.tab; 5 package org.chromium.chrome.browser.tab;
6 6
7 import android.app.Activity; 7 import android.app.Activity;
8 import android.app.Application; 8 import android.app.Application;
9 import android.content.Context; 9 import android.content.Context;
10 import android.content.Intent; 10 import android.content.Intent;
11 import android.content.res.Resources; 11 import android.content.res.Resources;
12 import android.graphics.Bitmap; 12 import android.graphics.Bitmap;
13 import android.graphics.Color; 13 import android.graphics.Color;
14 import android.graphics.Point; 14 import android.graphics.Point;
15 import android.net.Uri; 15 import android.net.Uri;
16 import android.os.Build;
17 import android.os.Bundle; 16 import android.os.Bundle;
18 import android.os.Handler; 17 import android.os.Handler;
19 import android.os.Message; 18 import android.os.Message;
20 import android.provider.Browser; 19 import android.provider.Browser;
21 import android.text.TextUtils; 20 import android.text.TextUtils;
22 import android.util.Log; 21 import android.util.Log;
23 import android.view.ContextThemeWrapper; 22 import android.view.ContextThemeWrapper;
24 import android.view.View; 23 import android.view.View;
25 import android.view.View.OnClickListener; 24 import android.view.View.OnClickListener;
26 import android.view.ViewGroup; 25 import android.view.ViewGroup;
27 import android.view.ViewGroup.LayoutParams; 26 import android.view.ViewGroup.LayoutParams;
28 import android.view.accessibility.AccessibilityEvent; 27 import android.view.accessibility.AccessibilityEvent;
29 import android.widget.FrameLayout; 28 import android.widget.FrameLayout;
30 29
31 import org.chromium.base.ApiCompatibilityUtils; 30 import org.chromium.base.ApiCompatibilityUtils;
32 import org.chromium.base.ApplicationStatus; 31 import org.chromium.base.ApplicationStatus;
33 import org.chromium.base.ContextUtils; 32 import org.chromium.base.ContextUtils;
34 import org.chromium.base.ObserverList; 33 import org.chromium.base.ObserverList;
35 import org.chromium.base.ObserverList.RewindableIterator; 34 import org.chromium.base.ObserverList.RewindableIterator;
36 import org.chromium.base.ThreadUtils; 35 import org.chromium.base.ThreadUtils;
37 import org.chromium.base.TraceEvent; 36 import org.chromium.base.TraceEvent;
38 import org.chromium.base.VisibleForTesting; 37 import org.chromium.base.VisibleForTesting;
39 import org.chromium.base.annotations.CalledByNative; 38 import org.chromium.base.annotations.CalledByNative;
40 import org.chromium.base.metrics.RecordHistogram; 39 import org.chromium.base.metrics.RecordHistogram;
41 import org.chromium.base.metrics.RecordUserAction;
42 import org.chromium.blimp_public.contents.BlimpContents; 40 import org.chromium.blimp_public.contents.BlimpContents;
43 import org.chromium.chrome.R; 41 import org.chromium.chrome.R;
44 import org.chromium.chrome.browser.ChromeActivity; 42 import org.chromium.chrome.browser.ChromeActivity;
45 import org.chromium.chrome.browser.ChromeApplication; 43 import org.chromium.chrome.browser.ChromeApplication;
46 import org.chromium.chrome.browser.ChromeFeatureList; 44 import org.chromium.chrome.browser.ChromeFeatureList;
47 import org.chromium.chrome.browser.ChromeVersionInfo; 45 import org.chromium.chrome.browser.ChromeVersionInfo;
48 import org.chromium.chrome.browser.FrozenNativePage; 46 import org.chromium.chrome.browser.FrozenNativePage;
49 import org.chromium.chrome.browser.IntentHandler; 47 import org.chromium.chrome.browser.IntentHandler;
50 import org.chromium.chrome.browser.IntentHandler.TabOpenType; 48 import org.chromium.chrome.browser.IntentHandler.TabOpenType;
51 import org.chromium.chrome.browser.NativePage; 49 import org.chromium.chrome.browser.NativePage;
52 import org.chromium.chrome.browser.SwipeRefreshHandler; 50 import org.chromium.chrome.browser.SwipeRefreshHandler;
53 import org.chromium.chrome.browser.TabState; 51 import org.chromium.chrome.browser.TabState;
54 import org.chromium.chrome.browser.TabState.WebContentsState; 52 import org.chromium.chrome.browser.TabState.WebContentsState;
55 import org.chromium.chrome.browser.UrlConstants; 53 import org.chromium.chrome.browser.UrlConstants;
56 import org.chromium.chrome.browser.WarmupManager; 54 import org.chromium.chrome.browser.WarmupManager;
57 import org.chromium.chrome.browser.WebContentsFactory; 55 import org.chromium.chrome.browser.WebContentsFactory;
58 import org.chromium.chrome.browser.banners.AppBannerManager; 56 import org.chromium.chrome.browser.banners.AppBannerManager;
59 import org.chromium.chrome.browser.blimp.BlimpClientContextFactory; 57 import org.chromium.chrome.browser.blimp.BlimpClientContextFactory;
60 import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager; 58 import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager;
61 import org.chromium.chrome.browser.contextmenu.ContextMenuPopulator; 59 import org.chromium.chrome.browser.contextmenu.ContextMenuPopulator;
62 import org.chromium.chrome.browser.contextualsearch.ContextualSearchTabHelper; 60 import org.chromium.chrome.browser.contextualsearch.ContextualSearchTabHelper;
63 import org.chromium.chrome.browser.crash.MinidumpDirectoryObserver;
64 import org.chromium.chrome.browser.crash.MinidumpUploadService;
65 import org.chromium.chrome.browser.customtabs.CustomTabActivity; 61 import org.chromium.chrome.browser.customtabs.CustomTabActivity;
66 import org.chromium.chrome.browser.download.ChromeDownloadDelegate; 62 import org.chromium.chrome.browser.download.ChromeDownloadDelegate;
67 import org.chromium.chrome.browser.fullscreen.FullscreenManager; 63 import org.chromium.chrome.browser.fullscreen.FullscreenManager;
68 import org.chromium.chrome.browser.help.HelpAndFeedback; 64 import org.chromium.chrome.browser.help.HelpAndFeedback;
69 import org.chromium.chrome.browser.infobar.InfoBarContainer; 65 import org.chromium.chrome.browser.infobar.InfoBarContainer;
70 import org.chromium.chrome.browser.media.ui.MediaSessionTabHelper; 66 import org.chromium.chrome.browser.media.ui.MediaSessionTabHelper;
71 import org.chromium.chrome.browser.ntp.NativePageAssassin; 67 import org.chromium.chrome.browser.ntp.NativePageAssassin;
72 import org.chromium.chrome.browser.ntp.NativePageFactory; 68 import org.chromium.chrome.browser.ntp.NativePageFactory;
73 import org.chromium.chrome.browser.offlinepages.OfflinePageItem; 69 import org.chromium.chrome.browser.offlinepages.OfflinePageItem;
74 import org.chromium.chrome.browser.omnibox.geo.GeolocationHeader; 70 import org.chromium.chrome.browser.omnibox.geo.GeolocationHeader;
(...skipping 12 matching lines...) Expand all
87 import org.chromium.chrome.browser.tabmodel.TabModel; 83 import org.chromium.chrome.browser.tabmodel.TabModel;
88 import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType; 84 import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType;
89 import org.chromium.chrome.browser.tabmodel.TabModel.TabSelectionType; 85 import org.chromium.chrome.browser.tabmodel.TabModel.TabSelectionType;
90 import org.chromium.chrome.browser.tabmodel.TabModelImpl; 86 import org.chromium.chrome.browser.tabmodel.TabModelImpl;
91 import org.chromium.chrome.browser.tabmodel.TabModelSelector; 87 import org.chromium.chrome.browser.tabmodel.TabModelSelector;
92 import org.chromium.chrome.browser.tabmodel.TabReparentingParams; 88 import org.chromium.chrome.browser.tabmodel.TabReparentingParams;
93 import org.chromium.chrome.browser.util.ColorUtils; 89 import org.chromium.chrome.browser.util.ColorUtils;
94 import org.chromium.components.dom_distiller.core.DomDistillerUrlUtils; 90 import org.chromium.components.dom_distiller.core.DomDistillerUrlUtils;
95 import org.chromium.components.navigation_interception.InterceptNavigationDelega te; 91 import org.chromium.components.navigation_interception.InterceptNavigationDelega te;
96 import org.chromium.components.security_state.ConnectionSecurityLevel; 92 import org.chromium.components.security_state.ConnectionSecurityLevel;
97 import org.chromium.components.variations.VariationsAssociatedData;
98 import org.chromium.content.browser.ActivityContentVideoViewEmbedder; 93 import org.chromium.content.browser.ActivityContentVideoViewEmbedder;
99 import org.chromium.content.browser.ChildProcessLauncher; 94 import org.chromium.content.browser.ChildProcessLauncher;
100 import org.chromium.content.browser.ContentVideoViewEmbedder; 95 import org.chromium.content.browser.ContentVideoViewEmbedder;
101 import org.chromium.content.browser.ContentView; 96 import org.chromium.content.browser.ContentView;
102 import org.chromium.content.browser.ContentViewClient; 97 import org.chromium.content.browser.ContentViewClient;
103 import org.chromium.content.browser.ContentViewCore; 98 import org.chromium.content.browser.ContentViewCore;
104 import org.chromium.content.browser.crypto.CipherFactory; 99 import org.chromium.content.browser.crypto.CipherFactory;
105 import org.chromium.content_public.browser.GestureStateListener; 100 import org.chromium.content_public.browser.GestureStateListener;
106 import org.chromium.content_public.browser.LoadUrlParams; 101 import org.chromium.content_public.browser.LoadUrlParams;
107 import org.chromium.content_public.browser.WebContents; 102 import org.chromium.content_public.browser.WebContents;
(...skipping 2705 matching lines...) Expand 10 before | Expand all | Expand 10 after
2813 } 2808 }
2814 2809
2815 /** 2810 /**
2816 * Performs any subclass-specific tasks when the Tab crashes. 2811 * Performs any subclass-specific tasks when the Tab crashes.
2817 */ 2812 */
2818 void handleTabCrash() { 2813 void handleTabCrash() {
2819 mIsLoading = false; 2814 mIsLoading = false;
2820 mIsBeingRestored = false; 2815 mIsBeingRestored = false;
2821 2816
2822 if (mTabUma != null) mTabUma.onRendererCrashed(); 2817 if (mTabUma != null) mTabUma.onRendererCrashed();
2823
2824 if (!TextUtils.equals("true", VariationsAssociatedData.getVariationParam Value(
2825 MinidumpDirectoryObserver.MINIDUMP_EXPERIMENT_NAME, "Enabled"))) {
2826 try {
2827 // Update the most recent minidump file with the logcat. Doing t his asynchronously
2828 // adds a race condition in the case of multiple simultaneously renderer crashses
2829 // but because the data will be the same for all of them it is i nnocuous. We can
2830 // attempt to do this regardless of whether it was a foreground tab in the event
2831 // that it's a real crash and not just android killing the tab.
2832 Context context = getApplicationContext();
2833 Intent intent = MinidumpUploadService.createFindAndUploadLastCra shIntent(context);
2834 context.startService(intent);
2835 RecordUserAction.record("MobileBreakpadUploadAttempt");
2836 } catch (SecurityException e) {
2837 // For KitKat and below, there was a framework bug which cause u s to not be able to
2838 // find our own crash uploading service. Ignore a SecurityExcept ion here on older
2839 // OS versions since the crash will eventually get uploaded on n ext start.
2840 // crbug/542533
2841 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
2842 throw e;
2843 }
2844 }
2845 }
2846 } 2818 }
2847 2819
2848 /** 2820 /**
2849 * @return Whether showing top controls is enabled or not. 2821 * @return Whether showing top controls is enabled or not.
2850 */ 2822 */
2851 public boolean isShowingTopControlsEnabled() { 2823 public boolean isShowingTopControlsEnabled() {
2852 return mTopControlsVisibilityDelegate.isShowingTopControlsEnabled(); 2824 return mTopControlsVisibilityDelegate.isShowingTopControlsEnabled();
2853 } 2825 }
2854 2826
2855 /** 2827 /**
(...skipping 475 matching lines...) Expand 10 before | Expand all | Expand 10 after
3331 private native void nativeSetInterceptNavigationDelegate(long nativeTabAndro id, 3303 private native void nativeSetInterceptNavigationDelegate(long nativeTabAndro id,
3332 InterceptNavigationDelegate delegate); 3304 InterceptNavigationDelegate delegate);
3333 private native void nativeAttachToTabContentManager(long nativeTabAndroid, 3305 private native void nativeAttachToTabContentManager(long nativeTabAndroid,
3334 TabContentManager tabContentManager); 3306 TabContentManager tabContentManager);
3335 private native void nativeAttachOverlayWebContents( 3307 private native void nativeAttachOverlayWebContents(
3336 long nativeTabAndroid, WebContents webContents, boolean visible); 3308 long nativeTabAndroid, WebContents webContents, boolean visible);
3337 private native void nativeDetachOverlayWebContents( 3309 private native void nativeDetachOverlayWebContents(
3338 long nativeTabAndroid, WebContents webContents); 3310 long nativeTabAndroid, WebContents webContents);
3339 private native boolean nativeHasPrerenderedUrl(long nativeTabAndroid, String url); 3311 private native boolean nativeHasPrerenderedUrl(long nativeTabAndroid, String url);
3340 } 3312 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698