Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(31)

Side by Side Diff: third_party/WebKit/Source/core/dom/Document.cpp

Issue 2723993002: Rename platform/Widget to platform/FrameViewBase in core. (Closed)
Patch Set: Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/editing/FrameSelection.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 350 matching lines...) Expand 10 before | Expand all | Expand 10 after
361 return false; 361 return false;
362 362
363 // rule (d) above 363 // rule (d) above
364 CharDecompositionType decompType = decompositionType(c); 364 CharDecompositionType decompType = decompositionType(c);
365 if (decompType == DecompositionFont || decompType == DecompositionCompat) 365 if (decompType == DecompositionFont || decompType == DecompositionCompat)
366 return false; 366 return false;
367 367
368 return true; 368 return true;
369 } 369 }
370 370
371 static Widget* widgetForElement(const Element& focusedElement) { 371 static FrameViewBase* widgetForElement(const Element& focusedElement) {
372 LayoutObject* layoutObject = focusedElement.layoutObject(); 372 LayoutObject* layoutObject = focusedElement.layoutObject();
373 if (!layoutObject || !layoutObject->isLayoutPart()) 373 if (!layoutObject || !layoutObject->isLayoutPart())
374 return 0; 374 return 0;
375 return toLayoutPart(layoutObject)->widget(); 375 return toLayoutPart(layoutObject)->widget();
376 } 376 }
377 377
378 static bool acceptsEditingFocus(const Element& element) { 378 static bool acceptsEditingFocus(const Element& element) {
379 DCHECK(hasEditableStyle(element)); 379 DCHECK(hasEditableStyle(element));
380 380
381 return element.document().frame() && rootEditableElement(element); 381 return element.document().frame() && rootEditableElement(element);
(...skipping 1671 matching lines...) Expand 10 before | Expand all | Expand 10 after
2053 styleEngine().updateActiveStyle(); 2053 styleEngine().updateActiveStyle();
2054 } 2054 }
2055 2055
2056 void Document::updateStyle() { 2056 void Document::updateStyle() {
2057 DCHECK(!view()->shouldThrottleRendering()); 2057 DCHECK(!view()->shouldThrottleRendering());
2058 TRACE_EVENT_BEGIN0("blink,blink_style", "Document::updateStyle"); 2058 TRACE_EVENT_BEGIN0("blink,blink_style", "Document::updateStyle");
2059 double startTime = monotonicallyIncreasingTime(); 2059 double startTime = monotonicallyIncreasingTime();
2060 2060
2061 unsigned initialElementCount = styleEngine().styleForElementCount(); 2061 unsigned initialElementCount = styleEngine().styleForElementCount();
2062 2062
2063 HTMLFrameOwnerElement::UpdateSuspendScope suspendWidgetHierarchyUpdates; 2063 HTMLFrameOwnerElement::UpdateSuspendScope
2064 suspendFrameViewBaseHierarchyUpdates;
2064 m_lifecycle.advanceTo(DocumentLifecycle::InStyleRecalc); 2065 m_lifecycle.advanceTo(DocumentLifecycle::InStyleRecalc);
2065 2066
2066 StyleRecalcChange change = NoChange; 2067 StyleRecalcChange change = NoChange;
2067 if (getStyleChangeType() >= SubtreeStyleChange) 2068 if (getStyleChangeType() >= SubtreeStyleChange)
2068 change = Force; 2069 change = Force;
2069 2070
2070 NthIndexCache nthIndexCache(*this); 2071 NthIndexCache nthIndexCache(*this);
2071 2072
2072 // FIXME: Cannot access the ensureStyleResolver() before calling 2073 // FIXME: Cannot access the ensureStyleResolver() before calling
2073 // styleForDocument below because apparently the StyleResolver's constructor 2074 // styleForDocument below because apparently the StyleResolver's constructor
(...skipping 375 matching lines...) Expand 10 before | Expand all | Expand 10 after
2449 RELEASE_ASSERT(!m_frame || m_frame->tree().childCount() == 0); 2450 RELEASE_ASSERT(!m_frame || m_frame->tree().childCount() == 0);
2450 if (!isActive()) 2451 if (!isActive())
2451 return; 2452 return;
2452 2453
2453 // Frame navigation can cause a new Document to be attached. Don't allow that, 2454 // Frame navigation can cause a new Document to be attached. Don't allow that,
2454 // since that will cause a situation where LocalFrame still has a Document 2455 // since that will cause a situation where LocalFrame still has a Document
2455 // attached after this finishes! Normally, it shouldn't actually be possible 2456 // attached after this finishes! Normally, it shouldn't actually be possible
2456 // to trigger navigation here. However, plugins (see below) can cause lots of 2457 // to trigger navigation here. However, plugins (see below) can cause lots of
2457 // crazy things to happen, since plugin detach involves nested message loops. 2458 // crazy things to happen, since plugin detach involves nested message loops.
2458 FrameNavigationDisabler navigationDisabler(*m_frame); 2459 FrameNavigationDisabler navigationDisabler(*m_frame);
2459 // Defer widget updates to avoid plugins trying to run script inside 2460 // Defer FrameViewBase updates to avoid plugins trying to run script inside
2460 // ScriptForbiddenScope, which will crash the renderer after 2461 // ScriptForbiddenScope, which will crash the renderer after
2461 // https://crrev.com/200984 2462 // https://crrev.com/200984
2462 HTMLFrameOwnerElement::UpdateSuspendScope suspendWidgetHierarchyUpdates; 2463 HTMLFrameOwnerElement::UpdateSuspendScope
2464 suspendFrameViewBaseHierarchyUpdates;
2463 // Don't allow script to run in the middle of detachLayoutTree() because a 2465 // Don't allow script to run in the middle of detachLayoutTree() because a
2464 // detaching Document is not in a consistent state. 2466 // detaching Document is not in a consistent state.
2465 ScriptForbiddenScope forbidScript; 2467 ScriptForbiddenScope forbidScript;
2466 2468
2467 view()->dispose(); 2469 view()->dispose();
2468 2470
2469 // If the widget of the document's frame owner doesn't match view() then 2471 // If the FrameViewBase of the document's frame owner doesn't match view()
2470 // FrameView::dispose() didn't clear the owner's widget. If we don't clear it 2472 // then FrameView::dispose() didn't clear the owner's FrameViewBase. If we
2471 // here, it may be clobbered later in LocalFrame::createView(). See also 2473 // don't clear it here, it may be clobbered later in LocalFrame::createView().
2472 // https://crbug.com/673170 and the comment in FrameView::dispose(). 2474 // See also https://crbug.com/673170 and the comment in FrameView::dispose().
2473 HTMLFrameOwnerElement* ownerElement = m_frame->deprecatedLocalOwner(); 2475 HTMLFrameOwnerElement* ownerElement = m_frame->deprecatedLocalOwner();
2474 if (ownerElement) 2476 if (ownerElement)
2475 ownerElement->setWidget(nullptr); 2477 ownerElement->setWidget(nullptr);
2476 2478
2477 m_markers->prepareForDestruction(); 2479 m_markers->prepareForDestruction();
2478 2480
2479 m_lifecycle.advanceTo(DocumentLifecycle::Stopping); 2481 m_lifecycle.advanceTo(DocumentLifecycle::Stopping);
2480 2482
2481 if (page()) 2483 if (page())
2482 page()->documentDetached(this); 2484 page()->documentDetached(this);
(...skipping 1546 matching lines...) Expand 10 before | Expand all | Expand 10 after
4029 params.sourceCapabilities); 4031 params.sourceCapabilities);
4030 4032
4031 if (m_focusedElement) { 4033 if (m_focusedElement) {
4032 // handler shifted focus 4034 // handler shifted focus
4033 focusChangeBlocked = true; 4035 focusChangeBlocked = true;
4034 newFocusedElement = nullptr; 4036 newFocusedElement = nullptr;
4035 } 4037 }
4036 } 4038 }
4037 4039
4038 if (view()) { 4040 if (view()) {
4039 Widget* oldWidget = widgetForElement(*oldFocusedElement); 4041 FrameViewBase* oldFrameViewBase = widgetForElement(*oldFocusedElement);
4040 if (oldWidget) 4042 if (oldFrameViewBase)
4041 oldWidget->setFocused(false, params.type); 4043 oldFrameViewBase->setFocused(false, params.type);
4042 else 4044 else
4043 view()->setFocused(false, params.type); 4045 view()->setFocused(false, params.type);
4044 } 4046 }
4045 } 4047 }
4046 4048
4047 if (newFocusedElement) 4049 if (newFocusedElement)
4048 updateStyleAndLayoutTreeForNode(newFocusedElement); 4050 updateStyleAndLayoutTreeForNode(newFocusedElement);
4049 if (newFocusedElement && newFocusedElement->isFocusable()) { 4051 if (newFocusedElement && newFocusedElement->isFocusable()) {
4050 if (isRootEditableElement(*newFocusedElement) && 4052 if (isRootEditableElement(*newFocusedElement) &&
4051 !acceptsEditingFocus(*newFocusedElement)) { 4053 !acceptsEditingFocus(*newFocusedElement)) {
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
4103 goto SetFocusedElementDone; 4105 goto SetFocusedElementDone;
4104 } 4106 }
4105 } 4107 }
4106 4108
4107 if (isRootEditableElement(*m_focusedElement)) 4109 if (isRootEditableElement(*m_focusedElement))
4108 frame()->spellChecker().didBeginEditing(m_focusedElement.get()); 4110 frame()->spellChecker().didBeginEditing(m_focusedElement.get());
4109 4111
4110 // eww, I suck. set the qt focus correctly 4112 // eww, I suck. set the qt focus correctly
4111 // ### find a better place in the code for this 4113 // ### find a better place in the code for this
4112 if (view()) { 4114 if (view()) {
4113 Widget* focusWidget = widgetForElement(*m_focusedElement); 4115 FrameViewBase* focusFrameViewBase = widgetForElement(*m_focusedElement);
4114 if (focusWidget) { 4116 if (focusFrameViewBase) {
4115 // Make sure a widget has the right size before giving it focus. 4117 // Make sure a FrameViewBase has the right size before giving it focus.
4116 // Otherwise, we are testing edge cases of the Widget code. 4118 // Otherwise, we are testing edge cases of the FrameViewBase code.
4117 // Specifically, in WebCore this does not work well for text fields. 4119 // Specifically, in WebCore this does not work well for text fields.
4118 updateStyleAndLayout(); 4120 updateStyleAndLayout();
4119 // Re-get the widget in case updating the layout changed things. 4121 // Re-get the FrameViewBase in case updating the layout changed things.
4120 focusWidget = widgetForElement(*m_focusedElement); 4122 focusFrameViewBase = widgetForElement(*m_focusedElement);
4121 } 4123 }
4122 if (focusWidget) 4124 if (focusFrameViewBase)
4123 focusWidget->setFocused(true, params.type); 4125 focusFrameViewBase->setFocused(true, params.type);
4124 else 4126 else
4125 view()->setFocused(true, params.type); 4127 view()->setFocused(true, params.type);
4126 } 4128 }
4127 } 4129 }
4128 4130
4129 if (!focusChangeBlocked && m_focusedElement) { 4131 if (!focusChangeBlocked && m_focusedElement) {
4130 // Create the AXObject cache in a focus change because Chromium relies on 4132 // Create the AXObject cache in a focus change because Chromium relies on
4131 // it. 4133 // it.
4132 if (AXObjectCache* cache = axObjectCache()) 4134 if (AXObjectCache* cache = axObjectCache())
4133 cache->handleFocusedUIElementChanged(oldFocusedElement, 4135 cache->handleFocusedUIElementChanged(oldFocusedElement,
(...skipping 2525 matching lines...) Expand 10 before | Expand all | Expand 10 after
6659 } 6661 }
6660 6662
6661 void showLiveDocumentInstances() { 6663 void showLiveDocumentInstances() {
6662 WeakDocumentSet& set = liveDocumentSet(); 6664 WeakDocumentSet& set = liveDocumentSet();
6663 fprintf(stderr, "There are %u documents currently alive:\n", set.size()); 6665 fprintf(stderr, "There are %u documents currently alive:\n", set.size());
6664 for (blink::Document* document : set) 6666 for (blink::Document* document : set)
6665 fprintf(stderr, "- Document %p URL: %s\n", document, 6667 fprintf(stderr, "- Document %p URL: %s\n", document,
6666 document->url().getString().utf8().data()); 6668 document->url().getString().utf8().data());
6667 } 6669 }
6668 #endif 6670 #endif
OLDNEW
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/editing/FrameSelection.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698