ChangeLog 227 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12
2013-11-12  Tim Horton  <timothy_horton@apple.com>

        Remote Layer Tree: Assertions during layer flushing after replaceSublayer()
        https://bugs.webkit.org/show_bug.cgi?id=124194

        Reviewed by Anders Carlsson.

        * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
        (PlatformCALayerRemote::replaceSublayer):
        Only remove the old layer from the children array once (via removeFromSuperlayer).
        Update the superlayer backpointer on the new layer.

13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
2013-11-12  Anders Carlsson  <andersca@apple.com>

        Add ImmutableArray::createStringArray
        https://bugs.webkit.org/show_bug.cgi?id=124210

        Reviewed by Andreas Kling.

        Creating an ImmutableArray of WebStrings is a common operation, so add a 
        helper function to ImmutableArray that does this from a Vector of Strings.

        * Shared/ImmutableArray.cpp:
        (WebKit::ImmutableArray::createStringArray):
        * Shared/ImmutableArray.h:
        * Shared/ImmutableDictionary.cpp:
        (WebKit::ImmutableDictionary::keys):
        * Shared/WebOpenPanelParameters.cpp:
        (WebKit::WebOpenPanelParameters::acceptMIMETypes):
        (WebKit::WebOpenPanelParameters::selectedFileNames):
        * UIProcess/Plugins/WebPluginSiteDataManager.cpp:
        (WebKit::WebPluginSiteDataManager::didGetSitesWithData):
        * UIProcess/WebCookieManagerProxy.cpp:
        (WebKit::WebCookieManagerProxy::didGetHostnamesWithCookies):
        * UIProcess/WebMediaCacheManagerProxy.cpp:
        (WebKit::WebMediaCacheManagerProxy::didGetHostnamesWithMediaCache):
        * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
        (WebKit::InjectedBundlePageLoaderClient::featuresUsedInPage):

40 41 42 43 44 45
2013-11-12  Csaba Osztrogonác  <ossy@webkit.org>

        One more URTBF after r159108.

        * GNUmakefile.am:

46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
2013-11-12  Anders Carlsson  <andersca@apple.com>

        Begin cleaning up handling of ImmutableArray vectors
        https://bugs.webkit.org/show_bug.cgi?id=124208

        Reviewed by Andreas Kling.

        Use range based for to iterate the loops. Use reserveInitialCapacity + uncheckedAppend
        when appending vector elements.

        * Shared/SecurityOriginData.cpp:
        (WebKit::performAPICallbackWithSecurityOriginDataVector):
        * Shared/WebArchive.cpp:
        (WebKit::WebArchive::subresources):
        (WebKit::WebArchive::subframeArchives):
        * Shared/WebContextMenuItem.cpp:
        (WebKit::WebContextMenuItem::submenuItemsAsImmutableArray):
        * Shared/WebOpenPanelParameters.cpp:
        (WebKit::WebOpenPanelParameters::acceptMIMETypes):
        (WebKit::WebOpenPanelParameters::selectedFileNames):
        * UIProcess/API/C/mac/WKContextPrivateMac.mm:
        (WKContextGetInfoForInstalledPlugIns):
        * UIProcess/Plugins/WebPluginSiteDataManager.cpp:
        (WebKit::WebPluginSiteDataManager::didGetSitesWithData):
        * UIProcess/StatisticsRequest.cpp:
        (WebKit::StatisticsRequest::completedRequest):
        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::pluginInfoStoreDidLoadPlugins):
        * UIProcess/WebCookieManagerProxy.cpp:
        (WebKit::WebCookieManagerProxy::didGetHostnamesWithCookies):
        * UIProcess/WebDatabaseManagerProxy.cpp:
        (WebKit::WebDatabaseManagerProxy::didGetDatabasesByOrigin):
        (WebKit::WebDatabaseManagerProxy::didGetDatabaseOrigins):
        * UIProcess/WebMediaCacheManagerProxy.cpp:
        (WebKit::WebMediaCacheManagerProxy::didGetHostnamesWithMediaCache):
        * UIProcess/WebPageContextMenuClient.cpp:
        (WebKit::WebPageContextMenuClient::showContextMenu):
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::relatedPages):
        (WebKit::WebPageProxy::didFindStringMatches):
        * WebProcess/InjectedBundle/InjectedBundle.cpp:
        (WebKit::InjectedBundle::originsWithApplicationCache):
        * WebProcess/InjectedBundle/InjectedBundleBackForwardListItem.cpp:
        (WebKit::InjectedBundleBackForwardListItem::children):
        * WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp:
        (WebKit::InjectedBundlePageFormClient::didAssociateFormControls):
        * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
        (WebKit::InjectedBundlePageLoaderClient::featuresUsedInPage):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::trackedRepaintRects):

97 98 99 100 101 102
2013-11-12  Csaba Osztrogonác  <ossy@webkit.org>

        One more URTBF after r159108.

        * CMakeLists.txt:

ossy@webkit.org's avatar
ossy@webkit.org committed
103 104 105 106 107 108 109
2013-11-12  Csaba Osztrogonác  <ossy@webkit.org>

        URTBF after r159108.

        * CMakeLists.txt:
        * GNUmakefile.list.am:

110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
2013-11-12  Anders Carlsson  <andersca@apple.com>

        Move StringReference to Platform/IPC
        https://bugs.webkit.org/show_bug.cgi?id=124203

        Reviewed by Antti Koivisto.

        * Platform/IPC/StringReference.cpp: Renamed from Source/WebKit2/Platform/CoreIPC/StringReference.cpp.
        (CoreIPC::StringReference::toString):
        (CoreIPC::StringReference::encode):
        (CoreIPC::StringReference::decode):
        (CoreIPC::StringReference::Hash::hash):
        * Platform/IPC/StringReference.h: Renamed from Source/WebKit2/Platform/CoreIPC/StringReference.h.
        (CoreIPC::StringReference::StringReference):
        (CoreIPC::StringReference::isEmpty):
        (CoreIPC::StringReference::size):
        (CoreIPC::StringReference::data):
        (CoreIPC::StringReference::operator==):
        (CoreIPC::StringReference::Hash::equal):
        * WebKit2.xcodeproj/project.pbxproj:

131 132 133 134 135 136 137 138 139 140 141 142 143 144
2013-11-11  Tim Horton  <timothy_horton@apple.com>

        Remote Layer Tree: Sporadic memory corruption during painting
        https://bugs.webkit.org/show_bug.cgi?id=124191

        Reviewed by Brady Eidson.

        Fix a logic error (flipped the logic, didn't flip the operator)
        made in the last version of r158982 that caused some crashes because
        it allowed us to overrun the end of cgPaintingRects.

        * Shared/mac/RemoteLayerBackingStore.mm:
        (RemoteLayerBackingStore::drawInContext):

145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
2013-11-11  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r159088.
        http://trac.webkit.org/changeset/159088
        https://bugs.webkit.org/show_bug.cgi?id=124187

        It broke the EFL build, because it removed a used function
        (rs=thorton) (Requested by Ossy_night on #webkit).

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::WebPageProxy):
        (WebKit::WebPageProxy::resetStateAfterProcessExited):
        * UIProcess/WebPageProxy.h:
        (WebKit::WebPageProxy::urlAtProcessExit):
        (WebKit::WebPageProxy::loadStateAtProcessExit):

161 162 163 164 165 166
2013-11-11  Csaba Osztrogonác  <ossy@webkit.org>

        URTBF after r159077 to make GTK build happy.

        * GNUmakefile.list.am:

167 168 169 170 171 172 173 174 175 176 177
2013-11-11  Gustavo Noronha Silva  <gns@gnome.org>

        REGRESSION(r158976): Web Inspector: unable to start docked or dock
        https://bugs.webkit.org/show_bug.cgi?id=124148

        Reviewed by Timothy Hatcher.

        * UIProcess/WebInspectorProxy.cpp:
        (WebKit::WebInspectorProxy::canAttach): check for a level that is greater than 1 rather than 0
        to deny attachment, since 1 is the first level of inspectors.

178 179 180 181 182 183 184 185 186 187
2013-11-11  Anders Carlsson  <andersca@apple.com>

        FrameFilter can just be an std::function instead
        https://bugs.webkit.org/show_bug.cgi?id=124176

        Reviewed by Tim Horton.

        * WebProcess/WebPage/WebFrame.cpp:
        (WebKit::WebFrame::webArchiveData):

andersca@apple.com's avatar
andersca@apple.com committed
188 189 190 191 192 193 194 195 196 197 198 199
2013-11-11  Anders Carlsson  <andersca@apple.com>

        Remove unused Qt cruft
        https://bugs.webkit.org/show_bug.cgi?id=124174

        Reviewed by Tim Horton.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::WebPageProxy):
        (WebKit::WebPageProxy::resetStateAfterProcessExited):
        * UIProcess/WebPageProxy.h:

200 201 202 203 204 205 206 207 208 209 210 211 212 213
2013-11-11  Anders Carlsson  <andersca@apple.com>

        REGRESSION (r158927): curly-braces-escaping.html is broken on Mac WebKit2
        https://bugs.webkit.org/show_bug.cgi?id=124164

        Reviewed by Alexey Proskuryakov.

        Back out the change to use NSSecureCoding for encoding/decoding NSURLRequest and
        NSURLResponse objects; turns out the NSURL encoding/decoding doesn't preserve the raw URL bytes.

        * Shared/mac/WebCoreArgumentCodersMac.mm:
        (CoreIPC::encodePlatformData):
        (CoreIPC::decodePlatformData):

214 215 216 217 218 219
2013-11-11  Ryuan Choi  <ryuan.choi@samsung.com>

        Unreviewed build fix on CMake Based port since r159077.

        * CMakeLists.txt:

220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267
2013-11-11  Tim Horton  <timothy_horton@apple.com>

        Remote Layer Tree: Implement Page Overlays
        https://bugs.webkit.org/show_bug.cgi?id=124165
        <rdar://problem/15199056>

        Reviewed by Anders Carlsson.

        Implement page overlays, very similar to how they work in TiledCoreAnimationDrawingArea,
        but manipulating the PlatformCALayer tree instead of the CALayer tree directly.

        * WebProcess/WebPage/mac/RemoteLayerTreeContext.h:
        * WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:
        (WebKit::RemoteLayerTreeContext::outOfTreeLayerWasAdded):
        (WebKit::RemoteLayerTreeContext::outOfTreeLayerWillBeRemoved):
        (WebKit::RemoteLayerTreeContext::flushLayers):
        Add a list of out-of-tree GraphicsLayers which are flushed in addition
        to the page's GraphicsLayer tree, and functions to manipulate this list.

        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
        Make RemoteLayerTreeDrawingArea a GraphicsLayerClient, so we can get callbacks
        from the GraphicsLayers that drive our page overlays.
        Override the relevant page overlay functions.
        Add storage for the root layer, view size, and a map of PageOverlay->GraphicsLayer.

        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        (WebKit::RemoteLayerTreeDrawingArea::setRootCompositingLayer):
        Store the root GraphicsLayer for later use.

        (WebKit::RemoteLayerTreeDrawingArea::updateGeometry):
        Update the size of the page overlays when the DrawingArea's geometry changes.

        (WebKit::RemoteLayerTreeDrawingArea::updatePreferences):
        Update the page overlay settings when necessary.

        (WebKit::RemoteLayerTreeDrawingArea::didInstallPageOverlay):
        Create a GraphicsLayer for our page overlay, set it up, and parent it.
        Inform the RemoteLayerTreeContext that it will need to flush this GraphicsLayer,
        since it's not a part of the page's GraphicsLayer tree.

        (WebKit::RemoteLayerTreeDrawingArea::didUninstallPageOverlay):
        Tear down our page overlay's GraphicsLayer.

        (WebKit::RemoteLayerTreeDrawingArea::setPageOverlayNeedsDisplay):
        (WebKit::RemoteLayerTreeDrawingArea::setPageOverlayOpacity):
        (WebKit::RemoteLayerTreeDrawingArea::paintContents):
        (WebKit::RemoteLayerTreeDrawingArea::deviceScaleFactor):

