Update mini_chromium to a43fee120b10ed71df4e55a370948ca461d78232

a43fee120b10 Sync Mac scopers with upstream Chromium

This adapts to updated Mac scopers from Chromium cfd6ed5600d8, including
the changes from that commit and Chromium f39d4ffc6c32.

R=rsesek@chromium.org

Review URL: https://codereview.chromium.org/1565873002 .
This commit is contained in:
Mark Mentovai 2016-01-06 12:31:59 -05:00
parent 6d2d31d2d1
commit b7e4564ff2
4 changed files with 54 additions and 48 deletions

2
DEPS
View File

@ -25,7 +25,7 @@ deps = {
'01528c7244837168a1c80f06ff60fa5a9793c824', '01528c7244837168a1c80f06ff60fa5a9793c824',
'crashpad/third_party/mini_chromium/mini_chromium': 'crashpad/third_party/mini_chromium/mini_chromium':
Var('chromium_git') + '/chromium/mini_chromium@' + Var('chromium_git') + '/chromium/mini_chromium@' +
'8a2363f486e3a0dc562a68884832d06d28d38dcc', 'a43fee120b10ed71df4e55a370948ca461d78232',
'buildtools': 'buildtools':
Var('chromium_git') + '/chromium/buildtools.git@' + Var('chromium_git') + '/chromium/buildtools.git@' +
'c2f259809d5ede3275df5ea0842f0431990c4f98', 'c2f259809d5ede3275df5ea0842f0431990c4f98',

View File

@ -51,7 +51,8 @@ launch_data_t CFPropertyToLaunchData(CFPropertyListRef property_cf) {
return nullptr; return nullptr;
} }
LaunchDataDictInsert(dictionary_launch, value_launch, [key UTF8String]); LaunchDataDictInsert(
dictionary_launch.get(), value_launch, [key UTF8String]);
} }
data_launch = dictionary_launch.release(); data_launch = dictionary_launch.release();
@ -71,7 +72,7 @@ launch_data_t CFPropertyToLaunchData(CFPropertyListRef property_cf) {
return nullptr; return nullptr;
} }
LaunchDataArraySetIndex(array_launch, element_launch, index++); LaunchDataArraySetIndex(array_launch.get(), element_launch, index++);
} }
data_launch = array_launch.release(); data_launch = array_launch.release();

View File

