summaryrefslogtreecommitdiffstats
path: root/ios/web/shell/app_delegate.mm
blob: d5d239b2ebc417a9dfc476fff654d87fcb87d791 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
// 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.

#import "ios/web/shell/app_delegate.h"

#import "base/mac/scoped_nsobject.h"
#include "base/memory/scoped_ptr.h"
#include "ios/web/public/app/web_main.h"
#include "ios/web/public/web_client.h"
#include "ios/web/public/web_state/web_state.h"
#include "ios/web/shell/shell_browser_state.h"
#include "ios/web/shell/shell_main_delegate.h"
#include "ios/web/shell/shell_web_client.h"
#import "ios/web/shell/view_controller.h"

@interface AppDelegate () {
  scoped_ptr<web::ShellMainDelegate> _delegate;
  scoped_ptr<web::WebMain> _webMain;
}
@end

@implementation AppDelegate

@synthesize window = _window;

- (BOOL)application:(UIApplication*)application
    didFinishLaunchingWithOptions:(NSDictionary*)launchOptions {
  _window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
  [self.window makeKeyAndVisible];
  self.window.backgroundColor = [UIColor whiteColor];

  _delegate.reset(new web::ShellMainDelegate());
  web::WebMainParams params(_delegate.get());
  _webMain.reset(new web::WebMain(params));

  web::ShellWebClient* client =
      static_cast<web::ShellWebClient*>(web::GetWebClient());
  web::BrowserState* browserState = client->browser_state();

  base::scoped_nsobject<ViewController> controller(
      [[ViewController alloc] initWithBrowserState:browserState]);
  self.window.rootViewController = controller;
  return YES;
}

- (void)applicationWillResignActive:(UIApplication*)application {
}

- (void)applicationDidEnterBackground:(UIApplication*)application {
}

- (void)applicationWillEnterForeground:(UIApplication*)application {
}

- (void)applicationDidBecomeActive:(UIApplication*)application {
}

- (void)applicationWillTerminate:(UIApplication*)application {
  _webMain.reset();
  _delegate.reset();
}

@end