Index: components/html_viewer/html_frame_properties.cc |
diff --git a/components/html_viewer/html_frame_properties.cc b/components/html_viewer/html_frame_properties.cc |
deleted file mode 100644 |
index d9e2707be8e875177027a79ebdc5af15922d45a2..0000000000000000000000000000000000000000 |
--- a/components/html_viewer/html_frame_properties.cc |
+++ /dev/null |
@@ -1,165 +0,0 @@ |
-// Copyright 2015 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 "components/html_viewer/html_frame_properties.h" |
- |
-#include <stddef.h> |
-#include <utility> |
- |
-#include "base/logging.h" |
-#include "base/pickle.h" |
-#include "mojo/common/common_type_converters.h" |
-#include "third_party/WebKit/public/platform/WebString.h" |
-#include "third_party/WebKit/public/web/WebDocument.h" |
-#include "third_party/WebKit/public/web/WebFrame.h" |
-#include "third_party/WebKit/public/web/WebSandboxFlags.h" |
-#include "url/origin.h" |
-#include "url/url_util.h" |
- |
-namespace html_viewer { |
- |
-const char kPropertyFrameTreeScope[] = "html-viewer-frame-tree-scope"; |
-const char kPropertyFrameOrigin[] = "html-viewer-replicated-frame-origin"; |
-const char kPropertyFrameName[] = "html-viewer-replicated-frame-name"; |
-const char kPropertyFrameSandboxFlags[] = "html-viewer-sandbox-flags"; |
- |
-namespace { |
- |
-mojo::Array<uint8_t> IntToClientPropertyArray(int value) { |
- mojo::Array<uint8_t> value_array(sizeof(value)); |
- memcpy(&(value_array.front()), &value, sizeof(value)); |
- return value_array; |
-} |
- |
-bool IntFromClientPropertyArray(const mojo::Array<uint8_t>& value_array, |
- int* value) { |
- if (value_array.is_null()) |
- return false; |
- |
- CHECK(value_array.size() == sizeof(int)); |
- memcpy(value, &(value_array.front()), sizeof(int)); |
- return true; |
-} |
- |
-} // namespace |
- |
-mojo::Array<uint8_t> FrameNameToClientProperty(const blink::WebString& name) { |
- mojo::String mojo_name; |
- if (name.isNull()) |
- return mojo::Array<uint8_t>(); |
- return mojo::Array<uint8_t>::From<std::string>(name.utf8()); |
-} |
- |
-blink::WebString FrameNameFromClientProperty( |
- const mojo::Array<uint8_t>& new_data) { |
- if (new_data.is_null()) |
- return blink::WebString(); |
- |
- return blink::WebString::fromUTF8(new_data.To<std::string>()); |
-} |
- |
-mojo::Array<uint8_t> FrameTreeScopeToClientProperty( |
- blink::WebTreeScopeType scope_type) { |
- return IntToClientPropertyArray(static_cast<int>(scope_type)); |
-} |
- |
-bool FrameTreeScopeFromClientProperty(const mojo::Array<uint8_t>& new_data, |
- blink::WebTreeScopeType* scope) { |
- if (new_data.is_null()) |
- return false; |
- |
- int scope_as_int; |
- CHECK(IntFromClientPropertyArray(new_data, &scope_as_int)); |
- CHECK(scope_as_int >= 0 && |
- scope_as_int <= static_cast<int>(blink::WebTreeScopeType::Last)); |
- *scope = static_cast<blink::WebTreeScopeType>(scope_as_int); |
- return true; |
-} |
- |
-mojo::Array<uint8_t> FrameSandboxFlagsToClientProperty( |
- blink::WebSandboxFlags flags) { |
- return IntToClientPropertyArray(static_cast<int>(flags)); |
-} |
- |
-bool FrameSandboxFlagsFromClientProperty(const mojo::Array<uint8_t>& new_data, |
- blink::WebSandboxFlags* flags) { |
- if (new_data.is_null()) |
- return false; |
- |
- // blink::WebSandboxFlags is a bitmask, so not error checking. |
- int flags_as_int; |
- CHECK(IntFromClientPropertyArray(new_data, &flags_as_int)); |
- *flags = static_cast<blink::WebSandboxFlags>(flags_as_int); |
- return true; |
-} |
- |
-url::Origin FrameOrigin(blink::WebFrame* frame) { |
- std::string scheme = frame->document().securityOrigin().protocol().utf8(); |
- if (!url::IsStandard(scheme.c_str(), |
- url::Component(0, static_cast<int>(scheme.length())))) { |
- return url::Origin(); |
- } |
- return frame->document().securityOrigin(); |
-} |
- |
-mojo::Array<uint8_t> FrameOriginToClientProperty(blink::WebFrame* frame) { |
- const url::Origin origin = FrameOrigin(frame); |
- base::Pickle pickle; |
- pickle.WriteBool(origin.unique()); |
- pickle.WriteString(origin.scheme()); |
- pickle.WriteString(origin.host()); |
- pickle.WriteUInt16(origin.port()); |
- mojo::Array<uint8_t> origin_array(pickle.size()); |
- memcpy(&(origin_array.front()), pickle.data(), pickle.size()); |
- return origin_array; |
-} |
- |
-url::Origin FrameOriginFromClientProperty(const mojo::Array<uint8_t>& data) { |
- if (data.is_null()) |
- return url::Origin(); |
- |
- CHECK(data.size()); |
- CHECK(data.size() < static_cast<size_t>(std::numeric_limits<int>::max())); |
- static_assert(sizeof(uint8_t) == sizeof(unsigned char), |
- "uint8_t must be the same size as unsigned char"); |
- const base::Pickle pickle(reinterpret_cast<const char*>(&(data.front())), |
- static_cast<int>(data.size())); |
- CHECK(pickle.data()); |
- base::PickleIterator iter(pickle); |
- bool unique = false; |
- std::string scheme; |
- std::string host; |
- uint16_t port = 0; |
- CHECK(iter.ReadBool(&unique)); |
- CHECK(iter.ReadString(&scheme)); |
- CHECK(iter.ReadString(&host)); |
- CHECK(iter.ReadUInt16(&port)); |
- const url::Origin result = |
- unique ? url::Origin() |
- : url::Origin::UnsafelyCreateOriginWithoutNormalization( |
- scheme, host, port); |
- // If a unique origin was created, but the unique flag wasn't set, then |
- // the values provided to 'UnsafelyCreateOriginWithoutNormalization' were |
- // invalid; kill the renderer. |
- CHECK(!(!unique && result.unique())); |
- return result; |
-} |
- |
-void AddToClientPropertiesIfValid( |
- const std::string& name, |
- mojo::Array<uint8_t> value, |
- mojo::Map<mojo::String, mojo::Array<uint8_t>>* client_properties) { |
- if (!value.is_null()) |
- (*client_properties)[name] = std::move(value); |
-} |
- |
-mojo::Array<uint8_t> GetValueFromClientProperties( |
- const std::string& name, |
- const mojo::Map<mojo::String, mojo::Array<uint8_t>>& properties) { |
- auto iter = properties.find(name); |
- return iter == properties.end() ? mojo::Array<uint8_t>() |
- : iter.GetValue().Clone(); |
-} |
- |
-} // namespace html_viewer |