133259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck# Copyright 2012 The Chromium Authors. All rights reserved. 233259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck# Use of this source code is governed by a BSD-style license that can be 333259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck# found in the LICENSE file. 433259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck 533259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reckfrom py_trace_event import trace_event 633259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck 733259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck 833259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reckclass AppBackend(object): 933259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck 1033259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck __metaclass__ = trace_event.TracedMetaClass 1133259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck 1233259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck def __init__(self, app_type, platform_backend): 1333259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck super(AppBackend, self).__init__() 1433259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck self._app = None 1533259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck self._app_type = app_type 1633259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck self._platform_backend = platform_backend 1733259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck 1833259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck def __del__(self): 1933259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck self.Close() 2033259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck 2133259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck def SetApp(self, app): 2233259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck self._app = app 2333259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck 2433259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck @property 2533259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck def app(self): 2633259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck return self._app 2733259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck 2833259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck @property 2933259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck def app_type(self): 3033259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck return self._app_type 3133259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck 3233259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck @property 3333259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck def pid(self): 3433259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck raise NotImplementedError 3533259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck 3633259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck @property 3733259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck def platform_backend(self): 3833259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck return self._platform_backend 3933259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck 4033259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck def Start(self): 4133259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck raise NotImplementedError 4233259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck 4333259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck def Foreground(self): 4433259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck # TODO(catapult:#2194): Remove the unnecessary pass below when the method 4533259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck # has been implemented on all concrete subclasses. 4633259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck pass # pylint: disable=unnecessary-pass 4733259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck raise NotImplementedError 4833259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck 4933259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck def Background(self): 5033259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck raise NotImplementedError 5133259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck 5233259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck def Close(self): 5333259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck raise NotImplementedError 5433259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck 5533259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck def IsAppRunning(self): 5633259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck raise NotImplementedError 5733259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck 5833259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck def GetStandardOutput(self): 5933259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck raise NotImplementedError 6033259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck 6133259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck def GetStackTrace(self): 6233259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck raise NotImplementedError 6333259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck 6433259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck def GetMostRecentMinidumpPath(self): 6533259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck raise NotImplementedError 66