summaryrefslogtreecommitdiffstats
path: root/browser/extensions/webcompat/injections/js/bug1605611-maps.google.com-directions-time.js
blob: a068e8dcd5a4c499c51c5446f8311bb7a7359b7d (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
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

"use strict";

/**
 * 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=1800498 and
 *     https://bugzilla.mozilla.org/show_bug.cgi?id=1605611 for details.
 */

const selector =
  ".ml-directions-searchbox-parent [aria-haspopup=dialog][disabled=true]";

document.addEventListener("DOMContentLoaded", () => {
  // In case the element appeared before the MutationObserver was activated.
  for (const elem of document.querySelectorAll(selector)) {
    elem.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) {
    for (const { target } of records) {
      if (target.matches(selector)) {
        target.disabled = false;
      }
    }
  });
  mo.observe(document.body, moOptions);
});