restore accidentally removed functionality handling page redirects and friends

This commit is contained in:
Noah Levitt 2016-11-08 18:17:48 -08:00
parent 054cb255ac
commit 8889e4ab20

View file

@ -343,8 +343,6 @@ __brzl_compileOutlinks(window).join(' ');
def callback(message): def callback(message):
if timer: if timer:
timer.cancel() timer.cancel()
if message["id"] in self._waiting_on_result_messages:
del self._waiting_on_result_messages[message["id"]]
if "callback" in chain[0]: if "callback" in chain[0]:
chain[0]["callback"](message) chain[0]["callback"](message)
self._chain_chrome_messages(chain[1:]) self._chain_chrome_messages(chain[1:])
@ -505,12 +503,19 @@ __brzl_compileOutlinks(window).join(' ');
self.on_response(message) self.on_response(message)
def _page_load_event_fired(self, message): def _page_load_event_fired(self, message):
def page_url_after_load_event(message):
if message["result"]["result"]["value"] != self.url:
if self.on_url_change:
self.on_url_change(message["result"]["result"]["value"])
msg_id = self.send_to_chrome(
method="Runtime.evaluate",
params={"expression":"document.URL"})
self._waiting_on_result_messages[msg_id] = page_url_after_load_event
self.logger.info("Page.loadEventFired, moving on to starting behaviors url={}".format(self.url)) self.logger.info("Page.loadEventFired, moving on to starting behaviors url={}".format(self.url))
self._behavior = Behavior(self.url, self) self._behavior = Behavior(self.url, self)
self._behavior.start(self.behavior_parameters) self._behavior.start(self.behavior_parameters)
self._waiting_on_document_url_msg_id = self.send_to_chrome(method="Runtime.evaluate", params={"expression":"document.URL"})
def _console_message_added(self, message): def _console_message_added(self, message):
self.logger.debug("%s console.%s %s", self._websock.url, self.logger.debug("%s console.%s %s", self._websock.url,
message["params"]["message"]["level"], message["params"]["message"]["level"],
@ -552,6 +557,7 @@ __brzl_compileOutlinks(window).join(' ');
elif "result" in message: elif "result" in message:
if message["id"] in self._waiting_on_result_messages: if message["id"] in self._waiting_on_result_messages:
callback = self._waiting_on_result_messages[message["id"]] callback = self._waiting_on_result_messages[message["id"]]
del self._waiting_on_result_messages[message["id"]]
self.logger.debug( self.logger.debug(
"received result for message id=%s, calling %s", "received result for message id=%s, calling %s",
message["id"], callback) message["id"], callback)