OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2009 Google Inc. All rights reserved. | 2 * Copyright (C) 2009 Google Inc. All rights reserved. |
3 * Copyright (C) 2011 Apple Inc. All rights reserved. | 3 * Copyright (C) 2011 Apple Inc. All rights reserved. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions are | 6 * modification, are permitted provided that the following conditions are |
7 * met: | 7 * met: |
8 * | 8 * |
9 * * Redistributions of source code must retain the above copyright | 9 * * Redistributions of source code must retain the above copyright |
10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
274 // FIXME | 274 // FIXME |
275 } | 275 } |
276 | 276 |
277 void FrameLoaderClientImpl::detachedFromParent2() | 277 void FrameLoaderClientImpl::detachedFromParent2() |
278 { | 278 { |
279 // Nothing to do here. | 279 // Nothing to do here. |
280 } | 280 } |
281 | 281 |
282 void FrameLoaderClientImpl::detachedFromParent3() | 282 void FrameLoaderClientImpl::detachedFromParent3() |
283 { | 283 { |
| 284 // If we were reading data into a plugin, drop our reference to it. If we |
| 285 // don't do this then it may end up out-living the rest of the page, which |
| 286 // leads to problems if the plugin's destructor tries to script things. |
| 287 m_pluginWidget = 0; |
| 288 |
284 // Close down the proxy. The purpose of this change is to make the | 289 // Close down the proxy. The purpose of this change is to make the |
285 // call to ScriptController::clearWindowShell a no-op when called from | 290 // call to ScriptController::clearWindowShell a no-op when called from |
286 // Frame::pageDestroyed. Without this change, this call to clearWindowShell | 291 // Frame::pageDestroyed. Without this change, this call to clearWindowShell |
287 // will cause a crash. If you remove/modify this, just ensure that you can | 292 // will cause a crash. If you remove/modify this, just ensure that you can |
288 // go to a page and then navigate to a new page without getting any asserts | 293 // go to a page and then navigate to a new page without getting any asserts |
289 // or crashes. | 294 // or crashes. |
290 m_webFrame->frame()->script()->proxy()->clearForClose(); | 295 m_webFrame->frame()->script()->proxy()->clearForClose(); |
291 | 296 |
292 // Alert the client that the frame is being detached. This is the last | 297 // Alert the client that the frame is being detached. This is the last |
293 // chance we have to communicate with the client. | 298 // chance we have to communicate with the client. |
(...skipping 1306 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1600 } | 1605 } |
1601 return ds->releasePluginLoadObserver(); | 1606 return ds->releasePluginLoadObserver(); |
1602 } | 1607 } |
1603 | 1608 |
1604 PassRefPtr<FrameNetworkingContext> FrameLoaderClientImpl::createNetworkingContex
t() | 1609 PassRefPtr<FrameNetworkingContext> FrameLoaderClientImpl::createNetworkingContex
t() |
1605 { | 1610 { |
1606 return FrameNetworkingContextImpl::create(m_webFrame->frame()); | 1611 return FrameNetworkingContextImpl::create(m_webFrame->frame()); |
1607 } | 1612 } |
1608 | 1613 |
1609 } // namespace WebKit | 1614 } // namespace WebKit |
OLD | NEW |