summaryrefslogtreecommitdiffstats
path: root/browser/extensions/webcompat/injections/js/bug1605611-maps.google.com-directions-time.js
blob: 7c2c9be7bc440597ec2e88953f6e482fe601191c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
"use strict";

/* globals exportFunction */

/**
 * Bug 1605611 - Cannot change Departure/arrival dates in Google Maps on Android
 *
 * This patch re-enables the disabled "Leave now" button.
 *
 * See https://bugzilla.mozilla.org/show_bug.cgi?id=1605611 for details.
 */

document.addEventListener("DOMContentLoaded", () => {
  // In case the element appeared before the MutationObserver was activated.
  for (const elem of document.querySelectorAll(".ml-icon-access-time")) {
    elem.parentNode.disabled = false;
  }
  // Start watching for the insertion of the "Leave now" button.
  const moOptions = {
    attributeFilter: ["disabled"],
    attributes: true,
    subtree: true,
  };
  const mo = new MutationObserver(function(records) {
    let restore = false;
    for (const { target } of records) {
      if (target.querySelector(".ml-icon-access-time")) {
        if (!restore) {
          restore = true;
          mo.disconnect();
        }

        target.disabled = false;
      }
    }
    if (restore) {
      mo.observe(document.body, moOptions);
    }
  });
  mo.observe(document.body, moOptions);
});