blob: c2316dc58cc83e2dce0381be45358cca1c88d6fa [file] [log] [blame]
// Copyright 2014 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 "third_party/blink/renderer/core/css/binary_data_font_face_source.h"
#include "third_party/blink/renderer/platform/fonts/font_custom_platform_data.h"
#include "third_party/blink/renderer/platform/fonts/font_description.h"
#include "third_party/blink/renderer/platform/fonts/simple_font_data.h"
#include "third_party/blink/renderer/platform/shared_buffer.h"
namespace blink {
BinaryDataFontFaceSource::BinaryDataFontFaceSource(SharedBuffer* data,
String& ots_parse_message)
: custom_platform_data_(
FontCustomPlatformData::Create(data, ots_parse_message)) {}
BinaryDataFontFaceSource::~BinaryDataFontFaceSource() = default;
bool BinaryDataFontFaceSource::IsValid() const {
return custom_platform_data_.get();
}
scoped_refptr<SimpleFontData> BinaryDataFontFaceSource::CreateFontData(
const FontDescription& font_description,
const FontSelectionCapabilities& font_selection_capabilities) {
return SimpleFontData::Create(
custom_platform_data_->GetFontPlatformData(
font_description.EffectiveFontSize(),
font_description.IsSyntheticBold(),
font_description.IsSyntheticItalic(),
font_description.GetFontSelectionRequest(),
font_selection_capabilities, font_description.Orientation(),
font_description.VariationSettings()),
CustomFontData::Create());
}
} // namespace blink