268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303
2013-11-11  Anders Carlsson  <andersca@apple.com>

        Add a FrameLoadState object and begin moving loading related members from WebFrameProxy
        https://bugs.webkit.org/show_bug.cgi?id=124163

        Reviewed by Beth Dakin.

        * UIProcess/API/C/WKFrame.cpp:
        (WKFrameGetFrameLoadState):
        * UIProcess/FrameLoadState.cpp: Added.
        (WebKit::FrameLoadState::FrameLoadState):
        (WebKit::FrameLoadState::~FrameLoadState):
        * UIProcess/FrameLoadState.h: Added.
        * UIProcess/WebFrameProxy.cpp:
        (WebKit::WebFrameProxy::WebFrameProxy):
        (WebKit::WebFrameProxy::didStartProvisionalLoad):
        (WebKit::WebFrameProxy::didReceiveServerRedirectForProvisionalLoad):
        (WebKit::WebFrameProxy::didFailProvisionalLoad):
        (WebKit::WebFrameProxy::didCommitLoad):
        (WebKit::WebFrameProxy::didFinishLoad):
        (WebKit::WebFrameProxy::didFailLoad):
        (WebKit::WebFrameProxy::didSameDocumentNavigation):
        (WebKit::WebFrameProxy::setUnreachableURL):
        * UIProcess/WebFrameProxy.h:
        (WebKit::WebFrameProxy::frameLoadState):
        (WebKit::WebFrameProxy::loadState):
        (WebKit::WebFrameProxy::url):
        (WebKit::WebFrameProxy::provisionalURL):
        (WebKit::WebFrameProxy::unreachableURL):
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::WebPageProxy):
        (WebKit::WebPageProxy::activeURL):
        * UIProcess/WebPageProxy.h:
        (WebKit::WebPageProxy::loadStateAtProcessExit):
        * WebKit2.xcodeproj/project.pbxproj:

304 305 306 307 308 309 310 311 312
2013-11-11  Gergo Balogh  <geryxyz@inf.u-szeged.hu>

        Remove #include from test input of the *Messages.in processing scripts.
        https://bugs.webkit.org/show_bug.cgi?id=123563

        Reviewed by Darin Adler.

        * Scripts/webkit2/messages_unittest.py:

313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331
2013-11-11  Anders Carlsson  <andersca@apple.com>

        Remove block based APIs from the WebKit2 C API
        https://bugs.webkit.org/show_bug.cgi?id=124157

        Reviewed by Sam Weinig.

        Remove most of the block based C APIs from WebKit2. We want to discourage people from using
        them since any C API "objects" captured by blocks won't be implicitly retained which
        can lead to dangling pointer bugs.

        * UIProcess/API/C/WKDatabaseManager.cpp:
        * UIProcess/API/C/WKDatabaseManager.h:
        * UIProcess/API/C/WKFrame.cpp:
        * UIProcess/API/C/WKFrame.h:
        * UIProcess/API/C/WKPage.cpp:
        * UIProcess/API/C/WKPage.h:
        * UIProcess/API/C/WKPagePrivate.h:

332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380
2013-11-11  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Crash when printing via javascript in WebKit2
        https://bugs.webkit.org/show_bug.cgi?id=124043

        Reviewed by Martin Robinson.

        It happens because the print operation when started by the
        WebProcess due to a DOM operation is supposed to be synchronous
        and our print operation is always asynchronous. This is currently
        handled only in the UI process because other ports print
        synchronously in the WebProcess. In the GTK+ port we need to
        notify the WebProcess that the print operation should run
        synchronously when request by a DOM operation. Together with the
        print settings and page setup we now send a print mode that can be
        sync or async. When printing in sync mode we run a nested main loop
        for the print operation, making sure that print sources have a
        higher priority.

        * Shared/PrintInfo.cpp:
        (WebKit::PrintInfo::encode): Encode the print mode.
        (WebKit::PrintInfo::decode): Decode the print mode.
        * Shared/PrintInfo.h: Add PrintMode enum.
        * Shared/gtk/PrintInfoGtk.cpp:
        (WebKit::PrintInfo::PrintInfo): Initialize print mode.
        * UIProcess/API/gtk/WebKitPrintOperation.cpp:
        (drawPagesForPrintingCompleted): Do not call endPrinting() when
        printing synchronously because WebPageProxy already calls it right
        after sending the message to the WebProcess.
        (webkitPrintOperationPrintPagesForFrame): Create the PrintInfo
        struct with a print mode.
        (webkitPrintOperationSetPrintMode): Helper private function to set
        the print mode of the print operation.
        * UIProcess/API/gtk/WebKitPrintOperationPrivate.h:
        * UIProcess/API/gtk/WebKitWebView.cpp:
        (webkitWebViewPrintFrame): Set sync print mode when printing due
        to a UIClient request.
        * WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:
        (WebKit::PrintPagesData::PrintPagesData): Create a main loop when
        printing synchronously.
        (WebKit::WebPrintOperationGtk::WebPrintOperationGtk): Initialize
        print mode.
        (WebKit::WebPrintOperationGtk::printPagesIdleDone): Finish the
        nested main loop when printing synchronously.
        (WebKit::WebPrintOperationGtk::print): Run a nested main loop when
        printing synchronously.
        * WebProcess/WebPage/gtk/WebPrintOperationGtk.h:
        (WebKit::WebPrintOperationGtk::printMode): Return the print mode.

381 382 383 384 385 386 387 388 389 390 391 392 393 394
2013-11-10  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] [WebKit2] Crash when printing to a file via javascript
        https://bugs.webkit.org/show_bug.cgi?id=122801

        Reviewed by Martin Robinson.

        This crash is caused by a GTK+ bug, but we can work around it by
        ensuring the print dialog is always shown with a valid
        GtkPrintSettings object.

        * UIProcess/API/gtk/WebKitPrintOperation.cpp:
        (webkitPrintOperationRunDialog):

395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422
2013-11-09  Dan Bernstein  <mitz@apple.com>

        Use createCFURLFromBuffer when converting a String to a CFURL
        https://bugs.webkit.org/show_bug.cgi?id=124113

        Reviewed by Anders Carlsson.

        * Shared/API/c/cf/WKURLCF.mm:
        (WKURLCopyCFURL): Replaced some code with a call to createCFURLFromBuffer(), which does the
        same thing.

        * Shared/Cocoa/WKNSURLExtras.h: Added.
        * Shared/Cocoa/WKNSURLExtras.mm: Added.
        (+[NSURL _web_URLWithWTFString:relativeToURL:]): Added. Returns nil for the null String,
        otherwise returns the result of createCFURLFromBuffer().

        * UIProcess/API/Cocoa/WKBackForwardListItem.mm:
        (-[WKBackForwardListItem URL]): Changed to use +_web_URLWithWTFString:relativeToURL:.
        (-[WKBackForwardListItem originalURL]): Ditto.

        * UIProcess/API/Cocoa/WKNavigationData.mm:
        (-[WKNavigationData destinationURL]): Ditto.

        * UIProcess/API/mac/WKBrowsingContextController.mm:
        (-[WKBrowsingContextController unreachableURL]): Ditto.

        * WebKit2.xcodeproj/project.pbxproj: Added references to new files.

423 424 425 426 427 428 429 430 431 432 433 434
2013-11-09  Anders Carlsson  <andersca@apple.com>

        Encode form data using the KeyedEncoder
        https://bugs.webkit.org/show_bug.cgi?id=124107

        Reviewed by Sam Weinig.

        * Shared/cf/KeyedEncoder.cpp:
        (WebKit::KeyedEncoder::encodeBool):
        (WebKit::KeyedEncoder::encodeDouble):
        * Shared/cf/KeyedEncoder.h:

andersca@apple.com's avatar
andersca@apple.com committed
435 436 437 438 439 440 441 442
2013-11-09  Anders Carlsson  <andersca@apple.com>

        Remove an unused file.

        Rubber-stamped by Andreas Kling.

        * WebProcess/WebPage/gtk/ChunkedUpdateDrawingAreaGtk.cpp: Removed.

443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509
2013-11-09  Patrick Gansterer  <paroga@webkit.org>

        Move RunLoop from WebCore to WTF
        https://bugs.webkit.org/show_bug.cgi?id=116606

        Reviewed by Anders Carlsson.

        * DatabaseProcess/DatabaseProcess.cpp:
        * DatabaseProcess/DatabaseToWebProcessConnection.cpp:
        * NetworkProcess/NetworkConnectionToWebProcess.cpp:
        * NetworkProcess/NetworkProcess.cpp:
        * NetworkProcess/NetworkProcess.h:
        * NetworkProcess/NetworkResourceLoader.h:
        * NetworkProcess/mac/DiskCacheMonitor.h:
        * NetworkProcess/unix/NetworkProcessMainUnix.cpp:
        * Platform/CoreIPC/Connection.cpp:
        * Platform/CoreIPC/Connection.h:
        * Platform/CoreIPC/mac/ConnectionMac.cpp:
        * PluginProcess/EntryPoint/mac/LegacyProcess/PluginProcessMain.mm:
        * PluginProcess/EntryPoint/mac/XPCService/PluginServiceEntryPoint.mm:
        * PluginProcess/PluginControllerProxy.h:
        * PluginProcess/PluginProcess.cpp:
        * PluginProcess/PluginProcess.h:
        * PluginProcess/WebProcessConnection.cpp:
        * PluginProcess/unix/PluginProcessMainUnix.cpp:
        * Shared/ChildProcess.cpp:
        * Shared/ChildProcess.h:
        * Shared/ChildProcessProxy.cpp:
        * Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessEntryPoint.h:
        * Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessEntryPoint.mm:
        * Shared/Plugins/NPObjectProxy.cpp:
        * Shared/WebKit2Initialize.cpp:
        (WebKit::InitializeWebKit2):
        * UIProcess/API/gtk/WebKitFaviconDatabase.cpp:
        * UIProcess/API/mac/FindIndicatorWindow.h:
        * UIProcess/API/mac/WKPrintingView.mm:
        * UIProcess/API/mac/WKView.mm:
        * UIProcess/CoordinatedGraphics/CoordinatedDrawingAreaProxy.h:
        * UIProcess/DrawingAreaProxyImpl.h:
        * UIProcess/Launcher/efl/ProcessLauncherEfl.cpp:
        * UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:
        * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
        * UIProcess/Network/NetworkProcessProxy.cpp:
        * UIProcess/Plugins/PluginProcessProxy.cpp:
        * UIProcess/ResponsivenessTimer.cpp:
        * UIProcess/ResponsivenessTimer.h:
        * UIProcess/VisitedLinkProvider.h:
        * UIProcess/WebContext.cpp:
        * UIProcess/WebProcessProxy.cpp:
        * WebProcess/Databases/WebToDatabaseProcessConnection.cpp:
        * WebProcess/EntryPoint/mac/LegacyProcess/WebContentProcessMain.mm:
        * WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm:
        * WebProcess/Network/WebResourceLoadScheduler.h:
        * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.h:
        * WebProcess/Plugins/Netscape/NetscapePlugin.h:
        * WebProcess/Plugins/Netscape/NetscapePluginStream.h:
        * WebProcess/Plugins/PluginView.h:
        * WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.h:
        * WebProcess/WebPage/DrawingAreaImpl.h:
        * WebProcess/WebPage/EventDispatcher.cpp:
        * WebProcess/WebPage/PageOverlay.h:
        * WebProcess/WebPage/WebPage.cpp:
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebProcess.cpp:
        * WebProcess/efl/WebProcessMainEfl.cpp:
        * WebProcess/gtk/WebProcessMainGtk.cpp:

510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532
2013-11-08  Brady Eidson  <beidson@apple.com>

        Merge IDBDatabaseBackendInterface and IDBDatabaseBackendImpl
        https://bugs.webkit.org/show_bug.cgi?id=124088

        Reviewed by Tim Horton.

        This abstraction is no longer meaningful in its current form in WebCore.
        The current groundwork for the WK2 DatabaseProcess relied on this abstraction,
        but that will be reworked in a future patch.

        * DatabaseProcess/IndexedDB/DatabaseProcessIDBDatabaseBackend.h:

        * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp:
        (WebKit::WebIDBFactoryBackend::maybeCreateTransactionBackend):
        (WebKit::WebIDBFactoryBackend::createCursorBackend):
        * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h:

        * WebProcess/Databases/IndexedDB/WebProcessIDBDatabaseBackend.cpp:
        (WebKit::WebProcessIDBDatabaseBackend::put):
        (WebKit::WebProcessIDBDatabaseBackend::openCursor):
        * WebProcess/Databases/IndexedDB/WebProcessIDBDatabaseBackend.h:

533 534 535 536 537 538 539 540 541
2013-11-08  Jaehun Lim  <ljaehun.lim@samsung.com>

        Unreviewed build fix after r158984.

        No needs to include "KeyedEncoder.h".
        WebKit/Source/WebKit2/WebProcess/WebPage/WebBackForwardListProxy.cpp:31:26: fatal error: KeyedEncoder.h: No such file or directory

        * WebProcess/WebPage/WebBackForwardListProxy.cpp: Removed #include line.

542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563
2013-11-08  Anders Carlsson  <andersca@apple.com>

        Implement encoding of arrays of objects
        https://bugs.webkit.org/show_bug.cgi?id=124091

        Reviewed by Beth Dakin.

        Add a new array stack and push and pop from it accordingly.

        * Shared/cf/KeyedEncoder.cpp:
        (WebKit::KeyedEncoder::~KeyedEncoder):
        (WebKit::KeyedEncoder::encodeBytes):
        (WebKit::KeyedEncoder::encodeUInt32):
        (WebKit::KeyedEncoder::encodeInt32):
        (WebKit::KeyedEncoder::encodeInt64):
        (WebKit::KeyedEncoder::encodeFloat):
        (WebKit::KeyedEncoder::beginArray):
        (WebKit::KeyedEncoder::beginArrayElement):
        (WebKit::KeyedEncoder::endArrayElement):
        (WebKit::KeyedEncoder::endArray):
        * Shared/cf/KeyedEncoder.h:

