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

Side by Side Diff: webkit/glue/webview_impl.cc

Issue 152003: Fix some issues with extension messaging: (Closed)
Patch Set: Created 11 years, 5 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/renderer/resources/renderer_extension_bindings.js ('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 /* 1 /*
2 * Copyright 2007 Google Inc. All Rights Reserved. 2 * Copyright 2007 Google Inc. All Rights Reserved.
3 * 3 *
4 * Portions Copyright (C) 2006 Apple Computer, Inc. All rights reserved. 4 * Portions Copyright (C) 2006 Apple Computer, Inc. All rights reserved.
5 * 5 *
6 * ***** BEGIN LICENSE BLOCK ***** 6 * ***** BEGIN LICENSE BLOCK *****
7 * 7 *
8 * Redistribution and use in source and binary forms, with or without 8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions 9 * modification, are permitted provided that the following conditions
10 * are met: 10 * are met:
(...skipping 889 matching lines...) Expand 10 before | Expand all | Expand 10 after
900 // frames in the tree, calling each frame's onbeforeunload. At the moment, 900 // frames in the tree, calling each frame's onbeforeunload. At the moment,
901 // we're consistent with Safari 3.1, not IE/FF. 901 // we're consistent with Safari 3.1, not IE/FF.
902 Frame* frame = page_->focusController()->focusedOrMainFrame(); 902 Frame* frame = page_->focusController()->focusedOrMainFrame();
903 if (!frame) 903 if (!frame)
904 return true; 904 return true;
905 905
906 return frame->shouldClose(); 906 return frame->shouldClose();
907 } 907 }
908 908
909 void WebViewImpl::Close() { 909 void WebViewImpl::Close() {
910 // Do this first to prevent reentrant notifications from being sent to the
911 // initiator of the close.
912 delegate_ = NULL;
913
914 if (page_.get()) { 910 if (page_.get()) {
915 // Initiate shutdown for the entire frameset. This will cause a lot of 911 // Initiate shutdown for the entire frameset. This will cause a lot of
916 // notifications to be sent. 912 // notifications to be sent.
917 if (page_->mainFrame()) 913 if (page_->mainFrame())
918 page_->mainFrame()->loader()->frameDetached(); 914 page_->mainFrame()->loader()->frameDetached();
919 page_.reset(); 915 page_.reset();
920 } 916 }
921 917
922 // Should happen after page_.reset(). 918 // Should happen after page_.reset().
923 if (devtools_agent_.get()) 919 if (devtools_agent_.get())
924 devtools_agent_.reset(NULL); 920 devtools_agent_.reset(NULL);
925 921
922 // Do this first to prevent reentrant notifications from being sent to the
923 // initiator of the close.
924 delegate_ = NULL;
925
926 Release(); // Balances AddRef from WebView::Create 926 Release(); // Balances AddRef from WebView::Create
927 } 927 }
928 928
929 WebViewDelegate* WebViewImpl::GetDelegate() { 929 WebViewDelegate* WebViewImpl::GetDelegate() {
930 return delegate_; 930 return delegate_;
931 } 931 }
932 932
933 void WebViewImpl::SetDelegate(WebViewDelegate* delegate) { 933 void WebViewImpl::SetDelegate(WebViewDelegate* delegate) {
934 delegate_ = delegate; 934 delegate_ = delegate;
935 } 935 }
(...skipping 1005 matching lines...) Expand 10 before | Expand all | Expand 10 after
1941 1941
1942 return document->focusedNode(); 1942 return document->focusedNode();
1943 } 1943 }
1944 1944
1945 HitTestResult WebViewImpl::HitTestResultForWindowPos(const IntPoint& pos) { 1945 HitTestResult WebViewImpl::HitTestResultForWindowPos(const IntPoint& pos) {
1946 IntPoint doc_point( 1946 IntPoint doc_point(
1947 page_->mainFrame()->view()->windowToContents(pos)); 1947 page_->mainFrame()->view()->windowToContents(pos));
1948 return page_->mainFrame()->eventHandler()-> 1948 return page_->mainFrame()->eventHandler()->
1949 hitTestResultAtPoint(doc_point, false); 1949 hitTestResultAtPoint(doc_point, false);
1950 } 1950 }
OLDNEW
« no previous file with comments | « chrome/renderer/resources/renderer_extension_bindings.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698