summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoryfriedman@chromium.org <yfriedman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-04 23:39:55 +0000
committeryfriedman@chromium.org <yfriedman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-04 23:39:55 +0000
commitaba67044917c0986aadb561aad2b2a085edc2264 (patch)
treeef356ea0ad0a682c267833a3350cdd082fdf4c0e
parent380ff0d6e39e7df320bcc7dbda70021ea35e7c3c (diff)
downloadchromium_src-aba67044917c0986aadb561aad2b2a085edc2264.zip
chromium_src-aba67044917c0986aadb561aad2b2a085edc2264.tar.gz
chromium_src-aba67044917c0986aadb561aad2b2a085edc2264.tar.bz2
[Android] Remove unnecesary binder calls.
Rather than going through the WindowManager and Display to get DisplayMetrics, use the instance hanging off the context. This saves several extra IPCs and reduces time in these functions during startup by ~20ms. NOTRY=true Review URL: https://chromiumcodereview.appspot.com/16093031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@204079 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--ui/android/java/src/org/chromium/ui/gfx/DeviceDisplayInfo.java23
-rw-r--r--ui/gfx/android/device_display_info.cc7
-rw-r--r--ui/gfx/android/device_display_info.h3
3 files changed, 6 insertions, 27 deletions
diff --git a/ui/android/java/src/org/chromium/ui/gfx/DeviceDisplayInfo.java b/ui/android/java/src/org/chromium/ui/gfx/DeviceDisplayInfo.java
index b133931..088c9c2 100644
--- a/ui/android/java/src/org/chromium/ui/gfx/DeviceDisplayInfo.java
+++ b/ui/android/java/src/org/chromium/ui/gfx/DeviceDisplayInfo.java
@@ -7,7 +7,6 @@ package org.chromium.ui.gfx;
import android.content.Context;
import android.graphics.PixelFormat;
import android.os.Build;
-import android.telephony.TelephonyManager;
import android.util.DisplayMetrics;
import android.view.Display;
import android.view.WindowManager;
@@ -25,11 +24,13 @@ import org.chromium.base.JNINamespace;
@JNINamespace("gfx")
public class DeviceDisplayInfo {
- private WindowManager mWinManager;
+
+ private final Context mAppContext;
+ private final WindowManager mWinManager;
private DeviceDisplayInfo(Context context) {
- Context appContext = context.getApplicationContext();
- mWinManager = (WindowManager) appContext.getSystemService(Context.WINDOW_SERVICE);
+ mAppContext = context.getApplicationContext();
+ mWinManager = (WindowManager) mAppContext.getSystemService(Context.WINDOW_SERVICE);
}
/**
@@ -114,24 +115,12 @@ public class DeviceDisplayInfo {
return getMetrics().density;
}
- /**
- * @return Display refresh rate in frames per second.
- */
- @CalledByNative
- public double getRefreshRate() {
- double result = getDisplay().getRefreshRate();
- // Sanity check.
- return (result >= 61 || result < 30) ? 0 : result;
- }
-
private Display getDisplay() {
return mWinManager.getDefaultDisplay();
}
private DisplayMetrics getMetrics() {
- DisplayMetrics metrics = new DisplayMetrics();
- getDisplay().getMetrics(metrics);
- return metrics;
+ return mAppContext.getResources().getDisplayMetrics();
}
/**
diff --git a/ui/gfx/android/device_display_info.cc b/ui/gfx/android/device_display_info.cc
index b6866a9..16fd2ac 100644
--- a/ui/gfx/android/device_display_info.cc
+++ b/ui/gfx/android/device_display_info.cc
@@ -58,13 +58,6 @@ double DeviceDisplayInfo::GetDIPScale() {
return static_cast<double>(result);
}
-double DeviceDisplayInfo::GetRefreshRate() {
- JNIEnv* env = AttachCurrentThread();
- jdouble result =
- Java_DeviceDisplayInfo_getRefreshRate(env, j_device_info_.obj());
- return static_cast<double>(result);
-}
-
// static
bool DeviceDisplayInfo::RegisterDeviceDisplayInfo(JNIEnv* env) {
return RegisterNativesImpl(env);
diff --git a/ui/gfx/android/device_display_info.h b/ui/gfx/android/device_display_info.h
index f24b643..af7bb62 100644
--- a/ui/gfx/android/device_display_info.h
+++ b/ui/gfx/android/device_display_info.h
@@ -37,9 +37,6 @@ class UI_EXPORT DeviceDisplayInfo {
// (1.0 is 160dpi, 0.75 is 120dpi, 2.0 is 320dpi).
double GetDIPScale();
- // Returns display refresh rate in number of frames per second.
- double GetRefreshRate();
-
// Registers methods with JNI and returns true if succeeded.
static bool RegisterDeviceDisplayInfo(JNIEnv* env);