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

Side by Side Diff: chrome/utility/chrome_content_utility_client.cc

Issue 1161053004: Move the SeccompSupportDetector to be in-process. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address comments Created 5 years, 6 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
« no previous file with comments | « chrome/utility/chrome_content_utility_client.h ('k') | no next file » | 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 "chrome/utility/chrome_content_utility_client.h" 5 #include "chrome/utility/chrome_content_utility_client.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/files/file_path.h" 8 #include "base/files/file_path.h"
9 #include "base/memory/ref_counted.h" 9 #include "base/memory/ref_counted.h"
10 #include "base/time/time.h" 10 #include "base/time/time.h"
(...skipping 20 matching lines...) Expand all
31 #endif 31 #endif
32 32
33 #if !defined(OS_ANDROID) 33 #if !defined(OS_ANDROID)
34 #include "chrome/common/resource_usage_reporter.mojom.h" 34 #include "chrome/common/resource_usage_reporter.mojom.h"
35 #include "chrome/utility/profile_import_handler.h" 35 #include "chrome/utility/profile_import_handler.h"
36 #include "net/proxy/mojo_proxy_resolver_factory_impl.h" 36 #include "net/proxy/mojo_proxy_resolver_factory_impl.h"
37 #include "net/proxy/proxy_resolver_v8.h" 37 #include "net/proxy/proxy_resolver_v8.h"
38 #include "third_party/mojo/src/mojo/public/cpp/bindings/strong_binding.h" 38 #include "third_party/mojo/src/mojo/public/cpp/bindings/strong_binding.h"
39 #endif 39 #endif
40 40
41 #if defined(OS_ANDROID) && defined(USE_SECCOMP_BPF)
42 #include "sandbox/linux/seccomp-bpf/sandbox_bpf.h"
43 #endif
44
45 #if defined(OS_WIN) 41 #if defined(OS_WIN)
46 #include "chrome/utility/font_cache_handler_win.h" 42 #include "chrome/utility/font_cache_handler_win.h"
47 #include "chrome/utility/shell_handler_win.h" 43 #include "chrome/utility/shell_handler_win.h"
48 #endif 44 #endif
49 45
50 #if defined(ENABLE_EXTENSIONS) 46 #if defined(ENABLE_EXTENSIONS)
51 #include "chrome/common/extensions/chrome_utility_extensions_messages.h" 47 #include "chrome/common/extensions/chrome_utility_extensions_messages.h"
52 #include "chrome/utility/extensions/extensions_handler.h" 48 #include "chrome/utility/extensions/extensions_handler.h"
53 #include "chrome/utility/image_writer/image_writer_handler.h" 49 #include "chrome/utility/image_writer/image_writer_handler.h"
54 #include "chrome/utility/media_galleries/ipc_data_source.h" 50 #include "chrome/utility/media_galleries/ipc_data_source.h"
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
197 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_AnalyzeZipFileForDownloadProtection, 193 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_AnalyzeZipFileForDownloadProtection,
198 OnAnalyzeZipFileForDownloadProtection) 194 OnAnalyzeZipFileForDownloadProtection)
199 #endif 195 #endif
200 #if defined(ENABLE_EXTENSIONS) 196 #if defined(ENABLE_EXTENSIONS)
201 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_ParseMediaMetadata, 197 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_ParseMediaMetadata,
202 OnParseMediaMetadata) 198 OnParseMediaMetadata)
203 #endif 199 #endif
204 #if defined(OS_CHROMEOS) 200 #if defined(OS_CHROMEOS)
205 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_CreateZipFile, OnCreateZipFile) 201 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_CreateZipFile, OnCreateZipFile)
206 #endif 202 #endif
207 #if defined(OS_ANDROID) && defined(USE_SECCOMP_BPF)
208 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_DetectSeccompSupport,
209 OnDetectSeccompSupport)
210 #endif
211 IPC_MESSAGE_UNHANDLED(handled = false) 203 IPC_MESSAGE_UNHANDLED(handled = false)
212 IPC_END_MESSAGE_MAP() 204 IPC_END_MESSAGE_MAP()
213 205
214 for (Handlers::iterator it = handlers_.begin(); 206 for (Handlers::iterator it = handlers_.begin();
215 !handled && it != handlers_.end(); ++it) { 207 !handled && it != handlers_.end(); ++it) {
216 handled = (*it)->OnMessageReceived(message); 208 handled = (*it)->OnMessageReceived(message);
217 } 209 }
218 210
219 return handled; 211 return handled;
220 } 212 }
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
327 succeeded = zip::ZipFiles(src_dir, src_relative_paths, dest_fd.fd); 319 succeeded = zip::ZipFiles(src_dir, src_relative_paths, dest_fd.fd);
328 320
329 if (succeeded) 321 if (succeeded)
330 Send(new ChromeUtilityHostMsg_CreateZipFile_Succeeded()); 322 Send(new ChromeUtilityHostMsg_CreateZipFile_Succeeded());
331 else 323 else
332 Send(new ChromeUtilityHostMsg_CreateZipFile_Failed()); 324 Send(new ChromeUtilityHostMsg_CreateZipFile_Failed());
333 ReleaseProcessIfNeeded(); 325 ReleaseProcessIfNeeded();
334 } 326 }
335 #endif // defined(OS_CHROMEOS) 327 #endif // defined(OS_CHROMEOS)
336 328
337 #if defined(OS_ANDROID) && defined(USE_SECCOMP_BPF)
338 void ChromeContentUtilityClient::OnDetectSeccompSupport() {
339 bool supports_prctl = sandbox::SandboxBPF::SupportsSeccompSandbox(
340 sandbox::SandboxBPF::SeccompLevel::SINGLE_THREADED);
341 Send(new ChromeUtilityHostMsg_DetectSeccompSupport_ResultPrctl(
342 supports_prctl));
343
344 // Probing for the seccomp syscall can provoke kernel panics in certain LGE
345 // devices. For now, this data will not be collected. In the future, this
346 // should detect SeccompLevel::MULTI_THREADED. http://crbug.com/478478
347
348 ReleaseProcessIfNeeded();
349 }
350 #endif // defined(OS_ANDROID) && defined(USE_SECCOMP_BPF)
351
352 #if defined(OS_CHROMEOS) 329 #if defined(OS_CHROMEOS)
353 void ChromeContentUtilityClient::OnRobustJPEGDecodeImage( 330 void ChromeContentUtilityClient::OnRobustJPEGDecodeImage(
354 const std::vector<unsigned char>& encoded_data, 331 const std::vector<unsigned char>& encoded_data,
355 int request_id) { 332 int request_id) {
356 // Our robust jpeg decoding is using IJG libjpeg. 333 // Our robust jpeg decoding is using IJG libjpeg.
357 if (!encoded_data.empty()) { 334 if (!encoded_data.empty()) {
358 scoped_ptr<SkBitmap> decoded_image(gfx::JPEGCodecRobustSlow::Decode( 335 scoped_ptr<SkBitmap> decoded_image(gfx::JPEGCodecRobustSlow::Decode(
359 &encoded_data[0], encoded_data.size())); 336 &encoded_data[0], encoded_data.size()));
360 if (!decoded_image.get() || decoded_image->empty()) { 337 if (!decoded_image.get() || decoded_image->empty()) {
361 Send(new ChromeUtilityHostMsg_DecodeImage_Failed(request_id)); 338 Send(new ChromeUtilityHostMsg_DecodeImage_Failed(request_id));
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
427 const std::string& mime_type, int64 total_size, bool get_attached_images) { 404 const std::string& mime_type, int64 total_size, bool get_attached_images) {
428 // Only one IPCDataSource may be created and added to the list of handlers. 405 // Only one IPCDataSource may be created and added to the list of handlers.
429 metadata::IPCDataSource* source = new metadata::IPCDataSource(total_size); 406 metadata::IPCDataSource* source = new metadata::IPCDataSource(total_size);
430 handlers_.push_back(source); 407 handlers_.push_back(source);
431 408
432 metadata::MediaMetadataParser* parser = new metadata::MediaMetadataParser( 409 metadata::MediaMetadataParser* parser = new metadata::MediaMetadataParser(
433 source, mime_type, get_attached_images); 410 source, mime_type, get_attached_images);
434 parser->Start(base::Bind(&FinishParseMediaMetadata, base::Owned(parser))); 411 parser->Start(base::Bind(&FinishParseMediaMetadata, base::Owned(parser)));
435 } 412 }
436 #endif 413 #endif
OLDNEW
« no previous file with comments | « chrome/utility/chrome_content_utility_client.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698