Title: [148270] trunk/Source/WebKit/blackberry
Revision
148270
Author
[email protected]
Date
2013-04-12 02:03:09 -0700 (Fri, 12 Apr 2013)

Log Message

[BlackBerry] Crash running layout tests when WebPage is destroyed
https://bugs.webkit.org/show_bug.cgi?id=114497

Patch by Carlos Garcia Campos <[email protected]> on 2013-04-12
Reviewed by Xan Lopez.

PR 324649
Internally reviewed by Konrad Piascik and Rob Buis.

Use a bool member to keep track of whether the inspector is
enabled or not instead of relaying on the enable developer extras
setting, that can be set in other places than enableWebInspector().

* Api/WebPage.cpp:
(BlackBerry::WebKit::WebPagePrivate::WebPagePrivate): Initialize
m_inspectorEnabled.
(BlackBerry::WebKit::WebPage::enableWebInspector): Return early if
inspector is already enabled and set m_inspectorEnabled to true.
(BlackBerry::WebKit::WebPage::disableWebInspector): Return early
if inspector is not enabled and set m_inspectorEnabled to false.
(BlackBerry::WebKit::WebPage::isWebInspectorEnabled): Check the
current value of m_inspectorEnabled instead of the developer
extras setting.
* Api/WebPage_p.h:
(WebPagePrivate): Add m_inspectorEnabled.

Modified Paths

Diff

Modified: trunk/Source/WebKit/blackberry/Api/WebPage.cpp (148269 => 148270)


--- trunk/Source/WebKit/blackberry/Api/WebPage.cpp	2013-04-12 08:55:23 UTC (rev 148269)
+++ trunk/Source/WebKit/blackberry/Api/WebPage.cpp	2013-04-12 09:03:09 UTC (rev 148270)
@@ -370,6 +370,7 @@
     , m_overflowExceedsContentsSize(false)
     , m_resetVirtualViewportOnCommitted(true)
     , m_shouldUseFixedDesktopMode(false)
+    , m_inspectorEnabled(false)
     , m_preventIdleDimmingCount(0)
 #if ENABLE(TOUCH_EVENTS)
     , m_preventDefaultOnTouchStart(false)
@@ -5156,26 +5157,29 @@
 
 void WebPage::enableWebInspector()
 {
-    if (!d->m_inspectorClient)
+    if (isWebInspectorEnabled() || !d->m_inspectorClient)
         return;
 
     d->m_page->inspectorController()->connectFrontend(d->m_inspectorClient);
     d->m_page->settings()->setDeveloperExtrasEnabled(true);
     d->setPreventsScreenDimming(true);
+    d->m_inspectorEnabled = true;
 }
 
 void WebPage::disableWebInspector()
 {
-    if (isWebInspectorEnabled()) {
-        d->m_page->inspectorController()->disconnectFrontend();
-        d->m_page->settings()->setDeveloperExtrasEnabled(false);
-        d->setPreventsScreenDimming(false);
-    }
+    if (!isWebInspectorEnabled())
+        return;
+
+    d->m_page->inspectorController()->disconnectFrontend();
+    d->m_page->settings()->setDeveloperExtrasEnabled(false);
+    d->setPreventsScreenDimming(false);
+    d->m_inspectorEnabled = false;
 }
 
 bool WebPage::isWebInspectorEnabled()
 {
-    return d->m_page->settings()->developerExtrasEnabled();
+    return d->m_inspectorEnabled;
 }
 
 void WebPage::enablePasswordEcho()

Modified: trunk/Source/WebKit/blackberry/Api/WebPage_p.h (148269 => 148270)


--- trunk/Source/WebKit/blackberry/Api/WebPage_p.h	2013-04-12 08:55:23 UTC (rev 148269)
+++ trunk/Source/WebKit/blackberry/Api/WebPage_p.h	2013-04-12 09:03:09 UTC (rev 148270)
@@ -479,6 +479,7 @@
     bool m_overflowExceedsContentsSize;
     bool m_resetVirtualViewportOnCommitted;
     bool m_shouldUseFixedDesktopMode;
+    bool m_inspectorEnabled;
     int m_preventIdleDimmingCount;
 
 #if ENABLE(TOUCH_EVENTS)

Modified: trunk/Source/WebKit/blackberry/ChangeLog (148269 => 148270)


--- trunk/Source/WebKit/blackberry/ChangeLog	2013-04-12 08:55:23 UTC (rev 148269)
+++ trunk/Source/WebKit/blackberry/ChangeLog	2013-04-12 09:03:09 UTC (rev 148270)
@@ -1,3 +1,30 @@
+2013-04-12  Carlos Garcia Campos  <[email protected]>
+
+        [BlackBerry] Crash running layout tests when WebPage is destroyed
+        https://bugs.webkit.org/show_bug.cgi?id=114497
+
+        Reviewed by Xan Lopez.
+
+        PR 324649
+        Internally reviewed by Konrad Piascik and Rob Buis.
+
+        Use a bool member to keep track of whether the inspector is
+        enabled or not instead of relaying on the enable developer extras
+        setting, that can be set in other places than enableWebInspector().
+
+        * Api/WebPage.cpp:
+        (BlackBerry::WebKit::WebPagePrivate::WebPagePrivate): Initialize
+        m_inspectorEnabled.
+        (BlackBerry::WebKit::WebPage::enableWebInspector): Return early if
+        inspector is already enabled and set m_inspectorEnabled to true.
+        (BlackBerry::WebKit::WebPage::disableWebInspector): Return early
+        if inspector is not enabled and set m_inspectorEnabled to false.
+        (BlackBerry::WebKit::WebPage::isWebInspectorEnabled): Check the
+        current value of m_inspectorEnabled instead of the developer
+        extras setting.
+        * Api/WebPage_p.h:
+        (WebPagePrivate): Add m_inspectorEnabled.
+
 2013-04-11  Jacky Jiang  <[email protected]>
 
         [BlackBerry] Initial scale changes depending on the order of page navigations
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to