| // Copyright 2018 Google. All rights reserved. Use of this source code is |
| // governed by a BSD-style license that can be found in the LICENSE file. |
| |
| import 'dart:async'; |
| |
| import '../webkit_inspection_protocol.dart'; |
| |
| class WipTarget extends WipDomain { |
| WipTarget(WipConnection connection) : super(connection); |
| |
| /// Creates a new page. |
| /// |
| /// [url] The initial URL the page will be navigated to. |
| /// |
| /// Returns the targetId of the page opened. |
| Future<String> createTarget(String url) async { |
| WipResponse response = |
| await sendCommand('Target.createTarget', params: {'url': url}); |
| return response.result['targetId']; |
| } |
| |
| /// Activates (focuses) the target. |
| Future activateTarget(String targetId) => |
| sendCommand('Target.activateTarget', params: {'targetId': targetId}); |
| |
| /// Closes the target. If the target is a page that gets closed too. |
| /// |
| /// Returns `true` on success. |
| Future<bool> closeTarget(String targetId) async { |
| WipResponse response = |
| await sendCommand('Target.closeTarget', params: {'targetId': targetId}); |
| return response.result['success']; |
| } |
| |
| /// Inject object to the target's main frame that provides a communication |
| /// channel with browser target. Injected object will be available as |
| /// `window[bindingName]`. The object has the following API: |
| /// |
| /// - binding.send(json) - a method to send messages over the remote |
| /// debugging protocol |
| /// - binding.onmessage = json => handleMessage(json) - a callback that will |
| /// be called for the protocol notifications and command responses. |
| @experimental |
| Future<void> exposeDevToolsProtocol( |
| String targetId, { |
| String bindingName, |
| }) async { |
| final Map<String, dynamic> params = {'targetId': targetId}; |
| if (bindingName != null) { |
| params['bindingName'] = bindingName; |
| } |
| final WipResponse response = await sendCommand( |
| 'Target.exposeDevToolsProtocol', |
| params: params, |
| ); |
| dynamic foo = await response.result['targetId']; |
| print(foo); |
| } |
| } |