1. 31 Oct, 2013 8 commits
    • ap@apple.com's avatar
      Enable WebCrypto on Mac · 13a73330
      ap@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=123587
      
      Reviewed by Anders Carlsson.
      
      Source/JavaScriptCore:
      
      * Configurations/FeatureDefines.xcconfig: Do it.
      
      Source/WebCore:
      
      * Configurations/FeatureDefines.xcconfig: Enable it.
      
      * bindings/js/JSCryptoAlgorithmDictionary.cpp: Build fix.
      
      * crypto/CryptoAlgorithmRegistry.cpp: (WebCore::CryptoAlgorithmRegistry::getIdentifierForName):
      Special case empty keys to avoid upsetting HashMap.
      
      * crypto/algorithms/CryptoAlgorithmSHA1.cpp: (WebCore::CryptoAlgorithmSHA1::create):
      Build fix. Can't use make_unique, because constructor is private.
      
      Source/WebKit/mac:
      
      * Configurations/FeatureDefines.xcconfig: Do it.
      
      Source/WebKit2:
      
      * Configurations/FeatureDefines.xcconfig: Do it.
      
      LayoutTests:
      
      * TestExpectations:
      * platform/efl/TestExpectations:
      * platform/gtk/TestExpectations:
      * platform/win/TestExpectations:
      * platform/wincairo/TestExpectations:
      Only skipping on specific platforms now.
      
      * crypto: Added.
      * crypto/crypto-gc-expected.txt: Copied from LayoutTests/security/crypto-gc-expected.txt.
      * crypto/crypto-gc.html: Copied from LayoutTests/security/crypto-gc.html.
      * crypto/crypto-random-values-expected.txt: Copied from LayoutTests/security/crypto-random-values-expected.txt.
      * crypto/crypto-random-values-limits-expected.txt: Copied from LayoutTests/security/crypto-random-values-limits-expected.txt.
      * crypto/crypto-random-values-limits.html: Copied from LayoutTests/security/crypto-random-values-limits.html.
      * crypto/crypto-random-values-types-expected.txt: Copied from LayoutTests/security/crypto-random-values-types-expected.txt.
      * crypto/crypto-random-values-types.html: Copied from LayoutTests/security/crypto-random-values-types.html.
      * crypto/crypto-random-values.html: Copied from LayoutTests/security/crypto-random-values.html.
      * crypto/subtle: Added.
      * crypto/subtle/argument-conversion-expected.txt: Copied from LayoutTests/security/crypto-subtle-arguments-expected.txt.
      * crypto/subtle/argument-conversion.html: Copied from LayoutTests/security/crypto-subtle-arguments.html.
      * crypto/subtle/gc-2-expected.txt: Copied from LayoutTests/security/crypto-subtle-gc-2-expected.txt.
      * crypto/subtle/gc-2.html: Copied from LayoutTests/security/crypto-subtle-gc-2.html.
      * crypto/subtle/gc-3-expected.txt: Copied from LayoutTests/security/crypto-subtle-gc-3-expected.txt.
      * crypto/subtle/gc-3.html: Copied from LayoutTests/security/crypto-subtle-gc-3.html.
      * crypto/subtle/gc-expected.txt: Copied from LayoutTests/security/crypto-subtle-gc-expected.txt.
      * crypto/subtle/gc.html: Copied from LayoutTests/security/crypto-subtle-gc.html.
      * crypto/subtle/resources: Added.
      * crypto/subtle/resources/common.js: Copied from LayoutTests/security/resources/common.js.
      * crypto/subtle/sha-1-expected.txt: Copied from LayoutTests/security/crypto-subtle-sha1-expected.txt.
      * crypto/subtle/sha-1.html: Copied from LayoutTests/security/crypto-subtle-sha1.html.
      * security/crypto-gc-expected.txt: Removed.
      * security/crypto-gc.html: Removed.
      * security/crypto-random-values-expected.txt: Removed.
      * security/crypto-random-values-limits-expected.txt: Removed.
      * security/crypto-random-values-limits.html: Removed.
      * security/crypto-random-values-types-expected.txt: Removed.
      * security/crypto-random-values-types.html: Removed.
      * security/crypto-random-values.html: Removed.
      * security/crypto-subtle-arguments-expected.txt: Removed.
      * security/crypto-subtle-arguments.html: Removed.
      * security/crypto-subtle-gc-2-expected.txt: Removed.
      * security/crypto-subtle-gc-2.html: Removed.
      * security/crypto-subtle-gc-3-expected.txt: Removed.
      * security/crypto-subtle-gc-3.html: Removed.
      * security/crypto-subtle-gc-expected.txt: Removed.
      * security/crypto-subtle-gc.html: Removed.
      * security/crypto-subtle-sha1-expected.txt: Removed.
      * security/crypto-subtle-sha1.html: Removed.
      * security/resources/common.js: Removed.
      Moved tests from security/ to crypto/.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158396 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      13a73330
    • commit-queue@webkit.org's avatar
      [WK2] Convert SeccompFilters to using unique_ptr instead of OwnPtr/PassOwnPtr · be85573f
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=122883
      
      Patch by Sergio Correia <sergio.correia@openbossa.org> on 2013-10-31
      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:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158388 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      be85573f
    • barraclough@apple.com's avatar
      Change WebPage, WebPageProxy, WebPageCreationParameters to use ViewState · 1355a70a
      barraclough@apple.com authored
      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):
          - initial state now passed as a ViewState.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158372 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1355a70a
    • barraclough@apple.com's avatar
      WebPageCreationParameters should be consistent in Window.open · 9c620b2e
      barraclough@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=123557
      
      Reviewed by Sam Weinig.
      
      When Window.open in called in WebKit2 the WebProcess sends a synchronous request to open
      a page (WebPageProxy::createNewPage). The UIProcess creates a WebpageProxy, and responds
      with instructions to the WebProcess to create the WebPage. The initial creation state of
      the WebPage is communicated to the WebProcess via two routes (firstly an asynchronous
      WebProcess::CreateWebPage message, and secondly in the synchronous response from
      WebPageProxy::createNewPage). Unfortunately these responses are inconsistent with each
      other. The creationParameters() for the page are calculated twice, and since the WKView
      will be added to a window between the async message being sent and the synchronous reply
      being returned the visibility state of the page can change.
      
      To fix the inconsistency we can set the creation parameters at the point that the
      WebPageProxy is instantiated. This will result in a functional change that is web
      visible, since the page will initially be opened in a hidden/blurred state, and may
      later become visible/focussed. This change is consistent with the direction we want to
      evolve in. Whilst we will still probably require a synchronous message from the
      WebProcess to the UIProcess on Window.open, we'll probably make this return much earlier
      – having just created the WebPageProxy, but avoiding blocking the WebProcess over the
      client delegate callback that opens the new window.
      
      This fix results in a layout test result change, due to the change in behavior (page is
      created blurred, and becomes focussed, resulting in a focus event being fired – rather
      than the window opening directly into a focussed state). This is reported as a
      progression (test is broken in WebKit1, fixed in WebKit2 after this change). In reality
      the test is actually slightly broken in DRT/test-runner – the test runs differently than
      in browser, since there is is no visible main window. In-browser this patch results in
      no change in behavior on dom/Window/mozilla-focus-blur.html (the affected test).
      
      Source/WebKit2: 
      
      * UIProcess/WebPageProxy.cpp:
      (WebKit::WebPageProxy::initializeWebPage):
          - call initializeCreationParameters
      (WebKit::WebPageProxy::initializeCreationParameters):
          - calculate m_creationParameters
      * UIProcess/WebPageProxy.h:
      (WebKit::WebPageProxy::creationParameters):
          - Added m_creationParameters, initializeCreationParameters,
            creationParameters returns m_creationParameters
      
      LayoutTests: 
      
      * platform/mac-wk2/fast/dom/Window: Added.
      * platform/mac-wk2/fast/dom/Window/mozilla-focus-blur-expected.txt: Added.
          - This test now reports a pass on WebKit2
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158369 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      9c620b2e
    • philn@webkit.org's avatar
      [WK2][GTK] enable-media-stream Setting · 877a94da
      philn@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=123145
      
      Reviewed by Anders Carlsson.
      
      Source/WebCore:
      
      * page/Settings.in: new mediaStreamEnabled setting.
      
      Source/WebKit2:
      
      * Shared/WebPreferencesStore.h: New MediaStreamEnabled boolean preference.
      * UIProcess/API/C/WKPreferences.cpp: MediaStreamEnabled getter and
      setter functions.
      (WKPreferencesSetMediaStreamEnabled):
      (WKPreferencesGetMediaStreamEnabled):
      * UIProcess/API/C/WKPreferences.h:
      * UIProcess/API/gtk/WebKitSettings.cpp: Add a enable-media-stream
      property to the GTK WebKitSettings class. It will act as a facade
      to the MediaStreamEnabled preference.
      (webKitSettingsSetProperty):
      (webKitSettingsGetProperty):
      (webkit_settings_class_init):
      (webkit_settings_get_enable_media_stream):
      (webkit_settings_set_enable_media_stream):
      * UIProcess/API/gtk/WebKitSettings.h:
      * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
      * UIProcess/API/gtk/tests/TestWebKitSettings.cpp:
      (testWebKitSettings): Test enable-media-stream websetting.
      * WebProcess/InjectedBundle/InjectedBundle.cpp:
      (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
      Allow WKTR to override the MediaStreamEnabled preference.
      * WebProcess/WebPage/WebPage.cpp:
      (WebKit::WebPage::updatePreferences): Update MediaStreamEnabled
      along with the other settings.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158360 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      877a94da
    • beidson@apple.com's avatar
      IDB Database versions are uint64_t, not int64_t · 3efbcaa2
      beidson@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=123556
      
      Reviewed by Alexey Proskuryakov.
      
      Source/WebCore:
      
      * Modules/indexeddb/IDBBackingStoreInterface.h:
      
      * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
      (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
      (WebCore::IDBDatabaseBackendImpl::openConnection):
      * Modules/indexeddb/IDBDatabaseBackendImpl.h:
      
      * Modules/indexeddb/IDBFactoryBackendInterface.h:
      
      * Modules/indexeddb/IDBPendingOpenCall.h:
      (WebCore::IDBPendingOpenCall::create):
      (WebCore::IDBPendingOpenCall::version):
      (WebCore::IDBPendingOpenCall::IDBPendingOpenCall):
      
      * Modules/indexeddb/IDBTransactionBackendOperations.cpp:
      (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::perform):
      
      * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
      (WebCore::IDBBackingStoreLevelDB::updateIDBDatabaseVersion):
      * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
      
      * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
      (WebCore::IDBFactoryBackendLevelDB::open):
      * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h:
      
      Source/WebKit2:
      
      * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp:
      (WebKit::WebIDBFactoryBackend::open):
      * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h:
      
      * WebProcess/Databases/IndexedDB/WebProcessIDBDatabaseBackend.cpp:
      (WebKit::WebProcessIDBDatabaseBackend::openConnection):
      * WebProcess/Databases/IndexedDB/WebProcessIDBDatabaseBackend.h:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158348 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3efbcaa2
    • mitz@apple.com's avatar
      Fixed a potential race condition around the initializtion of WKObject’s target. · 6db225d6
      mitz@apple.com authored
      Reviewed by Mark Rowe.
      
      * Shared/Cocoa/WKObject.mm:
      (initializeTargetIfNeeded): Removed the early return if _target is non-nil. As Mark pointed
      out, when stores are reordered relative to other stores, it is possible for the early return
      to occur while the object _target is pointing to is not yet valid.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158340 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6db225d6
    • rniwa@webkit.org's avatar
      Remove code for Mac Lion · 63c3a040
      rniwa@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=123542
      
      Reviewed by Anders Carlsson.
      
      Source/WebCore: 
      
      Removed the code for Mac OS X 10.7.
      
      * platform/graphics/ImageBuffer.h:
      * platform/graphics/cg/ImageBufferCG.cpp:
      (WebCore::ImageBuffer::ImageBuffer):
      (WebCore::ImageBuffer::context):
      (WebCore::ImageBuffer::flushContext):
      * platform/graphics/cg/ImageBufferDataCG.h:
      * platform/graphics/cg/ImageSourceCG.cpp:
      (WebCore::imageSourceOptions):
      * platform/graphics/mac/ComplexTextControllerCoreText.mm:
      (WebCore::ComplexTextController::collectComplexTextRunsForCharacters):
      * platform/mac/ScrollAnimatorMac.mm:
      (WebCore::scrollAnimationEnabledForSystem):
      * platform/mac/ScrollElasticityController.mm:
      (WebCore::reboundDeltaForElasticDelta):
      * platform/mac/ThemeMac.mm:
      (WebCore::updateStates):
      (WebCore::paintCheckbox):
      (WebCore::paintRadio):
      (WebCore::paintButton):
      * platform/mac/WebCoreNSCellExtras.h:
      * platform/mac/WebCoreNSCellExtras.m:
      * rendering/RenderThemeMac.mm:
      (WebCore::RenderThemeMac::paintTextField):
      (WebCore::RenderThemeMac::paintMenuList):
      (WebCore::RenderThemeMac::setPopupButtonCellState):
      (WebCore::RenderThemeMac::textField):
      
      Source/WebKit/mac: 
      
      * WebView/WebHTMLView.mm:
      (-[WebHTMLView attachRootLayer:]):
      * WebView/WebView.mm:
      
      Source/WebKit2: 
      
      
      * NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
      * UIProcess/API/mac/WKView.mm:
      (-[WKView viewWillMoveToWindow:]):
      * WebProcess/com.apple.WebProcess.sb.in:
      
      Source/WTF: 
      
      * wtf/Platform.h:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158330 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      63c3a040
  2. 30 Oct, 2013 9 commits
    • mitz@apple.com's avatar
      Try to fix the !WK_API_ENABLED Mac build. · d6e1a6a8
      mitz@apple.com authored
      * Shared/Cocoa/APIObject.mm:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158325 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d6e1a6a8
    • mitz@apple.com's avatar
      [Cocoa] Make all API objects have Cocoa wrappers, and delegate refcounting to those wrappers · 2f8b296d
      mitz@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=123394
      
      Reviewed by Darin Adler.
      
      All wrappers conform to a new WKObject protocol and contain the wrapped object inline.
      APIObject-derived classes override operator new to call newObject, which allocates the
      wrapper and returns a pointer to the inline API object.
      
      There are three kinds of wrapper classes: (a) classes that inherit directly from NSObject
      and implement their API by calling the wrapped object (example: WKBackForwardList),
      (b) internal classes that inherit from a class cluster, and implement the primitive methods
      of the class cluster by calling the wrapped object (example: WKNSArray), and (c) internal
      classes that inerit from the new WKObject class, and proxy to an object of some public type,
      which is created from the wrapped object (example: WKNSURL).
      
      * Shared/APIObject.h:
      (WebKit::APIObject::wrapper): Added this getter.
      (WebKit::TypedAPIObject::operator new): Added override that calls newObject.
      * Shared/Cocoa/APIObject.mm: Added.
      (WebKit::APIObject::ref): Retains the wrapper.
      (WebKit::APIObject::deref): Releases the wrapper. When the wrapper is deallocated, it calls
      the API object destructor.
      (WebKit::APIObject::newObject): Allocates the wrapper and returns a pointer to the API
      object inside the wrapper.
      
      * Shared/Cocoa/WKNSArray.h:
      (WebKit::wrapper): Added. Returns an ImmutableArray’s wrapper as an NSArray.
      Replaced the RefPtr<ImmutableArray> ivar with space for an ImmutableArray to live inside
      the wrapper.
      (-[WKNSArray dealloc]): Calls the ImmutableArray destructor.
      (-[WKNSArray count]): Updated for ivar change.
      (-[WKNSArray objectAtIndex:]): Ditto.
      (-[WKNSArray _apiObject]): Returns the wrapped ImmutableArray.
      
      * Shared/Cocoa/WKNSObjectExtras.h: Removed.
      * Shared/Cocoa/WKNSObjectExtras.mm: Removed.
      
      * Shared/Cocoa/WKNSString.h: Added.
      * Shared/Cocoa/WKNSString.mm: Added.
      (-[WKNSString _web_createTarget]): Override this WKObject method to create an NSString from
      the WebString.
      (-[WKNSString copyWithZone:]): Retains self.
      
      * Shared/Cocoa/WKNSURL.h: Added.
      * Shared/Cocoa/WKNSURL.mm: Added.
      (-[WKNSURL _web_createTarget]): Override this WKObject method to create an NSURL from
      the WebURL.
      (-[WKNSURL copyWithZone:]): Retains self.
      
      * Shared/Cocoa/WKObject.h: Added.
      * Shared/Cocoa/WKObject.mm: Added.
      (-[WKObject dealloc]): Calls the destructor of the wrapped object and releases the target
      object.
      (initializeTargetIfNeeded): Helper function. Tries to create the target exactly once.
      (-[WKObject isEqual:]): NSObject override that creates and compares to the target
      object if necessary.
      (-[WKObject hash]): NSObject override that creates and hashes the target object if
      there is one.
      (-[WKObject isKindOfClass:]): NSObject override that delegates to the target object.
      (-[WKObject isMemberOfClass:]): Ditto.
      (-[WKObject respondsToSelector:]): NSObject override that creates the target object if
      necessary and returns whether it or self responds to the selector.
      (-[WKObject conformsToProtocol:]): Similarly for protocols.
      (-[WKObject forwardingTargetForSelector:]): NSObject override that creates the target object
      if necessary and returns it as the target.
      (-[WKObject description]): NSObject override that creates the target object if necessary and
      forwards to it.
      (-[WKObject _web_createTarget]): Added. The base implementation returns nil.
      (-[WKObject _apiObject]): Returns the wrapped object.
      
      * UIProcess/API/mac/WKBrowsingContextController.mm:
      (-[WKBrowsingContextController backForwardList]): Changed to return the existing wrapper.
      (didChangeBackForwardList): Changed to use existing wrappers.
      
      Replaced the RefPtr<WebBackForwardList> ivar with space for a WebBackForwardList to live
      inside the wrapper.
      (-[WKBackForwardList dealloc]): Call the WebBackForwardList destructor.
      (toWKBackForwardListItem): Changed to us the existing wrapper.
      (-[WKBackForwardList currentItem]): Updated for ivar change.
      (-[WKBackForwardList backItem]): Ditto.
      (-[WKBackForwardList forwardItem]): Ditto.
      (-[WKBackForwardList itemAtIndex:]): Ditto.
      (-[WKBackForwardList backListCount]): Ditto.
      (-[WKBackForwardList forwardListCount]): Ditto,
      (-[WKBackForwardList backListWithLimit:]): Ditto, and also changed to use the
      ImmutableArray’s existing wrapper.
      (-[WKBackForwardList forwardListWithLimit:]): Ditto.
      (-[WKBackForwardList _apiObject]): Returns the WebBackForwardListItem.
      * UIProcess/Cocoa/WKBackForwardListInternal.h:
      (WebKit::wrapper): Added. Returns a WebBackForwardList’s wrapper as a WKBackForwardList.
      
      * UIProcess/Cocoa/WKBackForwardListItem.mm:
      Replaced the RefPtr<WebBackForwardListItem> ivar with space for a WebBackForwardListItem to
      live inside the wrapper.
      (-[WKBackForwardListItem dealloc]): Call the WebBackForwardListItem destructor.
      (-[WKBackForwardListItem URL]): Updated for ivar change, and changed to make an NSURL
      directly instead of going through a wrapper.
      (-[WKBackForwardListItem title]): Updated for ivar change, and changed to use
      String’s operator NSString*.
      (-[WKBackForwardListItem originalURL]): Updated for ivar change, and changed to make an
      NSURL directly instead of going through a wrapper.
      (-[WKBackForwardListItem _apiObject]): Returns the WebBackForwardListItem.
      (-[WKBackForwardListItem _item]): Ditto.
      * UIProcess/Cocoa/WKBackForwardListItemInternal.h:
      (WebKit::wrapper): Added. Returns a WebBackForwardListItem’s wrapper as a
      WKBackForwardListItem.
      
      * UIProcess/WebColorPickerResultListenerProxy.h: Changed into a TypedAPIObject.
      
      * UIProcess/WebFormSubmissionListenerProxy.h:
      (WebKit::WebFormSubmissionListenerProxy::operator new): Override to call newObject.
      
      * UIProcess/WebFramePolicyListenerProxy.h:
      (WebKit::WebFramePolicyListenerProxy::operator new): Ditto.
      
      * WebKit2.xcodeproj/project.pbxproj: Updated for file additions and removals.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158324 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2f8b296d
    • andersca@apple.com's avatar
      Begin fleshing out an API test for WKRemoteObjectRegistry · 7331e51b
      andersca@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=123531
      
      Reviewed by Andreas Kling.
      
      Source/WebKit2:
      
      * Shared/API/Cocoa/WKRemoteObjectInterface.h:
      Add WK_API_CLASS annotation.
      
      * Shared/API/Cocoa/WKRemoteObjectRegistry.h:
      Add WK_API_CLASS annotation.
      
      * Shared/API/Cocoa/WKRemoteObjectRegistry.mm:
      Add a WebConnection ivar.
      
      (-[WKRemoteObjectRegistry _initWithConnectionRef:]):
      Add SPI to create an WKRemoteObjectRegistry object with an existing WKConnectionRef.
      
      (-[WKRemoteObjectRegistry _handleMessageWithName:body:]):
      Add SPI that will be used to process incoming messages from an existing WKConnectionRef.
      
      * Shared/API/Cocoa/WKRemoteObjectRegistryPrivate.h: Added.
      Add SPI header.
      
      * WebKit2.xcodeproj/project.pbxproj:
      Add new files.
      
      Tools:
      
      Add a very simple test that doesn't really test anything for now.
      
      * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
      * TestWebKitAPI/Tests/WebKit2ObjC/WKRemoteObjectRegistry.mm: Added.
      * TestWebKitAPI/Tests/mac/WKRemoteObjectRegistry_Bundle.mm: Added.
      * TestWebKitAPI/Tests/mac/WKRemoteObjectRegistry_Shared.h: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158316 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7331e51b
    • timothy_horton@apple.com's avatar
      Remote Layer Tree: Lots of ASSERT(m_children.isEmpty()); on Poster Circle · dd4f153a
      timothy_horton@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=123517
      
      Reviewed by Simon Fraser.
      
      * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
      (PlatformCALayerRemote::setSublayers):
      When setting our list of sublayers, remove all of the new layers from
      their parents first.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158297 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      dd4f153a
    • antti@apple.com's avatar
      Add debug settings for simple line layout · 2ec05012
      antti@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=123514
      
      Source/WebCore: 
      
      Reviewed by Andreas Kling.
      
      * WebCore.exp.in:
      * page/Settings.in:
              
          Add simpleLineLayoutEnabled and simpleLineLayoutDebugBordersEnabled.
      
      * rendering/SimpleLineLayout.cpp:
      (WebCore::SimpleLineLayout::canUseFor):
      * rendering/SimpleLineLayoutFunctions.cpp:
      (WebCore::SimpleLineLayout::paintDebugBorders):
      (WebCore::SimpleLineLayout::paintFlow):
      
      Source/WebKit2: 
      
      Reviewed by Andreas Kling.
              
      Expose debug settings.
      
      * Shared/WebPreferencesStore.h:
      * UIProcess/API/C/WKPreferences.cpp:
      (WKPreferencesSetSimpleLineLayoutEnabled):
      (WKPreferencesGetSimpleLineLayoutEnabled):
      (WKPreferencesSetSimpleLineLayoutDebugBordersEnabled):
      (WKPreferencesGetSimpleLineLayoutDebugBordersEnabled):
      * UIProcess/API/C/WKPreferencesPrivate.h:
      * WebProcess/WebPage/WebPage.cpp:
      (WebKit::WebPage::updatePreferences):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158279 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2ec05012
    • andersca@apple.com's avatar
      Add stubbed out WKRemoteObjectRegistry class · ccd4e681
      andersca@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=123512
      
      Reviewed by Andreas Kling.
      
      Also add a WKRemoteObjectInterface class that represents a remote object interface.
      
      * Shared/API/Cocoa/WKRemoteObjectInterface.h: Added.
      * Shared/API/Cocoa/WKRemoteObjectInterface.mm: Added.
      (-[WKRemoteObjectInterface initWithProtocol:identifier:]):
      (+[WKRemoteObjectInterface remoteObjectInterfaceWithProtocol:]):
      * Shared/API/Cocoa/WKRemoteObjectRegistry.h: Added.
      * Shared/API/Cocoa/WKRemoteObjectRegistry.mm: Added.
      (-[WKRemoteObjectRegistry registerExportedObject:interface:]):
      (-[WKRemoteObjectRegistry unregisterExportedObject:interface:]):
      (-[WKRemoteObjectRegistry remoteObjectProxyWithInterface:]):
      * WebKit2.xcodeproj/project.pbxproj:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158274 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ccd4e681
    • carlosgc@webkit.org's avatar
      [GTK] webkit_web_context_allow_tls_certificate_for_host doc is missing Since tag · 51ca4373
      carlosgc@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=123499
      
      Reviewed by Philippe Normand.
      
      * UIProcess/API/gtk/WebKitWebContext.cpp: Add Since: 2.4.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158260 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      51ca4373
    • ap@apple.com's avatar
      Result of focus-option-control-on-page.html depends on system preferences · 769414f5
      ap@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=123304
      
      Reviewed by Simon Fraser.
      
      Source/WebKit/mac:
      
      * WebView/WebView.mm: (-[WebView _retrieveKeyboardUIModeFromPreferences:]):
      Read the preference from its correct domain. This doesn't affect behavior in practice
      and isn't part of the fix, but it's a good opportunity to correct this code.
      
      Source/WebKit2:
      
      * UIProcess/mac/WKFullKeyboardAccessWatcher.mm:
      (-[WKFullKeyboardAccessWatcher retrieveKeyboardUIModeFromPreferences:]):
      Read the preference from its correct domain. This doesn't affect behavior in practice
      and isn't part of the fix, but it's a good opportunity to correct this code.
      
      Tools:
      
      * DumpRenderTree/mac/DumpRenderTree.mm: (setDefaultsToConsistentValuesForTesting):
      Override a preference that WebKit reads to decide what Tab does, so that current
      user default doesn't affect tests.
      
      * WebKitTestRunner/mac/main.mm: (setDefaultsToConsistentValuesForTesting):
      Ditto.
      
      LayoutTests:
      
      * platform/mac/TestExpectations: Remove Pass/Failure expectations, this test
      should always pass now.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158256 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      769414f5
    • beidson@apple.com's avatar
      Move IDBTransactionBackendLevelDB to generic IDBBackingStoreInterface · 607bfd2f
      beidson@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=123483
      
      Reviewed by Andreas Kling.
      
      Source/WebCore:
      
      * Modules/indexeddb/IDBCursorBackendInterface.h:
      * Modules/indexeddb/IDBDatabaseBackendImpl.h:
      * Modules/indexeddb/IDBDatabaseBackendInterface.h:
      * Modules/indexeddb/IDBFactoryBackendInterface.h:
      * Modules/indexeddb/IDBTransactionBackendInterface.h:
      
      * Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.cpp:
      (WebCore::IDBCursorBackendLevelDB::IDBCursorBackendLevelDB):
      * Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.h:
      (WebCore::IDBCursorBackendLevelDB::create):
      
      * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
      (WebCore::IDBFactoryBackendLevelDB::createCursorBackend):
      * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h:
      
      * Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.cpp:
      (WebCore::IDBTransactionBackendLevelDB::registerOpenCursor):
      (WebCore::IDBTransactionBackendLevelDB::unregisterOpenCursor):
      (WebCore::IDBTransactionBackendLevelDB::closeOpenCursors):
      (WebCore::IDBTransactionBackendLevelDB::createCursorBackend):
      * Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h:
      
      * WebCore.xcodeproj/project.pbxproj: Export a required header.
      
      Source/WebKit2:
      
      * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp:
      (WebKit::WebIDBFactoryBackend::createCursorBackend): Stubbed out.
      * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h:
      
      * WebProcess/Databases/IndexedDB/WebProcessIDBDatabaseBackend.cpp:
      (WebKit::WebProcessIDBDatabaseBackend::factoryBackend): Stubbed out.
      * WebProcess/Databases/IndexedDB/WebProcessIDBDatabaseBackend.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158246 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      607bfd2f
  3. 29 Oct, 2013 9 commits
    • jer.noble@apple.com's avatar
      [MSE] [Mac] Enable MediaSource on the Mac · 69589095
      jer.noble@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=122484
      
      Reviewed by Darin Adler.
      
      Source/WebCore:
      
      Enable ENABLE_MEDIA_SOURCE.
      
      * Configurations/FeatureDefines.xcconfig:
      
      Source/WebKit/mac:
      
      Enable ENABLE_MEDIA_SOURCE.
      
      * Configurations/FeatureDefines.xcconfig:
      
      Source/WebKit2:
      
      Enable ENABLE_MEDIA_SOURCE.
      
      * Configurations/FeatureDefines.xcconfig:
      
      Source/WTF:
      
      Enable ENABLE_MEDIA_SOURCE.
      
      * wtf/FeatureDefines.h:
      * wtf/Platform.h: Force a clean build.
      
      LayoutTests:
      
      * platform/mac/js/dom/global-constructors-attributes-expected.txt: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158231 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      69589095
    • timothy_horton@apple.com's avatar
      More correct build fix after 158223. · 41e174b4
      timothy_horton@apple.com authored
      Only fails in release because it's inline.
      
      * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
      * WebCore.exp.in:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158226 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      41e174b4
    • timothy_horton@apple.com's avatar
      Remote Layer Tree: Support tiled drawing and use it for the main frame · a2e32c53
      timothy_horton@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=123422
      
      Reviewed by Simon Fraser.
      
      Add a PlatformCALayerRemote subclass that behaves similarly to
      WebTiledBackingLayer, forwarding relevant things (setNeedsDisplay, etc.)
      to the TileController which it owns.
      
      Teach the remote layer tree code enough to proxy these layers across,
      and paint them in a manner similar to WebSimpleLayer (just calling
      straight back to the TileController to paint).
      
      * Shared/mac/RemoteLayerTreeTransaction.h:
      * Shared/mac/RemoteLayerTreeTransaction.mm:
      (WebKit::RemoteLayerTreeTransaction::LayerProperties::encode):
      (WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
      (WebKit::dumpChangedLayers):
      * UIProcess/mac/RemoteLayerTreeHost.mm:
      (WebKit::RemoteLayerTreeHost::commit):
      * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
      (PlatformCALayerRemote::setEdgeAntialiasingMask):
      Add support for adjusting/encoding/decoding/dumping/applying edgeAntialiasingMask.
      
      (WebKit::RemoteLayerTreeTransaction::dump):
      Drive-by fix dumping of created layers to have one layer per line.
      
      * UIProcess/mac/RemoteLayerTreeHost.mm:
      (WebKit::RemoteLayerTreeHost::createLayer):
      Create CALayers for Simple, TiledBacking, PageTiledBacking, and TiledBackingTile layers.
      
      * WebKit2.xcodeproj/project.pbxproj:
      Add PlatformCALayerRemoteTiledBacking.{h, cpp}.
      
      * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
      (PlatformCALayerRemote::create):
      Create a PlatformCALayerRemoteTiledBacking for TiledBacking and PageTiledBacking layers.
      
      (PlatformCALayerRemote::removeAllSublayers):
      Fix removeAllSublayers to make a copy of the PlatformCALayerList before
      mutating it, to avoid crashes when iterating a mutated list.
      
      * WebProcess/WebPage/mac/PlatformCALayerRemote.h:
      Definalize PlatformCALayerRemote so we can have PlatformCALayerRemoteTiledBacking.
      Note that we will use a tiled backing layer in some cases.
      Make the constructor protected, not private, so our subclass can use it.
      
      * WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.cpp: Added.
      (PlatformCALayerRemoteTiledBacking::PlatformCALayerRemoteTiledBacking):
      (PlatformCALayerRemoteTiledBacking::~PlatformCALayerRemoteTiledBacking):
      (PlatformCALayerRemoteTiledBacking::setNeedsDisplay):
      (PlatformCALayerRemoteTiledBacking::customSublayers):
      (PlatformCALayerRemoteTiledBacking::setBounds):
      (PlatformCALayerRemoteTiledBacking::isOpaque):
      (PlatformCALayerRemoteTiledBacking::setOpaque):
      (PlatformCALayerRemoteTiledBacking::acceleratesDrawing):
      (PlatformCALayerRemoteTiledBacking::setAcceleratesDrawing):
      (PlatformCALayerRemoteTiledBacking::setContentsScale):
      (PlatformCALayerRemoteTiledBacking::setBorderWidth):
      (PlatformCALayerRemoteTiledBacking::setBorderColor):
      * WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.h: Added.
      Add a subclass of PlatformCALayerRemote which forwards operations
      to TileController, very similar to what WebTiledBackingLayer does.
      It also owns the TileController, and overrides customSublayers() and
      tiledBacking() to return the right thing.
      
      * WebProcess/WebPage/mac/RemoteLayerBackingStore.mm:
      (RemoteLayerBackingStore::display):
      Teach RemoteLayerBackingStore about how to paint different kinds of layers.
      Simple layers and Tile layers will call paintContents directly,
      WebLayers will do what WebLayer does and use drawLayerContents.
      Other kinds of layers won't paint at all right now.
      I would like to centralize this behavior (and get rid of our CALayer
      subclasses entirely, moving all that behavior to be shared between Mac,
      Windows, and the remote layer tree), but that is a patch for another day.
      
      * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
      * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
      (WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea):
      (WebKit::RemoteLayerTreeDrawingArea::shouldUseTiledBackingForFrameView):
      Force accelerated compositing on always when using the remote layer tree.
      Use a TiledBacking for the main frame.
      
      * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
      Drive-by OVERRIDE.
      
      * WebCore.exp.in:
      * WebCore.xcodeproj/project.pbxproj:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158223 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a2e32c53
    • beidson@apple.com's avatar
      Get IDBTransactionBackendLevelDBOperations *almost* ready to go cross platform. · aa0f11ea
      beidson@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=123451
      
      Reviewed by Andreas Kling.
      
      Source/WebCore:
      
      This involves:
      - Splitting out IDBTransactionBackendLevelDB::Operation into its own header
      - Splitting out IDBDatabaseBackendImpl::PendingOpenCall into its own header
      - Reworking the LevelDB Operations to handle the base class IDBTransactionBackendInterface
      - Adding virtual methods in a few of the *Interface classes to support the above
      
      * GNUmakefile.list.am:
      * WebCore.xcodeproj/project.pbxproj:
      
      * Modules/indexeddb/IDBCallbacks.h:
      
      * Modules/indexeddb/IDBCursorBackendInterface.h:
      
      * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
      (WebCore::IDBDatabaseBackendImpl::setIndexKeys):
      (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
      (WebCore::IDBDatabaseBackendImpl::openConnection):
      (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
      * Modules/indexeddb/IDBDatabaseBackendImpl.h:
      * Modules/indexeddb/IDBDatabaseBackendInterface.h:
      
      * Modules/indexeddb/IDBOperation.h: Added.
      (WebCore::IDBOperation::~IDBOperation):
      
      * Modules/indexeddb/IDBPendingOpenCall.h: Added.
      (WebCore::IDBPendingOpenCall::create):
      (WebCore::IDBPendingOpenCall::callbacks):
      (WebCore::IDBPendingOpenCall::databaseCallbacks):
      (WebCore::IDBPendingOpenCall::version):
      (WebCore::IDBPendingOpenCall::transactionId):
      (WebCore::IDBPendingOpenCall::IDBPendingOpenCall):
      
      * Modules/indexeddb/IDBRequest.h:
      
      * Modules/indexeddb/IDBTransactionBackendInterface.h:
      
      * Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.cpp:
      (WebCore::IDBCursorBackendLevelDB::CursorIterationOperation::create):
      (WebCore::IDBCursorBackendLevelDB::CursorAdvanceOperation::create):
      (WebCore::IDBCursorBackendLevelDB::CursorPrefetchIterationOperation::create):
      (WebCore::IDBCursorBackendLevelDB::IDBCursorBackendLevelDB):
      * Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.h:
      
      * Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.cpp:
      (WebCore::IDBTransactionBackendLevelDB::scheduleTask):
      (WebCore::IDBTransactionBackendLevelDB::abort):
      (WebCore::IDBTransactionBackendLevelDB::taskTimerFired):
      (WebCore::IDBTransactionBackendLevelDB::schedulePutOperation):
      (WebCore::IDBTransactionBackendLevelDB::scheduleOpenCursorOperation):
      (WebCore::IDBTransactionBackendLevelDB::scheduleCountOperation):
      (WebCore::IDBTransactionBackendLevelDB::scheduleDeleteRangeOperation):
      (WebCore::IDBTransactionBackendLevelDB::scheduleClearOperation):
      (WebCore::IDBTransactionBackendLevelDB::createCursorBackend):
      * Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h:
      
      * Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.cpp:
      (WebCore::CreateObjectStoreOperation::perform):
      (WebCore::CreateIndexOperation::perform):
      (WebCore::CreateIndexAbortOperation::perform):
      (WebCore::DeleteIndexOperation::perform):
      (WebCore::DeleteIndexAbortOperation::perform):
      (WebCore::OpenCursorOperation::perform):
      (WebCore::DeleteObjectStoreOperation::perform):
      (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::perform):
      (WebCore::CreateObjectStoreAbortOperation::perform):
      (WebCore::DeleteObjectStoreAbortOperation::perform):
      (WebCore::IDBDatabaseBackendImpl::VersionChangeAbortOperation::perform):
      * Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.h:
      (WebCore::CreateObjectStoreOperation::create):
      (WebCore::CreateObjectStoreOperation::CreateObjectStoreOperation):
      (WebCore::DeleteObjectStoreOperation::create):
      (WebCore::DeleteObjectStoreOperation::DeleteObjectStoreOperation):
      (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::create):
      (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::VersionChangeOperation):
      (WebCore::CreateObjectStoreAbortOperation::create):
      (WebCore::CreateObjectStoreAbortOperation::CreateObjectStoreAbortOperation):
      (WebCore::DeleteObjectStoreAbortOperation::create):
      (WebCore::DeleteObjectStoreAbortOperation::DeleteObjectStoreAbortOperation):
      (WebCore::IDBDatabaseBackendImpl::VersionChangeAbortOperation::create):
      (WebCore::IDBDatabaseBackendImpl::VersionChangeAbortOperation::VersionChangeAbortOperation):
      (WebCore::CreateIndexOperation::create):
      (WebCore::CreateIndexOperation::CreateIndexOperation):
      (WebCore::CreateIndexAbortOperation::create):
      (WebCore::CreateIndexAbortOperation::CreateIndexAbortOperation):
      (WebCore::DeleteIndexOperation::create):
      (WebCore::DeleteIndexOperation::DeleteIndexOperation):
      (WebCore::DeleteIndexAbortOperation::create):
      (WebCore::DeleteIndexAbortOperation::DeleteIndexAbortOperation):
      (WebCore::GetOperation::create):
      (WebCore::GetOperation::GetOperation):
      (WebCore::PutOperation::create):
      (WebCore::PutOperation::PutOperation):
      (WebCore::SetIndexesReadyOperation::create):
      (WebCore::SetIndexesReadyOperation::SetIndexesReadyOperation):
      (WebCore::OpenCursorOperation::create):
      (WebCore::OpenCursorOperation::OpenCursorOperation):
      (WebCore::CountOperation::create):
      (WebCore::CountOperation::CountOperation):
      (WebCore::DeleteRangeOperation::create):
      (WebCore::DeleteRangeOperation::DeleteRangeOperation):
      (WebCore::ClearOperation::create):
      (WebCore::ClearOperation::ClearOperation):
      
      Source/WebKit2:
      
      Stub out more pure virtual methods.
      
      * WebProcess/Databases/IndexedDB/WebProcessIDBDatabaseBackend.cpp:
      (WebKit::WebProcessIDBDatabaseBackend::backingStore):
      (WebKit::WebProcessIDBDatabaseBackend::id):
      (WebKit::WebProcessIDBDatabaseBackend::addObjectStore):
      (WebKit::WebProcessIDBDatabaseBackend::removeObjectStore):
      (WebKit::WebProcessIDBDatabaseBackend::addIndex):
      (WebKit::WebProcessIDBDatabaseBackend::removeIndex):
      (WebKit::WebProcessIDBDatabaseBackend::metadata):
      (WebKit::WebProcessIDBDatabaseBackend::setCurrentVersion):
      (WebKit::WebProcessIDBDatabaseBackend::hasPendingSecondHalfOpen):
      (WebKit::WebProcessIDBDatabaseBackend::setPendingSecondHalfOpen):
      * WebProcess/Databases/IndexedDB/WebProcessIDBDatabaseBackend.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158217 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      aa0f11ea
    • barraclough@apple.com's avatar
      SessionState.h should not include WebBackForwardList.h · f15bf7d5
      barraclough@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=123454
      
      Reviewed by Geoff Garen.
      
      WebBackForwardList is a UIProcess type, SessionState is in shared code.
      Also, WebBackForwardListItemVector should be in WebBackForwardListItem.h, not WebBackForwardList.h
      (the vector type is used in the WebProcess, the item header is shared but the list type is in the UIProcess).
      
      * Shared/SessionState.cpp:
          - fixed includes
      * Shared/SessionState.h:
          - WebBackForwardList.h -> WebBackForwardListItem.h
      * Shared/WebBackForwardListItem.h:
          - Moved WebBackForwardListVector from WebBackForwardList.h
      * Shared/WebPageCreationParameters.h:
          - fixed includes
      * UIProcess/WebBackForwardList.h:
          - Moved WebBackForwardListVector to WebBackForwardListItem.h
      * WebProcess/WebPage/DrawingArea.cpp:
          - fixed includes
      * WebProcess/WebPage/WebPage.cpp:
          - fixed includes
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158210 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f15bf7d5
    • zandobersek@gmail.com's avatar
      Fix the ChangeLog landed in r158185. The RemoteLayerTreeTextStream class is... · d760bfd7
      zandobersek@gmail.com authored
      Fix the ChangeLog landed in r158185. The RemoteLayerTreeTextStream class is affected, not RemoteLayerTreeTransaction.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158190 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d760bfd7
    • zandobersek@gmail.com's avatar
      Unreviewed Mac debug build fix after r158183. · ce61e9c9
      zandobersek@gmail.com authored
      Remove the duplicated << overloaded operator from RemoteLayerTreeTransaction for printing out
      a given FloatSize object. The RemoteLayerTreeTransaction inherits from TextStream, which already
      provides that overloaded operator. Format of the output is a bit different so hopefully nothing
      breaks further.
      
      * Shared/mac/RemoteLayerTreeTransaction.mm:
      (WebKit::RemoteLayerTreeTextStream::operator<<):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158185 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ce61e9c9
    • beidson@apple.com's avatar
      Refactor IDB factory creation. · 3c2faae5
      beidson@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=123347
      
      Reviewed by Andreas Kling.
      
      - Rework how database directory location is passed around.
      - Make (some) SecurityOrigin arguments be references instead of pointers.
      - Add two SecurityOrigin arguments to opening databases for future use.
      
      Source/WebCore:
      
      * Modules/indexeddb/IDBFactory.cpp:
      (WebCore::IDBFactory::openInternal):
      
      * Modules/indexeddb/IDBFactoryBackendInterface.cpp:
      (WebCore::IDBFactoryBackendInterface::create):
      * Modules/indexeddb/IDBFactoryBackendInterface.h:
      
      * Modules/indexeddb/PageGroupIndexedDatabase.cpp:
      (WebCore::PageGroupIndexedDatabase::PageGroupIndexedDatabase):
      (WebCore::PageGroupIndexedDatabase::from):
      (WebCore::PageGroupIndexedDatabase::factoryBackend):
      * Modules/indexeddb/PageGroupIndexedDatabase.h:
      
      * Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.cpp:
      (WebCore::WorkerGlobalScopeIndexedDatabase::WorkerGlobalScopeIndexedDatabase):
      (WebCore::WorkerGlobalScopeIndexedDatabase::from):
      (WebCore::WorkerGlobalScopeIndexedDatabase::indexedDB):
      * Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.h:
      
      * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
      (WebCore::IDBBackingStoreLevelDB::open):
      (WebCore::IDBBackingStoreLevelDB::openInMemory):
      * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
      
      * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
      (WebCore::computeFileIdentifier):
      (WebCore::computeUniqueIdentifier):
      (WebCore::IDBFactoryBackendLevelDB::IDBFactoryBackendLevelDB):
      (WebCore::IDBFactoryBackendLevelDB::getDatabaseNames):
      (WebCore::IDBFactoryBackendLevelDB::deleteDatabase):
      (WebCore::IDBFactoryBackendLevelDB::openBackingStore):
      (WebCore::IDBFactoryBackendLevelDB::open):
      * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h:
      (WebCore::IDBFactoryBackendLevelDB::create):
      
      * WebCore.exp.in:
      
      * platform/DatabaseStrategy.cpp:
      (WebCore::DatabaseStrategy::createIDBFactoryBackend):
      * platform/DatabaseStrategy.h:
      
      Source/WebKit2:
      
      * Shared/Databases/IndexedDB/IDBUtilities.cpp:
      (WebKit::uniqueDatabaseIdentifier):
      * Shared/Databases/IndexedDB/IDBUtilities.h:
      
      * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp:
      (WebKit::WebIDBFactoryBackend::WebIDBFactoryBackend):
      (WebKit::WebIDBFactoryBackend::open):
      * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h:
      (WebKit::WebIDBFactoryBackend::create):
      
      * WebProcess/Databases/IndexedDB/WebProcessIDBDatabaseBackend.cpp:
      (WebKit::WebProcessIDBDatabaseBackend::WebProcessIDBDatabaseBackend):
      * WebProcess/Databases/IndexedDB/WebProcessIDBDatabaseBackend.h:
      
      * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
      (WebKit::WebPlatformStrategies::createIDBFactoryBackend):
      * WebProcess/WebCoreSupport/WebPlatformStrategies.h:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158170 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3c2faae5
    • timothy_horton@apple.com's avatar
      Make TileController create the appropriate PlatformCALayer subclasses · a63fb723
      timothy_horton@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=123418
      
      Reviewed by Simon Fraser.
      
      Add PlatformCALayer::createCompatibleLayer, which is overridden in
      each of the subclasses to create a PlatformCALayer instance of the same
      subclass. This is used in TileController to make bare PlatformCALayers
      of the correct type (Mac, Win, or Remote).
      
      * platform/graphics/ca/PlatformCALayer.h:
      * platform/graphics/ca/mac/PlatformCALayerMac.h:
      * platform/graphics/ca/mac/PlatformCALayerMac.mm:
      (PlatformCALayerMac::createCompatibleLayer):
      * platform/graphics/ca/win/PlatformCALayerWin.cpp:
      (PlatformCALayerWin::createCompatibleLayer):
      * platform/graphics/ca/win/PlatformCALayerWin.h:
      Add createCompatibleLayer and implement it in the subclasses.
      
      * platform/graphics/ca/mac/TileController.mm:
      (WebCore::TileController::TileController):
      (WebCore::TileController::tiledScrollingIndicatorLayer):
      (WebCore::TileController::createTileLayer):
      Make use of createCompatibleLayer when creating PlatformCALayers.
      
      * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
      (PlatformCALayerRemote::createCompatibleLayer):
      * WebProcess/WebPage/mac/PlatformCALayerRemote.h:
      Add createCompatibleLayer and implement it in the subclasses.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158160 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a63fb723
  4. 28 Oct, 2013 7 commits
    • benjamin@webkit.org's avatar
      Rename applyPageScaleFactorInCompositor to delegatesPageScaling · 2dfd9905
      benjamin@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=123417
      
      Reviewed by Simon Fraser.
      
      Source/WebCore: 
      
      * page/Frame.cpp:
      (WebCore::Frame::frameScaleFactor):
      * page/FrameView.cpp:
      (WebCore::FrameView::visibleContentScaleFactor):
      * page/Page.cpp:
      (WebCore::Page::setPageScaleFactor):
      * page/Settings.in:
      * platform/ScrollView.h:
      * rendering/RenderLayerCompositor.cpp:
      (WebCore::RenderLayerCompositor::addToOverlapMap):
      
      Source/WebKit2: 
      
      * WebProcess/WebPage/WebPage.cpp:
      (WebKit::WebPage::setUseFixedLayout):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158129 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2dfd9905
    • commit-queue@webkit.org's avatar
      Parsing support for -webkit-text-decoration-skip: ink · 0171920a
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=123358
      
      Patch by Myles C. Maxfield <mmaxfield@apple.com> on 2013-10-28
      Reviewed by Dean Jackson.
      
      Source/JavaScriptCore:
      
      Adding ENABLE(CSS3_TEXT_DECORATION)
      
      * Configurations/FeatureDefines.xcconfig:
      
      Source/WebCore:
      
      Adds initial parsing support for parsing -webkit-text-decoration-skip with
      values of "none" and "ink". This work is behind the new
      ENABLE(CSS3_TEXT_DECORATION) compile-time flag.
      
      Test: fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-roundtrip.html
      
      * Configurations/FeatureDefines.xcconfig: Adding ENABLE(CSS3_TEXT_DECORATION)
      * css/CSSComputedStyleDeclaration.cpp: Mapping internal representation of text-decoration-skip
      to a CSSValue
      (WebCore::renderTextDecorationSkipFlagsToCSSValue):
      (WebCore::ComputedStyleExtractor::propertyValue):
      * css/CSSParser.cpp: Actually parsing tokens
      (WebCore::CSSParser::parseValue):
      (WebCore::CSSParser::parseTextDecorationSkip):
      * css/CSSParser.h:
      * css/CSSPropertyNames.in: adding -webkit-text-decoration-skip
      * css/CSSValueKeywords.in: adding ink
      * css/DeprecatedStyleBuilder.cpp: Mapping from CSSValue to internal representation
      (WebCore::ApplyPropertyTextDecorationSkip::valueToDecorationSkip):
      (WebCore::ApplyPropertyTextDecorationSkip::applyValue):
      (WebCore::ApplyPropertyTextDecorationSkip::createHandler):
      (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
      * css/StyleResolver.cpp: decoration-skip uses DeprecatedStyleBuilder
      (WebCore::StyleResolver::applyProperty):
      * rendering/style/RenderStyle.h: Adding functions for modifying and accessing decoration-skip properties
      * rendering/style/RenderStyleConstants.h: Definition of internal representation
      * rendering/style/StyleRareInheritedData.cpp: Setting up constructors and comparators
      (WebCore::StyleRareInheritedData::StyleRareInheritedData):
      (WebCore::StyleRareInheritedData::operator==):
      * rendering/style/StyleRareInheritedData.h: Holds actual value of internal representation
      
      Source/WebKit/mac:
      
      Adding ENABLE(CSS3_TEXT_DECORATION)
      
      * Configurations/FeatureDefines.xcconfig:
      
      Source/WebKit2:
      
      Adding ENABLE(CSS3_TEXT_DECORATION)
      
      * Configurations/FeatureDefines.xcconfig:
      
      Tools:
      
      Adding ENABLE(CSS3_TEXT_DECORATION)
      
      * Scripts/webkitperl/FeatureList.pm:
      
      LayoutTests:
      
      Adds a test which makes sure that we can parse the
      -webkit-text-decoration-skip CSS property, as well
      as values for "ink" and "none". We can use the CSSOM
      to test the roundtrip of these values
      
      * fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-roundtrip.html: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158127 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0171920a
    • timothy_horton@apple.com's avatar
      Make TileController manipulate PlatformCALayers instead of CALayers · dca7a0af
      timothy_horton@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=123279
      
      Reviewed by Simon Fraser.
      
      In the interest of making TileController more platform-independent
      (so that it can be used with the remote layer tree, and maybe Windows),
      move TileController onto our PlatformCALayer abstraction instead of
      direct manipulation of CALayers.
      
      Some fallout from this includes getting rid of special Mac-specific
      TileController-specific CALayer subclasses, and reworking tile
      painting to work in a more generic way.
      
      This is a first step, and doesn't get us all the way to a platform independent
      TileController, but more patches are forthcoming.
      
      No new tests, just a (largeish) refactor.
      
      * WebCore.exp.in:
      The signature of some methods has changed.
      
      * WebCore.xcodeproj/project.pbxproj:
      Remove WebTileLayer.*
      
      * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
      (WebCore::ScrollingTreeScrollingNodeMac::logExposedUnfilledArea):
      Use the "isTile" key on the CALayer dictionary instead of the layer's
      class to determine if it's a tile. TileController will set this on a tile
      when it is created, for now.
      
      * platform/graphics/TiledBacking.h:
      tiledScrollingIndicatorLayer() should return a PlatformCALayer.
      
      * platform/graphics/ca/GraphicsLayerCA.cpp:
      (WebCore::GraphicsLayerCA::platformCALayerPaintContents):
      * platform/graphics/ca/GraphicsLayerCA.h:
      (WebCore::GraphicsLayerCA::platformCALayerIncrementRepaintCount):
      * platform/graphics/ca/PlatformCALayerClient.h:
      The PlatformCALayerClient paintContents and incrementRepaintCount callbacks
      should include the platformCALayer that caused the callback.
      
      * platform/graphics/ca/PlatformCALayer.h:
      Add LayerTypeSimpleLayer, which is similar to LayerTypeWebLayer
      except it just calls back its client to paint, instead of doing
      complicated things with repaint rects. This is so that TileController
      doesn't re-enter drawLayerContents when asking its GraphicsLayer
      to paint for each PlatformCALayer (it will be entering drawLayerContents
      for the first time for each layer). It also happens to be useful
      for things like the tile controller overlay, which don't need
      all that complication.
      
      Add LayerTypeTiledBackingTileLayer, which is used simply to distinguish
      TileController Tile layers from other LayerTypeSimpleLayers.
      
      * platform/graphics/ca/mac/LayerPool.h:
      * platform/graphics/ca/mac/LayerPool.mm:
      (WebCore::LayerPool::addLayer):
      (WebCore::LayerPool::takeLayerWithSize):
      LayerPool should operate on PlatformCALayers now.
      
      * platform/graphics/ca/mac/PlatformCALayerMac.h:
      * platform/graphics/ca/mac/PlatformCALayerMac.mm:
      (PlatformCALayerMac::PlatformCALayerMac):
      Set the "isTile" key on the CALayer to true for TiledBackingTileLayers,
      so that the scrolling performance logging can tell a tile apart from
      any other layer, on the scrolling thread, without touching PlatformCALayers
      or the TileController or any other main-thread data structures.
      
      (PlatformCALayerMac::setEdgeAntialiasingMask): Added.
      * platform/graphics/ca/mac/TileController.h:
      Remove references to Objective-C classes; instead use PlatformCALayer everywhere.
      TileController is now a PlatformCALayerClient, and the layers it owns are
      all PlatformCALayers (and it is constructed with a PlatformCALayer, etc.).
      Hand in the tile debug border color as a WebCore color, instead of a CGColorRef.
      blankPixelCountForTiles() now operates on a list of PlatformLayers instead of
      WebTileLayers specifically, since WebTileLayer is gone.
      Make drawTileMapContents private because WebTileCacheMapLayer no longer exists.
      
      (WebCore::TileController::platformCALayerDrawsContent):
      All of the layers who have TileController as their client paint their contents.
      
      (WebCore::TileController::platformCALayerContentsOpaque):
      This will only be called for layers which paint via drawLayerContents,
      so it's OK that we don't special-case the debugging overlay here.
      
      (WebCore::TileController::owningGraphicsLayer):
      Return the GraphicsLayer that owns the TileController's main
      layer, via its conformance to PlatformCALayerClient. This is
      a bit strange (because it's not strictly a GraphicsLayer, despite
      always being so at the moment), but is done for clarity inside
      TileController itself.
      
      * platform/graphics/ca/mac/TileController.mm:
      Remove CALayer (WebCALayerDetails), WebTiledScrollingIndicatorLayer,
      and a bunch of includes that we don't need anymore.
      
      (WebCore::TileController::create):
      (WebCore::TileController::TileController):
      TileController is passed a PlatformCALayer for the tile cache root layer,
      instead of a WebTiledBackingLayer. It also creates a PlatformCALayer with
      LayerTypeLayer instead of a bare CALayer for the container layer.
      It's OK to remove the transaction because it was only used to stop
      the implicit animation, which PlatformCALayer will do for us.
      
      (WebCore::TileController::~TileController):
      Clear the owner of the PlatformCALayers which the TileController previously owned,
      so they don't try to call back a destroyed TileController.
      
      (WebCore::TileController::tileCacheLayerBoundsChanged):
      (WebCore::TileController::setNeedsDisplay):
      Straightforward adjustments towards use of PlatformCALayer.
      
      (WebCore::TileController::setTileNeedsDisplayInRect):
      Adjustments towards use of PlatformCALayer; we need FloatRects so we can
      pass pointers to PlatformCALayer::setNeedsDisplay.
      
      (WebCore::TileController::platformCALayerPaintContents):
      Replace drawLayer with platformCALayerPaintContents, which will be called
      back from our various WebSimpleLayers. If the PlatformCALayer is our
      tiled scrolling debug indicator, paint that. Otherwise, it's a tile.
      Make use of drawLayerContents() to paint the tile contents.
      Make use of drawRepaintIndicator() to paint the repaint indicator if needed.
      Move scrolling performance logging code that used to be in WebTileLayer here.
      
      (WebCore::TileController::platformCALayerDeviceScaleFactor):
      (WebCore::TileController::platformCALayerShowDebugBorders):
      (WebCore::TileController::platformCALayerShowRepaintCounter):
      Forward these to the owning GraphicsLayerCA, because it will have the right answers.
      
      (WebCore::TileController::setScale):
      Adjustments towards use of PlatformCALayer; remove some code that Simon
      caused to be unused in 156291 but did not remove.
      
      (WebCore::TileController::setAcceleratesDrawing):
      (WebCore::TileController::setTilesOpaque):
      (WebCore::TileController::setVisibleRect):
      (WebCore::TileController::revalidateTiles):
      (WebCore::TileController::setTileDebugBorderWidth):
      (WebCore::TileController::setTileDebugBorderColor):
      (WebCore::TileController::bounds):
      (WebCore::TileController::blankPixelCount):
      (WebCore::TileController::blankPixelCountForTiles):
      (WebCore::queueTileForRemoval):
      (WebCore::TileController::setNeedsRevalidateTiles):
      (WebCore::TileController::ensureTilesForRect):
      (WebCore::TileController::retainedTileBackingStoreMemory):
      Straightforward adjustments towards use of PlatformCALayer.
      
      (WebCore::TileController::updateTileCoverageMap):
      Adjustments towards use of PlatformCALayer; rename backgroundColor
      to visibleRectIndicatorColor, since it's actually a border, not a background.
      
      (WebCore::TileController::tiledScrollingIndicatorLayer):
      Create a LayerTypeSimpleLayer PlatformCALayer for the tiled scrolling indicator.
      It will be asked to paint straightforwardly, like a CALayer would.
      Create a LayerTypeLayer PlatformCALayer for the visible rect indicator.
      It doesn't need to paint anything, so it doesn't get an owner.
      
      (WebCore::TileController::createTileLayer):
      When creating a new tile layer, adopt it by setting its owner.
      Otherwise, straightforward adjustments towards use of PlatformCALayer.
      
      (WebCore::TileController::platformCALayerIncrementRepaintCount):
      Manage repaint counts for tiles in TileController now.
      
      (WebCore::TileController::drawTileMapContents):
      Adjustments towards use of PlatformCALayer.
      
      * platform/graphics/ca/mac/WebTileLayer.h: Removed.
      * platform/graphics/ca/mac/WebTileLayer.mm: Removed.
      We don't need WebTileLayer anymore, tiles are now just WebSimpleLayers
      owned by TileController. Its behavior has been moved into TileController.
      
      * platform/graphics/ca/mac/WebTiledBackingLayer.h:
      * platform/graphics/ca/mac/WebTiledBackingLayer.mm:
      (-[WebTiledBackingLayer createTileController:]):
      Add createTileController: so that the WebTiledBackingLayer's owner can
      hand the TileController the PlatformCALayer for the WebTiledBackingLayer
      without propagating additional usage of PlatformCALayer::platformCALayer(),
      which we need to remove in light of the remote layer tree work.
      
      (-[WebTiledBackingLayer setBorderColor:]):
      
      * platform/graphics/ca/win/PlatformCALayerWin.h:
      Add an empty implementation of setEdgeAntialiasingMask.
      We'll probably want to implement it before adopting TileController on Windows.
      
      * platform/graphics/ca/win/PlatformCALayerWinInternal.cpp:
      (PlatformCALayerWinInternal::displayCallback):
      * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
      (WebCore::MediaPlayerPrivateQuickTimeVisualContext::LayerClient::platformCALayerPaintContents):
      (WebCore::MediaPlayerPrivateQuickTimeVisualContext::LayerClient::platformCALayerIncrementRepaintCount):
      * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
      (WebCore::LayerClient::platformCALayerPaintContents):
      (WebCore::LayerClient::platformCALayerIncrementRepaintCount):
      Adjust for new parameters on PlatformCALayerClient callbacks.
      
      * platform/graphics/mac/WebLayer.h:
      Add WebSimpleLayer, which inherits directly from CALayer, and make
      our standard WebLayer (which is used for compositing layers in web content)
      inherit from that.
      
      * platform/graphics/mac/WebLayer.mm:
      Move most of the behavior of WebLayer onto WebSimpleLayer, except for its
      complex painting code. That stays as an override on WebLayer.
      
      (WebCore::drawLayerContents):
      Use the PlatformCALayer's PlatformLayer - if it exists - to extract
      fine-grained repaint rects. If it doesn't, we'll just use the CGContext's
      clip rect as our single repaint rect.
      Rename platformLayer to platformCALayer for accuracy.
      Remove special code for CATiledLayer since we ought not use it on Mac anymore.
      
      (WebCore::drawRepaintIndicator):
      Factor repaint indicator code out into its own function so that TileController
      can use it. It can't be called from drawLayerContents for TileController, since
      the PlatformCALayer that TileController passes in to drawLayerContents is actually
      that of the tile cache's root layer, not the tile itself.
      Also, add a custom background color parameter so TileController can override
      the default green color with its own standard purple.
      
      (-[WebLayer drawInContext:]):
      (-[WebSimpleLayer drawInContext:]):
      * platform/graphics/mac/WebTiledLayer.mm:
      (-[WebTiledLayer drawInContext:]):
      Removed a param from drawLayerContents because it's trivially acquirable
      from the PlatformCALayer.
      
      * FullscreenVideoController.cpp:
      (FullscreenVideoController::LayerClient::platformCALayerPaintContents):
      (FullscreenVideoController::LayerClient::platformCALayerIncrementRepaintCount):
      Adjust for new parameters on PlatformCALayerClient callbacks.
      
      * Shared/mac/RemoteLayerTreeTransaction.mm:
      (WebKit::RemoteLayerTreeTransaction::dump):
      Support the new LayerTypes.
      
      * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
      (PlatformCALayerRemote::setEdgeAntialiasingMask):
      * WebProcess/WebPage/mac/PlatformCALayerRemote.h:
      Add an empty implementation of setEdgeAntialiasingMask.
      
      * WebProcess/WebPage/mac/RemoteLayerBackingStore.mm:
      (RemoteLayerBackingStore::display):
      Removed a parameter from drawLayerContents.
      
      * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
      (WebKit::TiledCoreAnimationDrawingArea::updateDebugInfoLayer):
      TiledCoreAnimationDrawingArea still operates in terms of CALayers, so
      grab the PlatformLayer out from TileController's indicator.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158122 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      dca7a0af
    • commit-queue@webkit.org's avatar
      Name all the GLib timeout sources · 47e30f37
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=123229
      
      Patch by Bastien Nocera <hadess@hadess.net> on 2013-10-28
      Reviewed by Anders Carlsson.
      
      Source/WebCore:
      
      Give a name to GLib timeout sources, this is helpful when
      profiling WebKitGTK applications.
      
      No new tests, no change in functionality.
      
      Source/WebKit/gtk:
      
      Give a name to GLib timeout sources, this is helpful when
      profiling WebKitGTK applications.
      
      Source/WebKit2:
      
      Give a name to GLib timeout sources, this is helpful when
      profiling WebKitGTK applications.
      
      Tools:
      
      Give a name to GLib timeout sources, this is helpful when
      profiling WebKitGTK applications.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158110 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      47e30f37
    • carlosgc@webkit.org's avatar
      Unreviewed. Fix make distcheck. · d4b2f78b
      carlosgc@webkit.org authored
      Source/JavaScriptCore:
      
      * GNUmakefile.list.am: Add missing files to compilation.
      
      Source/WebCore:
      
      * GNUmakefile.am: Add crypto idl files to EXTRA_DIST and remove
      css/fullscreenQuickTime.css that was removed.
      
      Source/WebKit2:
      
      * GNUmakefile.am: Add messages.in files in
      UIProcess/Network/CustomProtocols/ to EXTRA_DIST.
      * GNUmakefile.list.am: Remove
      WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp from
      compilation because it depends on code generated only when
      database process is enabled.
      
      Source/WTF:
      
      * GNUmakefile.list.am: Remove unexistent file from compilation.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158108 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d4b2f78b
    • berto@igalia.com's avatar
      [WK2] [GTK] Allow running the web process with an arbitrary prefix command · f3db2ace
      berto@igalia.com authored
      https://bugs.webkit.org/show_bug.cgi?id=123201
      
      Reviewed by Carlos Garcia Campos.
      
      Launch the web process using WEB_PROCESS_CMD_PREFIX as a
      prefix. Useful for debugging the web process with gdb, valgrind,
      etc.
      
      * UIProcess/Launcher/ProcessLauncher.h:
      * UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:
      (WebKit::ProcessLauncher::launchProcess):
      * UIProcess/gtk/WebProcessProxyGtk.cpp:
      (WebKit::WebProcessProxy::platformGetLaunchOptions):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158105 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f3db2ace
    • beidson@apple.com's avatar
      WebIconDatabase can miss private browsing state changes. · e4e18b25
      beidson@apple.com authored
      <rdar://problem/15322318> and https://bugs.webkit.org/show_bug.cgi?id=123375
      
      Reviewed by Alexey Proskuryakov.
      
      * UIProcess/WebContext.cpp:
      (WebKit::WebContext::willStartUsingPrivateBrowsing): Call setAnyPageGroupMightHavePrivateBrowsingEnabled(true) on each context.
      (WebKit::WebContext::willStopUsingPrivateBrowsing): Call setAnyPageGroupMightHavePrivateBrowsingEnabled(false) on each context.
      (WebKit::WebContext::setPrivateBrowsingEnabled): In addition to notifying other processes about private browsing
        sessions, notify the context’s WebIconDatabase about the change in value.
      * UIProcess/WebContext.h:
      
      * UIProcess/WebIconDatabase.cpp:
      (WebKit::WebIconDatabase::setDatabasePath): Prime the IconDatabase with an initial private browsing value.
      (WebKit::WebIconDatabase::setAnyPageGroupMightHavePrivateBrowsingEnabled):
      * UIProcess/WebIconDatabase.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158101 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e4e18b25
  5. 27 Oct, 2013 1 commit
    • timothy_horton@apple.com's avatar
      [mac] Remove WebTiledLayer · a4d0b2fb
      timothy_horton@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=123395
      
      Reviewed by Anders Carlsson.
      
      Source/WebCore:
      
      Mac doesn't use CATiledLayer at all anymore. We have to keep
      LayerTypeTiledLayer around for Windows, for now, but we can
      get rid of WebTiledLayer and some related Mac-specific code.
      
      No new tests, just removing dead code.
      
      * WebCore.xcodeproj/project.pbxproj:
      Remove WebTiledLayer.*
      
      * platform/graphics/ca/PlatformCALayer.h:
      * platform/graphics/ca/mac/PlatformCALayerMac.h:
      * platform/graphics/ca/mac/PlatformCALayerMac.mm:
      (PlatformCALayerMac::PlatformCALayerMac):
      Remove synchronouslyDisplayTilesInRect, which was only used for WebTiledLayer on Mac.
      Remove WebTiledLayer instantiation and setup code.
      
      * platform/graphics/mac/WebTiledLayer.h: Removed.
      * platform/graphics/mac/WebTiledLayer.mm: Removed.
      
      Source/WebKit2:
      
      * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
      * WebProcess/WebPage/mac/PlatformCALayerRemote.h:
      Remove synchronouslyDisplayTilesInRect.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158096 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a4d0b2fb
  6. 26 Oct, 2013 6 commits