564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601
2013-11-08  Tim Horton  <timothy_horton@apple.com>

        Remote Layer Tree: RemoteLayerBackingStore partial repaint is broken for the tile cache
        https://bugs.webkit.org/show_bug.cgi?id=123944

        Reviewed by Simon Fraser.

        Rework RemoteLayerBackingStore painting to fix some rounding issues
        that would cause pixel cracks upon repaint, and to speed it up a bit.

        * Shared/mac/RemoteLayerBackingStore.h:
        Redefine RepaintRectList because we can't include WebLayer.h here yet.
        Remove createBackingStore, which was never implemented.
        Remove mapToContentCoordinates, because we don't need it on Mac.

        (WebKit::RemoteLayerBackingStore::paintingRects): Added.

        * Shared/mac/RemoteLayerBackingStore.mm:
        (RemoteLayerBackingStore::setNeedsDisplay):
        (RemoteLayerBackingStore::display):
        Stop using mapToContentCoordinates.

        (RemoteLayerBackingStore::drawInContext):
        Use clipping instead of painting the image multiple times.
        Never repaint more than the dirty region's bounds.
        Don't waste time with all of the drawNativeImage code, just use CG.
        Unindent the switch's cases.
        Store the rects we're painting so that enumerateRectsBeingDrawn can get them.
        Pixel-snap the rects we're painting.
        Clip the context before going to paint.

        * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
        (PlatformCALayerRemote::enumerateRectsBeingDrawn):
        * WebProcess/WebPage/mac/PlatformCALayerRemote.h:
        Retrieve the rects currently being painted from our backing store, and
        transform them (mostly) according to the CTM, to match the transformation
        that will have occurred underneath wkCALayerEnumerateRectsBeingDrawnWithBlock.

602 603 604 605 606 607 608 609 610 611 612 613 614
2013-11-08  Anders Carlsson  <andersca@apple.com>

        Implement more KeyedEncoder functionality
        https://bugs.webkit.org/show_bug.cgi?id=124089

        Reviewed by Beth Dakin.

        * Shared/cf/KeyedEncoder.cpp:
        (WebKit::KeyedEncoder::encodeBytes):
        (WebKit::KeyedEncoder::encodeInt32):
        (WebKit::KeyedEncoder::encodeFloat):
        * Shared/cf/KeyedEncoder.h:

615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633
2013-11-08  Anders Carlsson  <andersca@apple.com>

        KeyedEncoder should be able to encoder objects
        https://bugs.webkit.org/show_bug.cgi?id=124085

        Reviewed by Sam Weinig.

        Add a dictionary stack to KeyedEncoder that's pushed and popped by
        beginObject/endObject.

        * Shared/cf/KeyedEncoder.cpp:
        (WebKit::KeyedEncoder::KeyedEncoder):
        (WebKit::KeyedEncoder::~KeyedEncoder):
        (WebKit::KeyedEncoder::encodeUInt32):
        (WebKit::KeyedEncoder::encodeString):
        (WebKit::KeyedEncoder::beginObject):
        (WebKit::KeyedEncoder::endObject):
        * Shared/cf/KeyedEncoder.h:

634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662
2013-11-08  Alexandru Chiculita  <achicu@adobe.com>

        Web Inspector: It should be possible to debug the Inspector code
        https://bugs.webkit.org/show_bug.cgi?id=124065

        Reviewed by Timothy Hatcher.

        When the script is paused, the debugger will pause all the pages in the same PageGroup.
        All the Inspector windows were created in the same PageGroup, so pausing one debugger
        would stop the other too.

        Added WebInspectorPageGroups to manage the PageGroups created for the Inspectors.
        The WebInspectors will now use the inspection "level" to figure out which PageGroup to use.
        The inspector that debugs the main page will use "__WebInspectorPageGroupLevel1__",
        the second inspector (that debugs the first inspector) will use "__WebInspectorPageGroupLevel2__" ...

        * UIProcess/WebInspectorProxy.cpp:
        (WebKit::WebInspectorPageGroups::shared):
        (WebKit::WebInspectorPageGroups::inspectorLevel):
        (WebKit::WebInspectorPageGroups::isInspectorPageGroup):
        (WebKit::WebInspectorPageGroups::inspectorPageGroupLevel):
        (WebKit::WebInspectorPageGroups::inspectorPageGroupForLevel):
        (WebKit::WebInspectorPageGroups::createInspectorPageGroup):
        (WebKit::WebInspectorProxy::WebInspectorProxy):
        (WebKit::WebInspectorProxy::inspectorPageGroup):
        (WebKit::WebInspectorProxy::isInspectorPage):
        (WebKit::WebInspectorProxy::canAttach):
        * UIProcess/WebInspectorProxy.h:

663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690
2013-11-08  Anders Carlsson  <andersca@apple.com>

        Begin stubbing out a KeyedEncoder class in WebCore
        https://bugs.webkit.org/show_bug.cgi?id=124079

        Reviewed by Sam Weinig.

        * Shared/KeyedEncoder.h: Removed.
        * Shared/cf/KeyedCodingValueCF.cpp: Removed.
        * Shared/cf/KeyedEncoder.cpp: Added.
        Remove old keyed encoders.

        (WebKit::createDictionary):
        Helper function to create a mutable dictionary.
        (WebKit::KeyedEncoder::KeyedEncoder):
        Create the root dictionary.

        (WebKit::KeyedEncoder::encodeUInt32):
        Create a CFNumberRef and add it to the dictionary.

        * Shared/cf/KeyedEncoder.h: Added.
        * WebKit2.xcodeproj/project.pbxproj:
        Add new files.

        * WebProcess/WebPage/WebBackForwardListProxy.cpp:
        (WebKit::updateBackForwardItem):
        Create a KeyedEncoder and encode the history tree.

691 692 693 694 695 696 697 698 699 700
2013-11-08  Brady Eidson  <beidson@apple.com>

        Merge IDBTransactionBackendInterface and IDBTransactionBackendImpl
        https://bugs.webkit.org/show_bug.cgi?id=124077

        Reviewed by Alexey Proskuryakov.

        * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp:
        * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h:

701 702 703 704 705 706 707 708 709 710 711
2013-11-08  Brady Eidson  <beidson@apple.com>

        Merge IDBCursorBackendInterface and IDBCursorBackendImpl
        https://bugs.webkit.org/show_bug.cgi?id=124068

        Reviewed by Anders Carlsson.

        * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp:
        (WebKit::WebIDBFactoryBackend::createCursorBackend):
        * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h:

712 713 714 715 716 717 718 719 720 721 722 723
2013-11-08  Anders Carlsson  <andersca@apple.com>

        Remove a workaround for a bug in malloc on Symbian
        https://bugs.webkit.org/show_bug.cgi?id=124069

        Reviewed by Sam Weinig.

        * Platform/CoreIPC/ArgumentDecoder.cpp:
        (CoreIPC::ArgumentDecoder::~ArgumentDecoder):
        (CoreIPC::ArgumentDecoder::initialize):
        * Platform/CoreIPC/ArgumentDecoder.h:

andersca@apple.com's avatar
andersca@apple.com committed
724 725 726 727 728 729 730 731
2013-11-08  Anders Carlsson  <andersca@apple.com>

        More build fixes.

        * UIProcess/API/mac/WKBrowsingContextController.mm:
        * UIProcess/API/mac/WKConnection.mm:
        (didReceiveMessage):

andersca@apple.com's avatar
andersca@apple.com committed
732 733 734 735 736 737 738 739
2013-11-08  Anders Carlsson  <andersca@apple.com>

        More build fixes.

        * UIProcess/API/mac/WKConnection.h:
        * UIProcess/API/mac/WKConnection.mm:
        (didReceiveMessage):

740 741 742 743 744 745
2013-11-08  Anders Carlsson  <andersca@apple.com>

        Try to fix the 32-bit build.

        * Shared/API/Cocoa/WKBrowsingContextHandleInternal.h:

746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764
2013-11-08  Anders Carlsson  <andersca@apple.com>

        Replace __alignof with alignof.

        Rubber-stamped by Beth Dakin.

        * Platform/CoreIPC/ArgumentCoders.cpp:
        (CoreIPC::::encode):
        (CoreIPC::decodeStringText):
        * Platform/CoreIPC/ArgumentCoders.h:
        (CoreIPC::SimpleArgumentCoder::encode):
        (CoreIPC::SimpleArgumentCoder::decode):
        * Platform/CoreIPC/ArgumentDecoder.h:
        (CoreIPC::ArgumentDecoder::bufferIsLargeEnoughToContain):
        * WebProcess/WebPage/DecoderAdapter.cpp:
        (WebKit::DecoderAdapter::decodeString):
        * WebProcess/WebPage/EncoderAdapter.cpp:
        (WebKit::EncoderAdapter::encodeString):

765 766 767 768 769 770 771 772 773 774 775
2013-11-08  Anders Carlsson  <andersca@apple.com>

        Add a way to get a WKWebProcessPlugInBrowserContextController from a handle
        https://bugs.webkit.org/show_bug.cgi?id=124063

        Reviewed by Beth Dakin.

        * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
        (+[WKWebProcessPlugInBrowserContextController lookUpBrowsingContextFromHandle:]):
        * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerPrivate.h:

776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796
2013-11-08  Anders Carlsson  <andersca@apple.com>

        More work on WKBrowsingContextHandle
        https://bugs.webkit.org/show_bug.cgi?id=124060

        Reviewed by Beth Dakin.

        Implement -hash and -isEqual: and add -[WKWebProcessPlugInBrowserContextController handle].

        * Shared/API/Cocoa/WKBrowsingContextHandle.mm:
        (-[WKBrowsingContextHandle hash]):
        (-[WKBrowsingContextHandle isEqual:]):
        * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
        (decodeInvocation):
        * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
        (-[WKWebProcessPlugInBrowserContextController mainFrameDocument]):
        (-[WKWebProcessPlugInBrowserContextController selectedRange]):
        (-[WKWebProcessPlugInBrowserContextController handle]):
        * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerInternal.h:
        * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerPrivate.h:

797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819
2013-11-08  Anders Carlsson  <andersca@apple.com>

        Add A WKBrowsingContextHandle class
        https://bugs.webkit.org/show_bug.cgi?id=124058

        Reviewed by Sam Weinig.

        The WKBrowsingContextHandle class represents a browsing context and can be sent across process boundaries.

        * Shared/API/Cocoa/WKBrowsingContextHandle.h: Added.
        * Shared/API/Cocoa/WKBrowsingContextHandle.mm: Added.
        (-[WKBrowsingContextHandle _initWithPageID:]):
        (-[WKBrowsingContextHandle encodeWithCoder:]):
        (-[WKBrowsingContextHandle initWithCoder:]):
        (+[WKBrowsingContextHandle supportsSecureCoding]):
        * Shared/API/Cocoa/WKBrowsingContextHandleInternal.h: Added.
        * UIProcess/API/mac/WKBrowsingContextController.mm:
        (-[WKBrowsingContextController handle]):
        * UIProcess/API/mac/WKBrowsingContextControllerInternal.h:
        * UIProcess/API/mac/WKBrowsingContextControllerPrivate.h:
        (NS_ENUM):
        * WebKit2.xcodeproj/project.pbxproj:

820 821 822 823 824 825 826 827 828 829 830 831 832 833
2013-11-08  Anders Carlsson  <andersca@apple.com>

        Add WKRemoteObjectRegistry to WKConnection
        https://bugs.webkit.org/show_bug.cgi?id=124054

        Reviewed by Sam Weinig.

        * UIProcess/API/mac/WKConnection.h:
        * UIProcess/API/mac/WKConnection.mm:
        (-[WKConnection delegate]):
        (-[WKConnection setDelegate:]):
        (-[WKConnection remoteObjectRegistry]):
        (didReceiveMessage):

834 835 836 837 838 839 840 841 842 843 844 845 846
2013-11-08  Anders Carlsson  <andersca@apple.com>

        Encode and decode NSURLRequests using NSCoder
        https://bugs.webkit.org/show_bug.cgi?id=124051

        Reviewed by Sam Weinig.

        * Shared/mac/WebCoreArgumentCodersMac.mm:
        (CoreIPC::archiveAndEncodeObject):
        (CoreIPC::decodeAndUnarchiveObject):
        (CoreIPC::::encodePlatformData):
        (CoreIPC::::decodePlatformData):

847 848 849 850 851 852 853 854 855 856 857
2013-11-07  Anders Carlsson  <andersca@apple.com>

        Encode and decode NSURLResponse objects using NSCoder
        https://bugs.webkit.org/show_bug.cgi?id=124028

        Reviewed by Andreas Kling.

        * Shared/mac/WebCoreArgumentCodersMac.mm:
        (CoreIPC::::encodePlatformData):
        (CoreIPC::::decodePlatformData):

