Typo in comment for bracer ending block
[WebKit-https.git] / WebKit / gtk / webkit / webkitprivate.cpp
1 /*
2  * Copyright (C) 2007 Holger Hans Peter Freyther
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Library General Public
6  * License as published by the Free Software Foundation; either
7  * version 2 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Library General Public License for more details.
13  *
14  * You should have received a copy of the GNU Library General Public License
15  * along with this library; see the file COPYING.LIB.  If not, write to
16  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17  * Boston, MA 02110-1301, USA.
18  */
19
20 #include "config.h"
21
22 #include "webkitprivate.h"
23 #include "ChromeClientGtk.h"
24 #include "FrameLoader.h"
25 #include "FrameLoaderClientGtk.h"
26 #include "Logging.h"
27 #include "NotImplemented.h"
28 #include "PageCache.h"
29 #include "PageGroup.h"
30 #include "Pasteboard.h"
31 #include "PasteboardHelperGtk.h"
32 #include <kjs/InitializeThreading.h>
33
34 #if ENABLE(DATABASE)
35 #include "DatabaseTracker.h"
36 #endif
37
38 using namespace WebCore;
39
40 namespace WebKit {
41
42 WebKitWebView* getViewFromFrame(WebKitWebFrame* frame)
43 {
44     WebKitWebFramePrivate* priv = frame->priv;
45     return priv->webView;
46 }
47
48 WebCore::Frame* core(WebKitWebFrame* frame)
49 {
50     if (!frame)
51         return 0;
52
53     WebKitWebFramePrivate* priv = frame->priv;
54     return priv ? priv->coreFrame.get() : 0;
55 }
56
57 WebKitWebFrame* kit(WebCore::Frame* coreFrame)
58 {
59     if (!coreFrame)
60         return 0;
61
62     ASSERT(coreFrame->loader());
63     WebKit::FrameLoaderClient* client = static_cast<WebKit::FrameLoaderClient*>(coreFrame->loader()->client());
64     return client ? client->webFrame() : 0;
65 }
66
67 WebCore::Page* core(WebKitWebView* webView)
68 {
69     if (!webView)
70         return 0;
71
72     WebKitWebViewPrivate* priv = webView->priv;
73     return priv ? priv->corePage : 0;
74 }
75
76 WebKitWebView* kit(WebCore::Page* corePage)
77 {
78     if (!corePage)
79         return 0;
80
81     ASSERT(corePage->chrome());
82     WebKit::ChromeClient* client = static_cast<WebKit::ChromeClient*>(corePage->chrome()->client());
83     return client ? client->webView() : 0;
84 }
85
86 } /** end namespace WebKit */
87
88 void webkit_init()
89 {
90     static bool isInitialized = false;
91     if (isInitialized)
92         return;
93     isInitialized = true;
94
95     KJS::initializeThreading();
96     WebCore::InitializeLoggingChannelsIfNecessary();
97
98     // Page cache capacity (in pages). Comment from Mac port:
99     // (Research indicates that value / page drops substantially after 3 pages.)
100     // FIXME: Expose this with an API and/or calculate based on available resources
101     WebCore::pageCache()->setCapacity(3);
102
103 #if ENABLE(DATABASE)
104     // FIXME: It should be possible for client applications to override this default location
105     gchar* databaseDirectory = g_build_filename(g_get_user_data_dir(), "webkit", "databases", NULL);
106     WebCore::DatabaseTracker::tracker().setDatabaseDirectoryPath(databaseDirectory);
107     g_free(databaseDirectory);
108 #endif
109
110     PageGroup::setShouldTrackVisitedLinks(true);
111
112     Pasteboard::generalPasteboard()->setHelper(new WebKit::PasteboardHelperGtk());
113 }