title: Facebook JavaScript API - Login failure in Chrome
body: <p>The below code is from the official Facebook developer pages, and works in FF and Safari, and sometimes in Chrome — but more often not in Chrome.</p>
  
  <p>On Snow Leopard with the latest Chrome, I click the login button and see a little flicker as the FB login dialog opens and closes. If, in my FB account, I remove and re-add the app, I get asked for permissions, but the <code>auth.authResponseChange</code> event never seems to fire.</p>
  
  <p>Does anyone know if this is a bug, or where I might find a solution that doesn't require me to manually poll the server? </p>
  
  <p>Is this a product of Google+ vs. Facebook?!</p>
  
  <pre><code>&lt;html&gt;
  &lt;head&gt;&lt;/head&gt;
  &lt;body&gt;
  &lt;div id="fb-root"&gt;&lt;/div&gt;
  &lt;script&gt;
    window.fbAsyncInit = function() {
    FB.init({
              appId       : $APP_ID$,                    // App ID from the app dashboard
              channelUrl  : $channelUrl$,              // Channel file for x-domain comms
              status      : true,                     // Check Facebook Login status
              cookie      : true,
              oauth       : true,
              xfbml       : true                       // Look for social plugins on the page
    });
  
    // Here we subscribe to the auth.authResponseChange JavaScript event. This event is fired
    // for any authentication related change, such as login, logout or session refresh. This means that
    // whenever someone who was previously logged out tries to log in again, the correct case below
    // will be handled.
    FB.Event.subscribe('auth.authResponseChange', function(response) {
      console.log('auth.authResponseChange fired');
      // Here we specify what we do with the response anytime this event occurs.
      if (response.status === 'connected') {
        // The response object is returned with a status field that lets the app know the current
        // login status of the person. In this case, we're handling the situation where they
        // have logged in to the app.
        testAPI();
      } else if (response.status === 'not_authorized') {
        // In this case, the person is logged into Facebook, but not into the app, so we call
        // FB.login() to prompt them to do so.
        // In real-life usage, you wouldn't want to immediately prompt someone to login
        // like this, for two reasons:
        // (1) JavaScript created popup windows are blocked by most browsers unless they
        // result from direct interaction from people using the app (such as a mouse click)
        // (2) it is a bad experience to be continually prompted to login upon page load.
        FB.login();
      } else {
        // In this case, the person is not logged into Facebook, so we call the login()
        // function to prompt them to do so. Note that at this stage there is no indication
        // of whether they are logged into the app. If they aren't then they'll see the Login
        // dialog right after they log in to Facebook.
        // The same caveats as above apply to the FB.login() call here.
        FB.login();
      }
    });
    };
  
    // Load the SDK asynchronously
    (function(d){
     var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
     if (d.getElementById(id)) {return;}
     js = d.createElement('script'); js.id = id; js.async = true;
     js.src = "//connect.facebook.net/en_US/all.js";
     ref.parentNode.insertBefore(js, ref);
    }(document));
  
    // Here we run a very simple test of the Graph API after login is successful.
    // This testAPI() function is only called in those cases.
    function testAPI() {
      console.log('Welcome!  Fetching your information.... ');
      FB.api('/me', function(response) {
        console.log('Good to see you, ' + response.name + '.');
      });
    }
  &lt;/script&gt;
  
  &lt;!--
    Below we include the Login Button social plugin. This button uses the JavaScript SDK to
    present a graphical Login button that triggers the FB.login() function when clicked.
  
    Learn more about options for the login button plugin:
    /docs/reference/plugins/login/ --&gt;
  
    &lt;!-- scope='publish_stream,read_stream' --&gt;
  &lt;fb:login-button  show-faces="true" width="200" max-rows="1"&gt;&lt;/fb:login-button&gt;
  &lt;/body&gt;
  &lt;/html&gt;
  </code></pre>