1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CHROME_BROWSER_UI_LOGIN_LOGIN_INTERSTITIAL_DELEGATE_H_ 6 #define CHROME_BROWSER_UI_LOGIN_LOGIN_INTERSTITIAL_DELEGATE_H_ 7 8 #include <string> 9 10 #include "base/callback.h" 11 #include "content/public/browser/interstitial_page.h" 12 #include "content/public/browser/interstitial_page_delegate.h" 13 #include "url/gurl.h" 14 15 class LoginHandler; 16 17 namespace content { 18 class WebContents; 19 } 20 21 namespace net { 22 class AuthChallengeInfo; 23 } 24 25 // Placeholder interstitial for HTTP login prompts. This interstitial makes the 26 // omnibox show the correct url when the login prompt is visible. 27 class LoginInterstitialDelegate : public content::InterstitialPageDelegate { 28 public: 29 LoginInterstitialDelegate(content::WebContents* web_contents, 30 const GURL& request_url, 31 base::Closure& callback); 32 33 virtual ~LoginInterstitialDelegate(); 34 35 // content::InterstitialPageDelegate: 36 virtual void CommandReceived(const std::string& command) OVERRIDE; 37 38 protected: 39 virtual std::string GetHTMLContents() OVERRIDE; 40 41 private: 42 base::Closure callback_; 43 44 DISALLOW_COPY_AND_ASSIGN(LoginInterstitialDelegate); 45 }; 46 47 #endif // CHROME_BROWSER_UI_LOGIN_LOGIN_INTERSTITIAL_DELEGATE_H_ 48