Index: content/browser/devtools/protocol/security_handler.cc |
diff --git a/content/browser/devtools/protocol/security_handler.cc b/content/browser/devtools/protocol/security_handler.cc |
index f21ff9f9453a470f342bc6bfe42b94dcf40433ea..aa44273bd0bf7d177a82a35f119157763e2b995f 100644 |
--- a/content/browser/devtools/protocol/security_handler.cc |
+++ b/content/browser/devtools/protocol/security_handler.cc |
@@ -6,7 +6,7 @@ |
#include <string> |
-#include "content/browser/devtools/protocol/devtools_protocol_dispatcher.h" |
+#include "content/browser/frame_host/render_frame_host_impl.h" |
#include "content/public/browser/navigation_controller.h" |
#include "content/public/browser/navigation_entry.h" |
#include "content/public/browser/security_style_explanations.h" |
@@ -15,10 +15,9 @@ |
#include "content/public/browser/web_contents_delegate.h" |
namespace content { |
-namespace devtools { |
-namespace security { |
+namespace protocol { |
-typedef DevToolsProtocolClient::Response Response; |
+using Explanations = protocol::Array<Security::SecurityStateExplanation>; |
namespace { |
@@ -26,33 +25,32 @@ std::string SecurityStyleToProtocolSecurityState( |
blink::WebSecurityStyle security_style) { |
switch (security_style) { |
case blink::WebSecurityStyleUnknown: |
- return kSecurityStateUnknown; |
+ return Security::SecurityStateEnum::Unknown; |
case blink::WebSecurityStyleUnauthenticated: |
- return kSecurityStateNeutral; |
+ return Security::SecurityStateEnum::Neutral; |
case blink::WebSecurityStyleAuthenticationBroken: |
- return kSecurityStateInsecure; |
+ return Security::SecurityStateEnum::Insecure; |
case blink::WebSecurityStyleWarning: |
- return kSecurityStateWarning; |
+ return Security::SecurityStateEnum::Warning; |
case blink::WebSecurityStyleAuthenticated: |
- return kSecurityStateSecure; |
+ return Security::SecurityStateEnum::Secure; |
default: |
NOTREACHED(); |
- return kSecurityStateUnknown; |
+ return Security::SecurityStateEnum::Unknown; |
} |
} |
void AddExplanations( |
const std::string& security_style, |
const std::vector<SecurityStyleExplanation>& explanations_to_add, |
- std::vector<scoped_refptr<SecurityStateExplanation>>* explanations) { |
+ Explanations* explanations) { |
for (const auto& it : explanations_to_add) { |
- scoped_refptr<SecurityStateExplanation> explanation = |
- SecurityStateExplanation::Create() |
- ->set_security_state(security_style) |
- ->set_summary(it.summary) |
- ->set_description(it.description) |
- ->set_has_certificate(it.has_certificate); |
- explanations->push_back(explanation); |
+ explanations->addItem(Security::SecurityStateExplanation::Create() |
+ .SetSecurityState(security_style) |
+ .SetSummary(it.summary) |
+ .SetDescription(it.description) |
+ .SetHasCertificate(it.has_certificate) |
+ .Build()); |
} |
} |
@@ -66,8 +64,9 @@ SecurityHandler::SecurityHandler() |
SecurityHandler::~SecurityHandler() { |
} |
-void SecurityHandler::SetClient(std::unique_ptr<Client> client) { |
- client_.swap(client); |
+void SecurityHandler::Wire(UberDispatcher* dispatcher) { |
+ frontend_.reset(new Security::Frontend(dispatcher->channel())); |
+ Security::Dispatcher::wire(dispatcher, this); |
} |
void SecurityHandler::AttachToRenderFrameHost() { |
@@ -80,7 +79,7 @@ void SecurityHandler::AttachToRenderFrameHost() { |
DidChangeVisibleSecurityState(); |
} |
-void SecurityHandler::SetRenderFrameHost(RenderFrameHost* host) { |
+void SecurityHandler::SetRenderFrameHost(RenderFrameHostImpl* host) { |
host_ = host; |
if (enabled_ && host_) |
AttachToRenderFrameHost(); |
@@ -97,42 +96,42 @@ void SecurityHandler::DidChangeVisibleSecurityState() { |
const std::string security_state = |
SecurityStyleToProtocolSecurityState(security_style); |
- std::vector<scoped_refptr<SecurityStateExplanation>> explanations; |
- AddExplanations(kSecurityStateInsecure, |
+ std::unique_ptr<Explanations> explanations = Explanations::create(); |
+ AddExplanations(Security::SecurityStateEnum::Insecure, |
security_style_explanations.broken_explanations, |
- &explanations); |
- AddExplanations(kSecurityStateNeutral, |
+ explanations.get()); |
+ AddExplanations(Security::SecurityStateEnum::Neutral, |
security_style_explanations.unauthenticated_explanations, |
- &explanations); |
- AddExplanations(kSecurityStateSecure, |
+ explanations.get()); |
+ AddExplanations(Security::SecurityStateEnum::Secure, |
security_style_explanations.secure_explanations, |
- &explanations); |
- AddExplanations(kSecurityStateInfo, |
- security_style_explanations.info_explanations, &explanations); |
- |
- scoped_refptr<InsecureContentStatus> insecure_content_status = |
- InsecureContentStatus::Create() |
- ->set_ran_mixed_content(security_style_explanations.ran_mixed_content) |
- ->set_displayed_mixed_content( |
+ explanations.get()); |
+ AddExplanations(Security::SecurityStateEnum::Info, |
+ security_style_explanations.info_explanations, |
+ explanations.get()); |
+ |
+ std::unique_ptr<Security::InsecureContentStatus> insecure_status = |
+ Security::InsecureContentStatus::Create() |
+ .SetRanMixedContent(security_style_explanations.ran_mixed_content) |
+ .SetDisplayedMixedContent( |
security_style_explanations.displayed_mixed_content) |
- ->set_ran_content_with_cert_errors( |
+ .SetRanContentWithCertErrors( |
security_style_explanations.ran_content_with_cert_errors) |
- ->set_displayed_content_with_cert_errors( |
+ .SetDisplayedContentWithCertErrors( |
security_style_explanations.displayed_content_with_cert_errors) |
- ->set_ran_insecure_content_style(SecurityStyleToProtocolSecurityState( |
+ .SetRanInsecureContentStyle(SecurityStyleToProtocolSecurityState( |
security_style_explanations.ran_insecure_content_style)) |
- ->set_displayed_insecure_content_style( |
+ .SetDisplayedInsecureContentStyle( |
SecurityStyleToProtocolSecurityState( |
security_style_explanations |
- .displayed_insecure_content_style)); |
- |
- client_->SecurityStateChanged( |
- SecurityStateChangedParams::Create() |
- ->set_security_state(security_state) |
- ->set_scheme_is_cryptographic( |
- security_style_explanations.scheme_is_cryptographic) |
- ->set_insecure_content_status(insecure_content_status) |
- ->set_explanations(explanations)); |
+ .displayed_insecure_content_style)) |
+ .Build(); |
+ |
+ frontend_->SecurityStateChanged( |
+ security_state, |
+ Maybe<Explanations>(std::move(explanations)), |
+ Maybe<Security::InsecureContentStatus>(std::move(insecure_status)), |
+ Maybe<bool>(security_style_explanations.scheme_is_cryptographic)); |
} |
Response SecurityHandler::Enable() { |
@@ -151,17 +150,16 @@ Response SecurityHandler::Disable() { |
Response SecurityHandler::ShowCertificateViewer() { |
if (!host_) |
- return Response::InternalError("Could not connect to view"); |
+ return Response::InternalError(); |
WebContents* web_contents = WebContents::FromRenderFrameHost(host_); |
scoped_refptr<net::X509Certificate> certificate = |
web_contents->GetController().GetVisibleEntry()->GetSSL().certificate; |
if (!certificate) |
- return Response::InternalError("Could not find certificate"); |
+ return Response::Error("Could not find certificate"); |
web_contents->GetDelegate()->ShowCertificateViewerInDevTools( |
web_contents, certificate); |
return Response::OK(); |
} |
-} // namespace security |
-} // namespace devtools |
+} // namespace protocol |
} // namespace content |