DrawingBuffer constructor and destructor were not defined for Windows.
I moved duplicate code from Cairo and Qt to DrawingBuffer.cpp to be used by Qt, Cairo, and Windows.
https://bugs.webkit.org/show_bug.cgi?id=118262

Reviewed by Dean Jackson.

* platform/graphics/cairo/DrawingBufferCairo.cpp: Removed duplicate DrawingBuffer constructor and destructor.
* platform/graphics/gpu/DrawingBuffer.cpp:
(WebCore::DrawingBuffer::DrawingBuffer):
(WebCore::DrawingBuffer::~DrawingBuffer): Moved from Cairo and Qt implementation.
* platform/graphics/gpu/qt/DrawingBufferQt.cpp: Removed duplicate DrawingBuffer constructor and destructor.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@152269 268f45cc-cd09-0410-ab3c-d52691b4dbfc
        Clean up private browsing session tracking
        https://bugs.webkit.org/show_bug.cgi?id=118266
        <rdar://problem/13078036>

        Reviewed by Brady Eidson.

        Instead of counting API calls, we now watch actual WebPreferences objects.

        * UIProcess/API/C/WKPreferences.cpp: (WKPreferencesSetPrivateBrowsingEnabled):
        Removed code that used to notify WebContext. It's now done by WebPreferences.

        * UIProcess/WebContext.h:
        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::ensureNetworkProcess): Instead of counting the number of times
        API was called, rely on WebPreferences tracking.
        (WebKit::WebContext::willStartUsingPrivateBrowsing): Ditto. This function is
        now only called when we detect a change in private browsing state.
        (WebKit::WebContext::willStopUsingPrivateBrowsing): Ditto.
        (WebKit::WebContext::createNewWebProcess): Tell the new process to create a private
        browsing session if needed.

        * UIProcess/WebPreferences.h:
        * UIProcess/WebPreferences.cpp:
        (WebKit::WebPreferences::addPageGroup): Count how many page groups use private
        browsing, and notify WebContext when a session is needed. Note that we don't notify
        WebContext about WebPreferences without any page groups, because it's likely
        that preferences will be updated by the client before groups are associated.
        (WebKit::WebPreferences::removePageGroup): Ditto.
        (WebKit::WebPreferences::updateBoolValueForKey): Perform special handling for
        private browsing mode changes.
        (WebKit::WebPreferences::updatePrivateBrowsingValue): Notify WebContext when
        it's time to create or destroy a private browsing session.
        (WebKit::WebPreferences::anyPageGroupsAreUsingPrivateBrowsing): A getter for
        WebContext to know when any page groups are in private browsing mode.

        * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::updatePreferences):
        Don't create a private browsing session implicitly, UI process takes care of it.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@152273 268f45cc-cd09-0410-ab3c-d52691b4dbfc