Index: chrome/browser/chromeos/cros/network_library.cc |
diff --git a/chrome/browser/chromeos/cros/network_library.cc b/chrome/browser/chromeos/cros/network_library.cc |
index 5bc0a98eb36a421cfc39aa977956f850af6cc066..0e1955c6dccfa4b9f475f12ab144fcd9f22f320b 100644 |
--- a/chrome/browser/chromeos/cros/network_library.cc |
+++ b/chrome/browser/chromeos/cros/network_library.cc |
@@ -734,7 +734,12 @@ void VirtualNetwork::MatchCertificatePattern(bool allow_enroll, |
const base::Closure& connect) { |
DCHECK(client_cert_type() == CLIENT_CERT_TYPE_PATTERN); |
DCHECK(!client_cert_pattern().Empty()); |
- if (client_cert_pattern().Empty()) { |
+ |
+ // We skip certificate patterns for device policy ONC so that an unmanaged |
+ // user can't get to the place where a cert is presented for them |
+ // involuntarily. |
+ if (client_cert_pattern().Empty() || |
+ ui_data().onc_source() == NetworkUIData::ONC_SOURCE_DEVICE_POLICY) { |
connect.Run(); |
return; |
} |
@@ -761,8 +766,8 @@ void VirtualNetwork::MatchCertificatePattern(bool allow_enroll, |
false, |
connect); |
- enrollment_delegate()->Enroll(client_cert_pattern().enrollment_uri_list(), |
- wrapped_connect); |
+ enrollment_delegate()->Enroll(client_cert_pattern().enrollment_uri_list(), |
+ wrapped_connect); |
// Enrollment delegate will take care of running the closure at the |
// appropriate time, if the user doesn't cancel. |
return; |