// Copyright 2015 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

syntax = "proto2";

option optimize_for = LITE_RUNTIME;

package discourse_context;

message ClientDiscourseContext {
  // Displays that have been shown to the user.
  repeated Display display = 4;
}

message Display {
  // A media item in the display, e.g. a webpage.
  optional Media media = 9;
  // URI describing this content, e.g. the URL of the webpage.
  optional string uri = 10;
  // User-selected text and surrounding content.
  optional Selection selection = 13;
}

message Selection {
  // Character encoding is UTF-8.
  optional string content = 1;
  // Character offsets (inclusive, non-inclusive) into content of the selected
  // text.
  optional int32 start = 2;
  optional int32 end = 3;
  // Whether the content is URI-encoded.  Needed to support older clients.
  optional bool is_uri_encoded = 4 [default = true];
}

message Media {
  // The MIME type of the media item, which is the original encoding
  // of the page.
  optional string mime_type = 3;
}
