[haiku-webkit-commits] r237 - in webkit/trunk/WebKit/haiku: API HaikuLauncher WebCoreSupport

  • From: webkit@xxxxxxxxxxxxxxx
  • To: haiku-webkit-commits@xxxxxxxxxxxxx
  • Date: Sat, 27 Feb 2010 13:31:30 +0000

Author: stippi
Date: Sat Feb 27 13:31:29 2010
New Revision: 237
URL: http://mmlr.dyndns.org/changeset/237

Log:
Actually, the authentication challenge needs to know for which page it is,
otherwise we may display the login panel above an unrelated page. Tested by
clicking Login on dev.haiku-os.org and Cmd-T to open a new tab before the
login panel shows. Works.

Modified:
   webkit/trunk/WebKit/haiku/API/WebWindow.cpp
   webkit/trunk/WebKit/haiku/API/WebWindow.h
   webkit/trunk/WebKit/haiku/HaikuLauncher/LauncherWindow.cpp
   webkit/trunk/WebKit/haiku/HaikuLauncher/LauncherWindow.h
   webkit/trunk/WebKit/haiku/HaikuLauncher/WebTabView.cpp
   webkit/trunk/WebKit/haiku/HaikuLauncher/WebTabView.h
   webkit/trunk/WebKit/haiku/WebCoreSupport/FrameLoaderClientHaiku.cpp

Modified: webkit/trunk/WebKit/haiku/API/WebWindow.cpp
==============================================================================
--- webkit/trunk/WebKit/haiku/API/WebWindow.cpp Sat Feb 27 13:20:50 2010        
(r236)
+++ webkit/trunk/WebKit/haiku/API/WebWindow.cpp Sat Feb 27 13:31:29 2010        
(r237)
@@ -182,7 +182,7 @@
            message->FindUInt32("failureCount", &failureCount);
 
         if (!AuthenticationChallenge(text, user, password, rememberCredentials,
-                       failureCount)) {
+                       failureCount, _WebViewForMessage(message))) {
                message->SendReply((uint32)0);
                break;
         }
@@ -336,7 +336,8 @@
 }
 
 bool BWebWindow::AuthenticationChallenge(BString message, BString& inOutUser,
-       BString& inOutPassword, bool& inOutRememberCredentials, uint32 
failureCount)
+       BString& inOutPassword, bool& inOutRememberCredentials, uint32 
failureCount,
+       BWebView* view)
 {
        return false;
 }

