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

Side by Side Diff: extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc

Issue 2179923002: Add a JavaScript dialog tab helper. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: comment 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
« no previous file with comments | « chrome/browser/ui/tab_helpers.cc ('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/browser/guest_view/mime_handler_view/mime_handler_view_gues t.h" 5 #include "extensions/browser/guest_view/mime_handler_view/mime_handler_view_gues t.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/strings/stringprintf.h" 9 #include "base/strings/stringprintf.h"
10 #include "components/guest_view/common/guest_view_constants.h" 10 #include "components/guest_view/common/guest_view_constants.h"
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 // If we're an embedded plugin we drop pinch-gestures to avoid zooming the 206 // If we're an embedded plugin we drop pinch-gestures to avoid zooming the
207 // guest. 207 // guest.
208 return !is_full_page_plugin(); 208 return !is_full_page_plugin();
209 } 209 }
210 return false; 210 return false;
211 } 211 }
212 212
213 content::JavaScriptDialogManager* 213 content::JavaScriptDialogManager*
214 MimeHandlerViewGuest::GetJavaScriptDialogManager( 214 MimeHandlerViewGuest::GetJavaScriptDialogManager(
215 WebContents* source) { 215 WebContents* source) {
216 // WebContentsDelegates often service multiple WebContentses, and use the
217 // WebContents* parameter to tell which WebContents made the request. If we
218 // pass in our own pointer to the delegate call, the delegate will be asked,
219 // "What's the JavaScriptDialogManager of this WebContents for which you are
220 // not a delegate?" And it won't be able to answer that.
221 //
222 // So we pretend to be our owner WebContents, but only for the request to
223 // obtain the JavaScriptDialogManager. During calls to the
224 // JavaScriptDialogManager we will be honest about who we are.
216 return owner_web_contents()->GetDelegate()->GetJavaScriptDialogManager( 225 return owner_web_contents()->GetDelegate()->GetJavaScriptDialogManager(
217 web_contents()); 226 owner_web_contents());
218 } 227 }
219 228
220 bool MimeHandlerViewGuest::SaveFrame(const GURL& url, 229 bool MimeHandlerViewGuest::SaveFrame(const GURL& url,
221 const content::Referrer& referrer) { 230 const content::Referrer& referrer) {
222 if (!attached()) 231 if (!attached())
223 return false; 232 return false;
224 233
225 embedder_web_contents()->SaveFrame(stream_->stream_info()->original_url, 234 embedder_web_contents()->SaveFrame(stream_->stream_info()->original_url,
226 referrer); 235 referrer);
227 return true; 236 return true;
228 } 237 }
229 238
230 void MimeHandlerViewGuest::DocumentOnLoadCompletedInMainFrame() { 239 void MimeHandlerViewGuest::DocumentOnLoadCompletedInMainFrame() {
231 // Assume the embedder WebContents is valid here. 240 // Assume the embedder WebContents is valid here.
232 DCHECK(embedder_web_contents()); 241 DCHECK(embedder_web_contents());
233 242
234 embedder_web_contents()->Send( 243 embedder_web_contents()->Send(
235 new ExtensionsGuestViewMsg_MimeHandlerViewGuestOnLoadCompleted( 244 new ExtensionsGuestViewMsg_MimeHandlerViewGuestOnLoadCompleted(
236 element_instance_id())); 245 element_instance_id()));
237 } 246 }
238 247
239 base::WeakPtr<StreamContainer> MimeHandlerViewGuest::GetStream() const { 248 base::WeakPtr<StreamContainer> MimeHandlerViewGuest::GetStream() const {
240 if (!stream_) 249 if (!stream_)
241 return base::WeakPtr<StreamContainer>(); 250 return base::WeakPtr<StreamContainer>();
242 return stream_->GetWeakPtr(); 251 return stream_->GetWeakPtr();
243 } 252 }
244 253
245 } // namespace extensions 254 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/ui/tab_helpers.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698