fune/devtools/client/responsive.html/utils/notification.js
yulia 139e4e0b9a Bug 1429421 - remove gcli code; r=jdescottes,julienw,ochameau
Remove remaining GCLI code

Differential Revision: https://phabricator.services.mozilla.com/D3618

--HG--
extra : moz-landing-system : lando
2018-09-06 08:55:50 +00:00

53 lines
1.9 KiB
JavaScript

/* 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";
loader.lazyRequireGetter(this, "TargetFactory", "devtools/client/framework/target", true);
loader.lazyRequireGetter(this, "gDevTools", "devtools/client/framework/devtools", true);
/**
* Displays a notification either at the browser or toolbox level, depending on whether
* a toolbox is currently open for this tab.
*
* @param window
* The main browser chrome window.
* @param tab
* The browser tab.
* @param options
* Other options associated with opening. Currently includes:
* - `toolbox`: Whether initiated via toolbox button
* - `msg`: String to show in the notification
* - `priority`: Priority level for the notification, which affects the icon and
* overall appearance.
*/
function showNotification(window, tab, { toolboxButton, msg, priority } = {}) {
// Default to using the browser's per-tab notification box
let nbox = window.gBrowser.getNotificationBox(tab.linkedBrowser);
// If opening was initiated by a toolbox button, check for an open
// toolbox for the tab. If one exists, use the toolbox's notification box so that the
// message is placed closer to the action taken by the user.
if (toolboxButton) {
const target = TargetFactory.forTab(tab);
const toolbox = gDevTools.getToolbox(target);
if (toolbox) {
nbox = toolbox.notificationBox;
}
}
const value = "devtools-responsive";
if (nbox.getNotificationWithValue(value)) {
// Notification already displayed
return;
}
if (!priority) {
priority = nbox.PRIORITY_INFO_MEDIUM;
}
nbox.appendNotification(msg, value, null, priority, []);
}
exports.showNotification = showNotification;