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

Side by Side Diff: extensions/renderer/guest_view/mime_handler_view/mime_handler_view_container.cc

Issue 983793003: Replace extensions::ScopedPersistent with v8::UniquePersistent. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 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/renderer/guest_view/mime_handler_view/mime_handler_view_con tainer.h" 5 #include "extensions/renderer/guest_view/mime_handler_view/mime_handler_view_con tainer.h"
6 6
7 #include <map> 7 #include <map>
8 #include <set> 8 #include <set>
9 9
10 #include "content/public/child/v8_value_converter.h" 10 #include "content/public/child/v8_value_converter.h"
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
170 element_size_ = new_size; 170 element_size_ = new_size;
171 render_frame()->Send(new GuestViewHostMsg_ResizeGuest( 171 render_frame()->Send(new GuestViewHostMsg_ResizeGuest(
172 render_frame()->GetRoutingID(), element_instance_id(), new_size)); 172 render_frame()->GetRoutingID(), element_instance_id(), new_size));
173 } 173 }
174 174
175 v8::Local<v8::Object> MimeHandlerViewContainer::V8ScriptableObject( 175 v8::Local<v8::Object> MimeHandlerViewContainer::V8ScriptableObject(
176 v8::Isolate* isolate) { 176 v8::Isolate* isolate) {
177 if (scriptable_object_.IsEmpty()) { 177 if (scriptable_object_.IsEmpty()) {
178 v8::Local<v8::Object> object = 178 v8::Local<v8::Object> object =
179 ScriptableObject::Create(isolate, weak_factory_.GetWeakPtr()); 179 ScriptableObject::Create(isolate, weak_factory_.GetWeakPtr());
180 scriptable_object_.reset(object); 180 scriptable_object_.Reset(isolate, object);
181 } 181 }
182 return scriptable_object_.NewHandle(isolate); 182 return v8::Local<v8::Object>::New(isolate, scriptable_object_);
183 } 183 }
184 184
185 void MimeHandlerViewContainer::didReceiveData(blink::WebURLLoader* /* unused */, 185 void MimeHandlerViewContainer::didReceiveData(blink::WebURLLoader* /* unused */,
186 const char* data, 186 const char* data,
187 int data_length, 187 int data_length,
188 int /* unused */) { 188 int /* unused */) {
189 view_id_ += std::string(data, data_length); 189 view_id_ += std::string(data, data_length);
190 } 190 }
191 191
192 void MimeHandlerViewContainer::didFinishLoading( 192 void MimeHandlerViewContainer::didFinishLoading(
193 blink::WebURLLoader* /* unused */, 193 blink::WebURLLoader* /* unused */,
194 double /* unused */, 194 double /* unused */,
195 int64_t /* unused */) { 195 int64_t /* unused */) {
196 DCHECK(is_embedded_); 196 DCHECK(is_embedded_);
197 CreateMimeHandlerViewGuest(); 197 CreateMimeHandlerViewGuest();
198 } 198 }
199 199
200 void MimeHandlerViewContainer::PostMessage(v8::Isolate* isolate, 200 void MimeHandlerViewContainer::PostMessage(v8::Isolate* isolate,
201 v8::Handle<v8::Value> message) { 201 v8::Handle<v8::Value> message) {
202 if (!guest_loaded_) { 202 if (!guest_loaded_) {
203 linked_ptr<ScopedPersistent<v8::Value>> scoped_persistent( 203 linked_ptr<v8::UniquePersistent<v8::Value>> scoped_persistent(
204 new ScopedPersistent<v8::Value>(isolate, message)); 204 new v8::UniquePersistent<v8::Value>(isolate, message));
205 pending_messages_.push_back(scoped_persistent); 205 pending_messages_.push_back(scoped_persistent);
206 return; 206 return;
207 } 207 }
208 208
209 content::RenderView* guest_proxy_render_view = 209 content::RenderView* guest_proxy_render_view =
210 content::RenderView::FromRoutingID(guest_proxy_routing_id_); 210 content::RenderView::FromRoutingID(guest_proxy_routing_id_);
211 if (!guest_proxy_render_view) 211 if (!guest_proxy_render_view)
212 return; 212 return;
213 blink::WebFrame* guest_proxy_frame = 213 blink::WebFrame* guest_proxy_frame =
214 guest_proxy_render_view->GetWebView()->mainFrame(); 214 guest_proxy_render_view->GetWebView()->mainFrame();
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
281 281
282 // Now that the guest has loaded, flush any unsent messages. 282 // Now that the guest has loaded, flush any unsent messages.
283 blink::WebFrame* frame = render_frame()->GetWebFrame(); 283 blink::WebFrame* frame = render_frame()->GetWebFrame();
284 if (!frame) 284 if (!frame)
285 return; 285 return;
286 286
287 v8::Isolate* isolate = v8::Isolate::GetCurrent(); 287 v8::Isolate* isolate = v8::Isolate::GetCurrent();
288 v8::HandleScope handle_scope(isolate); 288 v8::HandleScope handle_scope(isolate);
289 v8::Context::Scope context_scope(frame->mainWorldScriptContext()); 289 v8::Context::Scope context_scope(frame->mainWorldScriptContext());
290 for (const auto& pending_message : pending_messages_) 290 for (const auto& pending_message : pending_messages_)
291 PostMessage(isolate, pending_message->NewHandle(isolate)); 291 PostMessage(isolate, v8::Local<v8::Value>::New(isolate, *pending_message));
292 292
293 pending_messages_.clear(); 293 pending_messages_.clear();
294 } 294 }
295 295
296 void MimeHandlerViewContainer::CreateMimeHandlerViewGuest() { 296 void MimeHandlerViewContainer::CreateMimeHandlerViewGuest() {
297 // The loader has completed loading |view_id_| so we can dispose it. 297 // The loader has completed loading |view_id_| so we can dispose it.
298 loader_.reset(); 298 loader_.reset();
299 299
300 DCHECK_NE(element_instance_id(), guestview::kInstanceIDNone); 300 DCHECK_NE(element_instance_id(), guestview::kInstanceIDNone);
301 301
302 if (!render_frame()) 302 if (!render_frame())
303 return; 303 return;
304 304
305 render_frame()->Send(new GuestViewHostMsg_CreateMimeHandlerViewGuest( 305 render_frame()->Send(new GuestViewHostMsg_CreateMimeHandlerViewGuest(
306 render_frame()->GetRoutingID(), view_id_, element_instance_id(), 306 render_frame()->GetRoutingID(), view_id_, element_instance_id(),
307 element_size_)); 307 element_size_));
308 } 308 }
309 309
310 } // namespace extensions 310 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698