| 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..d4d0cf541b3bbf78b4503825166831c1f2ba2a18 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);
|
| }
|
| @@ -171,7 +198,9 @@ public class WebsiteSettingsPopup implements OnClickListener {
|
| @Override
|
| public void onClick(View v) {
|
| mDialog.dismiss();
|
| - if (mCertificateViewer == v) {
|
| + if (mResetCertDecisionsButton == v) {
|
| + nativeResetCertDecisions(mNativeWebsiteSettingsPopup, mWebContents);
|
| + } else if (mCertificateViewer == v) {
|
| byte[][] certChain = nativeGetCertificateChain(mWebContents);
|
| if (certChain == null) {
|
| // The WebContents may have been destroyed/invalidated. If so,
|
| @@ -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);
|
| -}
|
| +}
|
|
|