| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 #include "chrome/browser/android/tab_android.h" | 5 #include "chrome/browser/android/tab_android.h" |
| 6 | 6 |
| 7 #include "base/android/jni_android.h" | 7 #include "base/android/jni_android.h" |
| 8 #include "base/android/jni_array.h" | 8 #include "base/android/jni_array.h" |
| 9 #include "base/android/jni_string.h" | 9 #include "base/android/jni_string.h" |
| 10 #include "base/metrics/histogram.h" | 10 #include "base/metrics/histogram.h" |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 61 #include "content/public/browser/android/content_view_core.h" | 61 #include "content/public/browser/android/content_view_core.h" |
| 62 #include "content/public/browser/browser_thread.h" | 62 #include "content/public/browser/browser_thread.h" |
| 63 #include "content/public/browser/interstitial_page.h" | 63 #include "content/public/browser/interstitial_page.h" |
| 64 #include "content/public/browser/navigation_entry.h" | 64 #include "content/public/browser/navigation_entry.h" |
| 65 #include "content/public/browser/notification_service.h" | 65 #include "content/public/browser/notification_service.h" |
| 66 #include "content/public/browser/render_frame_host.h" | 66 #include "content/public/browser/render_frame_host.h" |
| 67 #include "content/public/browser/render_process_host.h" | 67 #include "content/public/browser/render_process_host.h" |
| 68 #include "content/public/browser/render_view_host.h" | 68 #include "content/public/browser/render_view_host.h" |
| 69 #include "content/public/browser/user_metrics.h" | 69 #include "content/public/browser/user_metrics.h" |
| 70 #include "content/public/browser/web_contents.h" | 70 #include "content/public/browser/web_contents.h" |
| 71 #include "content/public/common/result_codes.h" |
| 71 #include "content/public/common/top_controls_state.h" | 72 #include "content/public/common/top_controls_state.h" |
| 72 #include "jni/Tab_jni.h" | 73 #include "jni/Tab_jni.h" |
| 73 #include "net/base/escape.h" | 74 #include "net/base/escape.h" |
| 74 #include "skia/ext/image_operations.h" | 75 #include "skia/ext/image_operations.h" |
| 75 #include "third_party/WebKit/public/platform/WebReferrerPolicy.h" | 76 #include "third_party/WebKit/public/platform/WebReferrerPolicy.h" |
| 76 #include "ui/base/resource/resource_bundle.h" | 77 #include "ui/base/resource/resource_bundle.h" |
| 77 #include "ui/base/window_open_disposition.h" | 78 #include "ui/base/window_open_disposition.h" |
| 78 #include "ui/gfx/android/device_display_info.h" | 79 #include "ui/gfx/android/device_display_info.h" |
| 79 #include "ui/gfx/android/java_bitmap.h" | 80 #include "ui/gfx/android/java_bitmap.h" |
| 80 #include "ui/gfx/favicon_size.h" | 81 #include "ui/gfx/favicon_size.h" |
| (...skipping 706 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 787 } | 788 } |
| 788 | 789 |
| 789 return -1; | 790 return -1; |
| 790 } | 791 } |
| 791 | 792 |
| 792 bool TabAndroid::HasPrerenderedUrl(JNIEnv* env, jobject obj, jstring url) { | 793 bool TabAndroid::HasPrerenderedUrl(JNIEnv* env, jobject obj, jstring url) { |
| 793 GURL gurl(base::android::ConvertJavaStringToUTF8(env, url)); | 794 GURL gurl(base::android::ConvertJavaStringToUTF8(env, url)); |
| 794 return HasPrerenderedUrl(gurl); | 795 return HasPrerenderedUrl(gurl); |
| 795 } | 796 } |
| 796 | 797 |
| 798 void TabAndroid::ShutdownHungRenderer(JNIEnv* env, jobject obj) { |
| 799 DCHECK(web_contents()); |
| 800 content::RenderProcessHost* process = web_contents()->GetRenderProcessHost(); |
| 801 process->Shutdown(content::RESULT_CODE_HUNG, false); |
| 802 } |
| 803 |
| 797 namespace { | 804 namespace { |
| 798 | 805 |
| 799 class ChromeInterceptNavigationDelegate : public InterceptNavigationDelegate { | 806 class ChromeInterceptNavigationDelegate : public InterceptNavigationDelegate { |
| 800 public: | 807 public: |
| 801 ChromeInterceptNavigationDelegate(JNIEnv* env, jobject jdelegate) | 808 ChromeInterceptNavigationDelegate(JNIEnv* env, jobject jdelegate) |
| 802 : InterceptNavigationDelegate(env, jdelegate) {} | 809 : InterceptNavigationDelegate(env, jdelegate) {} |
| 803 | 810 |
| 804 bool ShouldIgnoreNavigation( | 811 bool ShouldIgnoreNavigation( |
| 805 const NavigationParams& navigation_params) override { | 812 const NavigationParams& navigation_params) override { |
| 806 NavigationParams chrome_navigation_params(navigation_params); | 813 NavigationParams chrome_navigation_params(navigation_params); |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 880 // s^{n+1} / s^{n} = 2100 / 2000 | 887 // s^{n+1} / s^{n} = 2100 / 2000 |
| 881 // s = 1.05 | 888 // s = 1.05 |
| 882 // s^b = 60000 | 889 // s^b = 60000 |
| 883 // b = ln(60000) / ln(1.05) ~= 225 | 890 // b = ln(60000) / ln(1.05) ~= 225 |
| 884 UMA_HISTOGRAM_CUSTOM_TIMES("Startup.FirstCommitNavigationTime", | 891 UMA_HISTOGRAM_CUSTOM_TIMES("Startup.FirstCommitNavigationTime", |
| 885 base::Time::Now() - chrome::android::GetMainEntryPointTime(), | 892 base::Time::Now() - chrome::android::GetMainEntryPointTime(), |
| 886 base::TimeDelta::FromMilliseconds(1), | 893 base::TimeDelta::FromMilliseconds(1), |
| 887 base::TimeDelta::FromMinutes(1), | 894 base::TimeDelta::FromMinutes(1), |
| 888 225); | 895 225); |
| 889 } | 896 } |
| OLD | NEW |