diff --git a/examples/detectsniff.js b/examples/detectsniff.js new file mode 100644 index 00000000..d6b45d36 --- /dev/null +++ b/examples/detectsniff.js @@ -0,0 +1,67 @@ +/** + * Copyright 2017 Google Inc. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +var Browser = require('../lib/Browser'); + +if (process.argv.length < 3) { + console.log('Usage: detectsniff.js '); + return; +} + +var address = process.argv[2]; +console.log('Checking ' + address + '...'); + +var browser = new Browser(); +browser.newPage().then(async page => { + await page.evaluateOnInitialized(function() { + (function () { + var userAgent = window.navigator.userAgent, + platform = window.navigator.platform; + + window.navigator = { + appCodeName: 'Mozilla', + appName: 'Netscape', + cookieEnabled: false, + sniffed: false + }; + + window.navigator.__defineGetter__('userAgent', function () { + window.navigator.sniffed = true; + return userAgent; + }); + + window.navigator.__defineGetter__('platform', function () { + window.navigator.sniffed = true; + return platform; + }); + })(); + }); + var success = await page.navigate(address); + if (!success) { + console.log('FAIL to load the address'); + browser.close(); + return; + } + setTimeout(async function () { + var sniffed = await page.evaluate(() => navigator.sniffed); + if (sniffed) { + console.log('The page tried to sniff the user agent.'); + } else { + console.log('The page did not try to sniff the user agent.'); + } + browser.close(); + }, 1500); +});