blob: 83a6065a125e78fedac93ca17537854355381e05 [file] [log] [blame]
// Copyright 2013 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_IOS_BROWSER_JS_LANGUAGE_DETECTION_MANAGER_H_
#define COMPONENTS_TRANSLATE_IOS_BROWSER_JS_LANGUAGE_DETECTION_MANAGER_H_
#import <Foundation/Foundation.h>
#include <stddef.h>
#include "base/callback_forward.h"
#include "base/strings/string16.h"
#import "ios/web/public/web_state/js/crw_js_injection_manager.h"
namespace language_detection {
// Maximum length of the extracted text returned by |-extractTextContent|.
// Matches desktop implementation.
extern const size_t kMaxIndexChars;
// Type for the callback called when the buffered text is retrieved.
using BufferedTextCallback = base::Callback<void(const base::string16&)>;
} // namespace language_detection
// JsLanguageDetectionManager manages the scripts related to language detection.
@interface JsLanguageDetectionManager : CRWJSInjectionManager
// Retrieves the cached text content of the page from the JS side. Calls
// |callback| with the page's text contents. The cache is purged on the JS side
// after this call. |callback| must be non null.
- (void)retrieveBufferedTextContent:
(const language_detection::BufferedTextCallback&)callback;
// Starts detecting the language of the page.
- (void)startLanguageDetection;
@end
#endif // COMPONENTS_TRANSLATE_IOS_BROWSER_JS_LANGUAGE_DETECTION_MANAGER_H_