[GTK] Add methods to add a user style sheet to the WebKit2 GTK+ API
[WebKit-https.git] / Source / WebKit2 / ChangeLog
1 2013-04-26  Martin Robinson  <mrobinson@igalia.com>
2
3         [GTK] Add methods to add a user style sheet to the WebKit2 GTK+ API
4         https://bugs.webkit.org/show_bug.cgi?id=99081
5
6         Reviewed by Carlos Garcia Campos, Gustavo Noronha Silva, and Benjamin Poulain.
7
8         Add methods to WebKitWebViewGroup to add and remove user style sheets.
9         This allows clients to inject style sheets into pages with a set of
10         rules for when those style sheets apply.
11
12         * UIProcess/API/gtk/WebKitWebViewGroup.cpp:
13         (toImmutableArray): Added this helper which converts the GList* parameters into
14         ImmutableArrays for use with the WebKit2 internal API.
15         (webkit_web_view_group_add_user_style_sheet): Added new API for adding a style sheet.
16         (webkit_web_view_group_remove_all_user_style_sheets): Add new API for clearing out all style sheets.
17         * UIProcess/API/gtk/WebKitWebViewGroup.h: Added new method declarations.
18         * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Added new API to the documentation.
19         * UIProcess/API/gtk/tests/TestWebKitWebViewGroup.cpp: Added a test for the new API.
20         (isStyleSheetInjectedForURLAtPath): Function to check whether the style sheet has been injected for a given URL.
21         (fillURLListFromPaths): Helper which converts paths passed via varargs into a whitelist or blacklist.
22         (removeOldInjectedStyleSheetsAndResetLists): Function to start afresh.
23         (testWebViewGroupInjectedStyleSheet): The actual test.
24         (serverCallback): Server callback for use with the test. We cannot use loadHTML or
25         loadAlternateHTML, because that checks the whitelist and blacklist against about:blank.
26         (beforeAll): Initialize the server and new test.
27         (afterAll): Clean up the server.
28
29 2013-04-26  Simon Cooper  <scooper@apple.com>
30
31         Permit ~/Library or ~/Library/Preferences to be symlinks
32         https://bugs.webkit.org/show_bug.cgi?id=115142
33         <rdar://problem/12953603>
34
35         Reviewed by Alexey Proskuryakov.
36
37         Pass in two new parameters which are the resolved paths to ~/Library
38         and ~/Library/Preferences. Added new expansion functions and
39         substituted the new functions for home-regex, home-subpath and
40         home-literal for places referencing resources in "~/Library" or
41         "~/Library/Preferences".
42
43         * Resources/PlugInSandboxProfiles/com.apple.QuickTime Plugin.plugin.sb:
44         * Resources/PlugInSandboxProfiles/com.apple.WebKit.plugin-common.sb:
45         * Resources/PlugInSandboxProfiles/com.apple.ist.ds.appleconnect.webplugin.sb:
46         * Resources/PlugInSandboxProfiles/com.macromedia.Flash Player.plugin.sb:
47         * Resources/PlugInSandboxProfiles/com.microsoft.SilverlightPlugin.sb:
48         * Resources/PlugInSandboxProfiles/com.oracle.java.JavaAppletPlugin.sb:
49         * Shared/mac/ChildProcessMac.mm:
50         (WebKit::ChildProcess::initializeSandbox):
51
52 2013-04-26  Alexey Proskuryakov  <ap@apple.com>
53
54         [WK2] WKContextClient doesn't need to be versioned yet
55         https://bugs.webkit.org/show_bug.cgi?id=115279
56
57         Reviewed by Anders Carlsson.
58
59         * Shared/APIClientTraits.cpp:
60         * Shared/APIClientTraits.h:
61         * UIProcess/API/C/WKContext.h:
62
63 2013-04-26  Anders Carlsson  <andersca@apple.com>
64
65         Downloads need to be converted from the NSURLConnection, not canceled and restarted, when using the NetworkProcess
66         https://bugs.webkit.org/show_bug.cgi?id=115277
67         <rdar://problem/12890184>
68
69         Reviewed by Sam Weinig.
70
71         * NetworkProcess/NetworkConnectionToWebProcess.cpp:
72         (WebKit::NetworkConnectionToWebProcess::convertMainResourceLoadToDownload):
73         Ask the download manager to convert the main resource load to a download.
74
75         * NetworkProcess/NetworkConnectionToWebProcess.messages.in:
76         Add new message.
77
78         * NetworkProcess/NetworkResourceLoader.h:
79         (WebKit::NetworkResourceLoader::handle):
80         Add getter.
81
82         * Shared/Downloads/mac/DownloadMac.mm:
83         (dispatchOnMainThread):
84         Helper function that ensures that a given block is called on the main thread.
85
86         (-[WKDownloadAsDelegate downloadDidBegin:]):
87         (-[WKDownloadAsDelegate download:didReceiveAuthenticationChallenge:]):
88         (-[WKDownloadAsDelegate download:didReceiveResponse:]):
89         (-[WKDownloadAsDelegate download:didReceiveDataOfLength:]):
90         (-[WKDownloadAsDelegate download:shouldDecodeSourceDataOfMIMEType:]):
91         (-[WKDownloadAsDelegate download:decideDestinationWithSuggestedFilename:]):
92         (-[WKDownloadAsDelegate download:didCreateDestination:]):
93         (-[WKDownloadAsDelegate downloadDidFinish:]):
94         (-[WKDownloadAsDelegate download:didFailWithError:]):
95         Use dispatchOnMainThread.
96
97         * UIProcess/WebPageProxy.cpp:
98         (WebKit::WebPageProxy::receivedPolicyDecision):
99         Remove code that cancels the current load and starts a new download.
100
101         * WebProcess/WebPage/WebFrame.cpp:
102         (WebKit::WebFrame::convertMainResourceLoadToDownload):
103         Send the ConvertMainResourceLoadToDownload message to the network process.
104
105 2013-04-25  Roger Fong  <roger_fong@apple.com>
106
107         Disable sub-pixel layout on mac.
108         https://bugs.webkit.org/show_bug.cgi?id=114999.
109
110         Reviewed by Simon Fraser.
111
112         * Configurations/FeatureDefines.xcconfig:
113
114 2013-04-26  Simon Fraser  <simon.fraser@apple.com>
115
116         Inspector window is often blank when opened
117         https://bugs.webkit.org/show_bug.cgi?id=115220
118
119         Reviewed by Tim Horton.
120         
121         After disabling tiled scrolling and accelerated drawing in r149006, the
122         Inspector window was often missing its content after opening. This only
123         happened when the user has a preference on disk to use accelerated drawing
124         in the Inspector.
125         
126         The missing content was caused by a failure to connect the correct contextID
127         for remote layer hosting. On window creation, we hook up a context using
128         WindowServer layer hosting (the default), but then switch back to app-hosted
129         layers for the Inspector window. This switching happens in didUpdateBackingStoreState(),
130         but that can be re-entered via its call to sendUpdateBackingStoreState(). In
131         that cause, on unwinding the stack it would call enterAcceleratedCompositingMode()
132         with a stale layerTreeContext.
133         
134         Fix by moving the code that exits/enters accelerated compositing mode to before
135         the call to sendUpdateBackingStoreState() that can cause re-entrancy. That avoids
136         use of a possibly stale layerTreeContext.
137
138         * UIProcess/DrawingAreaProxyImpl.cpp:
139         (WebKit::DrawingAreaProxyImpl::didUpdateBackingStoreState):
140
141 2013-04-26  Alexey Proskuryakov  <ap@apple.com>
142
143         Crashes under ResourceHandle::continueDidReceiveResponse when loading blobs
144         https://bugs.webkit.org/show_bug.cgi?id=115273
145
146         Reviewed by Anders Carlsson.
147
148         Covered by multiple existing tests (when using NetworkProcess), including:
149         - http/tests/fileapi/blob-url-in-subframe.html
150         - http/tests/fileapi/create-blob-url-from-data-url.html
151
152         * NetworkProcess/NetworkResourceLoader.cpp:
153         (WebKit::NetworkResourceLoader::continueDidReceiveResponse):
154         Work around BlobResourceHandle badness.
155
156 2013-04-26  Alexey Proskuryakov  <ap@apple.com>
157
158         [WK2] Remove NetworkResourceLoader::cleanupOnMainThread
159         https://bugs.webkit.org/show_bug.cgi?id=115268
160
161         Reviewed by Brady Eidson.
162
163         All cleanup() callers are now on main thread, and this indirection only complicates debugging.
164
165         * NetworkProcess/NetworkResourceLoader.cpp:
166         (WebKit::NetworkResourceLoader::connectionToWebProcessDidClose):
167         (WebKit::NetworkResourceLoader::abortInProgressLoad):
168         (WebKit::NetworkResourceLoader::didFinishLoading):
169         (WebKit::NetworkResourceLoader::didFail):
170         * NetworkProcess/NetworkResourceLoader.h:
171
172 2013-04-26  Andy Estes  <aestes@apple.com>
173
174         [WebKit2] CustomProtocolManager's m_registeredSchemes HashSet can be accessed by multiple threads
175         https://bugs.webkit.org/show_bug.cgi?id=115267
176
177         Reviewed by Alexey Proskuryakov.
178
179         * Shared/Network/CustomProtocols/CustomProtocolManager.h: Added a Mutex to protect m_registeredSchemes.
180         * Shared/Network/CustomProtocols/mac/CustomProtocolManagerMac.mm:
181         (WebKit::CustomProtocolManager::registerScheme): Acquired the mutex before accessing m_registeredSchemes.
182         (WebKit::CustomProtocolManager::unregisterScheme): Ditto.
183         (WebKit::CustomProtocolManager::supportsScheme): Ditto.
184
185 2013-04-26  Alexey Proskuryakov  <ap@apple.com>
186
187         Blobs are not associated with connection when there are no sandbox extensions
188         https://bugs.webkit.org/show_bug.cgi?id=115264
189
190         Reviewed by Brady Eidson.
191
192         Covered by multiple fast/files tests when using NetworkProcess.
193
194         * NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:
195         (WebKit::NetworkBlobRegistry::registerBlobURL): Fixed a logic error.
196
197 2013-04-25  Andy Estes  <aestes@apple.com>
198
199         [WebKit2] Loading a resource from a custom protocol in a synchronous XHR times out
200         https://bugs.webkit.org/show_bug.cgi?id=115223
201
202         Reviewed by Darin Adler.
203
204         When WebKit performs a synchronous load on the Mac, it spins a nested
205         run loop in a mode that only accepts input from the NSURLConnection
206         performing the load. When the load is for a custom protocol in WebKit2,
207         we proxy it to the UI process via CoreIPC messages, but the response
208         messages from the UI process are never processed as long as the run
209         loop is in a non-common mode (and we wouldn't want to process messages
210         that could re-enter WebCore in the middle of loading, anyway). Since
211         these messages never make it back to the NSURLConnection handling the
212         request, the connection eventually times out.
213
214         Fix this by using a work queue to handle custom protocol messages in
215         the networking process. The work queue can process incoming custom
216         protocol messages while the main thread is blocked.
217
218         * NetworkProcess/NetworkProcess.cpp:
219         (WebKit::NetworkProcess::initializeConnection): Called
220         initializeConnection() on all the NetworkProcess's supplements.
221         * Shared/ChildProcessSupplement.h: Added a base class for
222         NetworkProcessSupplement and WebProcessSupplement which defines
223         initializeConnection and provides an empty default implementation.
224         (WebKit::ChildProcessSupplement::~ChildProcessSupplement):
225         (WebKit::ChildProcessSupplement::initializeConnection):
226         * Shared/Network/CustomProtocols/CustomProtocolManager.h:
227         * Shared/Network/CustomProtocols/mac/CustomProtocolManagerMac.mm:
228         (WebKit::CustomProtocolManager::CustomProtocolManager): Instantiated a
229         work queue for message processing.
230         (WebKit::CustomProtocolManager::initializeConnection): Added the work
231         queue as a message receiver on the CoreIPC connection.
232         (WebKit::CustomProtocolManager::initialize): If we're in the web
233         process and the network process is being used, unregister and destroy
234         the work queue we previously created. It'd be better to not create it
235         in the first place, but we have to register our work queue with the
236         CoreIPC connection before it is established, which is before the UI
237         process has told us whether the network process is in use.
238         * Shared/Network/NetworkProcessSupplement.h: Inherited from
239         ChildProcessSupplement.
240         * WebKit2.xcodeproj/project.pbxproj: Added ChildProcessSupplement.h.
241         * WebProcess/WebProcess.cpp:
242         (WebKit::WebProcess::initializeConnection): Called
243         initializeConnection() on all the WebProcess's supplements.
244         * WebProcess/WebProcessSupplement.h: Inherited from
245         ChildProcessSupplement.
246
247 2013-04-26  Eduardo Lima Mitev  <elima@igalia.com>
248
249         [GTK] Compilation of ProcessLauncherGtk.cpp fails due to unresolved symbols
250         https://bugs.webkit.org/show_bug.cgi?id=115240
251
252         Reviewed by Martin Robinson.
253
254         * UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp: Includes sys/socket.h if OS is Linux
255
256 2013-04-25  Zan Dobersek  <zdobersek@igalia.com>
257
258         [GTK] Plugin process broken due to a missing symbol
259         https://bugs.webkit.org/show_bug.cgi?id=114901
260
261         Reviewed by Gustavo Noronha Silva.
262
263         Work around the missing symbols in the WebKitPluginProcess by specifying the required libraries
264         multiple times in the program's LDADD list. Libtool fights fiercely to avoid duplicate static library
265         references among the linker arguments (even if using the --preserve-dup-deps flag) so the required libraries
266         are specified in various ways.
267
268         The unresolved symbols in object files are no longer ignored as this can lead to further trouble (for instance
269         this patch also adds a few missing source files to the list of WebKitPluginProcess sources). The Freetype and
270         gamepad dependencies' libraries are also added to the binary's LDADD list.
271
272         * GNUmakefile.am:
273         * GNUmakefile.list.am: Add a few missing files to the build.
274
275 2013-04-24  Chris Fleizach  <cfleizach@apple.com>
276
277         WEB SPEECH: language support does not work as expected
278         https://bugs.webkit.org/show_bug.cgi?id=115119
279
280         Reviewed by Alexey Proskuryakov.
281
282         * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
283         (InitWebCoreSystemInterface):
284
285 2013-04-25  Anders Carlsson  <andersca@apple.com>
286
287         Rename DecidePolicyForResponse message to DecidePolicyForResponseSync
288         https://bugs.webkit.org/show_bug.cgi?id=115207
289
290         Reviewed by Beth Dakin.
291
292         In preparation for adding a new async DecidePolicyForResponse message,
293         rename the current one to DecidePolicyForResponseSync. Also split out the async part
294         into a separate WebPageProxy::decidePolicyForResponse member function.
295
296         * UIProcess/WebPageProxy.cpp:
297         (WebKit::WebPageProxy::WebPageProxy):
298         (WebKit::WebPageProxy::receivedPolicyDecision):
299         (WebKit::WebPageProxy::decidePolicyForResponse):
300         (WebKit::WebPageProxy::decidePolicyForResponseSync):
301         * UIProcess/WebPageProxy.h:
302         (WebPageProxy):
303         * UIProcess/WebPageProxy.messages.in:
304         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
305         (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):
306
307 2013-04-25  Joseph Pecoraro  <pecoraro@apple.com>
308
309         Web Inspector: ConsoleMessage should include line and column number where possible
310         https://bugs.webkit.org/show_bug.cgi?id=114929
311
312         Reviewed by Timothy Hatcher.
313
314         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
315         (WebKit::WebChromeClient::addMessageToConsole):
316         * WebProcess/WebCoreSupport/WebChromeClient.h:
317
318 2013-04-25  Brady Eidson  <beidson@apple.com>
319
320         Thread safety issues in WKCustomProtocol.
321         <rdar://problem/13247304> and https://bugs.webkit.org/show_bug.cgi?id=115185
322
323         Reviewed by Alexey Proskuryakov.
324
325         * Shared/Network/CustomProtocols/CustomProtocolManager.h:
326
327         * Shared/Network/CustomProtocols/mac/CustomProtocolManagerMac.mm:
328         (WebKit::CustomProtocolManager::addCustomProtocol): Protect m_customProtocolMap with its mutex.
329         (WebKit::CustomProtocolManager::removeCustomProtocol): Ditto.
330         (WebKit::CustomProtocolManager::didFailWithError):
331         (WebKit::CustomProtocolManager::didLoadData):
332         (WebKit::CustomProtocolManager::didReceiveResponse):
333         (WebKit::CustomProtocolManager::didFinishLoading):
334         (WebKit::CustomProtocolManager::protocolForID): Protect m_customProtocolMap with its mutex, and return
335           a RetainPtr instead of a raw pointer.
336
337 2013-04-25  Jer Noble  <jer.noble@apple.com>
338
339         Further build fixes: correct two more misnames of WebProcessShim.dyld.
340
341         * WebProcess/EntryPoint/mac/LegacyProcess/WebContentProcessMain.mm:
342         (WebKit::WebContentProcessMainDelegate::doPreInitializationWork):
343         * WebProcess/EntryPoint/mac/XPCService/WebContentService/Info.plist:
344
345 2013-04-25  Martin Robinson  <mrobinson@igalia.com>
346
347         Make gobject-introspection warnings non-fatal
348         https://bugs.webkit.org/show_bug.cgi?id=115184
349
350         Reviewed by Carlos Garcia Campos.
351
352         * GNUmakefile.am: Make it so that gobject-introspection errors do not fail the buld
353         until we get to a point where gobject-introspection gives consistent warnings.
354
355 2013-04-25  Carlos Garcia Campos  <cgarcia@igalia.com>
356
357         [GTK] Add WebKitWebViewGroup to WebKit2 GTK+ API
358         https://bugs.webkit.org/show_bug.cgi?id=111265
359
360         Reviewed by Anders Carlsson.
361
362         In the current API the settings are always shared by all web
363         views, because they are always created on the default page
364         group. This makes impossible to have different settings on
365         different web views. Expose the page group in the API,
366         so that users can create web views on a group different than the
367         default one to have their own settings.
368
369         * GNUmakefile.list.am: Add new files to compilation.
370         * UIProcess/API/gtk/WebKitSettings.cpp:
371         (webkitSettingsGetPreferences): Helper private method to get the
372         WebPreferences wrapped by a WebKitSettings object.
373         * UIProcess/API/gtk/WebKitSettingsPrivate.h:
374         * UIProcess/API/gtk/WebKitWebContext.cpp:
375         (_WebKitWebContextPrivate): Add a default WebKitWebViewGroup.
376         (webkitWebContextCreatePageForWebView): Create the WebPageProxy
377         with the WebPageGroup of the given WebKitWebViewGroup.
378         (webkitWebContextGetDefaultWebViewGroup): Helper private method to
379         get the default WebKitWebViewGroup.
380         * UIProcess/API/gtk/WebKitWebContextPrivate.h:
381         * UIProcess/API/gtk/WebKitWebView.cpp:
382         (_WebKitWebViewPrivate): Add a WebKitWebViewGroup in case the view
383         is created with a group.
384         (webkitWebViewUpdateSettings): Keep a reference of the group
385         settings to be able to disconnect the signals when the settings
386         object is replaced in the view group and connect to the signals
387         for the custom settings.
388         (webkitWebViewSettingsChanged): Disconnect the signals for the
389         previous settings and set the new settings.
390         (webkitWebViewDisconnectSettingsChangedSignalHandler): Disconnect
391         notify::settings signal of WebKitWebViewGroup.
392         (webkitWebViewConstructed): Pass the current WebKitWebViewGroup to
393         webkitWebContextCreatePageForWebView().
394         (webkitWebViewSetProperty): Add setter for group property.
395         (webkitWebViewGetProperty): Add getter for group property.
396         (webkitWebViewDispose): Call
397         webkitWebViewDisconnectSettingsChangedSignalHandler().
398         (webkit_web_view_class_init): Add WebKitWebView:group property.
399         (webkitWebViewHandleAuthenticationChallenge): Use
400         webkit_web_view_get_settings().
401         (webkit_web_view_new_with_group): Create a new web view with the
402         given WebKitWebViewGroup.
403         (webkit_web_view_get_group): Return the current WebKitWebViewGroup
404         or the default one if the view was not created with
405         webkit_web_view_new_with_group().
406         (webkit_web_view_set_settings): Set the settings of the current
407         WebKitWebViewGroup.
408         (webkit_web_view_get_settings): Get the settings of the current
409         WebKitWebViewGroup.
410         (webkit_web_view_set_zoom_level): Use
411         webkit_web_view_get_settings().
412         (webkit_web_view_get_zoom_level): Ditto.
413         * UIProcess/API/gtk/WebKitWebView.h:
414         * UIProcess/API/gtk/WebKitWebViewGroup.cpp: Added.
415         (_WebKitWebViewGroupPrivate):
416         (webkitWebViewGroupSetProperty):
417         (webkitWebViewGroupGetProperty):
418         (webkitWebViewGroupConstructed):
419         (webkit_web_view_group_class_init):
420         (webkitWebViewGroupAttachSettingsToPageGroup): Set the
421         WebPreferences of the current WebKitSettings to the WebPageGroup.
422         (webkitWebViewGroupCreate): Create a new WebKitWebViewGroup for
423         the given WebPageGroup.
424         (webkitWebViewGroupGetPageGroup): Helper private method to get the
425         WebPageGroup wrapped by the WebKitWebViewGroup.
426         (webkit_web_view_group_new): Create a new WebKitWebViewGroup.
427         (webkit_web_view_group_get_name): Return the name of a
428         WebKitWebViewGroup.
429         (webkit_web_view_group_get_settings): Get the settings of a
430         WebKitWebViewGroup.
431         (webkit_web_view_group_set_settings): Set new settings of a
432         WebKitWebViewGroup.
433         * UIProcess/API/gtk/WebKitWebViewGroup.h: Added.
434         (_WebKitWebViewGroup):
435         (_WebKitWebViewGroupClass):
436         * UIProcess/API/gtk/WebKitWebViewGroupPrivate.h: Added.
437         * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add
438         WebKitWebViewGroup section.
439         * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols.
440         * UIProcess/API/gtk/docs/webkit2gtk.types: Add
441         webkit_web_view_group_get_type.
442         * UIProcess/API/gtk/tests/GNUmakefile.am: Add new files to
443         compilation.
444         * UIProcess/API/gtk/tests/TestWebKitWebView.cpp:
445         (testWebViewSettings): We can't watch settings in the default view
446         group anymore, because they are not released with the web view but
447         with the web context that is freed after the Test destructor.
448         * UIProcess/API/gtk/tests/TestWebKitWebViewGroup.cpp: Added.
449         (testWebViewGroupDefault):
450         (testWebViewGroupNewGroup):
451         (testWebViewNewWithGroup):
452         (testWebViewGroupSettings):
453         (beforeAll):
454         (afterAll):
455         * UIProcess/API/gtk/webkit2.h: Include WebKitWebViewGroup.h.
456
457 2013-04-25  Jer Noble  <jer.noble@apple.com>
458
459         Unreviewed build fix: Fix the name of DyldInterpose.h in
460         SecItemShimLibrary.mm, fix the name of WebProcessShim.dyld in
461         WebContentServiceEntryPoint.mm, and stop linking against libWTF.a
462         directly (which means removing ASSERTs from
463         CookieStorageShimLibrary.cpp).
464
465         * Shared/mac/CookieStorageShimLibrary.cpp:
466         (WebKit::shimCFHTTPCookieStorageCopyRequestHeaderFieldsForURL):
467         (WebKit::WebKitCookieStorageShimInitialize):
468         * WebKit2.xcodeproj/project.pbxproj:
469         * WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm:
470         (WebContentServiceInitializer):
471         * WebProcess/mac/SecItemShimLibrary.mm:
472
473 2013-04-24  Tim Horton  <timothy_horton@apple.com>
474
475         PDFPlugin: Cursor should become an i-beam when over selectable text
476         https://bugs.webkit.org/show_bug.cgi?id=115018
477         <rdar://problem/12645012>
478
479         Reviewed by Alexey Proskuryakov.
480
481         * WebProcess/Plugins/PDF/PDFPlugin.h:
482         Add updateCursor(), the UpdateCursorMode and HitTestResult enums, and
483         storage for the last PDF hit test result.
484         * WebProcess/Plugins/PDF/PDFPlugin.mm:
485         (WebKit::PDFPlugin::updateCursor):
486         Hit test the PDF. If there is a word under the cursor, use the I-beam cursor,
487         otherwise, use the default pointer cursor. This approximates PDFKit's behavior,
488         though does not match it precisely in the case of annotations.
489         Only send the cursor update to the UIProcess if it is a change, or if
490         we're explicitly asked to update.
491         (WebKit::PDFPlugin::handleMouseEvent):
492         If we're processing a mouse moved event, update the cursor if needed.
493         (WebKit::PDFPlugin::handleMouseEnterEvent):
494         If the cursor just moved over the PDFPlugin, force-update the cursor,
495         even if it matches the previously-set cursor (because something else
496         likely updated the cursor while it was not over the PDFPlugin).
497
498 2013-04-24  Tim Horton  <timothy_horton@apple.com>
499
500         Page Overlays shouldn't waste time flushing layers if we're not going to use it
501         https://bugs.webkit.org/show_bug.cgi?id=115145
502
503         Reviewed by Simon Fraser.
504
505         Don't flush the page overlay layer when it's installed - it starts out
506         with paintContents=false, so we don't really need a CALayer yet. We'll
507         flush later if need be.
508
509         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
510         (WebKit::TiledCoreAnimationDrawingArea::didInstallPageOverlay):
511
512 2013-04-24  Jer Noble  <jer.noble@apple.com>
513
514         Further unreviewed build fix; CFNetwork.framework is the one which Lion
515         refuses to link against.
516
517         * WebKit2.xcodeproj/project.pbxproj:
518
519 2013-04-24  Jer Noble  <jer.noble@apple.com>
520
521         Unreviewed build fix; link against CoreServices.framework instead of against
522         CoreFoundation.framework directly, to make the linker happy on Lion.
523
524         * WebKit2.xcodeproj/project.pbxproj:
525
526 2013-04-22  Jer Noble  <jer.noble@apple.com>
527
528         WWDC session videos don’t play at developer.apple.com
529         https://bugs.webkit.org/show_bug.cgi?id=114858
530
531         Reviewed by Eric Carlson. Rubber stamped by Brady Eidson.
532
533         AVFoundation uses CFNetwork to store and retrieve cookies from the global store.
534         However, in the case where network access happens in the NetworkProcess, session
535         cookies are stored in-memory, and are not accessable in the WebProcess. Until such
536         a time as AVFoundation can provide an API which would allow us to provide cookies
537         for a specific request, we will interpose the CFNetwork method which they use to
538         retrieve the cookie string from the cookie store for their pending request.
539
540         Duplicate the previous SecItemShim target to a new, WebProcessShim target. This
541         target includes the SecItemShim functionality, but will add a new shim for cookie
542         retrieval:
543         * Shared/mac/CookieStorageShimLibrary.h: Added
544         (CookieStorageShimCallbacks):
545         * Shared/mac/CookieStorageShimLibrary.cpp: Added.
546         (WebKit::ShimProtector::ShimProtector): A simple stack-based counter class.
547         (WebKit::ShimProtector::~ShimProtector):
548         (WebKit::ShimProtector::count):
549         (WebKit::shimCFHTTPCookieStorageCopyRequestHeaderFieldsForURL): Interpose
550             the CFNetwork call, and pass to the registered callback.
551         (WebKit::WebKitCookieStorageShimInitialize): Register the callbacks.
552
553         Add a helper singleton class which will talk to the shim through the 
554         registered callbacks:
555         * Shared/mac/CookieStorageShim.h: Added
556         (WebKit::CookieStorageShim::CookieStorageShim):
557         * Shared/mac/CookieStorageShim.cpp: Added.
558         (WebKit::webKitCookieStorageCopyRequestHeaderFieldsForURL): Pass the request
559             over to the NetworkProcess.
560         (WebKit::CookieStorageShim::shared): Simple singleton.
561         (WebKit::CookieStorageShim::initialize): Call the library initializer.
562
563         Initialize the shim only when the WebProcess is delegating network loading
564         to the NetworkProcess:
565         * WebProcess/WebProcess.cpp:
566         (WebKit::WebProcess::initializeWebProcess):
567
568         Rename the WebProcess's shim from SecItemShim -> WebProcessShim:
569         * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
570         (WebKit::addDYLDEnvironmentAdditions):
571         * WebProcess/EntryPoint/mac/LegacyProcess/WebContentProcessMain.mm:
572         (WebKit::WebContentProcessMainDelegate::doPreInitializationWork):
573         * WebProcess/EntryPoint/mac/XPCService/WebContentService/Info.plist:
574         * WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm:
575         (WebContentServiceInitializer):
576
577         As the DYLD_INTERPOSE macro is used in multiple files now, put it in its
578         own header:
579         * Shared/mac/DyldInterpose.h: Added.
580         * PluginProcess/mac/PluginProcessShim.mm:
581         * WebProcess/mac/SecItemShimLibrary.mm:
582
583         Add new files to the project:
584         * WebKit2.xcodeproj/project.pbxproj:
585
586 2013-04-24  Byungwoo Lee  <bw80.lee@samsung.com>
587
588         [EFL] Fix build error after r148963.
589         https://bugs.webkit.org/show_bug.cgi?id=115126
590
591         Reviewed by Laszlo Gombos.
592
593         Generate forwarding headers for 'CoordinatedGraphics' to generate WKView.h
594
595         * PlatformEfl.cmake:
596
597 2013-04-24  Anders Carlsson  <andersca@apple.com>
598
599         Crash when trying to determine the length of an invalid message
600         https://bugs.webkit.org/show_bug.cgi?id=115127
601         <rdar://problem/13700736>
602
603         Reviewed by Beth Dakin.
604
605         Use message instead of incomingMessage since incomingMessage will always be null.
606
607         * Platform/CoreIPC/Connection.cpp:
608         (CoreIPC::Connection::processIncomingMessage):
609
610 2013-04-24  Carlos Garcia Campos  <cgarcia@igalia.com>
611
612         [GTK] Use stamp files for generate-forwarding-headers makefile rules
613         https://bugs.webkit.org/show_bug.cgi?id=115118
614
615         Reviewed by Martin Robinson.
616
617         Use a stamp file for the WebKit2 forwarding generator rule. Also
618         fix the rule dependencies that pointed to a non existent variable.
619
620         * GNUmakefile.am:
621
622 2013-04-24  Zan Dobersek  <zdobersek@igalia.com>
623
624         [GTK][WK2] Implement LayerTreeHostGtk::pageBackgroundTransparencyChanged
625         https://bugs.webkit.org/show_bug.cgi?id=115094
626
627         Reviewed by Tim Horton.
628
629         The method was introduced in r149004 (and a stub implementation for the GTK port added in r149017).
630         Implement the method for the GTK port in the same manner it is implemented under the Mac port,
631         calling setContentsOpaque on the non-composited content layer.
632
633         * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
634         (WebKit::LayerTreeHostGtk::pageBackgroundTransparencyChanged):
635
636 2013-04-24  Simon Cooper  <scooper@apple.com>
637
638         <rdar://problem/13614117> Refine the Flash Player profile
639         https://bugs.webkit.org/show_bug.cgi?id=115016
640
641         Reviewed by Alexey Proskuryakov.
642
643         Add some refinements to the Flash Player profile. Make a non-/ home
644         directory work. Fixes that allow file uploading via user selected files.
645
646         * Resources/PlugInSandboxProfiles/com.macromedia.Flash Player.plugin.sb:
647
648 2013-04-24  Carlos Garcia Campos  <cgarcia@igalia.com>
649
650         [WebKit2] Add CoordinatedGraphics to the list of platforms in generate-forwarding-headers.pl
651         https://bugs.webkit.org/show_bug.cgi?id=115098
652
653         Reviewed by Martin Robinson.
654
655         r148963 introduced a new WKView.h header in a directory not listed
656         as a platform prefix in generate-forwarding-headers.pl.
657
658         * Scripts/generate-forwarding-headers.pl: Replace unused chromium
659         plaform prefix with CoordinatedGraphics that is used now.
660
661 2013-04-24  Seokju Kwon  <seokju.kwon@gmail.com>
662
663         Web Inspector: Add number to list from remote web inspector.
664         https://bugs.webkit.org/show_bug.cgi?id=115014
665
666         Reviewed by Benjamin Poulain.
667
668         * UIProcess/InspectorServer/front-end/inspectorPageIndex.html:
669
670 2013-04-24  Vlad Vasilyeu  <vasvlad@gmail.com>
671
672         --minimal build fails with error: Source/WebKit2/Platform/CoreIPC/ArgumentCoder.h:44:36: error: decode is not a member of WebCore::TextCheckingResult
673         https://bugs.webkit.org/show_bug.cgi?id=114367
674
675         Reviewed by Benjamin Poulain.
676
677         Include WebCoreArgumentCoders.h to WebEditorClientEfl.cpp from
678         WebKit2/Shared/ for successfully building with option --minimal
679
680         * WebProcess/WebCoreSupport/efl/WebEditorClientEfl.cpp:
681
682 == Rolled over to ChangeLog-2013-04-24 ==