/*
 * Copyright 2012 Google Inc.
 *
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */

// Set up system preferences with a known state.
// This is implemented on a per-platform basis.
// TODO(epoger): move this out of gm/ into a more common directory, so
// that it can be used more broadly.
void setSystemPreferences();
