Diff
Modified: trunk/Source/WebKit/wx/ChangeLog (90684 => 90685)
--- trunk/Source/WebKit/wx/ChangeLog 2011-07-09 19:40:06 UTC (rev 90684)
+++ trunk/Source/WebKit/wx/ChangeLog 2011-07-09 19:44:14 UTC (rev 90685)
@@ -1,7 +1,33 @@
-2011-07-08 Robin Dunn <[email protected]>
+2011-07-09 Robin Dunn <[email protected]>
Reviewed by Kevin Ollivier.
+ [wx] In load events, specify the wxWebFrame that sent them.
+
+ https://bugs.webkit.org/show_bug.cgi?id=64233
+
+ * WebBrowserShell.cpp:
+ (wxWebBrowserShell::OnLoadEvent):
+ * WebFrame.cpp:
+ (wxWebFrame::GetName):
+ * WebFrame.h:
+ * WebKitSupport/FrameLoaderClientWx.cpp:
+ (WebCore::FrameLoaderClientWx::dispatchDidHandleOnloadEvents):
+ (WebCore::FrameLoaderClientWx::dispatchDidStartProvisionalLoad):
+ (WebCore::FrameLoaderClientWx::dispatchDidReceiveTitle):
+ (WebCore::FrameLoaderClientWx::dispatchDidCommitLoad):
+ (WebCore::FrameLoaderClientWx::dispatchDidFinishDocumentLoad):
+ (WebCore::FrameLoaderClientWx::postProgressFinishedNotification):
+ (WebCore::FrameLoaderClientWx::dispatchDidFailLoading):
+ (WebCore::FrameLoaderClientWx::dispatchDecidePolicyForNewWindowAction):
+ (WebCore::FrameLoaderClientWx::dispatchDecidePolicyForNavigationAction):
+ * WebView.h:
+ * bindings/python/webview.i:
+
+2011-07-09 Robin Dunn <[email protected]>
+
+ Reviewed by Kevin Ollivier.
+
Make sure wxPrintData grabs the default print settings to calculate page width,
and readjusts settings after the print dialog is displayed.
Modified: trunk/Source/WebKit/wx/WebBrowserShell.cpp (90684 => 90685)
--- trunk/Source/WebKit/wx/WebBrowserShell.cpp 2011-07-09 19:40:06 UTC (rev 90684)
+++ trunk/Source/WebKit/wx/WebBrowserShell.cpp 2011-07-09 19:44:14 UTC (rev 90685)
@@ -229,11 +229,13 @@
}
else if (event.GetState() == wxWEBVIEW_LOAD_TRANSFERRING) {
GetStatusBar()->SetStatusText(_("Loading ") + event.GetURL());
+ if (event.GetFrame() == webview->GetMainFrame())
+ addressBar->SetValue(event.GetURL());
}
else if (event.GetState() == wxWEBVIEW_LOAD_ONLOAD_HANDLED) {
GetStatusBar()->SetStatusText(_("Load complete."));
- addressBar->SetValue(event.GetURL());
- SetTitle(webview->GetPageTitle());
+ if (event.GetFrame() == webview->GetMainFrame())
+ SetTitle(webview->GetPageTitle());
}
else if (event.GetState() == wxWEBVIEW_LOAD_FAILED) {
GetStatusBar()->SetStatusText(_("Failed to load ") + event.GetURL());
Modified: trunk/Source/WebKit/wx/WebFrame.cpp (90684 => 90685)
--- trunk/Source/WebKit/wx/WebFrame.cpp 2011-07-09 19:40:06 UTC (rev 90684)
+++ trunk/Source/WebKit/wx/WebFrame.cpp 2011-07-09 19:44:14 UTC (rev 90685)
@@ -238,6 +238,13 @@
delete m_impl;
}
+wxString wxWebFrame::GetName()
+{
+ if (m_impl && m_impl->frame && m_impl->frame->tree())
+ return m_impl->frame->tree()->name().string();
+ return wxEmptyString;
+}
+
WebCore::Frame* wxWebFrame::GetFrame()
{
if (m_impl)
Modified: trunk/Source/WebKit/wx/WebFrame.h (90684 => 90685)
--- trunk/Source/WebKit/wx/WebFrame.h 2011-07-09 19:40:06 UTC (rev 90684)
+++ trunk/Source/WebKit/wx/WebFrame.h 2011-07-09 19:44:14 UTC (rev 90685)
@@ -134,6 +134,8 @@
void Undo();
void Redo();
+ wxString GetName();
+
wxString GetPageSource();
void SetPageSource(const wxString& source, const wxString& baseUrl = wxEmptyString, const wxString& mimetype = wxT("text/html"));
Modified: trunk/Source/WebKit/wx/WebKitSupport/FrameLoaderClientWx.cpp (90684 => 90685)
--- trunk/Source/WebKit/wx/WebKitSupport/FrameLoaderClientWx.cpp 2011-07-09 19:40:06 UTC (rev 90684)
+++ trunk/Source/WebKit/wx/WebKitSupport/FrameLoaderClientWx.cpp 2011-07-09 19:44:14 UTC (rev 90685)
@@ -233,6 +233,7 @@
wxWebViewLoadEvent wkEvent(m_webView);
wkEvent.SetState(wxWEBVIEW_LOAD_ONLOAD_HANDLED);
wkEvent.SetURL(m_frame->loader()->documentLoader()->request().url().string());
+ wkEvent.SetFrame(m_webFrame);
m_webView->GetEventHandler()->ProcessEvent(wkEvent);
}
}
@@ -290,6 +291,7 @@
wxWebViewLoadEvent wkEvent(m_webView);
wkEvent.SetState(wxWEBVIEW_LOAD_NEGOTIATING);
wkEvent.SetURL(m_frame->loader()->provisionalDocumentLoader()->request().url().string());
+ wkEvent.SetFrame(m_webFrame);
m_webView->GetEventHandler()->ProcessEvent(wkEvent);
}
}
@@ -299,8 +301,11 @@
{
if (m_webView) {
// FIXME: use direction of title.
- m_webView->SetPageTitle(title.string());
+ if (m_webFrame == m_webView->GetMainFrame())
+ m_webView->SetPageTitle(title.string());
+
wxWebViewReceivedTitleEvent wkEvent(m_webView);
+ wkEvent.SetFrame(m_webFrame);
wkEvent.SetTitle(title.string());
m_webView->GetEventHandler()->ProcessEvent(wkEvent);
}
@@ -313,6 +318,7 @@
wxWebViewLoadEvent wkEvent(m_webView);
wkEvent.SetState(wxWEBVIEW_LOAD_TRANSFERRING);
wkEvent.SetURL(m_frame->loader()->documentLoader()->request().url().string());
+ wkEvent.SetFrame(m_webFrame);
m_webView->GetEventHandler()->ProcessEvent(wkEvent);
}
}
@@ -323,6 +329,7 @@
wxWebViewLoadEvent wkEvent(m_webView);
wkEvent.SetState(wxWEBVIEW_LOAD_DOC_COMPLETED);
wkEvent.SetURL(m_frame->document()->url().string());
+ wkEvent.SetFrame(m_webFrame);
m_webView->GetEventHandler()->ProcessEvent(wkEvent);
}
}
@@ -397,6 +404,7 @@
wxWebViewLoadEvent wkEvent(m_webView);
wkEvent.SetState(wxWEBVIEW_LOAD_DL_COMPLETED);
wkEvent.SetURL(m_frame->document()->url().string());
+ wkEvent.SetFrame(m_webFrame);
m_webView->GetEventHandler()->ProcessEvent(wkEvent);
}
}
@@ -751,6 +759,7 @@
wxWebViewLoadEvent wkEvent(m_webView);
wkEvent.SetState(wxWEBVIEW_LOAD_FAILED);
wkEvent.SetURL(m_frame->loader()->documentLoader()->request().url().string());
+ wkEvent.SetFrame(m_webFrame);
m_webView->GetEventHandler()->ProcessEvent(wkEvent);
}
}
@@ -795,6 +804,7 @@
wxWebViewNewWindowEvent wkEvent(m_webView);
wkEvent.SetURL(request.url().string());
wkEvent.SetTargetName(targetName);
+ wkEvent.SetFrame(m_webFrame);
if (m_webView->GetEventHandler()->ProcessEvent(wkEvent)) {
// if the app handles and doesn't skip the event,
// from WebKit's perspective treat it as blocked / ignored
@@ -815,7 +825,7 @@
wxWebViewBeforeLoadEvent wkEvent(m_webView);
wkEvent.SetNavigationType(wxNavTypeFromWebNavType(action.type()));
wkEvent.SetURL(request.url().string());
-
+ wkEvent.SetFrame(m_webFrame);
m_webView->GetEventHandler()->ProcessEvent(wkEvent);
if (wkEvent.IsCancelled())
(m_frame->loader()->policyChecker()->*function)(PolicyIgnore);
Modified: trunk/Source/WebKit/wx/WebView.h (90684 => 90685)
--- trunk/Source/WebKit/wx/WebView.h 2011-07-09 19:40:06 UTC (rev 90684)
+++ trunk/Source/WebKit/wx/WebView.h 2011-07-09 19:44:14 UTC (rev 90685)
@@ -298,6 +298,8 @@
void SetURL(const wxString& url) { m_url = url; }
void SetNavigationType(int navType) { m_navType = navType; }
int GetNavigationType() const { return m_navType; }
+ wxWebFrame* GetFrame() const { return m_frame; }
+ void SetFrame(wxWebFrame* frame) { m_frame = frame; }
wxWebViewBeforeLoadEvent( wxWindow* win = (wxWindow*) NULL );
wxEvent *Clone(void) const { return new wxWebViewBeforeLoadEvent(*this); }
@@ -306,6 +308,7 @@
bool m_cancelled;
wxString m_url;
int m_navType;
+ wxWebFrame* m_frame;
};
class WXDLLIMPEXP_WEBKIT wxWebViewLoadEvent : public wxCommandEvent
@@ -319,6 +322,8 @@
void SetState(const int state) { m_state = state; }
wxString GetURL() const { return m_url; }
void SetURL(const wxString& url) { m_url = url; }
+ wxWebFrame* GetFrame() const { return m_frame; }
+ void SetFrame(wxWebFrame* frame) { m_frame = frame; }
wxWebViewLoadEvent( wxWindow* win = (wxWindow*) NULL );
wxEvent *Clone(void) const { return new wxWebViewLoadEvent(*this); }
@@ -326,6 +331,7 @@
private:
int m_state;
wxString m_url;
+ wxWebFrame* m_frame;
};
class WXDLLIMPEXP_WEBKIT wxWebKitWindowFeatures
@@ -367,12 +373,15 @@
void SetWebView(wxWebView* webView) { m_webView = webView; }
wxWebKitWindowFeatures GetWindowFeatures() { return m_features; }
void SetWindowFeatures(wxWebKitWindowFeatures features) { m_features = features; }
+ wxWebFrame* GetFrame() const { return m_frame; }
+ void SetFrame(wxWebFrame* frame) { m_frame = frame; }
wxWebViewNewWindowEvent( wxWindow* win = static_cast<wxWindow*>(NULL));
wxEvent *Clone(void) const { return new wxWebViewNewWindowEvent(*this); }
private:
wxWebView* m_webView;
+ wxWebFrame* m_frame;
wxWebKitWindowFeatures m_features;
wxString m_url;
wxString m_targetName;
@@ -497,11 +506,15 @@
wxString GetTitle() const { return m_title; }
void SetTitle(const wxString& title) { m_title = title; }
+ wxWebFrame* GetFrame() const { return m_frame; }
+ void SetFrame(wxWebFrame* frame) { m_frame = frame; }
+
wxWebViewReceivedTitleEvent( wxWindow* win = static_cast<wxWindow*>(NULL));
wxEvent *Clone(void) const { return new wxWebViewReceivedTitleEvent(*this); }
private:
wxString m_title;
+ wxWebFrame* m_frame;
};
class WXDLLIMPEXP_WEBKIT wxWebViewWindowObjectClearedEvent : public wxCommandEvent
Modified: trunk/Source/WebKit/wx/bindings/python/webview.i (90684 => 90685)
--- trunk/Source/WebKit/wx/bindings/python/webview.i 2011-07-09 19:40:06 UTC (rev 90684)
+++ trunk/Source/WebKit/wx/bindings/python/webview.i 2011-07-09 19:44:14 UTC (rev 90685)
@@ -162,6 +162,13 @@
%include WebSettings.h
%include WebView.h
+%extend wxWebFrame {
+ %pythoncode {
+ def __eq__(self, other):
+ return self.this == other.this
+ }
+}
+
%constant wxEventType wxEVT_WEBVIEW_BEFORE_LOAD;
%constant wxEventType wxEVT_WEBVIEW_LOAD;
%constant wxEventType wxEVT_WEBVIEW_NEW_WINDOW;