1 // Copyright 2014 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 CONTENT_BROWSER_ANDROID_UI_RESOURCE_PROVIDER_IMPL_H_ 6 #define CONTENT_BROWSER_ANDROID_UI_RESOURCE_PROVIDER_IMPL_H_ 7 8 #include "base/containers/hash_tables.h" 9 #include "content/public/browser/android/ui_resource_provider.h" 10 11 namespace cc { 12 class LayerTreeHost; 13 } 14 15 namespace content { 16 17 class UIResourceClientAndroid; 18 19 class UIResourceProviderImpl : public UIResourceProvider { 20 public: 21 UIResourceProviderImpl(); 22 23 virtual ~UIResourceProviderImpl(); 24 25 void SetLayerTreeHost(cc::LayerTreeHost* host); 26 27 void UIResourcesAreInvalid(); 28 29 virtual cc::UIResourceId CreateUIResource( 30 UIResourceClientAndroid* client) OVERRIDE; 31 32 virtual void DeleteUIResource(cc::UIResourceId resource_id) OVERRIDE; 33 34 private: 35 typedef base::hash_map<cc::UIResourceId, UIResourceClientAndroid*> 36 UIResourceClientMap; 37 UIResourceClientMap ui_resource_client_map_; 38 39 cc::LayerTreeHost* host_; 40 41 DISALLOW_COPY_AND_ASSIGN(UIResourceProviderImpl); 42 }; 43 44 } // namespace content 45 46 #endif // CONTENT_BROWSER_ANDROID_UI_RESOURCE_PROVIDER_IMPL_H_ 47