// Copyright 2016 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.
//
// Next MinVersion: 4

module arc.mojom;

// Handles wallpaper calls from ARC in Chrome.
// Next method ID: 3
interface WallpaperHost {
  // Gets current wallpaper encoded in PNG and send it back to ARC.
  GetWallpaper@0() => (array<uint8> wallpaper);

  // Sets an image from ARC as the wallpaper.
  // |data| is a byte array of the wallpaper image.
  SetWallpaper@1(array<uint8> data, [MinVersion=2] int32 wallpaper_id);

  // Sets the default wallpaper.
  [MinVersion=2] SetDefaultWallpaper@2();
};

// Connects with container side to publish wallpaper related intents.
// Next method ID: 4
interface WallpaperInstance {
  // DEPRECATED: Please use Init@3 instead.
  InitDeprecated@0(pending_remote<WallpaperHost> host_remote);

  // Establishes full-duplex communication with the host.
  [MinVersion=3] Init@3(pending_remote<WallpaperHost> host_remote) => ();

  // Notifies ArcWallpaperManagerService that wallpaper is changed.
  [MinVersion=1] OnWallpaperChanged@1([MinVersion=2] int32 wallpaper_id);
};