858 859 860 861 862 863 864 865 866 867 868
2013-11-07  Anders Carlsson  <andersca@apple.com>

        Move m_destinationID to MessageDecoder
        https://bugs.webkit.org/show_bug.cgi?id=124026

        Reviewed by Andreas Kling.

        * Platform/CoreIPC/ArgumentDecoder.h:
        * Platform/CoreIPC/MessageDecoder.h:
        (CoreIPC::MessageDecoder::destinationID):

869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887
2013-11-07  Anders Carlsson  <andersca@apple.com>

        Get rid of the out-of-line memory attachment type
        https://bugs.webkit.org/show_bug.cgi?id=124023

        Reviewed by Andreas Kling.

        We're only using out-of-line memory for when the message body is too big, so
        isolate that code in Connection and get rid of the out of line attachment type.

        * Platform/CoreIPC/Attachment.cpp:
        (CoreIPC::Attachment::Attachment):
        * Platform/CoreIPC/Attachment.h:
        (CoreIPC::Attachment::port):
        (CoreIPC::Attachment::disposition):
        * Platform/CoreIPC/mac/ConnectionMac.cpp:
        (CoreIPC::Connection::sendOutgoingMessage):
        (CoreIPC::createMessageDecoder):

888 889 890 891 892 893 894 895 896 897 898 899
2013-11-07  Simon Fraser  <simon.fraser@apple.com>

        Lots of layers get solid color but transparent contents layers now
        https://bugs.webkit.org/show_bug.cgi?id=123537

        Reviewed by Tim Horton.
        
        Add some properties to the list of things not to implicitly animate.

        * Shared/mac/RemoteLayerTreePropertyApplier.mm:
        (WebKit::RemoteLayerTreePropertyApplier::disableActionsForLayer):

andersca@apple.com's avatar
andersca@apple.com committed
900 901 902 903 904 905 906 907 908 909 910 911 912
2013-11-07  Anders Carlsson  <andersca@apple.com>

        Remove more dead code
        https://bugs.webkit.org/show_bug.cgi?id=124016

        Reviewed by Beth Dakin.

        We're always layer backed now so we never scroll using the PageClient.

        * UIProcess/API/mac/PageClientImpl.mm:
        (WebKit::PageClientImpl::canScrollView):
        (WebKit::PageClientImpl::scrollView):

913 914 915 916 917 918 919 920 921 922 923 924 925 926 927
2013-11-07  Anders Carlsson  <andersca@apple.com>

        Don't repaint the view when the web process crashes
        https://bugs.webkit.org/show_bug.cgi?id=124013

        Reviewed by Dan Bernstein.

        It's up to each individual port to decide whether the view should be repainted when the web process crashes.

        * UIProcess/API/mac/PageClientImpl.mm:
        (WebKit::PageClientImpl::setViewNeedsDisplay):
        (WebKit::PageClientImpl::displayView):
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::resetStateAfterProcessExited):

928 929 930 931 932 933 934 935 936 937 938 939 940
2013-11-07  Tamas Gergely  <gertom@inf.u-szeged.hu>

        Report error on unknown template class usage.
        https://bugs.webkit.org/show_bug.cgi?id=123096

        Reviewed by Darin Adler.

        Report error when template class is not found in the dictionary.

        * Scripts/webkit2/messages.py:
        (class_template_headers):
        (class_template_headers.template):

941 942 943 944 945 946 947 948 949 950 951 952
2013-11-07  Denis Nomiyama  <d.nomiyama@samsung.com>

        [GTK] Glyphs in vertical text tests are rotated 90 degrees clockwise
        https://bugs.webkit.org/show_bug.cgi?id=50619

        Reviewed by Martin Robinson.

        Added WebCore/platform/graphics/opentype to the include path.

        * PlatformEfl.cmake:
        * PlatformGTK.cmake:

953 954 955 956 957 958 959 960 961 962
2013-11-07  Brendan Long  <b.long@cablelabs.com>

        [Gtk] Remove old takeFocus() method from PageClientImpl and mark methods as OVERRIDE
        https://bugs.webkit.org/show_bug.cgi?id=123919

        Reviewed by Carlos Garcia Campos.

        * UIProcess/API/gtk/PageClientImpl.cpp: Remove takeFocus().
        * UIProcess/API/gtk/PageClientImpl.h: Remove takeFocus() and mark methods as OVERRIDE.

963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982
2013-11-06  Dan Bernstein  <mitz@apple.com>

        Moved UIProcess/Cocoa to UIProcess/API/Cocoa.

        Rubber-stamped by Anders Carlsson.

        * UIProcess/API/Cocoa: Copied from Source/WebKit2/UIProcess/Cocoa.
        * UIProcess/Cocoa: Removed.
        * UIProcess/Cocoa/WKBackForwardList.h: Removed.
        * UIProcess/Cocoa/WKBackForwardList.mm: Removed.
        * UIProcess/Cocoa/WKBackForwardListInternal.h: Removed.
        * UIProcess/Cocoa/WKBackForwardListItem.h: Removed.
        * UIProcess/Cocoa/WKBackForwardListItem.mm: Removed.
        * UIProcess/Cocoa/WKBackForwardListItemInternal.h: Removed.
        * UIProcess/Cocoa/WKBrowsingContextHistoryDelegate.h: Removed.
        * UIProcess/Cocoa/WKNavigationData.h: Removed.
        * UIProcess/Cocoa/WKNavigationData.mm: Removed.
        * UIProcess/Cocoa/WKNavigationDataInternal.h: Removed.
        * WebKit2.xcodeproj/project.pbxproj:

983 984 985 986 987 988 989 990 991 992
2013-11-06  Brendan Long  <b.long@cablelabs.com>

        [Gtk][EFL] Fix build after r158759
        https://bugs.webkit.org/show_bug.cgi?id=123910

        Reviewed by Gyuyoung Kim.

        * UIProcess/CoordinatedGraphics/CoordinatedDrawingAreaProxy.cpp:
        (WebKit::CoordinatedDrawingAreaProxy::incorporateUpdate): Remove call to flashBackingStoreUpdates().

993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009
2013-11-06  Tim Horton  <timothy_horton@apple.com>

        Remote Layer Tree: RemoteLayerTreeDrawingArea doesn't make layers for fixedpos elements
        https://bugs.webkit.org/show_bug.cgi?id=123943

        Reviewed by Simon Fraser.

        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        (WebKit::RemoteLayerTreeDrawingArea::updatePreferences):
        Make fixed position elements create compositing layers and stacking contexts
        in the RemoteLayerTreeDrawingArea just like they do in TiledCoreAnimationDrawingArea.

        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
        (WebKit::TiledCoreAnimationDrawingArea::updatePreferences):
        Fix the comment, since we have long since achieved this goal.

1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026
2013-11-06  Anders Carlsson  <andersca@apple.com>

        Implement enough functionality so that NSURLRequest objects can be decoded
        https://bugs.webkit.org/show_bug.cgi?id=123942

        Reviewed by Andreas Kling.

        * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
        (-[WKRemoteObjectEncoder requiresSecureCoding]):
        Add new method. Return YES.

        (-[WKRemoteObjectDecoder decodeValueOfObjCType:at:]):
        Add new method. This currently only handles 'i', but we'll add more variants as needed.

        (-[WKRemoteObjectDecoder decodeBoolForKey:]):
        Get a WebBoolean from the dictionary and return its value.

1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041
2013-11-06  Anders Carlsson  <andersca@apple.com>

        Encoded object stream should be sequential
        https://bugs.webkit.org/show_bug.cgi?id=123939

        Reviewed by Andreas Kling.

        Reserve space in the object stream for objects that are to be encoded, otherwise
        the object stream will not be sequential.

        * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
        (encodeToObjectStream):
        * Shared/ImmutableArray.h:
        (WebKit::ImmutableArray::entries):

1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058
2013-11-06  Anders Carlsson  <andersca@apple.com>

        Allow property list classes to exist in containers
        https://bugs.webkit.org/show_bug.cgi?id=123938

        Reviewed by Andreas Kling.

        * Shared/API/Cocoa/WKRemoteObjectInterface.mm:
        (isContainerClass):
        Return whether a given class is a container class.

        (propertyListClasses):
        Return the set of property list classes.

        (allowedArgumentClassesForMethod):
        Allow all property list classes for container type arguments.

1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070
2013-11-06  Daniel Bates  <dabates@apple.com>

        [iOS] Upstream Letterpress effect
        https://bugs.webkit.org/show_bug.cgi?id=123932

        Reviewed by Sam Weinig.

        Add feature define ENABLE_LETTERPRESS disabled by default. We only enable
        letterpress on iOS.

        * Configurations/FeatureDefines.xcconfig:

1071 1072 1073 1074 1075 1076 1077 1078 1079 1080
2013-11-06  Dan Bernstein  <mitz@apple.com>

        Fixed multiple API test failures after r158764.

        Reviewed by Sam Weinig.

        * UIProcess/API/mac/WKBrowsingContextController.mm:
        (setUpPagePolicyClient): If the delegate isn’t set or doesn’t respond to a selector, respond
        with WKFramePolicyListenerUse().

1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097
2013-11-06  Anders Carlsson  <andersca@apple.com>

        Move allowed classes handling to decodeObject
        https://bugs.webkit.org/show_bug.cgi?id=123930

        Reviewed by Andreas Kling.

        * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
        (decodeObjectFromObjectStream):
        Pass allowed classes through to decodeObject.

        (decodeObject):
        Update to take an NSSet of allowed classes. If the set is nil, use the current set.

        (-[WKRemoteObjectDecoder decodeObjectOfClasses:forKey:]):
        Pass classes to decodeObject.

1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109
2013-11-06  Sergio Correia  <sergio.correia@openbossa.org>

        Fix EFL build after r158753
        https://bugs.webkit.org/show_bug.cgi?id=123923

        r158753 renamed WKNavigationData.h as WKNavigationDataRef.h, so
        update it in UIProcess/API/efl/ewk_navigation_data_private.h.

        Reviewed by Csaba Osztrogonác.

        * UIProcess/API/efl/ewk_navigation_data_private.h:

1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132
2013-11-06  Anders Carlsson  <andersca@apple.com>

        Implement more decoding methods
        https://bugs.webkit.org/show_bug.cgi?id=123922

        Reviewed by Dan Bernstein.

        * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
        (-[WKRemoteObjectDecoder decodeObjectForKey:]):
        Call decodeObjectOfClasses:forKey: passing nil as the classes set.

        (-[WKRemoteObjectDecoder decodeInt64ForKey:]):
        Try to get a WebUInt64 and return its value.

        (-[WKRemoteObjectDecoder decodeDoubleForKey:]):
        Try to get a WebDouble and return its value.

        (-[WKRemoteObjectDecoder decodeBytesForKey:returnedLength:]):
        Move this method next to the other decoding methods.

        (-[WKRemoteObjectDecoder requiresSecureCoding]):
        Ditto.

1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146
2013-11-06  Brendan Long  <b.long@cablelabs.com>

        [Gtk][EFL] Fix build after r158759
        https://bugs.webkit.org/show_bug.cgi?id=123910

        Reviewed by Gustavo Noronha Silva.

        * UIProcess/API/gtk/PageClientImpl.cpp: Remove flashBackingStoreUpdates().
        * UIProcess/API/gtk/PageClientImpl.h: Same.
        * UIProcess/CoordinatedGraphics/WebView.cpp: Same.
        * UIProcess/CoordinatedGraphics/WebView.h: Same.
        * UIProcess/DrawingAreaProxyImpl.cpp:
        (WebKit::DrawingAreaProxyImpl::incorporateUpdate): Don't call flashBackingStoreUpdates().

1147 1148 1149 1150 1151 1152
2013-11-06  Jer Noble  <jer.noble@apple.com>

        Unreviewed Mac build fix; include ResourceResponse.

        * Shared/WebNavigationDataStore.h:

1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178
2013-11-06  Anders Carlsson  <andersca@apple.com>

        Decode invocation arguments
        https://bugs.webkit.org/show_bug.cgi?id=123917

        Reviewed by Sam Weinig.

        * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
        (-[WKRemoteObjectDecoder initWithInterface:rootObjectDictionary:WebKit::]):
        Initialize the object stream.

        (decodeObjectFromObjectStream):
        Check that we're not reading past the end of the stream, then decode the object.

        (decodeInvocationArguments):
        Decode arguments from the object stream.

        (decodeInvocation):
        Call decodeInvocationArguments and set up the selector argument.
        
        * Shared/ImmutableArray.h:
        (WebKit::ImmutableArray::at):
        (WebKit::ImmutableArray::size):
        (WebKit::ImmutableArray::entries):
        Constify.

