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

Side by Side Diff: chrome/browser/ui/cocoa/notifications/xpc_service_main.mm

Issue 2419213003: Ensure the xpc transaction is ended (Closed)
Patch Set: review Created 4 years, 1 month 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
1 // Copyright 2016 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #import <Foundation/Foundation.h> 5 #import <Foundation/Foundation.h>
6 #include <xpc/xpc.h> 6 #include <xpc/xpc.h>
7 7
8 #include "base/mac/scoped_nsobject.h" 8 #include "base/mac/scoped_nsobject.h"
9 #import "chrome/browser/ui/cocoa/notifications/notification_service_delegate.h" 9 #import "chrome/browser/ui/cocoa/notifications/notification_service_delegate.h"
10 10
11 // The main method of the notification alert xpc service. 11 // The main method of the notification alert xpc service.
12 // It is initiaized by Chrome on demand whenever a notification of type alert 12 // It is initiaized by Chrome on demand whenever a notification of type alert
13 // needs to be displayed. 13 // needs to be displayed.
14 // The connection will then remain open in order to receive notification 14 // The connection will then remain open in order to receive notification
15 // clicks and so until all notifications of type alert are closed. 15 // clicks and so until all notifications of type alert are closed.
16 int main(int argc, const char* argv[]) { 16 int main(int argc, const char* argv[]) {
17 @autoreleasepool { 17 @autoreleasepool {
18 base::scoped_nsobject<ServiceDelegate> delegate( 18 base::scoped_nsobject<ServiceDelegate> delegate(
19 [[ServiceDelegate alloc] init]); 19 [[ServiceDelegate alloc] init]);
20 20
21 NSXPCListener* listener = [NSXPCListener serviceListener]; 21 NSXPCListener* listener = [NSXPCListener serviceListener];
22 listener.delegate = delegate.get(); 22 listener.delegate = delegate.get();
23 23
24 // Keep the connection open forever since there is no xpc_transaction_end()
25 // TODO(miguelg): send xpc_transaction_end when no alerts are being
26 // displayed.
27 xpc_transaction_begin();
28
29 [listener resume]; 24 [listener resume];
30 25
31 return 0; 26 return 0;
32 } 27 }
33 } 28 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698