| Index: chrome/browser/resources/net_internals/dns_view.js
|
| diff --git a/chrome/browser/resources/net_internals/dns_view.js b/chrome/browser/resources/net_internals/dns_view.js
|
| index 05bb521f92a24408d95d72919cf0b9fc5a255b2b..dc03a9d23abdd1e9897df0256070991bc077a71f 100644
|
| --- a/chrome/browser/resources/net_internals/dns_view.js
|
| +++ b/chrome/browser/resources/net_internals/dns_view.js
|
| @@ -55,6 +55,7 @@ var DnsView = (function() {
|
|
|
| DnsView.ACTIVE_SPAN_ID = 'dns-view-cache-active';
|
| DnsView.EXPIRED_SPAN_ID = 'dns-view-cache-expired';
|
| + DnsView.NETWORK_SPAN_ID = 'dns-view-network-changes';
|
| DnsView.CACHE_TBODY_ID = 'dns-view-cache-tbody';
|
|
|
| cr.addSingletonGetter(DnsView);
|
| @@ -73,6 +74,7 @@ var DnsView = (function() {
|
| $(DnsView.CACHE_TBODY_ID).innerHTML = '';
|
| $(DnsView.ACTIVE_SPAN_ID).innerHTML = '0';
|
| $(DnsView.EXPIRED_SPAN_ID).innerHTML = '0';
|
| + $(DnsView.NETWORK_SPAN_ID).innerHTML = '0';
|
|
|
| // Update fields containing async DNS configuration information.
|
| displayAsyncDnsConfig_(hostResolverInfo);
|
| @@ -84,6 +86,8 @@ var DnsView = (function() {
|
| // Fill in the basic cache information.
|
| var hostResolverCache = hostResolverInfo.cache;
|
| $(DnsView.CAPACITY_SPAN_ID).innerText = hostResolverCache.capacity;
|
| + $(DnsView.NETWORK_SPAN_ID).innerText =
|
| + valueOrDefault(hostResolverCache.network_changes, '');
|
|
|
| var expiredEntries = 0;
|
| // Date the cache was logged. This will be either now, when actively
|
| @@ -99,6 +103,7 @@ var DnsView = (function() {
|
| for (var i = 0; i < hostResolverCache.entries.length; ++i) {
|
| var e = hostResolverCache.entries[i];
|
| var tr = addNode($(DnsView.CACHE_TBODY_ID), 'tr');
|
| + var expired = false;
|
|
|
| var hostnameCell = addNode(tr, 'td');
|
| addTextNode(hostnameCell, e.hostname);
|
| @@ -116,15 +121,35 @@ var DnsView = (function() {
|
| addListToNode_(addNode(addressesCell, 'div'), e.addresses);
|
| }
|
|
|
| + var ttlCell = addNode(tr, 'td');
|
| + addTextNode(ttlCell, valueOrDefault(e.ttl, ''));
|
| +
|
| var expiresDate = timeutil.convertTimeTicksToDate(e.expiration);
|
| var expiresCell = addNode(tr, 'td');
|
| timeutil.addNodeWithDate(expiresCell, expiresDate);
|
| if (logDate > timeutil.convertTimeTicksToDate(e.expiration)) {
|
| - ++expiredEntries;
|
| + expired = true;
|
| var expiredSpan = addNode(expiresCell, 'span');
|
| expiredSpan.classList.add('warning-text');
|
| addTextNode(expiredSpan, ' [Expired]');
|
| }
|
| +
|
| + // HostCache keeps track of how many network changes have happened since
|
| + // it was created, and entries store what that number was at the time
|
| + // they were created. If more network changes have happened since an
|
| + // entry was created, the entry is expired.
|
| + var networkChangesCell = addNode(tr, 'td');
|
| + addTextNode(networkChangesCell, valueOrDefault(e.network_changes, ''));
|
| + if (e.network_changes < hostResolverCache.network_changes) {
|
| + expired = true;
|
| + var expiredSpan = addNode(networkChangesCell, 'span');
|
| + expiredSpan.classList.add('warning-text');
|
| + addTextNode(expiredSpan, ' [Expired]');
|
| + }
|
| +
|
| + if (expired) {
|
| + expiredEntries++;
|
| + }
|
| }
|
|
|
| $(DnsView.ACTIVE_SPAN_ID).innerText =
|
| @@ -192,5 +217,13 @@ var DnsView = (function() {
|
| addNodeWithText(node, 'div', list[i]);
|
| }
|
|
|
| + // TODO(mgersh): The |ttl| and |network_changes| properties were introduced in
|
| + // M59 and may not exist when loading older logs. This can be removed in M62.
|
| + function valueOrDefault(value, defaultValue) {
|
| + if (value != undefined)
|
| + return value;
|
| + return defaultValue;
|
| + }
|
| +
|
| return DnsView;
|
| })();
|
|
|