blob: c514ad2673a64178b93a698bab98b9fd46297c24 [file] [log] [blame]
// 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/replicated_frame_state.h"
#include "components/html_viewer/html_frame_properties.h"
namespace html_viewer {
ReplicatedFrameState::ReplicatedFrameState()
: sandbox_flags(blink::WebSandboxFlags::None),
tree_scope(blink::WebTreeScopeType::Document) {}
ReplicatedFrameState::~ReplicatedFrameState() {}
void SetReplicatedFrameStateFromClientProperties(
const mojo::Map<mojo::String, mojo::Array<uint8_t>>& properties,
ReplicatedFrameState* state) {
state->name = FrameNameFromClientProperty(
GetValueFromClientProperties(kPropertyFrameName, properties));
state->origin = FrameOriginFromClientProperty(
GetValueFromClientProperties(kPropertyFrameOrigin, properties));
if (!FrameSandboxFlagsFromClientProperty(
GetValueFromClientProperties(kPropertyFrameSandboxFlags, properties),
&(state->sandbox_flags))) {
state->sandbox_flags = blink::WebSandboxFlags::None;
}
if (!FrameTreeScopeFromClientProperty(
GetValueFromClientProperties(kPropertyFrameTreeScope, properties),
&(state->tree_scope))) {
state->tree_scope = blink::WebTreeScopeType::Document;
}
}
void ClientPropertiesFromReplicatedFrameState(
const ReplicatedFrameState& state,
mojo::Map<mojo::String, mojo::Array<uint8_t>>* properties) {
AddToClientPropertiesIfValid(kPropertyFrameName,
FrameNameToClientProperty(state.name).Pass(),
properties);
AddToClientPropertiesIfValid(
kPropertyFrameTreeScope,
FrameTreeScopeToClientProperty(state.tree_scope).Pass(), properties);
AddToClientPropertiesIfValid(
kPropertyFrameSandboxFlags,
FrameSandboxFlagsToClientProperty(state.sandbox_flags).Pass(),
properties);
}
} // namespace html_viewer