Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Firefox/gfx/layers/ipc/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 2 kB image not shown  

Quelle  LayerTreeOwnerTracker.h   Sprache: C

 
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* 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 http://mozilla.org/MPL/2.0/. */


#ifndef mozilla_layers_LayerTreeOwnerTracker_h
#define mozilla_layers_LayerTreeOwnerTracker_h

#include "base/process.h"   // for base::ProcessId
#include "LayersTypes.h"    // for LayersId
#include "mozilla/Mutex.h"  // for mozilla::Mutex

#include <functional>
#include <map>

namespace mozilla {

namespace dom {
class ContentParent;
}

namespace layers {

/**
 * A utility class for tracking which content processes should be allowed
 * to access which layer trees.
 *
 * ProcessId's are used to track which content process can access the layer
 * tree, and in the case of nested browser's we use the top level content
 * processes' ProcessId.
 *
 * This class is only available in the main process and gpu process. Mappings
 * are synced from main process to the gpu process. The actual syncing happens
 * in GPUProcessManager, and so this class should not be used directly.
 */

class LayerTreeOwnerTracker final {
 public:
  static void Initialize();
  static void Shutdown();
  static LayerTreeOwnerTracker* Get();

  /**
   * Map aLayersId and aProcessId together so that that process
   * can access that layer tree.
   */

  void Map(LayersId aLayersId, base::ProcessId aProcessId);

  /**
   * Remove an existing mapping.
   */

  void Unmap(LayersId aLayersId, base::ProcessId aProcessId);

  /**
   * Checks whether it is okay for aProcessId to access aLayersId.
   */

  bool IsMapped(LayersId aLayersId, base::ProcessId aProcessId);

  void Iterate(
      const std::function<void(LayersId aLayersId, base::ProcessId aProcessId)>&
          aCallback);

 private:
  LayerTreeOwnerTracker();

  mozilla::Mutex mLayerIdsLock MOZ_UNANNOTATED;
  std::map<LayersId, base::ProcessId> mLayerIds;
};

}  // namespace layers
}  // namespace mozilla

#endif  // mozilla_layers_LayerTreeOwnerTracker_h

Messung V0.5
C=94 H=100 G=96

¤ Dauer der Verarbeitung: 0.12 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.