2019-07-02  Devin Rousso  <drousso@apple.com>

        Web Inspector: Debug: "Reset Web Inspector" should also clear the saved window size and attachment side
        https://bugs.webkit.org/show_bug.cgi?id=198956

        Reviewed by Matt Baker.

        * WebCoreSupport/WebInspectorClientCF.cpp:
        (deleteSetting): Added.
        (WebInspectorClient::deleteInspectorStartsAttached): Added.
        (WebInspectorClient::deleteInspectorAttachDisabled): Added.
        (WebInspectorClient::createFrontendSettings):

2018-01-30  Don Olmstead  <don.olmstead@sony.com>

        JSExports.h should be included as <JavaScriptCore/JSExportMacros.h>
        https://bugs.webkit.org/show_bug.cgi?id=182312

        Reviewed by Michael Catanzaro.

        * WebCoreSupport/WebInspectorClientCF.cpp:

2016-10-26  Brian Burg  <bburg@apple.com>

        Web Inspector: remove unused bool return value from FrontendChannel::sendMessageToFrontend
        https://bugs.webkit.org/show_bug.cgi?id=164046

        Reviewed by Joseph Pecoraro.

        * WebCoreSupport/WebInspectorClientCF.cpp:
        (WebInspectorClient::sendMessageToFrontend):

2016-10-11  Alex Christensen  <achristensen@webkit.org>

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

        Reviewed by Daniel Bates.

        * WebCoreSupport/WebInspectorClientCF.cpp:

2016-08-15  Joseph Pecoraro  <pecoraro@apple.com>

        Remove unused includes of wtf headers
        https://bugs.webkit.org/show_bug.cgi?id=160839

        Reviewed by Alex Christensen.

        * WebCoreSupport/WebInspectorClientCF.cpp:

2016-07-14  Chris Dumez  <cdumez@apple.com>

        Use emptyString() instead of "" when possible
        https://bugs.webkit.org/show_bug.cgi?id=159789

        Reviewed by Alex Christensen.

        Use emptyString() instead of "" when possible to reduce String allocations.

        * WebCoreSupport/WebInspectorClientCF.cpp:
        (populateSetting):

2015-05-01  Martin Robinson  <mrobinson@igalia.com>

        USE(...) macro should expect unprefixed variables
        https://bugs.webkit.org/show_bug.cgi?id=144454

        Reviewed by Daniel Bates.

        * WebCoreSupport/WebInspectorClientCF.cpp: Replace all occurrences WTF_USE with USE.

2015-04-22  Darin Adler  <darin@apple.com>

        Remove OwnPtr and PassOwnPtr use from WebKit/cf, WebKit/mac, and WebKit2
        https://bugs.webkit.org/show_bug.cgi?id=143943

        Reviewed by Anders Carlsson.

        * WebCoreSupport/WebInspectorClientCF.cpp: Removed unneeded include.

2014-09-25  Csaba Osztrogonác  <ossy@webkit.org>

        Remove WinCE port from trunk
        https://bugs.webkit.org/show_bug.cgi?id=136951

        Reviewed by Alex Christensen.

        * WebCoreSupport/WebInspectorClientCF.cpp:

