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

Side by Side Diff: extensions/renderer/request_sender.cc

Issue 2517393002: [Extensions] Remove RequestSender::ScopedTabID (Closed)
Patch Set: Created 4 years 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
« no previous file with comments | « extensions/renderer/request_sender.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/renderer/request_sender.h" 5 #include "extensions/renderer/request_sender.h"
6 6
7 #include "base/metrics/histogram_macros.h" 7 #include "base/metrics/histogram_macros.h"
8 #include "base/timer/elapsed_timer.h" 8 #include "base/timer/elapsed_timer.h"
9 #include "base/values.h" 9 #include "base/values.h"
10 #include "content/public/renderer/render_frame.h" 10 #include "content/public/renderer/render_frame.h"
11 #include "extensions/common/constants.h" 11 #include "extensions/common/constants.h"
12 #include "extensions/common/extension_messages.h" 12 #include "extensions/common/extension_messages.h"
13 #include "extensions/renderer/extension_frame_helper.h"
13 #include "extensions/renderer/script_context.h" 14 #include "extensions/renderer/script_context.h"
14 #include "third_party/WebKit/public/web/WebDocument.h" 15 #include "third_party/WebKit/public/web/WebDocument.h"
15 #include "third_party/WebKit/public/web/WebLocalFrame.h" 16 #include "third_party/WebKit/public/web/WebLocalFrame.h"
16 #include "third_party/WebKit/public/web/WebScopedUserGesture.h" 17 #include "third_party/WebKit/public/web/WebScopedUserGesture.h"
17 #include "third_party/WebKit/public/web/WebUserGestureIndicator.h" 18 #include "third_party/WebKit/public/web/WebUserGestureIndicator.h"
18 #include "third_party/WebKit/public/web/WebUserGestureToken.h" 19 #include "third_party/WebKit/public/web/WebUserGestureToken.h"
19 20
20 namespace extensions { 21 namespace extensions {
21 22
22 // Contains info relevant to a pending API request. 23 // Contains info relevant to a pending API request.
23 struct PendingRequest { 24 struct PendingRequest {
24 public: 25 public:
25 PendingRequest(const std::string& name, 26 PendingRequest(const std::string& name,
26 RequestSender::Source* source, 27 RequestSender::Source* source,
27 blink::WebUserGestureToken token) 28 blink::WebUserGestureToken token)
28 : name(name), source(source), token(token) {} 29 : name(name), source(source), token(token) {}
29 30
30 std::string name; 31 std::string name;
31 RequestSender::Source* source; 32 RequestSender::Source* source;
32 blink::WebUserGestureToken token; 33 blink::WebUserGestureToken token;
33 }; 34 };
34 35
35 RequestSender::ScopedTabID::ScopedTabID(RequestSender* request_sender,
36 int tab_id)
37 : request_sender_(request_sender),
38 tab_id_(tab_id),
39 previous_tab_id_(request_sender->source_tab_id_) {
40 request_sender_->source_tab_id_ = tab_id;
41 }
42 36
43 RequestSender::ScopedTabID::~ScopedTabID() { 37 RequestSender::RequestSender() {}
44 DCHECK_EQ(tab_id_, request_sender_->source_tab_id_);
45 request_sender_->source_tab_id_ = previous_tab_id_;
46 }
47
48 RequestSender::RequestSender() : source_tab_id_(-1) {}
49 38
50 RequestSender::~RequestSender() {} 39 RequestSender::~RequestSender() {}
51 40
52 void RequestSender::InsertRequest( 41 void RequestSender::InsertRequest(
53 int request_id, 42 int request_id,
54 std::unique_ptr<PendingRequest> pending_request) { 43 std::unique_ptr<PendingRequest> pending_request) {
55 DCHECK_EQ(0u, pending_requests_.count(request_id)); 44 DCHECK_EQ(0u, pending_requests_.count(request_id));
56 pending_requests_[request_id] = std::move(pending_request); 45 pending_requests_[request_id] = std::move(pending_request);
57 } 46 }
58 47
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
99 88
100 GURL source_url; 89 GURL source_url;
101 if (blink::WebLocalFrame* webframe = context->web_frame()) 90 if (blink::WebLocalFrame* webframe = context->web_frame())
102 source_url = webframe->document().url(); 91 source_url = webframe->document().url();
103 92
104 InsertRequest(request_id, 93 InsertRequest(request_id,
105 base::MakeUnique<PendingRequest>( 94 base::MakeUnique<PendingRequest>(
106 name, source, 95 name, source,
107 blink::WebUserGestureIndicator::currentUserGestureToken())); 96 blink::WebUserGestureIndicator::currentUserGestureToken()));
108 97
98 int tab_id = -1;
99 if (render_frame) {
100 ExtensionFrameHelper* frame_helper =
101 ExtensionFrameHelper::Get(render_frame);
102 DCHECK(frame_helper);
103 tab_id = frame_helper->tab_id();
104 }
105
109 ExtensionHostMsg_Request_Params params; 106 ExtensionHostMsg_Request_Params params;
110 params.name = name; 107 params.name = name;
111 params.arguments.Swap(value_args); 108 params.arguments.Swap(value_args);
112 params.extension_id = context->GetExtensionID(); 109 params.extension_id = context->GetExtensionID();
113 params.source_url = source_url; 110 params.source_url = source_url;
114 params.source_tab_id = source_tab_id_; 111 params.source_tab_id = tab_id;
115 params.request_id = request_id; 112 params.request_id = request_id;
116 params.has_callback = has_callback; 113 params.has_callback = has_callback;
117 params.user_gesture = 114 params.user_gesture =
118 blink::WebUserGestureIndicator::isProcessingUserGesture(); 115 blink::WebUserGestureIndicator::isProcessingUserGesture();
119 116
120 // Set Service Worker specific params to default values. 117 // Set Service Worker specific params to default values.
121 params.worker_thread_id = -1; 118 params.worker_thread_id = -1;
122 params.service_worker_version_id = kInvalidServiceWorkerVersionId; 119 params.service_worker_version_id = kInvalidServiceWorkerVersionId;
123 120
124 SendRequest(render_frame, for_io_thread, params); 121 SendRequest(render_frame, for_io_thread, params);
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 for (PendingRequestMap::iterator it = pending_requests_.begin(); 159 for (PendingRequestMap::iterator it = pending_requests_.begin();
163 it != pending_requests_.end();) { 160 it != pending_requests_.end();) {
164 if (it->second->source == source) 161 if (it->second->source == source)
165 pending_requests_.erase(it++); 162 pending_requests_.erase(it++);
166 else 163 else
167 ++it; 164 ++it;
168 } 165 }
169 } 166 }
170 167
171 } // namespace extensions 168 } // namespace extensions
OLDNEW
« no previous file with comments | « extensions/renderer/request_sender.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698