@ -62,8 +62,9 @@ TEST(Launchd, CFPropertyToLaunchData_Integer) {
NSNumber* integer_ns = integer_nses[index]; NSNumber* integer_ns = integer_nses[index];
launch_data.reset(CFPropertyToLaunchData(integer_ns)); launch_data.reset(CFPropertyToLaunchData(integer_ns));
ASSERT_TRUE(launch_data.get()); ASSERT_TRUE(launch_data.get());
ASSERT_EQ(LAUNCH_DATA_INTEGER, LaunchDataGetType(launch_data)); ASSERT_EQ(LAUNCH_DATA_INTEGER, LaunchDataGetType(launch_data.get()));
EXPECT_EQ([integer_ns longLongValue], LaunchDataGetInteger(launch_data)) EXPECT_EQ([integer_ns longLongValue],
LaunchDataGetInteger(launch_data.get()))
<< "index " << index; << "index " << index;
} }
} }
@ -91,9 +92,9 @@ TEST(Launchd, CFPropertyToLaunchData_FloatingPoint) {
NSNumber* double_ns = double_nses[index]; NSNumber* double_ns = double_nses[index];
launch_data.reset(CFPropertyToLaunchData(double_ns)); launch_data.reset(CFPropertyToLaunchData(double_ns));
ASSERT_TRUE(launch_data.get()); ASSERT_TRUE(launch_data.get());
ASSERT_EQ(LAUNCH_DATA_REAL, LaunchDataGetType(launch_data)); ASSERT_EQ(LAUNCH_DATA_REAL, LaunchDataGetType(launch_data.get()));
double expected_double_value = [double_ns doubleValue]; double expected_double_value = [double_ns doubleValue];
double observed_double_value = LaunchDataGetReal(launch_data); double observed_double_value = LaunchDataGetReal(launch_data.get());
bool expected_is_nan = std::isnan(expected_double_value); bool expected_is_nan = std::isnan(expected_double_value);
EXPECT_EQ(expected_is_nan, std::isnan(observed_double_value)); EXPECT_EQ(expected_is_nan, std::isnan(observed_double_value));
if (!expected_is_nan) { if (!expected_is_nan) {
@ -117,11 +118,11 @@ TEST(Launchd, CFPropertyToLaunchData_Boolean) {
NSNumber* bool_ns = bool_nses[index]; NSNumber* bool_ns = bool_nses[index];
launch_data.reset(CFPropertyToLaunchData(bool_ns)); launch_data.reset(CFPropertyToLaunchData(bool_ns));
ASSERT_TRUE(launch_data.get()); ASSERT_TRUE(launch_data.get());
ASSERT_EQ(LAUNCH_DATA_BOOL, LaunchDataGetType(launch_data)); ASSERT_EQ(LAUNCH_DATA_BOOL, LaunchDataGetType(launch_data.get()));
if ([bool_ns boolValue]) { if ([bool_ns boolValue]) {
EXPECT_TRUE(LaunchDataGetBool(launch_data)); EXPECT_TRUE(LaunchDataGetBool(launch_data.get()));
} else { } else {
EXPECT_FALSE(LaunchDataGetBool(launch_data)); EXPECT_FALSE(LaunchDataGetBool(launch_data.get()));
} }
} }
} }
@ -141,8 +142,9 @@ TEST(Launchd, CFPropertyToLaunchData_String) {
NSString* string_ns = string_nses[index]; NSString* string_ns = string_nses[index];
launch_data.reset(CFPropertyToLaunchData(string_ns)); launch_data.reset(CFPropertyToLaunchData(string_ns));
ASSERT_TRUE(launch_data.get()); ASSERT_TRUE(launch_data.get());
ASSERT_EQ(LAUNCH_DATA_STRING, LaunchDataGetType(launch_data)); ASSERT_EQ(LAUNCH_DATA_STRING, LaunchDataGetType(launch_data.get()));
EXPECT_STREQ([string_ns UTF8String], LaunchDataGetString(launch_data)); EXPECT_STREQ([string_ns UTF8String],
LaunchDataGetString(launch_data.get()));
} }
} }
} }
@ -156,10 +158,11 @@ TEST(Launchd, CFPropertyToLaunchData_Data) {
NSData* data_ns = [NSData dataWithBytes:data_c length:sizeof(data_c)]; NSData* data_ns = [NSData dataWithBytes:data_c length:sizeof(data_c)];
launch_data.reset(CFPropertyToLaunchData(data_ns)); launch_data.reset(CFPropertyToLaunchData(data_ns));
ASSERT_TRUE(launch_data.get()); ASSERT_TRUE(launch_data.get());
ASSERT_EQ(LAUNCH_DATA_OPAQUE, LaunchDataGetType(launch_data)); ASSERT_EQ(LAUNCH_DATA_OPAQUE, LaunchDataGetType(launch_data.get()));
EXPECT_EQ(sizeof(data_c), LaunchDataGetOpaqueSize(launch_data)); EXPECT_EQ(sizeof(data_c), LaunchDataGetOpaqueSize(launch_data.get()));
EXPECT_EQ(0, EXPECT_EQ(
memcmp(LaunchDataGetOpaque(launch_data), data_c, sizeof(data_c))); 0,
memcmp(LaunchDataGetOpaque(launch_data.get()), data_c, sizeof(data_c)));
} }
} }
@ -173,10 +176,11 @@ TEST(Launchd, CFPropertyToLaunchData_Dictionary) {
launch_data.reset(CFPropertyToLaunchData(dictionary_ns)); launch_data.reset(CFPropertyToLaunchData(dictionary_ns));
ASSERT_TRUE(launch_data.get()); ASSERT_TRUE(launch_data.get());
ASSERT_EQ(LAUNCH_DATA_DICTIONARY, LaunchDataGetType(launch_data)); ASSERT_EQ(LAUNCH_DATA_DICTIONARY, LaunchDataGetType(launch_data.get()));
EXPECT_EQ([dictionary_ns count], LaunchDataDictGetCount(launch_data)); EXPECT_EQ([dictionary_ns count], LaunchDataDictGetCount(launch_data.get()));
launch_data_t launch_lookup_data = LaunchDataDictLookup(launch_data, "key"); launch_data_t launch_lookup_data =
LaunchDataDictLookup(launch_data.get(), "key");
ASSERT_TRUE(launch_lookup_data); ASSERT_TRUE(launch_lookup_data);
ASSERT_EQ(LAUNCH_DATA_STRING, LaunchDataGetType(launch_lookup_data)); ASSERT_EQ(LAUNCH_DATA_STRING, LaunchDataGetType(launch_lookup_data));
EXPECT_STREQ("value", LaunchDataGetString(launch_lookup_data)); EXPECT_STREQ("value", LaunchDataGetString(launch_lookup_data));
@ -191,15 +195,16 @@ TEST(Launchd, CFPropertyToLaunchData_Array) {
launch_data.reset(CFPropertyToLaunchData(array_ns)); launch_data.reset(CFPropertyToLaunchData(array_ns));
ASSERT_TRUE(launch_data.get()); ASSERT_TRUE(launch_data.get());
ASSERT_EQ(LAUNCH_DATA_ARRAY, LaunchDataGetType(launch_data)); ASSERT_EQ(LAUNCH_DATA_ARRAY, LaunchDataGetType(launch_data.get()));
EXPECT_EQ([array_ns count], LaunchDataArrayGetCount(launch_data)); EXPECT_EQ([array_ns count], LaunchDataArrayGetCount(launch_data.get()));
launch_data_t launch_lookup_data = LaunchDataArrayGetIndex(launch_data, 0); launch_data_t launch_lookup_data =
LaunchDataArrayGetIndex(launch_data.get(), 0);
ASSERT_TRUE(launch_lookup_data); ASSERT_TRUE(launch_lookup_data);
ASSERT_EQ(LAUNCH_DATA_STRING, LaunchDataGetType(launch_lookup_data)); ASSERT_EQ(LAUNCH_DATA_STRING, LaunchDataGetType(launch_lookup_data));
EXPECT_STREQ("element_1", LaunchDataGetString(launch_lookup_data)); EXPECT_STREQ("element_1", LaunchDataGetString(launch_lookup_data));
launch_lookup_data = LaunchDataArrayGetIndex(launch_data, 1); launch_lookup_data = LaunchDataArrayGetIndex(launch_data.get(), 1);
ASSERT_TRUE(launch_lookup_data); ASSERT_TRUE(launch_lookup_data);
ASSERT_EQ(LAUNCH_DATA_STRING, LaunchDataGetType(launch_lookup_data)); ASSERT_EQ(LAUNCH_DATA_STRING, LaunchDataGetType(launch_lookup_data));
EXPECT_STREQ("element_2", LaunchDataGetString(launch_lookup_data)); EXPECT_STREQ("element_2", LaunchDataGetString(launch_lookup_data));
@ -215,18 +220,18 @@ TEST(Launchd, CFPropertyToLaunchData_NSDate) {
NSDate* date = [NSDate date]; NSDate* date = [NSDate date];
launch_data.reset(CFPropertyToLaunchData(date)); launch_data.reset(CFPropertyToLaunchData(date));
EXPECT_FALSE(launch_data); EXPECT_FALSE(launch_data.get());
NSDictionary* date_dictionary = @{ NSDictionary* date_dictionary = @{
@"key" : @"value", @"key" : @"value",
@"date" : date, @"date" : date,
}; };
launch_data.reset(CFPropertyToLaunchData(date_dictionary)); launch_data.reset(CFPropertyToLaunchData(date_dictionary));
EXPECT_FALSE(launch_data); EXPECT_FALSE(launch_data.get());
NSArray* date_array = @[ @"string_1", date, @"string_2", ]; NSArray* date_array = @[ @"string_1", date, @"string_2", ];
launch_data.reset(CFPropertyToLaunchData(date_array)); launch_data.reset(CFPropertyToLaunchData(date_array));
EXPECT_FALSE(launch_data); EXPECT_FALSE(launch_data.get());
} }
} }
@ -246,24 +251,24 @@ TEST(Launchd, CFPropertyToLaunchData_RealWorldJobDictionary) {
launch_data.reset(CFPropertyToLaunchData(job_dictionary)); launch_data.reset(CFPropertyToLaunchData(job_dictionary));
ASSERT_TRUE(launch_data.get()); ASSERT_TRUE(launch_data.get());
ASSERT_EQ(LAUNCH_DATA_DICTIONARY, LaunchDataGetType(launch_data)); ASSERT_EQ(LAUNCH_DATA_DICTIONARY, LaunchDataGetType(launch_data.get()));
EXPECT_EQ(4u, LaunchDataDictGetCount(launch_data)); EXPECT_EQ(4u, LaunchDataDictGetCount(launch_data.get()));
launch_data_t launch_lookup_data = launch_data_t launch_lookup_data =
LaunchDataDictLookup(launch_data, LAUNCH_JOBKEY_LABEL); LaunchDataDictLookup(launch_data.get(), LAUNCH_JOBKEY_LABEL);
ASSERT_TRUE(launch_lookup_data); ASSERT_TRUE(launch_lookup_data);
ASSERT_EQ(LAUNCH_DATA_STRING, LaunchDataGetType(launch_lookup_data)); ASSERT_EQ(LAUNCH_DATA_STRING, LaunchDataGetType(launch_lookup_data));
EXPECT_STREQ("com.example.job.rebooter", EXPECT_STREQ("com.example.job.rebooter",
LaunchDataGetString(launch_lookup_data)); LaunchDataGetString(launch_lookup_data));
launch_lookup_data = launch_lookup_data =
LaunchDataDictLookup(launch_data, LAUNCH_JOBKEY_ONDEMAND); LaunchDataDictLookup(launch_data.get(), LAUNCH_JOBKEY_ONDEMAND);
ASSERT_TRUE(launch_lookup_data); ASSERT_TRUE(launch_lookup_data);
ASSERT_EQ(LAUNCH_DATA_BOOL, LaunchDataGetType(launch_lookup_data)); ASSERT_EQ(LAUNCH_DATA_BOOL, LaunchDataGetType(launch_lookup_data));
EXPECT_TRUE(LaunchDataGetBool(launch_lookup_data)); EXPECT_TRUE(LaunchDataGetBool(launch_lookup_data));
launch_lookup_data = launch_lookup_data =
LaunchDataDictLookup(launch_data, LAUNCH_JOBKEY_PROGRAMARGUMENTS); LaunchDataDictLookup(launch_data.get(), LAUNCH_JOBKEY_PROGRAMARGUMENTS);
ASSERT_TRUE(launch_lookup_data); ASSERT_TRUE(launch_lookup_data);
ASSERT_EQ(LAUNCH_DATA_ARRAY, LaunchDataGetType(launch_lookup_data)); ASSERT_EQ(LAUNCH_DATA_ARRAY, LaunchDataGetType(launch_lookup_data));
EXPECT_EQ(3u, LaunchDataArrayGetCount(launch_lookup_data)); EXPECT_EQ(3u, LaunchDataArrayGetCount(launch_lookup_data));
@ -285,7 +290,7 @@ TEST(Launchd, CFPropertyToLaunchData_RealWorldJobDictionary) {
EXPECT_STREQ("/sbin/reboot", LaunchDataGetString(launch_sublookup_data)); EXPECT_STREQ("/sbin/reboot", LaunchDataGetString(launch_sublookup_data));
launch_lookup_data = launch_lookup_data =
LaunchDataDictLookup(launch_data, LAUNCH_JOBKEY_MACHSERVICES); LaunchDataDictLookup(launch_data.get(), LAUNCH_JOBKEY_MACHSERVICES);
ASSERT_TRUE(launch_lookup_data); ASSERT_TRUE(launch_lookup_data);
ASSERT_EQ(LAUNCH_DATA_DICTIONARY, LaunchDataGetType(launch_lookup_data)); ASSERT_EQ(LAUNCH_DATA_DICTIONARY, LaunchDataGetType(launch_lookup_data));
EXPECT_EQ(1u, LaunchDataDictGetCount(launch_lookup_data)); EXPECT_EQ(1u, LaunchDataDictGetCount(launch_lookup_data));

View File

@ -28,10 +28,10 @@ namespace {
launch_data_t LaunchDataDictionaryForJob(const std::string& label) { launch_data_t LaunchDataDictionaryForJob(const std::string& label) {
base::mac::ScopedLaunchData request(LaunchDataAlloc(LAUNCH_DATA_DICTIONARY)); base::mac::ScopedLaunchData request(LaunchDataAlloc(LAUNCH_DATA_DICTIONARY));
LaunchDataDictInsert( LaunchDataDictInsert(
request, LaunchDataNewString(label.c_str()), LAUNCH_KEY_GETJOB); request.get(), LaunchDataNewString(label.c_str()), LAUNCH_KEY_GETJOB);
base::mac::ScopedLaunchData response(LaunchMsg(request)); base::mac::ScopedLaunchData response(LaunchMsg(request.get()));
if (LaunchDataGetType(response) != LAUNCH_DATA_DICTIONARY) { if (LaunchDataGetType(response.get()) != LAUNCH_DATA_DICTIONARY) {
return nullptr; return nullptr;
} }
@ -47,21 +47,21 @@ bool ServiceManagementSubmitJob(CFDictionaryRef job_cf) {
} }
base::mac::ScopedLaunchData jobs(LaunchDataAlloc(LAUNCH_DATA_ARRAY)); base::mac::ScopedLaunchData jobs(LaunchDataAlloc(LAUNCH_DATA_ARRAY));
LaunchDataArraySetIndex(jobs, job_launch.release(), 0); LaunchDataArraySetIndex(jobs.get(), job_launch.release(), 0);
base::mac::ScopedLaunchData request(LaunchDataAlloc(LAUNCH_DATA_DICTIONARY)); base::mac::ScopedLaunchData request(LaunchDataAlloc(LAUNCH_DATA_DICTIONARY));
LaunchDataDictInsert(request, jobs.release(), LAUNCH_KEY_SUBMITJOB); LaunchDataDictInsert(request.get(), jobs.release(), LAUNCH_KEY_SUBMITJOB);
base::mac::ScopedLaunchData response(LaunchMsg(request)); base::mac::ScopedLaunchData response(LaunchMsg(request.get()));
if (LaunchDataGetType(response) != LAUNCH_DATA_ARRAY) { if (LaunchDataGetType(response.get()) != LAUNCH_DATA_ARRAY) {
return false; return false;
} }
if (LaunchDataArrayGetCount(response) != 1) { if (LaunchDataArrayGetCount(response.get()) != 1) {
return false; return false;
} }
launch_data_t response_element = LaunchDataArrayGetIndex(response, 0); launch_data_t response_element = LaunchDataArrayGetIndex(response.get(), 0);
if (LaunchDataGetType(response_element) != LAUNCH_DATA_ERRNO) { if (LaunchDataGetType(response_element) != LAUNCH_DATA_ERRNO) {
return false; return false;
} }
@ -77,14 +77,14 @@ bool ServiceManagementSubmitJob(CFDictionaryRef job_cf) {
bool ServiceManagementRemoveJob(const std::string& label, bool wait) { bool ServiceManagementRemoveJob(const std::string& label, bool wait) {
base::mac::ScopedLaunchData request(LaunchDataAlloc(LAUNCH_DATA_DICTIONARY)); base::mac::ScopedLaunchData request(LaunchDataAlloc(LAUNCH_DATA_DICTIONARY));
LaunchDataDictInsert( LaunchDataDictInsert(
request, LaunchDataNewString(label.c_str()), LAUNCH_KEY_REMOVEJOB); request.get(), LaunchDataNewString(label.c_str()), LAUNCH_KEY_REMOVEJOB);
base::mac::ScopedLaunchData response(LaunchMsg(request)); base::mac::ScopedLaunchData response(LaunchMsg(request.get()));
if (LaunchDataGetType(response) != LAUNCH_DATA_ERRNO) { if (LaunchDataGetType(response.get()) != LAUNCH_DATA_ERRNO) {
return false; return false;
} }
int err = LaunchDataGetErrno(response); int err = LaunchDataGetErrno(response.get());
if (err == EINPROGRESS) { if (err == EINPROGRESS) {
if (wait) { if (wait) {
// TODO(mark): Use a kqueue to wait for the process to exit. To avoid a // TODO(mark): Use a kqueue to wait for the process to exit. To avoid a
@ -108,7 +108,7 @@ bool ServiceManagementRemoveJob(const std::string& label, bool wait) {
bool ServiceManagementIsJobLoaded(const std::string& label) { bool ServiceManagementIsJobLoaded(const std::string& label) {
base::mac::ScopedLaunchData dictionary(LaunchDataDictionaryForJob(label)); base::mac::ScopedLaunchData dictionary(LaunchDataDictionaryForJob(label));
if (!dictionary) { if (!dictionary.is_valid()) {
return false; return false;
} }
@ -117,11 +117,11 @@ bool ServiceManagementIsJobLoaded(const std::string& label) {
pid_t ServiceManagementIsJobRunning(const std::string& label) { pid_t ServiceManagementIsJobRunning(const std::string& label) {
base::mac::ScopedLaunchData dictionary(LaunchDataDictionaryForJob(label)); base::mac::ScopedLaunchData dictionary(LaunchDataDictionaryForJob(label));
if (!dictionary) { if (!dictionary.is_valid()) {
return 0; return 0;
} }
launch_data_t pid = LaunchDataDictLookup(dictionary, LAUNCH_JOBKEY_PID); launch_data_t pid = LaunchDataDictLookup(dictionary.get(), LAUNCH_JOBKEY_PID);
if (!pid) { if (!pid) {
return 0; return 0;
} }