| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011, 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2011, 2012 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 1628 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1639 m_pagePopup = nullptr; | 1639 m_pagePopup = nullptr; |
| 1640 } | 1640 } |
| 1641 enablePopupMouseWheelEventListener(); | 1641 enablePopupMouseWheelEventListener(); |
| 1642 return m_pagePopup.get(); | 1642 return m_pagePopup.get(); |
| 1643 } | 1643 } |
| 1644 | 1644 |
| 1645 void WebViewImpl::closePagePopup(PagePopup* popup) | 1645 void WebViewImpl::closePagePopup(PagePopup* popup) |
| 1646 { | 1646 { |
| 1647 ASSERT(popup); | 1647 ASSERT(popup); |
| 1648 WebPagePopupImpl* popupImpl = toWebPagePopupImpl(popup); | 1648 WebPagePopupImpl* popupImpl = toWebPagePopupImpl(popup); |
| 1649 ASSERT(m_pagePopup.get() == popupImpl); | 1649 // It's possible that closePagePopup is called from pagePopup->closePopup() |
| 1650 if (m_pagePopup.get() != popupImpl) | 1650 // below because the main frame of the page popup can have the last |
| 1651 // reference to the pagePopupOwner Element. So, we clear m_pagePopup before |
| 1652 // pagePopup->closePopup(), and do nothing if m_pagepopup is nullptr. |
| 1653 ASSERT(!m_pagePopup || m_pagePopup.get() == popupImpl); |
| 1654 if (!m_pagePopup || m_pagePopup.get() != popupImpl) |
| 1651 return; | 1655 return; |
| 1652 m_pagePopup->closePopup(); | 1656 RefPtr<WebPagePopupImpl> pagePopup = m_pagePopup.release(); |
| 1653 m_pagePopup = nullptr; | 1657 pagePopup->closePopup(); |
| 1654 disablePopupMouseWheelEventListener(); | 1658 disablePopupMouseWheelEventListener(); |
| 1655 } | 1659 } |
| 1656 | 1660 |
| 1657 void WebViewImpl::cancelPagePopup() | 1661 void WebViewImpl::cancelPagePopup() |
| 1658 { | 1662 { |
| 1659 if (m_pagePopup) | 1663 if (m_pagePopup) |
| 1660 m_pagePopup->cancel(); | 1664 m_pagePopup->cancel(); |
| 1661 } | 1665 } |
| 1662 | 1666 |
| 1663 void WebViewImpl::enablePopupMouseWheelEventListener() | 1667 void WebViewImpl::enablePopupMouseWheelEventListener() |
| (...skipping 2837 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4501 if (m_pageColorOverlay) | 4505 if (m_pageColorOverlay) |
| 4502 m_pageColorOverlay->update(); | 4506 m_pageColorOverlay->update(); |
| 4503 if (m_inspectorOverlay) { | 4507 if (m_inspectorOverlay) { |
| 4504 PageOverlay* inspectorPageOverlay = m_inspectorOverlay->pageOverlay(); | 4508 PageOverlay* inspectorPageOverlay = m_inspectorOverlay->pageOverlay(); |
| 4505 if (inspectorPageOverlay) | 4509 if (inspectorPageOverlay) |
| 4506 inspectorPageOverlay->update(); | 4510 inspectorPageOverlay->update(); |
| 4507 } | 4511 } |
| 4508 } | 4512 } |
| 4509 | 4513 |
| 4510 } // namespace blink | 4514 } // namespace blink |
| OLD | NEW |