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 |