chromium/ios/web/js_messaging/script_message.mm

// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#import <memory>

#import "ios/web/public/js_messaging/script_message.h"
#import "base/memory/ptr_util.h"
#import "base/values.h"

namespace web {

ScriptMessage::ScriptMessage(std::unique_ptr<base::Value> body,
                             bool is_user_interacting,
                             bool is_main_frame,
                             std::optional<GURL> request_url)
    : body_(std::move(body)),
      is_user_interacting_(is_user_interacting),
      is_main_frame_(is_main_frame),
      request_url_(request_url) {}
ScriptMessage::~ScriptMessage() = default;

ScriptMessage::ScriptMessage(const ScriptMessage& other)
    : is_user_interacting_(other.is_user_interacting_),
      is_main_frame_(other.is_main_frame_),
      request_url_(other.request_url_) {
  if (other.body_) {
    body_ = std::make_unique<base::Value>(other.body_->Clone());
  }
}

}  // namespace web