Modified: webkit/trunk/WebKit/haiku/API/WebWindow.h
==============================================================================
--- webkit/trunk/WebKit/haiku/API/WebWindow.h   Sat Feb 27 13:20:50 2010        
(r236)
+++ webkit/trunk/WebKit/haiku/API/WebWindow.h   Sat Feb 27 13:31:29 2010        
(r237)
@@ -83,7 +83,7 @@
        virtual bool                            AuthenticationChallenge(BString 
message,
                                                                        
BString& inOutUser, BString& inOutPassword,
                                                                        bool& 
inOutRememberCredentials,
-                                                                       uint32 
failureCount);
+                                                                       uint32 
failureCount, BWebView* view);
 
 private:
                        BWebView*                       _WebViewForMessage(

Modified: webkit/trunk/WebKit/haiku/HaikuLauncher/LauncherWindow.cpp
==============================================================================
--- webkit/trunk/WebKit/haiku/HaikuLauncher/LauncherWindow.cpp  Sat Feb 27 
13:20:50 2010        (r236)
+++ webkit/trunk/WebKit/haiku/HaikuLauncher/LauncherWindow.cpp  Sat Feb 27 
13:31:29 2010        (r237)
@@ -654,8 +654,14 @@
 }
 
 bool LauncherWindow::AuthenticationChallenge(BString message, BString& 
inOutUser,
-       BString& inOutPassword, bool& inOutRememberCredentials, uint32 
failureCount)
+       BString& inOutPassword, bool& inOutRememberCredentials, uint32 
failureCount,
+       BWebView* view)
 {
+       // Switch to the page for which this authentication is required.
+       if (view != CurrentWebView()) {
+               m_tabManager->SelectTab(view);
+               UpdateIfNeeded();
+       }
     AuthenticationPanel* panel = new AuthenticationPanel(Frame());
        // Panel auto-destructs.
     return panel->getAuthentication(message, inOutUser, inOutPassword,

Modified: webkit/trunk/WebKit/haiku/HaikuLauncher/LauncherWindow.h
==============================================================================
--- webkit/trunk/WebKit/haiku/HaikuLauncher/LauncherWindow.h    Sat Feb 27 
13:20:50 2010        (r236)
+++ webkit/trunk/WebKit/haiku/HaikuLauncher/LauncherWindow.h    Sat Feb 27 
13:31:29 2010        (r237)
@@ -93,7 +93,7 @@
     virtual void UpdateGlobalHistory(const BString& url);
        virtual bool AuthenticationChallenge(BString message, BString& 
inOutUser,
                BString& inOutPassword, bool& inOutRememberCredentials,
-               uint32 failureCount);
+               uint32 failureCount, BWebView* view);
 
     void updateTitle(const BString &title);
     void updateTabGroupVisibility();

Modified: webkit/trunk/WebKit/haiku/HaikuLauncher/WebTabView.cpp
==============================================================================
--- webkit/trunk/WebKit/haiku/HaikuLauncher/WebTabView.cpp      Sat Feb 27 
13:20:50 2010        (r236)
+++ webkit/trunk/WebKit/haiku/HaikuLauncher/WebTabView.cpp      Sat Feb 27 
13:31:29 2010        (r237)
@@ -1137,6 +1137,20 @@
 }
 
 
+void
+TabManager::SelectTab(BView* containedView)
+{
+       int32 count = fCardLayout->CountItems();
+       for (int32 i = 0; i < count; i++) {
+               BLayoutItem* item = fCardLayout->ItemAt(i);
+               if (item->View() == containedView) {
+                       SelectTab(i);
+                       break;
+               }
+       }
+}
+
+
 int32
 TabManager::SelectedTabIndex() const
 {

Modified: webkit/trunk/WebKit/haiku/HaikuLauncher/WebTabView.h
==============================================================================
--- webkit/trunk/WebKit/haiku/HaikuLauncher/WebTabView.h        Sat Feb 27 
13:20:50 2010        (r236)
+++ webkit/trunk/WebKit/haiku/HaikuLauncher/WebTabView.h        Sat Feb 27 
13:31:29 2010        (r237)
@@ -56,6 +56,7 @@
                        BView*                          ViewForTab(int32 
tabIndex) const;
 
                        void                            SelectTab(int32 
tabIndex);
+                       void                            SelectTab(BView* 
containedView);
                        int32                           SelectedTabIndex() 
const;
                        void                            CloseTab(int32 
tabIndex);
 

Modified: webkit/trunk/WebKit/haiku/WebCoreSupport/FrameLoaderClientHaiku.cpp
==============================================================================
--- webkit/trunk/WebKit/haiku/WebCoreSupport/FrameLoaderClientHaiku.cpp Sat Feb 
27 13:20:50 2010        (r236)
+++ webkit/trunk/WebKit/haiku/WebCoreSupport/FrameLoaderClientHaiku.cpp Sat Feb 
27 13:31:29 2010        (r237)
@@ -184,6 +184,7 @@
     challengeMessage.AddString("user", challenge.proposedCredential().user());
     challengeMessage.AddString("password", 
challenge.proposedCredential().password());
     challengeMessage.AddUInt32("failureCount", 
challenge.previousFailureCount());
+    challengeMessage.AddPointer("view", m_webPage->WebView());
 
     BMessage authenticationReply;
     m_messenger.SendMessage(&challengeMessage, &authenticationReply);

Other related posts:

  • » [haiku-webkit-commits] r237 - in webkit/trunk/WebKit/haiku: API HaikuLauncher WebCoreSupport - webkit