Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
| 4 * (C) 2001 Dirk Mueller (mueller@kde.org) | 4 * (C) 2001 Dirk Mueller (mueller@kde.org) |
| 5 * (C) 2006 Alexey Proskuryakov (ap@webkit.org) | 5 * (C) 2006 Alexey Proskuryakov (ap@webkit.org) |
| 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2011, 2012 Apple Inc. All | 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2011, 2012 Apple Inc. All |
| 7 * rights reserved. | 7 * rights reserved. |
| 8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. | 8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. |
| 9 * (http://www.torchmobile.com/) | 9 * (http://www.torchmobile.com/) |
| 10 * Copyright (C) 2008, 2009, 2011, 2012 Google Inc. All rights reserved. | 10 * Copyright (C) 2008, 2009, 2011, 2012 Google Inc. All rights reserved. |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 137 #include "core/frame/EventHandlerRegistry.h" | 137 #include "core/frame/EventHandlerRegistry.h" |
| 138 #include "core/frame/FrameConsole.h" | 138 #include "core/frame/FrameConsole.h" |
| 139 #include "core/frame/History.h" | 139 #include "core/frame/History.h" |
| 140 #include "core/frame/HostsUsingFeatures.h" | 140 #include "core/frame/HostsUsingFeatures.h" |
| 141 #include "core/frame/LocalDOMWindow.h" | 141 #include "core/frame/LocalDOMWindow.h" |
| 142 #include "core/frame/LocalFrame.h" | 142 #include "core/frame/LocalFrame.h" |
| 143 #include "core/frame/LocalFrameClient.h" | 143 #include "core/frame/LocalFrameClient.h" |
| 144 #include "core/frame/LocalFrameView.h" | 144 #include "core/frame/LocalFrameView.h" |
| 145 #include "core/frame/PerformanceMonitor.h" | 145 #include "core/frame/PerformanceMonitor.h" |
| 146 #include "core/frame/Settings.h" | 146 #include "core/frame/Settings.h" |
| 147 #include "core/frame/VisualViewport.h" | |
| 147 #include "core/frame/csp/ContentSecurityPolicy.h" | 148 #include "core/frame/csp/ContentSecurityPolicy.h" |
| 148 #include "core/html/DocumentNameCollection.h" | 149 #include "core/html/DocumentNameCollection.h" |
| 149 #include "core/html/HTMLAllCollection.h" | 150 #include "core/html/HTMLAllCollection.h" |
| 150 #include "core/html/HTMLAnchorElement.h" | 151 #include "core/html/HTMLAnchorElement.h" |
| 151 #include "core/html/HTMLBaseElement.h" | 152 #include "core/html/HTMLBaseElement.h" |
| 152 #include "core/html/HTMLBodyElement.h" | 153 #include "core/html/HTMLBodyElement.h" |
| 153 #include "core/html/HTMLCanvasElement.h" | 154 #include "core/html/HTMLCanvasElement.h" |
| 154 #include "core/html/HTMLCollection.h" | 155 #include "core/html/HTMLCollection.h" |
| 155 #include "core/html/HTMLDialogElement.h" | 156 #include "core/html/HTMLDialogElement.h" |
| 156 #include "core/html/HTMLDocument.h" | 157 #include "core/html/HTMLDocument.h" |
| (...skipping 6247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 6404 !request.TouchMove()) { | 6405 !request.TouchMove()) { |
| 6405 // We are setting the :active chain and freezing it. If future moves | 6406 // We are setting the :active chain and freezing it. If future moves |
| 6406 // happen, they will need to reference this chain. | 6407 // happen, they will need to reference this chain. |
| 6407 for (Element* element = new_active_element; element; | 6408 for (Element* element = new_active_element; element; |
| 6408 element = FlatTreeTraversal::ParentElement(*element)) { | 6409 element = FlatTreeTraversal::ParentElement(*element)) { |
| 6409 user_action_elements_.SetInActiveChain(element, true); | 6410 user_action_elements_.SetInActiveChain(element, true); |
| 6410 } | 6411 } |
| 6411 SetActiveHoverElement(new_active_element); | 6412 SetActiveHoverElement(new_active_element); |
| 6412 } | 6413 } |
| 6413 } | 6414 } |
| 6415 | |
| 6416 // Do not set hover state if event is from touch and on mobile. | |
| 6417 if (request.TouchEvent() && GetPage() && | |
| 6418 GetPage()->GetVisualViewport().ShouldDisableDesktopWorkarounds()) | |
| 6419 return; | |
| 6420 | |
| 6414 // If the mouse has just been pressed, set :active on the chain. Those (and | 6421 // If the mouse has just been pressed, set :active on the chain. Those (and |
| 6415 // only those) nodes should remain :active until the mouse is released. | 6422 // only those) nodes should remain :active until the mouse is released. |
| 6416 bool allow_active_changes = !old_active_element && ActiveHoverElement(); | 6423 bool allow_active_changes = !old_active_element && ActiveHoverElement(); |
| 6417 | 6424 |
| 6418 // If the mouse is down and if this is a mouse move event, we want to restrict | 6425 // If the mouse is down and if this is a mouse move event, we want to restrict |
| 6419 // changes in :hover/:active to only apply to elements that are in the :active | 6426 // changes in :hover/:active to only apply to elements that are in the :active |
| 6420 // chain that we froze at the time the mouse went down. | 6427 // chain that we froze at the time the mouse went down. |
| 6421 bool must_be_in_active_chain = request.Active() && request.Move(); | 6428 bool must_be_in_active_chain = request.Active() && request.Move(); |
| 6422 | 6429 |
| 6423 Element* old_hover_element = HoverElement(); | 6430 Element* old_hover_element = HoverElement(); |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 6474 for (Element* element : elements_to_remove_from_chain) | 6481 for (Element* element : elements_to_remove_from_chain) |
| 6475 element->SetHovered(false); | 6482 element->SetHovered(false); |
| 6476 | 6483 |
| 6477 bool saw_common_ancestor = false; | 6484 bool saw_common_ancestor = false; |
| 6478 for (Element* element : elements_to_add_to_chain) { | 6485 for (Element* element : elements_to_add_to_chain) { |
| 6479 // Elements past the common ancestor do not change hover state, but might | 6486 // Elements past the common ancestor do not change hover state, but might |
| 6480 // change active state. | 6487 // change active state. |
| 6481 if (element == ancestor_element) | 6488 if (element == ancestor_element) |
| 6482 saw_common_ancestor = true; | 6489 saw_common_ancestor = true; |
| 6483 if (allow_active_changes) | 6490 if (allow_active_changes) |
| 6484 element->SetActive(true); | 6491 element->SetActive(true); |
|
chaopeng
2017/06/06 17:18:49
I don't know should we keep setActive here?
bokan
2017/06/06 21:07:08
Active makes sense in the context of touch so we c
| |
| 6485 if (!saw_common_ancestor || element == hover_element_) | 6492 if (!saw_common_ancestor || element == hover_element_) |
| 6486 element->SetHovered(true); | 6493 element->SetHovered(true); |
| 6487 } | 6494 } |
| 6488 } | 6495 } |
| 6489 | 6496 |
| 6490 bool Document::HaveScriptBlockingStylesheetsLoaded() const { | 6497 bool Document::HaveScriptBlockingStylesheetsLoaded() const { |
| 6491 return style_engine_->HaveScriptBlockingStylesheetsLoaded(); | 6498 return style_engine_->HaveScriptBlockingStylesheetsLoaded(); |
| 6492 } | 6499 } |
| 6493 | 6500 |
| 6494 bool Document::HaveRenderBlockingStylesheetsLoaded() const { | 6501 bool Document::HaveRenderBlockingStylesheetsLoaded() const { |
| (...skipping 347 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 6842 } | 6849 } |
| 6843 | 6850 |
| 6844 void showLiveDocumentInstances() { | 6851 void showLiveDocumentInstances() { |
| 6845 WeakDocumentSet& set = liveDocumentSet(); | 6852 WeakDocumentSet& set = liveDocumentSet(); |
| 6846 fprintf(stderr, "There are %u documents currently alive:\n", set.size()); | 6853 fprintf(stderr, "There are %u documents currently alive:\n", set.size()); |
| 6847 for (blink::Document* document : set) | 6854 for (blink::Document* document : set) |
| 6848 fprintf(stderr, "- Document %p URL: %s\n", document, | 6855 fprintf(stderr, "- Document %p URL: %s\n", document, |
| 6849 document->Url().GetString().Utf8().data()); | 6856 document->Url().GetString().Utf8().data()); |
| 6850 } | 6857 } |
| 6851 #endif | 6858 #endif |
| OLD | NEW |