// 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. #ifndef COMPONENTS_OMNIBOX_BROWSER_OMNIBOX_NAVIGATION_OBSERVER_H_ #define COMPONENTS_OMNIBOX_BROWSER_OMNIBOX_NAVIGATION_OBSERVER_H_ // Interface that allows an embedder to monitor omnibox navigations in order to // trigger behaviors that depend on successful navigations. // // The memory management of this object is a bit tricky. On opening a match, // the OmniboxEditModel will ask the OmniboxClient to create us if necessary. // Once we are created, OmniboxEditModel will be responsible for us until we // reach the state where we have seen a pending load (it will delete us if this // doesn't happen by the time that processing the match has finished)). Once we // have seen a pending load, we're responsible for deleting ourselves at // whatever time we deem is appropriate. class OmniboxNavigationObserver { public: virtual ~OmniboxNavigationObserver() {} // Returns true iff this observer has seen a pending load since its // creation. virtual bool HasSeenPendingLoad() const = 0; }; #endif // COMPONENTS_OMNIBOX_BROWSER_OMNIBOX_NAVIGATION_OBSERVER_H_