Bug 1123952 - Make values copyable in the netmonitor security tab. r=vporof

This commit is contained in:
Sami Jaktholm 2015-02-15 13:22:37 +02:00
parent 2dac283e4e
commit 70d0b4665a
5 changed files with 92 additions and 88 deletions

View File

@ -2743,21 +2743,22 @@ NetworkDetailsView.prototype = {
}
/**
* A helper that sets label text to specified value.
* A helper that sets value and tooltiptext attributes of an element to
* specified value.
*
* @param string selector
* A selector for the label.
* A selector for the element.
* @param string value
* The value label should have. If this evaluates to false a
* placeholder string <Not Available> is used instead.
* The value to set. If this evaluates to false a placeholder string
* <Not Available> is used instead.
*/
function setLabel(selector, value) {
function setValue(selector, value) {
let label = $(selector);
if (!value) {
label.value = L10N.getStr("netmonitor.security.notAvailable");
label.setAttribute("tooltiptext", label.value);
label.setAttribute("value", L10N.getStr("netmonitor.security.notAvailable"));
label.setAttribute("tooltiptext", label.getAttribute("value"));
} else {
label.value = value;
label.setAttribute("value", value);
label.setAttribute("tooltiptext", value);
}
}
@ -2785,43 +2786,43 @@ NetworkDetailsView.prototype = {
let disabledLabel = L10N.getStr("netmonitor.security.disabled");
// Connection parameters
setLabel("#security-protocol-version-value", securityInfo.protocolVersion);
setLabel("#security-ciphersuite-value", securityInfo.cipherSuite);
setValue("#security-protocol-version-value", securityInfo.protocolVersion);
setValue("#security-ciphersuite-value", securityInfo.cipherSuite);
// Host header
let domain = NetMonitorView.RequestsMenu._getUriHostPort(url);
let hostHeader = L10N.getFormatStr("netmonitor.security.hostHeader", domain);
setLabel("#security-info-host-header", hostHeader);
setValue("#security-info-host-header", hostHeader);
// Parameters related to the domain
setLabel("#security-http-strict-transport-security-value",
setValue("#security-http-strict-transport-security-value",
securityInfo.hsts ? enabledLabel : disabledLabel);
setLabel("#security-public-key-pinning-value",
setValue("#security-public-key-pinning-value",
securityInfo.hpkp ? enabledLabel : disabledLabel);
// Certificate parameters
let cert = securityInfo.cert;
setLabel("#security-cert-subject-cn", cert.subject.commonName);
setLabel("#security-cert-subject-o", cert.subject.organization);
setLabel("#security-cert-subject-ou", cert.subject.organizationalUnit);
setValue("#security-cert-subject-cn", cert.subject.commonName);
setValue("#security-cert-subject-o", cert.subject.organization);
setValue("#security-cert-subject-ou", cert.subject.organizationalUnit);
setLabel("#security-cert-issuer-cn", cert.issuer.commonName);
setLabel("#security-cert-issuer-o", cert.issuer.organization);
setLabel("#security-cert-issuer-ou", cert.issuer.organizationalUnit);
setValue("#security-cert-issuer-cn", cert.issuer.commonName);
setValue("#security-cert-issuer-o", cert.issuer.organization);
setValue("#security-cert-issuer-ou", cert.issuer.organizationalUnit);
setLabel("#security-cert-validity-begins", cert.validity.start);
setLabel("#security-cert-validity-expires", cert.validity.end);
setValue("#security-cert-validity-begins", cert.validity.start);
setValue("#security-cert-validity-expires", cert.validity.end);
setLabel("#security-cert-sha1-fingerprint", cert.fingerprint.sha1);
setLabel("#security-cert-sha256-fingerprint", cert.fingerprint.sha256);
setValue("#security-cert-sha1-fingerprint", cert.fingerprint.sha1);
setValue("#security-cert-sha256-fingerprint", cert.fingerprint.sha256);
} else {
infobox.hidden = true;
errorbox.hidden = false;
// Strip any HTML from the message.
let plain = DOMParser.parseFromString(securityInfo.errorMessage, "text/html");
$("#security-error-message").textContent = plain.body.textContent;
setValue("#security-error-message", plain.body.textContent);
}
}),

View File

@ -28,7 +28,7 @@
overflow: auto;
}
#headers-summary-url-value .textbox-input {
.cropped-textbox .textbox-input {
/* workaround for textbox not supporting the @crop attribute */
text-overflow: ellipsis;
}

