OLD | NEW |
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/browser/extensions/user_script_master.h" | 5 #include "chrome/browser/extensions/user_script_master.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 307 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
318 content::Source<Profile>(profile_)); | 318 content::Source<Profile>(profile_)); |
319 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_LOADED, | 319 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_LOADED, |
320 content::Source<Profile>(profile_)); | 320 content::Source<Profile>(profile_)); |
321 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_UNLOADED, | 321 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_UNLOADED, |
322 content::Source<Profile>(profile_)); | 322 content::Source<Profile>(profile_)); |
323 registrar_.Add(this, content::NOTIFICATION_RENDERER_PROCESS_CREATED, | 323 registrar_.Add(this, content::NOTIFICATION_RENDERER_PROCESS_CREATED, |
324 content::NotificationService::AllBrowserContextsAndSources()); | 324 content::NotificationService::AllBrowserContextsAndSources()); |
325 } | 325 } |
326 | 326 |
327 UserScriptMaster::~UserScriptMaster() { | 327 UserScriptMaster::~UserScriptMaster() { |
328 if (script_reloader_) | 328 if (script_reloader_.get()) |
329 script_reloader_->DisownMaster(); | 329 script_reloader_->DisownMaster(); |
330 } | 330 } |
331 | 331 |
332 void UserScriptMaster::NewScriptsAvailable(base::SharedMemory* handle) { | 332 void UserScriptMaster::NewScriptsAvailable(base::SharedMemory* handle) { |
333 // Ensure handle is deleted or released. | 333 // Ensure handle is deleted or released. |
334 scoped_ptr<base::SharedMemory> handle_deleter(handle); | 334 scoped_ptr<base::SharedMemory> handle_deleter(handle); |
335 | 335 |
336 if (pending_load_) { | 336 if (pending_load_) { |
337 // While we were loading, there were further changes. Don't bother | 337 // While we were loading, there were further changes. Don't bother |
338 // notifying about these scripts and instead just immediately reload. | 338 // notifying about these scripts and instead just immediately reload. |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
410 return; | 410 return; |
411 if (ScriptsReady()) | 411 if (ScriptsReady()) |
412 SendUpdate(process, GetSharedMemory()); | 412 SendUpdate(process, GetSharedMemory()); |
413 break; | 413 break; |
414 } | 414 } |
415 default: | 415 default: |
416 DCHECK(false); | 416 DCHECK(false); |
417 } | 417 } |
418 | 418 |
419 if (should_start_load) { | 419 if (should_start_load) { |
420 if (script_reloader_) { | 420 if (script_reloader_.get()) { |
421 pending_load_ = true; | 421 pending_load_ = true; |
422 } else { | 422 } else { |
423 StartLoad(); | 423 StartLoad(); |
424 } | 424 } |
425 } | 425 } |
426 } | 426 } |
427 | 427 |
428 void UserScriptMaster::StartLoad() { | 428 void UserScriptMaster::StartLoad() { |
429 if (!script_reloader_) | 429 if (!script_reloader_.get()) |
430 script_reloader_ = new ScriptReloader(this); | 430 script_reloader_ = new ScriptReloader(this); |
431 | 431 |
432 script_reloader_->StartLoad(user_scripts_, extensions_info_); | 432 script_reloader_->StartLoad(user_scripts_, extensions_info_); |
433 } | 433 } |
434 | 434 |
435 void UserScriptMaster::SendUpdate(content::RenderProcessHost* process, | 435 void UserScriptMaster::SendUpdate(content::RenderProcessHost* process, |
436 base::SharedMemory* shared_memory) { | 436 base::SharedMemory* shared_memory) { |
437 // Don't allow injection of content scripts into <webview>. | 437 // Don't allow injection of content scripts into <webview>. |
438 if (process->IsGuest()) | 438 if (process->IsGuest()) |
439 return; | 439 return; |
(...skipping 11 matching lines...) Expand all Loading... |
451 | 451 |
452 base::SharedMemoryHandle handle_for_process; | 452 base::SharedMemoryHandle handle_for_process; |
453 if (!shared_memory->ShareToProcess(handle, &handle_for_process)) | 453 if (!shared_memory->ShareToProcess(handle, &handle_for_process)) |
454 return; // This can legitimately fail if the renderer asserts at startup. | 454 return; // This can legitimately fail if the renderer asserts at startup. |
455 | 455 |
456 if (base::SharedMemory::IsHandleValid(handle_for_process)) | 456 if (base::SharedMemory::IsHandleValid(handle_for_process)) |
457 process->Send(new ExtensionMsg_UpdateUserScripts(handle_for_process)); | 457 process->Send(new ExtensionMsg_UpdateUserScripts(handle_for_process)); |
458 } | 458 } |
459 | 459 |
460 } // namespace extensions | 460 } // namespace extensions |
OLD | NEW |