OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 /** | 5 /** |
6 * @fileoverview | 6 * @fileoverview |
7 * Script to be injected into SAML provider pages, serving three main purposes: | 7 * Script to be injected into SAML provider pages, serving three main purposes: |
8 * 1. Signal hosting extension that an external page is loaded so that the | 8 * 1. Signal hosting extension that an external page is loaded so that the |
9 * UI around it should be changed accordingly; | 9 * UI around it should be changed accordingly; |
10 * 2. Provide an API via which the SAML provider can pass user credentials to | 10 * 2. Provide an API via which the SAML provider can pass user credentials to |
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
127 * Handles 'change' event in the scraped password fields. | 127 * Handles 'change' event in the scraped password fields. |
128 * @param {number} index The index of the password fields in | 128 * @param {number} index The index of the password fields in |
129 * |passwordFields_|. | 129 * |passwordFields_|. |
130 */ | 130 */ |
131 onPasswordChanged_: function(index) { | 131 onPasswordChanged_: function(index) { |
132 this.maybeSendUpdatedPassword(index); | 132 this.maybeSendUpdatedPassword(index); |
133 } | 133 } |
134 }; | 134 }; |
135 | 135 |
136 /** | 136 /** |
137 * Returns true if the script is injected into auth main page. | |
138 */ | |
139 function isAuthMainPage() { | |
140 return window.location.href.indexOf( | |
141 'chrome-extension://mfffpogegjflfpflabcdkioaeobkgjik/main.html') == 0; | |
142 } | |
143 | |
144 /** | |
145 * Heuristic test whether the current page is a relevant SAML page. | 137 * Heuristic test whether the current page is a relevant SAML page. |
146 * Current implementation checks if it is a http or https page and has | 138 * Current implementation checks if it is a http or https page and has |
147 * some content in it. | 139 * some content in it. |
148 * @return {boolean} Whether the current page looks like a SAML page. | 140 * @return {boolean} Whether the current page looks like a SAML page. |
149 */ | 141 */ |
150 function isSAMLPage() { | 142 function isSAMLPage() { |
151 var url = window.location.href; | 143 var url = window.location.href; |
152 if (!url.match(/^(http|https):\/\//)) | 144 if (!url.match(/^(http|https):\/\//)) |
153 return false; | 145 return false; |
154 | 146 |
155 return document.body.scrollWidth > 50 && document.body.scrollHeight > 50; | 147 return document.body.scrollWidth > 50 && document.body.scrollHeight > 50; |
156 } | 148 } |
157 | 149 |
158 if (isAuthMainPage()) { | 150 if (isSAMLPage()) { |
159 // Use an event to signal the auth main to enable SAML support. | 151 var pageURL = window.location.href; |
160 var e = document.createEvent('Event'); | |
161 e.initEvent('enableSAML', false, false); | |
162 document.dispatchEvent(e); | |
163 } else { | |
164 var channel; | |
165 var passwordScraper; | |
166 if (isSAMLPage()) { | |
167 var pageURL = window.location.href; | |
168 | 152 |
169 channel = new Channel(); | 153 var channel = new Channel(); |
170 channel.connect('injected'); | 154 channel.connect('injected'); |
171 channel.send({name: 'pageLoaded', url: pageURL}); | 155 channel.send({name: 'pageLoaded', url: pageURL}); |
172 | 156 |
173 apiCallForwarder = new APICallForwarder(); | 157 var apiCallForwarder = new APICallForwarder(); |
174 apiCallForwarder.init(channel); | 158 apiCallForwarder.init(channel); |
175 | 159 |
176 passwordScraper = new PasswordInputScraper(); | 160 var passwordScraper = new PasswordInputScraper(); |
177 passwordScraper.init(channel, pageURL, document.documentElement); | 161 passwordScraper.init(channel, pageURL, document.documentElement); |
178 } | |
179 } | 162 } |
180 })(); | 163 })(); |
OLD | NEW |