Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(83)

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/WebsiteSettingsPopup.java

Issue 1314843007: Refactor connection_security into SecurityStateModel (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: avi comments Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.chrome.browser; 5 package org.chromium.chrome.browser;
6 6
7 import android.animation.Animator; 7 import android.animation.Animator;
8 import android.animation.AnimatorListenerAdapter; 8 import android.animation.AnimatorListenerAdapter;
9 import android.animation.AnimatorSet; 9 import android.animation.AnimatorSet;
10 import android.animation.ObjectAnimator; 10 import android.animation.ObjectAnimator;
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
47 import org.chromium.base.ApiCompatibilityUtils; 47 import org.chromium.base.ApiCompatibilityUtils;
48 import org.chromium.base.CommandLine; 48 import org.chromium.base.CommandLine;
49 import org.chromium.base.annotations.CalledByNative; 49 import org.chromium.base.annotations.CalledByNative;
50 import org.chromium.chrome.R; 50 import org.chromium.chrome.R;
51 import org.chromium.chrome.browser.omnibox.OmniboxUrlEmphasizer; 51 import org.chromium.chrome.browser.omnibox.OmniboxUrlEmphasizer;
52 import org.chromium.chrome.browser.preferences.PrefServiceBridge; 52 import org.chromium.chrome.browser.preferences.PrefServiceBridge;
53 import org.chromium.chrome.browser.preferences.Preferences; 53 import org.chromium.chrome.browser.preferences.Preferences;
54 import org.chromium.chrome.browser.preferences.PreferencesLauncher; 54 import org.chromium.chrome.browser.preferences.PreferencesLauncher;
55 import org.chromium.chrome.browser.preferences.website.SingleWebsitePreferences; 55 import org.chromium.chrome.browser.preferences.website.SingleWebsitePreferences;
56 import org.chromium.chrome.browser.profiles.Profile; 56 import org.chromium.chrome.browser.profiles.Profile;
57 import org.chromium.chrome.browser.ssl.ConnectionSecurity;
58 import org.chromium.chrome.browser.ssl.ConnectionSecurityLevel; 57 import org.chromium.chrome.browser.ssl.ConnectionSecurityLevel;
59 import org.chromium.chrome.browser.toolbar.ToolbarModel; 58 import org.chromium.chrome.browser.ssl.SecurityStateModel;
60 import org.chromium.content.browser.ContentViewCore; 59 import org.chromium.content.browser.ContentViewCore;
61 import org.chromium.content_public.browser.WebContents; 60 import org.chromium.content_public.browser.WebContents;
62 import org.chromium.content_public.browser.WebContentsObserver; 61 import org.chromium.content_public.browser.WebContentsObserver;
63 import org.chromium.ui.base.Clipboard; 62 import org.chromium.ui.base.Clipboard;
64 import org.chromium.ui.base.DeviceFormFactor; 63 import org.chromium.ui.base.DeviceFormFactor;
65 import org.chromium.ui.base.WindowAndroid; 64 import org.chromium.ui.base.WindowAndroid;
66 import org.chromium.ui.base.WindowAndroid.PermissionCallback; 65 import org.chromium.ui.base.WindowAndroid.PermissionCallback;
67 import org.chromium.ui.interpolators.BakedBezierInterpolator; 66 import org.chromium.ui.interpolators.BakedBezierInterpolator;
68 67
69 import java.net.URI; 68 import java.net.URI;
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
259 // parsed. 258 // parsed.
260 private URI mParsedUrl; 259 private URI mParsedUrl;
261 260
262 // Whether or not this page is an internal chrome page (e.g. the 261 // Whether or not this page is an internal chrome page (e.g. the
263 // chrome://settings page). 262 // chrome://settings page).
264 private boolean mIsInternalPage; 263 private boolean mIsInternalPage;
265 264
266 // The security level of the page (a valid ConnectionSecurityLevel). 265 // The security level of the page (a valid ConnectionSecurityLevel).
267 private int mSecurityLevel; 266 private int mSecurityLevel;
268 267
269 // Whether the security level of the page was deprecated due to SHA-1. 268 // Whether the security level of the page was downgraded due to SHA-1.
270 private boolean mDeprecatedSHA1Present; 269 private boolean mDeprecatedSHA1Present;
271 270
271 // Whether the security level of the page was downgraded due to passive mixe d content.
272 private boolean mPassiveMixedContentPresent;
273
272 // Whether to use the read-only permissions list. 274 // Whether to use the read-only permissions list.
273 private boolean mIsReadOnlyDialog; 275 private boolean mIsReadOnlyDialog;
274 276
275 // Permissions available to be displayed in mPermissionsList. 277 // Permissions available to be displayed in mPermissionsList.
276 private List<PageInfoPermissionEntry> mDisplayedPermissions; 278 private List<PageInfoPermissionEntry> mDisplayedPermissions;
277 279
278 /** 280 /**
279 * Creates the WebsiteSettingsPopup, but does not display it. Also initializ es the corresponding 281 * Creates the WebsiteSettingsPopup, but does not display it. Also initializ es the corresponding
280 * C++ object and saves a pointer to it. 282 * C++ object and saves a pointer to it.
281 * 283 *
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
415 417
416 // Work out the URL and connection message. 418 // Work out the URL and connection message.
417 mFullUrl = mWebContents.getVisibleUrl(); 419 mFullUrl = mWebContents.getVisibleUrl();
418 try { 420 try {
419 mParsedUrl = new URI(mFullUrl); 421 mParsedUrl = new URI(mFullUrl);
420 mIsInternalPage = UrlUtilities.isInternalScheme(mParsedUrl); 422 mIsInternalPage = UrlUtilities.isInternalScheme(mParsedUrl);
421 } catch (URISyntaxException e) { 423 } catch (URISyntaxException e) {
422 mParsedUrl = null; 424 mParsedUrl = null;
423 mIsInternalPage = false; 425 mIsInternalPage = false;
424 } 426 }
425 mSecurityLevel = ConnectionSecurity.getSecurityLevelForWebContents(mWebC ontents); 427 mSecurityLevel = SecurityStateModel.getSecurityLevelForWebContents(mWebC ontents);
426 mDeprecatedSHA1Present = ToolbarModel.isDeprecatedSHA1Present(mWebConten ts); 428 mDeprecatedSHA1Present = SecurityStateModel.isDeprecatedSHA1Present(mWeb Contents);
429 mPassiveMixedContentPresent = SecurityStateModel.isPassiveMixedContentPr esent(mWebContents);
427 430
428 SpannableStringBuilder urlBuilder = new SpannableStringBuilder(mFullUrl) ; 431 SpannableStringBuilder urlBuilder = new SpannableStringBuilder(mFullUrl) ;
429 OmniboxUrlEmphasizer.emphasizeUrl(urlBuilder, mContext.getResources(), m Profile, 432 OmniboxUrlEmphasizer.emphasizeUrl(urlBuilder, mContext.getResources(), m Profile,
430 mSecurityLevel, mIsInternalPage, true, true); 433 mSecurityLevel, mIsInternalPage, true, true);
431 mUrlTitle.setText(urlBuilder); 434 mUrlTitle.setText(urlBuilder);
432 435
433 // Set the URL connection message now, and the URL after layout (so it 436 // Set the URL connection message now, and the URL after layout (so it
434 // can calculate its ideal height). 437 // can calculate its ideal height).
435 mUrlConnectionMessage.setText(getUrlConnectionMessage()); 438 mUrlConnectionMessage.setText(getUrlConnectionMessage());
436 if (isConnectionDetailsLinkVisible()) mUrlConnectionMessage.setOnClickLi stener(this); 439 if (isConnectionDetailsLinkVisible()) mUrlConnectionMessage.setOnClickLi stener(this);
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
499 */ 502 */
500 private int getConnectionMessageId(int securityLevel, boolean isInternalPage ) { 503 private int getConnectionMessageId(int securityLevel, boolean isInternalPage ) {
501 if (isInternalPage) return R.string.page_info_connection_internal_page; 504 if (isInternalPage) return R.string.page_info_connection_internal_page;
502 505
503 switch (securityLevel) { 506 switch (securityLevel) {
504 case ConnectionSecurityLevel.NONE: 507 case ConnectionSecurityLevel.NONE:
505 return R.string.page_info_connection_http; 508 return R.string.page_info_connection_http;
506 case ConnectionSecurityLevel.SECURE: 509 case ConnectionSecurityLevel.SECURE:
507 case ConnectionSecurityLevel.EV_SECURE: 510 case ConnectionSecurityLevel.EV_SECURE:
508 return R.string.page_info_connection_https; 511 return R.string.page_info_connection_https;
509 case ConnectionSecurityLevel.SECURITY_WARNING:
510 case ConnectionSecurityLevel.SECURITY_POLICY_WARNING:
511 return R.string.page_info_connection_mixed;
512 default: 512 default:
513 assert false : "Invalid security level specified: " + securityLe vel; 513 assert false : "Invalid security level specified: " + securityLe vel;
514 return R.string.page_info_connection_http; 514 return R.string.page_info_connection_http;
515 } 515 }
516 } 516 }
517 517
518 /** 518 /**
519 * Whether to show a 'Details' link to the connection info popup. The link i s only shown for 519 * Whether to show a 'Details' link to the connection info popup. The link i s only shown for
520 * HTTPS connections. 520 * HTTPS connections.
521 */ 521 */
522 private boolean isConnectionDetailsLinkVisible() { 522 private boolean isConnectionDetailsLinkVisible() {
523 return !mIsInternalPage && mSecurityLevel != ConnectionSecurityLevel.NON E; 523 return !mIsInternalPage && mSecurityLevel != ConnectionSecurityLevel.NON E;
524 } 524 }
525 525
526 /** 526 /**
527 * Gets the styled connection message to display below the URL. 527 * Gets the styled connection message to display below the URL.
528 */ 528 */
529 private Spannable getUrlConnectionMessage() { 529 private Spannable getUrlConnectionMessage() {
530 // Display the appropriate connection message. 530 // Display the appropriate connection message.
531 SpannableStringBuilder messageBuilder = new SpannableStringBuilder(); 531 SpannableStringBuilder messageBuilder = new SpannableStringBuilder();
532 if (mDeprecatedSHA1Present) { 532 if (mDeprecatedSHA1Present) {
533 messageBuilder.append( 533 messageBuilder.append(
534 mContext.getResources().getString(R.string.page_info_connect ion_sha1)); 534 mContext.getResources().getString(R.string.page_info_connect ion_sha1));
535 } else if (mSecurityLevel != ConnectionSecurityLevel.SECURITY_ERROR) { 535 } else if (mPassiveMixedContentPresent) {
536 messageBuilder.append(
537 mContext.getResources().getString(R.string.page_info_connect ion_mixed));
538 } else if (mSecurityLevel != ConnectionSecurityLevel.SECURITY_ERROR
539 && mSecurityLevel != ConnectionSecurityLevel.SECURITY_WARNING
540 && mSecurityLevel != ConnectionSecurityLevel.SECURITY_POLICY_WAR NING) {
536 messageBuilder.append(mContext.getResources().getString( 541 messageBuilder.append(mContext.getResources().getString(
537 getConnectionMessageId(mSecurityLevel, mIsInternalPage))); 542 getConnectionMessageId(mSecurityLevel, mIsInternalPage)));
538 } else { 543 } else {
539 String originToDisplay; 544 String originToDisplay;
540 try { 545 try {
541 URI parsedUrl = new URI(mFullUrl); 546 URI parsedUrl = new URI(mFullUrl);
542 originToDisplay = UrlUtilities.getOriginForDisplay(parsedUrl, fa lse); 547 originToDisplay = UrlUtilities.getOriginForDisplay(parsedUrl, fa lse);
543 } catch (URISyntaxException e) { 548 } catch (URISyntaxException e) {
544 // The URL is invalid - just display the full URL. 549 // The URL is invalid - just display the full URL.
545 originToDisplay = mFullUrl; 550 originToDisplay = mFullUrl;
(...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after
967 new WebsiteSettingsPopup(activity, profile, webContents); 972 new WebsiteSettingsPopup(activity, profile, webContents);
968 } 973 }
969 974
970 private static native long nativeInit(WebsiteSettingsPopup popup, WebContent s webContents); 975 private static native long nativeInit(WebsiteSettingsPopup popup, WebContent s webContents);
971 976
972 private native void nativeDestroy(long nativeWebsiteSettingsPopupAndroid); 977 private native void nativeDestroy(long nativeWebsiteSettingsPopupAndroid);
973 978
974 private native void nativeOnPermissionSettingChanged(long nativeWebsiteSetti ngsPopupAndroid, 979 private native void nativeOnPermissionSettingChanged(long nativeWebsiteSetti ngsPopupAndroid,
975 int type, int setting); 980 int type, int setting);
976 } 981 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698