| OLD | NEW |
| 1 # Copyright 2012 The Chromium Authors. All rights reserved. | 1 # Copyright 2012 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 import inspect | 4 import inspect |
| 5 import logging | 5 import logging |
| 6 import os | 6 import os |
| 7 import urlparse | 7 import urlparse |
| 8 | 8 |
| 9 from telemetry import user_story | 9 from telemetry import user_story |
| 10 from telemetry.page import shared_page_state | |
| 11 from telemetry.util import cloud_storage | 10 from telemetry.util import cloud_storage |
| 12 from telemetry.util import path | 11 from telemetry.util import path |
| 13 | 12 |
| 14 | 13 |
| 15 def _UpdateCredentials(credentials_path): | 14 def _UpdateCredentials(credentials_path): |
| 16 # Attempt to download the credentials file. | 15 # Attempt to download the credentials file. |
| 17 try: | 16 try: |
| 18 cloud_storage.GetIfChanged(credentials_path) | 17 cloud_storage.GetIfChanged(credentials_path) |
| 19 except (cloud_storage.CredentialsError, cloud_storage.PermissionError, | 18 except (cloud_storage.CredentialsError, cloud_storage.PermissionError, |
| 20 cloud_storage.CloudStorageError) as e: | 19 cloud_storage.CloudStorageError) as e: |
| 21 logging.warning('Cannot retrieve credential file %s due to cloud storage ' | 20 logging.warning('Cannot retrieve credential file %s due to cloud storage ' |
| 22 'error %s', credentials_path, str(e)) | 21 'error %s', credentials_path, str(e)) |
| 23 | 22 |
| 24 | 23 |
| 25 class Page(user_story.UserStory): | 24 class Page(user_story.UserStory): |
| 26 def __init__(self, url, page_set=None, base_dir=None, name='', | 25 def __init__(self, url, page_set=None, base_dir=None, name='', |
| 27 credentials_path=None, labels=None): | 26 credentials_path=None, labels=None): |
| 28 super(Page, self).__init__(shared_page_state.SharedPageState, name, labels) | 27 super(Page, self).__init__(name, labels) |
| 29 self._url = url | 28 self._url = url |
| 30 self._page_set = page_set | 29 self._page_set = page_set |
| 31 # Default value of base_dir is the directory of the file that defines the | 30 # Default value of base_dir is the directory of the file that defines the |
| 32 # class of this page instance. | 31 # class of this page instance. |
| 33 if base_dir is None: | 32 if base_dir is None: |
| 34 base_dir = os.path.dirname(inspect.getfile(self.__class__)) | 33 base_dir = os.path.dirname(inspect.getfile(self.__class__)) |
| 35 self._base_dir = base_dir | 34 self._base_dir = base_dir |
| 36 self._name = name | 35 self._name = name |
| 37 if credentials_path: | 36 if credentials_path: |
| 38 credentials_path = os.path.join(self._base_dir, credentials_path) | 37 credentials_path = os.path.join(self._base_dir, credentials_path) |
| (...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 193 return self.name | 192 return self.name |
| 194 if not self.is_file: | 193 if not self.is_file: |
| 195 return self.url | 194 return self.url |
| 196 all_urls = [p.url.rstrip('/') for p in self.page_set if p.is_file] | 195 all_urls = [p.url.rstrip('/') for p in self.page_set if p.is_file] |
| 197 common_prefix = os.path.dirname(os.path.commonprefix(all_urls)) | 196 common_prefix = os.path.dirname(os.path.commonprefix(all_urls)) |
| 198 return self.url[len(common_prefix):].strip('/') | 197 return self.url[len(common_prefix):].strip('/') |
| 199 | 198 |
| 200 @property | 199 @property |
| 201 def archive_path(self): | 200 def archive_path(self): |
| 202 return self.page_set.WprFilePathForPage(self) | 201 return self.page_set.WprFilePathForPage(self) |
| OLD | NEW |