1 // Copyright 2015 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 5 #ifndef HEADLESS_LIB_HEADLESS_CONTENT_CLIENT_H_ 6 #define HEADLESS_LIB_HEADLESS_CONTENT_CLIENT_H_ 7 8 #include <memory> 9 10 #include "base/synchronization/lock.h" 11 #include "content/public/common/content_client.h" 12 13 namespace embedder_support { 14 class OriginTrialPolicyImpl; 15 } 16 17 namespace headless { 18 19 class HeadlessContentClient : public content::ContentClient { 20 public: 21 HeadlessContentClient(); 22 ~HeadlessContentClient() override; 23 24 // content::ContentClient implementation: 25 base::string16 GetLocalizedString(int message_id) override; 26 base::StringPiece GetDataResource(int resource_id, 27 ui::ScaleFactor scale_factor) override; 28 base::RefCountedMemory* GetDataResourceBytes(int resource_id) override; 29 gfx::Image& GetNativeImageNamed(int resource_id) override; 30 blink::OriginTrialPolicy* GetOriginTrialPolicy() override; 31 32 private: 33 // Used to lock when |origin_trial_policy_| is initialized. 34 base::Lock origin_trial_policy_lock_; 35 std::unique_ptr<embedder_support::OriginTrialPolicyImpl> origin_trial_policy_; 36 37 DISALLOW_COPY_AND_ASSIGN(HeadlessContentClient); 38 }; 39 40 } // namespace headless 41 42 #endif // HEADLESS_LIB_HEADLESS_CONTENT_CLIENT_H_ 43