author Gregory Szorc <>
Tue, 15 Jan 2013 22:21:21 -0800
changeset 119046 ec072cee05025335f0637de7e1dab95623fe8a56
parent 94475 f4157e8c410708d76703f19e4dfb61859bfe32d8
child 127719 d4130427c3130ec27434c0cadb29b8cf12fe0aaa
permissions -rw-r--r--
Bug 784841 - Part 2: Implement sandboxing for Python build files; r=ted,glandium This is the beginning of Mozilla's new build system. In this patch, we have a Python sandbox tailored for execution of Python scripts which will define the build system. We also have a build reader that traverses a linked set of scripts. More details are available in the thorough README.rst files as part of this patch. * * * Bug 784841 - Part 2b: Option to not descend into child files; r=ted

/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
 * vim: sw=2 ts=2 et lcs=trail\:.,tab\:>~ :
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at */

#include "nsISupports.idl"

interface mozIStorageConnection;

 * This interface contains the information that the Storage service needs to
 * vacuum a database.  This interface is created as a service through the
 * category manager with the category "vacuum-participant".
 * Please see for
 * more information.
[scriptable, uuid(8f367508-1d9a-4d3f-be0c-ac11b6dd7dbf)]
interface mozIStorageVacuumParticipant : nsISupports {
   * The expected page size in bytes for the database.  The vacuum manager will
   * try to correct the page size during idle based on this value.
   * @note If the database is using the WAL journal mode, the page size won't
  *        be changed to the requested value.  See bug 634374.
   * @note Valid page size values are from 512 to 65536.
   *       The suggested value is mozIStorageConnection::DEFAULT_PAGE_SIZE.
  readonly attribute long expectedDatabasePageSize;

   * Connection to the database file to be vacuumed.
  readonly attribute mozIStorageConnection databaseConnection;

   * Notifies when a vacuum operation begins.  Listeners should avoid using the
   * database till onEndVacuum is received.
   * @return true to proceed with the vacuum, false if the participant wants to
   *         opt-out for now, it will be retried later.  Useful when participant
   *         is running some other heavy operation that can't be interrupted.
   * @note When a vacuum operation starts or ends it will also dispatch a global
   *       "heavy-io-task" notification through the observer service with the
   *       data argument being either "vacuum-begin" or "vacuum-end".
  boolean onBeginVacuum();

   * Notifies when a vacuum operation ends.
   * @param aSucceeded
   *        reports if the vacuum succeeded or failed.
  void onEndVacuum(in boolean aSucceeded);