| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2006, 2007, 2008, 2010 Apple Inc. All rights reserved. | 2 * Copyright (C) 2008 Apple Inc. All Rights Reserved. |
| 3 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) | |
| 4 * Copyright (C) 2013 Samsung Electronics. All rights reserved. | 3 * Copyright (C) 2013 Samsung Electronics. All rights reserved. |
| 5 * | 4 * |
| 6 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 7 * modification, are permitted provided that the following conditions are | 6 * modification, are permitted provided that the following conditions are |
| 8 * met: | 7 * met: |
| 9 * | 8 * |
| 10 * * Redistributions of source code must retain the above copyright | 9 * * Redistributions of source code must retain the above copyright |
| 11 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
| 12 * * Redistributions in binary form must reproduce the above | 11 * * Redistributions in binary form must reproduce the above |
| 13 * copyright notice, this list of conditions and the following disclaimer | 12 * copyright notice, this list of conditions and the following disclaimer |
| (...skipping 10 matching lines...) Expand all Loading... |
| 24 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | 23 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
| 25 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | 24 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
| 26 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 25 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| 27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 26 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| 28 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 27 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 28 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| 30 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 29 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 31 */ | 30 */ |
| 32 | 31 |
| 33 #include "config.h" | 32 #include "config.h" |
| 34 #include "core/page/DOMWindowTimers.h" | 33 #include "NavigatorID.h" |
| 35 | 34 |
| 36 #include "core/dom/EventTarget.h" | 35 #include "core/page/NavigatorBase.h" |
| 37 #include "core/page/DOMTimer.h" | 36 #include "wtf/CPU.h" |
| 37 |
| 38 #if OS(LINUX) |
| 39 #include "sys/utsname.h" |
| 40 #include "wtf/StdLibExtras.h" |
| 41 #endif |
| 42 |
| 43 #ifndef WEBCORE_NAVIGATOR_PLATFORM |
| 44 #if OS(DARWIN) && (CPU(PPC) || CPU(PPC64)) |
| 45 #define WEBCORE_NAVIGATOR_PLATFORM "MacPPC" |
| 46 #elif OS(DARWIN) && (CPU(X86) || CPU(X86_64)) |
| 47 #define WEBCORE_NAVIGATOR_PLATFORM "MacIntel" |
| 48 #elif OS(WINDOWS) |
| 49 #define WEBCORE_NAVIGATOR_PLATFORM "Win32" |
| 50 #else |
| 51 #define WEBCORE_NAVIGATOR_PLATFORM "" |
| 52 #endif |
| 53 #endif // ifndef WEBCORE_NAVIGATOR_PLATFORM |
| 38 | 54 |
| 39 namespace WebCore { | 55 namespace WebCore { |
| 40 | 56 |
| 41 namespace DOMWindowTimers { | 57 String NavigatorID::appName(const NavigatorBase*) |
| 42 | |
| 43 int setTimeout(EventTarget* eventTarget, PassOwnPtr<ScheduledAction> action, int
timeout) | |
| 44 { | 58 { |
| 45 return DOMTimer::install(eventTarget->scriptExecutionContext(), action, time
out, true); | 59 return "Netscape"; |
| 46 } | 60 } |
| 47 | 61 |
| 48 int setInterval(EventTarget* eventTarget, PassOwnPtr<ScheduledAction> action, in
t timeout) | 62 String NavigatorID::appVersion(const NavigatorBase* navigator) |
| 49 { | 63 { |
| 50 return DOMTimer::install(eventTarget->scriptExecutionContext(), action, time
out, false); | 64 // Version is everything in the user agent string past the "Mozilla/" prefix
. |
| 65 const String& agent = navigator->userAgent(); |
| 66 return agent.substring(agent.find('/') + 1); |
| 51 } | 67 } |
| 52 | 68 |
| 53 void clearTimeout(EventTarget* eventTarget, int timeoutID) | 69 String NavigatorID::userAgent(const NavigatorBase* navigator) |
| 54 { | 70 { |
| 55 if (ScriptExecutionContext* context = eventTarget->scriptExecutionContext()) | 71 return navigator->userAgent(); |
| 56 DOMTimer::removeByID(context, timeoutID); | |
| 57 } | 72 } |
| 58 | 73 |
| 59 void clearInterval(EventTarget* eventTarget, int timeoutID) | 74 String NavigatorID::platform(const NavigatorBase*) |
| 60 { | 75 { |
| 61 if (ScriptExecutionContext* context = eventTarget->scriptExecutionContext()) | 76 #if OS(LINUX) |
| 62 DOMTimer::removeByID(context, timeoutID); | 77 if (!String(WEBCORE_NAVIGATOR_PLATFORM).isEmpty()) |
| 78 return WEBCORE_NAVIGATOR_PLATFORM; |
| 79 struct utsname osname; |
| 80 DEFINE_STATIC_LOCAL(String, platformName, (uname(&osname) >= 0 ? String(osna
me.sysname) + String(" ") + String(osname.machine) : emptyString())); |
| 81 return platformName; |
| 82 #else |
| 83 return WEBCORE_NAVIGATOR_PLATFORM; |
| 84 #endif |
| 63 } | 85 } |
| 64 | 86 |
| 65 } // namespace DOMWindowTimers | |
| 66 | |
| 67 } // namespace WebCore | 87 } // namespace WebCore |
| OLD | NEW |