text: // Copyright (c) 2014 The Chromium Authors. All rights reserved.
  // Use of this source code is governed by a BSD-style license that can be
  // found in the LICENSE file.
  
  /**
   * Get the current URL.
   *
   * @param {function(string)} callback - called when the URL of the current tab
   *   is found.
   */
  function getCurrentTabUrl(callback) {
    // Query filter to be passed to chrome.tabs.query - see
    // https://developer.chrome.com/extensions/tabs#method-query
    var queryInfo = {
      active: true,
      currentWindow: true
    };
  
    chrome.tabs.query(queryInfo, function(tabs) {
      // chrome.tabs.query invokes the callback with a list of tabs that match the
      // query. When the popup is opened, there is certainly a window and at least
      // one tab, so we can safely assume that |tabs| is a non-empty array.
      // A window can only have one active tab at a time, so the array consists of
      // exactly one tab.
      var tab = tabs[0];
  
      // A tab is a plain object that provides information about the tab.
      // See https://developer.chrome.com/extensions/tabs#type-Tab
      var url = tab.url;
  
      // tab.url is only available if the "activeTab" permission is declared.
      // If you want to see the URL of other tabs (e.g. after removing active:true
      // from |queryInfo|), then the "tabs" permission is required to see their
      // "url" properties.
      console.assert(typeof url == 'string', 'tab.url should be a string');
  
      callback(url);
    });
  
    // Most methods of the Chrome extension APIs are asynchronous. This means that
    // you CANNOT do something like this:
    //
    // var url;
    // chrome.tabs.query(queryInfo, function(tabs) {
    //   url = tabs[0].url;
    // });
    // alert(url); // Shows "undefined", because chrome.tabs.query is async.
  }
  
  /**
   * @param {string} searchTerm - Search term for Google Image search.
   * @param {function(string,number,number)} callback - Called when an image has
   *   been found. The callback gets the URL, width and height of the image.
   * @param {function(string)} errorCallback - Called when the image is not found.
   *   The callback gets a string that describes the failure reason.
   */
  function getImageUrl(searchTerm, callback, errorCallback) {
    // Google image search - 100 searches per day.
    // https://developers.google.com/image-search/
    var searchUrl = 'https://ajax.googleapis.com/ajax/services/search/images' +
      '?v=1.0&q=' + encodeURIComponent(searchTerm);
    var x = new XMLHttpRequest();
    x.open('GET', searchUrl);
    // The Google image search API responds with JSON, so let Chrome parse it.
    x.responseType = 'json';
    x.onload = function() {
      // Parse and process the response from Google Image Search.
      var response = x.response;
      if (!response || !response.responseData || !response.responseData.results ||
          response.responseData.results.length === 0) {
        errorCallback('No response from Google Image search!');
        return;
      }
      var firstResult = response.responseData.results[0];
      // Take the thumbnail instead of the full image to get an approximately
      // consistent image size.
      var imageUrl = firstResult.tbUrl;
      var width = parseInt(firstResult.tbWidth);
      var height = parseInt(firstResult.tbHeight);
      console.assert(
          typeof imageUrl == 'string' && !isNaN(width) && !isNaN(height),
          'Unexpected respose from the Google Image Search API!');
      callback(imageUrl, width, height);
    };
    x.onerror = function() {
      errorCallback('Network error.');
    };
    x.send();
  }
  
  function renderStatus(statusText) {
    document.getElementById('status').textContent = statusText;
  }
  
  document.addEventListener('DOMContentLoaded', function() {
    getCurrentTabUrl(function(url) {
    console.log('heyyy');
    //alert(url);
  	debugger;
    
  	var pageUrl = document.getElementById('page-url');
  	pageUrl.textContent=url;
    
      // Put the image URL in Google search.
      renderStatus('Performing Google Image search for ' + url);
  
      getImageUrl(url, function(imageUrl, width, height) {
  
        renderStatus('Search term: ' + url + '\n' +
            'Google image search result: ' + imageUrl);
        var imageResult = document.getElementById('image-result');
        // Explicitly set the width/height to minimize the number of reflows. For
        // a single image, this does not matter, but if you're going to embed
        // multiple external images in your page, then the absence of width/height
        // attributes causes the popup to resize multiple times.
        imageResult.width = width;
        imageResult.height = height;
        imageResult.src = imageUrl;
        imageResult.hidden = false;
  
      }, function(errorMessage) {
        renderStatus('Cannot display image. ' + errorMessage);
      });
    });
  });
  