Revert "fix: Drop support for OS X Mavericks (version 10.9)" (#13333)

This commit is contained in:
Samuel Attard 2018-06-20 22:27:55 +10:00 committed by Charles Kerr
parent 562eddf0e9
commit 79fbd6bab1
15 changed files with 290 additions and 156 deletions

View file

@ -11,7 +11,7 @@
NSUserActivityDelegate> {
@private
BOOL handlingSendEvent_;
base::scoped_nsobject<NSUserActivity> currentActivity_;
base::scoped_nsobject<NSUserActivity> currentActivity_ API_AVAILABLE(macosx(10.10));
NSCondition* handoffLock_;
BOOL updateReceived_;
base::Callback<bool()> shouldShutdown_;
@ -27,7 +27,7 @@
// CrAppControlProtocol:
- (void)setHandlingSendEvent:(BOOL)handlingSendEvent;
- (NSUserActivity*)getCurrentActivity;
- (NSUserActivity*)getCurrentActivity API_AVAILABLE(macosx(10.10));
- (void)setCurrentActivity:(NSString*)type
withUserInfo:(NSDictionary*)userInfo
withWebpageURL:(NSURL*)webpageURL;

View file

@ -58,13 +58,15 @@ inline void dispatch_sync_main(dispatch_block_t block) {
- (void)setCurrentActivity:(NSString*)type
withUserInfo:(NSDictionary*)userInfo
withWebpageURL:(NSURL*)webpageURL {
currentActivity_ = base::scoped_nsobject<NSUserActivity>(
[[NSUserActivity alloc] initWithActivityType:type]);
[currentActivity_ setUserInfo:userInfo];
[currentActivity_ setWebpageURL:webpageURL];
[currentActivity_ setDelegate:self];
[currentActivity_ becomeCurrent];
[currentActivity_ setNeedsSave:YES];
if (@available(macOS 10.10, *)) {
currentActivity_ = base::scoped_nsobject<NSUserActivity>(
[[NSUserActivity alloc] initWithActivityType:type]);
[currentActivity_ setUserInfo:userInfo];
[currentActivity_ setWebpageURL:webpageURL];
[currentActivity_ setDelegate:self];
[currentActivity_ becomeCurrent];
[currentActivity_ setNeedsSave:YES];
}
}
- (NSUserActivity*)getCurrentActivity {
@ -90,7 +92,8 @@ inline void dispatch_sync_main(dispatch_block_t block) {
[handoffLock_ unlock];
}
- (void)userActivityWillSave:(NSUserActivity*)userActivity {
- (void)userActivityWillSave:(NSUserActivity*)userActivity
API_AVAILABLE(macosx(10.10)) {
__block BOOL shouldWait = NO;
dispatch_sync_main(^{
std::string activity_type(
@ -118,7 +121,8 @@ inline void dispatch_sync_main(dispatch_block_t block) {
[userActivity setNeedsSave:YES];
}
- (void)userActivityWasContinued:(NSUserActivity*)userActivity {
- (void)userActivityWasContinued:(NSUserActivity*)userActivity
API_AVAILABLE(macosx(10.10)) {
dispatch_async(dispatch_get_main_queue(), ^{
std::string activity_type(
base::SysNSStringToUTF8(userActivity.activityType));

View file

@ -98,7 +98,8 @@ static base::mac::ScopedObjCClassSwizzler* g_swizzle_imk_input_session;
- (BOOL)application:(NSApplication*)sender
continueUserActivity:(NSUserActivity*)userActivity
restorationHandler:
(void (^)(NSArray* restorableObjects))restorationHandler {
(void (^)(NSArray* restorableObjects))restorationHandler
API_AVAILABLE(macosx(10.10)) {
std::string activity_type(base::SysNSStringToUTF8(userActivity.activityType));
std::unique_ptr<base::DictionaryValue> user_info =
atom::NSDictionaryToDictionaryValue(userActivity.userInfo);