1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196
2013-11-06  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Add -[WKNavigationData response]
        https://bugs.webkit.org/show_bug.cgi?id=123918

        Reviewed by Sam Weinig.

        * Shared/WebNavigationDataStore.h: Added a ResourceResponse data member.
        (WebKit::WebNavigationDataStore::encode): Encode the response.
        (WebKit::WebNavigationDataStore::decode): Decode the response.
        * UIProcess/Cocoa/WKNavigationData.h: Declared new property.
        * UIProcess/Cocoa/WKNavigationData.mm:
        (-[WKNavigationData response]): Added.
        * UIProcess/WebNavigationData.h:
        (WebKit::WebNavigationData::response): Added.
        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
        (WebKit::WebFrameLoaderClient::updateGlobalHistory): Set the response in the data store.

weinig@apple.com's avatar
weinig@apple.com committed
1197 1198 1199 1200 1201 1202 1203 1204 1205
2013-11-06  Sam Weinig  <sam@webkit.org>

        Fix the 32-bit build.

        * UIProcess/API/mac/WKBrowsingContextController.h:
        * UIProcess/API/mac/WKBrowsingContextController.mm:
        (-[WKBrowsingContextController dealloc]):
        (-[WKBrowsingContextController _initWithPageRef:]):

1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219
2013-11-06  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Add -[WKBrowsingContextController unreachableURL]
        https://bugs.webkit.org/show_bug.cgi?id=123909

        Reviewed by Anders Carlsson.

        * UIProcess/API/mac/WKBrowsingContextController.h: Declared unreachableURL property.
        * UIProcess/API/mac/WKBrowsingContextController.mm:
        (-[WKBrowsingContextController unreachableURL]): Added.
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::unreachableURL): Added.
        * UIProcess/WebPageProxy.h:

1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232
2013-11-06  Anders Carlsson  <andersca@apple.com>

        Encode parameters as objects
        https://bugs.webkit.org/show_bug.cgi?id=123912

        Reviewed by Beth Dakin.

        We want to ensure that the objects have the right types when decoded, so just encode them as objects.

        * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
        (encodeInvocation):
        (-[WKRemoteObjectEncoder encodeValueOfObjCType:at:]):

1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252
2013-11-06  Sam Weinig  <sam@webkit.org>

        Add WKBrowsingContextPolicyDelegate
        https://bugs.webkit.org/show_bug.cgi?id=123904

        Reviewed by Anders Carlsson.

        * UIProcess/API/mac/WKBrowsingContextController.h:
        * UIProcess/API/mac/WKBrowsingContextController.mm:
        Implement a WKPagePolicyClient in terms of the new WKBrowsingContextPolicyDelegate protocol.
        
        * UIProcess/API/mac/WKBrowsingContextPolicyDelegate.h: 
        Added.

        * UIProcess/API/mac/WebKit2.h:
        Add new #include of WKBrowsingContextPolicyDelegate.h

        * WebKit2.xcodeproj/project.pbxproj:
        Add new file.

1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279
2013-11-06  Anders Carlsson  <andersca@apple.com>

        WKRemoteObjectInterface should keep track of allowed decodable classes
        https://bugs.webkit.org/show_bug.cgi?id=123903

        Reviewed by Sam Weinig.

        * Shared/API/Cocoa/WKRemoteObjectInterface.mm:
        (allowedArgumentClassesForMethod):
        Helper function that returns a vector of sets of allowed classes for each method argument.

        (initializeAllowedArgumentClasses):
        Iterate over the methods in the protocol, get the extended method type encoding and create an
        NSMethodSignature from it. Finally, pass the signature to allowedArgumentClassesForMethod.

        (initializeAllowedArgumentClasses):
        Call the other initializeAllowedArgumentClasses twice, once for required methods,
        and once for optional methods.

        (-[WKRemoteObjectInterface initWithProtocol:identifier:]):
        Call initializeAllowedArgumentClasses.

        (-[WKRemoteObjectInterface _allowedArgumentClassesForSelector:]):
        Add new getter.

        * Shared/API/Cocoa/WKRemoteObjectInterfaceInternal.h:

andersca@apple.com's avatar
andersca@apple.com committed
1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298
2013-11-06  Anders Carlsson  <andersca@apple.com>

        Remove dead code
        https://bugs.webkit.org/show_bug.cgi?id=123902

        Reviewed by Tim Horton.

        Remove the PageClient::containingWindowGraphicsContext() as well as the
        WKPageSetDebugPaintFlags and WKPageGetDebugPaintFlags API functions.

        * UIProcess/API/C/WKPage.cpp:
        * UIProcess/API/mac/PageClientImpl.h:
        * UIProcess/API/mac/PageClientImpl.mm:
        * UIProcess/PageClient.h:
        * UIProcess/WebPageProxy.cpp:
        * UIProcess/WebPageProxy.h:
        * UIProcess/mac/WebPageProxyMac.mm:
        (WebKit::WebPageProxy::searchTheWeb):

1299 1300 1301 1302 1303 1304 1305 1306
2013-11-06  Dan Bernstein  <mitz@apple.com>

        Promoted WKBrowsingContextHistoryDelegate.h to private.

        Rubber-stamped by Sam Weinig.

        * WebKit2.xcodeproj/project.pbxproj:

mitz@apple.com's avatar
mitz@apple.com committed
1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353
2013-11-06  Dan Bernstein  <mitz@apple.com>

        [Cocoa] History delegate
        https://bugs.webkit.org/show_bug.cgi?id=123837

        Reviewed by Sam Weinig.

        * Shared/Cocoa/APIObject.mm:
        (WebKit::APIObject::newObject): Allocate a WKNavigationData if the object is a
        WebNavigationData.

        * Shared/Cocoa/WKNSString.h:
        (WebKit::wrapper): Added. Returns a WebString’s wrapper as an NSString.

        * Shared/Cocoa/WKNSURL.h:
        (WebKit::wrapper): Added. Returns a WebURL’s wrapper as an NSURL.

        * UIProcess/API/C/WKNavigationData.cpp: Renamed.
        * UIProcess/API/C/WKNavigationData.h: Renamed.
        * UIProcess/API/C/WKNavigationDataRef.cpp: Copied from Source/WebKit2/UIProcess/API/C/WKNavigationData.cpp.
        * UIProcess/API/C/WKNavigationDataRef.h: Copied from Source/WebKit2/UIProcess/API/C/WKNavigationData.h.

        * UIProcess/API/mac/WKBrowsingContextController.h: Declared historyDelegate property.

        * UIProcess/API/mac/WKProcessGroup.mm:
        (didNavigateWithNavigationData): Added history client callback that calls the browsing
        context’s history delegate.
        (didPerformClientRedirect): Ditto.
        (didPerformServerRedirect): Ditto.
        (didUpdateHistoryTitle): Ditto.
        (setUpHistoryClient): Added.
        (-[WKProcessGroup initWithInjectedBundleURL:]): Added call to setUpHistoryClient.
        (-[WKProcessGroup dealloc]): Clear the history client.

        * UIProcess/Cocoa/WKBrowsingContextHistoryDelegate.h: Added.

        * UIProcess/Cocoa/WKNavigationData.h: Added.
        * UIProcess/Cocoa/WKNavigationData.mm: Added.
        (-[WKNavigationData dealloc]): Calls the WebNavigationData destructor.
        (-[WKNavigationData title]): Added.
        (-[WKNavigationData originalRequest]): Added.
        (-[WKNavigationData destinationURL]): Added.
        (-[WKNavigationData _apiObject]): Returns the wrapped WebNavigationData.
        * UIProcess/Cocoa/WKNavigationDataInternal.h: Added.
        (WebKit::wrapper): Added. Returns a WebNavigationData’s wrapper as a WKNavigationData.
        * WebKit2.xcodeproj/project.pbxproj: Updated for renames and additions.

1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387
2013-11-05  Anders Carlsson  <andersca@apple.com>

        Begin work on decoding invocations
        https://bugs.webkit.org/show_bug.cgi?id=123838

        Reviewed by Dan Bernstein.

        * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
        (encodeInvocation):
        Declare the type string and selector keys as constants.

        (encodeObject):
        Make sure to encode the class name for NSInvocations as well.

        (decodeInvocation):
        Figure out the local and remove method signatures and make sure that they are equal.

        * Shared/API/Cocoa/WKRemoteObjectInterface.mm:
        (methodArgumentTypeEncodingForSelector):
        Helper function that returns the type encoding for a given selector.

        (-[WKRemoteObjectInterface _methodSignatureForSelector:]):
        Helper function that returns a method signature for the method with the name referred to by selector.

        * Shared/API/Cocoa/WKRemoteObjectInterfaceInternal.h: Added.
        Add internal header.

        * Shared/API/Cocoa/WKRemoteObjectRegistry.mm:
        (-[WKRemoteObjectRegistry _invokeMessageWithInterfaceIdentifier:encodedInvocation:]):
        Pass the right object to the WKRemoteObjectDecoder initializer and decode the invocation.

        * WebKit2.xcodeproj/project.pbxproj:
        Add internal header.

1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412
2013-11-05  Anders Carlsson  <andersca@apple.com>

        WKRemoteObjectDecoder should know which interface it's decoding for
        https://bugs.webkit.org/show_bug.cgi?id=123833

        Reviewed by Andreas Kling.

        Move the interface identifier out into the root object body dictionary and make 
        the encoded invocation a sibling of it. That way we can look up the interface before
        creating the decoder.
        
        Also, manage exported objects and interfaces in a separate hash map.

        * Shared/API/Cocoa/WKRemoteObjectCoder.h:
        * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
        (-[WKRemoteObjectDecoder initWithInterface:rootObjectDictionary:WebKit::]):
        (decodeInvocation):
        (decodeObject):
        * Shared/API/Cocoa/WKRemoteObjectRegistry.mm:
        (-[WKRemoteObjectRegistry registerExportedObject:interface:]):
        (-[WKRemoteObjectRegistry unregisterExportedObject:interface:]):
        (-[WKRemoteObjectRegistry _sendInvocation:interface:]):
        (-[WKRemoteObjectRegistry _handleMessageWithName:body:]):
        (-[WKRemoteObjectRegistry _invokeMessageWithInterfaceIdentifier:encodedInvocation:]):

1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462
2013-11-05  Anders Carlsson  <andersca@apple.com>

        Add support for decoding NSStrings
        https://bugs.webkit.org/show_bug.cgi?id=123829

        Reviewed by Andreas Kling.

        * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
        (encodeObject):
        (-[WKRemoteObjectDecoder allowsKeyedCoding]):
        Always return YES.

        (-[WKRemoteObjectDecoder containsValueForKey:]):
        Look up the key in the current dictionary.

        (-[WKRemoteObjectDecoder decodeBytesForKey:returnedLength:]):
        Try to get the WebData object and return its data + size.

        (-[WKRemoteObjectDecoder requiresSecureCoding]):
        Return YES.

        (checkIfClassIsAllowed):
        Check if the class or any of its superclasses are are allowed.

        (validateClass):
        Call checkIfClassIsAllowed and validate that the class conforms to NSSecureCoding.

        (decodeObject):
        Get the class name, verify that the class exists and is allowed. 
        Allocate and initialize an object using initWithCoder:.

        (-[WKRemoteObjectDecoder decodeObjectOfClasses:forKey:]):
        Set the allowed classes, look up the object in _currentDictionary and call decodeObject.

        (-[WKRemoteObjectDecoder allowedClasses]):
        Return _allowedClasses.

        * Shared/API/Cocoa/WKRemoteObjectRegistry.mm:
        (-[WKRemoteObjectRegistry _sendInvocation:interface:]):
        Declare interfaceIdentifier as a constant.

        (-[WKRemoteObjectRegistry _invokeMessageWithBody:]):
        Decode the interface identifier.

        * Shared/ImmutableDictionary.h:
        (WebKit::ImmutableDictionary::get):
        (WebKit::ImmutableDictionary::size):
        (WebKit::ImmutableDictionary::map):
        Make member functions const.

1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477
2013-11-05  Benjamin Poulain  <benjamin@webkit.org>

        Fix Mountain Lion Debug bot after r158689

        Unreviewed.

        It looks like WebGeolocationManagerProxy::stopUpdating() and WebGeolocationManagerProxy::processDidClose()
        are racing in some cases, causing the assertion to fail.

        That case is handled properly in the last if() branch of WebGeolocationManagerProxy::removeRequester().
        This patch remove the overzealous assertion.

        * UIProcess/WebGeolocationManagerProxy.cpp:
        (WebKit::WebGeolocationManagerProxy::removeRequester):

