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