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

Unified Diff: base/strings/sys_string_conversions_mac.mm

Issue 2656903005: ChromeDriver: Handle key events properly on Mac (Closed)
Patch Set: changes Created 3 years, 10 months 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: base/strings/sys_string_conversions_mac.mm
diff --git a/base/strings/sys_string_conversions_mac.mm b/base/strings/sys_string_conversions_mac.mm
index 32fe89cc3672672a07dc5ad0c02e7d0ef73deb05..2267cee4193a45a93375b5a6b02882e9ec195bfd 100644
--- a/base/strings/sys_string_conversions_mac.mm
+++ b/base/strings/sys_string_conversions_mac.mm
@@ -93,13 +93,14 @@ static OutStringType STLStringToSTLStringWithEncodingsT(
out_encoding);
}
-// Given an STL string |in| with an encoding specified by |in_encoding|,
-// return it as a CFStringRef. Returns NULL on failure.
-template<typename StringType>
+// Given an STL string |in| and length of string |in_length| with an
+// encoding specified by |in_encoding|, return it as a CFStringRef.
+// Returns NULL on failure.
+template <typename StringType>
static CFStringRef STLStringToCFStringWithEncodingsT(
const StringType& in,
+ typename StringType::size_type in_length,
CFStringEncoding in_encoding) {
- typename StringType::size_type in_length = in.length();
if (in_length == 0)
return CFSTR("");
@@ -111,6 +112,15 @@ static CFStringRef STLStringToCFStringWithEncodingsT(
false);
}
+// Given an STL string |in| with an encoding specified by |in_encoding|,
+// return it as a CFStringRef. Returns NULL on failure.
+template <typename StringType>
+static CFStringRef STLStringToCFStringWithEncodingsT(
+ const StringType& in,
+ CFStringEncoding in_encoding) {
+ return STLStringToCFStringWithEncodingsT(in, in.length(), in_encoding);
+}
+
// Specify the byte ordering explicitly, otherwise CFString will be confused
// when strings don't carry BOMs, as they typically won't.
static const CFStringEncoding kNarrowStringEncoding = kCFStringEncodingUTF8;
@@ -152,6 +162,11 @@ CFStringRef SysUTF16ToCFStringRef(const string16& utf16) {
return STLStringToCFStringWithEncodingsT(utf16, kMediumStringEncoding);
}
+CFStringRef SysUTF16ToCFStringRef(const string16& utf16, int string_length) {
+ return STLStringToCFStringWithEncodingsT(utf16, string_length,
+ kMediumStringEncoding);
+}
+
NSString* SysUTF8ToNSString(const std::string& utf8) {
return (NSString*)base::mac::CFTypeRefToNSObjectAutorelease(
SysUTF8ToCFStringRef(utf8));
@@ -162,6 +177,11 @@ NSString* SysUTF16ToNSString(const string16& utf16) {
SysUTF16ToCFStringRef(utf16));
}
+NSString* SysUTF16ToNSString(const string16& utf16, int string_length) {
+ return (NSString*)base::mac::CFTypeRefToNSObjectAutorelease(
+ SysUTF16ToCFStringRef(utf16, string_length));
+}
+
std::string SysCFStringRefToUTF8(CFStringRef ref) {
return CFStringToSTLStringWithEncodingT<std::string>(ref,
kNarrowStringEncoding);

Powered by Google App Engine
This is Rietveld 408576698