1424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)# Copyright 2013 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)from telemetry.core.backends import form_based_credentials_backend 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 76e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class GoogleCredentialsBackend( 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) form_based_credentials_backend.FormBasedCredentialsBackend): 101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci @property 121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci def logged_in_javascript(self): 131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci """Evaluates to true iff already logged in.""" 141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return 'document.getElementById("gb")!== null' 152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @property 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) def credentials_type(self): 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return 'google' 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @property 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) def url(self): 221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci # pylint: disable=C0301 231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci # WPR doesn't support having 2 responses for the same URL (with/without 241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci # session cookie), so after login behaviour differs with/without wpr. 251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci # Sign-in URL is specified directly to overcome this. 261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return 'https://accounts.google.com/ServiceLogin?continue=https%3A%2F%2Faccounts.google.com%2FManageAccount' 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @property 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) def login_form_id(self): 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return 'gaia_loginform' 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @property 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) def login_input_id(self): 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return 'Email' 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @property 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) def password_input_id(self): 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return 'Passwd' 39