Index: chrome/browser/ui/cocoa/share_menu/share_menu_manager.mm |
diff --git a/chrome/browser/ui/cocoa/share_menu/share_menu_manager.mm b/chrome/browser/ui/cocoa/share_menu/share_menu_manager.mm |
new file mode 100644 |
index 0000000000000000000000000000000000000000..eb6cfeb0b9b27606a150c4c5974812833bc63d79 |
--- /dev/null |
+++ b/chrome/browser/ui/cocoa/share_menu/share_menu_manager.mm |
@@ -0,0 +1,50 @@ |
+// Copyright (c) 2015 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 "chrome/browser/ui/cocoa/share_menu/share_menu_manager.h" |
+ |
+#import "chrome/browser/ui/cocoa/share_menu/share_menu_controller.h" |
+#import <AppKit/AppKit.h> |
+ |
+static NSString* kSharePrefPane = |
+ @"/System/Library/PreferencePanes/Extensions.prefPane"; |
+ |
+@interface ShareMenuManager() |
++ (void)displayShareOptionsManagerDialog; |
+@end |
+ |
+@implementation ShareMenuManager |
+ |
++ (void)displayShareOptionsManagerDialog { |
+ [[NSWorkspace sharedWorkspace] openFile:kSharePrefPane]; |
+} |
+ |
++ (void)dispatchSharingServiceEventsFor:(NSSharingService*)service |
+ AndPageInfo:(NSDictionary*)info { |
+ base::scoped_nsobject<NSArray> shareItems; |
+ NSArray* items = [info allValues]; |
+ if ([service canPerformWithItems:items]) { |
+ if ([service isEqualTo:[NSSharingService sharingServiceNamed |
+ : NSSharingServiceNameComposeEmail]]) { |
+ shareItems.reset([[NSArray alloc] |
+ initWithObjects:[info objectForKey:kPageUrl], |
+ [info objectForKey:kPageHtml], nil]); |
+ |
+ } else { |
+ shareItems.reset([[NSArray alloc] |
+ initWithObjects:[info objectForKey:kPageUrl], |
+ [info objectForKey:kPageScreenShot], nil]); |
+ } |
+ [service performWithItems:shareItems]; |
+ |
+ } else { |
+ NSLog(@"custom service %@", service); |
+ if ([service.title isEqualToString:@"More"]) { |
+ NSLog(@"opens a printer dialog here"); |
+ [ShareMenuManager displayShareOptionsManagerDialog]; |
+ } |
+ } |
+} |
+ |
+@end |