| 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 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 42 #include "core/editing/Editor.h" | 42 #include "core/editing/Editor.h" |
| 43 #include "core/editing/FrameSelection.h" | 43 #include "core/editing/FrameSelection.h" |
| 44 #include "core/editing/HTMLInterchange.h" | 44 #include "core/editing/HTMLInterchange.h" |
| 45 #include "core/editing/InputMethodController.h" | 45 #include "core/editing/InputMethodController.h" |
| 46 #include "core/editing/TextIterator.h" | 46 #include "core/editing/TextIterator.h" |
| 47 #include "core/editing/markup.h" | 47 #include "core/editing/markup.h" |
| 48 #include "core/events/KeyboardEvent.h" | 48 #include "core/events/KeyboardEvent.h" |
| 49 #include "core/events/WheelEvent.h" | 49 #include "core/events/WheelEvent.h" |
| 50 #include "core/frame/EventHandlerRegistry.h" | 50 #include "core/frame/EventHandlerRegistry.h" |
| 51 #include "core/frame/FrameHost.h" | 51 #include "core/frame/FrameHost.h" |
| 52 #include "core/frame/FrameProtector.h" |
| 52 #include "core/frame/FrameView.h" | 53 #include "core/frame/FrameView.h" |
| 53 #include "core/frame/LocalFrame.h" | 54 #include "core/frame/LocalFrame.h" |
| 54 #include "core/frame/PinchViewport.h" | 55 #include "core/frame/PinchViewport.h" |
| 55 #include "core/frame/RemoteFrame.h" | 56 #include "core/frame/RemoteFrame.h" |
| 56 #include "core/frame/Settings.h" | 57 #include "core/frame/Settings.h" |
| 57 #include "core/frame/SmartClip.h" | 58 #include "core/frame/SmartClip.h" |
| 58 #include "core/html/HTMLInputElement.h" | 59 #include "core/html/HTMLInputElement.h" |
| 59 #include "core/html/HTMLMediaElement.h" | 60 #include "core/html/HTMLMediaElement.h" |
| 60 #include "core/html/HTMLPlugInElement.h" | 61 #include "core/html/HTMLPlugInElement.h" |
| 61 #include "core/html/HTMLTextAreaElement.h" | 62 #include "core/html/HTMLTextAreaElement.h" |
| (...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 201 // Change the text zoom level by kTextSizeMultiplierRatio each time the user | 202 // Change the text zoom level by kTextSizeMultiplierRatio each time the user |
| 202 // zooms text in or out (ie., change by 20%). The min and max values limit | 203 // zooms text in or out (ie., change by 20%). The min and max values limit |
| 203 // text zoom to half and 3x the original text size. These three values match | 204 // text zoom to half and 3x the original text size. These three values match |
| 204 // those in Apple's port in WebKit/WebKit/WebView/WebView.mm | 205 // those in Apple's port in WebKit/WebKit/WebView/WebView.mm |
| 205 const double WebView::textSizeMultiplierRatio = 1.2; | 206 const double WebView::textSizeMultiplierRatio = 1.2; |
| 206 const double WebView::minTextSizeMultiplier = 0.5; | 207 const double WebView::minTextSizeMultiplier = 0.5; |
| 207 const double WebView::maxTextSizeMultiplier = 3.0; | 208 const double WebView::maxTextSizeMultiplier = 3.0; |
| 208 | 209 |
| 209 // Used to defer all page activity in cases where the embedder wishes to run | 210 // Used to defer all page activity in cases where the embedder wishes to run |
| 210 // a nested event loop. Using a stack enables nesting of message loop invocation
s. | 211 // a nested event loop. Using a stack enables nesting of message loop invocation
s. |
| 211 static Vector<ScopedPageLoadDeferrer*>& pageLoadDeferrerStack() | 212 static WillBeHeapVector<RawPtrWillBeMember<ScopedPageLoadDeferrer> >& pageLoadDe
ferrerStack() |
| 212 { | 213 { |
| 213 DEFINE_STATIC_LOCAL(Vector<ScopedPageLoadDeferrer*>, deferrerStack, ()); | 214 DEFINE_STATIC_LOCAL(OwnPtrWillBePersistent<WillBeHeapVector<RawPtrWillBeMemb
er<ScopedPageLoadDeferrer> > >, deferrerStack, (adoptPtrWillBeNoop(new WillBeHea
pVector<RawPtrWillBeMember<ScopedPageLoadDeferrer> > ()))); |
| 214 return deferrerStack; | 215 return *deferrerStack; |
| 215 } | 216 } |
| 216 | 217 |
| 217 // Ensure that the WebDragOperation enum values stay in sync with the original | 218 // Ensure that the WebDragOperation enum values stay in sync with the original |
| 218 // DragOperation constants. | 219 // DragOperation constants. |
| 219 #define COMPILE_ASSERT_MATCHING_ENUM(coreName) \ | 220 #define COMPILE_ASSERT_MATCHING_ENUM(coreName) \ |
| 220 COMPILE_ASSERT(int(coreName) == int(Web##coreName), dummy##coreName) | 221 COMPILE_ASSERT(int(coreName) == int(Web##coreName), dummy##coreName) |
| 221 COMPILE_ASSERT_MATCHING_ENUM(DragOperationNone); | 222 COMPILE_ASSERT_MATCHING_ENUM(DragOperationNone); |
| 222 COMPILE_ASSERT_MATCHING_ENUM(DragOperationCopy); | 223 COMPILE_ASSERT_MATCHING_ENUM(DragOperationCopy); |
| 223 COMPILE_ASSERT_MATCHING_ENUM(DragOperationLink); | 224 COMPILE_ASSERT_MATCHING_ENUM(DragOperationLink); |
| 224 COMPILE_ASSERT_MATCHING_ENUM(DragOperationGeneric); | 225 COMPILE_ASSERT_MATCHING_ENUM(DragOperationGeneric); |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 307 | 308 |
| 308 void WebView::willEnterModalLoop() | 309 void WebView::willEnterModalLoop() |
| 309 { | 310 { |
| 310 pageLoadDeferrerStack().append(new ScopedPageLoadDeferrer()); | 311 pageLoadDeferrerStack().append(new ScopedPageLoadDeferrer()); |
| 311 } | 312 } |
| 312 | 313 |
| 313 void WebView::didExitModalLoop() | 314 void WebView::didExitModalLoop() |
| 314 { | 315 { |
| 315 ASSERT(pageLoadDeferrerStack().size()); | 316 ASSERT(pageLoadDeferrerStack().size()); |
| 316 | 317 |
| 317 delete pageLoadDeferrerStack().last(); | 318 ScopedPageLoadDeferrer* deferrer = pageLoadDeferrerStack().last(); |
| 319 #if ENABLE(OILPAN) |
| 320 deferrer->dispose(); |
| 321 #else |
| 322 delete deferrer; |
| 323 #endif |
| 318 pageLoadDeferrerStack().removeLast(); | 324 pageLoadDeferrerStack().removeLast(); |
| 319 } | 325 } |
| 320 | 326 |
| 321 void WebViewImpl::setMainFrame(WebFrame* frame) | 327 void WebViewImpl::setMainFrame(WebFrame* frame) |
| 322 { | 328 { |
| 323 if (frame->isWebLocalFrame()) | 329 if (frame->isWebLocalFrame()) { |
| 330 #if ENABLE(OILPAN) |
| 331 m_localMainFrame = toWebLocalFrameImpl(frame); |
| 332 m_remoteMainFrame.clear(); |
| 333 #endif |
| 324 toWebLocalFrameImpl(frame)->initializeCoreFrame(&page()->frameHost(), 0,
nullAtom, nullAtom); | 334 toWebLocalFrameImpl(frame)->initializeCoreFrame(&page()->frameHost(), 0,
nullAtom, nullAtom); |
| 325 else | 335 } else { |
| 336 #if ENABLE(OILPAN) |
| 337 m_localMainFrame.clear(); |
| 338 m_remoteMainFrame = toWebRemoteFrameImpl(frame); |
| 339 #endif |
| 326 toWebRemoteFrameImpl(frame)->initializeCoreFrame(&page()->frameHost(), 0
, nullAtom); | 340 toWebRemoteFrameImpl(frame)->initializeCoreFrame(&page()->frameHost(), 0
, nullAtom); |
| 341 } |
| 327 } | 342 } |
| 328 | 343 |
| 329 void WebViewImpl::setAutofillClient(WebAutofillClient* autofillClient) | 344 void WebViewImpl::setAutofillClient(WebAutofillClient* autofillClient) |
| 330 { | 345 { |
| 331 m_autofillClient = autofillClient; | 346 m_autofillClient = autofillClient; |
| 332 } | 347 } |
| 333 | 348 |
| 334 void WebViewImpl::setCredentialManagerClient(WebCredentialManagerClient* webCred
entialManagerClient) | 349 void WebViewImpl::setCredentialManagerClient(WebCredentialManagerClient* webCred
entialManagerClient) |
| 335 { | 350 { |
| 336 ASSERT(m_page); | 351 ASSERT(m_page); |
| (...skipping 609 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 946 return m_selectPopup->handleKeyEvent(PlatformKeyboardEventBuilder(event)
); | 961 return m_selectPopup->handleKeyEvent(PlatformKeyboardEventBuilder(event)
); |
| 947 if (m_pagePopup) { | 962 if (m_pagePopup) { |
| 948 m_pagePopup->handleKeyEvent(PlatformKeyboardEventBuilder(event)); | 963 m_pagePopup->handleKeyEvent(PlatformKeyboardEventBuilder(event)); |
| 949 // We need to ignore the next Char event after this otherwise pressing | 964 // We need to ignore the next Char event after this otherwise pressing |
| 950 // enter when selecting an item in the popup will go to the page. | 965 // enter when selecting an item in the popup will go to the page. |
| 951 if (WebInputEvent::RawKeyDown == event.type) | 966 if (WebInputEvent::RawKeyDown == event.type) |
| 952 m_suppressNextKeypressEvent = true; | 967 m_suppressNextKeypressEvent = true; |
| 953 return true; | 968 return true; |
| 954 } | 969 } |
| 955 | 970 |
| 956 RefPtr<Frame> focusedFrame = focusedCoreFrame(); | 971 Frame* focusedFrame = focusedCoreFrame(); |
| 972 FrameProtector protect(focusedFrame); |
| 957 if (focusedFrame && focusedFrame->isRemoteFrameTemporary()) { | 973 if (focusedFrame && focusedFrame->isRemoteFrameTemporary()) { |
| 958 WebLocalFrameImpl* webFrame = WebLocalFrameImpl::fromFrame(toLocalFrameT
emporary(focusedFrame.get())); | 974 WebLocalFrameImpl* webFrame = WebLocalFrameImpl::fromFrame(toLocalFrameT
emporary(focusedFrame)); |
| 959 webFrame->client()->forwardInputEvent(&event); | 975 webFrame->client()->forwardInputEvent(&event); |
| 960 return true; | 976 return true; |
| 961 } | 977 } |
| 962 | 978 |
| 963 if (!focusedFrame || !focusedFrame->isLocalFrame()) | 979 if (!focusedFrame || !focusedFrame->isLocalFrame()) |
| 964 return false; | 980 return false; |
| 965 | 981 |
| 966 RefPtr<LocalFrame> frame = toLocalFrame(focusedFrame.get()); | 982 LocalFrame* frame = toLocalFrame(focusedFrame); |
| 967 | 983 |
| 968 PlatformKeyboardEventBuilder evt(event); | 984 PlatformKeyboardEventBuilder evt(event); |
| 969 | 985 |
| 970 if (frame->eventHandler().keyEvent(evt)) { | 986 if (frame->eventHandler().keyEvent(evt)) { |
| 971 if (WebInputEvent::RawKeyDown == event.type) { | 987 if (WebInputEvent::RawKeyDown == event.type) { |
| 972 // Suppress the next keypress event unless the focused node is a plu
g-in node. | 988 // Suppress the next keypress event unless the focused node is a plu
g-in node. |
| 973 // (Flash needs these keypress events to handle non-US keyboards.) | 989 // (Flash needs these keypress events to handle non-US keyboards.) |
| 974 Element* element = focusedElement(); | 990 Element* element = focusedElement(); |
| 975 if (!element || !element->renderer() || !element->renderer()->isEmbe
ddedObject()) | 991 if (!element || !element->renderer() || !element->renderer()->isEmbe
ddedObject()) |
| 976 m_suppressNextKeypressEvent = true; | 992 m_suppressNextKeypressEvent = true; |
| (...skipping 1028 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2005 { | 2021 { |
| 2006 TRACE_EVENT_ASYNC_END0("input", "capturing mouse", this); | 2022 TRACE_EVENT_ASYNC_END0("input", "capturing mouse", this); |
| 2007 m_mouseCaptureNode = nullptr; | 2023 m_mouseCaptureNode = nullptr; |
| 2008 } | 2024 } |
| 2009 | 2025 |
| 2010 void WebViewImpl::setFocus(bool enable) | 2026 void WebViewImpl::setFocus(bool enable) |
| 2011 { | 2027 { |
| 2012 m_page->focusController().setFocused(enable); | 2028 m_page->focusController().setFocused(enable); |
| 2013 if (enable) { | 2029 if (enable) { |
| 2014 m_page->focusController().setActive(true); | 2030 m_page->focusController().setActive(true); |
| 2015 RefPtr<Frame> focusedFrame = m_page->focusController().focusedFrame(); | 2031 Frame* focusedFrame = m_page->focusController().focusedFrame(); |
| 2032 FrameProtector protect(focusedFrame); |
| 2016 if (focusedFrame && focusedFrame->isLocalFrame()) { | 2033 if (focusedFrame && focusedFrame->isLocalFrame()) { |
| 2017 LocalFrame* localFrame = toLocalFrame(focusedFrame.get()); | 2034 LocalFrame* localFrame = toLocalFrame(focusedFrame); |
| 2018 Element* element = localFrame->document()->focusedElement(); | 2035 Element* element = localFrame->document()->focusedElement(); |
| 2019 if (element && localFrame->selection().selection().isNone()) { | 2036 if (element && localFrame->selection().selection().isNone()) { |
| 2020 // If the selection was cleared while the WebView was not | 2037 // If the selection was cleared while the WebView was not |
| 2021 // focused, then the focus element shows with a focus ring but | 2038 // focused, then the focus element shows with a focus ring but |
| 2022 // no caret and does respond to keyboard inputs. | 2039 // no caret and does respond to keyboard inputs. |
| 2023 if (element->isTextFormControl()) { | 2040 if (element->isTextFormControl()) { |
| 2024 element->updateFocusAppearance(true); | 2041 element->updateFocusAppearance(true); |
| 2025 } else if (element->isContentEditable()) { | 2042 } else if (element->isContentEditable()) { |
| 2026 // updateFocusAppearance() selects all the text of | 2043 // updateFocusAppearance() selects all the text of |
| 2027 // contentseditable DIVs. So we set the selection explicitly | 2044 // contentseditable DIVs. So we set the selection explicitly |
| (...skipping 10 matching lines...) Expand all Loading... |
| 2038 | 2055 |
| 2039 // Clear focus on the currently focused frame if any. | 2056 // Clear focus on the currently focused frame if any. |
| 2040 if (!m_page) | 2057 if (!m_page) |
| 2041 return; | 2058 return; |
| 2042 | 2059 |
| 2043 LocalFrame* frame = m_page->mainFrame() && m_page->mainFrame()->isLocalF
rame() | 2060 LocalFrame* frame = m_page->mainFrame() && m_page->mainFrame()->isLocalF
rame() |
| 2044 ? m_page->deprecatedLocalMainFrame() : 0; | 2061 ? m_page->deprecatedLocalMainFrame() : 0; |
| 2045 if (!frame) | 2062 if (!frame) |
| 2046 return; | 2063 return; |
| 2047 | 2064 |
| 2048 RefPtr<Frame> focusedFrame = m_page->focusController().focusedFrame(); | 2065 Frame* focusedFrame = m_page->focusController().focusedFrame(); |
| 2066 FrameProtector protect(focusedFrame); |
| 2049 if (focusedFrame && focusedFrame->isLocalFrame()) { | 2067 if (focusedFrame && focusedFrame->isLocalFrame()) { |
| 2050 // Finish an ongoing composition to delete the composition node. | 2068 // Finish an ongoing composition to delete the composition node. |
| 2051 if (toLocalFrame(focusedFrame.get())->inputMethodController().hasCom
position()) { | 2069 if (toLocalFrame(focusedFrame)->inputMethodController().hasCompositi
on()) { |
| 2052 if (m_autofillClient) | 2070 if (m_autofillClient) |
| 2053 m_autofillClient->setIgnoreTextChanges(true); | 2071 m_autofillClient->setIgnoreTextChanges(true); |
| 2054 | 2072 |
| 2055 toLocalFrame(focusedFrame.get())->inputMethodController().confir
mComposition(); | 2073 toLocalFrame(focusedFrame)->inputMethodController().confirmCompo
sition(); |
| 2056 | 2074 |
| 2057 if (m_autofillClient) | 2075 if (m_autofillClient) |
| 2058 m_autofillClient->setIgnoreTextChanges(false); | 2076 m_autofillClient->setIgnoreTextChanges(false); |
| 2059 } | 2077 } |
| 2060 m_imeAcceptEvents = false; | 2078 m_imeAcceptEvents = false; |
| 2061 } | 2079 } |
| 2062 } | 2080 } |
| 2063 } | 2081 } |
| 2064 | 2082 |
| 2065 bool WebViewImpl::setComposition( | 2083 bool WebViewImpl::setComposition( |
| (...skipping 581 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2647 Frame* frame = page()->focusController().focusedOrMainFrame(); | 2665 Frame* frame = page()->focusController().focusedOrMainFrame(); |
| 2648 if (frame->isLocalFrame()) { | 2666 if (frame->isLocalFrame()) { |
| 2649 if (Document* document = toLocalFrame(frame)->document()) | 2667 if (Document* document = toLocalFrame(frame)->document()) |
| 2650 document->setFocusedElement(nullptr); | 2668 document->setFocusedElement(nullptr); |
| 2651 } | 2669 } |
| 2652 page()->focusController().setInitialFocus(reverse ? FocusTypeBackward : Focu
sTypeForward); | 2670 page()->focusController().setInitialFocus(reverse ? FocusTypeBackward : Focu
sTypeForward); |
| 2653 } | 2671 } |
| 2654 | 2672 |
| 2655 void WebViewImpl::clearFocusedElement() | 2673 void WebViewImpl::clearFocusedElement() |
| 2656 { | 2674 { |
| 2657 RefPtr<Frame> frame = focusedCoreFrame(); | 2675 Frame* frame = focusedCoreFrame(); |
| 2658 if (!frame || !frame->isLocalFrame()) | 2676 if (!frame || !frame->isLocalFrame()) |
| 2659 return; | 2677 return; |
| 2660 | 2678 |
| 2661 LocalFrame* localFrame = toLocalFrame(frame.get()); | 2679 FrameProtector protect(frame); |
| 2680 LocalFrame* localFrame = toLocalFrame(frame); |
| 2662 | 2681 |
| 2663 RefPtrWillBeRawPtr<Document> document = localFrame->document(); | 2682 RefPtrWillBeRawPtr<Document> document = localFrame->document(); |
| 2664 if (!document) | 2683 if (!document) |
| 2665 return; | 2684 return; |
| 2666 | 2685 |
| 2667 RefPtrWillBeRawPtr<Element> oldFocusedElement = document->focusedElement(); | 2686 RefPtrWillBeRawPtr<Element> oldFocusedElement = document->focusedElement(); |
| 2668 | 2687 |
| 2669 // Clear the focused node. | 2688 // Clear the focused node. |
| 2670 document->setFocusedElement(nullptr); | 2689 document->setFocusedElement(nullptr); |
| 2671 | 2690 |
| (...skipping 426 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3098 if (TextAutosizer* textAutosizer = frame->document()->textAutosizer()) | 3117 if (TextAutosizer* textAutosizer = frame->document()->textAutosizer()) |
| 3099 textAutosizer->updatePageInfoInAllFrames(); | 3118 textAutosizer->updatePageInfoInAllFrames(); |
| 3100 } | 3119 } |
| 3101 } | 3120 } |
| 3102 | 3121 |
| 3103 void WebViewImpl::updateMainFrameLayoutSize() | 3122 void WebViewImpl::updateMainFrameLayoutSize() |
| 3104 { | 3123 { |
| 3105 if (m_fixedLayoutSizeLock || m_shouldAutoResize || !mainFrameImpl()) | 3124 if (m_fixedLayoutSizeLock || m_shouldAutoResize || !mainFrameImpl()) |
| 3106 return; | 3125 return; |
| 3107 | 3126 |
| 3108 RefPtr<FrameView> view = mainFrameImpl()->frameView(); | 3127 FrameView* view = mainFrameImpl()->frameView(); |
| 3128 FrameViewProtector protect(view); |
| 3109 if (!view) | 3129 if (!view) |
| 3110 return; | 3130 return; |
| 3111 | 3131 |
| 3112 WebSize layoutSize = m_size; | 3132 WebSize layoutSize = m_size; |
| 3113 | 3133 |
| 3114 if (settings()->viewportEnabled()) | 3134 if (settings()->viewportEnabled()) |
| 3115 layoutSize = flooredIntSize(m_pageScaleConstraintsSet.pageDefinedConstra
ints().layoutSize); | 3135 layoutSize = flooredIntSize(m_pageScaleConstraintsSet.pageDefinedConstra
ints().layoutSize); |
| 3116 | 3136 |
| 3117 if (page()->settings().forceZeroLayoutHeight()) | 3137 if (page()->settings().forceZeroLayoutHeight()) |
| 3118 layoutSize.height = 0; | 3138 layoutSize.height = 0; |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3176 | 3196 |
| 3177 void WebViewImpl::setFixedLayoutSize(const WebSize& layoutSize) | 3197 void WebViewImpl::setFixedLayoutSize(const WebSize& layoutSize) |
| 3178 { | 3198 { |
| 3179 if (!page() || !page()->mainFrame()->isLocalFrame()) | 3199 if (!page() || !page()->mainFrame()->isLocalFrame()) |
| 3180 return; | 3200 return; |
| 3181 | 3201 |
| 3182 LocalFrame* frame = page()->deprecatedLocalMainFrame(); | 3202 LocalFrame* frame = page()->deprecatedLocalMainFrame(); |
| 3183 if (!frame) | 3203 if (!frame) |
| 3184 return; | 3204 return; |
| 3185 | 3205 |
| 3186 RefPtr<FrameView> view = frame->view(); | 3206 FrameView* view = frame->view(); |
| 3207 FrameViewProtector protect(view); |
| 3187 if (!view) | 3208 if (!view) |
| 3188 return; | 3209 return; |
| 3189 | 3210 |
| 3190 m_fixedLayoutSizeLock = layoutSize.width || layoutSize.height; | 3211 m_fixedLayoutSizeLock = layoutSize.width || layoutSize.height; |
| 3191 | 3212 |
| 3192 if (m_fixedLayoutSizeLock) | 3213 if (m_fixedLayoutSizeLock) |
| 3193 view->setLayoutSize(layoutSize); | 3214 view->setLayoutSize(layoutSize); |
| 3194 else | 3215 else |
| 3195 updateMainFrameLayoutSize(); | 3216 updateMainFrameLayoutSize(); |
| 3196 } | 3217 } |
| (...skipping 1068 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4265 const PageScaleConstraints& constraints = m_pageScaleConstraintsSet.pageDefi
nedConstraints(); | 4286 const PageScaleConstraints& constraints = m_pageScaleConstraintsSet.pageDefi
nedConstraints(); |
| 4266 | 4287 |
| 4267 if (!mainFrameImpl() || !mainFrameImpl()->frameView()) | 4288 if (!mainFrameImpl() || !mainFrameImpl()->frameView()) |
| 4268 return false; | 4289 return false; |
| 4269 | 4290 |
| 4270 return mainFrameImpl()->frameView()->layoutSize().width() == m_size.width | 4291 return mainFrameImpl()->frameView()->layoutSize().width() == m_size.width |
| 4271 || (constraints.minimumScale == constraints.maximumScale && constraints.
minimumScale != -1); | 4292 || (constraints.minimumScale == constraints.maximumScale && constraints.
minimumScale != -1); |
| 4272 } | 4293 } |
| 4273 | 4294 |
| 4274 } // namespace blink | 4295 } // namespace blink |
| OLD | NEW |