[M47_2526] Chromium upversion to m47_2526 branch
[platform/framework/web/chromium-efl.git] / tizen_src / ewk / efl_integration / browser / mime_override_manager_efl.h
1 // Copyright 2014 Samsung Electronics. 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 MIME_OVERRIDE_MANAGER_EFL_H_
6 #define MIME_OVERRIDE_MANAGER_EFL_H_
7
8 #include <map>
9 #include <utility>
10
11 #include "base/synchronization/lock.h"
12
13 namespace base {
14 template <typename T> struct DefaultSingletonTraits;
15 }
16 typedef std::map<std::string, std::string> MimeOverrideMap;
17
18 class MimeOverrideManagerEfl {
19  public:
20   static MimeOverrideManagerEfl* GetInstance();
21
22   // Adds new mime to be overridden. Thread safe.
23   void PushOverriddenMime(const std::string& url_spec,
24                           const std::string& new_mime_type);
25
26   // Checks if mime should be overridden and gets new mime.
27   // Removes the mime that shall be overridden. Thread safe.
28   bool PopOverriddenMime(const std::string& url_spec,
29                          std::string& new_mime_type);
30
31  private:
32   MimeOverrideManagerEfl() {}
33
34   friend struct base::DefaultSingletonTraits<MimeOverrideManagerEfl>;
35
36   base::Lock lock_;
37   MimeOverrideMap mime_override_map_;
38
39   DISALLOW_COPY_AND_ASSIGN(MimeOverrideManagerEfl);
40 };
41
42 #endif // MIME_OVERRIDE_MANAGER_EFL_H_