| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "extensions/browser/api/guest_view/web_view/web_view_internal_api.h" | 5 #include "extensions/browser/api/guest_view/web_view/web_view_internal_api.h" |
| 6 | 6 |
| 7 #include "base/strings/string_number_conversions.h" | 7 #include "base/strings/string_number_conversions.h" |
| 8 #include "base/strings/stringprintf.h" | 8 #include "base/strings/stringprintf.h" |
| 9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
| 10 #include "content/public/browser/browser_context.h" |
| 10 #include "content/public/browser/render_process_host.h" | 11 #include "content/public/browser/render_process_host.h" |
| 11 #include "content/public/browser/render_view_host.h" | 12 #include "content/public/browser/render_view_host.h" |
| 12 #include "content/public/browser/web_contents.h" | 13 #include "content/public/browser/web_contents.h" |
| 13 #include "content/public/common/stop_find_action.h" | 14 #include "content/public/common/stop_find_action.h" |
| 14 #include "content/public/common/url_fetcher.h" | 15 #include "content/public/common/url_fetcher.h" |
| 15 #include "extensions/browser/guest_view/web_view/web_view_constants.h" | 16 #include "extensions/browser/guest_view/web_view/web_view_constants.h" |
| 16 #include "extensions/browser/guest_view/web_view/web_view_content_script_manager
.h" | 17 #include "extensions/browser/guest_view/web_view/web_view_content_script_manager
.h" |
| 17 #include "extensions/common/api/web_view_internal.h" | 18 #include "extensions/common/api/web_view_internal.h" |
| 18 #include "extensions/common/error_utils.h" | 19 #include "extensions/common/error_utils.h" |
| 19 #include "extensions/common/manifest_constants.h" | 20 #include "extensions/common/manifest_constants.h" |
| (...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 184 for (const std::string& glob : exclude_globs) | 185 for (const std::string& glob : exclude_globs) |
| 185 script->add_exclude_glob(glob); | 186 script->add_exclude_glob(glob); |
| 186 } | 187 } |
| 187 | 188 |
| 188 return true; | 189 return true; |
| 189 } | 190 } |
| 190 | 191 |
| 191 bool Parse(std::vector<linked_ptr<ContentScriptDetails>> content_script_list, | 192 bool Parse(std::vector<linked_ptr<ContentScriptDetails>> content_script_list, |
| 192 const extensions::Extension* extension, | 193 const extensions::Extension* extension, |
| 193 const GURL& owner_base_url, | 194 const GURL& owner_base_url, |
| 195 bool is_incognito_enabled, |
| 194 std::map<std::string, UserScript>* result, | 196 std::map<std::string, UserScript>* result, |
| 195 std::string* error) { | 197 std::string* error) { |
| 196 if (content_script_list.size() == 0) | 198 if (content_script_list.size() == 0) |
| 197 return false; | 199 return false; |
| 198 for (size_t i = 0; i < content_script_list.size(); ++i) { | 200 for (size_t i = 0; i < content_script_list.size(); ++i) { |
| 199 const ContentScriptDetails& script_value = *content_script_list[i]; | 201 const ContentScriptDetails& script_value = *content_script_list[i]; |
| 200 const std::string& name = script_value.name; | 202 const std::string& name = script_value.name; |
| 201 UserScript script; | 203 UserScript script; |
| 202 if (!Parse(script_value, extension, owner_base_url, &script, error)) | 204 if (!Parse(script_value, extension, owner_base_url, &script, error)) |
| 203 return false; | 205 return false; |
| 204 else | 206 else { |
| 207 script.set_incognito_enabled(is_incognito_enabled); |
| 205 result->insert(std::pair<std::string, UserScript>(name, script)); | 208 result->insert(std::pair<std::string, UserScript>(name, script)); |
| 209 } |
| 206 } | 210 } |
| 207 return true; | 211 return true; |
| 208 } | 212 } |
| 209 | 213 |
| 210 // Initialize the user script. | 214 // Initialize the user script. |
| 211 void InitUserScript(UserScript* script, std::string name, HostID host_id) { | 215 void InitUserScript(UserScript* script, std::string name, HostID host_id) { |
| 212 if (!script) | 216 if (!script) |
| 213 return; | 217 return; |
| 214 script->set_id(UserScript::GenerateUserScriptID()); | 218 script->set_id(UserScript::GenerateUserScriptID()); |
| 215 script->set_name(name); | 219 script->set_name(name); |
| (...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 384 scoped_ptr<web_view_internal::AddContentScripts::Params> params( | 388 scoped_ptr<web_view_internal::AddContentScripts::Params> params( |
| 385 web_view_internal::AddContentScripts::Params::Create(*args_)); | 389 web_view_internal::AddContentScripts::Params::Create(*args_)); |
| 386 EXTENSION_FUNCTION_VALIDATE(params.get()); | 390 EXTENSION_FUNCTION_VALIDATE(params.get()); |
| 387 | 391 |
| 388 int view_instance_id = 0; | 392 int view_instance_id = 0; |
| 389 if (!args_->GetInteger(0, &view_instance_id) || !view_instance_id) { | 393 if (!args_->GetInteger(0, &view_instance_id) || !view_instance_id) { |
| 390 SendResponse(false); | 394 SendResponse(false); |
| 391 return false; | 395 return false; |
| 392 } | 396 } |
| 393 | 397 |
| 398 const bool is_incognito_enabled = browser_context()->IsOffTheRecord(); |
| 399 |
| 394 GURL owner_base_url( | 400 GURL owner_base_url( |
| 395 render_view_host()->GetSiteInstance()->GetSiteURL().GetWithEmptyPath()); | 401 render_view_host()->GetSiteInstance()->GetSiteURL().GetWithEmptyPath()); |
| 396 std::map<std::string, UserScript> result; | 402 std::map<std::string, UserScript> result; |
| 397 if (!Parse(params->content_script_list, extension(), owner_base_url, &result, | 403 if (!Parse(params->content_script_list, extension(), owner_base_url, |
| 398 &error_)) { | 404 is_incognito_enabled, &result, &error_)) { |
| 399 SendResponse(false); | 405 SendResponse(false); |
| 400 return false; | 406 return false; |
| 401 } | 407 } |
| 402 | 408 |
| 403 WebViewContentScriptManager* manager = | 409 WebViewContentScriptManager* manager = |
| 404 WebViewContentScriptManager::Get(browser_context()); | 410 WebViewContentScriptManager::Get(browser_context()); |
| 405 if (!manager) { | 411 if (!manager) { |
| 406 SendResponse(false); | 412 SendResponse(false); |
| 407 return false; | 413 return false; |
| 408 } | 414 } |
| (...skipping 469 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 878 // Will finish asynchronously. | 884 // Will finish asynchronously. |
| 879 return true; | 885 return true; |
| 880 } | 886 } |
| 881 | 887 |
| 882 void WebViewInternalClearDataFunction::ClearDataDone() { | 888 void WebViewInternalClearDataFunction::ClearDataDone() { |
| 883 Release(); // Balanced in RunAsync(). | 889 Release(); // Balanced in RunAsync(). |
| 884 SendResponse(true); | 890 SendResponse(true); |
| 885 } | 891 } |
| 886 | 892 |
| 887 } // namespace extensions | 893 } // namespace extensions |
| OLD | NEW |