Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 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 replay_server | |
| 4 import os | 5 import os |
| 5 import time | 6 import time |
| 6 import urlparse | 7 import urlparse |
| 7 | 8 |
| 8 class PageRunner(object): | 9 class PageRunner(object): |
| 9 def __init__(self, page_set): | 10 def __init__(self, page_set, options): |
|
nduca
2012/09/21 06:35:50
I'm hoping once we allow the page runner to contro
tonyg
2012/09/25 17:29:29
Thinking about this more, record.py vs --record ju
| |
| 10 self.page_set = page_set | 11 self.page_set = page_set |
| 11 self._server = None | 12 self._server = None |
| 13 self._replay_server = replay_server.ReplayServer(page_set.archive_path, | |
| 14 options.record) | |
| 12 | 15 |
| 13 def __del__(self): | 16 def __del__(self): |
| 14 self.Close() | 17 self.Close() |
| 15 | 18 |
| 16 def Close(self): | 19 def Close(self): |
| 17 if self._server: | 20 if self._server: |
| 18 self._server.Close() | 21 self._server.Close() |
| 19 self._server = None | 22 self._server = None |
| 23 if self._replay_server: | |
| 24 self._replay_server.Close() | |
| 25 self._replay_server = None | |
| 20 | 26 |
| 21 def PreparePage(self, page, tab): | 27 def PreparePage(self, page, tab): |
| 22 parsed_url = urlparse.urlparse(page.url) | 28 parsed_url = urlparse.urlparse(page.url) |
| 23 if parsed_url[0] == 'file': | 29 if parsed_url[0] == 'file': |
| 24 path = os.path.join(self.page_set.file_path, parsed_url[2]) | 30 path = os.path.join(self.page_set.file_path, parsed_url[2]) |
| 25 dirname, filename = os.path.split(path) | 31 dirname, filename = os.path.split(path) |
| 26 if self._server and self._server.path != dirname: | 32 if self._server and self._server.path != dirname: |
| 27 self._server.Close() | 33 self._server.Close() |
| 28 self._server = None | 34 self._server = None |
| 29 if not self._server: | 35 if not self._server: |
| 30 self._server = tab.browser.CreateTemporaryHTTPServer(dirname) | 36 self._server = tab.browser.CreateTemporaryHTTPServer(dirname) |
| 31 page.url = self._server.UrlOf(filename) | 37 page.url = self._server.UrlOf(filename) |
| 32 | 38 |
| 33 tab.page.Navigate(page.url) | 39 tab.page.Navigate(page.url) |
| 34 # TODO(dtu): Detect HTTP redirects. | 40 # TODO(dtu): Detect HTTP redirects. |
| 35 if page.wait_time_after_navigate: | 41 if page.wait_time_after_navigate: |
| 36 # Wait for unpredictable redirects. | 42 # Wait for unpredictable redirects. |
| 37 time.sleep(page.wait_time_after_navigate) | 43 time.sleep(page.wait_time_after_navigate) |
| 38 tab.WaitForDocumentReadyStateToBeInteractiveOrBetter() | 44 tab.WaitForDocumentReadyStateToBeInteractiveOrBetter() |
| 39 | 45 |
| 40 def CleanUpPage(self): | 46 def CleanUpPage(self): |
| 41 pass | 47 pass |
| OLD | NEW |