1/*
2* Copyright (C) 2010 Apple Inc. All rights reserved.
3*
4* Redistribution and use in source and binary forms, with or without
5* modification, are permitted provided that the following conditions
6* are met:
7* 1. Redistributions of source code must retain the above copyright
8*    notice, this list of conditions and the following disclaimer.
9* 2. Redistributions in binary form must reproduce the above copyright
10*    notice, this list of conditions and the following disclaimer in the
11*    documentation and/or other materials provided with the distribution.
12*
13* THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23* THE POSSIBILITY OF SUCH DAMAGE.
24*/
25
26#include "config.h"
27#include "WebPageProxy.h"
28#include "WebPopupMenuProxyWin.h"
29
30#include "resource.h"
31#include <tchar.h>
32#include <WebCore/SystemInfo.h>
33#include <WebCore/WebCoreInstanceHandle.h>
34#include <wtf/StdLibExtras.h>
35#include <wtf/text/StringConcatenate.h>
36
37using namespace WebCore;
38
39namespace WebKit {
40
41static String userVisibleWebKitVersionString()
42{
43    LPWSTR buildNumberStringPtr;
44    if (!::LoadStringW(instanceHandle(), BUILD_NUMBER, reinterpret_cast<LPWSTR>(&buildNumberStringPtr), 0) || !buildNumberStringPtr)
45        return "534+";
46
47    return buildNumberStringPtr;
48}
49
50String WebPageProxy::standardUserAgent(const String& applicationNameForUserAgent)
51{
52    DEFINE_STATIC_LOCAL(String, osVersion, (windowsVersionForUAString()));
53    DEFINE_STATIC_LOCAL(String, webKitVersion, (userVisibleWebKitVersionString()));
54
55    return makeString("Mozilla/5.0 (", osVersion, ") AppleWebKit/", webKitVersion, " (KHTML, like Gecko)", applicationNameForUserAgent.isEmpty() ? "" : " ", applicationNameForUserAgent);
56}
57
58void WebPageProxy::setPopupMenuSelectedIndex(int32_t selectedIndex)
59{
60    if (!m_activePopupMenu)
61        return;
62
63    static_cast<WebPopupMenuProxyWin*>(m_activePopupMenu.get())->setFocusedIndex(selectedIndex);
64}
65
66} // namespace WebKit
67