158e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch// Copyright 2013 The Chromium Authors. All rights reserved.
22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file.
42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
558e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch#ifndef CHROME_BROWSER_EXTENSIONS_API_NETWORKING_PRIVATE_NETWORKING_PRIVATE_EVENT_ROUTER_H_
658e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch#define CHROME_BROWSER_EXTENSIONS_API_NETWORKING_PRIVATE_NETWORKING_PRIVATE_EVENT_ROUTER_H_
72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
8a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "components/keyed_service/core/keyed_service.h"
9f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "extensions/browser/event_router.h"
102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class Profile;
122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
13f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)namespace extensions {
142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
15f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// This is an event router that will observe listeners to |NetworksChanged| and
16f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// |NetworkListChanged| events. On ChromeOS it will forward these events
1790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// from the NetworkStateHandler to the JavaScript Networking API.
18a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)class NetworkingPrivateEventRouter : public KeyedService,
19f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)                                     public EventRouter::Observer {
202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public:
21f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  static NetworkingPrivateEventRouter* Create(Profile* profile);
222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) protected:
24f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  NetworkingPrivateEventRouter() {}
252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) private:
272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(NetworkingPrivateEventRouter);
282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)};
292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
30f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)}  // namespace extensions
312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
3258e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch#endif  // CHROME_BROWSER_EXTENSIONS_API_NETWORKING_PRIVATE_NETWORKING_PRIVATE_EVENT_ROUTER_H_
3358e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch
34