Chromium Code Reviews| Index: chrome/browser/ui/webui/certificate_viewer_webui.cc |
| diff --git a/chrome/browser/ui/webui/certificate_viewer_webui.cc b/chrome/browser/ui/webui/certificate_viewer_webui.cc |
| index 1ab60ce8fe4fd98d068cd496b386bca0727a0359..981e8ef9001880af8c77f88bc4281a02ab513f7d 100644 |
| --- a/chrome/browser/ui/webui/certificate_viewer_webui.cc |
| +++ b/chrome/browser/ui/webui/certificate_viewer_webui.cc |
| @@ -169,7 +169,7 @@ std::string CertificateViewerModalDialog::GetDialogArgs() const { |
| x509_certificate_model::HashCertSHA1(cert_hnd)); |
| // Certificate hierarchy is constructed from bottom up. |
| - base::ListValue* children = NULL; |
| + std::unique_ptr<base::ListValue> children; |
| int index = 0; |
| for (net::X509Certificate::OSCertHandles::const_iterator i = |
| cert_chain.begin(); i != cert_chain.end(); ++i, ++index) { |
| @@ -180,14 +180,14 @@ std::string CertificateViewerModalDialog::GetDialogArgs() const { |
| cert_node->SetDouble("payload.index", index); |
| // Add the child from the previous iteration. |
| if (children) |
| - cert_node->Set("children", children); |
| + cert_node->Set("children", std::move(children)); |
| // Add this node to the children list for the next iteration. |
| - children = new base::ListValue(); |
| + children = base::MakeUnique<base::ListValue>(); |
| children->Append(std::move(cert_node)); |
| } |
| // Set the last node as the top of the certificate hierarchy. |
| - cert_info.Set("hierarchy", children); |
| + cert_info.Set("hierarchy", std::move(children)); |
| base::JSONWriter::Write(cert_info, &data); |
| @@ -291,109 +291,112 @@ void CertificateViewerDialogHandler::RequestCertificateFields( |
| net::X509Certificate::OSCertHandle cert = cert_chain_[cert_index]; |
| - base::ListValue root_list; |
| - base::DictionaryValue* node_details; |
| - base::DictionaryValue* alt_node_details; |
| - base::ListValue* cert_sub_fields; |
| - root_list.Append( |
| - base::WrapUnique(node_details = new base::DictionaryValue())); |
| - node_details->SetString("label", x509_certificate_model::GetTitle(cert)); |
| - |
| - base::ListValue* cert_fields; |
| - node_details->Set("children", cert_fields = new base::ListValue()); |
| - cert_fields->Append( |
| - base::WrapUnique(node_details = new base::DictionaryValue())); |
| - |
| - node_details->SetString("label", |
| - l10n_util::GetStringUTF8(IDS_CERT_DETAILS_CERTIFICATE)); |
| - node_details->Set("children", cert_fields = new base::ListValue()); |
| + auto root_node_details = base::MakeUnique<base::DictionaryValue>(); |
| + root_node_details->SetString("label", x509_certificate_model::GetTitle(cert)); |
| + |
| + auto root_cert_fields = base::MakeUnique<base::ListValue>(); |
| + auto root_cert_field = base::MakeUnique<base::DictionaryValue>(); |
| + root_cert_field->SetString( |
| + "label", l10n_util::GetStringUTF8(IDS_CERT_DETAILS_CERTIFICATE)); |
| + |
| + auto cert_fields = base::MakeUnique<base::ListValue>(); |
| // Main certificate fields. |
| - cert_fields->Append( |
| - base::WrapUnique(node_details = new base::DictionaryValue())); |
| - node_details->SetString("label", |
| - l10n_util::GetStringUTF8(IDS_CERT_DETAILS_VERSION)); |
| + auto cert_field = base::MakeUnique<base::DictionaryValue>(); |
| + cert_field->SetString("label", |
| + l10n_util::GetStringUTF8(IDS_CERT_DETAILS_VERSION)); |
| std::string version = x509_certificate_model::GetVersion(cert); |
| - if (!version.empty()) |
| - node_details->SetString("payload.val", |
| - l10n_util::GetStringFUTF8(IDS_CERT_DETAILS_VERSION_FORMAT, |
| - base::UTF8ToUTF16(version))); |
| - |
| - cert_fields->Append( |
| - base::WrapUnique(node_details = new base::DictionaryValue())); |
| - node_details->SetString("label", |
| - l10n_util::GetStringUTF8(IDS_CERT_DETAILS_SERIAL_NUMBER)); |
| - node_details->SetString("payload.val", |
| - x509_certificate_model::GetSerialNumberHexified(cert, |
| - l10n_util::GetStringUTF8(IDS_CERT_INFO_FIELD_NOT_PRESENT))); |
| - |
| - cert_fields->Append( |
| - base::WrapUnique(node_details = new base::DictionaryValue())); |
| - node_details->SetString("label", |
| - l10n_util::GetStringUTF8(IDS_CERT_DETAILS_CERTIFICATE_SIG_ALG)); |
| - node_details->SetString("payload.val", |
| + if (!version.empty()) { |
| + cert_field->SetString("payload.val", l10n_util::GetStringFUTF8( |
| + IDS_CERT_DETAILS_VERSION_FORMAT, |
| + base::UTF8ToUTF16(version))); |
| + } |
| + cert_fields->Append(std::move(cert_field)); |
| + |
| + cert_field = base::MakeUnique<base::DictionaryValue>(); |
| + cert_field->SetString( |
| + "label", l10n_util::GetStringUTF8(IDS_CERT_DETAILS_SERIAL_NUMBER)); |
| + cert_field->SetString( |
| + "payload.val", |
| + x509_certificate_model::GetSerialNumberHexified( |
| + cert, l10n_util::GetStringUTF8(IDS_CERT_INFO_FIELD_NOT_PRESENT))); |
| + cert_fields->Append(std::move(cert_field)); |
| + |
| + cert_field = base::MakeUnique<base::DictionaryValue>(); |
| + cert_field->SetString( |
| + "label", l10n_util::GetStringUTF8(IDS_CERT_DETAILS_CERTIFICATE_SIG_ALG)); |
| + cert_field->SetString( |
| + "payload.val", |
| x509_certificate_model::ProcessSecAlgorithmSignature(cert)); |
| + cert_fields->Append(std::move(cert_field)); |
| - cert_fields->Append( |
| - base::WrapUnique(node_details = new base::DictionaryValue())); |
| - node_details->SetString("label", |
| - l10n_util::GetStringUTF8(IDS_CERT_DETAILS_ISSUER)); |
| - node_details->SetString("payload.val", |
| - x509_certificate_model::GetIssuerName(cert)); |
| + cert_field = base::MakeUnique<base::DictionaryValue>(); |
| + cert_field->SetString("label", |
| + l10n_util::GetStringUTF8(IDS_CERT_DETAILS_ISSUER)); |
| + cert_field->SetString("payload.val", |
| + x509_certificate_model::GetIssuerName(cert)); |
| + cert_fields->Append(std::move(cert_field)); |
| // Validity period. |
| - cert_fields->Append( |
| - base::WrapUnique(node_details = new base::DictionaryValue())); |
| - node_details->SetString("label", |
| - l10n_util::GetStringUTF8(IDS_CERT_DETAILS_VALIDITY)); |
| - |
| - node_details->Set("children", cert_sub_fields = new base::ListValue()); |
| - cert_sub_fields->Append( |
| - base::WrapUnique(node_details = new base::DictionaryValue())); |
| - node_details->SetString("label", |
| - l10n_util::GetStringUTF8(IDS_CERT_DETAILS_NOT_BEFORE)); |
| - cert_sub_fields->Append( |
| - base::WrapUnique(alt_node_details = new base::DictionaryValue())); |
| - alt_node_details->SetString("label", |
| - l10n_util::GetStringUTF8(IDS_CERT_DETAILS_NOT_AFTER)); |
| + cert_field = base::MakeUnique<base::DictionaryValue>(); |
| + cert_field->SetString("label", |
| + l10n_util::GetStringUTF8(IDS_CERT_DETAILS_VALIDITY)); |
| + |
| base::Time issued, expires; |
| - if (x509_certificate_model::GetTimes(cert, &issued, &expires)) { |
| - node_details->SetString( |
| + bool obtained_times = |
| + x509_certificate_model::GetTimes(cert, &issued, &expires); |
| + auto cert_sub_fields = base::MakeUnique<base::ListValue>(); |
| + auto cert_sub_field = base::MakeUnique<base::DictionaryValue>(); |
| + cert_sub_field->SetString( |
| + "label", l10n_util::GetStringUTF8(IDS_CERT_DETAILS_NOT_BEFORE)); |
| + if (obtained_times) { |
| + cert_sub_field->SetString( |
| "payload.val", |
| base::UTF16ToUTF8( |
| base::TimeFormatShortDateAndTimeWithTimeZone(issued))); |
| - alt_node_details->SetString( |
| + } |
| + cert_sub_fields->Append(std::move(cert_sub_field)); |
| + cert_sub_field = base::MakeUnique<base::DictionaryValue>(); |
| + cert_sub_field->SetString( |
| + "label", l10n_util::GetStringUTF8(IDS_CERT_DETAILS_NOT_AFTER)); |
| + if (obtained_times) { |
| + cert_sub_field->SetString( |
| "payload.val", |
| base::UTF16ToUTF8( |
| base::TimeFormatShortDateAndTimeWithTimeZone(expires))); |
| } |
| + cert_sub_fields->Append(std::move(cert_sub_field)); |
| + cert_field->Set("children", std::move(cert_sub_fields)); |
| + cert_fields->Append(std::move(cert_field)); |
| - cert_fields->Append( |
| - base::WrapUnique(node_details = new base::DictionaryValue())); |
| - node_details->SetString("label", |
| - l10n_util::GetStringUTF8(IDS_CERT_DETAILS_SUBJECT)); |
| - node_details->SetString("payload.val", |
| - x509_certificate_model::GetSubjectName(cert)); |
| + cert_field = base::MakeUnique<base::DictionaryValue>(); |
| + cert_field->SetString("label", |
| + l10n_util::GetStringUTF8(IDS_CERT_DETAILS_SUBJECT)); |
| + cert_field->SetString("payload.val", |
| + x509_certificate_model::GetSubjectName(cert)); |
| + cert_fields->Append(std::move(cert_field)); |
| // Subject key information. |
| - cert_fields->Append( |
| - base::WrapUnique(node_details = new base::DictionaryValue())); |
| - node_details->SetString("label", |
| - l10n_util::GetStringUTF8(IDS_CERT_DETAILS_SUBJECT_KEY_INFO)); |
| - |
| - node_details->Set("children", cert_sub_fields = new base::ListValue()); |
| - cert_sub_fields->Append( |
| - base::WrapUnique(node_details = new base::DictionaryValue())); |
| - node_details->SetString("label", |
| - l10n_util::GetStringUTF8(IDS_CERT_DETAILS_SUBJECT_KEY_ALG)); |
| - node_details->SetString("payload.val", |
| + cert_field = base::MakeUnique<base::DictionaryValue>(); |
| + cert_field->SetString( |
| + "label", l10n_util::GetStringUTF8(IDS_CERT_DETAILS_SUBJECT_KEY_INFO)); |
| + |
| + cert_sub_fields = base::MakeUnique<base::ListValue>(); |
| + cert_sub_field = base::MakeUnique<base::DictionaryValue>(); |
| + cert_sub_field->SetString( |
| + "label", l10n_util::GetStringUTF8(IDS_CERT_DETAILS_SUBJECT_KEY_ALG)); |
| + cert_sub_field->SetString( |
| + "payload.val", |
| x509_certificate_model::ProcessSecAlgorithmSubjectPublicKey(cert)); |
| - cert_sub_fields->Append( |
| - base::WrapUnique(node_details = new base::DictionaryValue())); |
| - node_details->SetString("label", |
| - l10n_util::GetStringUTF8(IDS_CERT_DETAILS_SUBJECT_KEY)); |
| - node_details->SetString("payload.val", |
| - x509_certificate_model::ProcessSubjectPublicKeyInfo(cert)); |
| + cert_sub_fields->Append(std::move(cert_sub_field)); |
| + cert_sub_field = base::MakeUnique<base::DictionaryValue>(); |
| + cert_sub_field->SetString( |
| + "label", l10n_util::GetStringUTF8(IDS_CERT_DETAILS_SUBJECT_KEY)); |
| + cert_sub_field->SetString( |
| + "payload.val", x509_certificate_model::ProcessSubjectPublicKeyInfo(cert)); |
| + cert_sub_fields->Append(std::move(cert_sub_field)); |
| + cert_field->Set("children", std::move(cert_sub_fields)); |
| + cert_fields->Append(std::move(cert_field)); |
| // Extensions. |
| x509_certificate_model::Extensions extensions; |
| @@ -403,54 +406,66 @@ void CertificateViewerDialogHandler::RequestCertificateFields( |
| cert, &extensions); |
| if (!extensions.empty()) { |
| - cert_fields->Append( |
| - base::WrapUnique(node_details = new base::DictionaryValue())); |
| - node_details->SetString("label", |
| - l10n_util::GetStringUTF8(IDS_CERT_DETAILS_EXTENSIONS)); |
| + cert_field = base::MakeUnique<base::DictionaryValue>(); |
| + cert_field->SetString( |
| + "label", l10n_util::GetStringUTF8(IDS_CERT_DETAILS_EXTENSIONS)); |
| - node_details->Set("children", cert_sub_fields = new base::ListValue()); |
| + cert_sub_fields = base::MakeUnique<base::ListValue>(); |
| for (x509_certificate_model::Extensions::const_iterator i = |
| - extensions.begin(); i != extensions.end(); ++i) { |
| - cert_sub_fields->Append( |
| - base::WrapUnique(node_details = new base::DictionaryValue())); |
| - node_details->SetString("label", i->name); |
| - node_details->SetString("payload.val", i->value); |
| + extensions.begin(); |
| + i != extensions.end(); ++i) { |
| + cert_sub_field = base::MakeUnique<base::DictionaryValue>(); |
| + cert_sub_field->SetString("label", i->name); |
| + cert_sub_field->SetString("payload.val", i->value); |
| + cert_sub_fields->Append(std::move(cert_sub_field)); |
| } |
| + cert_field->Set("children", std::move(cert_sub_fields)); |
| + cert_fields->Append(std::move(cert_field)); |
| } |
| - cert_fields->Append( |
| - base::WrapUnique(node_details = new base::DictionaryValue())); |
| - node_details->SetString("label", |
| - l10n_util::GetStringUTF8(IDS_CERT_DETAILS_CERTIFICATE_SIG_ALG)); |
| - node_details->SetString("payload.val", |
| + cert_field = base::MakeUnique<base::DictionaryValue>(); |
| + cert_field->SetString( |
| + "label", l10n_util::GetStringUTF8(IDS_CERT_DETAILS_CERTIFICATE_SIG_ALG)); |
| + cert_field->SetString( |
| + "payload.val", |
| x509_certificate_model::ProcessSecAlgorithmSignatureWrap(cert)); |
| - |
| - cert_fields->Append( |
| - base::WrapUnique(node_details = new base::DictionaryValue())); |
| - node_details->SetString("label", |
| - l10n_util::GetStringUTF8(IDS_CERT_DETAILS_CERTIFICATE_SIG_VALUE)); |
| - node_details->SetString("payload.val", |
| - x509_certificate_model::ProcessRawBitsSignatureWrap(cert)); |
| - |
| - cert_fields->Append( |
| - base::WrapUnique(node_details = new base::DictionaryValue())); |
| - node_details->SetString("label", |
| - l10n_util::GetStringUTF8(IDS_CERT_INFO_FINGERPRINTS_GROUP)); |
| - node_details->Set("children", cert_sub_fields = new base::ListValue()); |
| - |
| - cert_sub_fields->Append( |
| - base::WrapUnique(node_details = new base::DictionaryValue())); |
| - node_details->SetString("label", |
| + cert_fields->Append(std::move(cert_field)); |
| + |
| + cert_field = base::MakeUnique<base::DictionaryValue>(); |
| + cert_field->SetString("label", l10n_util::GetStringUTF8( |
| + IDS_CERT_DETAILS_CERTIFICATE_SIG_VALUE)); |
| + cert_field->SetString( |
| + "payload.val", x509_certificate_model::ProcessRawBitsSignatureWrap(cert)); |
| + cert_fields->Append(std::move(cert_field)); |
| + |
| + cert_field = base::MakeUnique<base::DictionaryValue>(); |
| + cert_field->SetString( |
| + "label", l10n_util::GetStringUTF8(IDS_CERT_INFO_FINGERPRINTS_GROUP)); |
| + cert_field->Set("children", std::move(cert_sub_fields)); |
|
vabr (Chromium)
2017/04/11 19:20:19
This line needs to be deleted.
|
| + |
| + cert_sub_fields = base::MakeUnique<base::ListValue>(); |
| + cert_sub_field = base::MakeUnique<base::DictionaryValue>(); |
| + cert_sub_field->SetString( |
| + "label", |
| l10n_util::GetStringUTF8(IDS_CERT_INFO_SHA256_FINGERPRINT_LABEL)); |
| - node_details->SetString("payload.val", |
| - x509_certificate_model::HashCertSHA256(cert)); |
| - cert_sub_fields->Append( |
| - base::WrapUnique(node_details = new base::DictionaryValue())); |
| - node_details->SetString("label", |
| - l10n_util::GetStringUTF8(IDS_CERT_INFO_SHA1_FINGERPRINT_LABEL)); |
| - node_details->SetString("payload.val", |
| - x509_certificate_model::HashCertSHA1(cert)); |
| + cert_sub_field->SetString("payload.val", |
| + x509_certificate_model::HashCertSHA256(cert)); |
| + cert_sub_fields->Append(std::move(cert_sub_field)); |
| + cert_sub_field = base::MakeUnique<base::DictionaryValue>(); |
| + cert_sub_field->SetString( |
| + "label", l10n_util::GetStringUTF8(IDS_CERT_INFO_SHA1_FINGERPRINT_LABEL)); |
| + cert_sub_field->SetString("payload.val", |
| + x509_certificate_model::HashCertSHA1(cert)); |
| + cert_sub_fields->Append(std::move(cert_sub_field)); |
| + cert_field->Set("children", std::move(cert_sub_fields)); |
| + cert_fields->Append(std::move(cert_field)); |
| + |
| + root_cert_field->Set("children", std::move(cert_fields)); |
| + root_cert_fields->Append(std::move(root_cert_field)); |
| + root_node_details->Set("children", std::move(root_cert_fields)); |
| + base::ListValue root_list; |
| + root_list.Append(std::move(root_node_details)); |
| // Send certificate information to javascript. |
| web_ui()->CallJavascriptFunctionUnsafe("cert_viewer.getCertificateFields", |
| root_list); |