blob: 3e90c0535c6531359af02642b965ae531257c288 [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "ios/web/shell/shell_web_client.h"
#import <UIKit/UIKit.h>
#include "ios/web/public/user_agent.h"
#include "ios/web/shell/shell_web_main_parts.h"
namespace web {
ShellWebClient::ShellWebClient() {
}
ShellWebClient::~ShellWebClient() {
}
WebMainParts* ShellWebClient::CreateWebMainParts() {
web_main_parts_.reset(new ShellWebMainParts);
return web_main_parts_.get();
}
ShellBrowserState* ShellWebClient::browser_state() const {
return web_main_parts_->browser_state();
}
std::string ShellWebClient::GetProduct() const {
return "CriOS/36.77.34.45";
}
std::string ShellWebClient::GetUserAgent(bool desktop_user_agent) const {
std::string product = GetProduct();
return web::BuildUserAgentFromProduct(product);
}
void ShellWebClient::AllowCertificateError(
WebState*,
int /*cert_error*/,
const net::SSLInfo&,
const GURL&,
bool overridable,
const base::Callback<void(bool)>& callback) {
base::Callback<void(bool)> block_callback(callback);
UIAlertController* alert = [UIAlertController
alertControllerWithTitle:@"Your connection is not private"
message:nil
preferredStyle:UIAlertControllerStyleActionSheet];
[alert addAction:[UIAlertAction actionWithTitle:@"Go Back"
style:UIAlertActionStyleCancel
handler:^(UIAlertAction*) {
block_callback.Run(false);
}]];
if (overridable) {
[alert addAction:[UIAlertAction actionWithTitle:@"Continue"
style:UIAlertActionStyleDefault
handler:^(UIAlertAction*) {
block_callback.Run(true);
}]];
}
[[UIApplication sharedApplication].keyWindow.rootViewController
presentViewController:alert
animated:YES
completion:nil];
}
} // namespace web