Home | History | Annotate | Download | only in navigation
      1 // Copyright 2014 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 import "../network/url_loader.mojom"
      6 
      7 module mojo.navigation {
      8 
      9 struct NavigationDetails {
     10   string url;
     11   // TODO(aa): method, data, etc.
     12 };
     13 
     14 struct ResponseDetails {
     15   // TODO(beng): consider providing access to URLRequest too. Currently it is
     16   //             not possible to obtain from the URLLoader.
     17   mojo.URLResponse response;
     18   handle<data_pipe_consumer> response_body_stream;
     19 };
     20 
     21 // Embedders that support navigation of implement this interface.
     22 interface NavigatorHost {
     23   RequestNavigate(uint32 source_node_id, NavigationDetails details);
     24 };
     25 
     26 // Applications implement this interface to support navigation of their views
     27 // by embedders.
     28 // |response_details| can be NULL when a navigation was not the result of a
     29 // network load.
     30 interface Navigator {
     31   Navigate(uint32 node_id,
     32            NavigationDetails navigation_details,
     33            ResponseDetails response_details);
     34 };
     35 
     36 }
     37