Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / components / translate / core / browser / translate_driver.h
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 #ifndef COMPONENTS_TRANSLATE_CORE_BROWSER_TRANSLATE_DRIVER_H_
6 #define COMPONENTS_TRANSLATE_CORE_BROWSER_TRANSLATE_DRIVER_H_
7
8 #include <string>
9
10 class GURL;
11 class LanguageState;
12
13 // Interface that allows Translate core code to interact with its driver (i.e.,
14 // obtain information from it and give information to it). A concrete
15 // implementation must be provided by the driver.
16 class TranslateDriver {
17  public:
18   // Returns true if the current page was navigated through a link.
19   virtual bool IsLinkNavigation() = 0;
20
21   // Called when Translate is enabled or disabled.
22   virtual void OnTranslateEnabledChanged() = 0;
23
24   // Called when the page is "translated" state of the page changed.
25   virtual void OnIsPageTranslatedChanged() = 0;
26
27   // Gets the LanguageState associated with the driver.
28   virtual LanguageState& GetLanguageState() = 0;
29
30   // Translates the page contents from |source_lang| to |target_lang|.
31   virtual void TranslatePage(const std::string& translate_script,
32                              const std::string& source_lang,
33                              const std::string& target_lang) = 0;
34
35   // Reverts the contents of the page to its original language.
36   virtual void RevertTranslation() = 0;
37
38   // Returns whether the user is currently operating in off-the-record mode.
39   virtual bool IsOffTheRecord() = 0;
40
41   // Returns the mime type of the current page.
42   virtual const std::string& GetContentsMimeType() = 0;
43
44   // Returns the last committed URL, or an empty GURL if there is no committed
45   // URL.
46   virtual const GURL& GetLastCommittedURL() = 0;
47
48   // Returns the active URL, or an empty GURL if there is no active URL.
49   virtual const GURL& GetActiveURL() = 0;
50
51   // Returns the visible URL, or an empty GURL if there is no visible URL.
52   virtual const GURL& GetVisibleURL() = 0;
53
54   // Returns whether the driver has access to the current page.
55   virtual bool HasCurrentPage() = 0;
56
57   // Returns an int identifying the current page. Should only be called if
58   // |HasCurrentPage()| is true.
59   virtual int GetCurrentPageID() = 0;
60 };
61
62 #endif  // COMPONENTS_TRANSLATE_CORE_BROWSER_TRANSLATE_DRIVER_H_