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

Side by Side Diff: extensions/renderer/guest_view/extensions_guest_view_container.cc

Issue 856563002: Added the infrastructure for surfaceProxy.onResize() and SurfaceView.onResize() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Removed code from one non-essential function that was causing tests to fail. It will be re-added in… Created 5 years, 11 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/extensions_guest_view_container.h" 5 #include "extensions/renderer/guest_view/extensions_guest_view_container.h"
6 6
7 #include "content/public/renderer/render_frame.h" 7 #include "content/public/renderer/render_frame.h"
8 #include "content/public/renderer/render_view.h" 8 #include "content/public/renderer/render_view.h"
9 #include "extensions/common/extension_messages.h" 9 #include "extensions/common/extension_messages.h"
10 #include "extensions/common/guest_view/guest_view_constants.h" 10 #include "extensions/common/guest_view/guest_view_constants.h"
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 blink::WebScopedMicrotaskSuppression suppression; 140 blink::WebScopedMicrotaskSuppression suppression;
141 141
142 // Call the DetachGuest's callback. 142 // Call the DetachGuest's callback.
143 callback->Call(context->Global(), 0 /* argc */, nullptr); 143 callback->Call(context->Global(), 0 /* argc */, nullptr);
144 } 144 }
145 145
146 ExtensionsGuestViewContainer::ExtensionsGuestViewContainer( 146 ExtensionsGuestViewContainer::ExtensionsGuestViewContainer(
147 content::RenderFrame* render_frame) 147 content::RenderFrame* render_frame)
148 : GuestViewContainer(render_frame), 148 : GuestViewContainer(render_frame),
149 ready_(false), 149 ready_(false),
150 destruction_isolate_(nullptr) { 150 destruction_isolate_(nullptr),
151 element_resize_isolate_(nullptr) {
151 } 152 }
152 153
153 ExtensionsGuestViewContainer::~ExtensionsGuestViewContainer() { 154 ExtensionsGuestViewContainer::~ExtensionsGuestViewContainer() {
154 if (element_instance_id() != guestview::kInstanceIDNone) { 155 if (element_instance_id() != guestview::kInstanceIDNone) {
155 g_guest_view_container_map.Get().erase(element_instance_id()); 156 g_guest_view_container_map.Get().erase(element_instance_id());
156 } 157 }
157 158
158 // Call the destruction callback, if one is registered. 159 // Call the destruction callback, if one is registered.
159 if (destruction_callback_.IsEmpty()) 160 if (destruction_callback_.IsEmpty())
160 return; 161 return;
161 v8::HandleScope handle_scope(destruction_isolate_); 162 v8::HandleScope handle_scope(destruction_isolate_);
162 v8::Handle<v8::Function> callback = 163 v8::Handle<v8::Function> callback =
163 destruction_callback_.NewHandle(destruction_isolate_); 164 destruction_callback_.NewHandle(destruction_isolate_);
164 v8::Handle<v8::Context> context = callback->CreationContext(); 165 v8::Handle<v8::Context> context = callback->CreationContext();
165 if (context.IsEmpty()) 166 if (context.IsEmpty())
166 return; 167 return;
167 168
168 v8::Context::Scope context_scope(context); 169 v8::Context::Scope context_scope(context);
169 blink::WebScopedMicrotaskSuppression suppression; 170 blink::WebScopedMicrotaskSuppression suppression;
170 171
171 callback->Call(context->Global(), 0, nullptr); 172 callback->Call(context->Global(), 0 /* argc */, nullptr);
172 } 173 }
173 174
174 ExtensionsGuestViewContainer* ExtensionsGuestViewContainer::FromID( 175 ExtensionsGuestViewContainer* ExtensionsGuestViewContainer::FromID(
175 int element_instance_id) { 176 int element_instance_id) {
176 ExtensionsGuestViewContainerMap* guest_view_containers = 177 ExtensionsGuestViewContainerMap* guest_view_containers =
177 g_guest_view_container_map.Pointer(); 178 g_guest_view_container_map.Pointer();
178 auto it = guest_view_containers->find(element_instance_id); 179 auto it = guest_view_containers->find(element_instance_id);
179 return it == guest_view_containers->end() ? nullptr : it->second; 180 return it == guest_view_containers->end() ? nullptr : it->second;
180 } 181 }
181 182
182 void ExtensionsGuestViewContainer::IssueRequest(linked_ptr<Request> request) { 183 void ExtensionsGuestViewContainer::IssueRequest(linked_ptr<Request> request) {
183 EnqueueRequest(request); 184 EnqueueRequest(request);
184 PerformPendingRequest(); 185 PerformPendingRequest();
185 } 186 }
186 187
187 void ExtensionsGuestViewContainer::RegisterDestructionCallback( 188 void ExtensionsGuestViewContainer::RegisterDestructionCallback(
188 v8::Handle<v8::Function> callback, 189 v8::Handle<v8::Function> callback,
189 v8::Isolate* isolate) { 190 v8::Isolate* isolate) {
190 destruction_callback_.reset(callback); 191 destruction_callback_.reset(callback);
191 destruction_isolate_ = isolate; 192 destruction_isolate_ = isolate;
192 } 193 }
193 194
195 void ExtensionsGuestViewContainer::RegisterElementResizeCallback(
196 v8::Handle<v8::Function> callback,
197 v8::Isolate* isolate) {
198 element_resize_callback_.reset(callback);
199 element_resize_isolate_ = isolate;
200 }
201
202 void ExtensionsGuestViewContainer::DidResizeElement(const gfx::Size& old_size,
203 const gfx::Size& new_size) {
204 // TODO(paulmeyer): Call the |element_resize_callback_| callback here.
205 }
206
194 bool ExtensionsGuestViewContainer::OnMessageReceived( 207 bool ExtensionsGuestViewContainer::OnMessageReceived(
195 const IPC::Message& message) { 208 const IPC::Message& message) {
196 OnHandleCallback(message); 209 OnHandleCallback(message);
197 return true; 210 return true;
198 } 211 }
199 212
200 void ExtensionsGuestViewContainer::SetElementInstanceID( 213 void ExtensionsGuestViewContainer::SetElementInstanceID(
201 int element_instance_id) { 214 int element_instance_id) {
202 GuestViewContainer::SetElementInstanceID(element_instance_id); 215 GuestViewContainer::SetElementInstanceID(element_instance_id);
203 216
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
236 } 249 }
237 250
238 void ExtensionsGuestViewContainer::HandlePendingResponseCallback( 251 void ExtensionsGuestViewContainer::HandlePendingResponseCallback(
239 const IPC::Message& message) { 252 const IPC::Message& message) {
240 CHECK(pending_response_.get()); 253 CHECK(pending_response_.get());
241 linked_ptr<Request> pending_response(pending_response_.release()); 254 linked_ptr<Request> pending_response(pending_response_.release());
242 pending_response->HandleResponse(message); 255 pending_response->HandleResponse(message);
243 } 256 }
244 257
245 } // namespace extensions 258 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698