| Index: tools/telemetry/telemetry/internal/backends/chrome/desktop_browser_backend.py
|
| diff --git a/tools/telemetry/telemetry/internal/backends/chrome/desktop_browser_backend.py b/tools/telemetry/telemetry/internal/backends/chrome/desktop_browser_backend.py
|
| index 603e769910b1e1e9c481cff88330c6a4017c3449..041de993f34800825391013ba347014e0fc14f96 100644
|
| --- a/tools/telemetry/telemetry/internal/backends/chrome/desktop_browser_backend.py
|
| +++ b/tools/telemetry/telemetry/internal/backends/chrome/desktop_browser_backend.py
|
| @@ -34,6 +34,23 @@ def ParseCrashpadDateTime(date_time_str):
|
| return datetime.datetime.strptime(date_time_str, '%Y-%m-%d %H:%M:%S')
|
|
|
|
|
| +def GetSymbolBinary(executable, os_name):
|
| + # Returns binary file where symbols are located.
|
| + if os_name == 'mac':
|
| + version_dir = os.path.join(os.path.dirname(executable),
|
| + '..',
|
| + 'Versions')
|
| + for version_num in os.listdir(version_dir):
|
| + framework_file = os.path.join(version_dir,
|
| + version_num,
|
| + 'Chromium Framework.framework',
|
| + 'Chromium Framework')
|
| + if os.path.isfile(framework_file):
|
| + return framework_file
|
| +
|
| + return executable
|
| +
|
| +
|
| class DesktopBrowserBackend(chrome_browser_backend.ChromeBrowserBackend):
|
| """The backend for controlling a locally-executed browser instance, on Linux,
|
| Mac or Windows.
|
| @@ -453,7 +470,8 @@ class DesktopBrowserBackend(chrome_browser_backend.ChromeBrowserBackend):
|
| cmd = [
|
| sys.executable,
|
| generate_breakpad_symbols_command,
|
| - '--binary=%s' % self._executable,
|
| + '--binary=%s' % GetSymbolBinary(self._executable,
|
| + self.browser.platform.GetOSName()),
|
| '--symbols-dir=%s' % symbols_path,
|
| '--build-dir=%s' % self._browser_directory,
|
| ]
|
|
|