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

Unified Diff: ios/chrome/browser/ui/contextual_search/touch_to_search_permissions_mediator.h

Issue 2588713002: Upstream Chrome on iOS source code [4/11]. (Closed)
Patch Set: Created 4 years 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 side-by-side diff with in-line comments
Download patch
Index: ios/chrome/browser/ui/contextual_search/touch_to_search_permissions_mediator.h
diff --git a/ios/chrome/browser/ui/contextual_search/touch_to_search_permissions_mediator.h b/ios/chrome/browser/ui/contextual_search/touch_to_search_permissions_mediator.h
new file mode 100644
index 0000000000000000000000000000000000000000..068f1cebd586730749e8b2fdc9d3783229b10118
--- /dev/null
+++ b/ios/chrome/browser/ui/contextual_search/touch_to_search_permissions_mediator.h
@@ -0,0 +1,80 @@
+// Copyright 2016 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.
+
+#ifndef IOS_CHROME_BROWSER_UI_CONTEXTUAL_SEARCH_TOUCH_TO_SEARCH_PERMISSIONS_MEDIATOR_H_
+#define IOS_CHROME_BROWSER_UI_CONTEXTUAL_SEARCH_TOUCH_TO_SEARCH_PERMISSIONS_MEDIATOR_H_
+
+#import <Foundation/Foundation.h>
+
+#import "url/gurl.h"
+
+namespace ios {
+class ChromeBrowserState;
+}
+
+namespace TouchToSearch {
+
+// Enum describing the possible state that a user's Touch-to-Search preference
+// is in:
+typedef NS_ENUM(NSInteger, TouchToSearchPreferenceState) {
+ UNDECIDED = -1, // User has not set a preference.
+ DISABLED, // User has disabled TTS.
+ ENABLED // User has "opted in" and enabled TTS.
+};
+
+} // namespace TouchToSearch
+
+@protocol TouchToSearchPermissionsChangeAudience<NSObject>
+@optional
+
+// Called synchronously when preferences are changed
+- (void)touchToSearchDidChangePreferenceState:
+ (TouchToSearch::TouchToSearchPreferenceState)preferenceState;
+
+// Called (asynchronously) after some state has changed that might have affected
+// touch-to-search permissions.
+- (void)touchToSearchPermissionsUpdated;
+
+@end
+
+// An object for managing and vending permissions associated with the
+// Touch-to-Search feature.
+@interface TouchToSearchPermissionsMediator : NSObject
+
+// YES if the device supports Touch-to-Search (based on command line flags and
+// Finch experiments). The return value will be the same over the lifetime of
+// a Chrome process.
++ (BOOL)isTouchToSearchAvailableOnDevice;
+
+// Designated initializer.
+- (instancetype)initWithBrowserState:(ios::ChromeBrowserState*)browserState
+ NS_DESIGNATED_INITIALIZER;
+
+- (instancetype)init NS_UNAVAILABLE;
+
+// Current preference state. Assigning to this property will update the internal
+// representation backing this state.
+@property(nonatomic, assign)
+ TouchToSearch::TouchToSearchPreferenceState preferenceState;
+
+// Current audience object.
+@property(nonatomic, assign)
+ NSObject<TouchToSearchPermissionsChangeAudience>* audience;
+
+// YES if, given the current permissions state, touch-to-search can be enabled.
+- (BOOL)canEnable;
+
+// YES if, given the current permissions state, surrounding text in |URL| may be
+// extracted.
+- (BOOL)canExtractTapContextForURL:(const GURL&)url;
+
+// YES if it is permitted to send page URLs to the contextual search service.
+- (BOOL)canSendPageURLs;
+
+// YES if search results pages can be preloaded.
+- (BOOL)canPreloadSearchResults;
+
+@end
+
+#endif // IOS_CHROME_BROWSER_UI_CONTEXTUAL_SEARCH_TOUCH_TO_SEARCH_PERMISSIONS_MEDIATOR_H_

Powered by Google App Engine
This is Rietveld 408576698