summaryrefslogtreecommitdiffstats
path: root/content/common/ssl_status_serialization.cc
diff options
context:
space:
mode:
authorjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-12 20:42:51 +0000
committerjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-12 20:42:51 +0000
commit35be7ecb614853d450ea138e2c97cae9633a40a8 (patch)
tree4ac9b3433b0ab401b8fdff8f32bd5f973fd140f7 /content/common/ssl_status_serialization.cc
parentc9ec57f7bcc1fb9f8fddfc89e2746b0206691711 (diff)
downloadchromium_src-35be7ecb614853d450ea138e2c97cae9633a40a8.zip
chromium_src-35be7ecb614853d450ea138e2c97cae9633a40a8.tar.gz
chromium_src-35be7ecb614853d450ea138e2c97cae9633a40a8.tar.bz2
Move ContextMenuParams struct from webkit/glue to content/public/common. The reasons are:
-this struct wasn't used at all in webkit layer, so no need to have it there -we can avoid exposing content layer's serialization of SSLInfo to embedders -avoid mentioning routing_ids in the webkit layer BUG=98716 Review URL: https://chromiumcodereview.appspot.com/9382037 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@121673 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/common/ssl_status_serialization.cc')
-rw-r--r--content/common/ssl_status_serialization.cc48
1 files changed, 48 insertions, 0 deletions
diff --git a/content/common/ssl_status_serialization.cc b/content/common/ssl_status_serialization.cc
new file mode 100644
index 0000000..fdd6406
--- /dev/null
+++ b/content/common/ssl_status_serialization.cc
@@ -0,0 +1,48 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "content/common/ssl_status_serialization.h"
+
+#include "base/logging.h"
+#include "base/pickle.h"
+
+namespace content {
+
+std::string SerializeSecurityInfo(int cert_id,
+ net::CertStatus cert_status,
+ int security_bits,
+ int ssl_connection_status) {
+ Pickle pickle;
+ pickle.WriteInt(cert_id);
+ pickle.WriteUInt32(cert_status);
+ pickle.WriteInt(security_bits);
+ pickle.WriteInt(ssl_connection_status);
+ return std::string(static_cast<const char*>(pickle.data()), pickle.size());
+}
+
+bool DeserializeSecurityInfo(const std::string& state,
+ int* cert_id,
+ net::CertStatus* cert_status,
+ int* security_bits,
+ int* ssl_connection_status) {
+ DCHECK(cert_id && cert_status && security_bits && ssl_connection_status);
+ if (state.empty()) {
+ // No SSL used.
+ *cert_id = 0;
+ // The following are not applicable and are set to the default values.
+ *cert_status = 0;
+ *security_bits = -1;
+ *ssl_connection_status = 0;
+ return false;
+ }
+
+ Pickle pickle(state.data(), static_cast<int>(state.size()));
+ void * iter = NULL;
+ return pickle.ReadInt(&iter, cert_id) &&
+ pickle.ReadUInt32(&iter, cert_status) &&
+ pickle.ReadInt(&iter, security_bits) &&
+ pickle.ReadInt(&iter, ssl_connection_status);
+}
+
+} // namespace content