1# Copyright 2015 The Chromium OS Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5"""An interface to access the local browser facade."""
6
7import logging
8
9class BrowserFacadeNativeError(Exception):
10    """Error in BrowserFacadeNative."""
11    pass
12
13
14class BrowserFacadeNative(object):
15    """Facade to access the browser-related functionality."""
16    def __init__(self, resource):
17        """Initializes the USB facade.
18
19        @param resource: A FacadeResource object.
20
21        """
22        self._resource = resource
23
24
25    def new_tab(self, url):
26        """Opens a new tab and loads URL.
27
28        @param url: The URL to load.
29        @return a str, the tab descriptor of the opened tab.
30
31        """
32        logging.debug('Load URL %s', url)
33        return self._resource.load_url(url)
34
35
36    def close_tab(self, tab_descriptor):
37        """Closes a previously opened tab.
38
39        @param tab_descriptor: Indicate which tab to be closed.
40
41        """
42        tab = self._resource.get_tab_by_descriptor(tab_descriptor)
43        logging.debug('Closing URL %s', tab.url)
44        self._resource.close_tab(tab_descriptor)
45