Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(62)

Side by Side Diff: Source/core/page/NavigatorID.cpp

Issue 22927015: Introduce NavigatorID IDL interface (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebase on master Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « Source/core/page/NavigatorID.h ('k') | Source/core/page/NavigatorID.idl » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
OLDNEW
« no previous file with comments | « Source/core/page/NavigatorID.h ('k') | Source/core/page/NavigatorID.idl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698