blob: c56498bb232503297932ec56fb61e0a833ffedb2 [file] [log] [blame]
// Copyright 2014 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_TRANSLATE_CORE_BROWSER_TRANSLATE_DRIVER_H_
#define COMPONENTS_TRANSLATE_CORE_BROWSER_TRANSLATE_DRIVER_H_
#include <string>
class GURL;
// Interface that allows Translate core code to interact with its driver (i.e.,
// obtain information from it and give information to it). A concrete
// implementation must be provided by the driver.
class TranslateDriver {
public:
// Returns true if the current page was navigated through a link.
virtual bool IsLinkNavigation() = 0;
// Called when Translate is enabled or disabled.
virtual void OnTranslateEnabledChanged() = 0;
// Called when the page is "translated" state of the page changed.
virtual void OnIsPageTranslatedChanged() = 0;
// Translates the page contents from |source_lang| to |target_lang|.
virtual void TranslatePage(int page_seq_no,
const std::string& translate_script,
const std::string& source_lang,
const std::string& target_lang) = 0;
// Reverts the contents of the page to its original language.
virtual void RevertTranslation(int page_seq_no) = 0;
// Returns whether the user is currently operating in off-the-record mode.
virtual bool IsOffTheRecord() = 0;
// Returns the mime type of the current page.
virtual const std::string& GetContentsMimeType() = 0;
// Returns the last committed URL, or an empty GURL if there is no committed
// URL.
virtual const GURL& GetLastCommittedURL() = 0;
// Returns the active URL, or an empty GURL if there is no active URL.
virtual const GURL& GetActiveURL() = 0;
// Returns the visible URL, or an empty GURL if there is no visible URL.
virtual const GURL& GetVisibleURL() = 0;
// Returns whether the driver has access to the current page.
virtual bool HasCurrentPage() = 0;
// Opens |url| in a new tab.
virtual void OpenUrlInNewTab(const GURL& url) = 0;
};
#endif // COMPONENTS_TRANSLATE_CORE_BROWSER_TRANSLATE_DRIVER_H_