Home | History | Annotate | Download | only in shell
      1 // Copyright (c) 2012 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 #include "content/shell/shell_resource_dispatcher_host_delegate.h"
      6 
      7 #include "base/command_line.h"
      8 #include "content/shell/common/shell_switches.h"
      9 #include "content/shell/shell_login_dialog.h"
     10 
     11 namespace content {
     12 
     13 ShellResourceDispatcherHostDelegate::ShellResourceDispatcherHostDelegate() {
     14 }
     15 
     16 ShellResourceDispatcherHostDelegate::~ShellResourceDispatcherHostDelegate() {
     17 }
     18 
     19 bool ShellResourceDispatcherHostDelegate::AcceptAuthRequest(
     20     net::URLRequest* request,
     21     net::AuthChallengeInfo* auth_info) {
     22   bool accept_auth_request =
     23       !CommandLine::ForCurrentProcess()->HasSwitch(switches::kDumpRenderTree);
     24   return accept_auth_request;
     25 }
     26 
     27 ResourceDispatcherHostLoginDelegate*
     28 ShellResourceDispatcherHostDelegate::CreateLoginDelegate(
     29     net::AuthChallengeInfo* auth_info, net::URLRequest* request) {
     30   if (!login_request_callback_.is_null()) {
     31     login_request_callback_.Run();
     32     login_request_callback_.Reset();
     33     return NULL;
     34   }
     35 
     36 #if !defined(OS_MACOSX) && !defined(TOOLKIT_GTK)
     37 // TODO: implement ShellLoginDialog for other platforms, drop this #if
     38   return NULL;
     39 #else
     40   return new ShellLoginDialog(auth_info, request);
     41 #endif
     42 }
     43 
     44 }  // namespace content
     45