summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorzelidrag@chromium.org <zelidrag@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-18 23:54:03 +0000
committerzelidrag@chromium.org <zelidrag@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-18 23:54:03 +0000
commit649aedc227a12f21c7f7288b6fab5d944a10c248 (patch)
treeb787fb044ba14e60b0ed2e859abb2f619d377155
parent581db2b3642608e603900d99f10ab479f6dab2da (diff)
downloadchromium_src-649aedc227a12f21c7f7288b6fab5d944a10c248.zip
chromium_src-649aedc227a12f21c7f7288b6fab5d944a10c248.tar.gz
chromium_src-649aedc227a12f21c7f7288b6fab5d944a10c248.tar.bz2
It seems GAIA had changed dosserver rules today, so we can go back to accounts.google.com.
Revert 137937 - Reverted 136345 - Ran into GAIA dosserver issues in prod for http://accounts.google.com. We are going back to http://www.google.com/accounts/... for all API calls. BUG=127147 TEST=all serivices dependent on GAIA auth should still work (sync, login, policy, drive...) Review URL: https://chromiumcodereview.appspot.com/10411025 TBR=zelidrag@chromium.org Review URL: https://chromiumcodereview.appspot.com/10413016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@137978 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/app/resources/locale_settings.grd2
-rw-r--r--chrome/app/resources/terms/chromeos/terms_en.html2
-rw-r--r--chrome/app/resources/terms/terms_am.html2
-rw-r--r--chrome/app/resources/terms/terms_bn.html2
-rw-r--r--chrome/app/resources/terms/terms_sw.html2
-rw-r--r--chrome/browser/chromeos/login/existing_user_controller.cc2
-rw-r--r--chrome/browser/chromeos/login/mock_url_fetchers.cc2
-rw-r--r--chrome/browser/chromeos/login/online_attempt_unittest.cc4
-rw-r--r--chrome/browser/importer/importer_host.cc2
-rw-r--r--chrome/browser/net/gaia/gaia_oauth_fetcher.cc1
-rw-r--r--chrome/browser/password_manager/login_database_unittest.cc8
-rw-r--r--chrome/browser/printing/cloud_print/cloud_print_setup_source.cc2
-rw-r--r--chrome/browser/printing/cloud_print/cloud_print_url.cc2
-rw-r--r--chrome/browser/resources/chromeos/gaia_auth/manifest.json2
-rw-r--r--chrome/browser/resources/chromeos/gaia_auth/manifest_test.json1
-rw-r--r--chrome/browser/sync/resources/gaia_login_test.html2
-rw-r--r--chrome/browser/ui/webui/sync_promo/sync_promo_ui.cc36
-rw-r--r--chrome/common/net/gaia/gaia_auth_fetcher_unittest.cc2
-rw-r--r--chrome/common/net/gaia/gaia_authenticator.h2
-rw-r--r--chrome/common/net/gaia/gaia_urls.cc44
-rw-r--r--chrome/common/net/gaia/gaia_urls.h2
-rw-r--r--chrome/common/net/gaia/google_service_auth_error.h4
-rw-r--r--chrome/common/net/gaia/oauth_request_signer_unittest.cc54
-rw-r--r--chrome/common/net/url_util.cc27
-rw-r--r--chrome/common/net/url_util.h7
-rw-r--r--chrome/common/net/url_util_unittest.cc19
-rw-r--r--chrome/common/url_constants.cc2
-rw-r--r--chrome/test/data/autofill/heuristics/input/09_register_google.com.html14
-rw-r--r--chrome/test/data/google/google.html4
-rwxr-xr-xchrome/test/functional/passwords.py6
-rw-r--r--chrome/test/functional/test_utils.py2
-rw-r--r--remoting/webapp/manifest.json3
32 files changed, 155 insertions, 111 deletions
diff --git a/chrome/app/resources/locale_settings.grd b/chrome/app/resources/locale_settings.grd
index 06919c4..69975c0 100644
--- a/chrome/app/resources/locale_settings.grd
+++ b/chrome/app/resources/locale_settings.grd
@@ -359,7 +359,7 @@
</message>
<message name="IDS_SYNC_GET_ACCESS_CODE_URL" translateable="false">
- https://www.google.com/accounts/IssuedAuthSubTokens?hl=[GRITLANGCODE]
+ https://accounts.google.com/IssuedAuthSubTokens?hl=[GRITLANGCODE]
</message>
<message name="IDS_SYNC_GET_OTP_URL" translateable="false">
diff --git a/chrome/app/resources/terms/chromeos/terms_en.html b/chrome/app/resources/terms/chromeos/terms_en.html
index 9d4f3fb..79f1685 100644
--- a/chrome/app/resources/terms/chromeos/terms_en.html
+++ b/chrome/app/resources/terms/chromeos/terms_en.html
@@ -123,7 +123,7 @@ h2 { font-size:1em; margin-top:0 }
<hr>
<br>
<h2>Chrome OS Additional Terms</h2>
-<p>Your use of any pre-installed apps or extensions provided by Google, unless otherwise indicated, is subject to the terms of service at http://www.google.com/accounts/TOS. Your use of any pre-installed apps or extensions provided by a third party may be subject to terms provided to you by the third party.</p>
+<p>Your use of any pre-installed apps or extensions provided by Google, unless otherwise indicated, is subject to the terms of service at http://accounts.google.com/TOS. Your use of any pre-installed apps or extensions provided by a third party may be subject to terms provided to you by the third party.</p>
<p>Your use of certain components of the Software is also subject to the following terms:</p>
<p><strong>MPEGLA</strong></p>
<p>THIS PRODUCT IS LICENSED UNDER THE AVC PATENT PORTFOLIO LICENSE FOR THE PERSONAL AND NON-COMMERCIAL USE OF A CONSUMER TO (i) ENCODE VIDEO IN COMPLIANCE WITH THE AVC STANDARD ( “AVC VIDEO”) AND/OR (ii) DECODE AVC VIDEO THAT WAS ENCODED BY A CONSUMER ENGAGED IN A PERSONAL AND NON-COMMERCIAL ACTIVITY AND/OR WAS OBTAINED FROM A VIDEO PARTNER LICENSED TO PROVIDE AVC VIDEO. NO LICENSE IS GRANTED OR SHALL BE IMPLIED FOR ANY OTHER USE. ADDITIONAL INFORMATION MAY BE OBTAINED FROM MPEG LA, L.L.C. SEE HTTP://WWW.MPEGLA.COM.</p>
diff --git a/chrome/app/resources/terms/terms_am.html b/chrome/app/resources/terms/terms_am.html
index aaf2450..08ba418 100644
--- a/chrome/app/resources/terms/terms_am.html
+++ b/chrome/app/resources/terms/terms_am.html
@@ -121,7 +121,7 @@ function carry_tracking(obj) {
<p>17.2 Google ለእንደዚህ አይነት ውጫዊ ጣቢያዎች ወይም ንብረቶች መገኘት ኃላፊነት እንደሌለበት እና በነዚህ የድር ጣቢያዎች ወይም ንብረቶች ላይ ለሚገኙ ማንኛውም ማስታወቂያዎች፣ ምርቶች ወይም ሌላ ነገሮችን እንደማይደግፍ አረጋግጠው ተስማምተዋል።</p>
<p>17.3 ርስዎ አምጠውት ሊሆን በሚችለው በእነዚህ ውጫዊ ጣቢያዎች ወይም ንብረቶች መገኘት ምክንያት፣ ወይም ርስዎ በሙሉዕነታቸው፣ በትክክለኛነታቸው፣ እዛ ለመኖራቸው እምነት በጣሉበቸው በነዚህ የድር ጣቢያዎች ወይም ንብረቶች ላይ ለሚገኙ ማንኛውም ማስታወቂያዎች፣ ምርቶች ወይም ሌላ ነገሮች ምክንያት ለሚከሰቱ ማንኛውም ጥፋቶች ወይም ጉዳቶች Google ተጠያቂ እንደማይሆን አረጋግጠው ተስማምተዋል።</p>
<p><strong>18. የስምምነት ውሎች ላይ የሚደረጉ ለውጦች</strong></p>
-<p>18.1 Google በአለምአቀፍ የስምምነት ውሎች ወይም በተጨማሪ የስምምነት ውሎች ላይ ከጊዜ ወደ ጊዜ ለውጦችን ሊያደርግ ይችላል። እነዚህ ለውጦች ሲደረጉ፣ Google በhttp://www.google.com/accounts/TOS?hl=en በሚገኘው የአለምአቀፍ የስምምነት ውሎች ላይ አዲስ ቅጂ ያሰፍራል እንዲሁም ማንኛውም አዲስ ተጨማሪ የስምምነት ውሎች ይህ ለውጥ በሚነካቸው ግልጋሎቶች ውስጥ ወይም በግልጋሎቶቹ አማካያነት እንዲገኝ ይደረጋል።</p>
+<p>18.1 Google በአለምአቀፍ የስምምነት ውሎች ወይም በተጨማሪ የስምምነት ውሎች ላይ ከጊዜ ወደ ጊዜ ለውጦችን ሊያደርግ ይችላል። እነዚህ ለውጦች ሲደረጉ፣ Google በhttp://accounts.google.com/TOS?hl=en በሚገኘው የአለምአቀፍ የስምምነት ውሎች ላይ አዲስ ቅጂ ያሰፍራል እንዲሁም ማንኛውም አዲስ ተጨማሪ የስምምነት ውሎች ይህ ለውጥ በሚነካቸው ግልጋሎቶች ውስጥ ወይም በግልጋሎቶቹ አማካያነት እንዲገኝ ይደረጋል።</p>
<p>18.2 የአለምአቀፍ የስምምነት ውሎች ወይም የተጨማሪ የስምምነት ውሎች ለውጥ ከተደረገባቸው ቀን በኋላ ግልጋሎቶቹን የሚጠቀሙ ከሆነ፣ Google መጠቀምዎን የተሻሻሉትን የአለምአቀፍ የስምምነት ውሎች ወይም የተጨማሪ የስምምነት ውሎች እንደተቀበሉ አድርጎ ይቆጥረዋል፣ ይህንንም ተረድተው ተስማምተዋል።</p>
<p><strong>19. አጠቃላይ ህጋዊ የስምምነት ውሎች </strong></p>
<p>19.1 አንዳንድ ጊዜ ግልጋሎቶቹን ሲጠቀሙ፣ (ከግልጋሎቶቹ ጋር በተገኘ ወይም በእነርሱ ምክንያት) ግልጋሎትን ሊጠቀሙ ወይም አነስተኛ ሶፍትዌር ሲያወርዱ አልያም በሌላ ግለሰብ ወይም ኩባንያ የቀረቡ ሸቀጦች ሊሸምቱ ይችላሉ። እነዚህን ግልጋሎቶች፣ ሶፍትዌር ወይም ሸቀጦች መጠቀምዎ፣ በሚመለከተው ግለሰብ ወይም ኩባንያ እና በርስዎ መካከል በተለየ የስምምነት ውሎች ተገዢ ሊሆኑ ይችላሉ። ይህ ከሆነ፣ የስምምነት ውሎቹ ከእነዚህ ኩባንያዎች ወይም ግለሰቦች ጋር ያለዎትን ህጋዊ ግንኙነቶች አይነኩም። </p>
diff --git a/chrome/app/resources/terms/terms_bn.html b/chrome/app/resources/terms/terms_bn.html
index 78a9c83..8efbf87 100644
--- a/chrome/app/resources/terms/terms_bn.html
+++ b/chrome/app/resources/terms/terms_bn.html
@@ -121,7 +121,7 @@ function carry_tracking(obj) {
<p>17.2 আপনি স্বীকার করেন এবং সম্মত হন যে এমন কোন বাহ্যিক সাইটসমূহ বা রিসোর্সের উপলভ্যতার জন্য দায়বদ্ধ নয়, এবং এমন ওয়েব সাইটগুলি বা রিসোর্সের মাধ্যমে লভ্য কোন বিজ্ঞাপন, পণ্যসমূহ বা অন্য উপাদান প্রচার করে না৷</p>
<p>17.3 আপনি স্বীকার করেন এবং সম্মত হন যে কোন তৃতীয় পক্ষ দ্বারা বিকাশ করা কোন প্রয়োগের ব্যবহারের ফলে বা ব্যবহার করার অক্ষমতার ফলে, বা এমন প্রয়োগগুলির মাধ্যমে উপলভ্য কোন পণ্যসমূহের বা অন্য উপাদানগুলির উপস্থিতির ফলে বা আপনার সম্পূর্ণতা, নির্ভুলতা সম্পর্কিত কোন বিশ্বাসের ফলে আপনার হতে পারে এমন কোন লোকসান বা ক্ষতির জন্য Google দায়বদ্ধ নয়৷</p>
<p><strong>18. শর্তাদিতে পরিবর্তন</strong></p>
-<p>18.1 Google সর্বজনীন শর্তাদি বা অতিরিক্ত শর্তাদিতে সময়ে সময়ে পরিবর্তন করতে পারে৷ এই পরিবর্তনগুলি করার সময়, Google এখানে সর্বজনীন শর্তাদির একটি নতুন অনুলিপি করবে http://www.google.com/http://www.google.com/accounts/TOS?hl=en এবং কোনও নতুন অতিরিক্ত শর্তাদি প্রভাবিত পরিষেবার মধ্যে বা মাধ্যমে আপনার কাছে উপলব্ধ করবে৷</p>
+<p>18.1 Google সর্বজনীন শর্তাদি বা অতিরিক্ত শর্তাদিতে সময়ে সময়ে পরিবর্তন করতে পারে৷ এই পরিবর্তনগুলি করার সময়, Google এখানে সর্বজনীন শর্তাদির একটি নতুন অনুলিপি করবে http://accounts.google.com/TOS?hl=en এবং কোনও নতুন অতিরিক্ত শর্তাদি প্রভাবিত পরিষেবার মধ্যে বা মাধ্যমে আপনার কাছে উপলব্ধ করবে৷</p>
<p>18.2 আপনি বোঝেন এবং সম্মত হন যে আপনি যদি এই পরিষেবাগুলি সর্বজনীন শর্তাদি পরিবর্তন হয়ে যাওয়ার পরের কোন তারিখে ব্যবহার করেন Google আপনার ব্যবহারকে আধুনিকীকৃত সর্বজনীন শর্তাদি বা অতিরিক্ত শর্তাদির স্বীকার হিসাবে বিবেচনা করে৷</p>
<p><strong>19. সাধারণ আইনি শর্তাদি</strong></p>
<p>19.1 অনেক সময় আপনি যখন পরিষেবাগুলি ব্যবহার করেন, আপনি অন্য ব্যক্তি বা কোম্পানি দ্বারা সরবরাহিত (পরিষেবাগুলির ব্যবহারের ফলস্বরূপ, বা ব্যবহারের সাথে জড়িত) কোন পরিষেবা ব্যবহার করতে বা সফ্টওয়্যারের অংশ ডাউনলোড করতে বা জিনিস ক্রয় করতে পারেন৷ আপনার এই অন্য পরিষেবাগুলির, সফ্টওয়্যার বা বস্তুর ব্যবহার আপনি এবং সংশ্লিষ্ট কোম্পানি বা ব্যক্তির সাথে পৃথক শর্তাদি অনুসারে হতে পারে৷ যদি তাই হয়, শর্তাদি আপনার সাথে অন্য কোম্পানি বা ব্যক্তির আইনি সম্পর্ককে প্রভাবিত করে না৷ আপনার এই অন্য পরিষেবাগুলি, সফ্টওয়্যার বা বস্তুগুলির ব্যবহার আপনি এবং সংশ্লিষ্ট কোম্পানি বা ব্যক্তির মধ্যে পৃথক শর্তাদি অনুসারে হতে পারে৷ যদি তা হয়, তবে শর্তাদি এইগুলি সহ অন্য কোম্পানি বা ব্যক্তির সাথে আপনার আইনি সম্পর্কে কোন প্রভাব ফেলে না৷</p>
diff --git a/chrome/app/resources/terms/terms_sw.html b/chrome/app/resources/terms/terms_sw.html
index 58466c1..edfc6ff 100644
--- a/chrome/app/resources/terms/terms_sw.html
+++ b/chrome/app/resources/terms/terms_sw.html
@@ -119,7 +119,7 @@ function carry_tracking(obj) {
<p>17.2 Unatambua na kukubali kuwa Google haiwajibiki kwa upatikanaji wa tovuti zozote au raslimali kama hizo za nje, na haiidhinishi matangazo, bidhaa au vitu vyovyote kwenye au vinavyopatikana kwenye tovuti au nyenzo hizo.</p>
<p>17.3 Unatambua na kukubali kuwa Google haiwajibiki kwa hasara au uharibifu wowote unaoweza kukupata wewe kwa sababau ya upatikanaji wa tovuti au raslimali hizo za nje, au kutokana nawe kutegemea kwa vyovyote ukamilifu, usahihi au uwepo wa matangazo, bidhaa au vitu vyoyvote kwenye, au kutoka kwa, tovuti au nyenzo kama hizo.</p>
<p><strong>18. Mabadiliko kwa Masharti</strong></p>
-<p>18.1 Google inaweza kufanya mabadiliko kwa Masharti ya Kijumla au Masharti ya Ziada mara kwa mara. Mabadiliko hayo yanapofanywa, Google itatoa nakala mpya ya Masharti ya Kijumla kwenye http://www.google.com/accounts/TOS?hl=en na Masharti yoyote mapya ya Ziada yatatolewa kwako kutoka ndani, au kupitia, Huduma zilizoathirika.</p>
+<p>18.1 Google inaweza kufanya mabadiliko kwa Masharti ya Kijumla au Masharti ya Ziada mara kwa mara. Mabadiliko hayo yanapofanywa, Google itatoa nakala mpya ya Masharti ya Kijumla kwenye http://accounts.google.com/TOS?hl=en na Masharti yoyote mapya ya Ziada yatatolewa kwako kutoka ndani, au kupitia, Huduma zilizoathirika.</p>
<p>18.2 Unaelewa na kukubali kuwa ikiwa utatumia Huduma baada ya tarehe Masharti ya Kijumla au Masharti ya Kijumla kubadilika, Google itachukulia matumizi yako kuwa kukubali kwa Sheria na Mashati au Masharti ya Ziada yaliyosasishwa.</p>
<p><strong>19. Masharti ya kijumla ya kisheria</strong></p>
<p>19.1 Wakati mwingine ukitumia Huduma, unaweza (kwa sababu ya, au kuhusiana na matumizi yako ya Huduma) kutumia huduma au kupakua programu, au kununua bidhaa, zinazotolewa na mtu au kampuni nyingine. Matumizi yako ya huduma, programu au bidhaa hizi zingine zinaweza kuwa chini ya masharti tofauti katika yako na kampuni au mtu anayehusika. Ikiwa ni hivyo, Masharti haya hayaathiri uhusiano wako wa kisheria na kampuni hizo au watu hao wengine.</p>
diff --git a/chrome/browser/chromeos/login/existing_user_controller.cc b/chrome/browser/chromeos/login/existing_user_controller.cc
index 6042088..efa7645 100644
--- a/chrome/browser/chromeos/login/existing_user_controller.cc
+++ b/chrome/browser/chromeos/login/existing_user_controller.cc
@@ -84,7 +84,7 @@ const char kGetStartedInitialLocaleParam[] = "initial_locale";
// URL for account creation.
const char kCreateAccountURL[] =
- "https://www.google.com/accounts/NewAccount?service=mail";
+ "https://accounts.google.com/NewAccount?service=mail";
// ChromeVox tutorial URL (used in place of "getting started" url when
// accessibility is enabled).
diff --git a/chrome/browser/chromeos/login/mock_url_fetchers.cc b/chrome/browser/chromeos/login/mock_url_fetchers.cc
index 5795f59..440d827 100644
--- a/chrome/browser/chromeos/login/mock_url_fetchers.cc
+++ b/chrome/browser/chromeos/login/mock_url_fetchers.cc
@@ -100,7 +100,7 @@ void FailFetcher::Start() {
// static
const char CaptchaFetcher::kCaptchaToken[] = "token";
// static
-const char CaptchaFetcher::kCaptchaUrlBase[] = "http://www.google.com/accounts/";
+const char CaptchaFetcher::kCaptchaUrlBase[] = "http://accounts.google.com/";
// static
const char CaptchaFetcher::kCaptchaUrlFragment[] = "fragment";
// static
diff --git a/chrome/browser/chromeos/login/online_attempt_unittest.cc b/chrome/browser/chromeos/login/online_attempt_unittest.cc
index fb098b7..1586ef9 100644
--- a/chrome/browser/chromeos/login/online_attempt_unittest.cc
+++ b/chrome/browser/chromeos/login/online_attempt_unittest.cc
@@ -22,11 +22,11 @@
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
-using content::BrowserThread;
using ::testing::AnyNumber;
using ::testing::Invoke;
using ::testing::Return;
using ::testing::_;
+using content::BrowserThread;
namespace chromeos {
@@ -248,7 +248,7 @@ TEST_F(OnlineAttemptTest, CaptchaErrorOutputted) {
GoogleServiceAuthError auth_error =
GoogleServiceAuthError::FromClientLoginCaptchaChallenge(
"CCTOKEN",
- GURL("http://www.google.com/accounts/Captcha?ctoken=CCTOKEN"),
+ GURL("http://accounts.google.com/Captcha?ctoken=CCTOKEN"),
GURL("http://www.google.com/login/captcha"));
RunFailureTest(auth_error);
}
diff --git a/chrome/browser/importer/importer_host.cc b/chrome/browser/importer/importer_host.cc
index 2fd61a0..3b0a34c 100644
--- a/chrome/browser/importer/importer_host.cc
+++ b/chrome/browser/importer/importer_host.cc
@@ -161,7 +161,7 @@ void ImporterHost::OnGoogleGAIACookieChecked(bool result) {
l10n_util::GetStringUTF16(IDS_IMPORTER_GOOGLE_LOGIN_TEXT), string16(),
browser::MESSAGE_BOX_TYPE_INFORMATION);
- GURL url("https://www.google.com/accounts/ServiceLogin");
+ GURL url("https://accounts.google.com/ServiceLogin");
DCHECK(profile_);
Browser* browser = browser::FindLastActiveWithProfile(profile_);
if (browser)
diff --git a/chrome/browser/net/gaia/gaia_oauth_fetcher.cc b/chrome/browser/net/gaia/gaia_oauth_fetcher.cc
index e9b1364a..580bb6d 100644
--- a/chrome/browser/net/gaia/gaia_oauth_fetcher.cc
+++ b/chrome/browser/net/gaia/gaia_oauth_fetcher.cc
@@ -22,6 +22,7 @@
#include "chrome/common/net/gaia/gaia_urls.h"
#include "chrome/common/net/gaia/google_service_auth_error.h"
#include "chrome/common/net/gaia/oauth_request_signer.h"
+#include "chrome/common/net/url_util.h"
#include "content/public/browser/notification_details.h"
#include "content/public/browser/notification_source.h"
#include "content/public/common/referrer.h"
diff --git a/chrome/browser/password_manager/login_database_unittest.cc b/chrome/browser/password_manager/login_database_unittest.cc
index 2660c56..c879f0a 100644
--- a/chrome/browser/password_manager/login_database_unittest.cc
+++ b/chrome/browser/password_manager/login_database_unittest.cc
@@ -47,8 +47,8 @@ TEST_F(LoginDatabaseTest, Logins) {
// Example password form.
PasswordForm form;
- form.origin = GURL("http://www.google.com/accounts/LoginAuth");
- form.action = GURL("http://www.google.com/accounts/Login");
+ form.origin = GURL("http://accounts.google.com/LoginAuth");
+ form.action = GURL("http://accounts.google.com/Login");
form.username_element = ASCIIToUTF16("Email");
form.username_value = ASCIIToUTF16("test@gmail.com");
form.password_element = ASCIIToUTF16("Passwd");
@@ -255,8 +255,8 @@ TEST_F(LoginDatabaseTest, BlacklistedLogins) {
// Save a form as blacklisted.
PasswordForm form;
- form.origin = GURL("http://www.google.com/accounts/LoginAuth");
- form.action = GURL("http://www.google.com/accounts/Login");
+ form.origin = GURL("http://accounts.google.com/LoginAuth");
+ form.action = GURL("http://accounts.google.com/Login");
form.username_element = ASCIIToUTF16("Email");
form.password_element = ASCIIToUTF16("Passwd");
form.submit_element = ASCIIToUTF16("signIn");
diff --git a/chrome/browser/printing/cloud_print/cloud_print_setup_source.cc b/chrome/browser/printing/cloud_print/cloud_print_setup_source.cc
index 38cdf43..9398bf8 100644
--- a/chrome/browser/printing/cloud_print/cloud_print_setup_source.cc
+++ b/chrome/browser/printing/cloud_print/cloud_print_setup_source.cc
@@ -25,7 +25,7 @@ const char CloudPrintSetupSource::kInvalidPasswordHelpUrl[] =
const char CloudPrintSetupSource::kCanNotAccessAccountUrl[] =
"https://www.google.com/support/accounts/bin/answer.py?answer=48598";
const char CloudPrintSetupSource::kCreateNewAccountUrl[] =
- "https://www.google.com/accounts/NewAccount?service=chromiumsync";
+ "https://accounts.google.com/NewAccount?service=chromiumsync";
namespace {
diff --git a/chrome/browser/printing/cloud_print/cloud_print_url.cc b/chrome/browser/printing/cloud_print/cloud_print_url.cc
index b22880d..7a41028 100644
--- a/chrome/browser/printing/cloud_print/cloud_print_url.cc
+++ b/chrome/browser/printing/cloud_print/cloud_print_url.cc
@@ -16,7 +16,7 @@
const char kDefaultCloudPrintServiceURL[] = "https://www.google.com/cloudprint";
const char kDefaultCloudPrintSigninURL[] =
- "https://www.google.com/accounts/ServiceLogin?"
+ "https://accounts.google.com/ServiceLogin?"
"service=cloudprint&continue=https%3A%2F%2Fwww.google.com%2Fcloudprint";
const char kLearnMoreURL[] =
diff --git a/chrome/browser/resources/chromeos/gaia_auth/manifest.json b/chrome/browser/resources/chromeos/gaia_auth/manifest.json
index 4ce6d59..c3b48f8 100644
--- a/chrome/browser/resources/chromeos/gaia_auth/manifest.json
+++ b/chrome/browser/resources/chromeos/gaia_auth/manifest.json
@@ -4,7 +4,7 @@
"name": "GaiaAuthExtension",
"version": "0.0.1",
"manifest_version": 2,
- "content_security_policy": "default-src 'self'; script-src 'self'; frame-src 'self' https://www.google.com/ https://www.google.com/accounts/",
+ "content_security_policy": "default-src 'self'; script-src 'self'; frame-src 'self' https://accounts.google.com",
"description": "GAIA Component Extension",
"web_accessible_resources": [
"main.css",
diff --git a/chrome/browser/resources/chromeos/gaia_auth/manifest_test.json b/chrome/browser/resources/chromeos/gaia_auth/manifest_test.json
index b86091c..c5228f7 100644
--- a/chrome/browser/resources/chromeos/gaia_auth/manifest_test.json
+++ b/chrome/browser/resources/chromeos/gaia_auth/manifest_test.json
@@ -33,6 +33,7 @@
"permissions": [
"https://insecure.com/*",
"https://www.google.com/accounts/*",
+ "https://accounts.google.com/*",
"https://gaiastaging.corp.google.com/*",
"chrome://oobe/"
]
diff --git a/chrome/browser/sync/resources/gaia_login_test.html b/chrome/browser/sync/resources/gaia_login_test.html
index fe50af6..c3b5875 100644
--- a/chrome/browser/sync/resources/gaia_login_test.html
+++ b/chrome/browser/sync/resources/gaia_login_test.html
@@ -46,7 +46,7 @@ function set_up_testing() {
return {
error: get_selected_value(form.error),
user: "homer@gmail.com",
- captchaUrl: "https://www.google.com/accounts/Captcha"
+ captchaUrl: "https://accounts.google.com/Captcha"
};
};
diff --git a/chrome/browser/ui/webui/sync_promo/sync_promo_ui.cc b/chrome/browser/ui/webui/sync_promo/sync_promo_ui.cc
index 9e26010..f269484 100644
--- a/chrome/browser/ui/webui/sync_promo/sync_promo_ui.cc
+++ b/chrome/browser/ui/webui/sync_promo/sync_promo_ui.cc
@@ -25,6 +25,7 @@
#include "chrome/common/chrome_switches.h"
#include "chrome/common/pref_names.h"
#include "chrome/common/url_constants.h"
+#include "chrome/common/net/url_util.h"
#include "content/public/browser/web_contents.h"
#include "content/public/browser/web_ui.h"
#include "googleurl/src/url_util.h"
@@ -79,29 +80,6 @@ SyncPromoUIHTMLSource::SyncPromoUIHTMLSource(content::WebUI* web_ui)
AddLocalizedStrings(localized_strings);
}
-// Looks for |search_key| in the query portion of |url|. Returns true if the
-// key is found and sets |out_value| to the value for the key. Returns false if
-// the key is not found.
-bool GetValueForKeyInQuery(const GURL& url, const std::string& search_key,
- std::string* out_value) {
- url_parse::Component query = url.parsed_for_possibly_invalid_spec().query;
- url_parse::Component key, value;
- while (url_parse::ExtractQueryKeyValue(
- url.spec().c_str(), &query, &key, &value)) {
- if (key.is_nonempty()) {
- std::string key_string = url.spec().substr(key.begin, key.len);
- if (key_string == search_key) {
- if (value.is_nonempty())
- *out_value = url.spec().substr(value.begin, value.len);
- else
- *out_value = "";
- return true;
- }
- }
- }
- return false;
-}
-
} // namespace
SyncPromoUI::SyncPromoUI(content::WebUI* web_ui) : WebUIController(web_ui) {
@@ -248,12 +226,9 @@ GURL SyncPromoUI::GetSyncPromoURL(const GURL& next_page, Source source) {
// static
GURL SyncPromoUI::GetNextPageURLForSyncPromoURL(const GURL& url) {
std::string value;
- if (GetValueForKeyInQuery(url, kSyncPromoQueryKeyNextPage, &value)) {
- url_canon::RawCanonOutputT<char16> output;
- url_util::DecodeURLEscapeSequences(value.c_str(), value.length(), &output);
- std::string url;
- UTF16ToUTF8(output.data(), output.length(), &url);
- return GURL(url);
+ if (chrome_common_net::GetValueForKeyInQuery(
+ url, kSyncPromoQueryKeyNextPage, &value)) {
+ return GURL(value);
}
return GURL();
}
@@ -261,7 +236,8 @@ GURL SyncPromoUI::GetNextPageURLForSyncPromoURL(const GURL& url) {
// static
SyncPromoUI::Source SyncPromoUI::GetSourceForSyncPromoURL(const GURL& url) {
std::string value;
- if (GetValueForKeyInQuery(url, kSyncPromoQueryKeySource, &value)) {
+ if (chrome_common_net::GetValueForKeyInQuery(
+ url, kSyncPromoQueryKeySource, &value)) {
int source = 0;
if (base::StringToInt(value, &source) && source >= SOURCE_START_PAGE &&
source < SOURCE_UNKNOWN) {
diff --git a/chrome/common/net/gaia/gaia_auth_fetcher_unittest.cc b/chrome/common/net/gaia/gaia_auth_fetcher_unittest.cc
index 8b5fb3a..d597ba7 100644
--- a/chrome/common/net/gaia/gaia_auth_fetcher_unittest.cc
+++ b/chrome/common/net/gaia/gaia_auth_fetcher_unittest.cc
@@ -413,7 +413,7 @@ TEST_F(GaiaAuthFetcherTest, CaptchaParse) {
GaiaAuthFetcher::GenerateAuthError(data, status);
std::string token = "CCTOKEN";
- GURL image_url("http://www.google.com/accounts/Captcha?ctoken=CCTOKEN");
+ GURL image_url("http://accounts.google.com/Captcha?ctoken=CCTOKEN");
GURL unlock_url("http://www.google.com/login/captcha");
EXPECT_EQ(error.state(), GoogleServiceAuthError::CAPTCHA_REQUIRED);
diff --git a/chrome/common/net/gaia/gaia_authenticator.h b/chrome/common/net/gaia/gaia_authenticator.h
index d996a75..ec7c737 100644
--- a/chrome/common/net/gaia/gaia_authenticator.h
+++ b/chrome/common/net/gaia/gaia_authenticator.h
@@ -68,7 +68,7 @@ class GaiaAuthenticator {
// must include a user-agent and a service-id when creating one. The
// user_agent is a short string used for simple log analysis. gaia_url is used
// to choose the server to authenticate with (e.g.
- // http://www.google.com/accounts/ClientLogin).
+ // http://accounts.google.com/ClientLogin).
GaiaAuthenticator(const std::string& user_agent,
const std::string& service_id,
const std::string& gaia_url);
diff --git a/chrome/common/net/gaia/gaia_urls.cc b/chrome/common/net/gaia/gaia_urls.cc
index 5888421..a4217d1 100644
--- a/chrome/common/net/gaia/gaia_urls.cc
+++ b/chrome/common/net/gaia/gaia_urls.cc
@@ -9,20 +9,25 @@
namespace {
-const char kDefaultGaiaBaseUrl[] = "www.google.com";
-
-const char kCaptchaUrlPrefixSuffix[] = "/accounts/";
-const char kClientLoginUrlSuffix[] = "/accounts/ClientLogin";
-const char kIssueAuthTokenUrlSuffix[] = "/accounts/IssueAuthToken";
-const char kGetUserInfoUrlSuffix[] = "/accounts/GetUserInfo";
-const char kTokenAuthUrlSuffix[] = "/accounts/TokenAuth";
-const char kMergeSessionUrlSuffix[] = "/accounts/MergeSession";
-
-const char kGetOAuthTokenUrlSuffix[] = "/accounts/o8/GetOAuthToken";
-const char kOAuthGetAccessTokenUrlSuffix[] = "/accounts/OAuthGetAccessToken";
-const char kOAuthWrapBridgeUrlSuffix[] = "/accounts/OAuthWrapBridge";
-const char kOAuth1LoginUrlSuffix[] = "/accounts/OAuthLogin";
-const char kOAuthRevokeTokenUrlSuffix[] = "/accounts/AuthSubRevokeToken";
+// Gaia service constants
+const char kDefaultGaiaBaseUrl[] = "accounts.google.com";
+
+const char kCaptchaUrlPrefixSuffix[] = "/";
+const char kClientLoginUrlSuffix[] = "/ClientLogin";
+const char kServiceLoginUrlSuffix[] = "/ServiceLogin";
+const char kIssueAuthTokenUrlSuffix[] = "/IssueAuthToken";
+const char kGetUserInfoUrlSuffix[] = "/GetUserInfo";
+const char kTokenAuthUrlSuffix[] = "/TokenAuth";
+const char kMergeSessionUrlSuffix[] = "/MergeSession";
+
+const char kOAuthGetAccessTokenUrlSuffix[] = "/OAuthGetAccessToken";
+const char kOAuthWrapBridgeUrlSuffix[] = "/OAuthWrapBridge";
+const char kOAuth1LoginUrlSuffix[] = "/OAuthLogin";
+const char kOAuthRevokeTokenUrlSuffix[] = "/AuthSubRevokeToken";
+
+// Federated login constants
+const char kDefaultFederatedLoginBaseUrl[] = "https://www.google.com/accounts";
+const char kGetOAuthTokenUrlSuffix[] = "/o8/GetOAuthToken";
// OAuth2 client id for Google Chrome which is registered as an
// installed application.
@@ -40,6 +45,7 @@ const char kOAuth2TokenUrl[] =
"https://accounts.google.com/o/oauth2/token";
const char kOAuth2IssueTokenUrl[] =
"https://www.googleapis.com/oauth2/v2/IssueToken";
+
} // namespacce
GaiaUrls* GaiaUrls::GetInstance() {
@@ -58,12 +64,16 @@ GaiaUrls::GaiaUrls() {
captcha_url_prefix_ = "http://" + host_base + kCaptchaUrlPrefixSuffix;
gaia_origin_url_ = "https://" + host_base;
client_login_url_ = gaia_origin_url_ + kClientLoginUrlSuffix;
+ service_login_url_ = gaia_origin_url_ + kServiceLoginUrlSuffix;
issue_auth_token_url_ = gaia_origin_url_ + kIssueAuthTokenUrlSuffix;
get_user_info_url_ = gaia_origin_url_ + kGetUserInfoUrlSuffix;
token_auth_url_ = gaia_origin_url_ + kTokenAuthUrlSuffix;
merge_session_url_ = gaia_origin_url_ + kMergeSessionUrlSuffix;
- get_oauth_token_url_ = gaia_origin_url_ + kGetOAuthTokenUrlSuffix;
+ // Federated login is not part of Gaia and has its own endpoints.
+ get_oauth_token_url_ = std::string(kDefaultFederatedLoginBaseUrl) +
+ kGetOAuthTokenUrlSuffix;
+
oauth_get_access_token_url_ = gaia_origin_url_ +
kOAuthGetAccessTokenUrlSuffix;
oauth_wrap_bridge_url_ = gaia_origin_url_ + kOAuthWrapBridgeUrlSuffix;
@@ -104,6 +114,10 @@ const std::string& GaiaUrls::client_login_url() {
return client_login_url_;
}
+const std::string& GaiaUrls::service_login_url() {
+ return service_login_url_;
+}
+
const std::string& GaiaUrls::issue_auth_token_url() {
return issue_auth_token_url_;
}
diff --git a/chrome/common/net/gaia/gaia_urls.h b/chrome/common/net/gaia/gaia_urls.h
index 5ae8d5d..253597f 100644
--- a/chrome/common/net/gaia/gaia_urls.h
+++ b/chrome/common/net/gaia/gaia_urls.h
@@ -20,6 +20,7 @@ class GaiaUrls {
const std::string& gaia_origin_url();
const std::string& client_login_url();
+ const std::string& service_login_url();
const std::string& issue_auth_token_url();
const std::string& get_user_info_url();
const std::string& token_auth_url();
@@ -53,6 +54,7 @@ class GaiaUrls {
std::string gaia_origin_url_;
std::string client_login_url_;
+ std::string service_login_url_;
std::string issue_auth_token_url_;
std::string get_user_info_url_;
std::string token_auth_url_;
diff --git a/chrome/common/net/gaia/google_service_auth_error.h b/chrome/common/net/gaia/google_service_auth_error.h
index 7ffef48..481176c 100644
--- a/chrome/common/net/gaia/google_service_auth_error.h
+++ b/chrome/common/net/gaia/google_service_auth_error.h
@@ -55,8 +55,8 @@ class GoogleServiceAuthError {
// The user needs to satisfy a CAPTCHA challenge to unlock their account.
// If no other information is available, this can be resolved by visiting
- // https://www.google.com/accounts/DisplayUnlockCaptcha. Otherwise,
- // captcha() will provide details about the associated challenge.
+ // https://accounts.google.com/DisplayUnlockCaptcha. Otherwise, captcha()
+ // will provide details about the associated challenge.
CAPTCHA_REQUIRED = 4,
// The user account has been deleted.
diff --git a/chrome/common/net/gaia/oauth_request_signer_unittest.cc b/chrome/common/net/gaia/oauth_request_signer_unittest.cc
index 9ccf338..4b4077ea 100644
--- a/chrome/common/net/gaia/oauth_request_signer_unittest.cc
+++ b/chrome/common/net/gaia/oauth_request_signer_unittest.cc
@@ -21,8 +21,8 @@ TEST(OAuthRequestSignerTest, Encode) {
"0123456789"
"-._~");
ASSERT_EQ(OAuthRequestSigner::Encode(
- "https://www.google.com/accounts/OAuthLogin"),
- "https%3A%2F%2Fwww.google.com%2Faccounts%2FOAuthLogin");
+ "https://accounts.google.com/OAuthLogin"),
+ "https%3A%2F%2Faccounts.google.com%2FOAuthLogin");
ASSERT_EQ(OAuthRequestSigner::Encode("%"), "%25");
ASSERT_EQ(OAuthRequestSigner::Encode("%25"), "%2525");
ASSERT_EQ(OAuthRequestSigner::Encode(
@@ -74,7 +74,7 @@ TEST(OAuthRequestSignerTest, DecodeEncoded) {
TEST(OAuthRequestSignerTest, SignGet1) {
GURL request_url("https://www.google.com/accounts/o8/GetOAuthToken");
OAuthRequestSigner::Parameters parameters;
- parameters["scope"] = "https://www.google.com/accounts/OAuthLogin";
+ parameters["scope"] = "https://accounts.google.com/OAuthLogin";
parameters["oauth_nonce"] = "2oiE_aHdk5qRTz0L9C8Lq0g";
parameters["xaouth_display_name"] = "Chromium";
parameters["oauth_timestamp"] = "1308152953";
@@ -92,18 +92,18 @@ TEST(OAuthRequestSignerTest, SignGet1) {
ASSERT_EQ("https://www.google.com/accounts/o8/GetOAuthToken"
"?oauth_consumer_key=johndoe"
"&oauth_nonce=2oiE_aHdk5qRTz0L9C8Lq0g"
- "&oauth_signature=y9GCmlGSvNuTAotxsBMyxb6j%2BE8%3D"
+ "&oauth_signature=PFqDTaiyey1UObcvOyI4Ng2HXW0%3D"
"&oauth_signature_method=HMAC-SHA1"
"&oauth_timestamp=1308152953"
"&oauth_token=4%2FVGY0MsQadcmO8VnCv9gnhoEooq1v"
"&oauth_version=1.0"
- "&scope=https%3A%2F%2Fwww.google.com%2Faccounts%2FOAuthLogin"
+ "&scope=https%3A%2F%2Faccounts.google.com%2FOAuthLogin"
"&xaouth_display_name=Chromium",
signed_text);
}
TEST(OAuthRequestSignerTest, SignGet2) {
- GURL request_url("https://www.google.com/accounts/OAuthGetAccessToken");
+ GURL request_url("https://accounts.google.com/OAuthGetAccessToken");
OAuthRequestSigner::Parameters parameters;
parameters["oauth_timestamp"] = "1308147831";
parameters["oauth_nonce"] = "4d4hZW9DygWQujP2tz06UN";
@@ -119,10 +119,10 @@ TEST(OAuthRequestSignerTest, SignGet2) {
"", // token secret
&signed_text));
ASSERT_EQ(signed_text,
- "https://www.google.com/accounts/OAuthGetAccessToken"
+ "https://accounts.google.com/OAuthGetAccessToken"
"?oauth_consumer_key=anonymous"
"&oauth_nonce=4d4hZW9DygWQujP2tz06UN"
- "&oauth_signature=2KVN8YCOKgiNIA16EGTcfESvdvA%3D"
+ "&oauth_signature=YiJv%2BEOWsvCDCi13%2FhQBFrr0J7c%3D"
"&oauth_signature_method=HMAC-SHA1"
"&oauth_timestamp=1308147831"
"&oauth_token=4%2FCcC-hgdj1TNnWaX8NTQ76YDXCBEK"
@@ -131,7 +131,7 @@ TEST(OAuthRequestSignerTest, SignGet2) {
TEST(OAuthRequestSignerTest, ParseAndSignGet1) {
GURL request_url("https://www.google.com/accounts/o8/GetOAuthToken"
- "?scope=https://www.google.com/accounts/OAuthLogin"
+ "?scope=https://accounts.google.com/OAuthLogin"
"&oauth_nonce=2oiE_aHdk5qRTz0L9C8Lq0g"
"&xaouth_display_name=Chromium"
"&oauth_timestamp=1308152953");
@@ -148,18 +148,18 @@ TEST(OAuthRequestSignerTest, ParseAndSignGet1) {
ASSERT_EQ("https://www.google.com/accounts/o8/GetOAuthToken"
"?oauth_consumer_key=anonymous"
"&oauth_nonce=2oiE_aHdk5qRTz0L9C8Lq0g"
- "&oauth_signature=S%2B6dcftDfbINlavHuma4NLJ98Ys%3D"
+ "&oauth_signature=PH7KP6cP%2BzZ1SJ6WGqBgXwQP9Mc%3D"
"&oauth_signature_method=HMAC-SHA1"
"&oauth_timestamp=1308152953"
"&oauth_token=4%2FCcC-hgdj1TNnWaX8NTQ76YDXCBEK"
"&oauth_version=1.0"
- "&scope=https%3A%2F%2Fwww.google.com%2Faccounts%2FOAuthLogin"
+ "&scope=https%3A%2F%2Faccounts.google.com%2FOAuthLogin"
"&xaouth_display_name=Chromium",
signed_text);
}
TEST(OAuthRequestSignerTest, ParseAndSignGet2) {
- GURL request_url("https://www.google.com/accounts/OAuthGetAccessToken"
+ GURL request_url("https://accounts.google.com/OAuthGetAccessToken"
"?oauth_timestamp=1308147831"
"&oauth_nonce=4d4hZW9DygWQujP2tz06UN");
std::string signed_text;
@@ -173,10 +173,10 @@ TEST(OAuthRequestSignerTest, ParseAndSignGet2) {
"", // token secret
&signed_text));
ASSERT_EQ(signed_text,
- "https://www.google.com/accounts/OAuthGetAccessToken"
+ "https://accounts.google.com/OAuthGetAccessToken"
"?oauth_consumer_key=anonymous"
"&oauth_nonce=4d4hZW9DygWQujP2tz06UN"
- "&oauth_signature=2KVN8YCOKgiNIA16EGTcfESvdvA%3D"
+ "&oauth_signature=YiJv%2BEOWsvCDCi13%2FhQBFrr0J7c%3D"
"&oauth_signature_method=HMAC-SHA1"
"&oauth_timestamp=1308147831"
"&oauth_token=4%2FCcC-hgdj1TNnWaX8NTQ76YDXCBEK"
@@ -186,7 +186,7 @@ TEST(OAuthRequestSignerTest, ParseAndSignGet2) {
TEST(OAuthRequestSignerTest, SignPost1) {
GURL request_url("https://www.google.com/accounts/o8/GetOAuthToken");
OAuthRequestSigner::Parameters parameters;
- parameters["scope"] = "https://www.google.com/accounts/OAuthLogin";
+ parameters["scope"] = "https://accounts.google.com/OAuthLogin";
parameters["oauth_nonce"] = "2oiE_aHdk5qRTz0L9C8Lq0g";
parameters["xaouth_display_name"] = "Chromium";
parameters["oauth_timestamp"] = "1308152953";
@@ -203,18 +203,18 @@ TEST(OAuthRequestSignerTest, SignPost1) {
&signed_text));
ASSERT_EQ("oauth_consumer_key=anonymous"
"&oauth_nonce=2oiE_aHdk5qRTz0L9C8Lq0g"
- "&oauth_signature=F%2BINyO4xgon5wUxcdcxWC11Ep7Y%3D"
+ "&oauth_signature=vVlfv6dnV2%2Fx7TozS0Gf83zS2%2BQ%3D"
"&oauth_signature_method=HMAC-SHA1"
"&oauth_timestamp=1308152953"
"&oauth_token=4%2FX8x0r7bHif_VNCLjUMutxGkzo13d"
"&oauth_version=1.0"
- "&scope=https%3A%2F%2Fwww.google.com%2Faccounts%2FOAuthLogin"
+ "&scope=https%3A%2F%2Faccounts.google.com%2FOAuthLogin"
"&xaouth_display_name=Chromium",
signed_text);
}
TEST(OAuthRequestSignerTest, SignPost2) {
- GURL request_url("https://www.google.com/accounts/OAuthGetAccessToken");
+ GURL request_url("https://accounts.google.com/OAuthGetAccessToken");
OAuthRequestSigner::Parameters parameters;
parameters["oauth_timestamp"] = "1234567890";
parameters["oauth_nonce"] = "17171717171717171";
@@ -232,7 +232,7 @@ TEST(OAuthRequestSignerTest, SignPost2) {
ASSERT_EQ(signed_text,
"oauth_consumer_key=anonymous"
"&oauth_nonce=17171717171717171"
- "&oauth_signature=BIuPHITrcptxSefd8H9Iazo8Pmo%3D"
+ "&oauth_signature=tPX2XqKQICWzopZ80CFGX%2F53DLo%3D"
"&oauth_signature_method=HMAC-SHA1"
"&oauth_timestamp=1234567890"
"&oauth_token=4%2FCcC-hgdj1TNnWaX8NTQ76YDXCBEK"
@@ -241,7 +241,7 @@ TEST(OAuthRequestSignerTest, SignPost2) {
TEST(OAuthRequestSignerTest, ParseAndSignPost1) {
GURL request_url("https://www.google.com/accounts/o8/GetOAuthToken"
- "?scope=https://www.google.com/accounts/OAuthLogin"
+ "?scope=https://accounts.google.com/OAuthLogin"
"&oauth_nonce=2oiE_aHdk5qRTz0L9C8Lq0g"
"&xaouth_display_name=Chromium"
"&oauth_timestamp=1308152953");
@@ -257,18 +257,18 @@ TEST(OAuthRequestSignerTest, ParseAndSignPost1) {
&signed_text));
ASSERT_EQ("oauth_consumer_key=anonymous"
"&oauth_nonce=2oiE_aHdk5qRTz0L9C8Lq0g"
- "&oauth_signature=F%2BINyO4xgon5wUxcdcxWC11Ep7Y%3D"
+ "&oauth_signature=vVlfv6dnV2%2Fx7TozS0Gf83zS2%2BQ%3D"
"&oauth_signature_method=HMAC-SHA1"
"&oauth_timestamp=1308152953"
"&oauth_token=4%2FX8x0r7bHif_VNCLjUMutxGkzo13d"
"&oauth_version=1.0"
- "&scope=https%3A%2F%2Fwww.google.com%2Faccounts%2FOAuthLogin"
+ "&scope=https%3A%2F%2Faccounts.google.com%2FOAuthLogin"
"&xaouth_display_name=Chromium",
signed_text);
}
TEST(OAuthRequestSignerTest, ParseAndSignPost2) {
- GURL request_url("https://www.google.com/accounts/OAuthGetAccessToken"
+ GURL request_url("https://accounts.google.com/OAuthGetAccessToken"
"?oauth_timestamp=1234567890"
"&oauth_nonce=17171717171717171");
std::string signed_text;
@@ -284,7 +284,7 @@ TEST(OAuthRequestSignerTest, ParseAndSignPost2) {
ASSERT_EQ(signed_text,
"oauth_consumer_key=anonymous"
"&oauth_nonce=17171717171717171"
- "&oauth_signature=BIuPHITrcptxSefd8H9Iazo8Pmo%3D"
+ "&oauth_signature=tPX2XqKQICWzopZ80CFGX%2F53DLo%3D"
"&oauth_signature_method=HMAC-SHA1"
"&oauth_timestamp=1234567890"
"&oauth_token=4%2FCcC-hgdj1TNnWaX8NTQ76YDXCBEK"
@@ -294,7 +294,7 @@ TEST(OAuthRequestSignerTest, ParseAndSignPost2) {
TEST(OAuthRequestSignerTest, SignAuthHeader) {
GURL request_url("https://www.google.com/accounts/o8/GetOAuthToken");
OAuthRequestSigner::Parameters parameters;
- parameters["scope"] = "https://www.google.com/accounts/OAuthLogin";
+ parameters["scope"] = "https://accounts.google.com/OAuthLogin";
parameters["oauth_nonce"] = "2oiE_aHdk5qRTz0L9C8Lq0g";
parameters["xaouth_display_name"] = "Chromium";
parameters["oauth_timestamp"] = "1308152953";
@@ -312,12 +312,12 @@ TEST(OAuthRequestSignerTest, SignAuthHeader) {
ASSERT_EQ("OAuth "
"oauth_consumer_key=\"johndoe\", "
"oauth_nonce=\"2oiE_aHdk5qRTz0L9C8Lq0g\", "
- "oauth_signature=\"y9GCmlGSvNuTAotxsBMyxb6j%2BE8%3D\", "
+ "oauth_signature=\"PFqDTaiyey1UObcvOyI4Ng2HXW0%3D\", "
"oauth_signature_method=\"HMAC-SHA1\", "
"oauth_timestamp=\"1308152953\", "
"oauth_token=\"4%2FVGY0MsQadcmO8VnCv9gnhoEooq1v\", "
"oauth_version=\"1.0\", "
- "scope=\"https%3A%2F%2Fwww.google.com%2Faccounts%2FOAuthLogin\", "
+ "scope=\"https%3A%2F%2Faccounts.google.com%2FOAuthLogin\", "
"xaouth_display_name=\"Chromium\"",
signed_text);
}
diff --git a/chrome/common/net/url_util.cc b/chrome/common/net/url_util.cc
index c72c208..9d58317 100644
--- a/chrome/common/net/url_util.cc
+++ b/chrome/common/net/url_util.cc
@@ -47,7 +47,6 @@ GURL AppendQueryParameter(const GURL& url,
return url.ReplaceComponents(replacements);
}
-
GURL AppendOrReplaceQueryParameter(const GURL& url,
const std::string& name,
const std::string& value) {
@@ -91,4 +90,30 @@ GURL AppendOrReplaceQueryParameter(const GURL& url,
return url.ReplaceComponents(replacements);
}
+bool GetValueForKeyInQuery(const GURL& url,
+ const std::string& search_key,
+ std::string* out_value) {
+ url_parse::Component query = url.parsed_for_possibly_invalid_spec().query;
+ url_parse::Component key, value;
+ while (url_parse::ExtractQueryKeyValue(
+ url.spec().c_str(), &query, &key, &value)) {
+ if (key.is_nonempty()) {
+ std::string key_string = url.spec().substr(key.begin, key.len);
+ if (key_string == search_key) {
+ if (value.is_nonempty()) {
+ *out_value = net::UnescapeURLComponent(
+ url.spec().substr(value.begin, value.len),
+ net::UnescapeRule::SPACES |
+ net::UnescapeRule::URL_SPECIAL_CHARS |
+ net::UnescapeRule::REPLACE_PLUS_WITH_SPACE);
+ } else {
+ *out_value = "";
+ }
+ return true;
+ }
+ }
+ }
+ return false;
+}
+
} // namespace chrome_common_net
diff --git a/chrome/common/net/url_util.h b/chrome/common/net/url_util.h
index c801d40..0f03916 100644
--- a/chrome/common/net/url_util.h
+++ b/chrome/common/net/url_util.h
@@ -52,6 +52,13 @@ GURL AppendOrReplaceQueryParameter(const GURL& url,
const std::string& name,
const std::string& value);
+// Looks for |search_key| in the query portion of |url|. Returns true if the
+// key is found and sets |out_value| to the unescaped value for the key.
+// Returns false if the key is not found.
+bool GetValueForKeyInQuery(const GURL& url,
+ const std::string& search_key,
+ std::string* out_value);
+
} // namespace chrome_common_net
#endif // CHROME_COMMON_NET_URL_UTIL_H_
diff --git a/chrome/common/net/url_util_unittest.cc b/chrome/common/net/url_util_unittest.cc
index ebcdfcc..1d7fdda 100644
--- a/chrome/common/net/url_util_unittest.cc
+++ b/chrome/common/net/url_util_unittest.cc
@@ -80,4 +80,23 @@ TEST(UrlUtilTest, AppendOrReplaceQueryParameter) {
"name", "new").spec());
}
+TEST(BrowserUrlUtilTest, GetValueForKeyInQuery) {
+ GURL url("http://example.com/path?name=value&boolParam&"
+ "url=http://test.com/q?n1%3Dv1%26n2");
+ std::string value;
+
+ // False when getting a non-existent query param.
+ EXPECT_FALSE(GetValueForKeyInQuery(url, "non-exist", &value));
+
+ // True when query param exist.
+ EXPECT_TRUE(GetValueForKeyInQuery(url, "name", &value));
+ EXPECT_EQ("value", value);
+
+ EXPECT_TRUE(GetValueForKeyInQuery(url, "boolParam", &value));
+ EXPECT_EQ("", value);
+
+ EXPECT_TRUE(GetValueForKeyInQuery(url, "url", &value));
+ EXPECT_EQ("http://test.com/q?n1=v1&n2", value);
+}
+
} // namespace chrome_common_net.
diff --git a/chrome/common/url_constants.cc b/chrome/common/url_constants.cc
index f5d2cb6c..b00a417 100644
--- a/chrome/common/url_constants.cc
+++ b/chrome/common/url_constants.cc
@@ -406,7 +406,7 @@ const char kSyncErrorsHelpURL[] =
"https://support.google.com/chrome/?p=settings_sync_error";
const char kSyncCreateNewAccountURL[] =
- "https://www.google.com/accounts/NewAccount?service=chromiumsync";
+ "https://accounts.google.com/NewAccount?service=chromiumsync";
#if defined(OS_CHROMEOS)
const char kNaturalScrollHelpURL[] =
diff --git a/chrome/test/data/autofill/heuristics/input/09_register_google.com.html b/chrome/test/data/autofill/heuristics/input/09_register_google.com.html
index da49c31..1a46498 100644
--- a/chrome/test/data/autofill/heuristics/input/09_register_google.com.html
+++ b/chrome/test/data/autofill/heuristics/input/09_register_google.com.html
@@ -1,12 +1,12 @@
<html>
-<!--Form Location: https://www.google.com/accounts/NewAccount?service=mail&continue=http://mail.google.com/mail/e-11-2dbc28e240ea30b136df0a1112b85e-47965d1ced79eec4c8289f321c90a286e20bf7be&type=2--><head>
+<!--Form Location: https://accounts.google.com/NewAccount?service=mail&continue=http://mail.google.com/mail/e-11-2dbc28e240ea30b136df0a1112b85e-47965d1ced79eec4c8289f321c90a286e20bf7be&type=2--><head>
<title>Google Accounts</title>
</head>
<body bgcolor="#ffffff" text="#000000" link="#0000cc" vlink="#551a8b" alink="#ff0000" dir="ltr" >
-<form action="/accounts/NewAccount?service=mail&amp;continue=http%3A%2F%2Fmail.google.com%2Fmail%2Fe-11-2dbc28e240ea30b136df0a1112b85e-47965d1ced79eec4c8289f321c90a286e20bf7be&amp;type=2" id="gaia_langform" method="POST">
+<form action="/NewAccount?service=mail&amp;continue=http%3A%2F%2Fmail.google.com%2Fmail%2Fe-11-2dbc28e240ea30b136df0a1112b85e-47965d1ced79eec4c8289f321c90a286e20bf7be&amp;type=2" id="gaia_langform" method="POST">
<input type="hidden" name="continue" id="continue" value="http://mail.google.com/mail/e-11-2dbc28e240ea30b136df0a1112b85e-47965d1ced79eec4c8289f321c90a286e20bf7be"><input type="hidden" name="service" id="service" value="mail"><input type="hidden" name="type" id="type" value="2"><font face="Arial, sans-serif" size="-1">
Change Language:
</font>
@@ -186,7 +186,7 @@
-<form id="createaccount" name="createaccount" action="https://www.google.com/accounts/CreateAccount?service=mail&amp;continue=http%3A%2F%2Fmail.google.com%2Fmail%2Fe-11-2dbc28e240ea30b136df0a1112b85e-47965d1ced79eec4c8289f321c90a286e20bf7be&amp;type=2" method="post" >
+<form id="createaccount" name="createaccount" action="https://accounts.google.com/CreateAccount?service=mail&amp;continue=http%3A%2F%2Fmail.google.com%2Fmail%2Fe-11-2dbc28e240ea30b136df0a1112b85e-47965d1ced79eec4c8289f321c90a286e20bf7be&amp;type=2" method="post" >
<input type="hidden" name="type" id="type" value="2"><input type="hidden" name="dsh" id="dsh" value="-3886667575044441698"><input type="hidden" name="ktl" id="ktl" value=""><input type="hidden" name="ktf" id="ktf" value=""><table cellpadding="2" bgcolor="white" cellspacing="0" border="0" width="1%"><tr><td>
<table bgcolor="#cbdced" border="0" cellpadding="2" cellspacing="0" width="1%"><tr>
<td>
@@ -1196,7 +1196,7 @@
</td>
<td>
<table>
-<input type="hidden" name="newaccounttoken" id="newaccounttoken" value="O-XLHLq-2XQCfAYrGACAVmvZaX28UZ9MpE8HjKCK9HyI_Y32Fq-YX72-g1dFymm8ZdW-hBXf5JDkzcbiTrm5bg:VJqoHuV9HXq_7cAiXLfhkw"><input type="hidden" name="newaccounturl" id="newaccounturl" value="https://www.google.com/accounts/Captcha?ctoken=O-XLHLq-2XQCfAYrGACAVmvZaX28UZ9MpE8HjKCK9HyI_Y32Fq-YX72-g1dFymm8ZdW-hBXf5JDkzcbiTrm5bg%3AVJqoHuV9HXq_7cAiXLfhkw"><tr>
+<input type="hidden" name="newaccounttoken" id="newaccounttoken" value="O-XLHLq-2XQCfAYrGACAVmvZaX28UZ9MpE8HjKCK9HyI_Y32Fq-YX72-g1dFymm8ZdW-hBXf5JDkzcbiTrm5bg:VJqoHuV9HXq_7cAiXLfhkw"><input type="hidden" name="newaccounturl" id="newaccounturl" value="https://accounts.google.com/Captcha?ctoken=O-XLHLq-2XQCfAYrGACAVmvZaX28UZ9MpE8HjKCK9HyI_Y32Fq-YX72-g1dFymm8ZdW-hBXf5JDkzcbiTrm5bg%3AVJqoHuV9HXq_7cAiXLfhkw"><tr>
<td valign="top">
</td>
<td valign="top">
@@ -1206,7 +1206,7 @@
<div>
<img src="#" width="200" height="70" alt="Visual verification">
</div>
- <input type="hidden" name="newaccounttoken_audio" id="newaccounttoken_audio" value="w_k-VT3CPgu_wWLPFVpTSgtjJX6ddAa-B9gmvFojyGBp_80fpvGc0IMP1zabdH1qd9g4kFAvFJC1gtNiBWIk1A:aLUA6gyZVfUmakt6Seh5VA"><input type="hidden" name="newaccounturl_audio" id="newaccounturl_audio" value="https://www.google.com/accounts/Captcha?ctoken=w_k-VT3CPgu_wWLPFVpTSgtjJX6ddAa-B9gmvFojyGBp_80fpvGc0IMP1zabdH1qd9g4kFAvFJC1gtNiBWIk1A%3AaLUA6gyZVfUmakt6Seh5VA"><div id="snd1"></div>
+ <input type="hidden" name="newaccounttoken_audio" id="newaccounttoken_audio" value="w_k-VT3CPgu_wWLPFVpTSgtjJX6ddAa-B9gmvFojyGBp_80fpvGc0IMP1zabdH1qd9g4kFAvFJC1gtNiBWIk1A:aLUA6gyZVfUmakt6Seh5VA"><input type="hidden" name="newaccounturl_audio" id="newaccounturl_audio" value="https://accounts.google.com/Captcha?ctoken=w_k-VT3CPgu_wWLPFVpTSgtjJX6ddAa-B9gmvFojyGBp_80fpvGc0IMP1zabdH1qd9g4kFAvFJC1gtNiBWIk1A%3AaLUA6gyZVfUmakt6Seh5VA"><div id="snd1"></div>
<div id="noEm"></div>
<div id="playAudio"></div>
</td>
@@ -1216,7 +1216,7 @@
<td>
<div>
<input type="text" size="22" id="newaccountcaptcha" name="newaccountcaptcha" value="" title="Type the characters you see or numbers you hear"><noscript>
- <a href="https://www.google.com/accounts/Captcha?ctoken=w_k-VT3CPgu_wWLPFVpTSgtjJX6ddAa-B9gmvFojyGBp_80fpvGc0IMP1zabdH1qd9g4kFAvFJC1gtNiBWIk1A%3AaLUA6gyZVfUmakt6Seh5VA" target="_blank">
+ <a href="https://accounts.google.com/Captcha?ctoken=w_k-VT3CPgu_wWLPFVpTSgtjJX6ddAa-B9gmvFojyGBp_80fpvGc0IMP1zabdH1qd9g4kFAvFJC1gtNiBWIk1A%3AaLUA6gyZVfUmakt6Seh5VA" target="_blank">
<img src="#" border="0" style="width: 1em; height: 1.2em;" align="absmiddle" alt="Listen and type the numbers you hear"></a>
</noscript>
<a href="http://www.google.com/support/accounts/bin/answer.py?answer=33974" target="_top">
@@ -1474,7 +1474,7 @@ Welcome to Google!
19. Changes to the Terms
- 19.1 Google may make changes to the Universal Terms or Additional Terms from time to time. When these changes are made, Google will make a new copy of the Universal Terms available at http://www.google.com/accounts/TOS?hl=en and any new Additional Terms will be made available to you from within, or through, the affected Services.
+ 19.1 Google may make changes to the Universal Terms or Additional Terms from time to time. When these changes are made, Google will make a new copy of the Universal Terms available at http://accounts.google.com/TOS?hl=en and any new Additional Terms will be made available to you from within, or through, the affected Services.
19.2 You understand and agree that if you use the Services after the date on which the Universal Terms or Additional Terms have changed, Google will treat your use as acceptance of the updated Universal Terms or Additional Terms.
diff --git a/chrome/test/data/google/google.html b/chrome/test/data/google/google.html
index 6fda776..5487da1 100644
--- a/chrome/test/data/google/google.html
+++ b/chrome/test/data/google/google.html
@@ -8,10 +8,10 @@ body,td,a,p,.h{font-family:arial,sans-serif}
<!--
function sf(){document.f.q.focus();}
window.rwt=function(b,d,f,j,k,g,l){var a=window.encodeURIComponent?encodeURIComponent:escape,h="",i="",c=b.href.split("#"),e="";if(d){h="&oi="+a(d)}if(f){i="&cad="+a(f)}if(g){e="&usg="+g}b.href="/url?sa=t"+h+i+"&ct="+a(j)+"&cd="+a(k)+"&url="+a(c[0]).replace(/\+/g,"%2B")+"&ei=qmSARdamFcf2YIrlwKoE"+e+l+(c[1]?"#"+c[1]:"");b.onmousedown="";return true};// -->
-</script></head><body onload="sf()" topmargin="3" alink="#ff0000" bgcolor="#ffffff" link="#0000cc" marginheight="3" text="#000000" vlink="#551a8b"><center><div nowrap="" style="padding-bottom: 4px;" width="100%" align="right"><font size="-1"><b>yourmom@gmail.com</b>&nbsp;|&nbsp;<a href="http://www.google.com/url?sa=p&amp;pref=ig&amp;pval=3&amp;q=http://www.google.com/ig%3Fhl%3Den&amp;usg=__yvmOvIrk79QYmDkrJAeuYO8jTmo=" onmousedown="return rwt(this,'promos','hppphou:en_us','pro','1','__zxxGHEJmJoAKTnuqkUevLLYrO4g=','&sig2=81iEbSYzM_7fDQpy6xZaIg')">Personalized Home</a>&nbsp;|&nbsp;<a href="https://www.google.com/accounts/ManageAccount">My Account</a>&nbsp;|&nbsp;<a href="http://www.google.com/accounts/Logout?continue=http://www.google.com/">Sign out</a></font></div><img alt="Google" src="logo.gif" height="110" width="276"><br><br><form action="/search" name="f"><script defer="defer"><!--
+</script></head><body onload="sf()" topmargin="3" alink="#ff0000" bgcolor="#ffffff" link="#0000cc" marginheight="3" text="#000000" vlink="#551a8b"><center><div nowrap="" style="padding-bottom: 4px;" width="100%" align="right"><font size="-1"><b>yourmom@gmail.com</b>&nbsp;|&nbsp;<a href="http://www.google.com/url?sa=p&amp;pref=ig&amp;pval=3&amp;q=http://www.google.com/ig%3Fhl%3Den&amp;usg=__yvmOvIrk79QYmDkrJAeuYO8jTmo=" onmousedown="return rwt(this,'promos','hppphou:en_us','pro','1','__zxxGHEJmJoAKTnuqkUevLLYrO4g=','&sig2=81iEbSYzM_7fDQpy6xZaIg')">Personalized Home</a>&nbsp;|&nbsp;<a href="https://accounts.google.com/ManageAccount">My Account</a>&nbsp;|&nbsp;<a href="http://www.google.com/accounts/Logout?continue=http://www.google.com/">Sign out</a></font></div><img alt="Google" src="logo.gif" height="110" width="276"><br><br><form action="/search" name="f"><script defer="defer"><!--
function qs(el){if(window.RegExp&&window.encodeURIComponent){var ue=el.href,qe=encodeURIComponent(document.f.q.value);if(ue.indexOf("q=")!=-1){el.href=ue.replace(new RegExp("q=[^&$]*"),"q="+qe);}else{el.href=ue+"&q="+qe;}}return 1;}
function togDisp(e){stopB(e);var elems=document.getElementsByName('more');for(var i=0;i<elems.length;i++){var obj=elems[i],dp="";if(obj.style.display==""){dp="none";}obj.style.display=dp;}return false;}
function stopB(e){if(!e)e=window.event;e.cancelBubble=true;}
document.onclick=function(event){var elems=document.getElementsByName('more');if(elems[0].style.display==""){togDisp(event);}}
//-->
-</script><table border="0" cellpadding="4" cellspacing="0"><tbody><tr><td nowrap="nowrap"><font size="-1"><b>Web</b>&nbsp;&nbsp;&nbsp;&nbsp;<a class="q" href="http://images.google.com/imghp?ie=UTF-8&amp;oe=UTF-8&amp;hl=en&amp;tab=wi" onclick="return qs(this);">Images</a>&nbsp;&nbsp;&nbsp;&nbsp;<a class="q" href="http://video.google.com/?ie=UTF-8&amp;oe=UTF-8&amp;hl=en&amp;tab=wv" onclick="return qs(this);">Video</a>&nbsp;&nbsp;&nbsp;&nbsp;<a class="q" href="http://news.google.com/nwshp?ie=UTF-8&amp;oe=UTF-8&amp;hl=en&amp;tab=wn" onclick="return qs(this);">News</a>&nbsp;&nbsp;&nbsp;&nbsp;<a class="q" href="http://www.google.com/maps?ie=UTF-8&amp;oe=UTF-8&amp;hl=en&amp;tab=wl" onclick="return qs(this);">Maps</a>&nbsp;&nbsp;&nbsp;&nbsp;<!--"/*"/*--><font size="-1"><a class="q" onclick="return window.qs?qs(this):1" href="http://127.0.0.1:4664/&amp;s=oTNhxyxrnKvgsKLBW5ECAV9apZw">Desktop</a></font>&nbsp;&nbsp;&nbsp;&nbsp;<font size="-1"><a class="q" href="http://search/">Moma</a></font>&nbsp;&nbsp;&nbsp;&nbsp;<b><a href="http://www.google.com/intl/en/options/" class="q" onclick="this.blur();return togDisp(event);">more&nbsp;»</a></b><span name="more" id="more" style="border: 1px solid rgb(51, 102, 153); margin: -0.5ex 2ex; padding: 0pt 0pt 0.5ex 0.8ex; background: rgb(255, 255, 255) none repeat scroll 0%; display: none; position: absolute; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; width: 16ex; line-height: 1.9; z-index: 1000;" onclick="stopB(event);"><a href="#" onclick="return togDisp(event);"><img src="x2.gif" alt="Close menu" align="right" border="0" height="12" hspace="4" vspace="4" width="12"></a><a class="q" href="http://books.google.com/bkshp?ie=UTF-8&amp;oe=UTF-8&amp;hl=en&amp;tab=wp" onclick="return qs(this);">Books</a><br><a class="q" href="http://froogle.google.com/frghp?ie=UTF-8&amp;oe=UTF-8&amp;hl=en&amp;tab=wf" onclick="return qs(this);">Froogle</a><br><a class="q" href="http://groups.google.com/grphp?ie=UTF-8&amp;oe=UTF-8&amp;hl=en&amp;tab=wg" onclick="return qs(this);">Groups</a><br><a class="q" href="http://scholar.google.com/schhp?ie=UTF-8&amp;oe=UTF-8&amp;hl=en&amp;tab=ws" onclick="return qs(this);">Scholar</a><br><a href="http://www.google.com/intl/en/options/" class="q"><b>even more »</b></a></span></font></td></tr></tbody></table><table cellpadding="0" cellspacing="0"><tbody><tr valign="top"><td width="25%">&nbsp;</td><td align="center" nowrap="nowrap"><input name="hl" value="en" type="hidden"><input maxlength="2048" name="q" size="55" title="Google Search" value=""><br><input name="btnG" value="Google Search" type="submit"><input name="btnI" value="I'm Feeling Lucky" type="submit"></td><td nowrap="nowrap" width="25%"><font size="-2">&nbsp;&nbsp;<a href="http://www.google.com/advanced_search?hl=en">Advanced Search</a><br>&nbsp;&nbsp;<a href="http://www.google.com/preferences?hl=en">Preferences</a><br>&nbsp;&nbsp;<a href="http://www.google.com/language_tools?hl=en">Language Tools</a></font></td></tr></tbody></table></form><br><font size="-1"><a href="http://maps.google.com/maps?f=l" onmousedown="return rwt(this,'promos','hppweb:en_us','pro','1','__cRFkyGl8vmPJFLoVMwLVZG0r-Rs=','&sig2=y1UbGzpOnQEIuHK0FM2ztw')">Google Maps</a>: Find local stores and directions for holiday shopping.</font><br><br><br><font size="-1"><a href="http://www.google.com/intl/en/ads/">Advertising&nbsp;Programs</a> - <a href="http://www.google.com/services/">Business Solutions</a> - <a href="http://www.google.com/intl/en/about.html">About Google</a></font><p><font size="-2">©2006 Google</font></p></center></body></html> \ No newline at end of file
+</script><table border="0" cellpadding="4" cellspacing="0"><tbody><tr><td nowrap="nowrap"><font size="-1"><b>Web</b>&nbsp;&nbsp;&nbsp;&nbsp;<a class="q" href="http://images.google.com/imghp?ie=UTF-8&amp;oe=UTF-8&amp;hl=en&amp;tab=wi" onclick="return qs(this);">Images</a>&nbsp;&nbsp;&nbsp;&nbsp;<a class="q" href="http://video.google.com/?ie=UTF-8&amp;oe=UTF-8&amp;hl=en&amp;tab=wv" onclick="return qs(this);">Video</a>&nbsp;&nbsp;&nbsp;&nbsp;<a class="q" href="http://news.google.com/nwshp?ie=UTF-8&amp;oe=UTF-8&amp;hl=en&amp;tab=wn" onclick="return qs(this);">News</a>&nbsp;&nbsp;&nbsp;&nbsp;<a class="q" href="http://www.google.com/maps?ie=UTF-8&amp;oe=UTF-8&amp;hl=en&amp;tab=wl" onclick="return qs(this);">Maps</a>&nbsp;&nbsp;&nbsp;&nbsp;<!--"/*"/*--><font size="-1"><a class="q" onclick="return window.qs?qs(this):1" href="http://127.0.0.1:4664/&amp;s=oTNhxyxrnKvgsKLBW5ECAV9apZw">Desktop</a></font>&nbsp;&nbsp;&nbsp;&nbsp;<font size="-1"><a class="q" href="http://search/">Moma</a></font>&nbsp;&nbsp;&nbsp;&nbsp;<b><a href="http://www.google.com/intl/en/options/" class="q" onclick="this.blur();return togDisp(event);">more&nbsp;»</a></b><span name="more" id="more" style="border: 1px solid rgb(51, 102, 153); margin: -0.5ex 2ex; padding: 0pt 0pt 0.5ex 0.8ex; background: rgb(255, 255, 255) none repeat scroll 0%; display: none; position: absolute; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; width: 16ex; line-height: 1.9; z-index: 1000;" onclick="stopB(event);"><a href="#" onclick="return togDisp(event);"><img src="x2.gif" alt="Close menu" align="right" border="0" height="12" hspace="4" vspace="4" width="12"></a><a class="q" href="http://books.google.com/bkshp?ie=UTF-8&amp;oe=UTF-8&amp;hl=en&amp;tab=wp" onclick="return qs(this);">Books</a><br><a class="q" href="http://froogle.google.com/frghp?ie=UTF-8&amp;oe=UTF-8&amp;hl=en&amp;tab=wf" onclick="return qs(this);">Froogle</a><br><a class="q" href="http://groups.google.com/grphp?ie=UTF-8&amp;oe=UTF-8&amp;hl=en&amp;tab=wg" onclick="return qs(this);">Groups</a><br><a class="q" href="http://scholar.google.com/schhp?ie=UTF-8&amp;oe=UTF-8&amp;hl=en&amp;tab=ws" onclick="return qs(this);">Scholar</a><br><a href="http://www.google.com/intl/en/options/" class="q"><b>even more »</b></a></span></font></td></tr></tbody></table><table cellpadding="0" cellspacing="0"><tbody><tr valign="top"><td width="25%">&nbsp;</td><td align="center" nowrap="nowrap"><input name="hl" value="en" type="hidden"><input maxlength="2048" name="q" size="55" title="Google Search" value=""><br><input name="btnG" value="Google Search" type="submit"><input name="btnI" value="I'm Feeling Lucky" type="submit"></td><td nowrap="nowrap" width="25%"><font size="-2">&nbsp;&nbsp;<a href="http://www.google.com/advanced_search?hl=en">Advanced Search</a><br>&nbsp;&nbsp;<a href="http://www.google.com/preferences?hl=en">Preferences</a><br>&nbsp;&nbsp;<a href="http://www.google.com/language_tools?hl=en">Language Tools</a></font></td></tr></tbody></table></form><br><font size="-1"><a href="http://maps.google.com/maps?f=l" onmousedown="return rwt(this,'promos','hppweb:en_us','pro','1','__cRFkyGl8vmPJFLoVMwLVZG0r-Rs=','&sig2=y1UbGzpOnQEIuHK0FM2ztw')">Google Maps</a>: Find local stores and directions for holiday shopping.</font><br><br><br><font size="-1"><a href="http://www.google.com/intl/en/ads/">Advertising&nbsp;Programs</a> - <a href="http://www.google.com/services/">Business Solutions</a> - <a href="http://www.google.com/intl/en/about.html">About Google</a></font><p><font size="-2">©2006 Google</font></p></center></body></html>
diff --git a/chrome/test/functional/passwords.py b/chrome/test/functional/passwords.py
index 5bc328f..a1b455f 100755
--- a/chrome/test/functional/passwords.py
+++ b/chrome/test/functional/passwords.py
@@ -15,9 +15,9 @@ class PasswordTest(pyauto.PyUITest):
"""Tests that passwords work correctly."""
INFOBAR_TYPE = 'password_infobar'
- URL = 'https://www.google.com/accounts/ServiceLogin'
- URL_HTTPS = 'https://www.google.com/accounts/Login'
- URL_LOGOUT = 'https://www.google.com/accounts/Logout'
+ URL = 'https://accounts.google.com/ServiceLogin'
+ URL_HTTPS = 'https://accounts.google.com/Login'
+ URL_LOGOUT = 'https://accounts.google.com/Logout'
def Debug(self):
"""Test method for experimentation.
diff --git a/chrome/test/functional/test_utils.py b/chrome/test/functional/test_utils.py
index e20f69f..1901c79 100644
--- a/chrome/test/functional/test_utils.py
+++ b/chrome/test/functional/test_utils.py
@@ -81,7 +81,7 @@ def GoogleAccountsLogin(test, username, password, tab_index=0, windex=0):
tab_index: The tab index, default is 0.
windex: The window index, default is 0.
"""
- test.NavigateToURL('https://www.google.com/accounts/', windex, tab_index)
+ test.NavigateToURL('https://accounts.google.com/', windex, tab_index)
email_id = 'document.getElementById("Email").value = "%s"; ' \
'window.domAutomationController.send("done")' % username
password = 'document.getElementById("Passwd").value = "%s"; ' \
diff --git a/remoting/webapp/manifest.json b/remoting/webapp/manifest.json
index a61615f6..2a1335f 100644
--- a/remoting/webapp/manifest.json
+++ b/remoting/webapp/manifest.json
@@ -22,8 +22,7 @@
}
],
"permissions": [
- "https://accounts.google.com/o/oauth2/*",
- "https://www.google.com/accounts/*",
+ "https://accounts.google.com/*",
"https://www.googleapis.com/chromoting/*",
"https://talkgadget.google.com/talkgadget/*",
"https://relay.google.com/*",