Index: extensions/browser/web_ui_user_script_loader.cc |
diff --git a/extensions/browser/web_ui_user_script_loader.cc b/extensions/browser/web_ui_user_script_loader.cc |
index 3cd326efd2c7f0617b7205fe71ab9e38849202a8..00fc3038c5342ae6bfe0be6469b099f47cabfadb 100644 |
--- a/extensions/browser/web_ui_user_script_loader.cc |
+++ b/extensions/browser/web_ui_user_script_loader.cc |
@@ -10,6 +10,7 @@ |
#include "content/public/browser/browser_context.h" |
#include "content/public/browser/browser_thread.h" |
#include "extensions/browser/content_verifier.h" |
+#include "extensions/browser/extensions_browser_client.h" |
namespace { |
using LoadScriptsCallback = |
@@ -30,11 +31,19 @@ void SerializeOnFileThread(scoped_ptr<extensions::UserScriptList> user_scripts, |
struct WebUIUserScriptLoader::UserScriptRenderInfo { |
int render_process_id; |
int render_view_id; |
+ bool is_incognito; |
- UserScriptRenderInfo() : render_process_id(-1), render_view_id(-1) {} |
+ UserScriptRenderInfo() |
+ : render_process_id(-1), |
+ render_view_id(-1), |
+ is_incognito(false) {} |
- UserScriptRenderInfo(int render_process_id, int render_view_id) |
- : render_process_id(render_process_id), render_view_id(render_view_id) {} |
+ UserScriptRenderInfo(int render_process_id, |
+ int render_view_id, |
+ bool is_incognito) |
+ : render_process_id(render_process_id), |
+ render_view_id(render_view_id), |
+ is_incognito(is_incognito) {} |
bool operator<(const UserScriptRenderInfo& other) { |
if (render_process_id != other.render_process_id) |
@@ -43,6 +52,9 @@ struct WebUIUserScriptLoader::UserScriptRenderInfo { |
if (render_view_id != other.render_view_id) |
return render_view_id < other.render_view_id; |
+ if (is_incognito != other.is_incognito) |
+ return is_incognito == false; |
+ |
return false; |
} |
}; |
@@ -63,8 +75,9 @@ WebUIUserScriptLoader::~WebUIUserScriptLoader() { |
void WebUIUserScriptLoader::AddScripts( |
const std::set<extensions::UserScript>& scripts, |
int render_process_id, |
- int render_view_id) { |
- UserScriptRenderInfo info(render_process_id, render_view_id); |
+ int render_view_id, |
+ bool is_incognito) { |
+ UserScriptRenderInfo info(render_process_id, render_view_id, is_incognito); |
for (const extensions::UserScript& script : scripts) { |
script_render_info_map_.insert( |
std::pair<int, UserScriptRenderInfo>(script.id(), info)); |
@@ -94,10 +107,16 @@ void WebUIUserScriptLoader::LoadScripts( |
int render_process_id = iter->second.render_process_id; |
int render_view_id = iter->second.render_view_id; |
- CreateWebUIURLFetchers(&script.js_scripts(), render_process_id, |
- render_view_id); |
- CreateWebUIURLFetchers(&script.css_scripts(), render_process_id, |
- render_view_id); |
+ content::BrowserContext* browser_context = iter->second.is_incognito |
Devlin
2015/04/23 17:53:47
Can't we basically replace this whole patch with
c
|
+ ? extensions::ExtensionsBrowserClient::Get()->GetOffTheRecordContext( |
+ UserScriptLoader::browser_context()) |
+ : UserScriptLoader::browser_context(); |
+ DCHECK(browser_context); |
+ |
+ CreateWebUIURLFetchers(&script.js_scripts(), browser_context, |
+ render_process_id, render_view_id); |
+ CreateWebUIURLFetchers(&script.css_scripts(), browser_context, |
+ render_process_id, render_view_id); |
script_render_info_map_.erase(script.id()); |
} |
@@ -113,6 +132,7 @@ void WebUIUserScriptLoader::LoadScripts( |
void WebUIUserScriptLoader::CreateWebUIURLFetchers( |
extensions::UserScript::FileList* script_files, |
+ content::BrowserContext* browser_context, |
int render_process_id, |
int render_view_id) { |
for (extensions::UserScript::File& file : *script_files) { |
@@ -121,7 +141,7 @@ void WebUIUserScriptLoader::CreateWebUIURLFetchers( |
// loader is destroyed, all the fetchers will be destroyed. Therefore, |
// we are sure it is safe to use base::Unretained(this) here. |
scoped_ptr<WebUIURLFetcher> fetcher(new WebUIURLFetcher( |
- browser_context(), render_process_id, render_view_id, file.url(), |
+ browser_context, render_process_id, render_view_id, file.url(), |
base::Bind(&WebUIUserScriptLoader::OnSingleWebUIURLFetchComplete, |
base::Unretained(this), &file))); |
fetchers_.push_back(fetcher.release()); |