Changeset 66103 in webkit
- Timestamp:
- Aug 26, 2010 8:38:08 AM (14 years ago)
- Location:
- trunk
- Files:
-
- 24 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r66101 r66103 1 2010-08-26 Yury Semikhatsky <yurys@chromium.org> 2 3 Reviewed by Pavel Feldman. 4 5 REGRESSION: Crash occurs at objc_msgSend when closing a window that is displaying the web inspector 6 https://bugs.webkit.org/show_bug.cgi?id=44230 7 8 * inspector/Inspector.idl: 9 * inspector/InspectorController.cpp: 10 (WebCore::InspectorController::inspectedPageDestroyed): 11 (WebCore::InspectorController::close): 12 * inspector/InspectorFrontendClient.h: 13 * inspector/InspectorFrontendHost.cpp: 14 (WebCore::InspectorFrontendHost::disconnectFromBackend): don't try to notify InspectorController 15 that frontend closes if InspectorController triggered the action. 16 * inspector/InspectorFrontendHost.h: 17 * inspector/InspectorFrontendHost.idl: 18 * inspector/front-end/InspectorFrontendHostStub.js: 19 (.WebInspector.InspectorFrontendHostStub.prototype.disconnectFromBackend): 20 * inspector/front-end/inspector.js: 21 (WebInspector.disconnectFromBackend): 22 1 23 2010-08-26 Ilya Tikhonovsky <loislo@chromium.org> 2 24 -
trunk/WebCore/inspector/Inspector.idl
r66087 r66103 41 41 [notify] void childNodeInserted(out long parentId, out long prevId, out Object node); 42 42 [notify] void childNodeRemoved(out long parentId, out long id); 43 [notify] void close();44 43 [notify] void didCommitLoad(); 45 44 [notify] void evaluateForTestInFrontend(out long testCallId, out String script); 46 [notify] void inspectedPageDestroyed();45 [notify] void disconnectFromBackend(); 47 46 [notify] void inspectedURLChanged(out String url); 48 47 [notify] void monitoringXHRWasEnabled(); -
trunk/WebCore/inspector/InspectorController.cpp
r66098 r66103 199 199 { 200 200 if (m_frontend) 201 m_frontend-> inspectedPageDestroyed();201 m_frontend->disconnectFromBackend(); 202 202 203 203 hideHighlight(); … … 538 538 if (!m_frontend) 539 539 return; 540 m_frontend->close(); 540 m_frontend->disconnectFromBackend(); 541 disconnectFrontend(); 541 542 } 542 543 -
trunk/WebCore/inspector/InspectorFrontendClient.h
r65021 r66103 54 54 virtual void bringToFront() = 0; 55 55 virtual void closeWindow() = 0; 56 virtual void disconnectFromBackend() = 0; 56 57 57 58 virtual void requestAttachWindow() = 0; -
trunk/WebCore/inspector/InspectorFrontendHost.cpp
r65816 r66103 167 167 } 168 168 169 void InspectorFrontendHost::disconnectFromBackend() 170 { 171 if (m_client) { 172 m_client->disconnectFromBackend(); 173 disconnectClient(); // Disconnect from client. 174 } 175 } 176 169 177 void InspectorFrontendHost::bringToFront() 170 178 { -
trunk/WebCore/inspector/InspectorFrontendHost.h
r64458 r66103 63 63 void requestDetachWindow(); 64 64 void closeWindow(); 65 void disconnectFromBackend(); 65 66 void bringToFront(); 66 67 void inspectedURLChanged(const String&); -
trunk/WebCore/inspector/InspectorFrontendHost.idl
r64458 r66103 35 35 void loaded(); 36 36 void closeWindow(); 37 void disconnectFromBackend(); 37 38 void bringToFront(); 38 39 void inspectedURLChanged(in DOMString newURL); -
trunk/WebCore/inspector/front-end/InspectorFrontendHostStub.js
r64458 r66103 65 65 }, 66 66 67 disconnectFromBackend: function() 68 { 69 this._windowVisible = false; 70 }, 71 67 72 attach: function() 68 73 { -
trunk/WebCore/inspector/front-end/inspector.js
r66087 r66103 714 714 } 715 715 716 WebInspector. inspectedPageDestroyed = function()717 { 718 WebInspector.close();716 WebInspector.disconnectFromBackend = function() 717 { 718 InspectorFrontendHost.disconnectFromBackend(); 719 719 } 720 720 -
trunk/WebKit/chromium/ChangeLog
r66102 r66103 1 2010-08-26 Yury Semikhatsky <yurys@chromium.org> 2 3 Reviewed by Pavel Feldman. 4 5 REGRESSION: Crash occurs at objc_msgSend when closing a window that is displaying the web inspector 6 https://bugs.webkit.org/show_bug.cgi?id=44230 7 8 * src/InspectorFrontendClientImpl.cpp: 9 (WebKit::InspectorFrontendClientImpl::disconnectFromBackend): 10 * src/InspectorFrontendClientImpl.h: 11 1 12 2010-08-26 Kent Tamura <tkent@chromium.org> 2 13 -
trunk/WebKit/chromium/src/InspectorFrontendClientImpl.cpp
r64534 r66103 106 106 } 107 107 108 void InspectorFrontendClientImpl::disconnectFromBackend() 109 { 110 m_client->closeWindow(); 111 } 112 108 113 void InspectorFrontendClientImpl::requestAttachWindow() 109 114 { -
trunk/WebKit/chromium/src/InspectorFrontendClientImpl.h
r65021 r66103 62 62 virtual void bringToFront(); 63 63 virtual void closeWindow(); 64 virtual void disconnectFromBackend(); 64 65 65 66 virtual void requestAttachWindow(); -
trunk/WebKit/gtk/ChangeLog
r66099 r66103 1 2010-08-26 Yury Semikhatsky <yurys@chromium.org> 2 3 Reviewed by Pavel Feldman. 4 5 REGRESSION: Crash occurs at objc_msgSend when closing a window that is displaying the web inspector 6 https://bugs.webkit.org/show_bug.cgi?id=44230 7 8 * WebCoreSupport/InspectorClientGtk.cpp: 9 (WebKit::notifyWebViewDestroyed): 10 (WebKit::InspectorFrontendClient::destroyInspectorWindow): 11 (WebKit::InspectorFrontendClient::closeWindow): 12 (WebKit::InspectorFrontendClient::disconnectFromBackend): 13 * WebCoreSupport/InspectorClientGtk.h: 14 1 15 2010-08-26 Gustavo Noronha Silva <gns@gnome.org> 2 16 -
trunk/WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp
r66024 r66103 37 37 static void notifyWebViewDestroyed(WebKitWebView* webView, InspectorFrontendClient* inspectorFrontendClient) 38 38 { 39 inspectorFrontendClient->destroyInspectorWindow( );39 inspectorFrontendClient->destroyInspectorWindow(true); 40 40 } 41 41 … … 275 275 } 276 276 277 void InspectorFrontendClient::destroyInspectorWindow( )277 void InspectorFrontendClient::destroyInspectorWindow(bool notifyInspectorController) 278 278 { 279 279 if (!m_webInspector) … … 285 285 m_inspectorWebView = 0; 286 286 287 core(m_inspectedWebView)->inspectorController()->disconnectFrontend(); 287 if (notifyInspectorController) 288 core(m_inspectedWebView)->inspectorController()->disconnectFrontend(); 288 289 289 290 if (m_inspectorClient) … … 327 328 void InspectorFrontendClient::closeWindow() 328 329 { 329 destroyInspectorWindow(); 330 destroyInspectorWindow(true); 331 } 332 333 void InspectorFrontendClient::disconnectFromBackend() 334 { 335 destroyInspectorWindow(false); 330 336 } 331 337 -
trunk/WebKit/gtk/WebCoreSupport/InspectorClientGtk.h
r65737 r66103 81 81 void disconnectInspectorClient() { m_inspectorClient = 0; } 82 82 83 void destroyInspectorWindow( );83 void destroyInspectorWindow(bool notifyInspectorController); 84 84 85 85 virtual WTF::String localizedStringsURL(); … … 89 89 virtual void bringToFront(); 90 90 virtual void closeWindow(); 91 virtual void disconnectFromBackend(); 91 92 92 93 virtual void attachWindow(); -
trunk/WebKit/mac/ChangeLog
r65978 r66103 1 2010-08-26 Yury Semikhatsky <yurys@chromium.org> 2 3 Reviewed by Pavel Feldman. 4 5 REGRESSION: Crash occurs at objc_msgSend when closing a window that is displaying the web inspector 6 https://bugs.webkit.org/show_bug.cgi?id=44230 7 8 * WebCoreSupport/WebInspectorClient.h: 9 * WebCoreSupport/WebInspectorClient.mm: 10 (WebInspectorFrontendClient::closeWindow): 11 (WebInspectorFrontendClient::disconnectFromBackend): 12 (-[WebInspectorWindowController windowShouldClose:]): 13 (-[WebInspectorWindowController destroyInspectorView:]): 14 1 15 2010-08-24 Eric Seidel <eric@webkit.org> 2 16 -
trunk/WebKit/mac/WebCoreSupport/WebInspectorClient.h
r65021 r66103 85 85 virtual void bringToFront(); 86 86 virtual void closeWindow(); 87 virtual void disconnectFromBackend(); 87 88 88 89 virtual void attachWindow(); -
trunk/WebKit/mac/WebCoreSupport/WebInspectorClient.mm
r65383 r66103 67 67 - (void)setInspectorClient:(WebInspectorClient*)inspectorClient; 68 68 - (void)setAttachedWindowHeight:(unsigned)height; 69 - (void)destroyInspectorView ;69 - (void)destroyInspectorView:(bool)notifyInspectorController; 70 70 @end 71 71 … … 170 170 void WebInspectorFrontendClient::closeWindow() 171 171 { 172 [m_windowController.get() destroyInspectorView]; 172 [m_windowController.get() destroyInspectorView:true]; 173 } 174 175 void WebInspectorFrontendClient::disconnectFromBackend() 176 { 177 [m_windowController.get() destroyInspectorView:false]; 173 178 } 174 179 … … 309 314 - (BOOL)windowShouldClose:(id)sender 310 315 { 311 [self destroyInspectorView ];316 [self destroyInspectorView:true]; 312 317 313 318 return YES; … … 440 445 } 441 446 442 - (void)destroyInspectorView 447 - (void)destroyInspectorView:(bool)notifyInspectorController 443 448 { 444 449 if (_destroyingInspectorView) … … 451 456 _visible = NO; 452 457 453 if (Page* inspectedPage = [_inspectedWebView page]) 454 inspectedPage->inspectorController()->disconnectFrontend(); 455 456 _inspectorClient->releaseFrontendPage(); 458 if (notifyInspectorController) { 459 if (Page* inspectedPage = [_inspectedWebView page]) 460 inspectedPage->inspectorController()->disconnectFrontend(); 461 462 _inspectorClient->releaseFrontendPage(); 463 } 457 464 458 465 [_webView close]; -
trunk/WebKit/qt/ChangeLog
r66096 r66103 1 2010-08-26 Yury Semikhatsky <yurys@chromium.org> 2 3 Reviewed by Pavel Feldman. 4 5 REGRESSION: Crash occurs at objc_msgSend when closing a window that is displaying the web inspector 6 https://bugs.webkit.org/show_bug.cgi?id=44230 7 8 * WebCoreSupport/InspectorClientQt.cpp: 9 (WebCore::InspectorFrontendClientQt::closeWindow): 10 (WebCore::InspectorFrontendClientQt::disconnectFromBackend): 11 (WebCore::InspectorFrontendClientQt::destroyInspectorView): 12 * WebCoreSupport/InspectorClientQt.h: 13 1 14 2010-08-26 Benjamin Poulain <benjamin.poulain@nokia.com> 2 15 -
trunk/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp
r63899 r66103 276 276 void InspectorFrontendClientQt::closeWindow() 277 277 { 278 destroyInspectorView(true); 279 } 280 281 void InspectorFrontendClientQt::disconnectFromBackend() 282 { 283 destroyInspectorView(false); 284 } 285 286 void InspectorFrontendClientQt::attachWindow() 287 { 288 notImplemented(); 289 } 290 291 void InspectorFrontendClientQt::detachWindow() 292 { 293 notImplemented(); 294 } 295 296 void InspectorFrontendClientQt::setAttachedWindowHeight(unsigned) 297 { 298 notImplemented(); 299 } 300 301 void InspectorFrontendClientQt::inspectedURLChanged(const String& newURL) 302 { 303 m_inspectedURL = newURL; 304 updateWindowTitle(); 305 } 306 307 void InspectorFrontendClientQt::updateWindowTitle() 308 { 309 if (m_inspectedWebPage->d->inspector) { 310 QString caption = QCoreApplication::translate("QWebPage", "Web Inspector - %2").arg(m_inspectedURL); 311 m_inspectedWebPage->d->inspector->setWindowTitle(caption); 312 } 313 } 314 315 void InspectorFrontendClientQt::destroyInspectorView(bool notifyInspectorController) 316 { 278 317 if (m_destroyingInspectorView) 279 318 return; 280 319 m_destroyingInspectorView = true; 281 320 282 // Clear reference from QWebInspector to the frontend view. 283 m_inspectedWebPage->d->getOrCreateInspector()->d->setFrontend(0); 321 if (notifyInspectorController) { 322 // Clear reference from QWebInspector to the frontend view. 323 m_inspectedWebPage->d->getOrCreateInspector()->d->setFrontend(0); 284 324 #if ENABLE(INSPECTOR) 285 m_inspectedWebPage->d->inspectorController()->disconnectFrontend();325 m_inspectedWebPage->d->inspectorController()->disconnectFrontend(); 286 326 #endif 287 m_inspectorClient->releaseFrontendPage(); 327 m_inspectorClient->releaseFrontendPage(); 328 } 288 329 289 330 // Clear pointer before deleting WebView to avoid recursive calls to its destructor. 290 331 OwnPtr<QWebView> inspectorView = m_inspectorView.release(); 291 332 } 292 293 void InspectorFrontendClientQt::attachWindow()294 {295 notImplemented();296 }297 298 void InspectorFrontendClientQt::detachWindow()299 {300 notImplemented();301 }302 303 void InspectorFrontendClientQt::setAttachedWindowHeight(unsigned)304 {305 notImplemented();306 }307 308 void InspectorFrontendClientQt::inspectedURLChanged(const String& newURL)309 {310 m_inspectedURL = newURL;311 updateWindowTitle();312 }313 314 void InspectorFrontendClientQt::updateWindowTitle()315 {316 if (m_inspectedWebPage->d->inspector) {317 QString caption = QCoreApplication::translate("QWebPage", "Web Inspector - %2").arg(m_inspectedURL);318 m_inspectedWebPage->d->inspector->setWindowTitle(caption);319 }320 }321 322 333 } 323 334 -
trunk/WebKit/qt/WebCoreSupport/InspectorClientQt.h
r65021 r66103 80 80 virtual void bringToFront(); 81 81 virtual void closeWindow(); 82 virtual void disconnectFromBackend(); 82 83 83 84 virtual void attachWindow(); … … 90 91 private: 91 92 void updateWindowTitle(); 93 void destroyInspectorView(bool notifyInspectorController); 92 94 QWebPage* m_inspectedWebPage; 93 95 OwnPtr<QWebView> m_inspectorView; -
trunk/WebKit/win/ChangeLog
r65952 r66103 1 2010-08-26 Yury Semikhatsky <yurys@chromium.org> 2 3 Reviewed by Pavel Feldman. 4 5 REGRESSION: Crash occurs at objc_msgSend when closing a window that is displaying the web inspector 6 https://bugs.webkit.org/show_bug.cgi?id=44230 7 8 * WebCoreSupport/WebInspectorClient.cpp: 9 (WebInspectorFrontendClient::~WebInspectorFrontendClient): 10 (WebInspectorFrontendClient::closeWindow): 11 (WebInspectorFrontendClient::disconnectFromBackend): 12 (WebInspectorFrontendClient::closeWindowWithoutNotifications): 13 (WebInspectorFrontendClient::destroyInspectorView): 14 * WebCoreSupport/WebInspectorClient.h: 15 1 16 2010-08-24 Ada Chan <adachan@apple.com> 2 17 -
trunk/WebKit/win/WebCoreSupport/WebInspectorClient.cpp
r61113 r66103 229 229 WebInspectorFrontendClient::~WebInspectorFrontendClient() 230 230 { 231 destroyInspectorView( );231 destroyInspectorView(true); 232 232 } 233 233 … … 261 261 void WebInspectorFrontendClient::closeWindow() 262 262 { 263 destroyInspectorView(); 263 destroyInspectorView(true); 264 } 265 266 void WebInspectorFrontendClient::disconnectFromBackend() 267 { 268 destroyInspectorView(false); 264 269 } 265 270 … … 345 350 if (SUCCEEDED(m_inspectedWebView->hostWindow((OLE_HANDLE*)&hostWindow))) 346 351 SendMessage(hostWindow, WM_SIZE, 0, 0); 347 348 m_inspectorClient->updateHighlight();349 352 } 350 353 … … 398 401 } 399 402 400 void WebInspectorFrontendClient::destroyInspectorView( )403 void WebInspectorFrontendClient::destroyInspectorView(bool notifyInspectorController) 401 404 { 402 405 if (m_destroyingInspectorView) … … 404 407 m_destroyingInspectorView = true; 405 408 406 m_inspectedWebView->page()->inspectorController()->disconnectFrontend();407 409 408 410 closeWindowWithoutNotifications(); 409 m_inspectorClient->frontendClosing(); 411 412 if (notifyInspectorController) { 413 m_inspectedWebView->page()->inspectorController()->disconnectFrontend(); 414 m_inspectorClient->updateHighlight(); 415 m_inspectorClient->frontendClosing(); 416 } 410 417 ::DestroyWindow(m_frontendHwnd); 411 418 } -
trunk/WebKit/win/WebCoreSupport/WebInspectorClient.h
r65021 r66103 94 94 virtual void bringToFront(); 95 95 virtual void closeWindow(); 96 virtual void disconnectFromBackend(); 96 97 97 98 virtual void attachWindow(); … … 107 108 void showWindowWithoutNotifications(); 108 109 109 void destroyInspectorView( );110 void destroyInspectorView(bool notifyInspectorController); 110 111 111 112 void updateWindowTitle();
Note: See TracChangeset
for help on using the changeset viewer.