// Copyright © 2014 The CefSharp Authors. All rights reserved. // // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. #pragma once #include "Stdafx.h" #include "JavascriptPropertyWrapper.h" #include "JavascriptObjectWrapper.h" using namespace System; namespace CefSharp { void JavascriptPropertyWrapper::Bind(JavascriptProperty^ javascriptProperty, const CefRefPtr& v8Value, JavascriptCallbackRegistry^ callbackRegistry) { auto propertyName = StringUtils::ToNative(javascriptProperty->JavascriptName); auto clrPropertyName = javascriptProperty->JavascriptName; if (javascriptProperty->IsComplexType) { auto javascriptObjectWrapper = gcnew JavascriptObjectWrapper(_browserProcess); javascriptObjectWrapper->Bind(javascriptProperty->JsObject, v8Value, callbackRegistry); _javascriptObjectWrapper = javascriptObjectWrapper; } else { auto propertyAttribute = javascriptProperty->IsReadOnly ? V8_PROPERTY_ATTRIBUTE_READONLY : V8_PROPERTY_ATTRIBUTE_NONE; v8Value->SetValue(propertyName, V8_ACCESS_CONTROL_DEFAULT, propertyAttribute); } }; }