1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519
2013-11-05  Tim Horton  <timothy_horton@apple.com>

        Remote Layer Tree: Apply layer changes to LayerTypeCustom layers to the custom layer in the Web process, not to the CALayerHost
        https://bugs.webkit.org/show_bug.cgi?id=123818

        Reviewed by Anders Carlsson.

        Changes to the properties of a PlatformCALayer of type LayerTypeCustom are intended
        to affect the custom CALayer; however, we were bundling them up with the transaction
        and applying them to the CALayerHost, leading to important properties being lost.

        Instead, apply them to the Web-process-side CALayer when building the transaction.

        * Shared/mac/RemoteLayerTreePropertyApplier.h: Added.
        * Shared/mac/RemoteLayerTreePropertyApplier.mm: Added.
        (WebKit::cgColorFromColor):
        (WebKit::toCAFilterType):
        (WebKit::RemoteLayerTreePropertyApplier::applyPropertiesToLayer):
        (WebKit::RemoteLayerTreePropertyApplier::disableActionsForLayer):
        Move code to apply LayerProperties to a CALayer from RemoteLayerTreeHost.
        Move code to disable actions on a CALayer from RemoteLayerTreeHost.

        * UIProcess/mac/RemoteLayerTreeHost.mm:
        (WebKit::RemoteLayerTreeHost::commit):
        (WebKit::RemoteLayerTreeHost::createLayer):
        Use RemoteLayerTreePropertyApplier.
        Hand it a map of LayerID->CALayer so that it can look up related layers
        for children and mask layers.

        * WebKit2.xcodeproj/project.pbxproj:
        Add RemoteLayerTreePropertyApplier.{h,mm}

        * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
        (PlatformCALayerRemote::recursiveBuildTransaction):
        Upon commit, apply changes to LayerTypeCustom layers to the platform layer.
        Setting children or maskLayer won't work, since we don't know about other raw CALayers.
        This is OK, since nothing uses those properties on custom layers.

        * WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.cpp:
        (PlatformCALayerRemoteCustom::PlatformCALayerRemoteCustom):
        Disable actions on the root custom layer.

1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538
2013-11-05  Anders Carlsson  <andersca@apple.com>

        Begin work on a WKRemoteObjectDecoder object
        https://bugs.webkit.org/show_bug.cgi?id=123819

        Reviewed by Dan Bernstein.

        * Shared/API/Cocoa/WKRemoteObjectCoder.h:
        * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
        (-[WKRemoteObjectDecoder initWithRootObjectDictionary:]):
        Add designated initializer.

        * Shared/API/Cocoa/WKRemoteObjectRegistry.mm:
        (-[WKRemoteObjectRegistry _handleMessageWithName:body:]):
        If the message has the expected name and body type, pass it along to -_invokeMessageWithBody:.

        (-[WKRemoteObjectRegistry _invokeMessageWithBody:]):
        Create a decoder.

1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580
2013-11-05  Benjamin Poulain  <benjamin@webkit.org>

        [WK2] Add a WebKit2 API for Geolocation's highAccuracy
        https://bugs.webkit.org/show_bug.cgi?id=123786

        Reviewed by Darin Adler.

        This adds support for highAccuracy Geolocation with WebKit2.

        The key is to track which page/requester need what kind of geolocation
        in order to change between high and low accuracy as pages run and disappear.

        WebGeolocationManager and WebGeolocationManagerProxy have very similar roles
        but for different sources:
        -WebGeolocationManager tracks which live page require high accuracy geolocation.
         When the state changes, it forward the information to the UIProcess.
        -WebGeolocationManagerProxy tracks which WebContent processes needs high accuracy.

        * Shared/APIClientTraits.cpp:
        * Shared/APIClientTraits.h:
        * UIProcess/API/C/WKGeolocationManager.h:
        * UIProcess/WebGeolocationManagerProxy.cpp:
        (WebKit::WebGeolocationManagerProxy::startUpdating):
        (WebKit::WebGeolocationManagerProxy::removeRequester):
        (WebKit::WebGeolocationManagerProxy::setEnableHighAccuracy):
        * UIProcess/WebGeolocationManagerProxy.h:
        (WebKit::WebGeolocationManagerProxy::isUpdating):
        (WebKit::WebGeolocationManagerProxy::isHighAccuracyEnabled):
        * UIProcess/WebGeolocationManagerProxy.messages.in:
        * UIProcess/WebGeolocationProvider.cpp:
        (WebKit::WebGeolocationProvider::setEnableHighAccuracy):
        * UIProcess/WebGeolocationProvider.h:
        * WebProcess/Geolocation/WebGeolocationManager.cpp:
        (WebKit::WebGeolocationManager::registerWebPage):
        (WebKit::WebGeolocationManager::unregisterWebPage):
        (WebKit::WebGeolocationManager::setEnableHighAccuracyForPage):
        * WebProcess/Geolocation/WebGeolocationManager.h:
        (WebKit::WebGeolocationManager::isUpdating):
        (WebKit::WebGeolocationManager::isHighAccuracyEnabled):
        * WebProcess/WebCoreSupport/WebGeolocationClient.cpp:
        (WebKit::WebGeolocationClient::setEnableHighAccuracy):

1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602
2013-11-05  Anders Carlsson  <andersca@apple.com>

        Implement more NSCoder methods
        https://bugs.webkit.org/show_bug.cgi?id=123815

        Reviewed by Dan Bernstein.

        * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
        (encodeObject):
        Assert that object is not nil.

        (createEncodedObject):
        Handle nil objects.

        (-[WKRemoteObjectEncoder encodeValueOfObjCType:at:]):
        Call the right object stream encoding function based on the object type.

        (-[WKRemoteObjectEncoder encodeBool:forKey:]):
        (-[WKRemoteObjectEncoder encodeInt64:forKey:]):
        (-[WKRemoteObjectEncoder encodeDouble:forKey:]):
        Create APIObjects and add them to the current dictionary.

andersca@apple.com's avatar
andersca@apple.com committed
1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613
2013-11-05  Anders Carlsson  <andersca@apple.com>

        Encode the class name
        https://bugs.webkit.org/show_bug.cgi?id=123813

        Reviewed by Dan Bernstein.

        * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
        (encodeObject):
        Get the Class using -[NSObject classForCoder] and encode its name in the object dictionary.

1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643
2013-11-05  Anders Carlsson  <andersca@apple.com>

        Clean up the WKRemoteObjectEncoder code
        https://bugs.webkit.org/show_bug.cgi?id=123811

        Reviewed by Dan Bernstein.

        Add a new object stream array to be used for the non-keyed encoding values
        and free functions for encoding values to the object stream. Simplify object encoding
        by moving the dictionary creation out into a separate function and ditching the block based methods.

        * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
        (ensureObjectStream):
        Add helper function to create an object stream.

        (encodeToObjectStream):
        Add overloads for encoding values into the object streams.

        (encodeInvocation):
        Add helper function for encoding an NSInvocation.

        (encodeObject):
        Call encodeInvocation if needed, otherwise just use encodeWithCoder:.

        (createEncodedObject):
        Helper function that sets up a dictionary, encodes the object into the dictionary and then returns the dictionary.

        (-[WKRemoteObjectEncoder encodeObject:forKey:]):
        Call createEncodedObject.    

1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654
2013-11-04  Brady Eidson  <beidson@apple.com>

        IDB: Split backend Cursors and Transactions into their own files
        https://bugs.webkit.org/show_bug.cgi?id=123789

        Reviewed by Alexey Proskuryakov.

        * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp:
        (WebKit::WebIDBFactoryBackend::createCursorBackend):
        * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h:

1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667
2013-11-04  Alexey Proskuryakov  <ap@apple.com>

        DumpRenderTree should reset its preferences file on launch
        https://bugs.webkit.org/show_bug.cgi?id=29751

        Reviewed by Dan Bernstein.

        * UIProcess/mac/WKFullKeyboardAccessWatcher.mm:
        (-[WKFullKeyboardAccessWatcher retrieveKeyboardUIModeFromPreferences:]):
        Further fix reading of AppleKeyboardUIMode - reading it from kCFPreferencesAnyApplication
        domain meant that current application's domain was explcitly ignored, and the only
        way to override the setting in WTR was through argument domain.

1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724
2013-11-04  Tim Horton  <timothy_horton@apple.com>

        Remote Layer Tree: Make LayerTypeCustom remote-host CALayers from the Web process
        https://bugs.webkit.org/show_bug.cgi?id=123766

        Reviewed by Anders Carlsson.

        Put each LayerTypeCustom layer into a CAContext, so that we can
        host small CALayer trees (for video, plugins, etc.) from the Web process
        to the UI process without proxying their (more complex) content.

        * Shared/mac/RemoteLayerTreeTransaction.h:
        * Shared/mac/RemoteLayerTreeTransaction.mm:
        (WebKit::RemoteLayerTreeTransaction::LayerCreationProperties::encode):
        (WebKit::RemoteLayerTreeTransaction::LayerCreationProperties::decode):
        (WebKit::RemoteLayerTreeTransaction::dump):
        Store, encode, and dump the CAContext ID of custom layers.

        * UIProcess/mac/RemoteLayerTreeHost.mm:
        (WebKit::RemoteLayerTreeHost::createLayer):
        Create a CALayerHost with the CAContext ID from the Web process.

        * WebKit2.xcodeproj/project.pbxproj:
        Add PlatformCALayerRemoteCustom.

        * WebProcess/WebPage/mac/GraphicsLayerCARemote.cpp:
        (WebKit::GraphicsLayerCARemote::createPlatformCALayer):
        Call the newly-added custom-layer constructor.

        * WebProcess/WebPage/mac/PlatformCALayerRemote.h:
        * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
        (PlatformCALayerRemote::create):
        (PlatformCALayerRemote::PlatformCALayerRemote):
        Move the call to layerWasCreated() out to ::create(), so that all of
        the constructors for this class and all subclasses have completed
        before we call it (so that layerWasCreated() can store the context ID
        in the created layer properties object).

        (WebKit::PlatformCALayerRemote::hostingContextID):
        Should never be reached on the base class, only PlatformCALayerRemoteCustom.

        * WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.cpp: Added.
        (PlatformCALayerRemoteCustom::PlatformCALayerRemoteCustom):
        (PlatformCALayerRemoteCustom::~PlatformCALayerRemoteCustom):
        (PlatformCALayerRemoteCustom::hostingContextID):
        * WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.h: Added.
        Add PlatformCALayerRemoteCustom, which owns a LayerHostingContext
        which it will use to share a custom CALayer tree with the UI process.

        * WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.cpp:
        Drive-by remove an unnecessary include.

        * WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:
        (WebKit::RemoteLayerTreeContext::layerWasCreated):
        Store the CAContext ID with the layer creation properties so it can
        be used to create a CALayerHost upon commit in the UI process.

1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735
2013-11-04  Tim Horton  <timothy_horton@apple.com>

        Remove PlatformCALayer::playerLayer
        https://bugs.webkit.org/show_bug.cgi?id=123764

        Reviewed by Sam Weinig.

        * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
        * WebProcess/WebPage/mac/PlatformCALayerRemote.h:
        Remove playerLayer().

1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750
2013-11-04  Anders Carlsson  <andersca@apple.com>

        WKRemoteObjectEncoder should escape keys
        https://bugs.webkit.org/show_bug.cgi?id=123761

        Reviewed by Tim Horton.

        Keys that start with $ will be reserved for use by the coder, so prepend an extra
        $ to keys that already start with $ to avoid clashes.

        * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
        (escapeKey):
        (-[WKRemoteObjectEncoder encodeBytes:length:forKey:]):
        (-[WKRemoteObjectEncoder _encodeObjectForKey:usingBlock:]):

1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775
2013-11-04  Benjamin Poulain  <bpoulain@apple.com>

        [WK2] Update WebGeolocationManager to support multiple WebContent processes
        https://bugs.webkit.org/show_bug.cgi?id=123658

        Reviewed by Anders Carlsson.

        Change WebGeolocationManagerProxy to track which WebProcessProxy needs geolocation.

        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::disconnectProcess):
        WebContext::disconnectProcess does not handle ContextSupplement yet when using multiple
        WebContent processes. Add an explicit call for WebGeolocationManagerProxy as a temporary
        solution.

        * UIProcess/WebGeolocationManagerProxy.cpp:
        (WebKit::WebGeolocationManagerProxy::WebGeolocationManagerProxy):
        (WebKit::WebGeolocationManagerProxy::contextDestroyed):
        (WebKit::WebGeolocationManagerProxy::processDidClose):
        (WebKit::WebGeolocationManagerProxy::startUpdating):
        (WebKit::WebGeolocationManagerProxy::stopUpdating):
        (WebKit::WebGeolocationManagerProxy::removeRequester):
        * UIProcess/WebGeolocationManagerProxy.h:
        * UIProcess/WebGeolocationManagerProxy.messages.in:

1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792
2013-11-01  Jer Noble  <jer.noble@apple.com>

        [PluginProxy] Add a setting to disable video plugin proxy support in HTMLMediaElement.
        https://bugs.webkit.org/show_bug.cgi?id=123621

        Reviewed by Eric Carlson.

        Add WebKit2 functions for setting then new isVideoPluginProxyEnabled preference.

        * Shared/WebPreferencesStore.h:
        * UIProcess/API/C/WKPreferences.cpp:
        (WKPreferencesSetVideoPluginProxyEnabled):
        (WKPreferencesGetVideoPluginProxyEnabled):
        * UIProcess/API/C/WKPreferences.h:
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::updatePreferences):

