Remove the WebView - wxWebViewWebKit map as our policy delegates already held a pointer to the control.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/SOC2011_WEBVIEW@68577 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Steve Lamerton
2011-08-07 09:19:16 +00:00
parent ca897b5184
commit c75400ea22

View File

@@ -33,10 +33,6 @@
#include <Foundation/NSURLError.h> #include <Foundation/NSURLError.h>
// FIXME: find cleaner way to find the wxWidgets ID of a webview than this hack
#include <map>
std::map<WebView*, wxWebViewWebKit*> wx_webviewctrls;
#define DEBUG_WEBKIT_SIZING 0 #define DEBUG_WEBKIT_SIZING 0
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
@@ -355,8 +351,6 @@ bool wxWebViewWebKit::Create(wxWindow *parent,
m_peer = new wxWidgetCocoaImpl( this, m_webView ); m_peer = new wxWidgetCocoaImpl( this, m_webView );
#endif #endif
wx_webviewctrls[m_webView] = this;
MacPostControlCreate(pos, size); MacPostControlCreate(pos, size);
#if wxOSX_USE_CARBON #if wxOSX_USE_CARBON
@@ -998,20 +992,18 @@ void wxWebViewWebKit::Redo()
- (void)webView:(WebView *)sender - (void)webView:(WebView *)sender
didStartProvisionalLoadForFrame:(WebFrame *)frame didStartProvisionalLoadForFrame:(WebFrame *)frame
{ {
wxASSERT(wx_webviewctrls.find(sender) != wx_webviewctrls.end()); webKitWindow->m_busy = true;
wx_webviewctrls[sender]->m_busy = true;
} }
- (void)webView:(WebView *)sender didCommitLoadForFrame:(WebFrame *)frame - (void)webView:(WebView *)sender didCommitLoadForFrame:(WebFrame *)frame
{ {
wxASSERT(wx_webviewctrls.find(sender) != wx_webviewctrls.end()); webKitWindow->m_busy = true;
wx_webviewctrls[sender]->m_busy = true;
if (webKitWindow && frame == [sender mainFrame]){ if (webKitWindow && frame == [sender mainFrame]){
NSString *url = [[[[frame dataSource] request] URL] absoluteString]; NSString *url = [[[[frame dataSource] request] URL] absoluteString];
wxString target = wxStringWithNSString([frame name]); wxString target = wxStringWithNSString([frame name]);
wxWebNavigationEvent thisEvent(wxEVT_COMMAND_WEB_VIEW_NAVIGATED, wxWebNavigationEvent thisEvent(wxEVT_COMMAND_WEB_VIEW_NAVIGATED,
wx_webviewctrls[sender]->GetId(), webKitWindow->GetId(),
wxStringWithNSString( url ), wxStringWithNSString( url ),
target, false); target, false);
@@ -1022,15 +1014,14 @@ void wxWebViewWebKit::Redo()
- (void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frame - (void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frame
{ {
wxASSERT(wx_webviewctrls.find(sender) != wx_webviewctrls.end()); webKitWindow->m_busy = false;
wx_webviewctrls[sender]->m_busy = false;
if (webKitWindow && frame == [sender mainFrame]){ if (webKitWindow && frame == [sender mainFrame]){
NSString *url = [[[[frame dataSource] request] URL] absoluteString]; NSString *url = [[[[frame dataSource] request] URL] absoluteString];
wxString target = wxStringWithNSString([frame name]); wxString target = wxStringWithNSString([frame name]);
wxWebNavigationEvent thisEvent(wxEVT_COMMAND_WEB_VIEW_LOADED, wxWebNavigationEvent thisEvent(wxEVT_COMMAND_WEB_VIEW_LOADED,
wx_webviewctrls[sender]->GetId(), webKitWindow->GetId(),
wxStringWithNSString( url ), wxStringWithNSString( url ),
target, false); target, false);
@@ -1116,8 +1107,7 @@ wxString nsErrorToWxHtmlError(NSError* error, wxWebNavigationError* out)
- (void)webView:(WebView *)sender didFailLoadWithError:(NSError*) error - (void)webView:(WebView *)sender didFailLoadWithError:(NSError*) error
forFrame:(WebFrame *)frame forFrame:(WebFrame *)frame
{ {
wxASSERT(wx_webviewctrls.find(sender) != wx_webviewctrls.end()); webKitWindow->m_busy = false;
wx_webviewctrls[sender]->m_busy = false;
if (webKitWindow && frame == [sender mainFrame]){ if (webKitWindow && frame == [sender mainFrame]){
NSString *url = [[[[frame dataSource] request] URL] absoluteString]; NSString *url = [[[[frame dataSource] request] URL] absoluteString];
@@ -1125,7 +1115,7 @@ wxString nsErrorToWxHtmlError(NSError* error, wxWebNavigationError* out)
wxWebNavigationError type; wxWebNavigationError type;
wxString description = nsErrorToWxHtmlError(error, &type); wxString description = nsErrorToWxHtmlError(error, &type);
wxWebNavigationEvent thisEvent(wxEVT_COMMAND_WEB_VIEW_ERROR, wxWebNavigationEvent thisEvent(wxEVT_COMMAND_WEB_VIEW_ERROR,
wx_webviewctrls[sender]->GetId(), webKitWindow->GetId(),
wxStringWithNSString( url ), wxStringWithNSString( url ),
wxEmptyString, false); wxEmptyString, false);
thisEvent.SetString(description); thisEvent.SetString(description);
@@ -1142,8 +1132,7 @@ wxString nsErrorToWxHtmlError(NSError* error, wxWebNavigationError* out)
didFailProvisionalLoadWithError:(NSError*)error didFailProvisionalLoadWithError:(NSError*)error
forFrame:(WebFrame *)frame forFrame:(WebFrame *)frame
{ {
wxASSERT(wx_webviewctrls.find(sender) != wx_webviewctrls.end()); webKitWindow->m_busy = false;
wx_webviewctrls[sender]->m_busy = false;
if (webKitWindow && frame == [sender mainFrame]){ if (webKitWindow && frame == [sender mainFrame]){
NSString *url = [[[[frame provisionalDataSource] request] URL] NSString *url = [[[[frame provisionalDataSource] request] URL]
@@ -1152,7 +1141,7 @@ wxString nsErrorToWxHtmlError(NSError* error, wxWebNavigationError* out)
wxWebNavigationError type; wxWebNavigationError type;
wxString description = nsErrorToWxHtmlError(error, &type); wxString description = nsErrorToWxHtmlError(error, &type);
wxWebNavigationEvent thisEvent(wxEVT_COMMAND_WEB_VIEW_ERROR, wxWebNavigationEvent thisEvent(wxEVT_COMMAND_WEB_VIEW_ERROR,
wx_webviewctrls[sender]->GetId(), webKitWindow->GetId(),
wxStringWithNSString( url ), wxStringWithNSString( url ),
wxEmptyString, false); wxEmptyString, false);
thisEvent.SetString(description); thisEvent.SetString(description);
@@ -1168,8 +1157,8 @@ wxString nsErrorToWxHtmlError(NSError* error, wxWebNavigationError* out)
{ {
wxString target = wxStringWithNSString([frame name]); wxString target = wxStringWithNSString([frame name]);
wxWebNavigationEvent thisEvent(wxEVT_COMMAND_WEB_VIEW_TITLE_CHANGED, wxWebNavigationEvent thisEvent(wxEVT_COMMAND_WEB_VIEW_TITLE_CHANGED,
wx_webviewctrls[sender]->GetId(), webKitWindow->GetId(),
wx_webviewctrls[sender]->GetCurrentURL(), webKitWindow->GetCurrentURL(),
target, true); target, true);
thisEvent.SetString(wxStringWithNSString(title)); thisEvent.SetString(wxStringWithNSString(title));
@@ -1196,12 +1185,11 @@ wxString nsErrorToWxHtmlError(NSError* error, wxWebNavigationError* out)
{ {
wxUnusedVar(frame); wxUnusedVar(frame);
wxASSERT(wx_webviewctrls.find(sender) != wx_webviewctrls.end()); webKitWindow->m_busy = true;
wx_webviewctrls[sender]->m_busy = true;
NSString *url = [[request URL] absoluteString]; NSString *url = [[request URL] absoluteString];
wxString target = wxStringWithNSString([frame name]); wxString target = wxStringWithNSString([frame name]);
wxWebNavigationEvent thisEvent(wxEVT_COMMAND_WEB_VIEW_NAVIGATING, wxWebNavigationEvent thisEvent(wxEVT_COMMAND_WEB_VIEW_NAVIGATING,
wx_webviewctrls[sender]->GetId(), webKitWindow->GetId(),
wxStringWithNSString( url ), target, true); wxStringWithNSString( url ), target, true);
if (webKitWindow && webKitWindow->GetEventHandler()) if (webKitWindow && webKitWindow->GetEventHandler())
@@ -1209,7 +1197,7 @@ wxString nsErrorToWxHtmlError(NSError* error, wxWebNavigationError* out)
if (thisEvent.IsVetoed()) if (thisEvent.IsVetoed())
{ {
wx_webviewctrls[sender]->m_busy = false; webKitWindow->m_busy = false;
[listener ignore]; [listener ignore];
} }
else else
@@ -1225,11 +1213,10 @@ wxString nsErrorToWxHtmlError(NSError* error, wxWebNavigationError* out)
decisionListener:(id < WebPolicyDecisionListener >)listener decisionListener:(id < WebPolicyDecisionListener >)listener
{ {
wxUnusedVar(actionInformation); wxUnusedVar(actionInformation);
wxASSERT(wx_webviewctrls.find(sender) != wx_webviewctrls.end());
NSString *url = [[request URL] absoluteString]; NSString *url = [[request URL] absoluteString];
wxWebNavigationEvent thisEvent(wxEVT_COMMAND_WEB_VIEW_NEWWINDOW, wxWebNavigationEvent thisEvent(wxEVT_COMMAND_WEB_VIEW_NEWWINDOW,
wx_webviewctrls[sender]->GetId(), webKitWindow->GetId(),
wxStringWithNSString( url ), "", true); wxStringWithNSString( url ), "", true);
if (webKitWindow && webKitWindow->GetEventHandler()) if (webKitWindow && webKitWindow->GetEventHandler())