summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/core/inspector/inspector_audits_agent.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/renderer/core/inspector/inspector_audits_agent.cc')
-rw-r--r--chromium/third_party/blink/renderer/core/inspector/inspector_audits_agent.cc225
1 files changed, 177 insertions, 48 deletions
diff --git a/chromium/third_party/blink/renderer/core/inspector/inspector_audits_agent.cc b/chromium/third_party/blink/renderer/core/inspector/inspector_audits_agent.cc
index 7dfae515abc..de81a8e3df5 100644
--- a/chromium/third_party/blink/renderer/core/inspector/inspector_audits_agent.cc
+++ b/chromium/third_party/blink/renderer/core/inspector/inspector_audits_agent.cc
@@ -153,31 +153,43 @@ void InspectorAuditsAgent::InnerEnable() {
}
namespace {
-std::unique_ptr<protocol::Array<protocol::Audits::AffectedCookie>> BuildCookies(
- const WTF::Vector<mojom::blink::AffectedCookiePtr>& cookies) {
- auto result =
- std::make_unique<protocol::Array<protocol::Audits::AffectedCookie>>();
- for (const auto& cookie : cookies) {
- auto protocol_cookie = std::move(protocol::Audits::AffectedCookie::create()
- .setName(cookie->name)
- .setPath(cookie->path)
- .setDomain(cookie->domain));
- if (cookie->site_for_cookies) {
- protocol_cookie.setSiteForCookies(*cookie->site_for_cookies);
- }
- result->push_back(protocol_cookie.build());
+std::unique_ptr<protocol::Audits::AffectedCookie> BuildAffectedCookie(
+ const mojom::blink::AffectedCookiePtr& cookie) {
+ auto protocol_cookie = std::move(protocol::Audits::AffectedCookie::create()
+ .setName(cookie->name)
+ .setPath(cookie->path)
+ .setDomain(cookie->domain));
+ return protocol_cookie.build();
+}
+
+std::unique_ptr<protocol::Audits::AffectedRequest> BuildAffectedRequest(
+ const mojom::blink::AffectedRequestPtr& request) {
+ auto protocol_request = protocol::Audits::AffectedRequest::create()
+ .setRequestId(request->request_id)
+ .build();
+ if (!request->url.IsEmpty()) {
+ protocol_request->setUrl(request->url);
}
- return result;
+ return protocol_request;
+}
+
+std::unique_ptr<protocol::Audits::AffectedFrame> BuildAffectedFrame(
+ const mojom::blink::AffectedFramePtr& frame) {
+ return protocol::Audits::AffectedFrame::create()
+ .setFrameId(frame->frame_id)
+ .build();
}
+
blink::protocol::String InspectorIssueCodeValue(
mojom::blink::InspectorIssueCode code) {
switch (code) {
case mojom::blink::InspectorIssueCode::kSameSiteCookieIssue:
return protocol::Audits::InspectorIssueCodeEnum::SameSiteCookieIssue;
+ case mojom::blink::InspectorIssueCode::kMixedContentIssue:
+ return protocol::Audits::InspectorIssueCodeEnum::MixedContentIssue;
}
- NOTREACHED();
- return "unknown";
}
+
protocol::String BuildCookieExclusionReason(
mojom::blink::SameSiteCookieExclusionReason exclusion_reason) {
switch (exclusion_reason) {
@@ -190,9 +202,8 @@ protocol::String BuildCookieExclusionReason(
return protocol::Audits::SameSiteCookieExclusionReasonEnum::
ExcludeSameSiteNoneInsecure;
}
- NOTREACHED();
- return "unknown";
}
+
std::unique_ptr<std::vector<blink::protocol::String>>
BuildCookieExclusionReasons(
const WTF::Vector<mojom::blink::SameSiteCookieExclusionReason>&
@@ -204,6 +215,7 @@ BuildCookieExclusionReasons(
}
return protocol_exclusion_reasons;
}
+
protocol::String BuildCookieWarningReason(
mojom::blink::SameSiteCookieWarningReason warning_reason) {
switch (warning_reason) {
@@ -220,33 +232,28 @@ protocol::String BuildCookieWarningReason(
return protocol::Audits::SameSiteCookieWarningReasonEnum::
WarnSameSiteUnspecifiedLaxAllowUnsafe;
case blink::mojom::blink::SameSiteCookieWarningReason::
- WarnSameSiteCrossSchemeSecureUrlMethodUnsafe:
- return protocol::Audits::SameSiteCookieWarningReasonEnum::
- WarnSameSiteCrossSchemeSecureUrlMethodUnsafe;
- case blink::mojom::blink::SameSiteCookieWarningReason::
- WarnSameSiteCrossSchemeSecureUrlLax:
+ WarnSameSiteStrictLaxDowngradeStrict:
return protocol::Audits::SameSiteCookieWarningReasonEnum::
- WarnSameSiteCrossSchemeSecureUrlLax;
+ WarnSameSiteStrictLaxDowngradeStrict;
case blink::mojom::blink::SameSiteCookieWarningReason::
- WarnSameSiteCrossSchemeSecureUrlStrict:
+ WarnSameSiteStrictCrossDowngradeStrict:
return protocol::Audits::SameSiteCookieWarningReasonEnum::
- WarnSameSiteCrossSchemeSecureUrlStrict;
+ WarnSameSiteStrictCrossDowngradeStrict;
case blink::mojom::blink::SameSiteCookieWarningReason::
- WarnSameSiteCrossSchemeInsecureUrlMethodUnsafe:
+ WarnSameSiteStrictCrossDowngradeLax:
return protocol::Audits::SameSiteCookieWarningReasonEnum::
- WarnSameSiteCrossSchemeInsecureUrlMethodUnsafe;
+ WarnSameSiteStrictCrossDowngradeLax;
case blink::mojom::blink::SameSiteCookieWarningReason::
- WarnSameSiteCrossSchemeInsecureUrlLax:
+ WarnSameSiteLaxCrossDowngradeStrict:
return protocol::Audits::SameSiteCookieWarningReasonEnum::
- WarnSameSiteCrossSchemeInsecureUrlLax;
+ WarnSameSiteLaxCrossDowngradeStrict;
case blink::mojom::blink::SameSiteCookieWarningReason::
- WarnSameSiteCrossSchemeInsecureUrlStrict:
+ WarnSameSiteLaxCrossDowngradeLax:
return protocol::Audits::SameSiteCookieWarningReasonEnum::
- WarnSameSiteCrossSchemeInsecureUrlStrict;
+ WarnSameSiteLaxCrossDowngradeLax;
}
- NOTREACHED();
- return "unknown";
}
+
std::unique_ptr<std::vector<blink::protocol::String>> BuildCookieWarningReasons(
const WTF::Vector<mojom::blink::SameSiteCookieWarningReason>&
warning_reasons) {
@@ -257,32 +264,154 @@ std::unique_ptr<std::vector<blink::protocol::String>> BuildCookieWarningReasons(
}
return protocol_warning_reasons;
}
+protocol::String BuildCookieOperation(
+ mojom::blink::SameSiteCookieOperation operation) {
+ switch (operation) {
+ case blink::mojom::blink::SameSiteCookieOperation::SetCookie:
+ return protocol::Audits::SameSiteCookieOperationEnum::SetCookie;
+ case blink::mojom::blink::SameSiteCookieOperation::ReadCookie:
+ return protocol::Audits::SameSiteCookieOperationEnum::ReadCookie;
+ }
+}
+
+protocol::String BuildMixedContentResolutionStatus(
+ mojom::blink::MixedContentResolutionStatus resolution_type) {
+ switch (resolution_type) {
+ case blink::mojom::blink::MixedContentResolutionStatus::MixedContentBlocked:
+ return protocol::Audits::MixedContentResolutionStatusEnum::
+ MixedContentBlocked;
+ case blink::mojom::blink::MixedContentResolutionStatus::
+ MixedContentAutomaticallyUpgraded:
+ return protocol::Audits::MixedContentResolutionStatusEnum::
+ MixedContentAutomaticallyUpgraded;
+ case blink::mojom::blink::MixedContentResolutionStatus::MixedContentWarning:
+ return protocol::Audits::MixedContentResolutionStatusEnum::
+ MixedContentWarning;
+ }
+}
+
+protocol::String BuildMixedContentResourceType(
+ mojom::blink::RequestContextType request_context) {
+ switch (request_context) {
+ case blink::mojom::blink::RequestContextType::AUDIO:
+ return protocol::Audits::MixedContentResourceTypeEnum::Audio;
+ case blink::mojom::blink::RequestContextType::BEACON:
+ return protocol::Audits::MixedContentResourceTypeEnum::Beacon;
+ case blink::mojom::blink::RequestContextType::CSP_REPORT:
+ return protocol::Audits::MixedContentResourceTypeEnum::CSPReport;
+ case blink::mojom::blink::RequestContextType::DOWNLOAD:
+ return protocol::Audits::MixedContentResourceTypeEnum::Download;
+ case blink::mojom::blink::RequestContextType::EMBED:
+ return protocol::Audits::MixedContentResourceTypeEnum::PluginResource;
+ case blink::mojom::blink::RequestContextType::EVENT_SOURCE:
+ return protocol::Audits::MixedContentResourceTypeEnum::EventSource;
+ case blink::mojom::blink::RequestContextType::FAVICON:
+ return protocol::Audits::MixedContentResourceTypeEnum::Favicon;
+ case blink::mojom::blink::RequestContextType::FETCH:
+ return protocol::Audits::MixedContentResourceTypeEnum::Resource;
+ case blink::mojom::blink::RequestContextType::FONT:
+ return protocol::Audits::MixedContentResourceTypeEnum::Font;
+ case blink::mojom::blink::RequestContextType::FORM:
+ return protocol::Audits::MixedContentResourceTypeEnum::Form;
+ case blink::mojom::blink::RequestContextType::FRAME:
+ return protocol::Audits::MixedContentResourceTypeEnum::Frame;
+ case blink::mojom::blink::RequestContextType::HYPERLINK:
+ return protocol::Audits::MixedContentResourceTypeEnum::Resource;
+ case blink::mojom::blink::RequestContextType::IFRAME:
+ return protocol::Audits::MixedContentResourceTypeEnum::Frame;
+ case blink::mojom::blink::RequestContextType::IMAGE:
+ return protocol::Audits::MixedContentResourceTypeEnum::Image;
+ case blink::mojom::blink::RequestContextType::IMAGE_SET:
+ return protocol::Audits::MixedContentResourceTypeEnum::Image;
+ case blink::mojom::blink::RequestContextType::IMPORT:
+ return protocol::Audits::MixedContentResourceTypeEnum::Import;
+ case blink::mojom::blink::RequestContextType::INTERNAL:
+ return protocol::Audits::MixedContentResourceTypeEnum::Resource;
+ case blink::mojom::blink::RequestContextType::LOCATION:
+ return protocol::Audits::MixedContentResourceTypeEnum::Resource;
+ case blink::mojom::blink::RequestContextType::MANIFEST:
+ return protocol::Audits::MixedContentResourceTypeEnum::Manifest;
+ case blink::mojom::blink::RequestContextType::OBJECT:
+ return protocol::Audits::MixedContentResourceTypeEnum::PluginResource;
+ case blink::mojom::blink::RequestContextType::PING:
+ return protocol::Audits::MixedContentResourceTypeEnum::Ping;
+ case blink::mojom::blink::RequestContextType::PLUGIN:
+ return protocol::Audits::MixedContentResourceTypeEnum::PluginData;
+ case blink::mojom::blink::RequestContextType::PREFETCH:
+ return protocol::Audits::MixedContentResourceTypeEnum::Prefetch;
+ case blink::mojom::blink::RequestContextType::SCRIPT:
+ return protocol::Audits::MixedContentResourceTypeEnum::Script;
+ case blink::mojom::blink::RequestContextType::SERVICE_WORKER:
+ return protocol::Audits::MixedContentResourceTypeEnum::ServiceWorker;
+ case blink::mojom::blink::RequestContextType::SHARED_WORKER:
+ return protocol::Audits::MixedContentResourceTypeEnum::SharedWorker;
+ case blink::mojom::blink::RequestContextType::STYLE:
+ return protocol::Audits::MixedContentResourceTypeEnum::Stylesheet;
+ case blink::mojom::blink::RequestContextType::SUBRESOURCE:
+ return protocol::Audits::MixedContentResourceTypeEnum::Resource;
+ case blink::mojom::blink::RequestContextType::TRACK:
+ return protocol::Audits::MixedContentResourceTypeEnum::Track;
+ case blink::mojom::blink::RequestContextType::UNSPECIFIED:
+ return protocol::Audits::MixedContentResourceTypeEnum::Resource;
+ case blink::mojom::blink::RequestContextType::VIDEO:
+ return protocol::Audits::MixedContentResourceTypeEnum::Video;
+ case blink::mojom::blink::RequestContextType::WORKER:
+ return protocol::Audits::MixedContentResourceTypeEnum::Worker;
+ case blink::mojom::blink::RequestContextType::XML_HTTP_REQUEST:
+ return protocol::Audits::MixedContentResourceTypeEnum::XMLHttpRequest;
+ case blink::mojom::blink::RequestContextType::XSLT:
+ return protocol::Audits::MixedContentResourceTypeEnum::XSLT;
+ }
+}
+
} // namespace
void InspectorAuditsAgent::InspectorIssueAdded(InspectorIssue* issue) {
auto issueDetails = protocol::Audits::InspectorIssueDetails::create();
- if (issue->Details()->sameSiteCookieIssueDetails) {
+ if (const auto* d = issue->Details()->sameSiteCookieIssueDetails.get()) {
auto sameSiteCookieDetails =
- protocol::Audits::SameSiteCookieIssueDetails::create()
- .setCookieExclusionReasons(BuildCookieExclusionReasons(
- issue->Details()->sameSiteCookieIssueDetails->exclusionReason))
- .setCookieWarningReasons(BuildCookieWarningReasons(
- issue->Details()->sameSiteCookieIssueDetails->warningReason))
- .build();
- issueDetails.setSameSiteCookieIssueDetails(
- std::move(sameSiteCookieDetails));
+ std::move(protocol::Audits::SameSiteCookieIssueDetails::create()
+ .setCookie(BuildAffectedCookie(d->cookie))
+ .setCookieExclusionReasons(
+ BuildCookieExclusionReasons(d->exclusionReason))
+ .setCookieWarningReasons(
+ BuildCookieWarningReasons(d->warningReason))
+ .setOperation(BuildCookieOperation(d->operation)));
+
+ if (d->site_for_cookies) {
+ sameSiteCookieDetails.setSiteForCookies(*d->site_for_cookies);
+ }
+ if (d->cookie_url) {
+ sameSiteCookieDetails.setCookieUrl(*d->cookie_url);
+ }
+ if (d->request) {
+ sameSiteCookieDetails.setRequest(BuildAffectedRequest(d->request));
+ }
+ issueDetails.setSameSiteCookieIssueDetails(sameSiteCookieDetails.build());
}
- auto affectedResources =
- protocol::Audits::AffectedResources::create()
- .setCookies(BuildCookies(issue->Resources()->cookies))
- .build();
+ if (const auto* d = issue->Details()->mixed_content_issue_details.get()) {
+ auto mixedContentDetails =
+ protocol::Audits::MixedContentIssueDetails::create()
+ .setResourceType(BuildMixedContentResourceType(d->request_context))
+ .setResolutionStatus(
+ BuildMixedContentResolutionStatus(d->resolution_status))
+ .setInsecureURL(d->insecure_url)
+ .setMainResourceURL(d->main_resource_url)
+ .build();
+ if (d->request) {
+ mixedContentDetails->setRequest(BuildAffectedRequest(d->request));
+ }
+ if (d->frame) {
+ mixedContentDetails->setFrame(BuildAffectedFrame(d->frame));
+ }
+ issueDetails.setMixedContentIssueDetails(std::move(mixedContentDetails));
+ }
auto inspector_issue = protocol::Audits::InspectorIssue::create()
.setCode(InspectorIssueCodeValue(issue->Code()))
.setDetails(issueDetails.build())
- .setResources(std::move(affectedResources))
.build();
GetFrontend()->issueAdded(std::move(inspector_issue));