1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810
2013-11-04  Anders Carlsson  <andersca@apple.com>

        More WKRemoteObjectRegistry work
        https://bugs.webkit.org/show_bug.cgi?id=123754

        Reviewed by Dan Bernstein.

        * Shared/API/Cocoa/WKRemoteObjectCoder.h:
        * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
        (-[WKRemoteObjectEncoder rootObjectDictionary]):
        Add a getter for the root object dictionary.

        * Shared/API/Cocoa/WKRemoteObjectRegistry.mm:
        (-[WKRemoteObjectRegistry _sendInvocation:interface:]):
        Call _sendMessageWithBody:.
        (-[WKRemoteObjectRegistry _sendMessageWithBody:]):
        Call WebConnection::postMessage.

1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824
2013-11-03  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Wrappers' -copyWithZone: should copy if the collection is mutable
        https://bugs.webkit.org/show_bug.cgi?id=123707

        Reviewed by Geoff Garen and Anders Carlsson.

        * Shared/Cocoa/WKNSArray.mm:
        (-[WKNSArray copyWithZone:]): If the array is mutable, make a copy.
        * Shared/Cocoa/WKNSDictionary.mm:
        (-[WKNSDictionary copyWithZone:]): If the dictionary is mutable, make a copy.
        * Shared/ImmutableArray.h:
        (WebKit::ImmutableArray::entries): Added this accessor.

mitz@apple.com's avatar
mitz@apple.com committed
1825 1826 1827 1828 1829 1830 1831 1832 1833 1834
2013-11-03  Dan Bernstein  <mitz@apple.com>

        Reverted r158538.

        * Shared/Cocoa/WKNSArray.mm:
        (-[WKNSArray copyWithZone:]):
        * Shared/Cocoa/WKNSDictionary.mm:
        (-[WKNSDictionary copyWithZone:]):
        * Shared/ImmutableArray.h:

1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848
2013-11-03  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Wrappers' -copyWithZone: should copy if the collection is mutable
        https://bugs.webkit.org/show_bug.cgi?id=123707

        Reviewed by Geoff Garen.

        * Shared/Cocoa/WKNSArray.mm:
        (-[WKNSArray copyWithZone:]): If the array is mutable, make a copy.
        * Shared/Cocoa/WKNSDictionary.mm:
        (-[WKNSDictionary copyWithZone:]): If the dictionary is mutable, make a copy.
        * Shared/ImmutableArray.h:
        (WebKit::ImmutableArray::entries): Added this accessor.

1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862
2013-11-02  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Wrappers mishandle NULL values in arrays and dictionaries
        https://bugs.webkit.org/show_bug.cgi?id=123671

        Reviewed by Darin Adler.

        * Shared/Cocoa/WKNSArray.mm:
        (-[WKNSArray objectAtIndex:]): Represent a NULL object as NSNull.
        * Shared/Cocoa/WKNSDictionary.mm:
        (-[WKNSDictionary objectForKey:]): Represent a NULL value as NSNull.
        * Shared/ImmutableDictionary.h:
        (WebKit::ImmutableDictionary::get): Added this overload that returns whether the key exists.

mitz@apple.com's avatar
mitz@apple.com committed
1863 1864 1865 1866 1867 1868 1869
2013-11-02  Dan Bernstein  <mitz@apple.com>

        Fixed release builds.

        * Shared/Cocoa/WKNSDictionary.mm:
        (-[WKNSDictionary initWithObjects:forKeys:count:]):

mitz@apple.com's avatar
mitz@apple.com committed
1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889
2013-11-02  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Add WKNSDictionary
        https://bugs.webkit.org/show_bug.cgi?id=123660

        Reviewed by Anders Carlsson.

        * Shared/Cocoa/APIObject.mm:
        (WebKit::APIObject::newObject): Allocate a WKNSDictionary if the APIObject is a dictionary.
        * Shared/Cocoa/WKNSDictionary.h: Added.
        (WebKit::wrapper):  Added. Returns an ImmutableDictionary’s wrapper as an NSDictionary.
        * Shared/Cocoa/WKNSDictionary.mm: Added.
        (-[WKNSDictionary dealloc]): Calls the ImmutableDictionary destructor.
        (-[WKNSDictionary count]): Added.
        (-[WKNSDictionary objectForKey:]): Added.
        (-[WKNSDictionary keyEnumerator]): Added.
        (-[WKNSDictionary copyWithZone:]): Retains self.
        (-[WKNSDictionary _apiObject]): Returns the wrapped ImmutableDictionary.
        * WebKit2.xcodeproj/project.pbxproj: Added references to new files.

1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919
2013-11-02  Tim Horton  <timothy_horton@apple.com>

        Address some review comments noted in r158463
        https://bugs.webkit.org/show_bug.cgi?id=123646

        Reviewed by Darin Adler.

        * Shared/mac/RemoteLayerBackingStore.mm:
        Put our __has_include ifs all on one line.

        (createIOSurface):
        IOSurfaceAlignProperty returns size_t, not unsigned long.

        (RemoteLayerBackingStore::display):
        (RemoteLayerBackingStore::drawInContext):
        Create the frontImage in display() and hand it to drawInContext().

        Use the GraphicsContext API instead of CG itself for clearRect().

        When using ShareableBitmap, replace m_frontBuffer instead of
        having a backBuffer local; the CGImageRef will retain the
        ShareableBitmap it references.

        Duplicate our drawInContext() calls so we don't have to allocate
        a GraphicsContext on the heap in the IOSurface case.

        Don't bother clearing frontContext; it'll happen for us at
        the appropriate time. Instead, assert that it's still alive after
        we drop our reference to the frontImage created from it.

1920 1921 1922 1923 1924 1925 1926 1927 1928 1929
2013-11-02  Zan Dobersek  <zdobersek@igalia.com>

        [GTK] invalid use of incomplete type 'class WTF::PassOwnPtr<WTF::Vector<unsigned char> >'
        https://bugs.webkit.org/show_bug.cgi?id=123601

        Reviewed by Carlos Garcia Campos.

        * WebProcess/Plugins/Netscape/NetscapePluginStream.cpp: Explicitly include the PassOwnPtr.h header
        as certain configurations on the GTK port don't ensure that the header is included indirectly.

1930 1931 1932 1933 1934 1935 1936 1937 1938
2013-11-02  Vitaly Katunin  <vkatunin@luxoft.com>

        [GTK] invalid application of 'sizeof' to incomplete type
        https://bugs.webkit.org/show_bug.cgi?id=123502

        Reviewed by Carlos Garcia Campos.

        * Shared/WebCoreArgumentCoders.cpp:

1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953
2013-11-01  Tim Horton  <timothy_horton@apple.com>

        Remote Layer Tree: Crashes allocating incredibly large backing store for tiled backing layers
        https://bugs.webkit.org/show_bug.cgi?id=123651

        Reviewed by Simon Fraser.

        * Shared/mac/RemoteLayerBackingStore.mm:
        (RemoteLayerBackingStore::display):
        (RemoteLayerBackingStore::drawInContext):
        We can't dirty the whole layer if we have no existing front buffer if
        we have no paints, because that will lead to layers which were never
        setNeedsDisplay()'d getting backing store. Added back an assertion
        that will catch this, too.

1954 1955 1956 1957 1958 1959 1960 1961 1962 1963
2013-11-01  Dan Bernstein  <mitz@apple.com>

        [Cocoa] WKObject seems to be initializing its target in a thread-safe manner, but really is not
        https://bugs.webkit.org/show_bug.cgi?id=123640

        Reviewed by Darin Adler.

        * Shared/Cocoa/WKObject.mm:
        (initializeTargetIfNeeded): Removed misleading incorrect code.

1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977
2013-11-01  Benjamin Poulain  <benjamin@webkit.org>

        [WK2] Create a unique identifier for WebPageGroup if the input name is empty
        https://bugs.webkit.org/show_bug.cgi?id=123606

        Reviewed by Andreas Kling.

        Strengthen the "public" API of page group.
        If someone uses WKBrowsingContextGroup with a nil or empty string, the related WKString
        would be empty, and all the WKBrowsingContextGroup end up with the same identifier.

        * UIProcess/WebPageGroup.cpp:
        (WebKit::WebPageGroup::WebPageGroup):

1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996
2013-11-01  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Avoid some double-wrapping of strings and URLs
        https://bugs.webkit.org/show_bug.cgi?id=123632

        Reviewed by Anders Carlsson.

        * Shared/API/c/cf/WKStringCF.cpp: Removed.
        * Shared/API/c/cf/WKStringCF.mm: Copied from Source/WebKit2/Shared/API/c/cf/WKStringCF.cpp.
        (wkNSStringClass): Added this helper.
        (WKStringCreateWithCFString): If the passed-in CFString is already wrapping a WebString,
        then retain it and return it.
        * Shared/API/c/cf/WKURLCF.cpp: Removed.
        * Shared/API/c/cf/WKURLCF.mm: Copied from Source/WebKit2/Shared/API/c/cf/WKURLCF.cpp.
        (wkNSURLClass): Added this helper.
        (WKURLCreateWithCFURL): If the passed-in CFURL is already wrapping a WebURL, then retain it
        and return it.
        * WebKit2.xcodeproj/project.pbxproj: Updated for renames.

1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018
2013-11-01  Anders Carlsson  <andersca@apple.com>

        Begin work on encoding argument types
        https://bugs.webkit.org/show_bug.cgi?id=123631

        Reviewed by Dan Bernstein.

        * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
        (-[WKRemoteObjectEncoder _encodeInvocation:forKey:]):
        Encode argument types in an array.

        (-[WKRemoteObjectEncoder _encodedObjectUsingBlock:]):
        Add new helper method that encodes an object and returns the dictionary.

        (-[WKRemoteObjectEncoder _encodeObjectForKey:usingBlock:]):
        Implement this in terms of _encodedObjectUsingBlock:.

        * Shared/MutableArray.cpp:
        (WebKit::MutableArray::append):
        * Shared/MutableArray.h:
        Change append to take a PassRefPtr.

2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049
2013-10-31  Gavin Barraclough  <barraclough@apple.com>

        Rename InWindowState -> ViewState
        https://bugs.webkit.org/show_bug.cgi?id=123584

        Rubber stamped by Sam Weinig.

        WebPageProxy::setViewState offers the option to wait for a reply. Previously this option
        was only available via setIsInWindow, hence the mechanism to wait to the update has
        'InWindowState' in method and variable names (i.e.
        'WebPageProxy::waitForDidUpdateInWindowState'). Since the mechanism is now applicable to
        all ViewState changes, rename to reflect this.

        * UIProcess/API/mac/WKView.mm:
        (-[WKView endDeferringViewInWindowChangesSync]):
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::WebPageProxy):
        (WebKit::WebPageProxy::waitForDidUpdateViewState):
        (WebKit::WebPageProxy::resetStateAfterProcessExited):
        * UIProcess/WebPageProxy.h:
        (WebKit::WebPageProxy::didUpdateViewState):
        * UIProcess/WebPageProxy.messages.in:
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage):
        (WebKit::WebPage::didUpdateViewStateTimerFired):
        (WebKit::WebPage::setViewState):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:
        * WebProcess/WebPage/mac/WebPageMac.mm:
        (WebKit::WebPage::didUpdateViewStateTimerFired):

2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063
2013-11-01  Tim Horton  <timothy_horton@apple.com>

        Remote Layer Tree: Move RemoteLayerBackingStore to Shared/
        https://bugs.webkit.org/show_bug.cgi?id=123646

        Reviewed by Darin Adler.

        Move RemoteLayerBackingStore to Shared/, since it is
        used on both the UI and Web process side of things.

        * Shared/mac/RemoteLayerBackingStore.h: Renamed from Source/WebKit2/WebProcess/WebPage/mac/RemoteLayerBackingStore.h.
        * Shared/mac/RemoteLayerBackingStore.mm: Renamed from Source/WebKit2/WebProcess/WebPage/mac/RemoteLayerBackingStore.mm.
        * WebKit2.xcodeproj/project.pbxproj:

2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089
2013-11-01  Tim Horton  <timothy_horton@apple.com>

        Remote Layer Tree: Vend layer contents via IOSurfaces
        https://bugs.webkit.org/show_bug.cgi?id=123600

        Reviewed by Anders Carlsson.

        Address some review comments from Darin (and subsequently Anders).

        * WebProcess/WebPage/mac/RemoteLayerBackingStore.h:
        (WebKit::RemoteLayerBackingStore::surface):
        No need for .get() here.

        * WebProcess/WebPage/mac/RemoteLayerBackingStore.mm:
        (RemoteLayerBackingStore::ensureBackingStore):
        All on one line for readability.

        (createIOSurfaceContext):
        This 'if' is meaningless.

        (createIOSurface):
        No need for a RetainPtr here, the dictionary is autoreleased.

        (RemoteLayerBackingStore::display):
        Snuggle 'context' up next to the other declarations.

