merge in lmp-mr1-release history after reset to lmp-mr1-dev
diff --git a/chromium/java/com/android/webview/chromium/WebViewChromium.java b/chromium/java/com/android/webview/chromium/WebViewChromium.java
index fb31b2a..b347103 100644
--- a/chromium/java/com/android/webview/chromium/WebViewChromium.java
+++ b/chromium/java/com/android/webview/chromium/WebViewChromium.java
@@ -32,6 +32,7 @@
 import android.os.Build;
 import android.os.Bundle;
 import android.os.Looper;
+import android.os.Handler;
 import android.os.Message;
 import android.print.PrintDocumentAdapter;
 import android.text.TextUtils;
@@ -69,6 +70,7 @@
 import org.chromium.android_webview.AwSettings;
 import org.chromium.android_webview.AwPrintDocumentAdapter;
 import org.chromium.base.ThreadUtils;
+import org.chromium.content.browser.SmartClipProvider;
 import org.chromium.content_public.browser.LoadUrlParams;
 import org.chromium.net.NetworkChangeNotifier;
 
@@ -92,7 +94,7 @@
  * and a small set of no-op deprecated APIs.
  */
 class WebViewChromium implements WebViewProvider,
-          WebViewProvider.ScrollDelegate, WebViewProvider.ViewDelegate {
+          WebViewProvider.ScrollDelegate, WebViewProvider.ViewDelegate, SmartClipProvider {
 
     private class WebViewChromiumRunQueue {
         public WebViewChromiumRunQueue() {
@@ -317,7 +319,7 @@
         }
 
         AwContentsStatics.setRecordFullDocument(sRecordWholeDocumentEnabledByApi ||
-                mAppTargetSdkVersion < Build.VERSION_CODES.L);
+                mAppTargetSdkVersion < Build.VERSION_CODES.LOLLIPOP);
 
         if (mAppTargetSdkVersion <= Build.VERSION_CODES.KITKAT) {
             // On KK and older versions, JavaScript objects injected via addJavascriptInterface
@@ -2253,4 +2255,19 @@
             return mWebViewPrivate.super_onHoverEvent(event);
         }
     }
+
+    // Implements SmartClipProvider
+    @Override
+    public void extractSmartClipData(int x, int y, int width, int height) {
+        checkThread();
+        mAwContents.extractSmartClipData(x, y, width, height);
+    }
+
+    // Implements SmartClipProvider
+    @Override
+    public void setSmartClipResultHandler(final Handler resultHandler) {
+        checkThread();
+        mAwContents.setSmartClipResultHandler(resultHandler);
+    }
+
 }
diff --git a/chromium/java/com/android/webview/chromium/WebViewChromiumFactoryProvider.java b/chromium/java/com/android/webview/chromium/WebViewChromiumFactoryProvider.java
index af78843..4132a8e 100644
--- a/chromium/java/com/android/webview/chromium/WebViewChromiumFactoryProvider.java
+++ b/chromium/java/com/android/webview/chromium/WebViewChromiumFactoryProvider.java
@@ -252,7 +252,7 @@
         initPlatSupportLibrary();
         AwBrowserProcess.start(mWebViewDelegate.getApplication());
 
-        if (Build.IS_DEBUGGABLE) {
+        if (isBuildDebuggable()) {
             setWebContentsDebuggingEnabled(true);
         }
 
@@ -349,7 +349,7 @@
                     @Override
                     public void setWebContentsDebuggingEnabled(boolean enable) {
                         // Web Contents debugging is always enabled on debug builds.
-                        if (!Build.IS_DEBUGGABLE) {
+                        if (!isBuildDebuggable()) {
                             WebViewChromiumFactoryProvider.this.
                                     setWebContentsDebuggingEnabled(enable);
                         }
diff --git a/chromium/java/com/android/webview/chromium/WebViewDelegateFactory.java b/chromium/java/com/android/webview/chromium/WebViewDelegateFactory.java
index f5d1518..bf6a06f 100644
--- a/chromium/java/com/android/webview/chromium/WebViewDelegateFactory.java
+++ b/chromium/java/com/android/webview/chromium/WebViewDelegateFactory.java
@@ -1,20 +1,15 @@
 package com.android.webview.chromium;
 
-import android.app.ActivityThread;
 import android.app.Application;
 import android.content.Context;
 import android.content.pm.PackageInfo;
 import android.content.res.AssetManager;
 import android.content.res.Resources;
 import android.graphics.Canvas;
-import android.net.http.ErrorStrings;
-import android.os.SystemProperties;
 import android.os.Trace;
 import android.util.Log;
 import android.util.SparseArray;
-import android.view.HardwareCanvas;
 import android.view.View;
-import android.view.ViewRootImpl;
 import android.webkit.WebViewFactory;
 
 import java.lang.reflect.InvocationTargetException;
diff --git a/chromium/package.mk b/chromium/package.mk
index 4f87464..47af19b 100644
--- a/chromium/package.mk
+++ b/chromium/package.mk
@@ -35,6 +35,8 @@
 
 LOCAL_MODULE_TAGS := optional
 
+LOCAL_SDK_VERSION := system_current
+
 LOCAL_STATIC_JAVA_LIBRARIES += android_webview_java_with_new_resources
 
 LOCAL_SRC_FILES := $(call all-java-files-under, java)
diff --git a/chromium/proguard.flags b/chromium/proguard.flags
index 6401a8c..b19519f 100644
--- a/chromium/proguard.flags
+++ b/chromium/proguard.flags
@@ -80,6 +80,12 @@
   *** startFinalizer(java.lang.Class,java.lang.Object);
 }
 
+# Keep support framework support for SmartClip.
+-keep class com.android.webview.chromium.WebViewChromium {
+  public void extractSmartClipData(int,int,int,int);
+  public void setSmartClipResultHandler(android.os.Handler);
+}
+
 # We need to explicitly keep classes and constructors referenced only in
 # layout resources.
 -keep class com.android.org.chromium.ui.ColorPickerAdvanced {