| Index: components/arc/common/app.mojom | 
| diff --git a/components/arc/common/app.mojom b/components/arc/common/app.mojom | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..cc4b2e0df9e2db983ebea48c9d959eef1309af73 | 
| --- /dev/null | 
| +++ b/components/arc/common/app.mojom | 
| @@ -0,0 +1,62 @@ | 
| +// Copyright 2015 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. | 
| + | 
| +module arc; | 
| + | 
| +// Duplicates ui::ScaleFactor enum in order to be accessible on Android side. | 
| +enum ScaleFactor { | 
| +  SCALE_FACTOR_NONE = 0, | 
| +  SCALE_FACTOR_100P, | 
| +  SCALE_FACTOR_125P, | 
| +  SCALE_FACTOR_133P, | 
| +  SCALE_FACTOR_140P, | 
| +  SCALE_FACTOR_150P, | 
| +  SCALE_FACTOR_180P, | 
| +  SCALE_FACTOR_200P, | 
| +  SCALE_FACTOR_250P, | 
| +  SCALE_FACTOR_300P, | 
| + | 
| +  NUM_SCALE_FACTORS | 
| +}; | 
| + | 
| +// Describes ARC app. | 
| +struct AppInfo { | 
| +  string name; | 
| +  string package; | 
| +  string activity; | 
| +}; | 
| + | 
| +interface AppHost { | 
| +  // Receives a list of available ARC apps to Chrome. Members of AppInfo must | 
| +  // contain non-empty string. | 
| +  OnAppListRefreshed(array<AppInfo> apps); | 
| + | 
| +  // Receives an icon of required |scale_factor| for specific ARC app. The app | 
| +  // is defined by |package| and |activity|. The icon content cannot be empty | 
| +  // and must match to |scale_factor| assuming 48x48 for SCALE_FACTOR_100P. | 
| +  // |scale_factor| is an enum defined at ui/base/layout.h. |icon_png_data| is | 
| +  // a png-encoded image. | 
| +  OnAppIcon(string package, string activity, | 
| +            ScaleFactor scale_factor, array<uint8> icon_png_data); | 
| +}; | 
| + | 
| +// TODO(lhchavez): Migrate all request/response messages to Mojo. | 
| +interface AppInstance { | 
| +  Init(AppHost host_ptr); | 
| + | 
| +  // Sends a request to ARC to launch an ARC app defined by |package| and | 
| +  // |activity|, which cannot be empty. | 
| +  LaunchApp(string package, string activity); | 
| + | 
| +  // Sends a request to ARC to refresh a list of ARC apps. | 
| +  // OnRefreshAppsList is expected in response to this message. However, | 
| +  // response may not be sent if ARC is not ready yet (boot completed event is | 
| +  // not received). | 
| +  RefreshAppList(); | 
| + | 
| +  // Sends a request to ARC for the ARC app icon of a required scale factor. | 
| +  // Scale factor is an enum defined at ui/base/layout.h. App is defined by | 
| +  // package and activity, which cannot be empty. | 
| +  RequestAppIcon(string package, string activity, ScaleFactor scale_factor); | 
| +}; | 
|  |