1// Copyright (c) 2011 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#ifndef NET_PROXY_PROXY_RESOLVER_ERROR_OBSERVER_H_
6#define NET_PROXY_PROXY_RESOLVER_ERROR_OBSERVER_H_
7
8#include "base/basictypes.h"
9#include "base/strings/string16.h"
10#include "net/base/net_export.h"
11
12namespace net {
13
14// Interface for observing JavaScript error messages from PAC scripts.
15class NET_EXPORT_PRIVATE ProxyResolverErrorObserver {
16 public:
17  ProxyResolverErrorObserver() {}
18  virtual ~ProxyResolverErrorObserver() {}
19
20  // Handler for when an error is encountered. |line_number| may be -1
21  // if a line number is not applicable to this error. |error| is a message
22  // describing the error.
23  //
24  // Note on threading: This may get called from a worker thread. If the
25  // backing proxy resolver is ProxyResolverV8Tracing, then it will not
26  // be called concurrently, however it will be called from a different
27  // thread than the proxy resolver's origin thread.
28  virtual void OnPACScriptError(int line_number,
29                                const base::string16& error) = 0;
30
31 private:
32  DISALLOW_COPY_AND_ASSIGN(ProxyResolverErrorObserver);
33};
34
35}  // namespace net
36
37#endif  // NET_PROXY_PROXY_RESOLVER_ERROR_OBSERVER_H_
38