| Index: content/shell/renderer/test_runner/helper/layout_test_helper_mac.mm
|
| diff --git a/content/shell/renderer/test_runner/helper/layout_test_helper_mac.mm b/content/shell/renderer/test_runner/helper/layout_test_helper_mac.mm
|
| deleted file mode 100644
|
| index 1a54676a4260e874f04ff034cda5448703206d2f..0000000000000000000000000000000000000000
|
| --- a/content/shell/renderer/test_runner/helper/layout_test_helper_mac.mm
|
| +++ /dev/null
|
| @@ -1,263 +0,0 @@
|
| -// Copyright 2014 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.
|
| -
|
| -/*
|
| - * Copyright (C) 2010 Google Inc. All rights reserved.
|
| - * Copyright (C) 2012 Apple Inc.
|
| - *
|
| - * Redistribution and use in source and binary forms, with or without
|
| - * modification, are permitted provided that the following conditions are
|
| - * met:
|
| - *
|
| - * * Redistributions of source code must retain the above copyright
|
| - * notice, this list of conditions and the following disclaimer.
|
| - * * Redistributions in binary form must reproduce the above
|
| - * copyright notice, this list of conditions and the following disclaimer
|
| - * in the documentation and/or other materials provided with the
|
| - * distribution.
|
| - * * Neither the name of Google Inc. nor the names of its
|
| - * contributors may be used to endorse or promote products derived from
|
| - * this software without specific prior written permission.
|
| - *
|
| - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
| - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
| - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
| - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
| - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
| - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
| - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
| - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
| - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
| - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
| - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
| - */
|
| -
|
| -#import <AppKit/AppKit.h>
|
| -#import <AvailabilityMacros.h>
|
| -#include <signal.h>
|
| -#include <stdio.h>
|
| -#include <stdlib.h>
|
| -
|
| -// This is a simple helper app that changes the color sync profile to the
|
| -// generic profile and back when done. This program is managed by the layout
|
| -// test script, so it can do the job for multiple DumpRenderTree while they are
|
| -// running layout tests.
|
| -
|
| -namespace {
|
| -
|
| -#if defined(MAC_OS_X_VERSION_10_7) && \
|
| - MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7
|
| -
|
| -CFURLRef user_color_profile_url;
|
| -
|
| -void InstallLayoutTestColorProfile() {
|
| - // To make sure we get consistent colors (not dependent on the chosen color
|
| - // space of the main display), we force the generic RGB color profile.
|
| - // This causes a change the user can see.
|
| -
|
| - CFUUIDRef main_display_id =
|
| - CGDisplayCreateUUIDFromDisplayID(CGMainDisplayID());
|
| -
|
| - if (!user_color_profile_url) {
|
| - CFDictionaryRef device_info = ColorSyncDeviceCopyDeviceInfo(
|
| - kColorSyncDisplayDeviceClass, main_display_id);
|
| -
|
| - if (!device_info) {
|
| - NSLog(@"No display attached to system; not setting main display's color "
|
| - "profile.");
|
| - CFRelease(main_display_id);
|
| - return;
|
| - }
|
| -
|
| - CFDictionaryRef profile_info = (CFDictionaryRef)CFDictionaryGetValue(
|
| - device_info, kColorSyncCustomProfiles);
|
| - if (profile_info) {
|
| - user_color_profile_url =
|
| - (CFURLRef)CFDictionaryGetValue(profile_info, CFSTR("1"));
|
| - CFRetain(user_color_profile_url);
|
| - } else {
|
| - profile_info = (CFDictionaryRef)CFDictionaryGetValue(
|
| - device_info, kColorSyncFactoryProfiles);
|
| - CFDictionaryRef factory_profile =
|
| - (CFDictionaryRef)CFDictionaryGetValue(profile_info, CFSTR("1"));
|
| - user_color_profile_url = (CFURLRef)CFDictionaryGetValue(
|
| - factory_profile, kColorSyncDeviceProfileURL);
|
| - CFRetain(user_color_profile_url);
|
| - }
|
| -
|
| - CFRelease(device_info);
|
| - }
|
| -
|
| - ColorSyncProfileRef generic_rgb_profile =
|
| - ColorSyncProfileCreateWithName(kColorSyncGenericRGBProfile);
|
| - CFErrorRef error;
|
| - CFURLRef profile_url = ColorSyncProfileGetURL(generic_rgb_profile, &error);
|
| - if (!profile_url) {
|
| - NSLog(@"Failed to get URL of Generic RGB color profile! Many pixel tests "
|
| - "may fail as a result. Error: %@",
|
| - error);
|
| -
|
| - if (user_color_profile_url) {
|
| - CFRelease(user_color_profile_url);
|
| - user_color_profile_url = 0;
|
| - }
|
| -
|
| - CFRelease(generic_rgb_profile);
|
| - CFRelease(main_display_id);
|
| - return;
|
| - }
|
| -
|
| - CFMutableDictionaryRef profile_info =
|
| - CFDictionaryCreateMutable(kCFAllocatorDefault,
|
| - 0,
|
| - &kCFTypeDictionaryKeyCallBacks,
|
| - &kCFTypeDictionaryValueCallBacks);
|
| - CFDictionarySetValue(
|
| - profile_info, kColorSyncDeviceDefaultProfileID, profile_url);
|
| -
|
| - if (!ColorSyncDeviceSetCustomProfiles(
|
| - kColorSyncDisplayDeviceClass, main_display_id, profile_info)) {
|
| - NSLog(@"Failed to set color profile for main display! Many pixel tests may "
|
| - "fail as a result.");
|
| -
|
| - if (user_color_profile_url) {
|
| - CFRelease(user_color_profile_url);
|
| - user_color_profile_url = 0;
|
| - }
|
| - }
|
| -
|
| - CFRelease(profile_info);
|
| - CFRelease(generic_rgb_profile);
|
| - CFRelease(main_display_id);
|
| -}
|
| -
|
| -void RestoreUserColorProfile() {
|
| - // This is used as a signal handler, and thus the calls into ColorSync are
|
| - // unsafe.
|
| - // But we might as well try to restore the user's color profile, we're going
|
| - // down anyway...
|
| -
|
| - if (!user_color_profile_url)
|
| - return;
|
| -
|
| - CFUUIDRef main_display_id =
|
| - CGDisplayCreateUUIDFromDisplayID(CGMainDisplayID());
|
| - CFMutableDictionaryRef profile_info =
|
| - CFDictionaryCreateMutable(kCFAllocatorDefault,
|
| - 0,
|
| - &kCFTypeDictionaryKeyCallBacks,
|
| - &kCFTypeDictionaryValueCallBacks);
|
| - CFDictionarySetValue(
|
| - profile_info, kColorSyncDeviceDefaultProfileID, user_color_profile_url);
|
| - ColorSyncDeviceSetCustomProfiles(
|
| - kColorSyncDisplayDeviceClass, main_display_id, profile_info);
|
| - CFRelease(main_display_id);
|
| - CFRelease(profile_info);
|
| -}
|
| -
|
| -#else // For Snow Leopard and before, use older CM* API.
|
| -
|
| -const char color_profile_path[] =
|
| - "/System/Library/ColorSync/Profiles/Generic RGB Profile.icc";
|
| -
|
| -// The locType field is initialized to 0 which is the same as cmNoProfileBase.
|
| -CMProfileLocation initial_color_profile_location;
|
| -
|
| -void InstallLayoutTestColorProfile() {
|
| - // To make sure we get consistent colors (not dependent on the Main display),
|
| - // we force the generic rgb color profile. This cases a change the user can
|
| - // see.
|
| - const CMDeviceScope scope = {kCFPreferencesCurrentUser,
|
| - kCFPreferencesCurrentHost};
|
| -
|
| - CMProfileRef profile = 0;
|
| - int error =
|
| - CMGetProfileByAVID((CMDisplayIDType)kCGDirectMainDisplay, &profile);
|
| - if (!error) {
|
| - UInt32 size = sizeof(initial_color_profile_location);
|
| - error = NCMGetProfileLocation(profile, &initial_color_profile_location, &size);
|
| - CMCloseProfile(profile);
|
| - }
|
| - if (error) {
|
| - NSLog(@"failed to get the current color profile, pixmaps won't match. "
|
| - "Error: %d",
|
| - (int)error);
|
| - initial_color_profile_location.locType = cmNoProfileBase;
|
| - return;
|
| - }
|
| -
|
| - CMProfileLocation location;
|
| - location.locType = cmPathBasedProfile;
|
| - strncpy(location.u.pathLoc.path,
|
| - color_profile_path,
|
| - sizeof(location.u.pathLoc.path));
|
| - error = CMSetDeviceProfile(cmDisplayDeviceClass,
|
| - (CMDeviceID)kCGDirectMainDisplay,
|
| - &scope,
|
| - cmDefaultProfileID,
|
| - &location);
|
| - if (error) {
|
| - NSLog(@"failed install the generic color profile, pixmaps won't match. "
|
| - "Error: %d",
|
| - (int)error);
|
| - initial_color_profile_location.locType = cmNoProfileBase;
|
| - }
|
| -}
|
| -
|
| -void RestoreUserColorProfile() {
|
| - // This is used as a signal handler, and thus the calls into ColorSync are
|
| - // unsafe.
|
| - // But we might as well try to restore the user's color profile, we're going
|
| - // down anyway...
|
| - if (initial_color_profile_location.locType != cmNoProfileBase) {
|
| - const CMDeviceScope scope = {kCFPreferencesCurrentUser,
|
| - kCFPreferencesCurrentHost};
|
| - int error = CMSetDeviceProfile(cmDisplayDeviceClass,
|
| - (CMDeviceID)kCGDirectMainDisplay,
|
| - &scope,
|
| - cmDefaultProfileID,
|
| - &initial_color_profile_location);
|
| - if (error) {
|
| - NSLog(@"Failed to restore color profile, use System Preferences -> "
|
| - "Displays -> Color to reset. Error: %d",
|
| - (int)error);
|
| - }
|
| - initial_color_profile_location.locType = cmNoProfileBase;
|
| - }
|
| -}
|
| -
|
| -#endif
|
| -
|
| -void SimpleSignalHandler(int sig) {
|
| - // Try to restore the color profile and try to go down cleanly.
|
| - RestoreUserColorProfile();
|
| - exit(128 + sig);
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -int main(int argc, char* argv[]) {
|
| - NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
|
| -
|
| - // Hooks the ways we might get told to clean up...
|
| - signal(SIGINT, SimpleSignalHandler);
|
| - signal(SIGHUP, SimpleSignalHandler);
|
| - signal(SIGTERM, SimpleSignalHandler);
|
| -
|
| - // Save off the current profile, and then install the layout test profile.
|
| - InstallLayoutTestColorProfile();
|
| -
|
| - // Let the script know we're ready.
|
| - printf("ready\n");
|
| - fflush(stdout);
|
| -
|
| - // Wait for any key (or signal).
|
| - getchar();
|
| -
|
| - // Restore the profile.
|
| - RestoreUserColorProfile();
|
| -
|
| - [pool release];
|
| - return 0;
|
| -}
|
|
|