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

Side by Side Diff: Source/core/inspector/InspectorOverlay.cpp

Issue 336553003: Change Page::m_mainFrame to be a Frame. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebased Created 6 years, 6 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 | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2011 Google Inc. All rights reserved. 2 * Copyright (C) 2011 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 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. 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 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
146 146
147 static bool buildNodeQuads(Node* node, Vector<FloatQuad>& quads) 147 static bool buildNodeQuads(Node* node, Vector<FloatQuad>& quads)
148 { 148 {
149 RenderObject* renderer = node->renderer(); 149 RenderObject* renderer = node->renderer();
150 LocalFrame* containingFrame = node->document().frame(); 150 LocalFrame* containingFrame = node->document().frame();
151 151
152 if (!renderer || !containingFrame) 152 if (!renderer || !containingFrame)
153 return false; 153 return false;
154 154
155 FrameView* containingView = containingFrame->view(); 155 FrameView* containingView = containingFrame->view();
156 FrameView* mainView = containingFrame->page()->mainFrame()->view(); 156 FrameView* mainView = containingFrame->page()->deprecatedLocalMainFrame()->v iew();
157 IntRect boundingBox = pixelSnappedIntRect(containingView->contentsToRootView (renderer->absoluteBoundingBoxRect())); 157 IntRect boundingBox = pixelSnappedIntRect(containingView->contentsToRootView (renderer->absoluteBoundingBoxRect()));
158 boundingBox.move(mainView->scrollOffset()); 158 boundingBox.move(mainView->scrollOffset());
159 159
160 // RenderSVGRoot should be highlighted through the isBox() code path, all ot her SVG elements should just dump their absoluteQuads(). 160 // RenderSVGRoot should be highlighted through the isBox() code path, all ot her SVG elements should just dump their absoluteQuads().
161 if (renderer->node() && renderer->node()->isSVGElement() && !renderer->isSVG Root()) { 161 if (renderer->node() && renderer->node()->isSVGElement() && !renderer->isSVG Root()) {
162 renderer->absoluteQuads(quads); 162 renderer->absoluteQuads(quads);
163 for (size_t i = 0; i < quads.size(); ++i) 163 for (size_t i = 0; i < quads.size(); ++i)
164 contentsQuadToPage(mainView, containingView, quads[i]); 164 contentsQuadToPage(mainView, containingView, quads[i]);
165 return false; 165 return false;
166 } 166 }
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
264 InspectorOverlay::~InspectorOverlay() 264 InspectorOverlay::~InspectorOverlay()
265 { 265 {
266 ASSERT(!m_overlayPage); 266 ASSERT(!m_overlayPage);
267 } 267 }
268 268
269 void InspectorOverlay::paint(GraphicsContext& context) 269 void InspectorOverlay::paint(GraphicsContext& context)
270 { 270 {
271 if (isEmpty()) 271 if (isEmpty())
272 return; 272 return;
273 GraphicsContextStateSaver stateSaver(context); 273 GraphicsContextStateSaver stateSaver(context);
274 FrameView* view = overlayPage()->mainFrame()->view(); 274 FrameView* view = toLocalFrame(overlayPage()->mainFrame())->view();
275 ASSERT(!view->needsLayout()); 275 ASSERT(!view->needsLayout());
276 view->paint(&context, IntRect(0, 0, view->width(), view->height())); 276 view->paint(&context, IntRect(0, 0, view->width(), view->height()));
277 } 277 }
278 278
279 void InspectorOverlay::invalidate() 279 void InspectorOverlay::invalidate()
280 { 280 {
281 m_client->highlight(); 281 m_client->highlight();
282 } 282 }
283 283
284 bool InspectorOverlay::handleGestureEvent(const PlatformGestureEvent& event) 284 bool InspectorOverlay::handleGestureEvent(const PlatformGestureEvent& event)
285 { 285 {
286 if (isEmpty()) 286 if (isEmpty())
287 return false; 287 return false;
288 288
289 return overlayPage()->mainFrame()->eventHandler().handleGestureEvent(event); 289 return toLocalFrame(overlayPage()->mainFrame())->eventHandler().handleGestur eEvent(event);
290 } 290 }
291 291
292 bool InspectorOverlay::handleMouseEvent(const PlatformMouseEvent& event) 292 bool InspectorOverlay::handleMouseEvent(const PlatformMouseEvent& event)
293 { 293 {
294 if (isEmpty()) 294 if (isEmpty())
295 return false; 295 return false;
296 296
297 EventHandler& eventHandler = overlayPage()->mainFrame()->eventHandler(); 297 EventHandler& eventHandler = toLocalFrame(overlayPage()->mainFrame())->event Handler();
298 bool result; 298 bool result;
299 switch (event.type()) { 299 switch (event.type()) {
300 case PlatformEvent::MouseMoved: 300 case PlatformEvent::MouseMoved:
301 result = eventHandler.handleMouseMoveEvent(event); 301 result = eventHandler.handleMouseMoveEvent(event);
302 break; 302 break;
303 case PlatformEvent::MousePressed: 303 case PlatformEvent::MousePressed:
304 result = eventHandler.handleMousePressEvent(event); 304 result = eventHandler.handleMousePressEvent(event);
305 break; 305 break;
306 case PlatformEvent::MouseReleased: 306 case PlatformEvent::MouseReleased:
307 result = eventHandler.handleMouseReleaseEvent(event); 307 result = eventHandler.handleMouseReleaseEvent(event);
308 break; 308 break;
309 default: 309 default:
310 return false; 310 return false;
311 } 311 }
312 312
313 overlayPage()->mainFrame()->document()->updateLayout(); 313 toLocalFrame(overlayPage()->mainFrame())->document()->updateLayout();
314 return result; 314 return result;
315 } 315 }
316 316
317 bool InspectorOverlay::handleTouchEvent(const PlatformTouchEvent& event) 317 bool InspectorOverlay::handleTouchEvent(const PlatformTouchEvent& event)
318 { 318 {
319 if (isEmpty()) 319 if (isEmpty())
320 return false; 320 return false;
321 321
322 return overlayPage()->mainFrame()->eventHandler().handleTouchEvent(event); 322 return toLocalFrame(overlayPage()->mainFrame())->eventHandler().handleTouchE vent(event);
323 } 323 }
324 324
325 bool InspectorOverlay::handleKeyboardEvent(const PlatformKeyboardEvent& event) 325 bool InspectorOverlay::handleKeyboardEvent(const PlatformKeyboardEvent& event)
326 { 326 {
327 if (isEmpty()) 327 if (isEmpty())
328 return false; 328 return false;
329 329
330 return overlayPage()->mainFrame()->eventHandler().keyEvent(event); 330 return toLocalFrame(overlayPage()->mainFrame())->eventHandler().keyEvent(eve nt);
331 } 331 }
332 332
333 void InspectorOverlay::drawOutline(GraphicsContext* context, const LayoutRect& r ect, const Color& color) 333 void InspectorOverlay::drawOutline(GraphicsContext* context, const LayoutRect& r ect, const Color& color)
334 { 334 {
335 FloatRect outlineRect = rect; 335 FloatRect outlineRect = rect;
336 drawOutlinedQuad(context, outlineRect, Color(), color); 336 drawOutlinedQuad(context, outlineRect, Color(), color);
337 } 337 }
338 338
339 void InspectorOverlay::setPausedInDebuggerMessage(const String* message) 339 void InspectorOverlay::setPausedInDebuggerMessage(const String* message)
340 { 340 {
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
395 return !(hasAlwaysVisibleElements || (hasInvisibleInInspectModeElements && ! m_inspectModeEnabled)); 395 return !(hasAlwaysVisibleElements || (hasInvisibleInInspectModeElements && ! m_inspectModeEnabled));
396 } 396 }
397 397
398 void InspectorOverlay::update() 398 void InspectorOverlay::update()
399 { 399 {
400 if (isEmpty()) { 400 if (isEmpty()) {
401 m_client->hideHighlight(); 401 m_client->hideHighlight();
402 return; 402 return;
403 } 403 }
404 404
405 FrameView* view = m_page->mainFrame()->view(); 405 FrameView* view = m_page->deprecatedLocalMainFrame()->view();
406 if (!view) 406 if (!view)
407 return; 407 return;
408 408
409 // Include scrollbars to avoid masking them by the gutter. 409 // Include scrollbars to avoid masking them by the gutter.
410 IntSize size = view->unscaledVisibleContentSize(IncludeScrollbars); 410 IntSize size = view->unscaledVisibleContentSize(IncludeScrollbars);
411 overlayPage()->mainFrame()->view()->resize(size); 411 toLocalFrame(overlayPage()->mainFrame())->view()->resize(size);
412 412
413 // Clear canvas and paint things. 413 // Clear canvas and paint things.
414 IntRect viewRect = view->visibleContentRect(); 414 IntRect viewRect = view->visibleContentRect();
415 reset(size, viewRect.x(), viewRect.y()); 415 reset(size, viewRect.x(), viewRect.y());
416 416
417 drawNodeHighlight(); 417 drawNodeHighlight();
418 drawQuadHighlight(); 418 drawQuadHighlight();
419 if (!m_inspectModeEnabled) 419 if (!m_inspectModeEnabled)
420 drawPausedInDebuggerMessage(); 420 drawPausedInDebuggerMessage();
421 drawViewSize(); 421 drawViewSize();
422 422
423 // Position DOM elements. 423 // Position DOM elements.
424 overlayPage()->mainFrame()->document()->setNeedsStyleRecalc(SubtreeStyleChan ge); 424 toLocalFrame(overlayPage()->mainFrame())->document()->setNeedsStyleRecalc(Su btreeStyleChange);
425 overlayPage()->mainFrame()->document()->updateLayout(); 425 toLocalFrame(overlayPage()->mainFrame())->document()->updateLayout();
426 426
427 // Kick paint. 427 // Kick paint.
428 m_client->highlight(); 428 m_client->highlight();
429 } 429 }
430 430
431 void InspectorOverlay::hide() 431 void InspectorOverlay::hide()
432 { 432 {
433 m_timer.stop(); 433 m_timer.stop();
434 m_highlightNode.clear(); 434 m_highlightNode.clear();
435 m_eventTargetNode.clear(); 435 m_eventTargetNode.clear();
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
543 RenderObject* renderer = node->renderer(); 543 RenderObject* renderer = node->renderer();
544 if (!renderer || !renderer->isBox() || !toRenderBox(renderer)->shapeOutsideI nfo()) 544 if (!renderer || !renderer->isBox() || !toRenderBox(renderer)->shapeOutsideI nfo())
545 return nullptr; 545 return nullptr;
546 546
547 LocalFrame* containingFrame = node->document().frame(); 547 LocalFrame* containingFrame = node->document().frame();
548 RenderBox* renderBox = toRenderBox(renderer); 548 RenderBox* renderBox = toRenderBox(renderer);
549 const ShapeOutsideInfo* shapeOutsideInfo = renderBox->shapeOutsideInfo(); 549 const ShapeOutsideInfo* shapeOutsideInfo = renderBox->shapeOutsideInfo();
550 550
551 LayoutRect shapeBounds = shapeOutsideInfo->computedShapePhysicalBoundingBox( ); 551 LayoutRect shapeBounds = shapeOutsideInfo->computedShapePhysicalBoundingBox( );
552 FloatQuad shapeQuad = renderBox->localToAbsoluteQuad(FloatRect(shapeBounds)) ; 552 FloatQuad shapeQuad = renderBox->localToAbsoluteQuad(FloatRect(shapeBounds)) ;
553 FrameView* mainView = containingFrame->page()->mainFrame()->view(); 553 FrameView* mainView = containingFrame->page()->deprecatedLocalMainFrame()->v iew();
554 FrameView* containingView = containingFrame->view(); 554 FrameView* containingView = containingFrame->view();
555 contentsQuadToPage(mainView, containingView, shapeQuad); 555 contentsQuadToPage(mainView, containingView, shapeQuad);
556 556
557 Shape::DisplayPaths paths; 557 Shape::DisplayPaths paths;
558 shapeOutsideInfo->computedShape().buildDisplayPaths(paths); 558 shapeOutsideInfo->computedShape().buildDisplayPaths(paths);
559 RefPtr<TypeBuilder::Array<JSONValue> > shapePath = TypeBuilder::Array<JSONVa lue>::create(); 559 RefPtr<TypeBuilder::Array<JSONValue> > shapePath = TypeBuilder::Array<JSONVa lue>::create();
560 RefPtr<TypeBuilder::Array<JSONValue> > marginShapePath = TypeBuilder::Array< JSONValue>::create(); 560 RefPtr<TypeBuilder::Array<JSONValue> > marginShapePath = TypeBuilder::Array< JSONValue>::create();
561 561
562 if (paths.shape.length()) { 562 if (paths.shape.length()) {
563 PathApplyInfo info; 563 PathApplyInfo info;
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
731 731
732 return m_overlayPage.get(); 732 return m_overlayPage.get();
733 } 733 }
734 734
735 void InspectorOverlay::reset(const IntSize& viewportSize, int scrollX, int scrol lY) 735 void InspectorOverlay::reset(const IntSize& viewportSize, int scrollX, int scrol lY)
736 { 736 {
737 RefPtr<JSONObject> resetData = JSONObject::create(); 737 RefPtr<JSONObject> resetData = JSONObject::create();
738 resetData->setNumber("pageScaleFactor", m_page->settings().pinchVirtualViewp ortEnabled() ? 1 : m_page->pageScaleFactor()); 738 resetData->setNumber("pageScaleFactor", m_page->settings().pinchVirtualViewp ortEnabled() ? 1 : m_page->pageScaleFactor());
739 resetData->setNumber("deviceScaleFactor", m_page->deviceScaleFactor()); 739 resetData->setNumber("deviceScaleFactor", m_page->deviceScaleFactor());
740 resetData->setObject("viewportSize", buildObjectForSize(viewportSize)); 740 resetData->setObject("viewportSize", buildObjectForSize(viewportSize));
741 resetData->setNumber("pageZoomFactor", m_page->mainFrame()->pageZoomFactor() ); 741 resetData->setNumber("pageZoomFactor", m_page->deprecatedLocalMainFrame()->p ageZoomFactor());
742 resetData->setNumber("scrollX", scrollX); 742 resetData->setNumber("scrollX", scrollX);
743 resetData->setNumber("scrollY", scrollY); 743 resetData->setNumber("scrollY", scrollY);
744 evaluateInOverlay("reset", resetData.release()); 744 evaluateInOverlay("reset", resetData.release());
745 } 745 }
746 746
747 void InspectorOverlay::evaluateInOverlay(const String& method, const String& arg ument) 747 void InspectorOverlay::evaluateInOverlay(const String& method, const String& arg ument)
748 { 748 {
749 RefPtr<JSONArray> command = JSONArray::create(); 749 RefPtr<JSONArray> command = JSONArray::create();
750 command->pushString(method); 750 command->pushString(method);
751 command->pushString(argument); 751 command->pushString(argument);
752 overlayPage()->mainFrame()->script().executeScriptInMainWorld("dispatch(" + command->toJSONString() + ")", ScriptController::ExecuteScriptWhenScriptsDisable d); 752 toLocalFrame(overlayPage()->mainFrame())->script().executeScriptInMainWorld( "dispatch(" + command->toJSONString() + ")", ScriptController::ExecuteScriptWhen ScriptsDisabled);
753 } 753 }
754 754
755 void InspectorOverlay::evaluateInOverlay(const String& method, PassRefPtr<JSONVa lue> argument) 755 void InspectorOverlay::evaluateInOverlay(const String& method, PassRefPtr<JSONVa lue> argument)
756 { 756 {
757 RefPtr<JSONArray> command = JSONArray::create(); 757 RefPtr<JSONArray> command = JSONArray::create();
758 command->pushString(method); 758 command->pushString(method);
759 command->pushValue(argument); 759 command->pushValue(argument);
760 overlayPage()->mainFrame()->script().executeScriptInMainWorld("dispatch(" + command->toJSONString() + ")", ScriptController::ExecuteScriptWhenScriptsDisable d); 760 toLocalFrame(overlayPage()->mainFrame())->script().executeScriptInMainWorld( "dispatch(" + command->toJSONString() + ")", ScriptController::ExecuteScriptWhen ScriptsDisabled);
761 } 761 }
762 762
763 void InspectorOverlay::onTimer(Timer<InspectorOverlay>*) 763 void InspectorOverlay::onTimer(Timer<InspectorOverlay>*)
764 { 764 {
765 m_drawViewSize = false; 765 m_drawViewSize = false;
766 update(); 766 update();
767 } 767 }
768 768
769 bool InspectorOverlay::getBoxModel(Node* node, Vector<FloatQuad>* quads) 769 bool InspectorOverlay::getBoxModel(Node* node, Vector<FloatQuad>* quads)
770 { 770 {
771 return buildNodeQuads(node, *quads); 771 return buildNodeQuads(node, *quads);
772 } 772 }
773 773
774 void InspectorOverlay::freePage() 774 void InspectorOverlay::freePage()
775 { 775 {
776 if (m_overlayPage) { 776 if (m_overlayPage) {
777 // FIXME: This logic is duplicated in SVGImage and WebViewImpl. Perhaps it can be combined 777 // FIXME: This logic is duplicated in SVGImage and WebViewImpl. Perhaps it can be combined
778 // into Page's destructor. 778 // into Page's destructor.
779 m_overlayPage->mainFrame()->loader().frameDetached(); 779 toLocalFrame(m_overlayPage->mainFrame())->loader().frameDetached();
780 m_overlayPage->willBeDestroyed(); 780 m_overlayPage->willBeDestroyed();
781 m_overlayPage.clear(); 781 m_overlayPage.clear();
782 } 782 }
783 m_overlayChromeClient.clear(); 783 m_overlayChromeClient.clear();
784 m_timer.stop(); 784 m_timer.stop();
785 785
786 // This will clear internal structures and issue update to the client. Safe to call last. 786 // This will clear internal structures and issue update to the client. Safe to call last.
787 hideHighlight(); 787 hideHighlight();
788 } 788 }
789 789
790 void InspectorOverlay::startedRecordingProfile() 790 void InspectorOverlay::startedRecordingProfile()
791 { 791 {
792 if (!m_activeProfilerCount++) 792 if (!m_activeProfilerCount++)
793 freePage(); 793 freePage();
794 } 794 }
795 795
796 } // namespace WebCore 796 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/inspector/InspectorLayerTreeAgent.cpp ('k') | Source/core/inspector/InspectorPageAgent.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698