summaryrefslogtreecommitdiffstats
path: root/mobile/android/chrome/content/FeedHandler.js
diff options
context:
space:
mode:
Diffstat (limited to 'mobile/android/chrome/content/FeedHandler.js')
-rw-r--r--mobile/android/chrome/content/FeedHandler.js120
1 files changed, 0 insertions, 120 deletions
diff --git a/mobile/android/chrome/content/FeedHandler.js b/mobile/android/chrome/content/FeedHandler.js
deleted file mode 100644
index 91d73ee8d..000000000
--- a/mobile/android/chrome/content/FeedHandler.js
+++ /dev/null
@@ -1,120 +0,0 @@
-/* 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";
-
-var FeedHandler = {
- PREF_CONTENTHANDLERS_BRANCH: "browser.contentHandlers.types.",
- TYPE_MAYBE_FEED: "application/vnd.mozilla.maybe.feed",
-
- _contentTypes: null,
-
- getContentHandlers: function fh_getContentHandlers(contentType) {
- if (!this._contentTypes)
- this.loadContentHandlers();
-
- if (!(contentType in this._contentTypes))
- return [];
-
- return this._contentTypes[contentType];
- },
-
- loadContentHandlers: function fh_loadContentHandlers() {
- this._contentTypes = {};
-
- let kids = Services.prefs.getBranch(this.PREF_CONTENTHANDLERS_BRANCH).getChildList("");
-
- // First get the numbers of the providers by getting all ###.uri prefs
- let nums = [];
- for (let i = 0; i < kids.length; i++) {
- let match = /^(\d+)\.uri$/.exec(kids[i]);
- if (!match)
- continue;
- else
- nums.push(match[1]);
- }
-
- // Sort them, to get them back in order
- nums.sort(function(a, b) { return a - b; });
-
- // Now register them
- for (let i = 0; i < nums.length; i++) {
- let branch = Services.prefs.getBranch(this.PREF_CONTENTHANDLERS_BRANCH + nums[i] + ".");
- let vals = branch.getChildList("");
- if (vals.length == 0)
- return;
-
- try {
- let type = branch.getCharPref("type");
- let uri = branch.getComplexValue("uri", Ci.nsIPrefLocalizedString).data;
- let title = branch.getComplexValue("title", Ci.nsIPrefLocalizedString).data;
-
- if (!(type in this._contentTypes))
- this._contentTypes[type] = [];
- this._contentTypes[type].push({ contentType: type, uri: uri, name: title });
- }
- catch(ex) {}
- }
- },
-
- observe: function fh_observe(aSubject, aTopic, aData) {
- if (aTopic === "Feeds:Subscribe") {
- let args = JSON.parse(aData);
- let tab = BrowserApp.getTabForId(args.tabId);
- if (!tab)
- return;
-
- let browser = tab.browser;
- let feeds = browser.feeds;
- if (feeds == null)
- return;
-
- // First, let's decide on which feed to subscribe
- let feedIndex = -1;
- if (feeds.length > 1) {
- let p = new Prompt({
- window: browser.contentWindow,
- title: Strings.browser.GetStringFromName("feedHandler.chooseFeed")
- }).setSingleChoiceItems(feeds.map(function(feed) {
- return { label: feed.title || feed.href }
- })).show((function(data) {
- feedIndex = data.button;
- if (feedIndex == -1)
- return;
-
- this.loadFeed(feeds[feedIndex], browser);
- }).bind(this));
- return;
- }
-
- this.loadFeed(feeds[0], browser);
- }
- },
-
- loadFeed: function fh_loadFeed(aFeed, aBrowser) {
- let feedURL = aFeed.href;
-
- // Next, we decide on which service to send the feed
- let handlers = this.getContentHandlers(this.TYPE_MAYBE_FEED);
- if (handlers.length == 0)
- return;
-
- // JSON for Prompt
- let p = new Prompt({
- window: aBrowser.contentWindow,
- title: Strings.browser.GetStringFromName("feedHandler.subscribeWith")
- }).setSingleChoiceItems(handlers.map(function(handler) {
- return { label: handler.name };
- })).show(function(data) {
- if (data.button == -1)
- return;
-
- // Merge the handler URL and the feed URL
- let readerURL = handlers[data.button].uri;
- readerURL = readerURL.replace(/%s/gi, encodeURIComponent(feedURL));
-
- // Open the resultant URL in a new tab
- BrowserApp.addTab(readerURL, { parentId: BrowserApp.selectedTab.id });
- });
- }
-};