Web Inspector: Network: show secure certificate details per-request
https://bugs.webkit.org/show_bug.cgi?id=191447
<rdar://problem/30019476>
Reviewed by Joseph Pecoraro.
Source/JavaScriptCore:
Add Security domain to hold security related protocol types.
* CMakeLists.txt:
* DerivedSources.make:
* inspector/protocol/Network.json:
* inspector/protocol/Security.json: Added.
* inspector/scripts/codegen/objc_generator.py:
(ObjCGenerator):
Source/WebCore:
Test: http/tests/inspector/network/resource-response-security.html
* loader/ResourceLoader.h:
(WebCore::ResourceLoader::shouldIncludeCertificateInfo const):
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::shouldIncludeCertificateInfo const): Added.
Always save certificate information when WebInspector is open.
* platform/network/CertificateInfoBase.h: Added.
(WebCore::CertificateInfoBase::containsNonRootSHA1SignedCertificate const):
(WebCore::CertificateInfoBase::summaryInfo const):
(WebCore::CertificateInfoBase::isEmpty const):
* platform/network/cf/CertificateInfo.h:
(WebCore::CertificateInfo::summaryInfo const): Added.
* platform/network/cf/CertificateInfoCFNet.cpp: Renamed from Source/WebCore/platform/network/mac/CertificateInfoMac.mm.
(WebCore::CertificateInfo::containsNonRootSHA1SignedCertificate):
(WebCore::CertificateInfo::summaryInfo const): Added.
* platform/network/curl/CertificateInfo.h:
(WebCore::CertificateInfo::summaryInfo const): Added.
(WebCore::CertificateInfo::isEmpty const): Added.
* platform/network/soup/CertificateInfo.h:
(WebCore::CertificateInfo::summaryInfo const): Added.
(WebCore::CertificateInfo::isEmpty const): Added.
Create base class for `CertificateInfo` so that `InspectorNetworkAgent` doesn't need to have
platform-specific code in its implementation.
* platform/network/cocoa/CertificateInfoCocoa.mm: Renamed from Source/WebCore/platform/network/mac/CertificateInfoMac.mm.
* platform/network/curl/CertificateInfoCFNet.cpp: Renamed from Source/WebCore/platform/network/curl/CertificateInfo.cpp.
* platform/network/soup/CertificateInfoSoup.cpp: Renamed from Source/WebCore/platform/network/soup/CertificateInfo.cpp.
* inspector/NetworkResourcesData.h:
(WebCore::NetworkResourcesData::ResourceData::certificateInfo const): Added.
(WebCore::NetworkResourcesData::ResourceData::setCertificateInfo): Added.
* inspector/NetworkResourcesData.cpp:
(WebCore::NetworkResourcesData::responseReceived):
* inspector/agents/InspectorNetworkAgent.cpp:
(WebCore::InspectorNetworkAgent::buildObjectForResourceResponse):
* PlatformAppleWin.cmake:
* PlatformMac.cmake:
* SourcesCocoa.txt:
* WebCore.xcodeproj/project.pbxproj:
* platform/Curl.cmake:
* platform/SourcesSoup.txt:
Source/WebInspectorUI:
* UserInterface/Controllers/NetworkManager.js:
(WI.NetworkManager.prototype.resourceRequestWasServedFromMemoryCache):
(WI.NetworkManager.prototype.resourceRequestDidReceiveResponse):
* UserInterface/Models/Resource.js:
(WI.Resource.prototype.get responseSecurity): Added.
(WI.Resource.prototype.get loadedSecurely): Added.
(WI.Resource.prototype.updateForResponse):
* UserInterface/Views/NetworkResourceDetailView.js:
(WI.NetworkResourceDetailView):
(WI.NetworkResourceDetailView.prototype.initialLayout):
(WI.NetworkResourceDetailView.prototype.showContentViewForIdentifier):
* UserInterface/Views/NetworkResourceDetailView.css:
(.content-view.resource-details .go-to-arrow): Added.
(.content-view.resource-details.showing-find-banner .search-highlight): Added.
* UserInterface/Views/ResourceSecurityContentView.js: Added.
(WI.ResourceSecurityContentView):
(WI.ResourceSecurityContentView.prototype.initialLayout):
(WI.ResourceSecurityContentView.prototype.layout):
(WI.ResourceSecurityContentView.prototype.closed):
(WI.ResourceSecurityContentView.prototype.get supportsSearch):
(WI.ResourceSecurityContentView.prototype.get numberOfSearchResults):
(WI.ResourceSecurityContentView.prototype.get hasPerformedSearch):
(WI.ResourceSecurityContentView.prototype.set automaticallyRevealFirstSearchResult):
(WI.ResourceSecurityContentView.prototype.performSearch):
(WI.ResourceSecurityContentView.prototype.searchCleared):
(WI.ResourceSecurityContentView.prototype.revealPreviousSearchResult):
(WI.ResourceSecurityContentView.prototype.revealNextSearchResult):
(WI.ResourceSecurityContentView.prototype._refreshCetificateSection):
(WI.ResourceSecurityContentView.prototype._perfomSearchOnKeyValuePairs):
(WI.ResourceSecurityContentView.prototype._revealSearchResult):
(WI.ResourceSecurityContentView.prototype._handleResourceResponseReceived):
* UserInterface/Views/ResourceSecurityContentView.css: Added.
(body[dir] .resource-security > section.certificate > .details):
(.resource-security .details .key):
(.resource-security .dns-name + .dns-name > .key,):
(.resource-security .show-more):
(@media (prefers-dark-interface) body[dir] .resource-security > section.certificate > .details):
(@media (prefers-dark-interface) .resource-security .details .key):
* UserInterface/Views/ResourceCookiesContentView.js:
(WI.ResourceCookiesContentView.prototype._refreshRequestCookiesSection):
(WI.ResourceCookiesContentView.prototype._refreshResponseCookiesSection):
(WI.ResourceCookiesContentView.prototype._markIncompleteSectionWithMessage): Deleted.
(WI.ResourceCookiesContentView.prototype._markIncompleteSectionWithLoadingIndicator): Deleted.
* UserInterface/Views/ResourceHeadersContentView.js:
(WI.ResourceHeadersContentView.prototype._refreshSummarySection):
(WI.ResourceHeadersContentView.prototype._refreshRedirectHeadersSections):
(WI.ResourceHeadersContentView.prototype._refreshRequestHeadersSection):
(WI.ResourceHeadersContentView.prototype._refreshResponseHeadersSection):
(WI.ResourceHeadersContentView.prototype._refreshQueryStringSection):
(WI.ResourceHeadersContentView.prototype._refreshRequestDataSection):
(WI.ResourceHeadersContentView.prototype._markIncompleteSectionWithMessage): Deleted.
(WI.ResourceHeadersContentView.prototype._markIncompleteSectionWithLoadingIndicator): Deleted.
(WI.ResourceHeadersContentView.prototype._appendKeyValuePair): Deleted.
* UserInterface/Views/ResourceHeadersContentView.css:
(.resource-headers .h1-status > .key,):
(body[dir] .resource-headers > section.error > .details): Deleted.
(.resource-headers > section.error .key): Deleted.
(.resource-headers .details): Deleted.
(.resource-headers .details .pair): Deleted.
(body[dir=rtl] .resource-headers .details .pair): Deleted.
(.resource-headers .details .key): Deleted.
(.resource-headers .value): Deleted.
(.resource-headers .go-to-arrow): Deleted.
(.resource-headers.showing-find-banner .search-highlight): Deleted.
* UserInterface/Views/ResourceDetailsSection.js:
(WI.ResourceDetailsSection.prototype.markIncompleteSectionWithMessage): Added.
(WI.ResourceDetailsSection.prototype.markIncompleteSectionWithLoadingIndicator): Added.
(WI.ResourceDetailsSection.prototype.appendKeyValuePair): Added.
* UserInterface/Views/ResourceDetailsSection.css:
(.resource-details > section > .details): Added.
(.resource-details > section > .details > .pair): Added.
(body[dir=rtl] .resource-details > section > .details > .pair): Added.
(.resource-details > section > .details > .pair > .key): Added.
(.resource-details > section > .details > .pair > .value): Added.
(body[dir] .resource-details > section.error > .details): Added.
(.resource-details > section.error > .details > .pair > .key): Added.
Move commonly used functions/styles from container classes onto this object.
* UserInterface/Main.html:
* Localizations/en.lproj/localizedStrings.js:
LayoutTests:
* http/tests/inspector/network/resource-response-security-expected.txt: Added.
* http/tests/inspector/network/resource-response-security.html: Added.
* platform/gtk/TestExpectations:
* platform/wincairo/TestExpectations:
* platform/wpe/TestExpectations:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@238122 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/WebInspectorUI/ChangeLog b/Source/WebInspectorUI/ChangeLog
index 7d849a9..c4198ae 100644
--- a/Source/WebInspectorUI/ChangeLog
+++ b/Source/WebInspectorUI/ChangeLog
@@ -1,3 +1,96 @@
+2018-11-12 Devin Rousso <drousso@apple.com>
+
+ Web Inspector: Network: show secure certificate details per-request
+ https://bugs.webkit.org/show_bug.cgi?id=191447
+ <rdar://problem/30019476>
+
+ Reviewed by Joseph Pecoraro.
+
+ * UserInterface/Controllers/NetworkManager.js:
+ (WI.NetworkManager.prototype.resourceRequestWasServedFromMemoryCache):
+ (WI.NetworkManager.prototype.resourceRequestDidReceiveResponse):
+
+ * UserInterface/Models/Resource.js:
+ (WI.Resource.prototype.get responseSecurity): Added.
+ (WI.Resource.prototype.get loadedSecurely): Added.
+ (WI.Resource.prototype.updateForResponse):
+
+ * UserInterface/Views/NetworkResourceDetailView.js:
+ (WI.NetworkResourceDetailView):
+ (WI.NetworkResourceDetailView.prototype.initialLayout):
+ (WI.NetworkResourceDetailView.prototype.showContentViewForIdentifier):
+ * UserInterface/Views/NetworkResourceDetailView.css:
+ (.content-view.resource-details .go-to-arrow): Added.
+ (.content-view.resource-details.showing-find-banner .search-highlight): Added.
+
+ * UserInterface/Views/ResourceSecurityContentView.js: Added.
+ (WI.ResourceSecurityContentView):
+ (WI.ResourceSecurityContentView.prototype.initialLayout):
+ (WI.ResourceSecurityContentView.prototype.layout):
+ (WI.ResourceSecurityContentView.prototype.closed):
+ (WI.ResourceSecurityContentView.prototype.get supportsSearch):
+ (WI.ResourceSecurityContentView.prototype.get numberOfSearchResults):
+ (WI.ResourceSecurityContentView.prototype.get hasPerformedSearch):
+ (WI.ResourceSecurityContentView.prototype.set automaticallyRevealFirstSearchResult):
+ (WI.ResourceSecurityContentView.prototype.performSearch):
+ (WI.ResourceSecurityContentView.prototype.searchCleared):
+ (WI.ResourceSecurityContentView.prototype.revealPreviousSearchResult):
+ (WI.ResourceSecurityContentView.prototype.revealNextSearchResult):
+ (WI.ResourceSecurityContentView.prototype._refreshCetificateSection):
+ (WI.ResourceSecurityContentView.prototype._perfomSearchOnKeyValuePairs):
+ (WI.ResourceSecurityContentView.prototype._revealSearchResult):
+ (WI.ResourceSecurityContentView.prototype._handleResourceResponseReceived):
+ * UserInterface/Views/ResourceSecurityContentView.css: Added.
+ (body[dir] .resource-security > section.certificate > .details):
+ (.resource-security .details .key):
+ (.resource-security .dns-name + .dns-name > .key,):
+ (.resource-security .show-more):
+ (@media (prefers-dark-interface) body[dir] .resource-security > section.certificate > .details):
+ (@media (prefers-dark-interface) .resource-security .details .key):
+
+ * UserInterface/Views/ResourceCookiesContentView.js:
+ (WI.ResourceCookiesContentView.prototype._refreshRequestCookiesSection):
+ (WI.ResourceCookiesContentView.prototype._refreshResponseCookiesSection):
+ (WI.ResourceCookiesContentView.prototype._markIncompleteSectionWithMessage): Deleted.
+ (WI.ResourceCookiesContentView.prototype._markIncompleteSectionWithLoadingIndicator): Deleted.
+ * UserInterface/Views/ResourceHeadersContentView.js:
+ (WI.ResourceHeadersContentView.prototype._refreshSummarySection):
+ (WI.ResourceHeadersContentView.prototype._refreshRedirectHeadersSections):
+ (WI.ResourceHeadersContentView.prototype._refreshRequestHeadersSection):
+ (WI.ResourceHeadersContentView.prototype._refreshResponseHeadersSection):
+ (WI.ResourceHeadersContentView.prototype._refreshQueryStringSection):
+ (WI.ResourceHeadersContentView.prototype._refreshRequestDataSection):
+ (WI.ResourceHeadersContentView.prototype._markIncompleteSectionWithMessage): Deleted.
+ (WI.ResourceHeadersContentView.prototype._markIncompleteSectionWithLoadingIndicator): Deleted.
+ (WI.ResourceHeadersContentView.prototype._appendKeyValuePair): Deleted.
+ * UserInterface/Views/ResourceHeadersContentView.css:
+ (.resource-headers .h1-status > .key,):
+ (body[dir] .resource-headers > section.error > .details): Deleted.
+ (.resource-headers > section.error .key): Deleted.
+ (.resource-headers .details): Deleted.
+ (.resource-headers .details .pair): Deleted.
+ (body[dir=rtl] .resource-headers .details .pair): Deleted.
+ (.resource-headers .details .key): Deleted.
+ (.resource-headers .value): Deleted.
+ (.resource-headers .go-to-arrow): Deleted.
+ (.resource-headers.showing-find-banner .search-highlight): Deleted.
+ * UserInterface/Views/ResourceDetailsSection.js:
+ (WI.ResourceDetailsSection.prototype.markIncompleteSectionWithMessage): Added.
+ (WI.ResourceDetailsSection.prototype.markIncompleteSectionWithLoadingIndicator): Added.
+ (WI.ResourceDetailsSection.prototype.appendKeyValuePair): Added.
+ * UserInterface/Views/ResourceDetailsSection.css:
+ (.resource-details > section > .details): Added.
+ (.resource-details > section > .details > .pair): Added.
+ (body[dir=rtl] .resource-details > section > .details > .pair): Added.
+ (.resource-details > section > .details > .pair > .key): Added.
+ (.resource-details > section > .details > .pair > .value): Added.
+ (body[dir] .resource-details > section.error > .details): Added.
+ (.resource-details > section.error > .details > .pair > .key): Added.
+ Move commonly used functions/styles from container classes onto this object.
+
+ * UserInterface/Main.html:
+ * Localizations/en.lproj/localizedStrings.js:
+
2018-11-12 Matt Baker <mattbaker@apple.com>
Web Inspector: Table should support shift-extending the row selection