| 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 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 144 #include "public/web/WebWindowFeatures.h" | 144 #include "public/web/WebWindowFeatures.h" |
| 145 #include "web/CompositionUnderlineVectorBuilder.h" | 145 #include "web/CompositionUnderlineVectorBuilder.h" |
| 146 #include "web/ContextFeaturesClientImpl.h" | 146 #include "web/ContextFeaturesClientImpl.h" |
| 147 #include "web/DatabaseClientImpl.h" | 147 #include "web/DatabaseClientImpl.h" |
| 148 #include "web/DevToolsEmulator.h" | 148 #include "web/DevToolsEmulator.h" |
| 149 #include "web/FullscreenController.h" | 149 #include "web/FullscreenController.h" |
| 150 #include "web/GraphicsLayerFactoryChromium.h" | 150 #include "web/GraphicsLayerFactoryChromium.h" |
| 151 #include "web/InspectorOverlayImpl.h" | 151 #include "web/InspectorOverlayImpl.h" |
| 152 #include "web/LinkHighlight.h" | 152 #include "web/LinkHighlight.h" |
| 153 #include "web/NavigatorContentUtilsClientImpl.h" | 153 #include "web/NavigatorContentUtilsClientImpl.h" |
| 154 #include "web/PopupContainer.h" | |
| 155 #include "web/PrerendererClientImpl.h" | 154 #include "web/PrerendererClientImpl.h" |
| 156 #include "web/ResizeViewportAnchor.h" | 155 #include "web/ResizeViewportAnchor.h" |
| 157 #include "web/RotationViewportAnchor.h" | 156 #include "web/RotationViewportAnchor.h" |
| 158 #include "web/SpeechRecognitionClientProxy.h" | 157 #include "web/SpeechRecognitionClientProxy.h" |
| 159 #include "web/StorageQuotaClientImpl.h" | 158 #include "web/StorageQuotaClientImpl.h" |
| 160 #include "web/ValidationMessageClientImpl.h" | 159 #include "web/ValidationMessageClientImpl.h" |
| 161 #include "web/ViewportAnchor.h" | 160 #include "web/ViewportAnchor.h" |
| 162 #include "web/WebDevToolsAgentImpl.h" | 161 #include "web/WebDevToolsAgentImpl.h" |
| 163 #include "web/WebInputEventConversion.h" | 162 #include "web/WebInputEventConversion.h" |
| 164 #include "web/WebLocalFrameImpl.h" | 163 #include "web/WebLocalFrameImpl.h" |
| 165 #include "web/WebPagePopupImpl.h" | 164 #include "web/WebPagePopupImpl.h" |
| 166 #include "web/WebPluginContainerImpl.h" | 165 #include "web/WebPluginContainerImpl.h" |
| 167 #include "web/WebPopupMenuImpl.h" | |
| 168 #include "web/WebRemoteFrameImpl.h" | 166 #include "web/WebRemoteFrameImpl.h" |
| 169 #include "web/WebSettingsImpl.h" | 167 #include "web/WebSettingsImpl.h" |
| 170 #include "web/WorkerGlobalScopeProxyProviderImpl.h" | 168 #include "web/WorkerGlobalScopeProxyProviderImpl.h" |
| 171 #include "web/painting/ContinuousPainter.h" | 169 #include "web/painting/ContinuousPainter.h" |
| 172 #include "wtf/CurrentTime.h" | 170 #include "wtf/CurrentTime.h" |
| 173 #include "wtf/RefPtr.h" | 171 #include "wtf/RefPtr.h" |
| 174 #include "wtf/TemporaryChange.h" | 172 #include "wtf/TemporaryChange.h" |
| 175 | 173 |
| 176 #if USE(DEFAULT_RENDER_THEME) | 174 #if USE(DEFAULT_RENDER_THEME) |
| 177 #include "core/layout/LayoutThemeDefault.h" | 175 #include "core/layout/LayoutThemeDefault.h" |
| (...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 497 } | 495 } |
| 498 | 496 |
| 499 void WebViewImpl::handleMouseLeave(LocalFrame& mainFrame, const WebMouseEvent& e
vent) | 497 void WebViewImpl::handleMouseLeave(LocalFrame& mainFrame, const WebMouseEvent& e
vent) |
| 500 { | 498 { |
| 501 m_client->setMouseOverURL(WebURL()); | 499 m_client->setMouseOverURL(WebURL()); |
| 502 PageWidgetEventHandler::handleMouseLeave(mainFrame, event); | 500 PageWidgetEventHandler::handleMouseLeave(mainFrame, event); |
| 503 } | 501 } |
| 504 | 502 |
| 505 void WebViewImpl::handleMouseDown(LocalFrame& mainFrame, const WebMouseEvent& ev
ent) | 503 void WebViewImpl::handleMouseDown(LocalFrame& mainFrame, const WebMouseEvent& ev
ent) |
| 506 { | 504 { |
| 507 // If there is a popup open, close it as the user is clicking on the page (o
utside of the | 505 // If there is a popup open, close it as the user is clicking on the page |
| 508 // popup). We also save it so we can prevent a click on an element from imme
diately | 506 // (outside of the popup). We also save it so we can prevent a click on an |
| 509 // reopening the same popup. | 507 // element from immediately reopening the same popup. |
| 510 RefPtrWillBeRawPtr<PopupContainer> selectPopup = nullptr; | |
| 511 RefPtr<WebPagePopupImpl> pagePopup; | 508 RefPtr<WebPagePopupImpl> pagePopup; |
| 512 if (event.button == WebMouseEvent::ButtonLeft) { | 509 if (event.button == WebMouseEvent::ButtonLeft) { |
| 513 selectPopup = m_selectPopup; | |
| 514 pagePopup = m_pagePopup; | 510 pagePopup = m_pagePopup; |
| 515 hidePopups(); | 511 hidePopups(); |
| 516 ASSERT(!m_selectPopup); | |
| 517 ASSERT(!m_pagePopup); | 512 ASSERT(!m_pagePopup); |
| 518 } | 513 } |
| 519 | 514 |
| 520 m_lastMouseDownPoint = WebPoint(event.x, event.y); | 515 m_lastMouseDownPoint = WebPoint(event.x, event.y); |
| 521 | 516 |
| 522 // Take capture on a mouse down on a plugin so we can send it mouse events. | 517 // Take capture on a mouse down on a plugin so we can send it mouse events. |
| 523 // If the hit node is a plugin but a scrollbar is over it don't start mouse | 518 // If the hit node is a plugin but a scrollbar is over it don't start mouse |
| 524 // capture because it will interfere with the scrollbar receiving events. | 519 // capture because it will interfere with the scrollbar receiving events. |
| 525 IntPoint point(event.x, event.y); | 520 IntPoint point(event.x, event.y); |
| 526 if (event.button == WebMouseEvent::ButtonLeft && m_page->mainFrame()->isLoca
lFrame()) { | 521 if (event.button == WebMouseEvent::ButtonLeft && m_page->mainFrame()->isLoca
lFrame()) { |
| 527 point = m_page->deprecatedLocalMainFrame()->view()->rootFrameToContents(
point); | 522 point = m_page->deprecatedLocalMainFrame()->view()->rootFrameToContents(
point); |
| 528 HitTestResult result(m_page->deprecatedLocalMainFrame()->eventHandler().
hitTestResultAtPoint(point)); | 523 HitTestResult result(m_page->deprecatedLocalMainFrame()->eventHandler().
hitTestResultAtPoint(point)); |
| 529 result.setToShadowHostIfInUserAgentShadowRoot(); | 524 result.setToShadowHostIfInUserAgentShadowRoot(); |
| 530 Node* hitNode = result.innerNodeOrImageMapImage(); | 525 Node* hitNode = result.innerNodeOrImageMapImage(); |
| 531 | 526 |
| 532 if (!result.scrollbar() && hitNode && hitNode->layoutObject() && hitNode
->layoutObject()->isEmbeddedObject()) { | 527 if (!result.scrollbar() && hitNode && hitNode->layoutObject() && hitNode
->layoutObject()->isEmbeddedObject()) { |
| 533 m_mouseCaptureNode = hitNode; | 528 m_mouseCaptureNode = hitNode; |
| 534 TRACE_EVENT_ASYNC_BEGIN0("input", "capturing mouse", this); | 529 TRACE_EVENT_ASYNC_BEGIN0("input", "capturing mouse", this); |
| 535 } | 530 } |
| 536 } | 531 } |
| 537 | 532 |
| 538 PageWidgetEventHandler::handleMouseDown(mainFrame, event); | 533 PageWidgetEventHandler::handleMouseDown(mainFrame, event); |
| 539 | 534 |
| 540 if (event.button == WebMouseEvent::ButtonLeft && m_mouseCaptureNode) | 535 if (event.button == WebMouseEvent::ButtonLeft && m_mouseCaptureNode) |
| 541 m_mouseCaptureGestureToken = mainFrame.eventHandler().takeLastMouseDownG
estureToken(); | 536 m_mouseCaptureGestureToken = mainFrame.eventHandler().takeLastMouseDownG
estureToken(); |
| 542 | 537 |
| 543 if (m_selectPopup && m_selectPopup == selectPopup) { | |
| 544 // That click triggered a select popup which is the same as the one that | |
| 545 // was showing before the click. It means the user clicked the select | |
| 546 // while the popup was showing, and as a result we first closed then | |
| 547 // immediately reopened the select popup. It needs to be closed. | |
| 548 hideSelectPopup(); | |
| 549 } | |
| 550 | |
| 551 if (m_pagePopup && pagePopup && m_pagePopup->hasSamePopupClient(pagePopup.ge
t())) { | 538 if (m_pagePopup && pagePopup && m_pagePopup->hasSamePopupClient(pagePopup.ge
t())) { |
| 552 // That click triggered a page popup that is the same as the one we just
closed. | 539 // That click triggered a page popup that is the same as the one we just
closed. |
| 553 // It needs to be closed. | 540 // It needs to be closed. |
| 554 cancelPagePopup(); | 541 cancelPagePopup(); |
| 555 } | 542 } |
| 556 | 543 |
| 557 // Dispatch the contextmenu event regardless of if the click was swallowed. | 544 // Dispatch the contextmenu event regardless of if the click was swallowed. |
| 558 if (!page()->settings().showContextMenuOnMouseUp()) { | 545 if (!page()->settings().showContextMenuOnMouseUp()) { |
| 559 #if OS(MACOSX) | 546 #if OS(MACOSX) |
| 560 if (event.button == WebMouseEvent::ButtonRight | 547 if (event.button == WebMouseEvent::ButtonRight |
| (...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 765 } | 752 } |
| 766 | 753 |
| 767 switch (event.type) { | 754 switch (event.type) { |
| 768 case WebInputEvent::GestureTap: { | 755 case WebInputEvent::GestureTap: { |
| 769 m_client->cancelScheduledContentIntents(); | 756 m_client->cancelScheduledContentIntents(); |
| 770 if (detectContentOnTouch(targetedEvent)) { | 757 if (detectContentOnTouch(targetedEvent)) { |
| 771 eventSwallowed = true; | 758 eventSwallowed = true; |
| 772 break; | 759 break; |
| 773 } | 760 } |
| 774 | 761 |
| 775 RefPtrWillBeRawPtr<PopupContainer> selectPopup = nullptr; | |
| 776 selectPopup = m_selectPopup; | |
| 777 hideSelectPopup(); | |
| 778 ASSERT(!m_selectPopup); | |
| 779 | |
| 780 // Don't trigger a disambiguation popup on sites designed for mobile dev
ices. | 762 // Don't trigger a disambiguation popup on sites designed for mobile dev
ices. |
| 781 // Instead, assume that the page has been designed with big enough butto
ns and links. | 763 // Instead, assume that the page has been designed with big enough butto
ns and links. |
| 782 // Don't trigger a disambiguation popup when screencasting, since it's i
mplemented outside of | 764 // Don't trigger a disambiguation popup when screencasting, since it's i
mplemented outside of |
| 783 // compositor pipeline and is not being screencasted itself. This leads
to bad user experience. | 765 // compositor pipeline and is not being screencasted itself. This leads
to bad user experience. |
| 784 WebDevToolsAgentImpl* devTools = mainFrameDevToolsAgentImpl(); | 766 WebDevToolsAgentImpl* devTools = mainFrameDevToolsAgentImpl(); |
| 785 bool screencastEnabled = devTools && devTools->screencastEnabled(); | 767 bool screencastEnabled = devTools && devTools->screencastEnabled(); |
| 786 if (event.data.tap.width > 0 && !shouldDisableDesktopWorkarounds() && !s
creencastEnabled) { | 768 if (event.data.tap.width > 0 && !shouldDisableDesktopWorkarounds() && !s
creencastEnabled) { |
| 787 IntRect boundingBox(page()->frameHost().pinchViewport().viewportToRo
otFrame(IntRect( | 769 IntRect boundingBox(page()->frameHost().pinchViewport().viewportToRo
otFrame(IntRect( |
| 788 event.x - event.data.tap.width / 2, | 770 event.x - event.data.tap.width / 2, |
| 789 event.y - event.data.tap.height / 2, | 771 event.y - event.data.tap.height / 2, |
| (...skipping 16 matching lines...) Expand all Loading... |
| 806 for (size_t i = 0; i < m_linkHighlights.size(); ++i) | 788 for (size_t i = 0; i < m_linkHighlights.size(); ++i) |
| 807 m_linkHighlights[i]->startHighlightAnimationIfNeeded(); | 789 m_linkHighlights[i]->startHighlightAnimationIfNeeded(); |
| 808 eventSwallowed = true; | 790 eventSwallowed = true; |
| 809 eventCancelled = true; | 791 eventCancelled = true; |
| 810 break; | 792 break; |
| 811 } | 793 } |
| 812 } | 794 } |
| 813 } | 795 } |
| 814 | 796 |
| 815 eventSwallowed = mainFrameImpl()->frame()->eventHandler().handleGestureE
vent(targetedEvent); | 797 eventSwallowed = mainFrameImpl()->frame()->eventHandler().handleGestureE
vent(targetedEvent); |
| 816 | |
| 817 if (m_selectPopup && m_selectPopup == selectPopup) { | |
| 818 // That tap triggered a select popup which is the same as the one th
at | |
| 819 // was showing before the tap. It means the user tapped the select | |
| 820 // while the popup was showing, and as a result we first closed then | |
| 821 // immediately reopened the select popup. It needs to be closed. | |
| 822 hideSelectPopup(); | |
| 823 } | |
| 824 | |
| 825 break; | 798 break; |
| 826 } | 799 } |
| 827 case WebInputEvent::GestureTwoFingerTap: | 800 case WebInputEvent::GestureTwoFingerTap: |
| 828 case WebInputEvent::GestureLongPress: | 801 case WebInputEvent::GestureLongPress: |
| 829 case WebInputEvent::GestureLongTap: { | 802 case WebInputEvent::GestureLongTap: { |
| 830 if (!mainFrameImpl() || !mainFrameImpl()->frameView()) | 803 if (!mainFrameImpl() || !mainFrameImpl()->frameView()) |
| 831 break; | 804 break; |
| 832 | 805 |
| 833 m_client->cancelScheduledContentIntents(); | 806 m_client->cancelScheduledContentIntents(); |
| 834 m_page->contextMenuController().clearContextMenu(); | 807 m_page->contextMenuController().clearContextMenu(); |
| (...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1025 endActiveFlingAnimation(); | 998 endActiveFlingAnimation(); |
| 1026 | 999 |
| 1027 // Please refer to the comments explaining the m_suppressNextKeypressEvent | 1000 // Please refer to the comments explaining the m_suppressNextKeypressEvent |
| 1028 // member. | 1001 // member. |
| 1029 // The m_suppressNextKeypressEvent is set if the KeyDown is handled by | 1002 // The m_suppressNextKeypressEvent is set if the KeyDown is handled by |
| 1030 // Webkit. A keyDown event is typically associated with a keyPress(char) | 1003 // Webkit. A keyDown event is typically associated with a keyPress(char) |
| 1031 // event and a keyUp event. We reset this flag here as this is a new keyDown | 1004 // event and a keyUp event. We reset this flag here as this is a new keyDown |
| 1032 // event. | 1005 // event. |
| 1033 m_suppressNextKeypressEvent = false; | 1006 m_suppressNextKeypressEvent = false; |
| 1034 | 1007 |
| 1035 // If there is a select popup, it should be the one processing the event, | 1008 // If there is a popup, it should be the one processing the event, not the |
| 1036 // not the page. | 1009 // page. |
| 1037 if (m_selectPopup) | |
| 1038 return m_selectPopup->handleKeyEvent(PlatformKeyboardEventBuilder(event)
); | |
| 1039 if (m_pagePopup) { | 1010 if (m_pagePopup) { |
| 1040 m_pagePopup->handleKeyEvent(PlatformKeyboardEventBuilder(event)); | 1011 m_pagePopup->handleKeyEvent(PlatformKeyboardEventBuilder(event)); |
| 1041 // We need to ignore the next Char event after this otherwise pressing | 1012 // We need to ignore the next Char event after this otherwise pressing |
| 1042 // enter when selecting an item in the popup will go to the page. | 1013 // enter when selecting an item in the popup will go to the page. |
| 1043 if (WebInputEvent::RawKeyDown == event.type) | 1014 if (WebInputEvent::RawKeyDown == event.type) |
| 1044 m_suppressNextKeypressEvent = true; | 1015 m_suppressNextKeypressEvent = true; |
| 1045 return true; | 1016 return true; |
| 1046 } | 1017 } |
| 1047 | 1018 |
| 1048 RefPtrWillBeRawPtr<Frame> focusedFrame = focusedCoreFrame(); | 1019 RefPtrWillBeRawPtr<Frame> focusedFrame = focusedCoreFrame(); |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1105 ASSERT(event.type == WebInputEvent::Char); | 1076 ASSERT(event.type == WebInputEvent::Char); |
| 1106 | 1077 |
| 1107 // Please refer to the comments explaining the m_suppressNextKeypressEvent | 1078 // Please refer to the comments explaining the m_suppressNextKeypressEvent |
| 1108 // member. The m_suppressNextKeypressEvent is set if the KeyDown is | 1079 // member. The m_suppressNextKeypressEvent is set if the KeyDown is |
| 1109 // handled by Webkit. A keyDown event is typically associated with a | 1080 // handled by Webkit. A keyDown event is typically associated with a |
| 1110 // keyPress(char) event and a keyUp event. We reset this flag here as it | 1081 // keyPress(char) event and a keyUp event. We reset this flag here as it |
| 1111 // only applies to the current keyPress event. | 1082 // only applies to the current keyPress event. |
| 1112 bool suppress = m_suppressNextKeypressEvent; | 1083 bool suppress = m_suppressNextKeypressEvent; |
| 1113 m_suppressNextKeypressEvent = false; | 1084 m_suppressNextKeypressEvent = false; |
| 1114 | 1085 |
| 1115 // If there is a select popup, it should be the one processing the event, | 1086 // If there is a popup, it should be the one processing the event, not the |
| 1116 // not the page. | 1087 // page. |
| 1117 if (m_selectPopup) | |
| 1118 return m_selectPopup->handleKeyEvent(PlatformKeyboardEventBuilder(event)
); | |
| 1119 if (m_pagePopup) | 1088 if (m_pagePopup) |
| 1120 return m_pagePopup->handleKeyEvent(PlatformKeyboardEventBuilder(event)); | 1089 return m_pagePopup->handleKeyEvent(PlatformKeyboardEventBuilder(event)); |
| 1121 | 1090 |
| 1122 LocalFrame* frame = toLocalFrame(focusedCoreFrame()); | 1091 LocalFrame* frame = toLocalFrame(focusedCoreFrame()); |
| 1123 if (!frame) | 1092 if (!frame) |
| 1124 return suppress; | 1093 return suppress; |
| 1125 | 1094 |
| 1126 EventHandler& handler = frame->eventHandler(); | 1095 EventHandler& handler = frame->eventHandler(); |
| 1127 | 1096 |
| 1128 PlatformKeyboardEventBuilder evt(event); | 1097 PlatformKeyboardEventBuilder evt(event); |
| (...skipping 487 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1616 *scrollDirection = ScrollDown; | 1585 *scrollDirection = ScrollDown; |
| 1617 *scrollGranularity = ScrollByPage; | 1586 *scrollGranularity = ScrollByPage; |
| 1618 break; | 1587 break; |
| 1619 default: | 1588 default: |
| 1620 return false; | 1589 return false; |
| 1621 } | 1590 } |
| 1622 | 1591 |
| 1623 return true; | 1592 return true; |
| 1624 } | 1593 } |
| 1625 | 1594 |
| 1626 void WebViewImpl::hideSelectPopup() | |
| 1627 { | |
| 1628 if (m_selectPopup) | |
| 1629 m_selectPopup->hidePopup(); | |
| 1630 } | |
| 1631 | |
| 1632 void WebViewImpl::popupOpened(PopupContainer* popupContainer) | |
| 1633 { | |
| 1634 ASSERT(!m_selectPopup); | |
| 1635 m_selectPopup = popupContainer; | |
| 1636 enablePopupMouseWheelEventListener(); | |
| 1637 } | |
| 1638 | |
| 1639 void WebViewImpl::popupClosed(PopupContainer* popupContainer) | |
| 1640 { | |
| 1641 ASSERT(m_selectPopup); | |
| 1642 m_selectPopup = nullptr; | |
| 1643 disablePopupMouseWheelEventListener(); | |
| 1644 } | |
| 1645 | |
| 1646 PagePopup* WebViewImpl::openPagePopup(PagePopupClient* client) | 1595 PagePopup* WebViewImpl::openPagePopup(PagePopupClient* client) |
| 1647 { | 1596 { |
| 1648 ASSERT(client); | 1597 ASSERT(client); |
| 1649 if (hasOpenedPopup()) | 1598 if (hasOpenedPopup()) |
| 1650 hidePopups(); | 1599 hidePopups(); |
| 1651 ASSERT(!m_pagePopup); | 1600 ASSERT(!m_pagePopup); |
| 1652 | 1601 |
| 1653 WebWidget* popupWidget = m_client->createPopupMenu(WebPopupTypePage); | 1602 WebWidget* popupWidget = m_client->createPopupMenu(WebPopupTypePage); |
| 1654 ASSERT(popupWidget); | 1603 ASSERT(popupWidget); |
| 1655 m_pagePopup = toWebPagePopupImpl(popupWidget); | 1604 m_pagePopup = toWebPagePopupImpl(popupWidget); |
| (...skipping 2151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3807 | 3756 |
| 3808 RefPtrWillBeRawPtr<Range> range = Range::create(*startPosition.document(), s
tartPosition, endPosition); | 3757 RefPtrWillBeRawPtr<Range> range = Range::create(*startPosition.document(), s
tartPosition, endPosition); |
| 3809 if (!range) | 3758 if (!range) |
| 3810 return; | 3759 return; |
| 3811 | 3760 |
| 3812 clipHtml = createMarkup(range.get(), AnnotateForInterchange, ConvertBlocksTo
Inlines::NotConvert, ResolveNonLocalURLs); | 3761 clipHtml = createMarkup(range.get(), AnnotateForInterchange, ConvertBlocksTo
Inlines::NotConvert, ResolveNonLocalURLs); |
| 3813 } | 3762 } |
| 3814 | 3763 |
| 3815 void WebViewImpl::hidePopups() | 3764 void WebViewImpl::hidePopups() |
| 3816 { | 3765 { |
| 3817 hideSelectPopup(); | |
| 3818 cancelPagePopup(); | 3766 cancelPagePopup(); |
| 3819 } | 3767 } |
| 3820 | 3768 |
| 3821 void WebViewImpl::setIsTransparent(bool isTransparent) | 3769 void WebViewImpl::setIsTransparent(bool isTransparent) |
| 3822 { | 3770 { |
| 3823 // Set any existing frames to be transparent. | 3771 // Set any existing frames to be transparent. |
| 3824 Frame* frame = m_page->mainFrame(); | 3772 Frame* frame = m_page->mainFrame(); |
| 3825 while (frame) { | 3773 while (frame) { |
| 3826 if (frame->isLocalFrame()) | 3774 if (frame->isLocalFrame()) |
| 3827 toLocalFrame(frame)->view()->setTransparent(isTransparent); | 3775 toLocalFrame(frame)->view()->setTransparent(isTransparent); |
| (...skipping 629 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4457 { | 4405 { |
| 4458 WebGLRenderingContext::forceNextWebGLContextCreationToFail(); | 4406 WebGLRenderingContext::forceNextWebGLContextCreationToFail(); |
| 4459 } | 4407 } |
| 4460 | 4408 |
| 4461 void WebViewImpl::forceNextDrawingBufferCreationToFail() | 4409 void WebViewImpl::forceNextDrawingBufferCreationToFail() |
| 4462 { | 4410 { |
| 4463 DrawingBuffer::forceNextDrawingBufferCreationToFail(); | 4411 DrawingBuffer::forceNextDrawingBufferCreationToFail(); |
| 4464 } | 4412 } |
| 4465 | 4413 |
| 4466 } // namespace blink | 4414 } // namespace blink |
| OLD | NEW |