2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106
2013-11-01  Anders Carlsson  <andersca@apple.com>

        Don't use the C API in WKRemoteObjectCoder
        https://bugs.webkit.org/show_bug.cgi?id=123627

        Reviewed by Dan Bernstein.

        * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
        (-[WKRemoteObjectEncoder init]):
        (-[WKRemoteObjectEncoder encodeBytes:length:forKey:]):
        (-[WKRemoteObjectEncoder _encodeObjectForKey:usingBlock:]):
        * Shared/ImmutableDictionary.h:
        * Shared/MutableDictionary.cpp:
        (WebKit::MutableDictionary::add):
        (WebKit::MutableDictionary::set):
        * Shared/MutableDictionary.h:

2107 2108 2109 2110 2111 2112 2113 2114 2115
2013-11-01  Emilio Pozuelo Monfort  <pochu27@gmail.com>

        Fix build on non-linux platforms
        https://bugs.webkit.org/show_bug.cgi?id=123622

        Reviewed by Darin Adler.

        * UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:

2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128
2013-11-01  Brian Holt  <brian.holt@samsung.com>

        [GTK] [WK2] Crash in webkitWebViewLoadFailedWithTLSErrors
        https://bugs.webkit.org/show_bug.cgi?id=123618

        Reviewed by Mario Sanchez Prada.

        The GOwnPtrSoup header was not included which meant that the
        specialization for GOwnPtr<SoupURI> was not used and instead the
        default freeOwnedGPtr which calls g_free is used and crashes.

        * UIProcess/API/gtk/WebKitWebView.cpp:

2129 2130 2131 2132 2133 2134
2013-10-31  Tim Horton  <timothy_horton@apple.com>

        Fix a typo/review comment from Dan, in http://trac.webkit.org/changeset/158413

        * Shared/API/Cocoa/WKRemoteObjectCoder.mm:

2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211
2013-10-31  Tim Horton  <timothy_horton@apple.com>

        Remote Layer Tree: Vend layer contents via IOSurfaces
        https://bugs.webkit.org/show_bug.cgi?id=123600

        Reviewed by Anders Carlsson.

        * Configurations/WebKit2.xcconfig:
        Link WebKit2 against IOSurface.

        * Shared/mac/RemoteLayerTreeTransaction.mm:
        (WebKit::dumpChangedLayers):
        Dump the size of the backing store instead of the pointer of its
        SharedBitmap, because that's slightly more useful.

        * UIProcess/mac/RemoteLayerTreeHost.mm:
        (WebKit::RemoteLayerTreeHost::commit):
        If a layer's backing store uses accelerated drawing, hand the IOSurface
        to the CALayer for display.

        * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
        (PlatformCALayerRemote::PlatformCALayerRemote):
        Initialize contentsScale to 1 to match CA. Other properties will follow.

        (PlatformCALayerRemote::ensureBackingStore):
        Instead of replacing the RemoteLayerBackingStore when its properties
        change, allow it to update them on the fly. Replacing them caused
        us to throw away repaint rects when the accelerated drawing
        flag was flipped.

        (PlatformCALayerRemote::acceleratesDrawing):
        (PlatformCALayerRemote::setAcceleratesDrawing):
        Store the accelerated drawing flag and mark it dirty when it changes.

        * WebProcess/WebPage/mac/PlatformCALayerRemote.h:
        * WebProcess/WebPage/mac/RemoteLayerBackingStore.h:
        (WebKit::RemoteLayerBackingStore::image):
        Rename bitmap() to image() and have it create a CGImageRef from
        the ShareableBitmap, ready for direct application to a CALayer.

        (WebKit::RemoteLayerBackingStore::surface):
        Return a IOSurface ready for direct application to a CALayer.

        (WebKit::RemoteLayerBackingStore::acceleratesDrawing):
        (WebKit::RemoteLayerBackingStore::hasFrontBuffer):
        Return whether or not we have a front buffer/surface.

        * WebProcess/WebPage/mac/RemoteLayerBackingStore.mm:
        Forward-declare some CGIOSurface SPI.

        (RemoteLayerBackingStore::RemoteLayerBackingStore):
        (RemoteLayerBackingStore::ensureBackingStore):
        Throw away our front image and reset flags if needed.

        (RemoteLayerBackingStore::encode):
        (RemoteLayerBackingStore::decode):
        En/decode the front surface instead of the ShareableBitmap if needed,
        using CoreIPC::MachPort. Destroy the port on receipt.

        (createIOSurfaceContext):
        Create a CGIOSurfaceContext from an IOSurface.

        (createIOSurface):
        Create an IOSurface of the given size.

        (RemoteLayerBackingStore::image):
        Return a CGImageRef, if we're not using accelerated drawing.
        Moved from the header.

        (RemoteLayerBackingStore::display):
        (RemoteLayerBackingStore::drawInContext):
        If using accelerated drawing, create and paint into an IOSurface.
        Reorganize some code to make the copying-from-the-front-image code
        work for both software and IOSurfaces.
        Flush the context when completed, to ensure that any asynchronous
        painting is complete before we vend the surface to the UI process.

2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255
2013-10-31  Anders Carlsson  <andersca@apple.com>

        Begin stubbing out the WKRemoteObjectCoder NSCoder subclass
        https://bugs.webkit.org/show_bug.cgi?id=123596

        Reviewed by Tim Horton.

        * Shared/API/Cocoa/WKRemoteObject.mm:
        (-[WKRemoteObject forwardInvocation:]):
        Call through to the WKRemoteObjectRegistry.

        * Shared/API/Cocoa/WKRemoteObjectCoder.h: Added.
        * Shared/API/Cocoa/WKRemoteObjectCoder.mm: Added.
        (-[WKRemoteObjectEncoder init]):
        Create a root WKDictionary.

        (-[WKRemoteObjectEncoder dealloc]):
        Assert that the current dictionary is the root dictionary; that we're back where we started.

        (-[WKRemoteObjectEncoder allowsKeyedCoding]):
        Return YES.

        (-[WKRemoteObjectEncoder encodeObject:forKey:]):
        Check that the object is valid and then encode it.

        (-[WKRemoteObjectEncoder _encodeInvocation:forKey:]):
        Encode the method type string and invocation selector.

        (-[WKRemoteObjectEncoder encodeBytes:length:forKey:]):
        Create a WKDataRef and add it to the dictionary.

        (-[WKRemoteObjectEncoder _encodeObjectForKey:usingBlock:]):
        Create a new dictionary and call the block.

        * Shared/API/Cocoa/WKRemoteObjectRegistry.mm:
        (-[WKRemoteObjectRegistry _sendInvocation:interface:]):
        Create an encoder and encode the invocation and interface.

        * Shared/API/Cocoa/WKRemoteObjectRegistryInternal.h: Added.
        Add IPI header.

        * WebKit2.xcodeproj/project.pbxproj:
        Add new files.

andersca@apple.com's avatar
andersca@apple.com committed
2256 2257 2258 2259 2260 2261 2262 2263
2013-10-31  Anders Carlsson  <andersca@apple.com>

        Address review comments.

        * Shared/API/Cocoa/WKRemoteObject.h:
        * Shared/API/Cocoa/WKRemoteObject.mm:
        (-[WKRemoteObject conformsToProtocol:]):

2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296
2013-10-31  Anders Carlsson  <andersca@apple.com>

        Add a WKRemoteObject class
        https://bugs.webkit.org/show_bug.cgi?id=123586

        Reviewed by Dan Bernstein.

        * Shared/API/Cocoa/WKRemoteObject.h: Added.
        * Shared/API/Cocoa/WKRemoteObject.mm: Added.
        (-[WKRemoteObject _initWithObjectRegistry:interface:]):
        Add designated initializer.

        (-[WKRemoteObject conformsToProtocol:]):
        Check if the interface protocol conforms to our protocol.

        (methodArgumentTypeEncodingForSelector):
        Helper function that looks up a method in a given protocol and returns its type encoding.

        (-[WKRemoteObject methodSignatureForSelector:]):
        Try to find the method argument type encoding for the given selector and return its NSMethodSignature.

        (-[WKRemoteObject forwardInvocation:]):
        Add stub.

        * Shared/API/Cocoa/WKRemoteObjectInterface.mm:
        Remove a newline.

        * Shared/API/Cocoa/WKRemoteObjectRegistry.mm:
        (-[WKRemoteObjectRegistry remoteObjectProxyWithInterface:]):
        Establish a mapping between interface identifiers and remote object proxies.

        * WebKit2.xcodeproj/project.pbxproj:

ap@apple.com's avatar
ap@apple.com committed
2297 2298 2299 2300 2301 2302 2303 2304 2305
2013-10-31  Alexey Proskuryakov  <ap@apple.com>

        Enable WebCrypto on Mac
        https://bugs.webkit.org/show_bug.cgi?id=123587

        Reviewed by Anders Carlsson.

        * Configurations/FeatureDefines.xcconfig: Do it.

2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334
2013-10-31  Sergio Correia  <sergio.correia@openbossa.org>

        [WK2] Convert SeccompFilters to using unique_ptr instead of OwnPtr/PassOwnPtr
        https://bugs.webkit.org/show_bug.cgi?id=122883

        Reviewed by Darin Adler.

        * Shared/linux/SeccompFilters/OpenSyscall.cpp:
        (WebKit::OpenSyscall::createFromOpenatContext):
        (WebKit::OpenSyscall::createFromCreatContext):
        (WebKit::OpenSyscall::execute):
        * Shared/linux/SeccompFilters/OpenSyscall.h:
        * Shared/linux/SeccompFilters/SeccompBroker.cpp:
        (WebKit::SIGSYSHandler):
        (WebKit::SeccompBrokerClient::dispatch):
        (WebKit::SeccompBroker::runLoop):
        * Shared/linux/SeccompFilters/SigactionSyscall.cpp:
        (WebKit::SigactionSyscall::createFromContext):
        * Shared/linux/SeccompFilters/SigactionSyscall.h:
        * Shared/linux/SeccompFilters/SigprocmaskSyscall.cpp:
        (WebKit::SigprocmaskSyscall::createFromContext):
        * Shared/linux/SeccompFilters/SigprocmaskSyscall.h:
        * Shared/linux/SeccompFilters/Syscall.cpp:
        (WebKit::Syscall::createFromContext):
        (WebKit::Syscall::createFromDecoder):
        (WebKit::SyscallResult::createFromDecoder):
        * Shared/linux/SeccompFilters/Syscall.h:
        * Shared/linux/SeccompFilters/SyscallPolicy.cpp:

2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397
2013-10-31  Gavin Barraclough  <barraclough@apple.com>

        Change WebPage, WebPageProxy, WebPageCreationParameters to use ViewState
        https://bugs.webkit.org/show_bug.cgi?id=123379

        Reviewed by Darin Adler.

        Visibility state of the Page should be stored and communicated consistently.

        Remove individual visibility flags from WebPageProxy, WebPageCreationParameters,
        and replace them with a ViewState, and add a ViewState member to WebPage.
        Merge together all messages that convey and individual aspect of the ViewState.

        Restructure WebPageProxy::viewStateDidChange to break the operation down into
        three steps: 1) update m_viewState, 2) send the new ViewState to the WebProcess,
        and 3) perform any further work necessary in the UIProcess.

        This patch fixes a problem that if the web process crashes m_isVisible &
        m_isInWindow in WebPageProxy were not updated, and could have held stale values
        on reattach.

        In WebPage, add a new message to update the entire ViewState - diff the prior
        value against the new one to detect changes, call existing methods accordingly.

        * Shared/ViewState.h:
            - Add constants 'Reset', 'AllFlags'
        * Shared/WebPageCreationParameters.cpp:
        (WebKit::WebPageCreationParameters::encode):
        (WebKit::WebPageCreationParameters::decode):
        * Shared/WebPageCreationParameters.h:
            - Removed boolean visibility flags, added viewState.
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::WebPageProxy):
            - Constructor calls updateViewState to initialize m_viewState.
        (WebKit::WebPageProxy::reattachToWebProcess):
            - ViewStaet is not updated while detatched; recalculate.
        (WebKit::WebPageProxy::initializeWebPage):
            - m_isVisible -> isViewVisible()
        (WebKit::WebPageProxy::updateViewState):
            - Added, update m_viewState by querying the page client.
        (WebKit::WebPageProxy::viewStateDidChange):
            - Restructured to use m_viewState, reordered to combine messages.
        (WebKit::WebPageProxy::creationParameters):
            - Removed boolean visibility flags, added viewState.
        * UIProcess/WebPageProxy.h:
        (WebKit::WebPageProxy::isInWindow):
        (WebKit::WebPageProxy::isViewVisible):
            - Removed boolean visibility flags, added viewState.
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage):
            - initial state now passed as a ViewState.
        (WebKit::WebPage::setIsInWindow):
            - Remove code to send reply (this is handled by setViewState).
        (WebKit::WebPage::setViewState):
            - Set m_viewState - diff from prior & call methods to update.
        * WebProcess/WebPage/WebPage.h:
            - Added setViewState, m_viewState.
        * WebProcess/WebPage/WebPage.messages.in:
            - Add SetViewState, remove individual messages.
        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
        (WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):