chromium/components/sync/protocol/history_delete_directive_specifics.proto

// Copyright 2012 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// Sync protocol datatype extension for history delete directives.

// If you change or add any fields in this file, update proto_visitors.h and
// potentially proto_enum_conversions.{h, cc}.

syntax = "proto2";

option java_multiple_files = true;
option java_package = "org.chromium.components.sync.protocol";

option optimize_for = LITE_RUNTIME;

package sync_pb;

// All timestamps below are from Sane Time (
// http://www.chromium.org/developers/design-documents/sane-time )
// and are in microseconds since the Unix epoch.

// Properties of history delete directive sync objects.
message HistoryDeleteDirectiveSpecifics {
  // Exactly one of the fields below must be filled in.  Otherwise, this
  // delete directive must be ignored.
  optional GlobalIdDirective global_id_directive = 1;
  optional TimeRangeDirective time_range_directive = 2;
  optional UrlDirective url_directive = 3;
}

message GlobalIdDirective {
  // The global IDs of the navigations to delete.
  repeated int64 global_id = 1;

  // Time range for searching for navigations to delete. Client should delete
  // all navigations to a URL between [start_time_usec, end_time_usec]
  // if one of them matches a |global_id|.
  optional int64 start_time_usec = 2;
  optional int64 end_time_usec = 3;
}

message TimeRangeDirective {
  // Both fields below must be filled in.  Otherwise, this delete directive
  // must be ignored.

  // The time on or after which entries must be deleted.
  optional int64 start_time_usec = 1;
  // The time on or before which entries must be deleted.
  optional int64 end_time_usec = 2;

  // Optional field to filter the entries with the matching app ID.
  // This field is set only by Android which has app-specific history feature
  // that allows users to generate/delete history entries from Custom Tabs on
  // app, not from BrApp.
  optional string app_id = 3;
}

message UrlDirective {
  // Both fields below must be filled in.  Otherwise, this delete directive
  // must be ignored.

  // The URL that should be removed from history.
  optional string url = 1;

  // The time on or before which entries must be deleted.
  // In microseconds since the Unix epoch.
  optional int64 end_time_usec = 2;

  // Optional field to filter the entries with the matching app ID.
  // This field is set only by Android which has app-specific history feature
  // that allows users to generate/delete history entries from Custom Tabs on
  // app, not from BrApp.
  optional string app_id = 3;
}