Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(107)

Unified Diff: extensions/browser/web_ui_user_script_loader.cc

Issue 1062963006: Make WebUI webview content script work with incognito. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@webui_api_4
Patch Set: Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « extensions/browser/web_ui_user_script_loader.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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());
« no previous file with comments | « extensions/browser/web_ui_user_script_loader.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698