summaryrefslogtreecommitdiffstats
path: root/components/handoff
diff options
context:
space:
mode:
authorerikchen <erikchen@chromium.org>2015-03-27 08:29:38 -0700
committerCommit bot <commit-bot@chromium.org>2015-03-27 15:30:20 +0000
commit56915573d8e4be522d4bd8aea1bf8ba76a3c8f77 (patch)
tree5dff35ddce14cc8c27dee47c644dabb5cdd1db43 /components/handoff
parent8765e8c490efe374ced20fe590ad75cbf0dc5089 (diff)
downloadchromium_src-56915573d8e4be522d4bd8aea1bf8ba76a3c8f77.zip
chromium_src-56915573d8e4be522d4bd8aea1bf8ba76a3c8f77.tar.gz
chromium_src-56915573d8e4be522d4bd8aea1bf8ba76a3c8f77.tar.bz2
handoff: Fix the origin so that it correctly reflects the sender.
This broke when I migrated the Handoff Manager from chrome/ into components/ BUG= Review URL: https://codereview.chromium.org/1000723003 Cr-Commit-Position: refs/heads/master@{#322581}
Diffstat (limited to 'components/handoff')
-rw-r--r--components/handoff/handoff_manager.h2
-rw-r--r--components/handoff/handoff_manager.mm12
-rw-r--r--components/handoff/handoff_utility.h3
-rw-r--r--components/handoff/handoff_utility.mm11
4 files changed, 26 insertions, 2 deletions
diff --git a/components/handoff/handoff_manager.h b/components/handoff/handoff_manager.h
index 8b28a35..b29394d 100644
--- a/components/handoff/handoff_manager.h
+++ b/components/handoff/handoff_manager.h
@@ -8,6 +8,7 @@
#include <Foundation/Foundation.h>
#include "base/mac/objc_property_releaser.h"
+#include "components/handoff/handoff_utility.h"
#include "url/gurl.h"
@class NSUserActivity;
@@ -20,6 +21,7 @@
GURL _activeURL;
NSUserActivity* _userActivity;
+ handoff::Origin _origin;
}
// The active URL is defined as the URL of the most recently accessed tab. This
diff --git a/components/handoff/handoff_manager.mm b/components/handoff/handoff_manager.mm
index ab1efd6..0f889d1 100644
--- a/components/handoff/handoff_manager.mm
+++ b/components/handoff/handoff_manager.mm
@@ -6,7 +6,6 @@
#include "base/logging.h"
#include "base/mac/scoped_nsobject.h"
-#include "components/handoff/handoff_utility.h"
#include "net/base/mac/url_conversions.h"
#if defined(OS_IOS)
@@ -39,6 +38,13 @@
self = [super init];
if (self) {
_propertyReleaser_HandoffManager.Init(self, [HandoffManager class]);
+#if defined(OS_MACOSX) && !defined(OS_IOS)
+ _origin = handoff::ORIGIN_MAC;
+#elif defined(OS_IOS)
+ _origin = handoff::ORIGIN_IOS;
+#else
+ NOTREACHED();
+#endif
}
return self;
}
@@ -84,7 +90,9 @@
withObject:handoff::kChromeHandoffActivityType];
self.userActivity = base::scoped_nsobject<NSUserActivity>(userActivity);
self.userActivity.webpageURL = net::NSURLWithGURL(_activeURL);
- self.userActivity.userInfo = @{ handoff::kOriginKey : handoff::kOriginiOS };
+ NSString* origin = handoff::StringFromOrigin(_origin);
+ DCHECK(origin);
+ self.userActivity.userInfo = @{ handoff::kOriginKey : origin };
[self.userActivity becomeCurrent];
}
diff --git a/components/handoff/handoff_utility.h b/components/handoff/handoff_utility.h
index 3aa3504..92ccc5d 100644
--- a/components/handoff/handoff_utility.h
+++ b/components/handoff/handoff_utility.h
@@ -35,6 +35,9 @@ enum Origin {
// Returns ORIGIN_UNKNOWN if |string| is nil or unrecognized.
Origin OriginFromString(NSString* string);
+// Returns nil if |origin| is not ORIGIN_IOS or ORIGIN_MAC.
+NSString* StringFromOrigin(Origin origin);
+
} // namespace handoff
#endif // COMPONENTS_HANDOFF_HANDOFF_UTILITY_H_
diff --git a/components/handoff/handoff_utility.mm b/components/handoff/handoff_utility.mm
index ba4c6ef..de20e69 100644
--- a/components/handoff/handoff_utility.mm
+++ b/components/handoff/handoff_utility.mm
@@ -21,4 +21,15 @@ Origin OriginFromString(NSString* string) {
return ORIGIN_UNKNOWN;
}
+NSString* StringFromOrigin(Origin origin) {
+ switch (origin) {
+ case ORIGIN_IOS:
+ return kOriginiOS;
+ case ORIGIN_MAC:
+ return kOriginMac;
+ default:
+ return nil;
+ }
+}
+
} // namespace handoff