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

Side by Side Diff: content/renderer/renderer_blink_platform_impl.cc

Issue 2444873002: Move WebMIMERegistry impl from //content to blink:platform/network/mime (Closed)
Patch Set: rebased Created 4 years, 1 month 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
« no previous file with comments | « content/renderer/renderer_blink_platform_impl.h ('k') | content/test/BUILD.gn » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/renderer/renderer_blink_platform_impl.h" 5 #include "content/renderer/renderer_blink_platform_impl.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/files/file_path.h" 10 #include "base/files/file_path.h"
(...skipping 13 matching lines...) Expand all
24 #include "components/url_formatter/url_formatter.h" 24 #include "components/url_formatter/url_formatter.h"
25 #include "content/child/blob_storage/webblobregistry_impl.h" 25 #include "content/child/blob_storage/webblobregistry_impl.h"
26 #include "content/child/child_gpu_memory_buffer_manager.h" 26 #include "content/child/child_gpu_memory_buffer_manager.h"
27 #include "content/child/child_shared_bitmap_manager.h" 27 #include "content/child/child_shared_bitmap_manager.h"
28 #include "content/child/database_util.h" 28 #include "content/child/database_util.h"
29 #include "content/child/file_info_util.h" 29 #include "content/child/file_info_util.h"
30 #include "content/child/fileapi/webfilesystem_impl.h" 30 #include "content/child/fileapi/webfilesystem_impl.h"
31 #include "content/child/indexed_db/webidbfactory_impl.h" 31 #include "content/child/indexed_db/webidbfactory_impl.h"
32 #include "content/child/quota_dispatcher.h" 32 #include "content/child/quota_dispatcher.h"
33 #include "content/child/quota_message_filter.h" 33 #include "content/child/quota_message_filter.h"
34 #include "content/child/simple_webmimeregistry_impl.h"
35 #include "content/child/storage_util.h" 34 #include "content/child/storage_util.h"
36 #include "content/child/thread_safe_sender.h" 35 #include "content/child/thread_safe_sender.h"
37 #include "content/child/web_database_observer_impl.h" 36 #include "content/child/web_database_observer_impl.h"
38 #include "content/child/web_url_loader_impl.h" 37 #include "content/child/web_url_loader_impl.h"
39 #include "content/child/webfileutilities_impl.h" 38 #include "content/child/webfileutilities_impl.h"
40 #include "content/child/webmessageportchannel_impl.h" 39 #include "content/child/webmessageportchannel_impl.h"
41 #include "content/common/file_utilities_messages.h" 40 #include "content/common/file_utilities_messages.h"
42 #include "content/common/frame_messages.h" 41 #include "content/common/frame_messages.h"
43 #include "content/common/gpu/client/context_provider_command_buffer.h" 42 #include "content/common/gpu/client/context_provider_command_buffer.h"
44 #include "content/common/render_process_messages.h" 43 #include "content/common/render_process_messages.h"
(...skipping 25 matching lines...) Expand all
70 #include "content/renderer/screen_orientation/screen_orientation_observer.h" 69 #include "content/renderer/screen_orientation/screen_orientation_observer.h"
71 #include "content/renderer/webclipboard_impl.h" 70 #include "content/renderer/webclipboard_impl.h"
72 #include "content/renderer/webgraphicscontext3d_provider_impl.h" 71 #include "content/renderer/webgraphicscontext3d_provider_impl.h"
73 #include "content/renderer/webpublicsuffixlist_impl.h" 72 #include "content/renderer/webpublicsuffixlist_impl.h"
74 #include "gpu/command_buffer/client/gles2_interface.h" 73 #include "gpu/command_buffer/client/gles2_interface.h"
75 #include "gpu/config/gpu_info.h" 74 #include "gpu/config/gpu_info.h"
76 #include "gpu/ipc/client/gpu_channel_host.h" 75 #include "gpu/ipc/client/gpu_channel_host.h"
77 #include "gpu/ipc/common/gpu_stream_constants.h" 76 #include "gpu/ipc/common/gpu_stream_constants.h"
78 #include "ipc/ipc_sync_message_filter.h" 77 #include "ipc/ipc_sync_message_filter.h"
79 #include "media/audio/audio_output_device.h" 78 #include "media/audio/audio_output_device.h"
80 #include "media/base/mime_util.h"
81 #include "media/blink/webcontentdecryptionmodule_impl.h" 79 #include "media/blink/webcontentdecryptionmodule_impl.h"
82 #include "media/filters/stream_parser_factory.h" 80 #include "media/filters/stream_parser_factory.h"
83 #include "mojo/common/common_type_converters.h" 81 #include "mojo/common/common_type_converters.h"
84 #include "mojo/public/cpp/bindings/associated_group.h" 82 #include "mojo/public/cpp/bindings/associated_group.h"
85 #include "services/service_manager/public/cpp/interface_provider.h" 83 #include "services/service_manager/public/cpp/interface_provider.h"
86 #include "storage/common/database/database_identifier.h" 84 #include "storage/common/database/database_identifier.h"
87 #include "storage/common/quota/quota_types.h" 85 #include "storage/common/quota/quota_types.h"
88 #include "third_party/WebKit/public/platform/BlameContext.h" 86 #include "third_party/WebKit/public/platform/BlameContext.h"
89 #include "third_party/WebKit/public/platform/FilePathConversion.h" 87 #include "third_party/WebKit/public/platform/FilePathConversion.h"
90 #include "third_party/WebKit/public/platform/URLConversion.h" 88 #include "third_party/WebKit/public/platform/URLConversion.h"
91 #include "third_party/WebKit/public/platform/WebBlobRegistry.h" 89 #include "third_party/WebKit/public/platform/WebBlobRegistry.h"
92 #include "third_party/WebKit/public/platform/WebDeviceLightListener.h" 90 #include "third_party/WebKit/public/platform/WebDeviceLightListener.h"
93 #include "third_party/WebKit/public/platform/WebFileInfo.h" 91 #include "third_party/WebKit/public/platform/WebFileInfo.h"
94 #include "third_party/WebKit/public/platform/WebGamepads.h" 92 #include "third_party/WebKit/public/platform/WebGamepads.h"
95 #include "third_party/WebKit/public/platform/WebMediaStreamCenter.h" 93 #include "third_party/WebKit/public/platform/WebMediaStreamCenter.h"
96 #include "third_party/WebKit/public/platform/WebMediaStreamCenterClient.h" 94 #include "third_party/WebKit/public/platform/WebMediaStreamCenterClient.h"
97 #include "third_party/WebKit/public/platform/WebPluginListBuilder.h" 95 #include "third_party/WebKit/public/platform/WebPluginListBuilder.h"
98 #include "third_party/WebKit/public/platform/WebSecurityOrigin.h" 96 #include "third_party/WebKit/public/platform/WebSecurityOrigin.h"
99 #include "third_party/WebKit/public/platform/WebURL.h" 97 #include "third_party/WebKit/public/platform/WebURL.h"
100 #include "third_party/WebKit/public/platform/WebVector.h" 98 #include "third_party/WebKit/public/platform/WebVector.h"
101 #include "third_party/WebKit/public/platform/mime_registry.mojom.h"
102 #include "third_party/WebKit/public/platform/modules/device_orientation/WebDevic eMotionListener.h" 99 #include "third_party/WebKit/public/platform/modules/device_orientation/WebDevic eMotionListener.h"
103 #include "third_party/WebKit/public/platform/modules/device_orientation/WebDevic eOrientationListener.h" 100 #include "third_party/WebKit/public/platform/modules/device_orientation/WebDevic eOrientationListener.h"
104 #include "third_party/WebKit/public/platform/scheduler/renderer/renderer_schedul er.h" 101 #include "third_party/WebKit/public/platform/scheduler/renderer/renderer_schedul er.h"
105 #include "third_party/WebKit/public/web/WebLocalFrame.h" 102 #include "third_party/WebKit/public/web/WebLocalFrame.h"
106 #include "url/gurl.h" 103 #include "url/gurl.h"
107 104
108 #if defined(OS_MACOSX) 105 #if defined(OS_MACOSX)
109 #include "content/common/mac/font_descriptor.h" 106 #include "content/common/mac/font_descriptor.h"
110 #include "content/common/mac/font_loader.h" 107 #include "content/common/mac/font_loader.h"
111 #include "content/renderer/webscrollbarbehavior_impl_mac.h" 108 #include "content/renderer/webscrollbarbehavior_impl_mac.h"
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
153 using blink::WebGamepads; 150 using blink::WebGamepads;
154 using blink::WebIDBFactory; 151 using blink::WebIDBFactory;
155 using blink::WebImageCaptureFrameGrabber; 152 using blink::WebImageCaptureFrameGrabber;
156 using blink::WebMIDIAccessor; 153 using blink::WebMIDIAccessor;
157 using blink::WebMediaPlayer; 154 using blink::WebMediaPlayer;
158 using blink::WebMediaRecorderHandler; 155 using blink::WebMediaRecorderHandler;
159 using blink::WebMediaStream; 156 using blink::WebMediaStream;
160 using blink::WebMediaStreamCenter; 157 using blink::WebMediaStreamCenter;
161 using blink::WebMediaStreamCenterClient; 158 using blink::WebMediaStreamCenterClient;
162 using blink::WebMediaStreamTrack; 159 using blink::WebMediaStreamTrack;
163 using blink::WebMimeRegistry;
164 using blink::WebRTCPeerConnectionHandler; 160 using blink::WebRTCPeerConnectionHandler;
165 using blink::WebRTCPeerConnectionHandlerClient; 161 using blink::WebRTCPeerConnectionHandlerClient;
166 using blink::WebStorageNamespace; 162 using blink::WebStorageNamespace;
167 using blink::WebSize; 163 using blink::WebSize;
168 using blink::WebString; 164 using blink::WebString;
169 using blink::WebURL; 165 using blink::WebURL;
170 using blink::WebVector; 166 using blink::WebVector;
171 167
172 namespace content { 168 namespace content {
173 169
(...skipping 13 matching lines...) Expand all
187 return AudioDeviceFactory::GetOutputDeviceInfo(render_frame->GetRoutingID(), 183 return AudioDeviceFactory::GetOutputDeviceInfo(render_frame->GetRoutingID(),
188 0, std::string(), 184 0, std::string(),
189 web_frame->getSecurityOrigin()) 185 web_frame->getSecurityOrigin())
190 .output_params(); 186 .output_params();
191 } 187 }
192 188
193 } // namespace 189 } // namespace
194 190
195 //------------------------------------------------------------------------------ 191 //------------------------------------------------------------------------------
196 192
197 class RendererBlinkPlatformImpl::MimeRegistry
198 : public SimpleWebMimeRegistryImpl {
199 public:
200 blink::WebString mimeTypeForExtension(
201 const blink::WebString& file_extension) override;
202
203 private:
204 blink::mojom::MimeRegistryPtr mime_registry_;
205 };
206
207 class RendererBlinkPlatformImpl::FileUtilities : public WebFileUtilitiesImpl { 193 class RendererBlinkPlatformImpl::FileUtilities : public WebFileUtilitiesImpl {
208 public: 194 public:
209 explicit FileUtilities(ThreadSafeSender* sender) 195 explicit FileUtilities(ThreadSafeSender* sender)
210 : thread_safe_sender_(sender) {} 196 : thread_safe_sender_(sender) {}
211 bool getFileInfo(const WebString& path, WebFileInfo& result) override; 197 bool getFileInfo(const WebString& path, WebFileInfo& result) override;
212 198
213 private: 199 private:
214 bool SendSyncMessageFromAnyThread(IPC::SyncMessage* msg) const; 200 bool SendSyncMessageFromAnyThread(IPC::SyncMessage* msg) const;
215 scoped_refptr<ThreadSafeSender> thread_safe_sender_; 201 scoped_refptr<ThreadSafeSender> thread_safe_sender_;
216 }; 202 };
(...skipping 29 matching lines...) Expand all
246 232
247 //------------------------------------------------------------------------------ 233 //------------------------------------------------------------------------------
248 234
249 RendererBlinkPlatformImpl::RendererBlinkPlatformImpl( 235 RendererBlinkPlatformImpl::RendererBlinkPlatformImpl(
250 blink::scheduler::RendererScheduler* renderer_scheduler, 236 blink::scheduler::RendererScheduler* renderer_scheduler,
251 base::WeakPtr<service_manager::InterfaceProvider> remote_interfaces) 237 base::WeakPtr<service_manager::InterfaceProvider> remote_interfaces)
252 : BlinkPlatformImpl(renderer_scheduler->DefaultTaskRunner()), 238 : BlinkPlatformImpl(renderer_scheduler->DefaultTaskRunner()),
253 main_thread_(renderer_scheduler->CreateMainThread()), 239 main_thread_(renderer_scheduler->CreateMainThread()),
254 clipboard_delegate_(new RendererClipboardDelegate), 240 clipboard_delegate_(new RendererClipboardDelegate),
255 clipboard_(new WebClipboardImpl(clipboard_delegate_.get())), 241 clipboard_(new WebClipboardImpl(clipboard_delegate_.get())),
256 mime_registry_(new RendererBlinkPlatformImpl::MimeRegistry),
257 sudden_termination_disables_(0), 242 sudden_termination_disables_(0),
258 plugin_refresh_allowed_(true), 243 plugin_refresh_allowed_(true),
259 default_task_runner_(renderer_scheduler->DefaultTaskRunner()), 244 default_task_runner_(renderer_scheduler->DefaultTaskRunner()),
260 loading_task_runner_(renderer_scheduler->LoadingTaskRunner()), 245 loading_task_runner_(renderer_scheduler->LoadingTaskRunner()),
261 web_scrollbar_behavior_(new WebScrollbarBehaviorImpl), 246 web_scrollbar_behavior_(new WebScrollbarBehaviorImpl),
262 renderer_scheduler_(renderer_scheduler), 247 renderer_scheduler_(renderer_scheduler),
263 blink_interface_provider_( 248 blink_interface_provider_(
264 new BlinkInterfaceProviderImpl(remote_interfaces)) { 249 new BlinkInterfaceProviderImpl(remote_interfaces)) {
265 #if !defined(OS_ANDROID) && !defined(OS_WIN) 250 #if !defined(OS_ANDROID) && !defined(OS_WIN)
266 if (g_sandbox_enabled && sandboxEnabled()) { 251 if (g_sandbox_enabled && sandboxEnabled()) {
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
330 } 315 }
331 316
332 blink::WebClipboard* RendererBlinkPlatformImpl::clipboard() { 317 blink::WebClipboard* RendererBlinkPlatformImpl::clipboard() {
333 blink::WebClipboard* clipboard = 318 blink::WebClipboard* clipboard =
334 GetContentClient()->renderer()->OverrideWebClipboard(); 319 GetContentClient()->renderer()->OverrideWebClipboard();
335 if (clipboard) 320 if (clipboard)
336 return clipboard; 321 return clipboard;
337 return clipboard_.get(); 322 return clipboard_.get();
338 } 323 }
339 324
340 blink::WebMimeRegistry* RendererBlinkPlatformImpl::mimeRegistry() {
341 return mime_registry_.get();
342 }
343
344 blink::WebFileUtilities* RendererBlinkPlatformImpl::fileUtilities() { 325 blink::WebFileUtilities* RendererBlinkPlatformImpl::fileUtilities() {
345 if (!file_utilities_) { 326 if (!file_utilities_) {
346 file_utilities_.reset(new FileUtilities(thread_safe_sender_.get())); 327 file_utilities_.reset(new FileUtilities(thread_safe_sender_.get()));
347 file_utilities_->set_sandbox_enabled(sandboxEnabled()); 328 file_utilities_->set_sandbox_enabled(sandboxEnabled());
348 } 329 }
349 return file_utilities_.get(); 330 return file_utilities_.get();
350 } 331 }
351 332
352 blink::WebSandboxSupport* RendererBlinkPlatformImpl::sandboxSupport() { 333 blink::WebSandboxSupport* RendererBlinkPlatformImpl::sandboxSupport() {
353 #if defined(OS_ANDROID) || defined(OS_WIN) 334 #if defined(OS_ANDROID) || defined(OS_WIN)
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
494 } 475 }
495 476
496 WebString RendererBlinkPlatformImpl::fileSystemCreateOriginIdentifier( 477 WebString RendererBlinkPlatformImpl::fileSystemCreateOriginIdentifier(
497 const blink::WebSecurityOrigin& origin) { 478 const blink::WebSecurityOrigin& origin) {
498 return WebString::fromUTF8(storage::GetIdentifierFromOrigin( 479 return WebString::fromUTF8(storage::GetIdentifierFromOrigin(
499 WebSecurityOriginToGURL(origin))); 480 WebSecurityOriginToGURL(origin)));
500 } 481 }
501 482
502 //------------------------------------------------------------------------------ 483 //------------------------------------------------------------------------------
503 484
504 WebString RendererBlinkPlatformImpl::MimeRegistry::mimeTypeForExtension(
505 const WebString& file_extension) {
506 // The sandbox restricts our access to the registry, so we need to proxy
507 // these calls over to the browser process.
508 if (!mime_registry_)
509 RenderThread::Get()->GetRemoteInterfaces()->GetInterface(&mime_registry_);
510
511 mojo::String mime_type;
512 if (!mime_registry_->GetMimeTypeFromExtension(
513 mojo::String::From(base::string16(file_extension)), &mime_type)) {
514 return WebString();
515 }
516 return WebString::fromASCII(mime_type.get());
517 }
518
519 //------------------------------------------------------------------------------
520
521 bool RendererBlinkPlatformImpl::FileUtilities::getFileInfo( 485 bool RendererBlinkPlatformImpl::FileUtilities::getFileInfo(
522 const WebString& path, 486 const WebString& path,
523 WebFileInfo& web_file_info) { 487 WebFileInfo& web_file_info) {
524 base::File::Info file_info; 488 base::File::Info file_info;
525 base::File::Error status = base::File::FILE_ERROR_MAX; 489 base::File::Error status = base::File::FILE_ERROR_MAX;
526 if (!SendSyncMessageFromAnyThread(new FileUtilitiesMsg_GetFileInfo( 490 if (!SendSyncMessageFromAnyThread(new FileUtilitiesMsg_GetFileInfo(
527 blink::WebStringToFilePath(path), &file_info, &status)) || 491 blink::WebStringToFilePath(path), &file_info, &status)) ||
528 status != base::File::FILE_OK) { 492 status != base::File::FILE_OK) {
529 return false; 493 return false;
530 } 494 }
(...skipping 795 matching lines...) Expand 10 before | Expand all | Expand 10 after
1326 return &trial_token_validator_; 1290 return &trial_token_validator_;
1327 } 1291 }
1328 1292
1329 void RendererBlinkPlatformImpl::workerContextCreated( 1293 void RendererBlinkPlatformImpl::workerContextCreated(
1330 const v8::Local<v8::Context>& worker) { 1294 const v8::Local<v8::Context>& worker) {
1331 GetContentClient()->renderer()->DidInitializeWorkerContextOnWorkerThread( 1295 GetContentClient()->renderer()->DidInitializeWorkerContextOnWorkerThread(
1332 worker); 1296 worker);
1333 } 1297 }
1334 1298
1335 } // namespace content 1299 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/renderer_blink_platform_impl.h ('k') | content/test/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698