browser: revert eval_js

Signed-off-by: Mingde (Matthew) Zeng <matthewzmd@gmail.com>
master
Mingde (Matthew) Zeng 6 years ago
parent 072f71d72c
commit 74fbeea2eb
  1. 80
      core/browser.py

@ -317,13 +317,13 @@ class BrowserView(QWebEngineView):
''' Reset the magnification.''' ''' Reset the magnification.'''
self.setZoomFactor(float(self.buffer.emacs_var_dict["eaf-browser-default-zoom"])) self.setZoomFactor(float(self.buffer.emacs_var_dict["eaf-browser-default-zoom"]))
def _eval_js(self, js): def eval_js(self, js):
''' Run JavaScript.''' ''' Run JavaScript.'''
self.web_page.runJavaScript(js) self.web_page.runJavaScript(js)
def _eval_js_file(self, js_file): def eval_js_file(self, js_file):
''' Run JavaScript from JS file.''' ''' Run JavaScript from JS file.'''
self._eval_js(self.read_js_content(js_file)) self.eval_js(self.read_js_content(js_file))
def execute_js(self, js): def execute_js(self, js):
''' Execute JavaScript.''' ''' Execute JavaScript.'''
@ -332,42 +332,42 @@ class BrowserView(QWebEngineView):
@interactive(insert_or_do=True) @interactive(insert_or_do=True)
def scroll_left(self): def scroll_left(self):
''' Scroll to left side.''' ''' Scroll to left side.'''
self._eval_js("document.scrollingElement.scrollBy(-35, 0)") self.eval_js("document.scrollingElement.scrollBy(-35, 0)")
@interactive(insert_or_do=True) @interactive(insert_or_do=True)
def scroll_right(self): def scroll_right(self):
''' Scroll to right side.''' ''' Scroll to right side.'''
self._eval_js("document.scrollingElement.scrollBy(35, 0)") self.eval_js("document.scrollingElement.scrollBy(35, 0)")
@interactive(insert_or_do=True) @interactive(insert_or_do=True)
def scroll_up(self): def scroll_up(self):
''' Scroll up.''' ''' Scroll up.'''
self._eval_js("document.scrollingElement.scrollBy(0, 50)") self.eval_js("document.scrollingElement.scrollBy(0, 50)")
@interactive(insert_or_do=True) @interactive(insert_or_do=True)
def scroll_down(self): def scroll_down(self):
''' Scroll down.''' ''' Scroll down.'''
self._eval_js("document.scrollingElement.scrollBy(0, -50)") self.eval_js("document.scrollingElement.scrollBy(0, -50)")
@interactive(insert_or_do=True) @interactive(insert_or_do=True)
def scroll_up_page(self): def scroll_up_page(self):
''' Scroll up a page.''' ''' Scroll up a page.'''
self._eval_js("document.scrollingElement.scrollBy({left: 0, top: window.innerHeight/2, behavior: '" + self.buffer.emacs_var_dict["eaf-browser-scroll-behavior"] + "'})") self.eval_js("document.scrollingElement.scrollBy({left: 0, top: window.innerHeight/2, behavior: '" + self.buffer.emacs_var_dict["eaf-browser-scroll-behavior"] + "'})")
@interactive(insert_or_do=True) @interactive(insert_or_do=True)
def scroll_down_page(self): def scroll_down_page(self):
''' Scroll down a page.''' ''' Scroll down a page.'''
self._eval_js("document.scrollingElement.scrollBy({left: 0, top: -window.innerHeight/2, behavior: '" + self.buffer.emacs_var_dict["eaf-browser-scroll-behavior"] + "'})") self.eval_js("document.scrollingElement.scrollBy({left: 0, top: -window.innerHeight/2, behavior: '" + self.buffer.emacs_var_dict["eaf-browser-scroll-behavior"] + "'})")
@interactive(insert_or_do=True) @interactive(insert_or_do=True)
def scroll_to_begin(self): def scroll_to_begin(self):
''' Scroll to the beginning.''' ''' Scroll to the beginning.'''
self._eval_js("document.scrollingElement.scrollTo({left: 0, top: 0, behavior: '" + self.buffer.emacs_var_dict["eaf-browser-scroll-behavior"] + "'})") self.eval_js("document.scrollingElement.scrollTo({left: 0, top: 0, behavior: '" + self.buffer.emacs_var_dict["eaf-browser-scroll-behavior"] + "'})")
@interactive(insert_or_do=True) @interactive(insert_or_do=True)
def scroll_to_bottom(self): def scroll_to_bottom(self):
''' Scroll to the bottom.''' ''' Scroll to the bottom.'''
self._eval_js("document.scrollingElement.scrollTo({left: 0, top: document.body.scrollHeight, behavior: '" + self.buffer.emacs_var_dict["eaf-browser-scroll-behavior"] + "'})") self.eval_js("document.scrollingElement.scrollTo({left: 0, top: document.body.scrollHeight, behavior: '" + self.buffer.emacs_var_dict["eaf-browser-scroll-behavior"] + "'})")
@interactive() @interactive()
def get_selection_text(self): def get_selection_text(self):
@ -418,12 +418,12 @@ class BrowserView(QWebEngineView):
def select_all(self): def select_all(self):
''' Select all text.''' ''' Select all text.'''
# We need window focus before select all text. # We need window focus before select all text.
self._eval_js("window.focus()") self.eval_js("window.focus()")
self.triggerPageAction(self.web_page.SelectAll) self.triggerPageAction(self.web_page.SelectAll)
def select_input_text(self): def select_input_text(self):
''' Select input text.''' ''' Select input text.'''
self._eval_js(self.select_input_text_js) self.eval_js(self.select_input_text_js)
@interactive() @interactive()
def get_url(self): def get_url(self):
@ -432,16 +432,16 @@ class BrowserView(QWebEngineView):
def cleanup_links(self): def cleanup_links(self):
''' Clean up links.''' ''' Clean up links.'''
self._eval_js("document.querySelector('.eaf-marker-container').remove();") self.eval_js("document.querySelector('.eaf-marker-container').remove();")
self._eval_js("document.querySelector('.eaf-style').remove();") self.eval_js("document.querySelector('.eaf-style').remove();")
def get_link_markers(self): def get_link_markers(self):
''' Get link markers.''' ''' Get link markers.'''
self._eval_js("Marker.generateMarker('a, input, button, [class*=\"btn\"], [aria-haspopup], [role=\"button\"], textarea, select, summary, [class=\"gap\"], [ng-click]')") self.eval_js("Marker.generateMarker('a, input, button, [class*=\"btn\"], [aria-haspopup], [role=\"button\"], textarea, select, summary, [class=\"gap\"], [ng-click]')")
def get_text_markers(self): def get_text_markers(self):
''' Get visiable text markers.''' ''' Get visiable text markers.'''
self._eval_js("Marker.generateMarker(Marker.generateTextNodeMarker)"); self.eval_js("Marker.generateMarker(Marker.generateTextNodeMarker)");
def get_marker_link(self, marker): def get_marker_link(self, marker):
''' Get marker's link.''' ''' Get marker's link.'''
@ -478,7 +478,7 @@ class BrowserView(QWebEngineView):
def get_code_markers(self): def get_code_markers(self):
''' Get the code markers.''' ''' Get the code markers.'''
self._eval_js("Marker.generateMarker('pre')") self.eval_js("Marker.generateMarker('pre')")
def get_code_content(self, marker): def get_code_content(self, marker):
''' Get the code content according to marker.''' ''' Get the code content according to marker.'''
@ -491,7 +491,7 @@ class BrowserView(QWebEngineView):
self.execute_js("Marker.gotoMarker('%s', (e) => window.getSelection().collapse(e, 0))" % str(marker)) self.execute_js("Marker.gotoMarker('%s', (e) => window.getSelection().collapse(e, 0))" % str(marker))
self.cleanup_links() self.cleanup_links()
self._eval_js("CaretBrowsing.setInitialCursor(true);") self.eval_js("CaretBrowsing.setInitialCursor(true);")
self.buffer.caret_browsing_mode = True self.buffer.caret_browsing_mode = True
self.buffer.eval_in_emacs.emit('''(eaf--toggle-caret-browsing %s)''' % ("t" if self.buffer.caret_browsing_mode else "nil")) self.buffer.eval_in_emacs.emit('''(eaf--toggle-caret-browsing %s)''' % ("t" if self.buffer.caret_browsing_mode else "nil"))
@ -515,7 +515,7 @@ class BrowserView(QWebEngineView):
def set_focus_text(self, new_text): def set_focus_text(self, new_text):
''' Set the focus text.''' ''' Set the focus text.'''
self.set_focus_text_js = self.set_focus_text_raw.replace("%1", string_to_base64(new_text)); self.set_focus_text_js = self.set_focus_text_raw.replace("%1", string_to_base64(new_text));
self._eval_js(self.set_focus_text_js) self.eval_js(self.set_focus_text_js)
@interactive(insert_or_do=True) @interactive(insert_or_do=True)
def focus_input(self): def focus_input(self):
@ -525,12 +525,12 @@ class BrowserView(QWebEngineView):
@interactive() @interactive()
def clear_focus(self): def clear_focus(self):
''' Clear the focus.''' ''' Clear the focus.'''
self._eval_js(self.clear_focus_js) self.eval_js(self.clear_focus_js)
@interactive() @interactive()
def dark_mode(self): def dark_mode(self):
''' Dark mode support.''' ''' Dark mode support.'''
self._eval_js(self.dark_mode_js) self.eval_js(self.dark_mode_js)
class BrowserPage(QWebEnginePage): class BrowserPage(QWebEnginePage):
def __init__(self): def __init__(self):
@ -824,7 +824,7 @@ class BrowserBuffer(Buffer):
self.update() self.update()
elif progress == 100 and self.draw_progressbar: elif progress == 100 and self.draw_progressbar:
self.init_auto_fill() self.init_auto_fill()
self.buffer_widget._eval_js(self.buffer_widget.marker_js_raw.replace("%1", self.emacs_var_dict["eaf-marker-letters"])) self.buffer_widget.eval_js(self.buffer_widget.marker_js_raw.replace("%1", self.emacs_var_dict["eaf-marker-letters"]))
cursor_foreground_color = "" cursor_foreground_color = ""
cursor_background_color = "" cursor_background_color = ""
@ -845,7 +845,7 @@ class BrowserBuffer(Buffer):
cursor_background_color = "#FFF" cursor_background_color = "#FFF"
self.caret_browsing_js = self.buffer_widget.caret_browsing_js_raw.replace("%1", cursor_foreground_color).replace("%2", cursor_background_color) self.caret_browsing_js = self.buffer_widget.caret_browsing_js_raw.replace("%1", cursor_foreground_color).replace("%2", cursor_background_color)
self.buffer_widget._eval_js(self.caret_browsing_js) self.buffer_widget.eval_js(self.caret_browsing_js)
self.eval_caret_js = True self.eval_caret_js = True
if self.emacs_var_dict["eaf-browser-enable-adblocker"] == "true": if self.emacs_var_dict["eaf-browser-enable-adblocker"] == "true":
@ -975,9 +975,9 @@ class BrowserBuffer(Buffer):
elif callback_tag == "copy_link": elif callback_tag == "copy_link":
self.buffer_widget._copy_link(result_content.strip()) self.buffer_widget._copy_link(result_content.strip())
elif callback_tag == "eval_js_file": elif callback_tag == "eval_js_file":
self.buffer_widget._eval_js_file(result_content) self.buffer_widget.eval_js_file(result_content)
elif callback_tag == "eval_js": elif callback_tag == "eval_js":
self.buffer_widget._eval_js(result_content) self.buffer_widget.eval_js(result_content)
elif callback_tag == "save_as_pdf": elif callback_tag == "save_as_pdf":
self._save_as_pdf() self._save_as_pdf()
elif callback_tag == "save_as_single_file": elif callback_tag == "save_as_single_file":
@ -1029,11 +1029,11 @@ class BrowserBuffer(Buffer):
''' Init caret browsing.''' ''' Init caret browsing.'''
if self.eval_caret_js: if self.eval_caret_js:
if self.caret_browsing_mode: if self.caret_browsing_mode:
self.buffer_widget._eval_js("CaretBrowsing.shutdown();") self.buffer_widget.eval_js("CaretBrowsing.shutdown();")
self.message_to_emacs.emit("Caret browsing deactivated.") self.message_to_emacs.emit("Caret browsing deactivated.")
self.caret_browsing_mode = False self.caret_browsing_mode = False
else: else:
self.buffer_widget._eval_js("CaretBrowsing.setInitialCursor();") self.buffer_widget.eval_js("CaretBrowsing.setInitialCursor();")
self.message_to_emacs.emit("Caret browsing activated.") self.message_to_emacs.emit("Caret browsing activated.")
self.caret_browsing_mode = True self.caret_browsing_mode = True
self.eval_in_emacs.emit('''(eaf--toggle-caret-browsing %s)''' % ("t" if self.caret_browsing_mode else "nil")) self.eval_in_emacs.emit('''(eaf--toggle-caret-browsing %s)''' % ("t" if self.caret_browsing_mode else "nil"))
@ -1050,74 +1050,74 @@ class BrowserBuffer(Buffer):
def caret_next_sentence(self): def caret_next_sentence(self):
''' Switch to next line in caret browsing.''' ''' Switch to next line in caret browsing.'''
if self.caret_browsing_mode: if self.caret_browsing_mode:
self.buffer_widget._eval_js("CaretBrowsing.move('forward', 'sentence');") self.buffer_widget.eval_js("CaretBrowsing.move('forward', 'sentence');")
@interactive() @interactive()
def caret_previous_sentence(self): def caret_previous_sentence(self):
''' Switch to previous line in caret browsing.''' ''' Switch to previous line in caret browsing.'''
if self.caret_browsing_mode: if self.caret_browsing_mode:
self.buffer_widget._eval_js("CaretBrowsing.move('backward', 'sentence');") self.buffer_widget.eval_js("CaretBrowsing.move('backward', 'sentence');")
@interactive() @interactive()
def caret_next_line(self): def caret_next_line(self):
''' Switch to next line in caret browsing.''' ''' Switch to next line in caret browsing.'''
if self.caret_browsing_mode: if self.caret_browsing_mode:
self.buffer_widget._eval_js("CaretBrowsing.move('forward', 'line');") self.buffer_widget.eval_js("CaretBrowsing.move('forward', 'line');")
@interactive() @interactive()
def caret_previous_line(self): def caret_previous_line(self):
''' Switch to previous line in caret browsing.''' ''' Switch to previous line in caret browsing.'''
if self.caret_browsing_mode: if self.caret_browsing_mode:
self.buffer_widget._eval_js("CaretBrowsing.move('backward', 'line');") self.buffer_widget.eval_js("CaretBrowsing.move('backward', 'line');")
@interactive() @interactive()
def caret_next_character(self): def caret_next_character(self):
''' Switch to next character in caret browsing.''' ''' Switch to next character in caret browsing.'''
if self.caret_browsing_mode: if self.caret_browsing_mode:
self.buffer_widget._eval_js("CaretBrowsing.move('forward', 'character');") self.buffer_widget.eval_js("CaretBrowsing.move('forward', 'character');")
@interactive() @interactive()
def caret_previous_character(self): def caret_previous_character(self):
''' Switch to previous character in caret browsing.''' ''' Switch to previous character in caret browsing.'''
if self.caret_browsing_mode: if self.caret_browsing_mode:
self.buffer_widget._eval_js("CaretBrowsing.move('backward', 'character');") self.buffer_widget.eval_js("CaretBrowsing.move('backward', 'character');")
@interactive() @interactive()
def caret_next_word(self): def caret_next_word(self):
''' Switch to next word in caret browsing.''' ''' Switch to next word in caret browsing.'''
if self.caret_browsing_mode: if self.caret_browsing_mode:
self.buffer_widget._eval_js("CaretBrowsing.move('forward', 'word');") self.buffer_widget.eval_js("CaretBrowsing.move('forward', 'word');")
@interactive() @interactive()
def caret_previous_word(self): def caret_previous_word(self):
''' Switch to previous word in caret browsing.''' ''' Switch to previous word in caret browsing.'''
if self.caret_browsing_mode: if self.caret_browsing_mode:
self.buffer_widget._eval_js("CaretBrowsing.move('backward', 'word');") self.buffer_widget.eval_js("CaretBrowsing.move('backward', 'word');")
@interactive() @interactive()
def caret_to_bottom(self): def caret_to_bottom(self):
''' Switch to next word in caret browsing.''' ''' Switch to next word in caret browsing.'''
if self.caret_browsing_mode: if self.caret_browsing_mode:
self.buffer_widget._eval_js("CaretBrowsing.move('forward', 'documentboundary');") self.buffer_widget.eval_js("CaretBrowsing.move('forward', 'documentboundary');")
@interactive() @interactive()
def caret_to_top(self): def caret_to_top(self):
''' Switch to previous word in caret browsing.''' ''' Switch to previous word in caret browsing.'''
if self.caret_browsing_mode: if self.caret_browsing_mode:
self.buffer_widget._eval_js("CaretBrowsing.move('backward', 'documentboundary');") self.buffer_widget.eval_js("CaretBrowsing.move('backward', 'documentboundary');")
@interactive() @interactive()
def caret_rotate_selection(self): def caret_rotate_selection(self):
''' Rotate selection.''' ''' Rotate selection.'''
if self.caret_browsing_mode: if self.caret_browsing_mode:
if self.caret_browsing_mark_activated: if self.caret_browsing_mark_activated:
self.buffer_widget._eval_js("CaretBrowsing.rotateSelection();") self.buffer_widget.eval_js("CaretBrowsing.rotateSelection();")
@interactive() @interactive()
def caret_toggle_mark(self): def caret_toggle_mark(self):
''' Toggle mark in caret browsing.''' ''' Toggle mark in caret browsing.'''
if self.caret_browsing_mode: if self.caret_browsing_mode:
self.buffer_widget._eval_js("CaretBrowsing.toggleMark();") self.buffer_widget.eval_js("CaretBrowsing.toggleMark();")
if self.buffer_widget.execute_js("CaretBrowsing.markEnabled"): if self.buffer_widget.execute_js("CaretBrowsing.markEnabled"):
self.caret_browsing_mark_activated = True self.caret_browsing_mark_activated = True
self.message_to_emacs.emit("Caret Mark set") self.message_to_emacs.emit("Caret Mark set")

Loading…
Cancel
Save