Home | History | Annotate | Download | only in extension-questions
      1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 var PERMISSIONS = {origins: ['http://api.stackoverflow.com/']};
      6 var URL = 'http://api.stackoverflow.com/1.1/questions?max=10&sort=votes&tagged=google-chrome-extension';
      7 var ROOT = 'http://stackoverflow.com';
      8 
      9 chrome.permissions.contains(PERMISSIONS, function(result) {
     10   if (!result) {
     11     // Open options page to request permissions.
     12     document.querySelector('#title').innerText =
     13         'Requires Stack Overflow permission';
     14     chrome.tabs.create({url: 'options.html'});
     15   } else {
     16     // Make the request to SO.
     17     makeRequest(function(data) {
     18       // Render the results.
     19       renderQuestions(JSON.parse(data));
     20     });
     21   }
     22 });
     23 
     24 function makeRequest(callback) {
     25   var xhr = new XMLHttpRequest();
     26   xhr.open('GET', URL);
     27   xhr.addEventListener('load', function(e) {
     28     var result = xhr.responseText;
     29     callback(result);
     30   });
     31   xhr.send();
     32 }
     33 
     34 function renderQuestions(data) {
     35   var $results = document.querySelector('#results');
     36   var questions = data.questions;
     37   for (var i = 0; i < Math.min(10, questions.length); i++) {
     38     var question = questions[i];
     39     var $question = document.createElement('li');
     40     var url = ROOT + question.question_answers_url;
     41     $question.innerHTML = '<a href="' + url + '" target="_blank">' +
     42         question.title + '</a>';
     43     results.appendChild($question);
     44   }
     45   // Update title too.
     46   document.querySelector('#title').innerText = 'Top Chrome Extension Questions';
     47 }
     48