OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "extensions/browser/user_script_loader.h" | 5 #include "extensions/browser/user_script_loader.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <set> | 9 #include <set> |
10 #include <string> | 10 #include <string> |
(...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
325 options.share_read_only = true; | 325 options.share_read_only = true; |
326 if (!shared_memory.Create(options)) | 326 if (!shared_memory.Create(options)) |
327 return std::unique_ptr<base::SharedMemory>(); | 327 return std::unique_ptr<base::SharedMemory>(); |
328 | 328 |
329 if (!shared_memory.Map(pickle.size())) | 329 if (!shared_memory.Map(pickle.size())) |
330 return std::unique_ptr<base::SharedMemory>(); | 330 return std::unique_ptr<base::SharedMemory>(); |
331 | 331 |
332 // Copy the pickle to shared memory. | 332 // Copy the pickle to shared memory. |
333 memcpy(shared_memory.memory(), pickle.data(), pickle.size()); | 333 memcpy(shared_memory.memory(), pickle.data(), pickle.size()); |
334 | 334 |
335 base::SharedMemoryHandle readonly_handle; | 335 base::SharedMemoryHandle readonly_handle = shared_memory.GetReadOnlyHandle(); |
336 if (!shared_memory.ShareReadOnlyToProcess(base::GetCurrentProcessHandle(), | 336 if (!readonly_handle.IsValid()) |
337 &readonly_handle)) | |
338 return std::unique_ptr<base::SharedMemory>(); | 337 return std::unique_ptr<base::SharedMemory>(); |
339 | 338 |
340 return base::MakeUnique<base::SharedMemory>(readonly_handle, | 339 return base::MakeUnique<base::SharedMemory>(readonly_handle, |
341 /*read_only=*/true); | 340 /*read_only=*/true); |
342 } | 341 } |
343 | 342 |
344 void UserScriptLoader::AddObserver(Observer* observer) { | 343 void UserScriptLoader::AddObserver(Observer* observer) { |
345 observers_.AddObserver(observer); | 344 observers_.AddObserver(observer); |
346 } | 345 } |
347 | 346 |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
421 if (!shared_memory->ShareToProcess(handle, &handle_for_process)) | 420 if (!shared_memory->ShareToProcess(handle, &handle_for_process)) |
422 return; // This can legitimately fail if the renderer asserts at startup. | 421 return; // This can legitimately fail if the renderer asserts at startup. |
423 | 422 |
424 if (base::SharedMemory::IsHandleValid(handle_for_process)) { | 423 if (base::SharedMemory::IsHandleValid(handle_for_process)) { |
425 process->Send(new ExtensionMsg_UpdateUserScripts( | 424 process->Send(new ExtensionMsg_UpdateUserScripts( |
426 handle_for_process, host_id(), changed_hosts, whitelisted_only)); | 425 handle_for_process, host_id(), changed_hosts, whitelisted_only)); |
427 } | 426 } |
428 } | 427 } |
429 | 428 |
430 } // namespace extensions | 429 } // namespace extensions |
OLD | NEW |