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

Side by Side Diff: extensions/browser/api/web_view/web_view_internal_api.cc

Issue 885493007: Refactoring: de-couple Extensions from "script injection System" [render side] : 1 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 10 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 unified diff | Download patch
OLDNEW
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/web_view/web_view_internal_api.h" 5 #include "extensions/browser/api/web_view/web_view_internal_api.h"
6 6
7 #include "base/strings/stringprintf.h" 7 #include "base/strings/stringprintf.h"
8 #include "base/strings/utf_string_conversions.h" 8 #include "base/strings/utf_string_conversions.h"
9 #include "content/public/browser/render_process_host.h" 9 #include "content/public/browser/render_process_host.h"
10 #include "content/public/browser/render_view_host.h" 10 #include "content/public/browser/render_view_host.h"
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 bool WebViewInternalNavigateFunction::RunAsyncSafe(WebViewGuest* guest) { 63 bool WebViewInternalNavigateFunction::RunAsyncSafe(WebViewGuest* guest) {
64 scoped_ptr<webview::Navigate::Params> params( 64 scoped_ptr<webview::Navigate::Params> params(
65 webview::Navigate::Params::Create(*args_)); 65 webview::Navigate::Params::Create(*args_));
66 EXTENSION_FUNCTION_VALIDATE(params.get()); 66 EXTENSION_FUNCTION_VALIDATE(params.get());
67 std::string src = params->src; 67 std::string src = params->src;
68 guest->NavigateGuest(src, true /* force_navigation */); 68 guest->NavigateGuest(src, true /* force_navigation */);
69 return true; 69 return true;
70 } 70 }
71 71
72 WebViewInternalExecuteCodeFunction::WebViewInternalExecuteCodeFunction() 72 WebViewInternalExecuteCodeFunction::WebViewInternalExecuteCodeFunction()
73 : guest_instance_id_(0), guest_src_(GURL::EmptyGURL()) { 73 : guest_instance_id_(0),
74 guest_src_(GURL::EmptyGURL()),
75 script_injection_instance_id_(0) {
74 } 76 }
75 77
76 WebViewInternalExecuteCodeFunction::~WebViewInternalExecuteCodeFunction() { 78 WebViewInternalExecuteCodeFunction::~WebViewInternalExecuteCodeFunction() {
77 } 79 }
78 80
79 bool WebViewInternalExecuteCodeFunction::Init() { 81 bool WebViewInternalExecuteCodeFunction::Init() {
80 if (details_.get()) 82 if (details_.get())
81 return true; 83 return true;
82 84
83 if (!args_->GetInteger(0, &guest_instance_id_)) 85 if (!args_->GetInteger(0, &guest_instance_id_))
(...skipping 11 matching lines...) Expand all
95 return false; 97 return false;
96 98
97 base::DictionaryValue* details_value = NULL; 99 base::DictionaryValue* details_value = NULL;
98 if (!args_->GetDictionary(2, &details_value)) 100 if (!args_->GetDictionary(2, &details_value))
99 return false; 101 return false;
100 scoped_ptr<InjectDetails> details(new InjectDetails()); 102 scoped_ptr<InjectDetails> details(new InjectDetails());
101 if (!InjectDetails::Populate(*details_value, details.get())) 103 if (!InjectDetails::Populate(*details_value, details.get()))
102 return false; 104 return false;
103 105
104 details_ = details.Pass(); 106 details_ = details.Pass();
107 script_injection_instance_id_ = WebViewGuest::GetOrGenerateUniqueInstanceID(
108 render_view_host()->GetProcess()->GetID(), guest_instance_id_);
109
105 return true; 110 return true;
106 } 111 }
107 112
108 bool WebViewInternalExecuteCodeFunction::ShouldInsertCSS() const { 113 bool WebViewInternalExecuteCodeFunction::ShouldInsertCSS() const {
109 return false; 114 return false;
110 } 115 }
111 116
112 bool WebViewInternalExecuteCodeFunction::CanExecuteScriptOnPage() { 117 bool WebViewInternalExecuteCodeFunction::CanExecuteScriptOnPage() {
113 return true; 118 return true;
114 } 119 }
(...skipping 11 matching lines...) Expand all
126 } 131 }
127 132
128 bool WebViewInternalExecuteCodeFunction::IsWebView() const { 133 bool WebViewInternalExecuteCodeFunction::IsWebView() const {
129 return true; 134 return true;
130 } 135 }
131 136
132 const GURL& WebViewInternalExecuteCodeFunction::GetWebViewSrc() const { 137 const GURL& WebViewInternalExecuteCodeFunction::GetWebViewSrc() const {
133 return guest_src_; 138 return guest_src_;
134 } 139 }
135 140
141 int WebViewInternalExecuteCodeFunction:: GetScriptInjectionInstanceId() const {
142 return script_injection_instance_id_;
143 }
144
136 WebViewInternalExecuteScriptFunction::WebViewInternalExecuteScriptFunction() { 145 WebViewInternalExecuteScriptFunction::WebViewInternalExecuteScriptFunction() {
137 } 146 }
138 147
139 void WebViewInternalExecuteScriptFunction::OnExecuteCodeFinished( 148 void WebViewInternalExecuteScriptFunction::OnExecuteCodeFinished(
140 const std::string& error, 149 const std::string& error,
141 const GURL& on_url, 150 const GURL& on_url,
142 const base::ListValue& result) { 151 const base::ListValue& result) {
143 if (error.empty()) 152 if (error.empty())
144 SetResult(result.DeepCopy()); 153 SetResult(result.DeepCopy());
145 WebViewInternalExecuteCodeFunction::OnExecuteCodeFinished( 154 WebViewInternalExecuteCodeFunction::OnExecuteCodeFinished(
(...skipping 347 matching lines...) Expand 10 before | Expand all | Expand 10 after
493 // Will finish asynchronously. 502 // Will finish asynchronously.
494 return true; 503 return true;
495 } 504 }
496 505
497 void WebViewInternalClearDataFunction::ClearDataDone() { 506 void WebViewInternalClearDataFunction::ClearDataDone() {
498 Release(); // Balanced in RunAsync(). 507 Release(); // Balanced in RunAsync().
499 SendResponse(true); 508 SendResponse(true);
500 } 509 }
501 510
502 } // namespace extensions 511 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698