Index: chrome/android/java/src/org/chromium/chrome/browser/WebsiteSettingsPopup.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/WebsiteSettingsPopup.java b/chrome/android/java/src/org/chromium/chrome/browser/WebsiteSettingsPopup.java |
index 51b32a8063f2e74aecc403b96b645764bd06932e..603678c37897e8339304dc304275f4beed324899 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/WebsiteSettingsPopup.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/WebsiteSettingsPopup.java |
@@ -16,11 +16,13 @@ import android.view.View; |
import android.view.View.OnClickListener; |
import android.view.ViewGroup; |
import android.view.Window; |
+import android.widget.Button; |
import android.widget.ImageView; |
import android.widget.LinearLayout; |
import android.widget.ScrollView; |
import android.widget.TextView; |
+import org.chromium.base.ApiCompatibilityUtils; |
import org.chromium.base.CalledByNative; |
import org.chromium.chrome.R; |
import org.chromium.content.browser.WebContentsObserverAndroid; |
@@ -40,8 +42,10 @@ public class WebsiteSettingsPopup implements OnClickListener { |
private final LinearLayout mContainer; |
private final WebContents mWebContents; |
private final int mPaddingWide, mPaddingThin; |
+ private final long mNativeWebsiteSettingsPopup; |
private TextView mCertificateViewer, mMoreInfoLink; |
private ViewGroup mCertificateLayout, mDescriptionLayout; |
+ private Button mResetCertDecisionsButton; |
private String mLinkUrl; |
private WebsiteSettingsPopup(Context context, WebContents webContents) { |
@@ -62,7 +66,7 @@ public class WebsiteSettingsPopup implements OnClickListener { |
mDialog.requestWindowFeature(Window.FEATURE_NO_TITLE); |
mDialog.setCanceledOnTouchOutside(true); |
// This needs to come after other member initialization. |
- final long nativeWebsiteSettingsPopup = nativeInit(this, webContents); |
+ mNativeWebsiteSettingsPopup = nativeInit(this, webContents); |
final WebContentsObserverAndroid webContentsObserver = |
new WebContentsObserverAndroid(mWebContents) { |
@Override |
@@ -75,9 +79,9 @@ public class WebsiteSettingsPopup implements OnClickListener { |
mDialog.setOnDismissListener(new DialogInterface.OnDismissListener() { |
@Override |
public void onDismiss(DialogInterface dialog) { |
- assert nativeWebsiteSettingsPopup != 0; |
+ assert mNativeWebsiteSettingsPopup != 0; |
webContentsObserver.detachFromWebContents(); |
- nativeDestroy(nativeWebsiteSettingsPopup); |
+ nativeDestroy(mNativeWebsiteSettingsPopup); |
} |
}); |
} |
@@ -140,6 +144,29 @@ public class WebsiteSettingsPopup implements OnClickListener { |
} |
@CalledByNative |
+ private void addResetCertDecisionsButton(String label) { |
+ assert mNativeWebsiteSettingsPopup != 0; |
+ assert mResetCertDecisionsButton == null; |
+ |
+ mResetCertDecisionsButton = new Button(mContext); |
+ mResetCertDecisionsButton.setText(label); |
+ ApiCompatibilityUtils.setBackgroundForView(mResetCertDecisionsButton, |
+ mContext.getResources().getDrawable( |
+ R.drawable.website_settings_reset_cert_decisions)); |
+ mResetCertDecisionsButton.setTextColor( |
+ mContext.getResources().getColor( |
+ R.color.website_settings_popup_reset_cert_decisions_button)); |
+ mResetCertDecisionsButton.setTextSize(DESCRIPTION_TEXT_SIZE_SP); |
+ mResetCertDecisionsButton.setOnClickListener(this); |
+ |
+ LinearLayout container = new LinearLayout(mContext); |
+ container.setOrientation(LinearLayout.VERTICAL); |
+ container.addView(mResetCertDecisionsButton); |
+ container.setPadding(0, 0, 0, mPaddingWide); |
+ mContainer.addView(container); |
+ } |
+ |
+ @CalledByNative |
private void addMoreInfoLink(String linkText) { |
addUrl(linkText, HELP_URL); |
} |
@@ -186,6 +213,8 @@ public class WebsiteSettingsPopup implements OnClickListener { |
i.putExtra(Browser.EXTRA_APPLICATION_ID, mContext.getPackageName()); |
mContext.startActivity(i); |
} catch (URISyntaxException ex) {} |
+ } else if (mResetCertDecisionsButton == v) { |
+ nativeResetCertDecisions(mNativeWebsiteSettingsPopup, mWebContents); |
} |
} |
@@ -206,5 +235,7 @@ public class WebsiteSettingsPopup implements OnClickListener { |
private static native long nativeInit(WebsiteSettingsPopup popup, WebContents webContents); |
private native void nativeDestroy(long nativeWebsiteSettingsPopupAndroid); |
+ private native void nativeResetCertDecisions( |
+ long nativeWebsiteSettingsPopupAndroid, WebContents webContents); |
private native byte[][] nativeGetCertificateChain(WebContents webContents); |
-} |
+} |