Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(73)

Side by Side Diff: content/ppapi_plugin/ppapi_blink_platform_impl.cc

Issue 976163002: [Win, Android] Don't create WebSandboxSupport when it would have no methods. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 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 #include "content/ppapi_plugin/ppapi_blink_platform_impl.h" 5 #include "content/ppapi_plugin/ppapi_blink_platform_impl.h"
6 6
7 #include <map> 7 #include <map>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/strings/string16.h" 10 #include "base/strings/string16.h"
11 #include "base/threading/platform_thread.h" 11 #include "base/threading/platform_thread.h"
12 #include "build/build_config.h" 12 #include "build/build_config.h"
13 #include "content/child/child_thread_impl.h" 13 #include "content/child/child_thread_impl.h"
14 #include "content/common/child_process_messages.h" 14 #include "content/common/child_process_messages.h"
15 #include "ppapi/proxy/plugin_globals.h" 15 #include "ppapi/proxy/plugin_globals.h"
16 #include "ppapi/shared_impl/proxy_lock.h" 16 #include "ppapi/shared_impl/proxy_lock.h"
17 #include "third_party/WebKit/public/platform/WebString.h" 17 #include "third_party/WebKit/public/platform/WebString.h"
18 18
19 #if defined(OS_WIN) 19 #if defined(OS_MACOSX)
20 #include "third_party/WebKit/public/platform/win/WebSandboxSupport.h"
21 #elif defined(OS_MACOSX)
22 #include "third_party/WebKit/public/platform/mac/WebSandboxSupport.h" 20 #include "third_party/WebKit/public/platform/mac/WebSandboxSupport.h"
23 #elif defined(OS_ANDROID) 21 #elif defined(OS_POSIX) && !defined(OS_ANDROID)
24 #include "third_party/WebKit/public/platform/android/WebSandboxSupport.h"
25 #elif defined(OS_POSIX)
26 #include "content/common/child_process_sandbox_support_impl_linux.h" 22 #include "content/common/child_process_sandbox_support_impl_linux.h"
27 #include "third_party/WebKit/public/platform/linux/WebFallbackFont.h" 23 #include "third_party/WebKit/public/platform/linux/WebFallbackFont.h"
28 #include "third_party/WebKit/public/platform/linux/WebSandboxSupport.h" 24 #include "third_party/WebKit/public/platform/linux/WebSandboxSupport.h"
29 #include "third_party/icu/source/common/unicode/utf16.h" 25 #include "third_party/icu/source/common/unicode/utf16.h"
30 #endif 26 #endif
31 27
32 using blink::WebSandboxSupport; 28 using blink::WebSandboxSupport;
33 using blink::WebString; 29 using blink::WebString;
34 using blink::WebUChar; 30 using blink::WebUChar;
35 using blink::WebUChar32; 31 using blink::WebUChar32;
36 32
37 typedef struct CGFont* CGFontRef; 33 typedef struct CGFont* CGFontRef;
38 34
39 namespace content { 35 namespace content {
40 36
37 #if !defined(OS_ANDROID) && !defined(OS_WIN)
38
41 class PpapiBlinkPlatformImpl::SandboxSupport : public WebSandboxSupport { 39 class PpapiBlinkPlatformImpl::SandboxSupport : public WebSandboxSupport {
42 public: 40 public:
43 virtual ~SandboxSupport() {} 41 virtual ~SandboxSupport() {}
44 42
45 #if defined(OS_WIN) 43 #if defined(OS_MACOSX)
46 virtual bool ensureFontLoaded(HFONT);
47 #elif defined(OS_MACOSX)
48 virtual bool loadFont(NSFont* srcFont, CGFontRef* out, uint32_t* fontID); 44 virtual bool loadFont(NSFont* srcFont, CGFontRef* out, uint32_t* fontID);
49 #elif defined(OS_ANDROID)
50 // Empty class.
51 #elif defined(OS_POSIX) 45 #elif defined(OS_POSIX)
52 SandboxSupport(); 46 SandboxSupport();
53 virtual void getFallbackFontForCharacter( 47 virtual void getFallbackFontForCharacter(
54 WebUChar32 character, 48 WebUChar32 character,
55 const char* preferred_locale, 49 const char* preferred_locale,
56 blink::WebFallbackFont* fallbackFont); 50 blink::WebFallbackFont* fallbackFont);
57 virtual void getRenderStyleForStrike(const char* family, 51 virtual void getRenderStyleForStrike(const char* family,
58 int sizeAndStyle, 52 int sizeAndStyle,
59 blink::WebFontRenderStyle* out); 53 blink::WebFontRenderStyle* out);
60 54
61 private: 55 private:
62 // WebKit likes to ask us for the correct font family to use for a set of 56 // WebKit likes to ask us for the correct font family to use for a set of
63 // unicode code points. It needs this information frequently so we cache it 57 // unicode code points. It needs this information frequently so we cache it
64 // here. 58 // here.
65 std::map<int32_t, blink::WebFallbackFont> unicode_font_families_; 59 std::map<int32_t, blink::WebFallbackFont> unicode_font_families_;
66 // For debugging crbug.com/312965 60 // For debugging crbug.com/312965
67 base::PlatformThreadId creation_thread_; 61 base::PlatformThreadId creation_thread_;
68 #endif 62 #endif
69 }; 63 };
70 64
71 #if defined(OS_WIN) 65 #if defined(OS_MACOSX)
72
73 bool PpapiBlinkPlatformImpl::SandboxSupport::ensureFontLoaded(HFONT font) {
74 LOGFONT logfont;
75 GetObject(font, sizeof(LOGFONT), &logfont);
76
77 // Use the proxy sender rather than going directly to the ChildThread since
78 // the proxy browser sender will properly unlock during sync messages.
79 return ppapi::proxy::PluginGlobals::Get()->GetBrowserSender()->Send(
80 new ChildProcessHostMsg_PreCacheFont(logfont));
81 }
82
83 #elif defined(OS_MACOSX)
84 66
85 bool PpapiBlinkPlatformImpl::SandboxSupport::loadFont(NSFont* src_font, 67 bool PpapiBlinkPlatformImpl::SandboxSupport::loadFont(NSFont* src_font,
86 CGFontRef* out, 68 CGFontRef* out,
87 uint32_t* font_id) { 69 uint32_t* font_id) {
88 // TODO(brettw) this should do the something similar to what 70 // TODO(brettw) this should do the something similar to what
89 // RendererBlinkPlatformImpl does and request that the browser load the font. 71 // RendererBlinkPlatformImpl does and request that the browser load the font.
90 // Note: need to unlock the proxy lock like ensureFontLoaded does. 72 // Note: need to unlock the proxy lock like ensureFontLoaded does.
91 NOTIMPLEMENTED(); 73 NOTIMPLEMENTED();
92 return false; 74 return false;
93 } 75 }
94 76
95 #elif defined(OS_ANDROID)
96
97 // Empty class.
98
99 #elif defined(OS_POSIX) 77 #elif defined(OS_POSIX)
100 78
101 PpapiBlinkPlatformImpl::SandboxSupport::SandboxSupport() 79 PpapiBlinkPlatformImpl::SandboxSupport::SandboxSupport()
102 : creation_thread_(base::PlatformThread::CurrentId()) { 80 : creation_thread_(base::PlatformThread::CurrentId()) {
103 } 81 }
104 82
105 void PpapiBlinkPlatformImpl::SandboxSupport::getFallbackFontForCharacter( 83 void PpapiBlinkPlatformImpl::SandboxSupport::getFallbackFontForCharacter(
106 WebUChar32 character, 84 WebUChar32 character,
107 const char* preferred_locale, 85 const char* preferred_locale,
108 blink::WebFallbackFont* fallbackFont) { 86 blink::WebFallbackFont* fallbackFont) {
(...skipping 18 matching lines...) Expand all
127 105
128 void PpapiBlinkPlatformImpl::SandboxSupport::getRenderStyleForStrike( 106 void PpapiBlinkPlatformImpl::SandboxSupport::getRenderStyleForStrike(
129 const char* family, 107 const char* family,
130 int sizeAndStyle, 108 int sizeAndStyle,
131 blink::WebFontRenderStyle* out) { 109 blink::WebFontRenderStyle* out) {
132 GetRenderStyleForStrike(family, sizeAndStyle, out); 110 GetRenderStyleForStrike(family, sizeAndStyle, out);
133 } 111 }
134 112
135 #endif 113 #endif
136 114
137 PpapiBlinkPlatformImpl::PpapiBlinkPlatformImpl() 115 #endif // !defined(OS_ANDROID) && !defined(OS_WIN)
138 : sandbox_support_(new PpapiBlinkPlatformImpl::SandboxSupport()) { 116
117 PpapiBlinkPlatformImpl::PpapiBlinkPlatformImpl() {
118 #if !defined(OS_ANDROID) && !defined(OS_WIN)
119 sandbox_support_.reset(new PpapiBlinkPlatformImpl::SandboxSupport);
120 #endif
139 } 121 }
140 122
141 PpapiBlinkPlatformImpl::~PpapiBlinkPlatformImpl() { 123 PpapiBlinkPlatformImpl::~PpapiBlinkPlatformImpl() {
142 } 124 }
143 125
144 void PpapiBlinkPlatformImpl::Shutdown() { 126 void PpapiBlinkPlatformImpl::Shutdown() {
127 #if !defined(OS_ANDROID) && !defined(OS_WIN)
145 // SandboxSupport contains a map of WebFontFamily objects, which hold 128 // SandboxSupport contains a map of WebFontFamily objects, which hold
146 // WebCStrings, which become invalidated when blink is shut down. Hence, we 129 // WebCStrings, which become invalidated when blink is shut down. Hence, we
147 // need to clear that map now, just before blink::shutdown() is called. 130 // need to clear that map now, just before blink::shutdown() is called.
148 sandbox_support_.reset(); 131 sandbox_support_.reset();
132 #endif
149 } 133 }
150 134
151 blink::WebClipboard* PpapiBlinkPlatformImpl::clipboard() { 135 blink::WebClipboard* PpapiBlinkPlatformImpl::clipboard() {
152 NOTREACHED(); 136 NOTREACHED();
153 return NULL; 137 return NULL;
154 } 138 }
155 139
156 blink::WebMimeRegistry* PpapiBlinkPlatformImpl::mimeRegistry() { 140 blink::WebMimeRegistry* PpapiBlinkPlatformImpl::mimeRegistry() {
157 NOTREACHED(); 141 NOTREACHED();
158 return NULL; 142 return NULL;
159 } 143 }
160 144
161 blink::WebFileUtilities* PpapiBlinkPlatformImpl::fileUtilities() { 145 blink::WebFileUtilities* PpapiBlinkPlatformImpl::fileUtilities() {
162 NOTREACHED(); 146 NOTREACHED();
163 return NULL; 147 return NULL;
164 } 148 }
165 149
166 blink::WebSandboxSupport* PpapiBlinkPlatformImpl::sandboxSupport() { 150 blink::WebSandboxSupport* PpapiBlinkPlatformImpl::sandboxSupport() {
151 #if !defined(OS_ANDROID) && !defined(OS_WIN)
167 return sandbox_support_.get(); 152 return sandbox_support_.get();
153 #else
154 return nullptr;
155 #endif
168 } 156 }
169 157
170 bool PpapiBlinkPlatformImpl::sandboxEnabled() { 158 bool PpapiBlinkPlatformImpl::sandboxEnabled() {
171 return true; // Assume PPAPI is always sandboxed. 159 return true; // Assume PPAPI is always sandboxed.
172 } 160 }
173 161
174 unsigned long long PpapiBlinkPlatformImpl::visitedLinkHash( 162 unsigned long long PpapiBlinkPlatformImpl::visitedLinkHash(
175 const char* canonical_url, 163 const char* canonical_url,
176 size_t length) { 164 size_t length) {
177 NOTREACHED(); 165 NOTREACHED();
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
248 } 236 }
249 237
250 int PpapiBlinkPlatformImpl::databaseDeleteFile( 238 int PpapiBlinkPlatformImpl::databaseDeleteFile(
251 const blink::WebString& vfs_file_name, 239 const blink::WebString& vfs_file_name,
252 bool sync_dir) { 240 bool sync_dir) {
253 NOTREACHED(); 241 NOTREACHED();
254 return 0; 242 return 0;
255 } 243 }
256 244
257 } // namespace content 245 } // namespace content
OLDNEW
« no previous file with comments | « content/ppapi_plugin/ppapi_blink_platform_impl.h ('k') | content/renderer/renderer_blink_platform_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698