| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2014 Google Inc. All rights reserved. | 2 * Copyright (C) 2014 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 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 91 WebFrameWidgetImpl::WebFrameWidgetImpl(WebWidgetClient* client, WebLocalFrame* l
ocalRoot) | 91 WebFrameWidgetImpl::WebFrameWidgetImpl(WebWidgetClient* client, WebLocalFrame* l
ocalRoot) |
| 92 : m_client(client) | 92 : m_client(client) |
| 93 , m_localRoot(toWebLocalFrameImpl(localRoot)) | 93 , m_localRoot(toWebLocalFrameImpl(localRoot)) |
| 94 , m_layerTreeView(nullptr) | 94 , m_layerTreeView(nullptr) |
| 95 , m_rootLayer(nullptr) | 95 , m_rootLayer(nullptr) |
| 96 , m_rootGraphicsLayer(nullptr) | 96 , m_rootGraphicsLayer(nullptr) |
| 97 , m_isAcceleratedCompositingActive(false) | 97 , m_isAcceleratedCompositingActive(false) |
| 98 , m_layerTreeViewClosed(false) | 98 , m_layerTreeViewClosed(false) |
| 99 , m_suppressNextKeypressEvent(false) | 99 , m_suppressNextKeypressEvent(false) |
| 100 , m_ignoreInputEvents(false) | 100 , m_ignoreInputEvents(false) |
| 101 , m_isTransparent(false) |
| 101 #if ENABLE(OILPAN) | 102 #if ENABLE(OILPAN) |
| 102 , m_selfKeepAlive(this) | 103 , m_selfKeepAlive(this) |
| 103 #endif | 104 #endif |
| 104 { | 105 { |
| 105 ASSERT(m_localRoot->frame()->isLocalRoot()); | 106 ASSERT(m_localRoot->frame()->isLocalRoot()); |
| 106 initializeLayerTreeView(); | 107 initializeLayerTreeView(); |
| 107 m_localRoot->setFrameWidget(this); | 108 m_localRoot->setFrameWidget(this); |
| 108 allInstances().add(this); | 109 allInstances().add(this); |
| 110 |
| 111 if (localRoot->parent()) |
| 112 setIsTransparent(true); |
| 109 } | 113 } |
| 110 | 114 |
| 111 WebFrameWidgetImpl::~WebFrameWidgetImpl() | 115 WebFrameWidgetImpl::~WebFrameWidgetImpl() |
| 112 { | 116 { |
| 113 } | 117 } |
| 114 | 118 |
| 115 DEFINE_TRACE(WebFrameWidgetImpl) | 119 DEFINE_TRACE(WebFrameWidgetImpl) |
| 116 { | 120 { |
| 117 visitor->trace(m_localRoot); | 121 visitor->trace(m_localRoot); |
| 118 visitor->trace(m_mouseCaptureNode); | 122 visitor->trace(m_mouseCaptureNode); |
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 271 | 275 |
| 272 // FIXME: We need access to page scale information from the WebView. | 276 // FIXME: We need access to page scale information from the WebView. |
| 273 m_layerTreeView->setPageScaleFactorAndLimits(1, 1, 1); | 277 m_layerTreeView->setPageScaleFactorAndLimits(1, 1, 1); |
| 274 } | 278 } |
| 275 | 279 |
| 276 void WebFrameWidgetImpl::updateLayerTreeBackgroundColor() | 280 void WebFrameWidgetImpl::updateLayerTreeBackgroundColor() |
| 277 { | 281 { |
| 278 if (!m_layerTreeView) | 282 if (!m_layerTreeView) |
| 279 return; | 283 return; |
| 280 | 284 |
| 281 m_layerTreeView->setBackgroundColor(alphaChannel(view()->backgroundColorOver
ride()) ? view()->backgroundColorOverride() : view()->backgroundColor()); | 285 m_layerTreeView->setBackgroundColor(backgroundColor()); |
| 282 } | 286 } |
| 283 | 287 |
| 284 void WebFrameWidgetImpl::updateLayerTreeDeviceScaleFactor() | 288 void WebFrameWidgetImpl::updateLayerTreeDeviceScaleFactor() |
| 285 { | 289 { |
| 286 ASSERT(page()); | 290 ASSERT(page()); |
| 287 ASSERT(m_layerTreeView); | 291 ASSERT(m_layerTreeView); |
| 288 | 292 |
| 289 float deviceScaleFactor = page()->deviceScaleFactor(); | 293 float deviceScaleFactor = page()->deviceScaleFactor(); |
| 290 m_layerTreeView->setDeviceScaleFactor(deviceScaleFactor); | 294 m_layerTreeView->setDeviceScaleFactor(deviceScaleFactor); |
| 291 } | 295 } |
| 292 | 296 |
| 297 void WebFrameWidgetImpl::setIsTransparent(bool isTransparent) |
| 298 { |
| 299 m_isTransparent = isTransparent; |
| 300 |
| 301 if (m_layerTreeView) |
| 302 m_layerTreeView->setHasTransparentBackground(isTransparent); |
| 303 } |
| 304 |
| 293 bool WebFrameWidgetImpl::isTransparent() const | 305 bool WebFrameWidgetImpl::isTransparent() const |
| 294 { | 306 { |
| 295 // FIXME: This might need to proxy to the WebView's isTransparent(). | 307 return m_isTransparent; |
| 296 return false; | |
| 297 } | 308 } |
| 298 | 309 |
| 299 void WebFrameWidgetImpl::layoutAndPaintAsync(WebLayoutAndPaintAsyncCallback* cal
lback) | 310 void WebFrameWidgetImpl::layoutAndPaintAsync(WebLayoutAndPaintAsyncCallback* cal
lback) |
| 300 { | 311 { |
| 301 m_layerTreeView->layoutAndPaintAsync(callback); | 312 m_layerTreeView->layoutAndPaintAsync(callback); |
| 302 } | 313 } |
| 303 | 314 |
| 304 void WebFrameWidgetImpl::compositeAndReadbackAsync(WebCompositeAndReadbackAsyncC
allback* callback) | 315 void WebFrameWidgetImpl::compositeAndReadbackAsync(WebCompositeAndReadbackAsyncC
allback* callback) |
| 305 { | 316 { |
| 306 m_layerTreeView->compositeAndReadbackAsync(callback); | 317 m_layerTreeView->compositeAndReadbackAsync(callback); |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 374 { | 385 { |
| 375 page()->setIsCursorVisible(isVisible); | 386 page()->setIsCursorVisible(isVisible); |
| 376 } | 387 } |
| 377 | 388 |
| 378 bool WebFrameWidgetImpl::hasTouchEventHandlersAt(const WebPoint& point) | 389 bool WebFrameWidgetImpl::hasTouchEventHandlersAt(const WebPoint& point) |
| 379 { | 390 { |
| 380 // FIXME: Implement this. Note that the point must be divided by pageScaleFa
ctor. | 391 // FIXME: Implement this. Note that the point must be divided by pageScaleFa
ctor. |
| 381 return true; | 392 return true; |
| 382 } | 393 } |
| 383 | 394 |
| 395 void WebFrameWidgetImpl::setBaseBackgroundColor(WebColor color) |
| 396 { |
| 397 if (m_baseBackgroundColor == color) |
| 398 return; |
| 399 |
| 400 m_baseBackgroundColor = color; |
| 401 |
| 402 m_localRoot->frameView()->setBaseBackgroundColor(color); |
| 403 |
| 404 updateAllLifecyclePhases(); |
| 405 } |
| 406 |
| 384 void WebFrameWidgetImpl::scheduleAnimation() | 407 void WebFrameWidgetImpl::scheduleAnimation() |
| 385 { | 408 { |
| 386 if (m_layerTreeView) { | 409 if (m_layerTreeView) { |
| 387 m_layerTreeView->setNeedsBeginFrame(); | 410 m_layerTreeView->setNeedsBeginFrame(); |
| 388 return; | 411 return; |
| 389 } | 412 } |
| 390 if (m_client) | 413 if (m_client) |
| 391 m_client->scheduleAnimation(); | 414 m_client->scheduleAnimation(); |
| 392 } | 415 } |
| 393 | 416 |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 476 WebTextInputType WebFrameWidgetImpl::textInputType() | 499 WebTextInputType WebFrameWidgetImpl::textInputType() |
| 477 { | 500 { |
| 478 return view()->textInputType(); | 501 return view()->textInputType(); |
| 479 } | 502 } |
| 480 | 503 |
| 481 WebColor WebFrameWidgetImpl::backgroundColor() const | 504 WebColor WebFrameWidgetImpl::backgroundColor() const |
| 482 { | 505 { |
| 483 if (isTransparent()) | 506 if (isTransparent()) |
| 484 return Color::transparent; | 507 return Color::transparent; |
| 485 if (!m_localRoot->frameView()) | 508 if (!m_localRoot->frameView()) |
| 486 return view()->backgroundColor(); | 509 return m_baseBackgroundColor; |
| 487 FrameView* view = m_localRoot->frameView(); | 510 FrameView* view = m_localRoot->frameView(); |
| 488 return view->documentBackgroundColor().rgb(); | 511 return view->documentBackgroundColor().rgb(); |
| 489 } | 512 } |
| 490 | 513 |
| 491 bool WebFrameWidgetImpl::selectionBounds(WebRect& anchor, WebRect& focus) const | 514 bool WebFrameWidgetImpl::selectionBounds(WebRect& anchor, WebRect& focus) const |
| 492 { | 515 { |
| 493 const Frame* frame = focusedCoreFrame(); | 516 const Frame* frame = focusedCoreFrame(); |
| 494 if (!frame || !frame->isLocalFrame()) | 517 if (!frame || !frame->isLocalFrame()) |
| 495 return false; | 518 return false; |
| 496 | 519 |
| (...skipping 585 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1082 | 1105 |
| 1083 HitTestResult WebFrameWidgetImpl::hitTestResultForRootFramePos(const IntPoint& p
osInRootFrame) | 1106 HitTestResult WebFrameWidgetImpl::hitTestResultForRootFramePos(const IntPoint& p
osInRootFrame) |
| 1084 { | 1107 { |
| 1085 IntPoint docPoint(m_localRoot->frame()->view()->rootFrameToContents(posInRoo
tFrame)); | 1108 IntPoint docPoint(m_localRoot->frame()->view()->rootFrameToContents(posInRoo
tFrame)); |
| 1086 HitTestResult result = m_localRoot->frame()->eventHandler().hitTestResultAtP
oint(docPoint, HitTestRequest::ReadOnly | HitTestRequest::Active); | 1109 HitTestResult result = m_localRoot->frame()->eventHandler().hitTestResultAtP
oint(docPoint, HitTestRequest::ReadOnly | HitTestRequest::Active); |
| 1087 result.setToShadowHostIfInUserAgentShadowRoot(); | 1110 result.setToShadowHostIfInUserAgentShadowRoot(); |
| 1088 return result; | 1111 return result; |
| 1089 } | 1112 } |
| 1090 | 1113 |
| 1091 } // namespace blink | 1114 } // namespace blink |
| OLD | NEW |