youtube-player.js: page-mode for controlling the youtube html5 player
[conkeror.git] / modules / page-modes / youtube-player.js
blobca3cda7b02fbe7e7b45d2554a626891b6bf2b082
1 /**
2  * (C) Copyright 2012 Scott Jaderholm
3  *
4  * Use, modification, and distribution are subject to the terms specified in the
5  * COPYING file.
6 **/
8 in_module(null);
10 require("content-buffer.js");
12 define_keymap("youtube_player_keymap", $display_name = "youtube-player");
14 function youtube_player_click_command (selector, error_message) {
15     return function (I) {
16         var buf = I.buffer;
17         var elem = buf.document.querySelector(selector);
18         if (elem)
19             dom_node_click(elem, 1, 1);
20         else
21             I.minibuffer.message(error_message + ", ensure html5 is enabled for youtube by visiting http://youtube.com/html5");
22     };
25 interactive("youtube-player-play-or-pause",
26     "Click the Youtube html5 player play/pause button.",
27     youtube_player_click_command("button.html5-pause-button, button.html5-play-button",
28                                  "No play or pause button found"));
30 interactive("youtube-player-mute",
31     "Click the Youtube html5 player mute button.",
32     youtube_player_click_command("button.html5-volume-button",
33                                  "No mute button found"));
35 interactive("youtube-player-fullscreen",
36     "Click the Youtube html5 player fullscreen button.",
37     youtube_player_click_command("button.html5-fullscreen-button",
38                                  "No fullscreen button found"));
40 define_key(youtube_player_keymap, "C-c return", "youtube-player-play-or-pause");
41 define_key(youtube_player_keymap, "C-c C-m", "youtube-player-mute");
42 define_key(youtube_player_keymap, "C-c C-f", "youtube-player-fullscreen");
44 define_keymaps_page_mode("youtube-player-mode",
45     build_url_regexp($domain = "youtube", $allow_www = true),
46     { normal: youtube_player_keymap },
47     $display_name = "Youtube-Player");
49 page_mode_activate(youtube_player_mode);
51 provide("youtube-player");