OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CHROME_RENDERER_RENDERER_WEBKITCLIENT_IMPL_H_ | 5 #ifndef CHROME_RENDERER_RENDERER_WEBKITCLIENT_IMPL_H_ |
6 #define CHROME_RENDERER_RENDERER_WEBKITCLIENT_IMPL_H_ | 6 #define CHROME_RENDERER_RENDERER_WEBKITCLIENT_IMPL_H_ |
7 | 7 |
8 #include "base/platform_file.h" | 8 #include "base/platform_file.h" |
9 #include "base/scoped_ptr.h" | 9 #include "base/scoped_ptr.h" |
10 #include "chrome/renderer/websharedworkerrepository_impl.h" | 10 #include "chrome/renderer/websharedworkerrepository_impl.h" |
11 #include "webkit/glue/simple_webmimeregistry_impl.h" | 11 #include "webkit/glue/simple_webmimeregistry_impl.h" |
12 #include "webkit/glue/webclipboard_impl.h" | 12 #include "webkit/glue/webclipboard_impl.h" |
13 #include "webkit/glue/webfilesystem_impl.h" | 13 #include "webkit/glue/webfilesystem_impl.h" |
14 #include "webkit/glue/webkitclient_impl.h" | 14 #include "webkit/glue/webkitclient_impl.h" |
15 | 15 |
16 #if defined(OS_WIN) | 16 #if defined(OS_WIN) |
17 #include "third_party/WebKit/WebKit/chromium/public/win/WebSandboxSupport.h" | 17 #include "third_party/WebKit/WebKit/chromium/public/win/WebSandboxSupport.h" |
18 #elif defined(OS_LINUX) | 18 #elif defined(OS_LINUX) |
19 #include <string> | 19 #include <string> |
20 #include <map> | 20 #include <map> |
21 #include "base/lock.h" | 21 #include "base/lock.h" |
22 #include "third_party/WebKit/WebKit/chromium/public/linux/WebSandboxSupport.h" | 22 #include "third_party/WebKit/WebKit/chromium/public/linux/WebSandboxSupport.h" |
23 #elif defined(OS_MACOSX) | |
24 #include "third_party/WebKit/WebKit/chromium/public/mac/WebSandboxSupport.h" | |
25 #endif | 23 #endif |
26 | 24 |
27 namespace IPC { | 25 namespace IPC { |
28 class SyncMessage; | 26 class SyncMessage; |
29 } | 27 } |
30 | 28 |
31 class RendererWebKitClientImpl : public webkit_glue::WebKitClientImpl { | 29 class RendererWebKitClientImpl : public webkit_glue::WebKitClientImpl { |
32 public: | 30 public: |
33 RendererWebKitClientImpl(); | 31 RendererWebKitClientImpl(); |
34 virtual ~RendererWebKitClientImpl(); | 32 virtual ~RendererWebKitClientImpl(); |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
108 const char* family, int sizeAndStyle, WebKit::WebFontRenderStyle* out); | 106 const char* family, int sizeAndStyle, WebKit::WebFontRenderStyle* out); |
109 | 107 |
110 private: | 108 private: |
111 // WebKit likes to ask us for the correct font family to use for a set of | 109 // WebKit likes to ask us for the correct font family to use for a set of |
112 // unicode code points. It needs this information frequently so we cache it | 110 // unicode code points. It needs this information frequently so we cache it |
113 // here. The key in this map is an array of 16-bit UTF16 values from WebKit. | 111 // here. The key in this map is an array of 16-bit UTF16 values from WebKit. |
114 // The value is a string containing the correct font family. | 112 // The value is a string containing the correct font family. |
115 Lock unicode_font_families_mutex_; | 113 Lock unicode_font_families_mutex_; |
116 std::map<std::string, std::string> unicode_font_families_; | 114 std::map<std::string, std::string> unicode_font_families_; |
117 }; | 115 }; |
118 #elif defined(OS_MACOSX) | |
119 class SandboxSupport : public WebKit::WebSandboxSupport { | |
120 public: | |
121 virtual bool loadFont(NSFont* srcFont, ATSFontContainerRef* out); | |
122 }; | |
123 #endif | 116 #endif |
124 | 117 |
125 // Helper function to send synchronous message from any thread. | 118 // Helper function to send synchronous message from any thread. |
126 static bool SendSyncMessageFromAnyThread(IPC::SyncMessage* msg); | 119 static bool SendSyncMessageFromAnyThread(IPC::SyncMessage* msg); |
127 | 120 |
128 webkit_glue::WebClipboardImpl clipboard_; | 121 webkit_glue::WebClipboardImpl clipboard_; |
129 | 122 |
130 FileSystem file_system_; | 123 FileSystem file_system_; |
131 | 124 |
132 MimeRegistry mime_registry_; | 125 MimeRegistry mime_registry_; |
133 | 126 #if defined(OS_WIN) || defined(OS_LINUX) |
134 SandboxSupport sandbox_support_; | 127 SandboxSupport sandbox_support_; |
| 128 #endif |
135 | 129 |
136 // This counter keeps track of the number of times sudden termination is | 130 // This counter keeps track of the number of times sudden termination is |
137 // enabled or disabled. It starts at 0 (enabled) and for every disable | 131 // enabled or disabled. It starts at 0 (enabled) and for every disable |
138 // increments by 1, for every enable decrements by 1. When it reaches 0, | 132 // increments by 1, for every enable decrements by 1. When it reaches 0, |
139 // we tell the browser to enable fast termination. | 133 // we tell the browser to enable fast termination. |
140 int sudden_termination_disables_; | 134 int sudden_termination_disables_; |
141 | 135 |
142 // Implementation of the WebSharedWorkerRepository APIs (provides an interface | 136 // Implementation of the WebSharedWorkerRepository APIs (provides an interface |
143 // to WorkerService on the browser thread. | 137 // to WorkerService on the browser thread. |
144 WebSharedWorkerRepositoryImpl shared_worker_repository_; | 138 WebSharedWorkerRepositoryImpl shared_worker_repository_; |
145 | 139 |
146 scoped_ptr<WebKit::WebIndexedDatabase> web_indexed_database_; | 140 scoped_ptr<WebKit::WebIndexedDatabase> web_indexed_database_; |
147 }; | 141 }; |
148 | 142 |
149 #endif // CHROME_RENDERER_RENDERER_WEBKITCLIENT_IMPL_H_ | 143 #endif // CHROME_RENDERER_RENDERER_WEBKITCLIENT_IMPL_H_ |
OLD | NEW |