2014-02-17  Sergio Correia  <sergio.correia@openbossa.org>

        Replace uses of PassOwnPtr/OwnPtr with std::unique_ptr in WebCore/inspector
        https://bugs.webkit.org/show_bug.cgi?id=128681

        Reviewed by Timothy Hatcher.

        Another step towards getting rid of PassOwnPtr/OwnPtr, now targeting
        WebCore/inspector/*. Besides files in there, a few other files in
        JavaScriptCore/inspector, WebKit/, WebKit2/WebProcess/WebCoreSupport/
        and WebCore/testing were touched.

        * WebCoreSupport/WebInspectorClientCF.cpp:

2013-12-03  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Push Remote Inspector debugging connection management into JavaScriptCore
        https://bugs.webkit.org/show_bug.cgi?id=124613

        Reviewed by Timothy Hatcher.

        * WebCoreSupport/WebInspectorClientCF.cpp:
        (WebInspectorClient::sendMessageToFrontend):

2013-10-25  Joseph Pecoraro  <pecoraro@apple.com>

        Upstream ENABLE(REMOTE_INSPECTOR) and enable on iOS and Mac
        https://bugs.webkit.org/show_bug.cgi?id=123111

        Reviewed by Timothy Hatcher.

        * WebCoreSupport/WebInspectorClientCF.cpp:

2013-04-27  Darin Adler  <darin@apple.com>

        Move from constructor and member function adoptCF/NS to free function adoptCF/NS.
        https://bugs.webkit.org/show_bug.cgi?id=115307

        Reviewed by Geoffrey Garen.

        * WebCoreSupport/WebInspectorClientCF.cpp:
        (populateSetting): Use adoptCF.

2013-04-02  Timothy Hatcher  <timothy@apple.com>

        Provide a user default that can be used to disable docking of the Web Inspector.

        The user default is "WebKit Web Inspector Setting - inspectorAttachDisabled".

        https://webkit.org/b/113779
        rdar://problem/13446021

        Reviewed by Joseph Pecoraro.

        * WebCoreSupport/WebInspectorClientCF.cpp:
        (WebInspectorClient::inspectorAttachDisabled): Added.
        (WebInspectorClient::setInspectorAttachDisabled): Added.

2012-10-29  Anders Carlsson  <andersca@apple.com>

        String::createCFString should return a RetainPtr
        https://bugs.webkit.org/show_bug.cgi?id=100419

        Reviewed by Andreas Kling.

        Update callers of String::createCFString.

        * WebCoreSupport/WebInspectorClientCF.cpp:
        (createKeyForPreferences):
        (populateSetting):
        (storeSetting):

2012-09-05  Sam Weinig  <sam@webkit.org>

        Part 2 of removing PlatformString.h, remove PlatformString.h
        https://bugs.webkit.org/show_bug.cgi?id=95931

        Reviewed by Adam Barth.

        Remove PlatformString.h

        * WebCoreSupport/WebInspectorClientCF.cpp:
        (WebInspectorClient::createFrontendSettings):

2012-06-19  Sergio Villar Senin  <svillar@igalia.com>

        Calling nativeImageForCurrentFrame() causes assertion failure: m_verifier.isSafeToUse()
        https://bugs.webkit.org/show_bug.cgi?id=67582

        Reviewed by David Levin.

        Fixes windows build.

        * WebCoreSupport/WebInspectorClientCF.cpp:

2011-12-20  Pavel Feldman  <pavel.feldman@gmail.com>

        Web Inspector: reproducible crash after closing web inspector and browser window  (iCab)
        https://bugs.webkit.org/show_bug.cgi?id=74255

        Reviewed by Yury Semikhatsky.

        * WebCoreSupport/WebInspectorClientCF.cpp:
        (WebInspectorClient::releaseFrontend):

2011-12-14  Hajime Morrita  <morrita@chromium.org>

        JS_INLINE and WTF_INLINE should be visible from WebCore
        https://bugs.webkit.org/show_bug.cgi?id=73191

        Reviewed by Kevin Ollivier.

        Removed macro definitions which is now provided by Platform.h

        * WebCoreSupport/WebInspectorClientCF.cpp:

2011-12-02  Hajime Morrita  <morrita@chromium.org>

        Unreviewed, rolling out r101751 and r101775.
        http://trac.webkit.org/changeset/101751
        http://trac.webkit.org/changeset/101775
        https://bugs.webkit.org/show_bug.cgi?id=73191

        breaks Windows build

        * WebCoreSupport/WebInspectorClientCF.cpp:

2011-12-01  Hajime Morrita  <morrita@chromium.org>

        JS_INLINE and WTF_INLINE should be visible from WebCore
        https://bugs.webkit.org/show_bug.cgi?id=73191

        Reviewed by Kevin Ollivier.

        Removed macro definitions which is now provided by Platform.h

        * WebCoreSupport/WebInspectorClientCF.cpp:

2011-08-03  Joseph Pecoraro  <joepeck@webkit.org>

        Web Inspector: Remove InspectorFrontendHost load/saveSessionSetting
        https://bugs.webkit.org/show_bug.cgi?id=65582

        Reviewed by Pavel Feldman.

        * WebCoreSupport/WebInspectorClientCF.cpp:

2011-03-15  Kevin Ollivier  <kevino@theolliviers.com>

        Reviewed by Darin Adler.

        Introduce WTF_USE_EXPORT_MACROS, which will allow us to put shared library import/export
        info into the headers rather than in export symbol definition files, but disable it on 
        all platforms initially so we can deal with port build issues one port at a time.
        
        https://bugs.webkit.org/show_bug.cgi?id=27551

        * WebCoreSupport/WebInspectorClientCF.cpp:

2011-02-23  Patrick Gansterer  <paroga@webkit.org>

        Reviewed by Darin Adler.

        Rename PLATFORM(CF) to USE(CF)
        https://bugs.webkit.org/show_bug.cgi?id=53540

        * WebCoreSupport/WebInspectorClientCF.cpp:

2011-02-03  Yury Semikhatsky  <yurys@chromium.org>

        Reviewed by Pavel Feldman.

        Web Inspector: remove settings related methods from InspectorClient
        https://bugs.webkit.org/show_bug.cgi?id=53686

        * WebCoreSupport/WebInspectorClientCF.cpp:
        (populateSetting):
        (storeSetting):
        (WebInspectorClient::createFrontendSettings):

2011-01-26  Yury Semikhatsky  <yurys@chromium.org>

        Reviewed by Pavel Feldman.

        Web Inspector: inspector should start in attached state by default
        https://bugs.webkit.org/show_bug.cgi?id=53165

        * WebCoreSupport/WebInspectorClientCF.cpp:
        (WebInspectorClient::inspectorStartsAttached):

2011-01-25  Yury Semikhatsky  <yurys@chromium.org>

        Reviewed by Pavel Feldman.

        Web Inspector: remove "attached" state related methods from InspectorAgent
        https://bugs.webkit.org/show_bug.cgi?id=53086

        * WebCoreSupport/WebInspectorClientCF.cpp:
        (WebInspectorClient::sendMessageToFrontend):
        (WebInspectorClient::inspectorStartsAttached):
        (WebInspectorClient::setInspectorStartsAttached):
        (WebInspectorClient::releaseFrontendPage):

2011-01-03  Pratik Solanki  <psolanki@apple.com>

        Mac build fix. Define WTF_USE_CFNETWORK for Windows build only.

        * WebCoreSupport/WebInspectorClientCF.cpp:

2011-01-03  Brian Weinstein  <bweinstein@apple.com>

        Windows build fix. Define WTF_USE_CFNETWORK in WebInspectorClientCF.

        * WebCoreSupport/WebInspectorClientCF.cpp:

2010-10-18  Pavel Feldman  <pfeldman@chromium.org>

        Reviewed by Simon Fraser.

        Web Inspector: [crash] when Inspector Open in CSSStyleSelector::loadPendingImages().
        https://bugs.webkit.org/show_bug.cgi?id=46224

        * WebCoreSupport/WebInspectorClientCF.cpp:
        (WebInspectorClient::sendMessageToFrontend):

2010-06-14  Ilya Tikhonovsky  <loislo@chromium.org>

        Reviewed by Pavel Feldman.

        WebInspector: On the way to Remote Debugging we want to transfer dom/timeline/etc
        data from inspected page to WebInspector as JSON string via http. The native
        serialization to JSON string is supported by InspectorValue's classes. This patch
        has the implementation of sendMessageToFrontend function. WebKit version of it still
        uses ScriptFunctionCall and will be switched to another transport a little bit later.
        https://bugs.webkit.org/show_bug.cgi?id=40134

        * WebCoreSupport/WebInspectorClientCF.cpp:
        (WebInspectorClient::releaseFrontendPage):
        (WebInspectorClient::sendMessageToFrontend):

2010-06-09  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r60889.
        http://trac.webkit.org/changeset/60889
        https://bugs.webkit.org/show_bug.cgi?id=40365

        gtk bot has some kind of memory corruption (Requested by
        loislo on #webkit).

        * WebCoreSupport/WebInspectorClientCF.cpp:
        (WebInspectorClient::storeSetting):

2010-06-07  Ilya Tikhonovsky  <loislo@chromium.org>

        Reviewed by Pavel Feldman.

        WebInspector: On the way to Remote Debugging we want to transfer dom/timeline/etc
        data from inspected page to WebInspector as JSON string via http. The native
        serialization to JSON string is supported by InspectorValue's classes. This patch
        has the implementation of sendMessageToFrontend function. WebKit version of it still
        uses ScriptFunctionCall and will be switched to another transport a little bit later.
        https://bugs.webkit.org/show_bug.cgi?id=40134

        * WebCoreSupport/WebInspectorClientCF.cpp:
        (WebInspectorClient::releaseFrontendPage):
        (WebInspectorClient::sendMessageToFrontend):

2010-01-07  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Geoffrey Garen.

        https://bugs.webkit.org/show_bug.cgi?id=33057
        REGRESSION(r49365): typeof(xhr.responseText) != "string" in Windows

        <rdar://problem/7296920> REGRESSION: WebKit fails to start PeaceKeeper benchmark

        * WebCoreSupport/WebInspectorClientCF.cpp: Define JS_EXPORTCLASS. I'm not sure why this
        isn't done in JSC globally for all possible clients, but keeping the current design for now.

2009-12-03  Pavel Feldman  <pfeldman@dhcp-172-28-174-220.spb.corp.google.com>

        Reviewed by Timothy Hatcher.

        Web Inspector: Simplify the settings support in inspector controller.

        https://bugs.webkit.org/show_bug.cgi?id=32076

        * WebCoreSupport/WebInspectorClientCF.cpp:
        (WebInspectorClient::populateSetting):
        (WebInspectorClient::storeSetting):

2009-04-20  Steve Falkenburg  <sfalken@apple.com>

        Separate JavaScriptCore.dll from WebKit.dll.
        Slight performance improvement or no change on benchmarks.
        
        Allows us to break a circular dependency between CFNetwork and WebKit on Windows,
        and simplifies standalone JavaScriptCore builds.
        
        Reviewed by Oliver Hunt.

        * WebCoreSupport/WebInspectorClientCF.cpp: Workaround for lack of config.h in shared WebKit file (WebKit/win uses config.h from WebCore).

2008-12-09  Dimitri Glazkov  <dglazkov@chromium.org>

        Fix bustage.

        * WebCoreSupport/WebInspectorClientCF.cpp:

2008-10-24  Adam Roben  <aroben@apple.com>

        Windows build fix

        * WebCoreSupport/WebInspectorClientCF.cpp: Define WTF_PLATFORM_CF
        manually. Normally this gets defined on Windows by including config.h,
        but Mac has no config.h for WebKit, so we can't do that here.

2008-10-24  Timothy Hatcher  <timothy@apple.com>

        Implement new InspectorClient methods to work with Settings.

        https://bugs.webkit.org/show_bug.cgi?id=21856

        Reviewed by Darin Adler.

        * WebCoreSupport/WebInspectorClientCF.cpp: Added.
        (createKeyForPreferences): Helper to make the preference key.
        (WebInspectorClient::populateSetting): Read the preference value from CFPreferences.
        (WebInspectorClient::storeSetting): Write the setting value to  CFPreferences.
        (WebInspectorClient::removeSetting): Remove the preference from CFPreferences.
