Title: [90685] trunk/Source/WebKit/wx
Revision
90685
Author
[email protected]
Date
2011-07-09 12:44:14 -0700 (Sat, 09 Jul 2011)

Log Message

Reviewed by Kevin Ollivier.

[wx] In load events, specify the wxWebFrame that sent them.
        
https://bugs.webkit.org/show_bug.cgi?id=64233

Modified Paths

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;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to