content_client_impl.cc 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. // Copyright (c) 2012 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "weblayer/common/content_client_impl.h"
  5. #include "build/build_config.h"
  6. #include "components/embedder_support/origin_trials/origin_trial_policy_impl.h"
  7. #include "gpu/config/gpu_info.h"
  8. #include "gpu/config/gpu_util.h"
  9. #include "third_party/blink/public/strings/grit/blink_strings.h"
  10. #include "ui/base/l10n/l10n_util.h"
  11. #include "ui/base/resource/resource_bundle.h"
  12. #if BUILDFLAG(IS_ANDROID)
  13. #include "content/public/common/url_constants.h"
  14. #endif
  15. namespace weblayer {
  16. ContentClientImpl::ContentClientImpl() = default;
  17. ContentClientImpl::~ContentClientImpl() = default;
  18. std::u16string ContentClientImpl::GetLocalizedString(int message_id) {
  19. return l10n_util::GetStringUTF16(message_id);
  20. }
  21. std::u16string ContentClientImpl::GetLocalizedString(
  22. int message_id,
  23. const std::u16string& replacement) {
  24. return l10n_util::GetStringFUTF16(message_id, replacement);
  25. }
  26. base::StringPiece ContentClientImpl::GetDataResource(
  27. int resource_id,
  28. ui::ResourceScaleFactor scale_factor) {
  29. return ui::ResourceBundle::GetSharedInstance().GetRawDataResourceForScale(
  30. resource_id, scale_factor);
  31. }
  32. base::RefCountedMemory* ContentClientImpl::GetDataResourceBytes(
  33. int resource_id) {
  34. return ui::ResourceBundle::GetSharedInstance().LoadDataResourceBytes(
  35. resource_id);
  36. }
  37. std::string ContentClientImpl::GetDataResourceString(int resource_id) {
  38. return ui::ResourceBundle::GetSharedInstance().LoadDataResourceString(
  39. resource_id);
  40. }
  41. void ContentClientImpl::SetGpuInfo(const gpu::GPUInfo& gpu_info) {
  42. gpu::SetKeysForCrashLogging(gpu_info);
  43. }
  44. gfx::Image& ContentClientImpl::GetNativeImageNamed(int resource_id) {
  45. return ui::ResourceBundle::GetSharedInstance().GetNativeImageNamed(
  46. resource_id);
  47. }
  48. blink::OriginTrialPolicy* ContentClientImpl::GetOriginTrialPolicy() {
  49. // Prevent initialization race (see crbug.com/721144). There may be a
  50. // race when the policy is needed for worker startup (which happens on a
  51. // separate worker thread).
  52. base::AutoLock auto_lock(origin_trial_policy_lock_);
  53. if (!origin_trial_policy_)
  54. origin_trial_policy_ =
  55. std::make_unique<embedder_support::OriginTrialPolicyImpl>();
  56. return origin_trial_policy_.get();
  57. }
  58. void ContentClientImpl::AddAdditionalSchemes(Schemes* schemes) {
  59. #if BUILDFLAG(IS_ANDROID)
  60. schemes->standard_schemes.push_back(content::kAndroidAppScheme);
  61. schemes->referrer_schemes.push_back(content::kAndroidAppScheme);
  62. #endif
  63. }
  64. } // namespace weblayer