public function getIndex() { $browser = new Browser(); $os = new Os(); $isMac = $os->getName() === Os::OSX; // We going to be optimistic and assume that browsers support pasting unless we know they don't $browserName = $browser->getName(); $crapBrowsers = []; $canPaste = !$os->isMobile() && !in_array($browserName, $crapBrowsers); return View::make('uploader.index', ['isMac' => $isMac, 'canPaste' => $canPaste]); }
/** * Returns and initializes $this->sessionSection. * @return Nette\Http\SessionSection */ protected function getSessionSection($need) { $ret = parent::getSessionSection($need); if (!is_null($ret)) { if ($ret->authenticated && $ret->identity->browser !== $this->browser->getName() && $ret->identity->browserVersion !== $this->browser->getVersion()) { $ret->authenticated = FALSE; $this->sessionHandler->regenerateId(); $ret->reason = static::MANUAL; $ret->authTime = NULL; } } return $ret; }
/** * @param string $event * @param array $properties * * @internal param array $data */ public function track($event, $properties = []) { $browserInfo = new Browser(); $osInfo = new Os(); $deviceInfo = new Device(); $browserVersion = trim(str_replace('unknown', '', $browserInfo->getName() . ' ' . $browserInfo->getVersion())); $osVersion = trim(str_replace('unknown', '', $osInfo->getName() . ' ' . $osInfo->getVersion())); $hardwareVersion = trim(str_replace('unknown', '', $deviceInfo->getName())); $data = ['Url' => $this->request->getUri(), 'Operating System' => $osVersion, 'Hardware' => $hardwareVersion, '$browser' => $browserVersion, 'Referrer' => $this->request->header('referer'), '$referring_domain' => $this->request->header('referer') ? parse_url($this->request->header('referer'))['host'] : null, 'ip' => $this->request->ip()]; $data = array_filter($data); $properties = array_filter($properties); if (!array_key_exists('$browser', $data) && $browserInfo->isRobot()) { $data['$browser'] = 'Robot'; } parent::track($event, $data + $properties); }
/** * Detect what this browser supports to minimize processing * Sort by priority of codec to use * -Patent Unencumbered first * -Patent encumbered in the middle, first m4a as it's not as bad as mp3 * -Wav always last (as it's filesize is HUGE) * Used: html5test.com/results/search.html * @return array array of browser supported formats */ private function detectSupportedFormats() { $browser = new Browser(); $formats = array(); switch ($browser->getName()) { case Browser::OPERA: case Browser::KONQUEROR: case Browser::FIREBIRD: case Browser::FIREFOX: case Browser::SEAMONKEY: case Browser::ICEWEASEL: case Browser::MOZILLA: case Browser::CHROME: case Browser::BLACKBERRY: $formats = array("oga", "m4a", "mp3", "wav"); break; case Browser::ICAB: case Browser::NOKIA_S60: case Browser::NOKIA: case Browser::EDGE: case Browser::YANDEX: case Browser::PHOENIX: case Browser::SAFARI: $formats = array("m4a", "mp3", "wav"); break; case Browser::VIVALDI: case Browser::SHIRETOKO: case Browser::ICECAT: $formats = array("oga", "wav"); break; case Browser::IE: case Browser::POCKET_IE: $formats = array("m4a", "mp3"); break; case Browser::OMNIWEB: $formats = array("mp3", "wav"); break; case Browser::WEBTV: case Browser::OPERA_MINI: case Browser::AMAYA: case Browser::LYNX: case Browser::NAVIGATOR: case Browser::NETSCAPE_NAVIGATOR: case Browser::GOOGLEBOT: case Browser::SLURP: case Browser::W3CVALIDATOR: case Browser::MSNBOT: case Browser::GALEON: case Browser::MSN: case Browser::NETPOSITIVE: case Browser::GSA: $formats = array(); break; default: //not sure of the browser type so just do them all $formats = array("oga", "wav", "mp3", "m4a"); break; } return $formats; }
/** * * @param Model\Browser $browser * @param BrowserDetector\Browser $browserRaw */ private function hydrateBrowser(Model\Browser $browser, BrowserDetector\Browser $browserRaw) { $browser->setName($this->getRealResult($browserRaw->getName())); $browser->getVersion()->setComplete($this->getRealResult($browserRaw->getVersion())); }