summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/user_script_slave.cc
diff options
context:
space:
mode:
authormpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-12 17:57:09 +0000
committermpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-12 17:57:09 +0000
commitb2a74caaf15e234b5e6c03151d12c28a319a06cb (patch)
tree4b0f606a6ee117a66e66e4b7fb6546d9943bd425 /chrome/renderer/user_script_slave.cc
parent293caa54c215807abcef6a31aa34ca0e49e51581 (diff)
downloadchromium_src-b2a74caaf15e234b5e6c03151d12c28a319a06cb.zip
chromium_src-b2a74caaf15e234b5e6c03151d12c28a319a06cb.tar.gz
chromium_src-b2a74caaf15e234b5e6c03151d12c28a319a06cb.tar.bz2
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
Diffstat (limited to 'chrome/renderer/user_script_slave.cc')
-rw-r--r--chrome/renderer/user_script_slave.cc15
1 files changed, 9 insertions, 6 deletions
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<std::string>* 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<WebScriptSource>* 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,