mirror of
https://github.com/internetarchive/brozzler.git
synced 2025-09-25 18:51:02 -04:00
create temp dir for user profile rather than rely on --temp-profile
This commit is contained in:
parent
b4846e1063
commit
b96d8856d4
1 changed files with 18 additions and 14 deletions
|
@ -12,6 +12,7 @@ import threading
|
||||||
import subprocess
|
import subprocess
|
||||||
import signal
|
import signal
|
||||||
from kombu import Connection, Exchange, Queue
|
from kombu import Connection, Exchange, Queue
|
||||||
|
import tempfile
|
||||||
|
|
||||||
class UmbraWorker:
|
class UmbraWorker:
|
||||||
logger = logging.getLogger('umbra.UmbraWorker')
|
logger = logging.getLogger('umbra.UmbraWorker')
|
||||||
|
@ -31,7 +32,8 @@ class UmbraWorker:
|
||||||
with self.lock:
|
with self.lock:
|
||||||
self.url = url
|
self.url = url
|
||||||
self.url_metadata = url_metadata
|
self.url_metadata = url_metadata
|
||||||
with Chrome(self.chrome_port, self.chrome_exe, self.chrome_wait) as websocket_url:
|
with tempfile.TemporaryDirectory() as user_data_dir:
|
||||||
|
with Chrome(self.chrome_port, self.chrome_exe, self.chrome_wait, user_data_dir) as websocket_url:
|
||||||
websock = websocket.WebSocketApp(websocket_url,
|
websock = websocket.WebSocketApp(websocket_url,
|
||||||
on_open=self.visit_page, on_message=self.handle_message)
|
on_open=self.visit_page, on_message=self.handle_message)
|
||||||
websock_thread = threading.Thread(target=websock.run_forever)
|
websock_thread = threading.Thread(target=websock.run_forever)
|
||||||
|
@ -159,10 +161,11 @@ class Umbra:
|
||||||
class Chrome:
|
class Chrome:
|
||||||
logger = logging.getLogger('umbra.Chrome')
|
logger = logging.getLogger('umbra.Chrome')
|
||||||
|
|
||||||
def __init__(self, port, executable, browser_wait):
|
def __init__(self, port, executable, browser_wait, user_data_dir):
|
||||||
self.port = port
|
self.port = port
|
||||||
self.executable = executable
|
self.executable = executable
|
||||||
self.browser_wait = browser_wait
|
self.browser_wait = browser_wait
|
||||||
|
self.user_data_dir = user_data_dir
|
||||||
|
|
||||||
def fetch_debugging_json():
|
def fetch_debugging_json():
|
||||||
raw_json = urllib.request.urlopen("http://localhost:%s/json" % self.port).read()
|
raw_json = urllib.request.urlopen("http://localhost:%s/json" % self.port).read()
|
||||||
|
@ -171,7 +174,8 @@ class Chrome:
|
||||||
|
|
||||||
# returns websocket url to chrome window with about:blank loaded
|
# returns websocket url to chrome window with about:blank loaded
|
||||||
def __enter__(self):
|
def __enter__(self):
|
||||||
chrome_args = [self.executable, "--temp-profile",
|
chrome_args = [self.executable,
|
||||||
|
"--user-data-dir={}".format(self.user_data_dir),
|
||||||
"--remote-debugging-port=%s" % self.port,
|
"--remote-debugging-port=%s" % self.port,
|
||||||
"--disable-web-sockets", "--disable-cache",
|
"--disable-web-sockets", "--disable-cache",
|
||||||
"--window-size=1100,900", "--enable-logging",
|
"--window-size=1100,900", "--enable-logging",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue