// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef IOS_WEB_TEST_JS_TEST_UTIL_INTERNAL_H_
#define IOS_WEB_TEST_JS_TEST_UTIL_INTERNAL_H_
#import <Foundation/Foundation.h>
#import <WebKit/WebKit.h>
namespace web {
namespace test {
// Synchronously executes `script` in `content_world` and returns result.
// NOTE: Generally, tests should not deal with raw WKContentWorlds. Instead,
// prefer specifying the associated JavaScriptFeature instance using
// WebTestWithWebState::ExecuteJavaScriptForFeature.
id ExecuteJavaScript(WKWebView* web_view,
WKContentWorld* content_world,
NSString* script);
// Executes `script` in `content_world` as an asynchronous JavaScript function,
// waits for execution to complete, and returns the result.
id ExecuteAsyncJavaScript(WKWebView* web_view,
WKContentWorld* content_world,
NSString* script);
} // namespace test
} // namespace web
#endif // IOS_WEB_TEST_JS_TEST_UTIL_INTERNAL_H_