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

Side by Side Diff: extensions/browser/api/web_request/web_request_event_details.cc

Issue 2335133003: PlzNavigate: support the WebRequest API (Closed)
Patch Set: PlzNavigate: support the WebRequest API Created 4 years, 3 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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_request/web_request_event_details.h" 5 #include "extensions/browser/api/web_request/web_request_event_details.h"
6 6
7 #include "base/callback.h" 7 #include "base/callback.h"
8 #include "base/strings/string_number_conversions.h" 8 #include "base/strings/string_number_conversions.h"
9 #include "content/public/browser/browser_thread.h" 9 #include "content/public/browser/browser_thread.h"
10 #include "content/public/browser/render_frame_host.h" 10 #include "content/public/browser/render_frame_host.h"
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
147 } 147 }
148 } 148 }
149 149
150 void WebRequestEventDetails::SetResponseSource(const net::URLRequest* request) { 150 void WebRequestEventDetails::SetResponseSource(const net::URLRequest* request) {
151 dict_.SetBoolean(keys::kFromCache, request->was_cached()); 151 dict_.SetBoolean(keys::kFromCache, request->was_cached());
152 const std::string response_ip = request->GetSocketAddress().host(); 152 const std::string response_ip = request->GetSocketAddress().host();
153 if (!response_ip.empty()) 153 if (!response_ip.empty())
154 dict_.SetString(keys::kIpKey, response_ip); 154 dict_.SetString(keys::kIpKey, response_ip);
155 } 155 }
156 156
157 void WebRequestEventDetails::SetFrameData(
158 const ExtensionApiFrameIdMap::FrameData& frame_data) {
159 dict_.SetInteger(keys::kTabIdKey, frame_data.tab_id);
160 dict_.SetInteger(keys::kFrameIdKey, frame_data.frame_id);
161 dict_.SetInteger(keys::kParentFrameIdKey, frame_data.parent_frame_id);
162 }
163
157 void WebRequestEventDetails::DetermineFrameDataOnUI() { 164 void WebRequestEventDetails::DetermineFrameDataOnUI() {
158 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 165 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
159 content::RenderFrameHost* rfh = 166 content::RenderFrameHost* rfh =
160 content::RenderFrameHost::FromID(render_process_id_, render_frame_id_); 167 content::RenderFrameHost::FromID(render_process_id_, render_frame_id_);
161 ExtensionApiFrameIdMap::FrameData frame_data = 168 ExtensionApiFrameIdMap::FrameData frame_data =
162 ExtensionApiFrameIdMap::Get()->GetFrameData(rfh); 169 ExtensionApiFrameIdMap::Get()->GetFrameData(rfh);
163 170 SetFrameData(frame_data);
164 dict_.SetInteger(keys::kTabIdKey, frame_data.tab_id);
165 dict_.SetInteger(keys::kFrameIdKey, frame_data.frame_id);
166 dict_.SetInteger(keys::kParentFrameIdKey, frame_data.parent_frame_id);
167 } 171 }
168 172
169 void WebRequestEventDetails::DetermineFrameDataOnIO( 173 void WebRequestEventDetails::DetermineFrameDataOnIO(
170 const DeterminedFrameDataCallback& callback) { 174 const DeterminedFrameDataCallback& callback) {
171 std::unique_ptr<WebRequestEventDetails> self(this); 175 std::unique_ptr<WebRequestEventDetails> self(this);
172 ExtensionApiFrameIdMap::Get()->GetFrameDataOnIO( 176 ExtensionApiFrameIdMap::Get()->GetFrameDataOnIO(
173 render_process_id_, render_frame_id_, 177 render_process_id_, render_frame_id_,
174 base::Bind(&WebRequestEventDetails::OnDeterminedFrameData, 178 base::Bind(&WebRequestEventDetails::OnDeterminedFrameData,
175 base::Unretained(this), base::Passed(&self), callback)); 179 base::Unretained(this), base::Passed(&self), callback));
176 } 180 }
(...skipping 14 matching lines...) Expand all
191 WebRequestEventDetails::GetAndClearDict() { 195 WebRequestEventDetails::GetAndClearDict() {
192 std::unique_ptr<base::DictionaryValue> result(new base::DictionaryValue); 196 std::unique_ptr<base::DictionaryValue> result(new base::DictionaryValue);
193 dict_.Swap(result.get()); 197 dict_.Swap(result.get());
194 return result; 198 return result;
195 } 199 }
196 200
197 void WebRequestEventDetails::OnDeterminedFrameData( 201 void WebRequestEventDetails::OnDeterminedFrameData(
198 std::unique_ptr<WebRequestEventDetails> self, 202 std::unique_ptr<WebRequestEventDetails> self,
199 const DeterminedFrameDataCallback& callback, 203 const DeterminedFrameDataCallback& callback,
200 const ExtensionApiFrameIdMap::FrameData& frame_data) { 204 const ExtensionApiFrameIdMap::FrameData& frame_data) {
201 dict_.SetInteger(keys::kTabIdKey, frame_data.tab_id); 205 dict_.SetInteger(keys::kTabIdKey, frame_data.tab_id);
Devlin 2016/09/16 16:17:26 SetFrameData?
clamy 2016/09/19 15:10:03 Done.
202 dict_.SetInteger(keys::kFrameIdKey, frame_data.frame_id); 206 dict_.SetInteger(keys::kFrameIdKey, frame_data.frame_id);
203 dict_.SetInteger(keys::kParentFrameIdKey, frame_data.parent_frame_id); 207 dict_.SetInteger(keys::kParentFrameIdKey, frame_data.parent_frame_id);
204 callback.Run(std::move(self)); 208 callback.Run(std::move(self));
205 } 209 }
206 210
207 } // namespace extensions 211 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698