Index: chrome/browser/extensions/user_script_master.cc |
diff --git a/chrome/browser/extensions/user_script_master.cc b/chrome/browser/extensions/user_script_master.cc |
index 95b8f6aa33894d95f7fc1ab43effe40573007a9e..2ae83de486c51491cc07e28a58be740b943ac068 100644 |
--- a/chrome/browser/extensions/user_script_master.cc |
+++ b/chrome/browser/extensions/user_script_master.cc |
@@ -284,15 +284,20 @@ static base::SharedMemory* Serialize(const UserScriptList& scripts) { |
} |
// Create the shared memory object. |
- scoped_ptr<base::SharedMemory> shared_memory(new base::SharedMemory()); |
+ base::SharedMemory shared_memory; |
- if (!shared_memory->CreateAndMapAnonymous(pickle.size())) |
+ if (!shared_memory.CreateAndMapAnonymous(pickle.size())) |
return NULL; |
// Copy the pickle to shared memory. |
- memcpy(shared_memory->memory(), pickle.data(), pickle.size()); |
+ memcpy(shared_memory.memory(), pickle.data(), pickle.size()); |
- return shared_memory.release(); |
+ base::SharedMemoryHandle readonly_handle; |
+ if (!shared_memory.ShareReadOnlyToProcess(base::GetCurrentProcessHandle(), |
+ &readonly_handle)) |
+ return NULL; |
+ |
+ return new base::SharedMemory(readonly_handle, /*read_only=*/true); |
} |
// This method will be called on the file thread. |