From b2a74caaf15e234b5e6c03151d12c28a319a06cb Mon Sep 17 00:00:00 2001 From: "mpcomplete@chromium.org" Date: Fri, 12 Mar 2010 17:57:09 +0000 Subject: Add chrome.extension.inIncognitoTab for content scripts. Review URL: http://codereview.chromium.org/822008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41446 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/renderer/user_script_slave.cc | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'chrome/renderer/user_script_slave.cc') diff --git a/chrome/renderer/user_script_slave.cc b/chrome/renderer/user_script_slave.cc index 33adfbd..66c15d1 100644 --- a/chrome/renderer/user_script_slave.cc +++ b/chrome/renderer/user_script_slave.cc @@ -16,6 +16,7 @@ #include "chrome/common/extensions/extension.h" #include "chrome/common/extensions/extension_constants.h" #include "chrome/renderer/extension_groups.h" +#include "chrome/renderer/render_thread.h" #include "googleurl/src/gurl.h" #include "third_party/WebKit/WebKit/chromium/public/WebFrame.h" @@ -32,7 +33,7 @@ static const char kUserScriptTail[] = "\n})(window);"; // Sets up the chrome.extension module. This may be run multiple times per // context, but the init method deletes itself after the first time. static const char kInitExtension[] = - "if (chrome.initExtension) chrome.initExtension('%s', true);"; + "if (chrome.initExtension) chrome.initExtension('%s', true, %s);"; int UserScriptSlave::GetIsolatedWorldId(const std::string& extension_id) { @@ -68,10 +69,11 @@ void UserScriptSlave::GetActiveExtensions(std::set* extension_ids) } } -bool UserScriptSlave::UpdateScripts(base::SharedMemoryHandle shared_memory, - bool only_inject_incognito) { +bool UserScriptSlave::UpdateScripts(base::SharedMemoryHandle shared_memory) { scripts_.clear(); + bool only_inject_incognito = RenderThread::current()->is_incognito_process(); + // Create the shared memory object (read only). shared_memory_.reset(new base::SharedMemory(shared_memory, true)); if (!shared_memory_.get()) @@ -134,9 +136,10 @@ bool UserScriptSlave::UpdateScripts(base::SharedMemoryHandle shared_memory, void UserScriptSlave::InsertInitExtensionCode( std::vector* sources, const std::string& extension_id) { DCHECK(sources); - sources->insert(sources->begin(), - WebScriptSource(WebString::fromUTF8( - StringPrintf(kInitExtension, extension_id.c_str())))); + bool incognito = RenderThread::current()->is_incognito_process(); + sources->insert(sources->begin(), WebScriptSource(WebString::fromUTF8( + StringPrintf(kInitExtension, extension_id.c_str(), + incognito ? "true" : "false")))); } bool UserScriptSlave::InjectScripts(WebFrame* frame, -- cgit v1.1