| Index: ui/android/java/src/org/chromium/ui/gfx/DeviceDisplayInfo.java | 
| 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 088c9c2476e7f2781572be7a56e1482965716dd3..7546bfd949b788590dd56ada61def9288446ac58 100644 | 
| --- a/ui/android/java/src/org/chromium/ui/gfx/DeviceDisplayInfo.java | 
| +++ b/ui/android/java/src/org/chromium/ui/gfx/DeviceDisplayInfo.java | 
| @@ -5,6 +5,8 @@ | 
| package org.chromium.ui.gfx; | 
|  | 
| import android.content.Context; | 
| +import android.content.ComponentCallbacks; | 
| +import android.content.res.Configuration; | 
| import android.graphics.PixelFormat; | 
| import android.os.Build; | 
| import android.util.DisplayMetrics; | 
| @@ -115,6 +117,25 @@ public class DeviceDisplayInfo { | 
| return getMetrics().density; | 
| } | 
|  | 
| +  private void registerListener() { | 
| +      mAppContext.registerComponentCallbacks( | 
| +          new ComponentCallbacks() { | 
| +              @Override | 
| +              public void onConfigurationChanged(Configuration configuration) { | 
| +                  updateNativeSharedDisplayInfo(); | 
| +              } | 
| + | 
| +              @Override | 
| +              public void onLowMemory() { | 
| +              } | 
| +      }); | 
| +  } | 
| + | 
| +  private void updateNativeSharedDisplayInfo() { | 
| +      nativeUpdateSharedDeviceDisplayInfo(getDisplayHeight(), getDisplayWidth(), | 
| +          getBitsPerPixel(), getBitsPerComponent(), getDIPScale()); | 
| +  } | 
| + | 
| private Display getDisplay() { | 
| return mWinManager.getDefaultDisplay(); | 
| } | 
| @@ -128,8 +149,19 @@ public class DeviceDisplayInfo { | 
| * @param context A context to use. | 
| * @return DeviceDisplayInfo associated with a given Context. | 
| */ | 
| -  @CalledByNative | 
| public static DeviceDisplayInfo create(Context context) { | 
| return new DeviceDisplayInfo(context); | 
| } | 
| + | 
| +  @CalledByNative | 
| +  private static DeviceDisplayInfo createWithListener(Context context) { | 
| +      DeviceDisplayInfo deviceDisplayInfo = new DeviceDisplayInfo(context); | 
| +      deviceDisplayInfo.registerListener(); | 
| +      return deviceDisplayInfo; | 
| +  } | 
| + | 
| +  private native void nativeUpdateSharedDeviceDisplayInfo(int displayHeight, | 
| +                        int displayWidth, int bitsPerPixel, | 
| +                        int bitsPerComponent, double dipScale); | 
| + | 
| } | 
|  |