aw_content_client.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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. #ifndef ANDROID_WEBVIEW_COMMON_AW_CONTENT_CLIENT_H_
  5. #define ANDROID_WEBVIEW_COMMON_AW_CONTENT_CLIENT_H_
  6. #include "base/synchronization/lock.h"
  7. #include "content/public/common/content_client.h"
  8. #include "base/compiler_specific.h"
  9. namespace embedder_support {
  10. class OriginTrialPolicyImpl;
  11. }
  12. namespace gpu {
  13. struct GPUInfo;
  14. }
  15. namespace android_webview {
  16. class AwContentClient : public content::ContentClient {
  17. public:
  18. AwContentClient();
  19. ~AwContentClient() override;
  20. // ContentClient implementation.
  21. void AddAdditionalSchemes(Schemes* schemes) override;
  22. std::u16string GetLocalizedString(int message_id) override;
  23. base::StringPiece GetDataResource(
  24. int resource_id,
  25. ui::ResourceScaleFactor scale_factor) override;
  26. base::RefCountedMemory* GetDataResourceBytes(int resource_id) override;
  27. std::string GetDataResourceString(int resource_id) override;
  28. void SetGpuInfo(const gpu::GPUInfo& gpu_info) override;
  29. bool UsingSynchronousCompositing() override;
  30. media::MediaDrmBridgeClient* GetMediaDrmBridgeClient() override;
  31. void ExposeInterfacesToBrowser(
  32. scoped_refptr<base::SequencedTaskRunner> io_task_runner,
  33. mojo::BinderMap* binders) override;
  34. blink::OriginTrialPolicy* GetOriginTrialPolicy() override;
  35. private:
  36. // Used to lock when |origin_trial_policy_| is initialized.
  37. base::Lock origin_trial_policy_lock_;
  38. std::unique_ptr<embedder_support::OriginTrialPolicyImpl> origin_trial_policy_;
  39. };
  40. } // namespace android_webview
  41. #endif // ANDROID_WEBVIEW_COMMON_AW_CONTENT_CLIENT_H_