View File

@ -300,7 +300,7 @@
<label class="plain tabpanel-summary-label"
value="&netmonitorUI.summary.url;"/>
<textbox id="headers-summary-url-value"
class="plain tabpanel-summary-value devtools-monospace"
class="plain tabpanel-summary-value devtools-monospace cropped-textbox"
flex="1"
readonly="true"/>
</hbox>
@ -488,7 +488,14 @@
flex="1">
<label class="plain tabpanel-summary-label"
value="&netmonitorUI.security.error;"/>
<description id="security-error-message" flex="1"/>
<hbox class="security-info-section"
flex="1">
<textbox id="security-error-message"
class="plain"
flex="1"
multiline="true"
readonly="true"/>
</hbox>
</vbox>
<vbox id="security-information"
flex="1">
@ -502,10 +509,10 @@
align="baseline">
<label class="plain tabpanel-summary-label"
value="&netmonitorUI.security.protocolVersion;"/>
<label id="security-protocol-version-value"
class="plain tabpanel-summary-value devtools-monospace"
crop="end"
flex="1"/>
<textbox id="security-protocol-version-value"
class="plain tabpanel-summary-value devtools-monospace cropped-textbox"
flex="1"
readonly="true"/>
<image class="security-warning-icon"
id="security-warning-sslv3"
tooltiptext="&netmonitorUI.security.warning.sslv3;" />
@ -515,10 +522,10 @@
align="baseline">
<label class="plain tabpanel-summary-label"
value="&netmonitorUI.security.cipherSuite;"/>
<label id="security-ciphersuite-value"
class="plain tabpanel-summary-value devtools-monospace"
crop="end"
flex="1"/>
<textbox id="security-ciphersuite-value"
class="plain tabpanel-summary-value devtools-monospace cropped-textbox"
flex="1"
readonly="true"/>
<image class="security-warning-icon"
id="security-warning-cipher"
tooltiptext="&netmonitorUI.security.warning.cipher;" />
@ -535,20 +542,20 @@
align="baseline">
<label class="plain tabpanel-summary-label"
value="&netmonitorUI.security.hsts;"/>
<label id="security-http-strict-transport-security-value"
class="plain tabpanel-summary-value devtools-monospace"
crop="end"
flex="1"/>
<textbox id="security-http-strict-transport-security-value"
class="plain tabpanel-summary-value devtools-monospace cropped-textbox"
flex="1"
readonly="true"/>
</hbox>
<hbox id="security-public-key-pinning"
class="tabpanel-summary-container"
align="baseline">
<label class="plain tabpanel-summary-label"
value="&netmonitorUI.security.hpkp;"/>
<label id="security-public-key-pinning-value"
class="plain tabpanel-summary-value devtools-monospace"
crop="end"
flex="1"/>
<textbox id="security-public-key-pinning-value"
class="plain tabpanel-summary-value devtools-monospace cropped-textbox"
flex="1"
readonly="true"/>
</hbox>
</vbox>
</vbox>
@ -566,28 +573,28 @@
align="baseline">
<label class="plain tabpanel-summary-label"
value="&certmgr.certdetail.cn;:"/>
<label id="security-cert-subject-cn"
class="plain tabpanel-summary-value devtools-monospace"
crop="end"
flex="1"/>
<textbox id="security-cert-subject-cn"
class="plain tabpanel-summary-value devtools-monospace cropped-textbox"
flex="1"
readonly="true"/>
</hbox>
<hbox class="tabpanel-summary-container"
align="baseline">
<label class="plain tabpanel-summary-label"
value="&certmgr.certdetail.o;:"/>
<label id="security-cert-subject-o"
class="plain tabpanel-summary-value devtools-monospace"
crop="end"
flex="1"/>
<textbox id="security-cert-subject-o"
class="plain tabpanel-summary-value devtools-monospace cropped-textbox"
flex="1"
readonly="true"/>
</hbox>
<hbox class="tabpanel-summary-container"
align="baseline">
<label class="plain tabpanel-summary-label"
value="&certmgr.certdetail.ou;:"/>
<label id="security-cert-subject-ou"
class="plain tabpanel-summary-value devtools-monospace"
crop="end"
flex="1"/>
<textbox id="security-cert-subject-ou"
class="plain tabpanel-summary-value devtools-monospace cropped-textbox"
flex="1"
readonly="true"/>
</hbox>
</vbox>
<vbox class="tabpanel-summary-container">
@ -599,28 +606,28 @@
align="baseline">
<label class="plain tabpanel-summary-label"
value="&certmgr.certdetail.cn;:"/>
<label id="security-cert-issuer-cn"
class="plain tabpanel-summary-value devtools-monospace"
crop="end"
flex="1"/>
<textbox id="security-cert-issuer-cn"
class="plain tabpanel-summary-value devtools-monospace cropped-textbox"
flex="1"
readonly="true"/>
</hbox>
<hbox class="tabpanel-summary-container"
align="baseline">
<label class="plain tabpanel-summary-label"
value="&certmgr.certdetail.o;:"/>
<label id="security-cert-issuer-o"
class="plain tabpanel-summary-value devtools-monospace"
crop="end"
flex="1"/>
<textbox id="security-cert-issuer-o"
class="plain tabpanel-summary-value devtools-monospace cropped-textbox"
flex="1"
readonly="true"/>
</hbox>
<hbox class="tabpanel-summary-container"
align="baseline">
<label class="plain tabpanel-summary-label"
value="&certmgr.certdetail.ou;:"/>
<label id="security-cert-issuer-ou"
class="plain tabpanel-summary-value devtools-monospace"
crop="end"
flex="1"/>
<textbox id="security-cert-issuer-ou"
class="plain tabpanel-summary-value devtools-monospace cropped-textbox"
flex="1"
readonly="true"/>
</hbox>
</vbox>
<vbox class="tabpanel-summary-container">
@ -632,19 +639,19 @@
align="baseline">
<label class="plain tabpanel-summary-label"
value="&certmgr.begins;:"/>
<label id="security-cert-validity-begins"
class="plain tabpanel-summary-value devtools-monospace"
crop="end"
flex="1"/>
<textbox id="security-cert-validity-begins"
class="plain tabpanel-summary-value devtools-monospace cropped-textbox"
flex="1"
readonly="true"/>
</hbox>
<hbox class="tabpanel-summary-container"
align="baseline">
<label class="plain tabpanel-summary-label"
value="&certmgr.expires;:"/>
<label id="security-cert-validity-expires"
class="plain tabpanel-summary-value devtools-monospace"
crop="end"
flex="1"/>
<textbox id="security-cert-validity-expires"
class="plain tabpanel-summary-value devtools-monospace cropped-textbox"
flex="1"
readonly="true"/>
</hbox>
</vbox>
<vbox class="tabpanel-summary-container">
@ -656,19 +663,19 @@
align="baseline">
<label class="plain tabpanel-summary-label"
value="&certmgr.certdetail.sha256fingerprint;:"/>
<label id="security-cert-sha256-fingerprint"
class="plain tabpanel-summary-value devtools-monospace"
crop="end"
flex="1"/>
<textbox id="security-cert-sha256-fingerprint"
class="plain tabpanel-summary-value devtools-monospace cropped-textbox"
flex="1"
readonly="true"/>
</hbox>
<hbox class="tabpanel-summary-container"
align="baseline">
<label class="plain tabpanel-summary-label"
value="&certmgr.certdetail.sha1fingerprint;:"/>
<label id="security-cert-sha1-fingerprint"
class="plain tabpanel-summary-value devtools-monospace"
crop="end"
flex="1"/>
<textbox id="security-cert-sha1-fingerprint"
class="plain tabpanel-summary-value devtools-monospace cropped-textbox"
flex="1"
readonly="true"/>
</hbox>
</vbox>
</vbox>

View File

@ -37,7 +37,7 @@ add_task(function* () {
is(errorbox.hidden, false, "Error box is visble.");
is(infobox.hidden, true, "Information box is hidden.");
isnot(errormsg.textContent, "", "Error message is not empty.");
isnot(errormsg.value, "", "Error message is not empty.");
yield teardown(monitor);

View File

@ -579,10 +579,6 @@ label.requests-menu-status-code {
overflow: auto;
}
#security-error-message {
white-space: pre-wrap;
}
.security-warning-icon {
background-image: url(alerticon-warning.png);
background-size: 13px 12px;