[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.17-1283-gcf603cf
pfeldman at chromium.org
pfeldman at chromium.org
Tue Jan 5 23:41:33 UTC 2010
The following commit has been merged in the webkit-1.1 branch:
commit ae6d47035c2f92a40763101c8b331d884013435d
Author: pfeldman at chromium.org <pfeldman at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Thu Dec 3 12:46:59 2009 +0000
2009-12-03 Pavel Feldman <pfeldman at 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
Test: inspector/settings-set-get.html
* WebCore.Inspector.exp:
* bindings/js/JSInspectorFrontendHostCustom.cpp:
* bindings/v8/custom/V8InspectorFrontendHostCustom.cpp:
* inspector/InspectorClient.h:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::~InspectorController):
(WebCore::InspectorController::setting):
(WebCore::InspectorController::setSetting):
(WebCore::InspectorController::setWindowVisible):
(WebCore::InspectorController::attachWindow):
(WebCore::InspectorController::setAttachedWindowHeight):
(WebCore::InspectorController::storeLastActivePanel):
(WebCore::InspectorController::scriptObjectReady):
(WebCore::InspectorController::showWindow):
(WebCore::InspectorController::enableResourceTracking):
(WebCore::InspectorController::disableResourceTracking):
(WebCore::InspectorController::ensureResourceTrackingSettingsLoaded):
(WebCore::InspectorController::enableProfiler):
(WebCore::InspectorController::disableProfiler):
(WebCore::InspectorController::enableDebuggerFromFrontend):
(WebCore::InspectorController::disableDebugger):
* inspector/InspectorController.h:
* inspector/InspectorFrontendHost.cpp:
(WebCore::InspectorFrontendHost::setting):
(WebCore::InspectorFrontendHost::setSetting):
* inspector/InspectorFrontendHost.h:
* inspector/InspectorFrontendHost.idl:
* loader/EmptyClients.h:
(WebCore::EmptyInspectorClient::populateSetting):
(WebCore::EmptyInspectorClient::storeSetting):
WebKit/chromium
* src/InspectorClientImpl.cpp:
(WebKit::InspectorClientImpl::hiddenPanels):
(WebKit::InspectorClientImpl::populateSetting):
(WebKit::InspectorClientImpl::storeSetting):
(WebKit::InspectorClientImpl::loadSettings):
(WebKit::InspectorClientImpl::saveSettings):
* src/InspectorClientImpl.h:
WebKit/cf
* WebCoreSupport/WebInspectorClientCF.cpp:
(WebInspectorClient::populateSetting):
(WebInspectorClient::storeSetting):
WebKit/gtk
* WebCoreSupport/InspectorClientGtk.cpp:
(WebKit::InspectorClient::populateSetting):
(WebKit::InspectorClient::storeSetting):
* WebCoreSupport/InspectorClientGtk.h:
WebKit/haiku
* WebCoreSupport/InspectorClientHaiku.cpp:
(WebCore::InspectorClientHaiku::populateSetting):
(WebCore::InspectorClientHaiku::storeSetting):
* WebCoreSupport/InspectorClientHaiku.h:
WebKit/mac
* WebCoreSupport/WebInspectorClient.h:
* WebCoreSupport/WebInspectorClient.mm:
(-[WebInspectorWindowController showWindow:]):
(-[WebInspectorWindowController attach]):
(-[WebInspectorWindowController detach]):
WebKit/qt
* WebCoreSupport/InspectorClientQt.cpp:
(WebCore::InspectorClientQt::populateSetting):
(WebCore::InspectorClientQt::storeSetting):
(WebCore::variantToSetting):
(WebCore::settingToVariant):
* WebCoreSupport/InspectorClientQt.h:
WebKit/win
* WebCoreSupport/WebInspectorClient.cpp:
(WebInspectorClient::attachWindow):
(WebInspectorClient::detachWindow):
(WebInspectorClient::showWindowWithoutNotifications):
* WebCoreSupport/WebInspectorClient.h:
WebKit/wx
* WebKitSupport/InspectorClientWx.cpp:
(WebCore::InspectorClientWx::populateSetting):
(WebCore::InspectorClientWx::storeSetting):
* WebKitSupport/InspectorClientWx.h:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51631 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index d166f7a..31a945a 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,14 @@
+2009-12-03 Pavel Feldman <pfeldman at 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
+
+ * inspector/settings-set-get-expected.txt: Added.
+ * inspector/settings-set-get.html: Added.
+
2009-12-03 Oliver Hunt <oliver at apple.com>
Reviewed by Maciej Stachowiak.
diff --git a/LayoutTests/inspector/settings-set-get-expected.txt b/LayoutTests/inspector/settings-set-get-expected.txt
new file mode 100644
index 0000000..bac9643
--- /dev/null
+++ b/LayoutTests/inspector/settings-set-get-expected.txt
@@ -0,0 +1,5 @@
+Tests front-end settings read/write.
+
+Setting should have 'bar' value, was: 'bar'
+Setting should have 'baz' value, was: 'baz'
+
diff --git a/LayoutTests/inspector/settings-set-get.html b/LayoutTests/inspector/settings-set-get.html
new file mode 100644
index 0000000..8341d7d
--- /dev/null
+++ b/LayoutTests/inspector/settings-set-get.html
@@ -0,0 +1,45 @@
+<html>
+<head>
+<script src="inspector-test.js"></script>
+<script>
+
+function doit()
+{
+ evaluateInWebInspector("frontend_setSetting('foo', 'bar')");
+ function callback(result)
+ {
+ output("Setting should have 'bar' value, was: '" + result + "'");
+ }
+ evaluateInWebInspector("frontend_setting('foo')", callback);
+
+ evaluateInWebInspector("frontend_setSetting('foo', 'baz')");
+ function callback2(result)
+ {
+ output("Setting should have 'baz' value, was: '" + result + "'");
+ notifyDone();
+ }
+ evaluateInWebInspector("frontend_setting('foo')", callback2);
+}
+
+// Frontend functions.
+
+function frontend_setSetting(key, value)
+{
+ InspectorFrontendHost.setSetting(key, value);
+}
+
+function frontend_setting(key)
+{
+ return InspectorFrontendHost.setting(key);
+}
+
+</script>
+</head>
+
+<body onload="onload()">
+<p id="test-topic">
+Tests front-end settings read/write.
+</p>
+
+</body>
+</html>
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 787105e..f9448b9 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,44 @@
+2009-12-03 Pavel Feldman <pfeldman at 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
+
+ Test: inspector/settings-set-get.html
+
+ * WebCore.Inspector.exp:
+ * bindings/js/JSInspectorFrontendHostCustom.cpp:
+ * bindings/v8/custom/V8InspectorFrontendHostCustom.cpp:
+ * inspector/InspectorClient.h:
+ * inspector/InspectorController.cpp:
+ (WebCore::InspectorController::~InspectorController):
+ (WebCore::InspectorController::setting):
+ (WebCore::InspectorController::setSetting):
+ (WebCore::InspectorController::setWindowVisible):
+ (WebCore::InspectorController::attachWindow):
+ (WebCore::InspectorController::setAttachedWindowHeight):
+ (WebCore::InspectorController::storeLastActivePanel):
+ (WebCore::InspectorController::scriptObjectReady):
+ (WebCore::InspectorController::showWindow):
+ (WebCore::InspectorController::enableResourceTracking):
+ (WebCore::InspectorController::disableResourceTracking):
+ (WebCore::InspectorController::ensureResourceTrackingSettingsLoaded):
+ (WebCore::InspectorController::enableProfiler):
+ (WebCore::InspectorController::disableProfiler):
+ (WebCore::InspectorController::enableDebuggerFromFrontend):
+ (WebCore::InspectorController::disableDebugger):
+ * inspector/InspectorController.h:
+ * inspector/InspectorFrontendHost.cpp:
+ (WebCore::InspectorFrontendHost::setting):
+ (WebCore::InspectorFrontendHost::setSetting):
+ * inspector/InspectorFrontendHost.h:
+ * inspector/InspectorFrontendHost.idl:
+ * loader/EmptyClients.h:
+ (WebCore::EmptyInspectorClient::populateSetting):
+ (WebCore::EmptyInspectorClient::storeSetting):
+
2009-12-03 Ben Murdoch <benm at google.com>
Reviewed by Brady Eidson.
diff --git a/WebCore/WebCore.Inspector.exp b/WebCore/WebCore.Inspector.exp
index 000594d..379b7a2 100644
--- a/WebCore/WebCore.Inspector.exp
+++ b/WebCore/WebCore.Inspector.exp
@@ -1,4 +1,4 @@
-__ZN7WebCore19InspectorController10setSettingERKNS_6StringERKNS0_7SettingE
+__ZN7WebCore19InspectorController10setSettingERKNS_6StringES3_
__ZN7WebCore19InspectorController12attachWindowEv
__ZN7WebCore19InspectorController12detachWindowEv
__ZN7WebCore19InspectorController14enableDebuggerEv
diff --git a/WebCore/bindings/js/JSInspectorFrontendHostCustom.cpp b/WebCore/bindings/js/JSInspectorFrontendHostCustom.cpp
index 5b44134..56f85ec 100644
--- a/WebCore/bindings/js/JSInspectorFrontendHostCustom.cpp
+++ b/WebCore/bindings/js/JSInspectorFrontendHostCustom.cpp
@@ -89,88 +89,6 @@ JSValue JSInspectorFrontendHost::search(ExecState* exec, const ArgList& args)
return constructArray(exec, result);
}
-JSValue JSInspectorFrontendHost::setting(ExecState* exec, const ArgList& args)
-{
- if (args.size() < 1)
- return jsUndefined();
-
- String key = args.at(0).toString(exec);
- if (exec->hadException())
- return jsUndefined();
-
- InspectorController* ic = impl()->inspectorController();
- if (!ic)
- return jsUndefined();
- const InspectorController::Setting& setting = ic->setting(key);
-
- switch (setting.type()) {
- default:
- case InspectorController::Setting::NoType:
- return jsUndefined();
- case InspectorController::Setting::StringType:
- return jsString(exec, setting.string());
- case InspectorController::Setting::DoubleType:
- return jsNumber(exec, setting.doubleValue());
- case InspectorController::Setting::IntegerType:
- return jsNumber(exec, setting.integerValue());
- case InspectorController::Setting::BooleanType:
- return jsBoolean(setting.booleanValue());
- case InspectorController::Setting::StringVectorType: {
- MarkedArgumentBuffer stringsArray;
- const Vector<String>& strings = setting.stringVector();
- const unsigned length = strings.size();
- for (unsigned i = 0; i < length; ++i)
- stringsArray.append(jsString(exec, strings[i]));
- return constructArray(exec, stringsArray);
- }
- }
-}
-
-JSValue JSInspectorFrontendHost::setSetting(ExecState* exec, const ArgList& args)
-{
- if (args.size() < 2)
- return jsUndefined();
-
- String key = args.at(0).toString(exec);
- if (exec->hadException())
- return jsUndefined();
-
- InspectorController::Setting setting;
-
- JSValue value = args.at(1);
- if (value.isUndefined() || value.isNull()) {
- // Do nothing. The setting is already NoType.
- ASSERT(setting.type() == InspectorController::Setting::NoType);
- } else if (value.isString())
- setting.set(value.toString(exec));
- else if (value.isNumber())
- setting.set(value.toNumber(exec));
- else if (value.isBoolean())
- setting.set(value.toBoolean(exec));
- else {
- JSArray* jsArray = asArray(value);
- if (!jsArray)
- return jsUndefined();
- Vector<String> strings;
- for (unsigned i = 0; i < jsArray->length(); ++i) {
- String item = jsArray->get(exec, i).toString(exec);
- if (exec->hadException())
- return jsUndefined();
- strings.append(item);
- }
- setting.set(strings);
- }
-
- if (exec->hadException())
- return jsUndefined();
-
- InspectorController* ic = impl()->inspectorController();
- if (ic)
- ic->setSetting(key, setting);
-
- return jsUndefined();
-}
-
} // namespace WebCore
#endif // ENABLE(INSPECTOR)
diff --git a/WebCore/bindings/v8/custom/V8InspectorFrontendHostCustom.cpp b/WebCore/bindings/v8/custom/V8InspectorFrontendHostCustom.cpp
index 08cb889..afbd9ac 100644
--- a/WebCore/bindings/v8/custom/V8InspectorFrontendHostCustom.cpp
+++ b/WebCore/bindings/v8/custom/V8InspectorFrontendHostCustom.cpp
@@ -84,87 +84,4 @@ CALLBACK_FUNC_DECL(InspectorFrontendHostSearch)
return result;
}
-CALLBACK_FUNC_DECL(InspectorFrontendHostSetting)
-{
- INC_STATS("InspectorFrontendHost.setting()");
-
- if (args.Length() < 1)
- return v8::Undefined();
-
- String key = toWebCoreStringWithNullCheck(args[0]);
- if (key.isEmpty())
- return v8::Undefined();
-
- InspectorFrontendHost* inspectorHost = V8DOMWrapper::convertToNativeObject<InspectorFrontendHost>(V8ClassIndex::INSPECTORFRONTENDHOST, args.Holder());
- InspectorController* ic = inspectorHost->inspectorController();
- if (!ic)
- return v8::Undefined();
- const InspectorController::Setting& setting = ic->setting(key);
-
- switch (setting.type()) {
- default:
- case InspectorController::Setting::NoType:
- return v8::Undefined();
- case InspectorController::Setting::StringType:
- return v8String(setting.string());
- case InspectorController::Setting::DoubleType:
- return v8::Number::New(setting.doubleValue());
- case InspectorController::Setting::IntegerType:
- return v8::Number::New(setting.integerValue());
- case InspectorController::Setting::BooleanType:
- return v8Boolean(setting.booleanValue());
- case InspectorController::Setting::StringVectorType: {
- const Vector<String>& strings = setting.stringVector();
- v8::Local<v8::Array> stringsArray = v8::Array::New(strings.size());
- const unsigned length = strings.size();
- for (unsigned i = 0; i < length; ++i)
- stringsArray->Set(v8::Number::New(i), v8String(strings[i]));
- return stringsArray;
- }
- }
-}
-
-CALLBACK_FUNC_DECL(InspectorFrontendHostSetSetting)
-{
- INC_STATS("InspectorFrontendHost.setSetting()");
- if (args.Length() < 2)
- return v8::Undefined();
-
- String key = toWebCoreStringWithNullCheck(args[0]);
- if (key.isEmpty())
- return v8::Undefined();
-
- InspectorController::Setting setting;
-
- v8::Local<v8::Value> value = args[1];
- if (value->IsUndefined() || value->IsNull()) {
- // Do nothing. The setting is already NoType.
- ASSERT(setting.type() == InspectorController::Setting::NoType);
- } else if (value->IsString())
- setting.set(toWebCoreStringWithNullCheck(value));
- else if (value->IsNumber())
- setting.set(value->NumberValue());
- else if (value->IsBoolean())
- setting.set(value->BooleanValue());
- else if (value->IsArray()) {
- v8::Local<v8::Array> v8Array = v8::Local<v8::Array>::Cast(value);
- Vector<String> strings;
- for (unsigned i = 0; i < v8Array->Length(); ++i) {
- String item = toWebCoreString(v8Array->Get(v8::Integer::New(i)));
- if (item.isEmpty())
- return v8::Undefined();
- strings.append(item);
- }
- setting.set(strings);
- } else
- return v8::Undefined();
-
- InspectorFrontendHost* inspectorHost = V8DOMWrapper::convertToNativeObject<InspectorFrontendHost>(V8ClassIndex::INSPECTORFRONTENDHOST, args.Holder());
- InspectorController* ic = inspectorHost->inspectorController();
- if (ic)
- inspectorHost->inspectorController()->setSetting(key, setting);
-
- return v8::Undefined();
-}
-
} // namespace WebCore
diff --git a/WebCore/inspector/InspectorClient.h b/WebCore/inspector/InspectorClient.h
index f96662a..e448cd2 100644
--- a/WebCore/inspector/InspectorClient.h
+++ b/WebCore/inspector/InspectorClient.h
@@ -59,9 +59,8 @@ public:
virtual void inspectedURLChanged(const String& newURL) = 0;
- virtual void populateSetting(const String& key, InspectorController::Setting&) = 0;
- virtual void storeSetting(const String& key, const InspectorController::Setting&) = 0;
- virtual void removeSetting(const String& key) = 0;
+ virtual void populateSetting(const String& key, String* value) = 0;
+ virtual void storeSetting(const String& key, const String& value) = 0;
virtual void inspectorWindowObjectCleared() = 0;
};
diff --git a/WebCore/inspector/InspectorController.cpp b/WebCore/inspector/InspectorController.cpp
index b86eda3..c269825 100644
--- a/WebCore/inspector/InspectorController.cpp
+++ b/WebCore/inspector/InspectorController.cpp
@@ -121,7 +121,6 @@ static const float minimumAttachedHeight = 250.0f;
static const float maximumAttachedHeightRatio = 0.75f;
static unsigned s_inspectorControllerCount;
-static HashMap<String, InspectorController::Setting*>* s_settingCache;
InspectorController::InspectorController(Page* page, InspectorClient* client)
: m_inspectedPage(page)
@@ -168,12 +167,6 @@ InspectorController::~InspectorController()
ASSERT(s_inspectorControllerCount);
--s_inspectorControllerCount;
- if (!s_inspectorControllerCount && s_settingCache) {
- deleteAllValues(*s_settingCache);
- delete s_settingCache;
- s_settingCache = 0;
- }
-
releaseDOMAgent();
m_inspectorBackend->disconnectController();
@@ -204,46 +197,22 @@ bool InspectorController::enabled() const
return m_inspectedPage->settings()->developerExtrasEnabled();
}
-const InspectorController::Setting& InspectorController::setting(const String& key) const
+String InspectorController::setting(const String& key) const
{
- if (!s_settingCache)
- s_settingCache = new HashMap<String, Setting*>;
-
- if (Setting* cachedSetting = s_settingCache->get(key))
- return *cachedSetting;
-
- Setting* newSetting = new Setting;
- s_settingCache->set(key, newSetting);
-
- m_client->populateSetting(key, *newSetting);
+ Settings::iterator it = m_settings.find(key);
+ if (it != m_settings.end())
+ return it->second;
- return *newSetting;
+ String value;
+ m_client->populateSetting(key, &value);
+ m_settings.set(key, value);
+ return value;
}
-void InspectorController::setSetting(const String& key, const Setting& setting)
+void InspectorController::setSetting(const String& key, const String& value)
{
- if (setting.type() == Setting::NoType) {
- if (s_settingCache) {
- Setting* cachedSetting = s_settingCache->get(key);
- if (cachedSetting) {
- s_settingCache->remove(key);
- delete cachedSetting;
- }
- }
-
- m_client->removeSetting(key);
- return;
- }
-
- if (!s_settingCache)
- s_settingCache = new HashMap<String, Setting*>;
-
- if (Setting* cachedSetting = s_settingCache->get(key))
- *cachedSetting = setting;
- else
- s_settingCache->set(key, new Setting(setting));
-
- m_client->storeSetting(key, setting);
+ m_settings.set(key, value);
+ m_client->storeSetting(key, value);
}
// Trying to inspect something in a frame with JavaScript disabled would later lead to
@@ -323,11 +292,8 @@ void InspectorController::setWindowVisible(bool visible, bool attached)
populateScriptObjects();
if (m_showAfterVisible == CurrentPanel) {
- Setting lastActivePanelSetting = setting(lastActivePanelSettingName);
- if (lastActivePanelSetting.type() == Setting::StringType)
- m_showAfterVisible = specialPanelForJSName(lastActivePanelSetting.string());
- else
- m_showAfterVisible = ElementsPanel;
+ String lastActivePanelSetting = setting(lastActivePanelSettingName);
+ m_showAfterVisible = specialPanelForJSName(lastActivePanelSetting);
}
if (m_nodeToFocus)
@@ -439,8 +405,10 @@ void InspectorController::attachWindow()
m_client->attachWindow();
- Setting attachedHeight = setting(inspectorAttachedHeightName);
- unsigned preferredHeight = attachedHeight.type() == Setting::IntegerType ? attachedHeight.integerValue() : defaultAttachedHeight;
+ String attachedHeight = setting(inspectorAttachedHeightName);
+ bool success = true;
+ int height = attachedHeight.toInt(&success);
+ unsigned preferredHeight = success ? height : defaultAttachedHeight;
// We need to constrain the window height here in case the user has resized the inspected page's window so that
// the user's preferred height would be too big to display.
@@ -470,14 +438,14 @@ void InspectorController::setAttachedWindowHeight(unsigned height)
unsigned totalHeight = m_page->mainFrame()->view()->visibleHeight() + m_inspectedPage->mainFrame()->view()->visibleHeight();
unsigned attachedHeight = constrainedAttachedWindowHeight(height, totalHeight);
- setSetting(inspectorAttachedHeightName, Setting(attachedHeight));
+ setSetting(inspectorAttachedHeightName, String::number(attachedHeight));
m_client->setAttachedWindowHeight(attachedHeight);
}
void InspectorController::storeLastActivePanel(const String& panelName)
{
- setSetting(lastActivePanelSettingName, Setting(panelName));
+ setSetting(lastActivePanelSettingName, panelName);
}
void InspectorController::toggleSearchForNodeInPage()
@@ -549,11 +517,11 @@ void InspectorController::scriptObjectReady()
setFrontendProxyObject(m_scriptState, webInspectorObj, injectedScriptObj);
#if ENABLE(JAVASCRIPT_DEBUGGER)
- Setting debuggerEnabled = setting(debuggerEnabledSettingName);
- if (debuggerEnabled.type() == Setting::BooleanType && debuggerEnabled.booleanValue())
+ String debuggerEnabled = setting(debuggerEnabledSettingName);
+ if (debuggerEnabled == "true")
enableDebugger();
- Setting profilerEnabled = setting(profilerEnabledSettingName);
- if (profilerEnabled.type() == Setting::BooleanType && profilerEnabled.booleanValue())
+ String profilerEnabled = setting(profilerEnabledSettingName);
+ if (profilerEnabled == "true")
enableProfiler();
#endif
@@ -645,8 +613,10 @@ void InspectorController::showWindow()
m_client->showWindow();
- Setting attachedHeight = setting(inspectorAttachedHeightName);
- unsigned preferredHeight = attachedHeight.type() == Setting::IntegerType ? attachedHeight.integerValue() : defaultAttachedHeight;
+ String attachedHeight = setting(inspectorAttachedHeightName);
+ bool success = true;
+ int height = attachedHeight.toInt(&success);
+ unsigned preferredHeight = success ? height : defaultAttachedHeight;
// This call might not go through (if the window starts out detached), but if the window is initially created attached,
// InspectorController::attachWindow is never called, so we need to make sure to set the attachedWindowHeight.
@@ -1077,7 +1047,7 @@ void InspectorController::enableResourceTracking(bool always, bool reload)
return;
if (always)
- setSetting(resourceTrackingEnabledSettingName, Setting(true));
+ setSetting(resourceTrackingEnabledSettingName, "true");
if (m_resourceTrackingEnabled)
return;
@@ -1097,7 +1067,7 @@ void InspectorController::disableResourceTracking(bool always)
return;
if (always)
- setSetting(resourceTrackingEnabledSettingName, Setting(false));
+ setSetting(resourceTrackingEnabledSettingName, "false");
ASSERT(m_inspectedPage);
m_resourceTrackingEnabled = false;
@@ -1111,8 +1081,8 @@ void InspectorController::ensureResourceTrackingSettingsLoaded()
return;
m_resourceTrackingSettingsLoaded = true;
- Setting resourceTracking = setting(resourceTrackingEnabledSettingName);
- if (resourceTracking.type() == Setting::BooleanType && resourceTracking.booleanValue())
+ String resourceTracking = setting(resourceTrackingEnabledSettingName);
+ if (resourceTracking == "true")
m_resourceTrackingEnabled = true;
}
@@ -1500,7 +1470,7 @@ void InspectorController::toggleRecordButton(bool isProfiling)
void InspectorController::enableProfiler(bool always, bool skipRecompile)
{
if (always)
- setSetting(profilerEnabledSettingName, Setting(true));
+ setSetting(profilerEnabledSettingName, "true");
if (m_profilerEnabled)
return;
@@ -1517,7 +1487,7 @@ void InspectorController::enableProfiler(bool always, bool skipRecompile)
void InspectorController::disableProfiler(bool always)
{
if (always)
- setSetting(profilerEnabledSettingName, Setting(false));
+ setSetting(profilerEnabledSettingName, "false");
if (!m_profilerEnabled)
return;
@@ -1533,7 +1503,7 @@ void InspectorController::disableProfiler(bool always)
void InspectorController::enableDebuggerFromFrontend(bool always)
{
if (always)
- setSetting(debuggerEnabledSettingName, Setting(true));
+ setSetting(debuggerEnabledSettingName, "true");
ASSERT(m_inspectedPage);
@@ -1566,7 +1536,7 @@ void InspectorController::disableDebugger(bool always)
return;
if (always)
- setSetting(debuggerEnabledSettingName, Setting(false));
+ setSetting(debuggerEnabledSettingName, "false");
ASSERT(m_inspectedPage);
diff --git a/WebCore/inspector/InspectorController.h b/WebCore/inspector/InspectorController.h
index 6f261ec..0dd6fb1 100644
--- a/WebCore/inspector/InspectorController.h
+++ b/WebCore/inspector/InspectorController.h
@@ -110,60 +110,6 @@ public:
StoragePanel
} SpecialPanels;
- struct Setting {
- enum Type {
- NoType, StringType, StringVectorType, DoubleType, IntegerType, BooleanType
- };
-
- Setting()
- : m_type(NoType)
- {
- }
-
- explicit Setting(bool value)
- : m_type(BooleanType)
- {
- m_simpleContent.m_boolean = value;
- }
-
- explicit Setting(unsigned value)
- : m_type(IntegerType)
- {
- m_simpleContent.m_integer = value;
- }
-
- explicit Setting(const String& value)
- : m_type(StringType)
- {
- m_string = value;
- }
-
- Type type() const { return m_type; }
-
- String string() const { ASSERT(m_type == StringType); return m_string; }
- const Vector<String>& stringVector() const { ASSERT(m_type == StringVectorType); return m_stringVector; }
- double doubleValue() const { ASSERT(m_type == DoubleType); return m_simpleContent.m_double; }
- long integerValue() const { ASSERT(m_type == IntegerType); return m_simpleContent.m_integer; }
- bool booleanValue() const { ASSERT(m_type == BooleanType); return m_simpleContent.m_boolean; }
-
- void set(const String& value) { m_type = StringType; m_string = value; }
- void set(const Vector<String>& value) { m_type = StringVectorType; m_stringVector = value; }
- void set(double value) { m_type = DoubleType; m_simpleContent.m_double = value; }
- void set(long value) { m_type = IntegerType; m_simpleContent.m_integer = value; }
- void set(bool value) { m_type = BooleanType; m_simpleContent.m_boolean = value; }
-
- private:
- Type m_type;
-
- String m_string;
- Vector<String> m_stringVector;
-
- union {
- double m_double;
- long m_integer;
- bool m_boolean;
- } m_simpleContent;
- };
InspectorController(Page*, InspectorClient*);
~InspectorController();
@@ -178,8 +124,8 @@ public:
Page* inspectedPage() const { return m_inspectedPage; }
- const Setting& setting(const String& key) const;
- void setSetting(const String& key, const Setting&);
+ String setting(const String& key) const;
+ void setSetting(const String& key, const String& value);
void inspect(Node*);
void highlight(Node*);
@@ -397,8 +343,11 @@ private:
RefPtr<InjectedScriptHost> m_injectedScriptHost;
HashMap<String, ScriptValue> m_idToWrappedObject;
ObjectGroupsMap m_objectGroups;
-
long m_lastBoundObjectId;
+
+ typedef HashMap<String, String> Settings;
+ mutable Settings m_settings;
+
Vector<pair<long, String> > m_pendingEvaluateTestCommands;
#if ENABLE(JAVASCRIPT_DEBUGGER)
bool m_debuggerEnabled;
diff --git a/WebCore/inspector/InspectorFrontendHost.cpp b/WebCore/inspector/InspectorFrontendHost.cpp
index 138a4df..8d3b3a1 100644
--- a/WebCore/inspector/InspectorFrontendHost.cpp
+++ b/WebCore/inspector/InspectorFrontendHost.cpp
@@ -188,6 +188,17 @@ bool InspectorFrontendHost::addSourceToFrame(const String& mimeType, const Strin
return true;
}
+String InspectorFrontendHost::setting(const String& key)
+{
+ return m_inspectorController ? m_inspectorController->setting(key) : "";
+}
+
+void InspectorFrontendHost::setSetting(const String& key, const String& value)
+{
+ if (m_inspectorController)
+ m_inspectorController->setSetting(key, value);
+}
+
} // namespace WebCore
#endif // ENABLE(INSPECTOR)
diff --git a/WebCore/inspector/InspectorFrontendHost.h b/WebCore/inspector/InspectorFrontendHost.h
index dcbec6b..0915fbe 100644
--- a/WebCore/inspector/InspectorFrontendHost.h
+++ b/WebCore/inspector/InspectorFrontendHost.h
@@ -70,6 +70,9 @@ public:
void addResourceSourceToFrame(long identifier, Node* frame);
bool addSourceToFrame(const String& mimeType, const String& source, Node* frame);
+ String setting(const String& key);
+ void setSetting(const String& key, const String& value);
+
private:
InspectorFrontendHost(InspectorController* inspectorController, InspectorClient* client);
diff --git a/WebCore/inspector/InspectorFrontendHost.idl b/WebCore/inspector/InspectorFrontendHost.idl
index 9a7581d..fad83e8 100644
--- a/WebCore/inspector/InspectorFrontendHost.idl
+++ b/WebCore/inspector/InspectorFrontendHost.idl
@@ -51,8 +51,9 @@ module core {
void addResourceSourceToFrame(in long identifier, in Node frame);
boolean addSourceToFrame(in DOMString mimeType, in DOMString sourceValue, in Node frame);
+ DOMString setting(in DOMString key);
+ void setSetting(in DOMString key, in DOMString value);
+
[Custom] void search(in Node node, in DOMString query);
- [Custom] DOMObject setting(in DOMString key);
- [Custom] void setSetting(in DOMString key, in DOMObject value);
};
}
diff --git a/WebCore/loader/EmptyClients.h b/WebCore/loader/EmptyClients.h
index 99777ad..bf34a1b 100644
--- a/WebCore/loader/EmptyClients.h
+++ b/WebCore/loader/EmptyClients.h
@@ -482,9 +482,8 @@ public:
virtual void hideHighlight() { }
virtual void inspectedURLChanged(const String&) { }
- virtual void populateSetting(const String&, InspectorController::Setting&) { }
- virtual void storeSetting(const String&, const InspectorController::Setting&) { }
- virtual void removeSetting(const String&) { }
+ virtual void populateSetting(const String&, String*) { }
+ virtual void storeSetting(const String&, const String&) { }
virtual void inspectorWindowObjectCleared() { }
};
diff --git a/WebKit/cf/ChangeLog b/WebKit/cf/ChangeLog
index 27caf1c..1d061fb 100644
--- a/WebKit/cf/ChangeLog
+++ b/WebKit/cf/ChangeLog
@@ -1,3 +1,15 @@
+2009-12-03 Pavel Feldman <pfeldman at 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 at apple.com>
Separate JavaScriptCore.dll from WebKit.dll.
diff --git a/WebKit/cf/WebCoreSupport/WebInspectorClientCF.cpp b/WebKit/cf/WebCoreSupport/WebInspectorClientCF.cpp
index 600d58d..cb47205 100644
--- a/WebKit/cf/WebCoreSupport/WebInspectorClientCF.cpp
+++ b/WebKit/cf/WebCoreSupport/WebInspectorClientCF.cpp
@@ -64,7 +64,7 @@ static inline CFStringRef createKeyForPreferences(const String& key)
return CFStringCreateWithFormat(0, 0, CFSTR("WebKit Web Inspector Setting - %@"), keyCFString.get());
}
-void WebInspectorClient::populateSetting(const String& key, InspectorController::Setting& setting)
+void WebInspectorClient::populateSetting(const String& key, String* setting)
{
RetainPtr<CFStringRef> preferencesKey(AdoptCF, createKeyForPreferences(key));
RetainPtr<CFPropertyListRef> value(AdoptCF, CFPreferencesCopyAppValue(preferencesKey.get(), kCFPreferencesCurrentApplication));
@@ -74,88 +74,19 @@ void WebInspectorClient::populateSetting(const String& key, InspectorController:
CFTypeID type = CFGetTypeID(value.get());
if (type == CFStringGetTypeID())
- setting.set(static_cast<String>(static_cast<CFStringRef>(value.get())));
+ *setting = static_cast<String>(static_cast<CFStringRef>(value.get()));
else if (type == CFBooleanGetTypeID())
- setting.set(static_cast<bool>(CFBooleanGetValue(static_cast<CFBooleanRef>(value.get()))));
- else if (type == CFNumberGetTypeID()) {
- CFNumberRef number = static_cast<CFNumberRef>(value.get());
- if (CFNumberIsFloatType(number)) {
- double doubleNumber = 0.0;
- CFNumberGetValue(static_cast<CFNumberRef>(value.get()), kCFNumberDoubleType, &doubleNumber);
- setting.set(doubleNumber);
- } else {
- long longNumber = 0;
- CFNumberGetValue(static_cast<CFNumberRef>(value.get()), kCFNumberLongType, &longNumber);
- setting.set(longNumber);
- }
- } else if (type == CFArrayGetTypeID()) {
- Vector<String> strings;
-
- CFArrayRef array = static_cast<CFArrayRef>(value.get());
- unsigned length = CFArrayGetCount(array);
- for (unsigned i = 0; i < length; ++i) {
- CFStringRef string = static_cast<CFStringRef>(CFArrayGetValueAtIndex(array, i));
- if (CFGetTypeID(string) == CFStringGetTypeID())
- strings.append(static_cast<String>(static_cast<CFStringRef>(string)));
- }
-
- setting.set(strings);
- } else
- ASSERT_NOT_REACHED();
+ *setting = static_cast<bool>(CFBooleanGetValue(static_cast<CFBooleanRef>(value.get()))) ? "true" : "false";
+ else
+ *setting = "";
}
-void WebInspectorClient::storeSetting(const String& key, const InspectorController::Setting& setting)
+void WebInspectorClient::storeSetting(const String& key, const String& setting)
{
RetainPtr<CFPropertyListRef> objectToStore;
-
- switch (setting.type()) {
- default:
- case InspectorController::Setting::NoType:
- ASSERT_NOT_REACHED();
- break;
- case InspectorController::Setting::StringType:
- objectToStore.adoptCF(setting.string().createCFString());
- break;
- case InspectorController::Setting::BooleanType:
- objectToStore = (setting.booleanValue() ? kCFBooleanTrue : kCFBooleanFalse);
- break;
-
- case InspectorController::Setting::DoubleType: {
- double value = setting.doubleValue();
- objectToStore.adoptCF(CFNumberCreate(0, kCFNumberDoubleType, &value));
- break;
- }
-
- case InspectorController::Setting::IntegerType: {
- long value = setting.integerValue();
- objectToStore.adoptCF(CFNumberCreate(0, kCFNumberLongType, &value));
- break;
- }
-
- case InspectorController::Setting::StringVectorType: {
- const Vector<String>& strings = setting.stringVector();
- const unsigned length = strings.size();
-
- RetainPtr<CFMutableArrayRef> array(AdoptCF, CFArrayCreateMutable(0, length, &kCFTypeArrayCallBacks));
-
- for (unsigned i = 0; i < length; ++i) {
- RetainPtr<CFStringRef> string(AdoptCF, strings[i].createCFString());
- CFArraySetValueAtIndex(array.get(), i, string.get());
- }
-
- objectToStore = array;
- break;
- }
- }
-
+ objectToStore.adoptCF(setting.createCFString());
ASSERT(objectToStore);
RetainPtr<CFStringRef> preferencesKey(AdoptCF, createKeyForPreferences(key));
CFPreferencesSetAppValue(preferencesKey.get(), objectToStore.get(), kCFPreferencesCurrentApplication);
}
-
-void WebInspectorClient::removeSetting(const String& key)
-{
- RetainPtr<CFStringRef> preferencesKey(AdoptCF, createKeyForPreferences(key));
- CFPreferencesSetAppValue(preferencesKey.get(), 0, kCFPreferencesCurrentApplication);
-}
diff --git a/WebKit/chromium/ChangeLog b/WebKit/chromium/ChangeLog
index 073fe8d..4876159 100644
--- a/WebKit/chromium/ChangeLog
+++ b/WebKit/chromium/ChangeLog
@@ -1,3 +1,19 @@
+2009-12-03 Pavel Feldman <pfeldman at 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
+
+ * src/InspectorClientImpl.cpp:
+ (WebKit::InspectorClientImpl::hiddenPanels):
+ (WebKit::InspectorClientImpl::populateSetting):
+ (WebKit::InspectorClientImpl::storeSetting):
+ (WebKit::InspectorClientImpl::loadSettings):
+ (WebKit::InspectorClientImpl::saveSettings):
+ * src/InspectorClientImpl.h:
+
2009-12-03 Ben Murdoch <benm at google.com>
Reviewed by Brady Eidson.
diff --git a/WebKit/chromium/src/InspectorClientImpl.cpp b/WebKit/chromium/src/InspectorClientImpl.cpp
index ed4329a..2a69daa 100644
--- a/WebKit/chromium/src/InspectorClientImpl.cpp
+++ b/WebKit/chromium/src/InspectorClientImpl.cpp
@@ -143,28 +143,21 @@ String InspectorClientImpl::localizedStringsURL()
String InspectorClientImpl::hiddenPanels()
{
- // Enumerate tabs that are currently disabled.
- return "scripts,profiles,databases";
+ notImplemented();
+ return "";
}
-void InspectorClientImpl::populateSetting(const String& key, InspectorController::Setting& setting)
+void InspectorClientImpl::populateSetting(const String& key, String* value)
{
loadSettings();
if (m_settings->contains(key))
- setting = m_settings->get(key);
-}
-
-void InspectorClientImpl::storeSetting(const String& key, const InspectorController::Setting& setting)
-{
- loadSettings();
- m_settings->set(key, setting);
- saveSettings();
+ *value = m_settings->get(key);
}
-void InspectorClientImpl::removeSetting(const String& key)
+void InspectorClientImpl::storeSetting(const String& key, const String& value)
{
loadSettings();
- m_settings->remove(key);
+ m_settings->set(key, value);
saveSettings();
}
@@ -193,21 +186,15 @@ void InspectorClientImpl::loadSettings()
String name = decodeURLEscapeSequences(tokens[0]);
String type = tokens[1];
- InspectorController::Setting setting;
- bool ok = true;
+ String setting;
if (type == "string")
- setting.set(decodeURLEscapeSequences(tokens[2]));
- else if (type == "double")
- setting.set(tokens[2].toDouble(&ok));
- else if (type == "integer")
- setting.set(static_cast<long>(tokens[2].toInt(&ok)));
+ setting = decodeURLEscapeSequences(tokens[2]);
else if (type == "boolean")
- setting.set(tokens[2] == "true");
+ setting = tokens[2];
else
continue;
- if (ok)
- m_settings->set(name, setting);
+ m_settings->set(name, setting);
}
}
@@ -215,40 +202,12 @@ void InspectorClientImpl::saveSettings()
{
String data;
for (SettingsMap::iterator it = m_settings->begin(); it != m_settings->end(); ++it) {
- String entry;
- InspectorController::Setting value = it->second;
String name = encodeWithURLEscapeSequences(it->first);
- switch (value.type()) {
- case InspectorController::Setting::StringType:
- entry = String::format(
- "%s:string:%s",
- name.utf8().data(),
- encodeWithURLEscapeSequences(value.string()).utf8().data());
- break;
- case InspectorController::Setting::DoubleType:
- entry = String::format(
- "%s:double:%f",
- name.utf8().data(),
- value.doubleValue());
- break;
- case InspectorController::Setting::IntegerType:
- entry = String::format(
- "%s:integer:%ld",
- name.utf8().data(),
- value.integerValue());
- break;
- case InspectorController::Setting::BooleanType:
- entry = String::format("%s:boolean:%s",
- name.utf8().data(),
- value.booleanValue() ? "true" : "false");
- break;
- case InspectorController::Setting::StringVectorType:
- notImplemented();
- break;
- default:
- ASSERT_NOT_REACHED();
- break;
- }
+ String value = it->second;
+ String entry = String::format(
+ "%s:string:%s",
+ name.utf8().data(),
+ encodeWithURLEscapeSequences(value).utf8().data());
data.append(entry);
data.append("\n");
}
diff --git a/WebKit/chromium/src/InspectorClientImpl.h b/WebKit/chromium/src/InspectorClientImpl.h
index 62216b2..6f7f8b1 100644
--- a/WebKit/chromium/src/InspectorClientImpl.h
+++ b/WebKit/chromium/src/InspectorClientImpl.h
@@ -59,11 +59,10 @@ public:
virtual void inspectedURLChanged(const WebCore::String& newURL);
virtual void populateSetting(
const WebCore::String& key,
- WebCore::InspectorController::Setting&);
+ WebCore::String* value);
virtual void storeSetting(
const WebCore::String& key,
- const WebCore::InspectorController::Setting&);
- virtual void removeSetting(const WebCore::String& key);
+ const WebCore::String& value);
virtual void inspectorWindowObjectCleared();
private:
@@ -73,7 +72,7 @@ private:
// The WebViewImpl of the page being inspected; gets passed to the constructor
WebViewImpl* m_inspectedWebView;
- typedef HashMap<WebCore::String, WebCore::InspectorController::Setting> SettingsMap;
+ typedef HashMap<WebCore::String, WebCore::String> SettingsMap;
OwnPtr<SettingsMap> m_settings;
};
diff --git a/WebKit/gtk/ChangeLog b/WebKit/gtk/ChangeLog
index 216cc72..4142116 100644
--- a/WebKit/gtk/ChangeLog
+++ b/WebKit/gtk/ChangeLog
@@ -1,3 +1,16 @@
+2009-12-03 Pavel Feldman <pfeldman at 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/InspectorClientGtk.cpp:
+ (WebKit::InspectorClient::populateSetting):
+ (WebKit::InspectorClient::storeSetting):
+ * WebCoreSupport/InspectorClientGtk.h:
+
2009-12-03 Ben Murdoch <benm at google.com>
Reviewed by Brady Eidson.
diff --git a/WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp b/WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp
index 78f5543..a06ff50 100644
--- a/WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp
+++ b/WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp
@@ -204,18 +204,12 @@ void InspectorClient::inspectorWindowObjectCleared()
notImplemented();
}
-
-void InspectorClient::populateSetting(const String& key, InspectorController::Setting& setting)
-{
- notImplemented();
-}
-
-void InspectorClient::storeSetting(const String& key, const InspectorController::Setting& setting)
+void InspectorClient::populateSetting(const String& key, String* value)
{
notImplemented();
}
-void InspectorClient::removeSetting(const String& key)
+void InspectorClient::storeSetting(const String& key, const String& value)
{
notImplemented();
}
diff --git a/WebKit/gtk/WebCoreSupport/InspectorClientGtk.h b/WebKit/gtk/WebCoreSupport/InspectorClientGtk.h
index ed9fe08..297fd8f 100644
--- a/WebKit/gtk/WebCoreSupport/InspectorClientGtk.h
+++ b/WebKit/gtk/WebCoreSupport/InspectorClientGtk.h
@@ -66,9 +66,8 @@ namespace WebKit {
virtual void hideHighlight();
virtual void inspectedURLChanged(const WebCore::String& newURL);
- virtual void populateSetting(const WebCore::String& key, WebCore::InspectorController::Setting&);
- virtual void storeSetting(const WebCore::String& key, const WebCore::InspectorController::Setting&);
- virtual void removeSetting(const WebCore::String& key);
+ virtual void populateSetting(const WebCore::String& key, WebCore::String* value);
+ virtual void storeSetting(const WebCore::String& key, const WebCore::String& value);
virtual void inspectorWindowObjectCleared();
diff --git a/WebKit/haiku/ChangeLog b/WebKit/haiku/ChangeLog
index 26c0ad0..7ee29bd 100644
--- a/WebKit/haiku/ChangeLog
+++ b/WebKit/haiku/ChangeLog
@@ -1,3 +1,16 @@
+2009-12-03 Pavel Feldman <pfeldman at 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/InspectorClientHaiku.cpp:
+ (WebCore::InspectorClientHaiku::populateSetting):
+ (WebCore::InspectorClientHaiku::storeSetting):
+ * WebCoreSupport/InspectorClientHaiku.h:
+
2009-12-03 Ben Murdoch <benm at google.com>
Reviewed by Brady Eidson.
diff --git a/WebKit/haiku/WebCoreSupport/InspectorClientHaiku.cpp b/WebKit/haiku/WebCoreSupport/InspectorClientHaiku.cpp
index 4064c51..f06e96b 100644
--- a/WebKit/haiku/WebCoreSupport/InspectorClientHaiku.cpp
+++ b/WebKit/haiku/WebCoreSupport/InspectorClientHaiku.cpp
@@ -105,17 +105,12 @@ void InspectorClientHaiku::inspectorWindowObjectCleared()
notImplemented();
}
-void InspectorClientHaiku::populateSetting(const String& key, InspectorController::Setting&)
+void InspectorClientHaiku::populateSetting(const String& key, String* value)
{
notImplemented();
}
-void InspectorClientHaiku::storeSetting(const String& key, const InspectorController::Setting&)
-{
- notImplemented();
-}
-
-void InspectorClientHaiku::removeSetting(const String& key)
+void InspectorClientHaiku::storeSetting(const String& key, const String& value)
{
notImplemented();
}
diff --git a/WebKit/haiku/WebCoreSupport/InspectorClientHaiku.h b/WebKit/haiku/WebCoreSupport/InspectorClientHaiku.h
index 792ef40..8788a5f 100644
--- a/WebKit/haiku/WebCoreSupport/InspectorClientHaiku.h
+++ b/WebKit/haiku/WebCoreSupport/InspectorClientHaiku.h
@@ -61,9 +61,8 @@ namespace WebCore {
virtual void inspectedURLChanged(const String& newURL);
- virtual void populateSetting(const String& key, InspectorController::Setting&);
- virtual void storeSetting(const String& key, const InspectorController::Setting&);
- virtual void removeSetting(const String& key);
+ virtual void populateSetting(const WebCore::String& key, WebCore::String* value);
+ virtual void storeSetting(const WebCore::String& key, const WebCore::String& value);
virtual void inspectorWindowObjectCleared();
};
diff --git a/WebKit/mac/ChangeLog b/WebKit/mac/ChangeLog
index acabcb5..af84eaa 100644
--- a/WebKit/mac/ChangeLog
+++ b/WebKit/mac/ChangeLog
@@ -1,3 +1,17 @@
+2009-12-03 Pavel Feldman <pfeldman at 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/WebInspectorClient.h:
+ * WebCoreSupport/WebInspectorClient.mm:
+ (-[WebInspectorWindowController showWindow:]):
+ (-[WebInspectorWindowController attach]):
+ (-[WebInspectorWindowController detach]):
+
2009-12-03 Ben Murdoch <benm at google.com>
Reviewed by Brady Eidson.
diff --git a/WebKit/mac/WebCoreSupport/WebInspectorClient.h b/WebKit/mac/WebCoreSupport/WebInspectorClient.h
index 7487728..64621f8 100644
--- a/WebKit/mac/WebCoreSupport/WebInspectorClient.h
+++ b/WebKit/mac/WebCoreSupport/WebInspectorClient.h
@@ -62,9 +62,8 @@ public:
virtual void hideHighlight();
virtual void inspectedURLChanged(const WebCore::String& newURL);
- virtual void populateSetting(const WebCore::String& key, WebCore::InspectorController::Setting&);
- virtual void storeSetting(const WebCore::String& key, const WebCore::InspectorController::Setting&);
- virtual void removeSetting(const WebCore::String& key);
+ virtual void populateSetting(const WebCore::String& key, WebCore::String* value);
+ virtual void storeSetting(const WebCore::String& key, const WebCore::String& value);
virtual void inspectorWindowObjectCleared();
diff --git a/WebKit/mac/WebCoreSupport/WebInspectorClient.mm b/WebKit/mac/WebCoreSupport/WebInspectorClient.mm
index 6a4f67d..01515b1 100644
--- a/WebKit/mac/WebCoreSupport/WebInspectorClient.mm
+++ b/WebKit/mac/WebCoreSupport/WebInspectorClient.mm
@@ -327,8 +327,8 @@ void WebInspectorClient::inspectorWindowObjectCleared()
_visible = YES;
// If no preference is set - default to an attached window. This is important for inspector LayoutTests.
- InspectorController::Setting shouldAttach = [_inspectedWebView page]->inspectorController()->setting(inspectorStartsAttachedName);
- _shouldAttach = (shouldAttach.type() == InspectorController::Setting::BooleanType) ? shouldAttach.booleanValue() : true;
+ String shouldAttach = [_inspectedWebView page]->inspectorController()->setting(inspectorStartsAttachedName);
+ _shouldAttach = shouldAttach != "false";
if (_shouldAttach) {
WebFrameView *frameView = [[_inspectedWebView mainFrame] frameView];
@@ -362,7 +362,7 @@ void WebInspectorClient::inspectorWindowObjectCleared()
if (_attachedToInspectedWebView)
return;
- [_inspectedWebView page]->inspectorController()->setSetting(inspectorStartsAttachedName, InspectorController::Setting(true));
+ [_inspectedWebView page]->inspectorController()->setSetting(inspectorStartsAttachedName, "true");
_movingWindows = YES;
[self close];
@@ -376,7 +376,7 @@ void WebInspectorClient::inspectorWindowObjectCleared()
if (!_attachedToInspectedWebView)
return;
- [_inspectedWebView page]->inspectorController()->setSetting(inspectorStartsAttachedName, InspectorController::Setting(false));
+ [_inspectedWebView page]->inspectorController()->setSetting(inspectorStartsAttachedName, "false");
_movingWindows = YES;
[self close];
diff --git a/WebKit/qt/ChangeLog b/WebKit/qt/ChangeLog
index e17b02f..4fef0ac 100644
--- a/WebKit/qt/ChangeLog
+++ b/WebKit/qt/ChangeLog
@@ -1,3 +1,18 @@
+2009-12-03 Pavel Feldman <pfeldman at 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/InspectorClientQt.cpp:
+ (WebCore::InspectorClientQt::populateSetting):
+ (WebCore::InspectorClientQt::storeSetting):
+ (WebCore::variantToSetting):
+ (WebCore::settingToVariant):
+ * WebCoreSupport/InspectorClientQt.h:
+
2009-12-03 Ben Murdoch <benm at google.com>
Reviewed by Brady Eidson.
diff --git a/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp b/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp
index 7a1bfd5..bafdb84 100644
--- a/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp
+++ b/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp
@@ -50,8 +50,8 @@ namespace WebCore {
static const QLatin1String settingStoragePrefix("Qt/QtWebKit/QWebInspector/");
static const QLatin1String settingStorageTypeSuffix(".type");
-static InspectorController::Setting variantToSetting(const QVariant& qvariant);
-static QVariant settingToVariant(const InspectorController::Setting& icSetting);
+static String variantToSetting(const QVariant& qvariant);
+static QVariant settingToVariant(const String& value);
class InspectorClientWebPage : public QWebPage {
Q_OBJECT
@@ -169,7 +169,7 @@ void InspectorClientQt::updateWindowTitle()
}
}
-void InspectorClientQt::populateSetting(const String& key, InspectorController::Setting& setting)
+void InspectorClientQt::populateSetting(const String& key, String* setting)
{
QSettings qsettings;
if (qsettings.status() == QSettings::AccessError) {
@@ -183,10 +183,10 @@ void InspectorClientQt::populateSetting(const String& key, InspectorController::
QString storedValueType = qsettings.value(settingKey + settingStorageTypeSuffix).toString();
QVariant storedValue = qsettings.value(settingKey);
storedValue.convert(QVariant::nameToType(storedValueType.toAscii().data()));
- setting = variantToSetting(storedValue);
+ *setting = variantToSetting(storedValue);
}
-void InspectorClientQt::storeSetting(const String& key, const InspectorController::Setting& setting)
+void InspectorClientQt::storeSetting(const String& key, const String& setting)
{
QSettings qsettings;
if (qsettings.status() == QSettings::AccessError) {
@@ -201,70 +201,24 @@ void InspectorClientQt::storeSetting(const String& key, const InspectorControlle
qsettings.setValue(settingKey + settingStorageTypeSuffix, QVariant::typeToName(valueToStore.type()));
}
-void InspectorClientQt::removeSetting(const String&)
+static String variantToSetting(const QVariant& qvariant)
{
- notImplemented();
-}
-
-static InspectorController::Setting variantToSetting(const QVariant& qvariant)
-{
- InspectorController::Setting retVal;
+ String retVal;
switch (qvariant.type()) {
case QVariant::Bool:
- retVal.set(qvariant.toBool());
- break;
- case QVariant::Double:
- retVal.set(qvariant.toDouble());
- break;
- case QVariant::Int:
- retVal.set((long)qvariant.toInt());
- break;
+ retVal = qvariant.toBool() ? "true" : "false";
case QVariant::String:
- retVal.set(qvariant.toString());
- break;
- case QVariant::StringList: {
- QStringList qsList = qvariant.toStringList();
- int listCount = qsList.count();
- Vector<String> vector(listCount);
- for (int i = 0; i < listCount; ++i)
- vector[i] = qsList[i];
- retVal.set(vector);
- break;
- }
+ retVal = qvariant.toString();
}
return retVal;
}
-static QVariant settingToVariant(const InspectorController::Setting& icSetting)
+static QVariant settingToVariant(const String& setting)
{
QVariant retVal;
-
- switch (icSetting.type()) {
- case InspectorController::Setting::StringType:
- retVal.setValue(static_cast<QString>(icSetting.string()));
- break;
- case InspectorController::Setting::StringVectorType: {
- const Vector<String>& vector = icSetting.stringVector();
- Vector<String>::const_iterator iter;
- QStringList qsList;
- for (iter = vector.begin(); iter != vector.end(); ++iter)
- qsList << *iter;
- retVal.setValue(qsList);
- break;
- }
- case InspectorController::Setting::DoubleType:
- retVal.setValue(icSetting.doubleValue());
- break;
- case InspectorController::Setting::IntegerType:
- retVal.setValue((int)icSetting.integerValue());
- break;
- case InspectorController::Setting::BooleanType:
- retVal.setValue(icSetting.booleanValue());
- break;
- }
-
+ retVal.setValue(static_cast<QString>(setting));
return retVal;
}
diff --git a/WebKit/qt/WebCoreSupport/InspectorClientQt.h b/WebKit/qt/WebCoreSupport/InspectorClientQt.h
index ccf8b69..923bab4 100644
--- a/WebKit/qt/WebCoreSupport/InspectorClientQt.h
+++ b/WebKit/qt/WebCoreSupport/InspectorClientQt.h
@@ -66,9 +66,8 @@ namespace WebCore {
virtual void hideHighlight();
virtual void inspectedURLChanged(const String& newURL);
- virtual void populateSetting(const String& key, InspectorController::Setting&);
- virtual void storeSetting(const String& key, const InspectorController::Setting&);
- virtual void removeSetting(const String& key);
+ virtual void populateSetting(const String& key, String* value);
+ virtual void storeSetting(const String& key, const String& value);
virtual void inspectorWindowObjectCleared();
diff --git a/WebKit/win/ChangeLog b/WebKit/win/ChangeLog
index 4692649..16abcae 100644
--- a/WebKit/win/ChangeLog
+++ b/WebKit/win/ChangeLog
@@ -1,3 +1,17 @@
+2009-12-03 Pavel Feldman <pfeldman at 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/WebInspectorClient.cpp:
+ (WebInspectorClient::attachWindow):
+ (WebInspectorClient::detachWindow):
+ (WebInspectorClient::showWindowWithoutNotifications):
+ * WebCoreSupport/WebInspectorClient.h:
+
2009-12-03 Ben Murdoch <benm at google.com>
Reviewed by Brady Eidson.
diff --git a/WebKit/win/WebCoreSupport/WebInspectorClient.cpp b/WebKit/win/WebCoreSupport/WebInspectorClient.cpp
index 75a76f2..0dd6e58 100644
--- a/WebKit/win/WebCoreSupport/WebInspectorClient.cpp
+++ b/WebKit/win/WebCoreSupport/WebInspectorClient.cpp
@@ -233,7 +233,7 @@ void WebInspectorClient::attachWindow()
if (m_attached)
return;
- m_inspectedWebView->page()->inspectorController()->setSetting(inspectorStartsAttachedName, InspectorController::Setting(true));
+ m_inspectedWebView->page()->inspectorController()->setSetting(inspectorStartsAttachedName, "true");
closeWindowWithoutNotifications();
showWindowWithoutNotifications();
@@ -244,7 +244,7 @@ void WebInspectorClient::detachWindow()
if (!m_attached)
return;
- m_inspectedWebView->page()->inspectorController()->setSetting(inspectorStartsAttachedName, InspectorController::Setting(false));
+ m_inspectedWebView->page()->inspectorController()->setSetting(inspectorStartsAttachedName, "false");
closeWindowWithoutNotifications();
showWindowWithoutNotifications();
@@ -350,8 +350,8 @@ void WebInspectorClient::showWindowWithoutNotifications()
ASSERT(m_inspectedWebViewHwnd);
// If no preference is set - default to an attached window. This is important for inspector LayoutTests.
- InspectorController::Setting shouldAttach = m_inspectedWebView->page()->inspectorController()->setting(inspectorStartsAttachedName);
- m_shouldAttachWhenShown = shouldAttach.type() == InspectorController::Setting::BooleanType ? shouldAttach.booleanValue() : true;
+ String shouldAttach = m_inspectedWebView->page()->inspectorController()->setting(inspectorStartsAttachedName);
+ m_shouldAttachWhenShown = shouldAttach != "false";
if (!m_shouldAttachWhenShown) {
// Put the Inspector's WebView inside our window and show it.
diff --git a/WebKit/win/WebCoreSupport/WebInspectorClient.h b/WebKit/win/WebCoreSupport/WebInspectorClient.h
index 8965e87..3f65b0a 100644
--- a/WebKit/win/WebCoreSupport/WebInspectorClient.h
+++ b/WebKit/win/WebCoreSupport/WebInspectorClient.h
@@ -66,9 +66,8 @@ public:
virtual void inspectedURLChanged(const WebCore::String& newURL);
- virtual void populateSetting(const WebCore::String& key, WebCore::InspectorController::Setting&);
- virtual void storeSetting(const WebCore::String& key, const WebCore::InspectorController::Setting&);
- virtual void removeSetting(const WebCore::String& key);
+ virtual void populateSetting(const WebCore::String& key, WebCore::String* value);
+ virtual void storeSetting(const WebCore::String& key, const WebCore::String& value);
virtual void inspectorWindowObjectCleared();
diff --git a/WebKit/wx/ChangeLog b/WebKit/wx/ChangeLog
index daba0b9..5d0ca0e 100644
--- a/WebKit/wx/ChangeLog
+++ b/WebKit/wx/ChangeLog
@@ -1,3 +1,16 @@
+2009-12-03 Pavel Feldman <pfeldman at 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
+
+ * WebKitSupport/InspectorClientWx.cpp:
+ (WebCore::InspectorClientWx::populateSetting):
+ (WebCore::InspectorClientWx::storeSetting):
+ * WebKitSupport/InspectorClientWx.h:
+
2009-12-03 Ben Murdoch <benm at google.com>
Reviewed by Brady Eidson.
diff --git a/WebKit/wx/WebKitSupport/InspectorClientWx.cpp b/WebKit/wx/WebKitSupport/InspectorClientWx.cpp
index d55ad04..ff21ae0 100644
--- a/WebKit/wx/WebKitSupport/InspectorClientWx.cpp
+++ b/WebKit/wx/WebKitSupport/InspectorClientWx.cpp
@@ -105,17 +105,12 @@ void InspectorClientWx::inspectedURLChanged(const String& newURL)
notImplemented();
}
-void InspectorClientWx::populateSetting(const String& key, InspectorController::Setting& setting)
+void InspectorClientWx::populateSetting(const String& key, String* setting)
{
notImplemented();
}
-void InspectorClientWx::storeSetting(const String& key, const InspectorController::Setting& setting)
-{
- notImplemented();
-}
-
-void InspectorClientWx::removeSetting(const String& key)
+void InspectorClientWx::storeSetting(const String& key, const String& setting)
{
notImplemented();
}
diff --git a/WebKit/wx/WebKitSupport/InspectorClientWx.h b/WebKit/wx/WebKitSupport/InspectorClientWx.h
index 182df1b..f905817 100644
--- a/WebKit/wx/WebKitSupport/InspectorClientWx.h
+++ b/WebKit/wx/WebKitSupport/InspectorClientWx.h
@@ -60,10 +60,9 @@ public:
virtual void inspectedURLChanged(const String& newURL);
- virtual void populateSetting(const String& key, InspectorController::Setting&);
- virtual void storeSetting(const String& key, const InspectorController::Setting&);
- virtual void removeSetting(const String& key);
-
+ virtual void populateSetting(const String& key, String* value);
+ virtual void storeSetting(const String& key, const String& value);
+
virtual void inspectorWindowObjectCleared();
};
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list