Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(50)

Side by Side Diff: ios/chrome/app/steps/launch_to_foreground.mm

Issue 2592983003: [Clean Skeleton] Migrate code to clean/ (Closed)
Patch Set: Rebased Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2016 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 // ====== New Architecture =====
6 // = This code is only used in the new iOS Chrome architecture. =
7 // ============================================================================
8
9 #import "ios/chrome/app/steps/launch_to_foreground.h"
10
11 #include "components/content_settings/core/browser/host_content_settings_map.h"
12 #include "ios/chrome/app/application_state.h"
13 #include "ios/chrome/browser/application_context.h"
14 #include "ios/chrome/browser/browser_state/chrome_browser_state.h"
15 #include "ios/chrome/browser/content_settings/host_content_settings_map_factory. h"
16 #include "ios/web/public/web_capabilities.h"
17 #include "ios/web/public/web_thread.h"
18
19 #if !defined(__has_feature) || !__has_feature(objc_arc)
20 #error "This file requires ARC support."
21 #endif
22
23 // Temporary class to trigger URL-opening events from a shake gesture.
24 @interface ShakeCatchingWindow : UIWindow
25 @end
26
27 @implementation BeginForegrounding
28
29 - (BOOL)canRunInState:(ApplicationState*)state {
30 return state.phase == APPLICATION_BACKGROUNDED;
31 }
32
33 - (void)runInState:(ApplicationState*)state {
34 GetApplicationContext()->OnAppEnterForeground();
35 }
36
37 @end
38
39 @implementation PrepareForUI
40
41 - (BOOL)canRunInState:(ApplicationState*)state {
42 return state.phase == APPLICATION_BACKGROUNDED;
43 }
44
45 - (void)runInState:(ApplicationState*)state {
46 state.window =
47 [[ShakeCatchingWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
48 [state.window makeKeyWindow];
49 }
50
51 @end
52
53 @implementation CompleteForegrounding
54 - (BOOL)canRunInState:(ApplicationState*)state {
55 return state.window.keyWindow && state.phase == APPLICATION_BACKGROUNDED;
56 }
57
58 - (void)runInState:(ApplicationState*)state {
59 state.phase = APPLICATION_FOREGROUNDED;
60 }
61
62 @end
63
64 @implementation ShakeCatchingWindow
65
66 #pragma mark - UIResponder
67
68 - (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent*)event {
69 if (motion == UIEventSubtypeMotionShake) {
70 UIApplication* app = [UIApplication sharedApplication];
71 [app.delegate application:app
72 openURL:[NSURL URLWithString:@"https://www.google.com"]
73 options:@{}];
74 }
75 [super motionEnded:motion withEvent:event];
76 }
77
78 @end
OLDNEW
« no previous file with comments | « ios/chrome/app/steps/launch_to_foreground.h ('k') | ios/chrome/app/steps/tab_grid_coordinator+application_step.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698