function reportHeight() { var msg = JSON.stringify({type:"size", size:document.body.offsetHeight}); parent.postMessage(msg, "*"); } function frameLoaded() { var links = document.getElementsByTagName("A"); for (i = 0; i < links.length; i++) { var klass = links[i].klassName; if (klass != "item_title" && klass != "open_box") { links[i].addEventListener("click", showStory); } } window.addEventListener("message", messageHandler); } function showStory(event) { var href = event.currentTarget.href; parent.postMessage(JSON.stringify({type:"show", url:href}), "*"); event.preventDefault(); } function messageHandler(event) { reportHeight(); } // Feed URL. var feedUrl = chrome.i18n.getMessage('newsUrl') + '/?output=rss'; // The XMLHttpRequest object that tries to load and parse the feed. var req; function main() { req = new XMLHttpRequest(); req.onload = handleResponse; req.onerror = handleError; req.open("GET", feedUrl, true); req.send(null); } // Handles feed parsing errors. function handleFeedParsingFailed(error) { var feed = document.getElementById("feed"); feed.klassName = "error"; feed.innerText = chrome.i18n.getMessage("error", error); } // Handles errors during the XMLHttpRequest. function handleError() { handleFeedParsingFailed(chrome.i18n.getMessage('failed_to_fetch_rss')); } // Handles parsing the feed data we got back from XMLHttpRequest. function handleResponse() { var doc = req.responseXML; if (!doc) { handleFeedParsingFailed(chrome.i18n.getMessage('not_a_valid_feed')); return; } buildPreview(doc); } // The maximum number of feed items to show in the preview. var maxFeedItems = 5; // Where the more stories link should navigate to. var moreStoriesUrl; function buildPreview(doc) { // Get the link to the feed source. var link = doc.getElementsByTagName("link"); var parentTag = link[0].parentNode.tagName; if (parentTag != "item" && parentTag != "entry") { moreStoriesUrl = link[0].textContent; } // Setup the title image. var images = doc.getElementsByTagName("image"); var titleImg; if (images.length != 0) { var urls = images[0].getElementsByTagName("url"); if (urls.length != 0) { titleImg = urls[0].textContent; } } var img = document.getElementById("title"); if (titleImg) { img.src = titleImg; if (moreStoriesUrl) { document.getElementById("title_a").addEventListener("click", moreStories); } } else { img.style.display = "none"; } // Construct the iframe's HTML. var iframe_src = "