// Copyright (c) 2011 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.
package org.chromium.sdk.internal.wip;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.util.List;
import org.chromium.sdk.Browser;
import org.chromium.sdk.wip.WipBackend;
import org.chromium.sdk.wip.WipBrowser;
import org.chromium.sdk.wip.WipBrowserFactory;
/**
* Implements {@link Browser} API that offers connection to a browser tab
* via WebInspector 'WIP' Protocol.
*/
public class WipBrowserImpl implements WipBrowser {
private final InetSocketAddress socketAddress;
private final WipBrowserFactory.LoggerFactory connectionLoggerFactory;
public WipBrowserImpl(InetSocketAddress socketAddress,
WipBrowserFactory.LoggerFactory connectionLoggerFactory) {
this.socketAddress = socketAddress;
this.connectionLoggerFactory = connectionLoggerFactory;
}
@Override
public List<? extends WipTabConnector> getTabs(WipBackend wipBackend) throws IOException {
WipBackendBase backendBase = WipBackendBase.castArgument(wipBackend);
return backendBase.getTabs(this);
}
public InetSocketAddress getSocketAddress() {
return socketAddress;
}
public WipBrowserFactory.LoggerFactory getConnectionLoggerFactory() {
return connectionLoggerFactory;
}
/**
* A convenience method for any currently unsupported operation. It nicely co-works with
* a return statements.
*/
public static <T> T throwUnsupported() {
throw new UnsupportedOperationException();
}
}