Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: notification.js

Issue 29570774: Issue 5593 - Merge notification.js and stats.js into popup.js (Closed) Base URL: https://hg.adblockplus.org/adblockpluschrome/
Patch Set: Created Oct. 9, 2017, 5:39 p.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: notification.js
===================================================================
deleted file mode 100644
--- a/notification.js
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * This file is part of Adblock Plus <https://adblockplus.org/>,
- * Copyright (C) 2006-present eyeo GmbH
- *
- * Adblock Plus is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 3 as
- * published by the Free Software Foundation.
- *
- * Adblock Plus is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/* global setPref */
-
-"use strict";
-
-function getDocLinks(notification)
-{
- if (!notification.links)
- return Promise.resolve([]);
-
- return Promise.all(
- notification.links.map(link =>
- {
- return new Promise((resolve, reject) =>
- {
- chrome.runtime.sendMessage({
- type: "app.get",
- what: "doclink",
- link
- }, resolve);
- });
- })
- );
-}
-
-function insertMessage(element, text, links)
-{
- let match = /^(.*?)<(a|strong)>(.*?)<\/\2>(.*)$/.exec(text);
- if (!match)
- {
- element.appendChild(document.createTextNode(text));
- return;
- }
-
- let before = match[1];
- let tagName = match[2];
- let value = match[3];
- let after = match[4];
-
- insertMessage(element, before, links);
-
- let newElement = document.createElement(tagName);
- if (tagName == "a" && links && links.length)
- newElement.href = links.shift();
- insertMessage(newElement, value, links);
- element.appendChild(newElement);
-
- insertMessage(element, after, links);
-}
-
-window.addEventListener("load", () =>
-{
- chrome.runtime.sendMessage({
- type: "notifications.get",
- displayMethod: "popup"
- }, notification =>
- {
- if (!notification)
- return;
-
- let titleElement = document.getElementById("notification-title");
- let messageElement = document.getElementById("notification-message");
-
- titleElement.textContent = notification.texts.title;
-
- getDocLinks(notification).then(docLinks =>
- {
- insertMessage(messageElement, notification.texts.message, docLinks);
-
- messageElement.addEventListener("click", event =>
- {
- let link = event.target;
- while (link && link != messageElement && link.localName != "a")
- link = link.parentNode;
- if (!link)
- return;
- event.preventDefault();
- event.stopPropagation();
- chrome.tabs.create({url: link.href});
- });
- });
-
- let notificationElement = document.getElementById("notification");
- notificationElement.className = notification.type;
- notificationElement.hidden = false;
- notificationElement.addEventListener("click", event =>
- {
- if (event.target.id == "notification-close")
- notificationElement.classList.add("closing");
- else if (event.target.id == "notification-optout" ||
- event.target.id == "notification-hide")
- {
- if (event.target.id == "notification-optout")
- setPref("notifications_ignoredcategories", true);
-
- notificationElement.hidden = true;
- notification.onClicked();
- }
- }, true);
- });
-}, false);

Powered by Google App Engine
This is Rietveld