| Index: chrome/renderer/user_script_slave.cc
 | 
| diff --git a/chrome/renderer/user_script_slave.cc b/chrome/renderer/user_script_slave.cc
 | 
| index a06d856176bd4c614a186c7bcbb83d9ee11c7fcd..0c0574bde40bed01380bba124978ef54b0302524 100644
 | 
| --- a/chrome/renderer/user_script_slave.cc
 | 
| +++ b/chrome/renderer/user_script_slave.cc
 | 
| @@ -68,7 +68,8 @@ void UserScriptSlave::GetActiveExtensions(std::set<std::string>* extension_ids)
 | 
|    }
 | 
|  }
 | 
|  
 | 
| -bool UserScriptSlave::UpdateScripts(base::SharedMemoryHandle shared_memory) {
 | 
| +bool UserScriptSlave::UpdateScripts(base::SharedMemoryHandle shared_memory,
 | 
| +                                    bool only_inject_incognito) {
 | 
|    scripts_.clear();
 | 
|  
 | 
|    // Create the shared memory object (read only).
 | 
| @@ -101,6 +102,13 @@ bool UserScriptSlave::UpdateScripts(base::SharedMemoryHandle shared_memory) {
 | 
|      UserScript* script = scripts_.back();
 | 
|      script->Unpickle(pickle, &iter);
 | 
|  
 | 
| +    if (only_inject_incognito && !script->is_incognito_enabled()) {
 | 
| +      // This script shouldn't run in an incognito tab.
 | 
| +      delete script;
 | 
| +      scripts_.pop_back();
 | 
| +      continue;
 | 
| +    }
 | 
| +
 | 
|      // Note that this is a pointer into shared memory. We don't own it. It gets
 | 
|      // cleared up when the last renderer or browser process drops their
 | 
|      // reference to the shared memory.
 | 
| 
 |