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

Side by Side Diff: Source/core/page/Page.cpp

Issue 302213002: Convert page-level classes to handle RemoteFrames from FrameTree (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: bug fix 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
« no previous file with comments | « Source/core/page/InjectedStyleSheets.cpp ('k') | Source/core/page/PageAnimator.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) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. All R ights Reserved. 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. All R ights Reserved.
3 * Copyright (C) 2008 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/) 3 * Copyright (C) 2008 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/)
4 * 4 *
5 * This library is free software; you can redistribute it and/or 5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Library General Public 6 * modify it under the terms of the GNU Library General Public
7 * License as published by the Free Software Foundation; either 7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version. 8 * version 2 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful, 9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 } 80 }
81 81
82 82
83 void Page::networkStateChanged(bool online) 83 void Page::networkStateChanged(bool online)
84 { 84 {
85 Vector<RefPtr<LocalFrame> > frames; 85 Vector<RefPtr<LocalFrame> > frames;
86 86
87 // Get all the frames of all the pages in all the page groups 87 // Get all the frames of all the pages in all the page groups
88 HashSet<Page*>::iterator end = allPages().end(); 88 HashSet<Page*>::iterator end = allPages().end();
89 for (HashSet<Page*>::iterator it = allPages().begin(); it != end; ++it) { 89 for (HashSet<Page*>::iterator it = allPages().begin(); it != end; ++it) {
90 for (LocalFrame* frame = (*it)->mainFrame(); frame; frame = frame->tree( ).traverseNext()) 90 for (Frame* frame = (*it)->mainFrame(); frame; frame = frame->tree().tra verseNext()) {
91 frames.append(frame); 91 // FIXME: There is currently no way to dispatch events to out-of-pro cess frames.
92 if (frame->isLocalFrame())
93 frames.append(toLocalFrame(frame));
94 }
92 InspectorInstrumentation::networkStateChanged(*it, online); 95 InspectorInstrumentation::networkStateChanged(*it, online);
93 } 96 }
94 97
95 AtomicString eventName = online ? EventTypeNames::online : EventTypeNames::o ffline; 98 AtomicString eventName = online ? EventTypeNames::online : EventTypeNames::o ffline;
96 for (unsigned i = 0; i < frames.size(); i++) 99 for (unsigned i = 0; i < frames.size(); i++)
97 frames[i]->domWindow()->dispatchEvent(Event::create(eventName)); 100 frames[i]->domWindow()->dispatchEvent(Event::create(eventName));
98 } 101 }
99 102
100 float deviceScaleFactor(LocalFrame* frame) 103 float deviceScaleFactor(LocalFrame* frame)
101 { 104 {
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 218
216 void Page::setOpenedByDOM() 219 void Page::setOpenedByDOM()
217 { 220 {
218 m_openedByDOM = true; 221 m_openedByDOM = true;
219 } 222 }
220 223
221 void Page::scheduleForcedStyleRecalcForAllPages() 224 void Page::scheduleForcedStyleRecalcForAllPages()
222 { 225 {
223 HashSet<Page*>::iterator end = allPages().end(); 226 HashSet<Page*>::iterator end = allPages().end();
224 for (HashSet<Page*>::iterator it = allPages().begin(); it != end; ++it) 227 for (HashSet<Page*>::iterator it = allPages().begin(); it != end; ++it)
225 for (LocalFrame* frame = (*it)->mainFrame(); frame; frame = frame->tree( ).traverseNext()) 228 for (Frame* frame = (*it)->mainFrame(); frame; frame = frame->tree().tra verseNext()) {
226 frame->document()->setNeedsStyleRecalc(SubtreeStyleChange); 229 if (frame->isLocalFrame())
230 toLocalFrame(frame)->document()->setNeedsStyleRecalc(SubtreeStyl eChange);
231 }
227 } 232 }
228 233
229 void Page::setNeedsRecalcStyleInAllFrames() 234 void Page::setNeedsRecalcStyleInAllFrames()
230 { 235 {
231 for (LocalFrame* frame = mainFrame(); frame; frame = frame->tree().traverseN ext()) 236 for (Frame* frame = mainFrame(); frame; frame = frame->tree().traverseNext() ) {
232 frame->document()->styleResolverChanged(); 237 if (frame->isLocalFrame())
238 toLocalFrame(frame)->document()->styleResolverChanged();
239 }
233 } 240 }
234 241
235 void Page::setNeedsLayoutInAllFrames() 242 void Page::setNeedsLayoutInAllFrames()
236 { 243 {
237 for (LocalFrame* frame = mainFrame(); frame; frame = frame->tree().traverseN ext()) { 244 for (Frame* frame = mainFrame(); frame; frame = frame->tree().traverseNext() ) {
238 if (FrameView* view = frame->view()) { 245 if (!frame->isLocalFrame())
246 continue;
247 if (FrameView* view = toLocalFrame(frame)->view()) {
239 view->setNeedsLayout(); 248 view->setNeedsLayout();
240 view->scheduleRelayout(); 249 view->scheduleRelayout();
241 } 250 }
242 } 251 }
243 } 252 }
244 253
245 void Page::refreshPlugins(bool reload) 254 void Page::refreshPlugins(bool reload)
246 { 255 {
247 if (allPages().isEmpty()) 256 if (allPages().isEmpty())
248 return; 257 return;
249 258
250 PluginData::refresh(); 259 PluginData::refresh();
251 260
252 Vector<RefPtr<LocalFrame> > framesNeedingReload; 261 Vector<RefPtr<LocalFrame> > framesNeedingReload;
253 262
254 HashSet<Page*>::iterator end = allPages().end(); 263 HashSet<Page*>::iterator end = allPages().end();
255 for (HashSet<Page*>::iterator it = allPages().begin(); it != end; ++it) { 264 for (HashSet<Page*>::iterator it = allPages().begin(); it != end; ++it) {
256 Page* page = *it; 265 Page* page = *it;
257 266
258 // Clear out the page's plug-in data. 267 // Clear out the page's plug-in data.
259 if (page->m_pluginData) 268 if (page->m_pluginData)
260 page->m_pluginData = nullptr; 269 page->m_pluginData = nullptr;
261 270
262 if (!reload) 271 if (!reload)
263 continue; 272 continue;
264 273
265 for (LocalFrame* frame = (*it)->mainFrame(); frame; frame = frame->tree( ).traverseNext()) { 274 for (Frame* frame = (*it)->mainFrame(); frame; frame = frame->tree().tra verseNext()) {
266 if (frame->document()->containsPlugins()) 275 if (frame->isLocalFrame() && toLocalFrame(frame)->document()->contai nsPlugins())
267 framesNeedingReload.append(frame); 276 framesNeedingReload.append(toLocalFrame(frame));
268 } 277 }
269 } 278 }
270 279
271 for (size_t i = 0; i < framesNeedingReload.size(); ++i) 280 for (size_t i = 0; i < framesNeedingReload.size(); ++i)
272 framesNeedingReload[i]->loader().reload(); 281 framesNeedingReload[i]->loader().reload();
273 } 282 }
274 283
275 PluginData* Page::pluginData() const 284 PluginData* Page::pluginData() const
276 { 285 {
277 if (!mainFrame()->loader().allowPlugins(NotAboutToInstantiatePlugin)) 286 if (!mainFrame()->loader().allowPlugins(NotAboutToInstantiatePlugin))
278 return 0; 287 return 0;
279 if (!m_pluginData) 288 if (!m_pluginData)
280 m_pluginData = PluginData::create(this); 289 m_pluginData = PluginData::create(this);
281 return m_pluginData.get(); 290 return m_pluginData.get();
282 } 291 }
283 292
284 static LocalFrame* incrementFrame(LocalFrame* curr, bool forward, bool wrapFlag) 293 static Frame* incrementFrame(Frame* curr, bool forward, bool wrapFlag)
285 { 294 {
286 return forward 295 return forward
287 ? curr->tree().traverseNextWithWrap(wrapFlag) 296 ? curr->tree().traverseNextWithWrap(wrapFlag)
288 : curr->tree().traversePreviousWithWrap(wrapFlag); 297 : curr->tree().traversePreviousWithWrap(wrapFlag);
289 } 298 }
290 299
291 void Page::unmarkAllTextMatches() 300 void Page::unmarkAllTextMatches()
292 { 301 {
293 if (!mainFrame()) 302 if (!mainFrame())
294 return; 303 return;
295 304
296 LocalFrame* frame = mainFrame(); 305 Frame* frame = mainFrame();
297 do { 306 do {
298 frame->document()->markers().removeMarkers(DocumentMarker::TextMatch); 307 if (frame->isLocalFrame())
308 toLocalFrame(frame)->document()->markers().removeMarkers(DocumentMar ker::TextMatch);
299 frame = incrementFrame(frame, true, false); 309 frame = incrementFrame(frame, true, false);
300 } while (frame); 310 } while (frame);
301 } 311 }
302 312
303 void Page::setValidationMessageClient(PassOwnPtr<ValidationMessageClient> client ) 313 void Page::setValidationMessageClient(PassOwnPtr<ValidationMessageClient> client )
304 { 314 {
305 m_validationMessageClient = client; 315 m_validationMessageClient = client;
306 } 316 }
307 317
308 void Page::setDefersLoading(bool defers) 318 void Page::setDefersLoading(bool defers)
309 { 319 {
310 if (defers == m_defersLoading) 320 if (defers == m_defersLoading)
311 return; 321 return;
312 322
313 m_defersLoading = defers; 323 m_defersLoading = defers;
314 for (LocalFrame* frame = mainFrame(); frame; frame = frame->tree().traverseN ext()) 324 for (Frame* frame = mainFrame(); frame; frame = frame->tree().traverseNext() ) {
315 frame->loader().setDefersLoading(defers); 325 if (frame->isLocalFrame())
326 toLocalFrame(frame)->loader().setDefersLoading(defers);
327 }
316 } 328 }
317 329
318 void Page::setPageScaleFactor(float scale, const IntPoint& origin) 330 void Page::setPageScaleFactor(float scale, const IntPoint& origin)
319 { 331 {
320 FrameView* view = mainFrame()->view(); 332 FrameView* view = mainFrame()->view();
321 PinchViewport& viewport = frameHost().pinchViewport(); 333 PinchViewport& viewport = frameHost().pinchViewport();
322 334
323 if (scale != viewport.scale()) { 335 if (scale != viewport.scale()) {
324 viewport.setScale(scale); 336 viewport.setScale(scale);
325 337
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
358 mainFrame()->deviceOrPageScaleFactorChanged(); 370 mainFrame()->deviceOrPageScaleFactorChanged();
359 m_chrome->client().deviceOrPageScaleFactorChanged(); 371 m_chrome->client().deviceOrPageScaleFactorChanged();
360 } 372 }
361 } 373 }
362 374
363 void Page::allVisitedStateChanged() 375 void Page::allVisitedStateChanged()
364 { 376 {
365 HashSet<Page*>::iterator pagesEnd = ordinaryPages().end(); 377 HashSet<Page*>::iterator pagesEnd = ordinaryPages().end();
366 for (HashSet<Page*>::iterator it = ordinaryPages().begin(); it != pagesEnd; ++it) { 378 for (HashSet<Page*>::iterator it = ordinaryPages().begin(); it != pagesEnd; ++it) {
367 Page* page = *it; 379 Page* page = *it;
368 for (LocalFrame* frame = page->m_mainFrame.get(); frame; frame = frame-> tree().traverseNext()) 380 for (Frame* frame = page->m_mainFrame.get(); frame; frame = frame->tree( ).traverseNext()) {
369 frame->document()->visitedLinkState().invalidateStyleForAllLinks(); 381 if (frame->isLocalFrame())
382 toLocalFrame(frame)->document()->visitedLinkState().invalidateSt yleForAllLinks();
383 }
370 } 384 }
371 } 385 }
372 386
373 void Page::visitedStateChanged(LinkHash linkHash) 387 void Page::visitedStateChanged(LinkHash linkHash)
374 { 388 {
375 HashSet<Page*>::iterator pagesEnd = ordinaryPages().end(); 389 HashSet<Page*>::iterator pagesEnd = ordinaryPages().end();
376 for (HashSet<Page*>::iterator it = ordinaryPages().begin(); it != pagesEnd; ++it) { 390 for (HashSet<Page*>::iterator it = ordinaryPages().begin(); it != pagesEnd; ++it) {
377 Page* page = *it; 391 Page* page = *it;
378 for (LocalFrame* frame = page->m_mainFrame.get(); frame; frame = frame-> tree().traverseNext()) 392 for (Frame* frame = page->m_mainFrame.get(); frame; frame = frame->tree( ).traverseNext()) {
379 frame->document()->visitedLinkState().invalidateStyleForLink(linkHas h); 393 if (frame->isLocalFrame())
394 toLocalFrame(frame)->document()->visitedLinkState().invalidateSt yleForLink(linkHash);
395 }
380 } 396 }
381 } 397 }
382 398
383 StorageNamespace* Page::sessionStorage(bool optionalCreate) 399 StorageNamespace* Page::sessionStorage(bool optionalCreate)
384 { 400 {
385 if (!m_sessionStorage && optionalCreate) 401 if (!m_sessionStorage && optionalCreate)
386 m_sessionStorage = m_storageClient->createSessionStorageNamespace(); 402 m_sessionStorage = m_storageClient->createSessionStorageNamespace();
387 return m_sessionStorage.get(); 403 return m_sessionStorage.get();
388 } 404 }
389 405
390 void Page::setTimerAlignmentInterval(double interval) 406 void Page::setTimerAlignmentInterval(double interval)
391 { 407 {
392 if (interval == m_timerAlignmentInterval) 408 if (interval == m_timerAlignmentInterval)
393 return; 409 return;
394 410
395 m_timerAlignmentInterval = interval; 411 m_timerAlignmentInterval = interval;
396 for (LocalFrame* frame = mainFrame(); frame; frame = frame->tree().traverseN extWithWrap(false)) { 412 for (Frame* frame = mainFrame(); frame; frame = frame->tree().traverseNextWi thWrap(false)) {
397 if (frame->document()) 413 if (frame->isLocalFrame() && toLocalFrame(frame)->document())
398 frame->document()->didChangeTimerAlignmentInterval(); 414 toLocalFrame(frame)->document()->didChangeTimerAlignmentInterval();
399 } 415 }
400 } 416 }
401 417
402 double Page::timerAlignmentInterval() const 418 double Page::timerAlignmentInterval() const
403 { 419 {
404 return m_timerAlignmentInterval; 420 return m_timerAlignmentInterval;
405 } 421 }
406 422
407 #if !ASSERT_DISABLED 423 #if !ASSERT_DISABLED
408 void Page::checkSubframeCountConsistency() const 424 void Page::checkSubframeCountConsistency() const
409 { 425 {
410 ASSERT(m_subframeCount >= 0); 426 ASSERT(m_subframeCount >= 0);
411 427
412 int subframeCount = 0; 428 int subframeCount = 0;
413 for (LocalFrame* frame = mainFrame(); frame; frame = frame->tree().traverseN ext()) 429 for (Frame* frame = mainFrame(); frame; frame = frame->tree().traverseNext() )
414 ++subframeCount; 430 ++subframeCount;
415 431
416 ASSERT(m_subframeCount + 1 == subframeCount); 432 ASSERT(m_subframeCount + 1 == subframeCount);
417 } 433 }
418 #endif 434 #endif
419 435
420 void Page::setVisibilityState(PageVisibilityState visibilityState, bool isInitia lState) 436 void Page::setVisibilityState(PageVisibilityState visibilityState, bool isInitia lState)
421 { 437 {
422 if (m_visibilityState == visibilityState) 438 if (m_visibilityState == visibilityState)
423 return; 439 return;
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
463 break; 479 break;
464 case SettingsDelegate::ViewportDescriptionChange: 480 case SettingsDelegate::ViewportDescriptionChange:
465 if (mainFrame()) 481 if (mainFrame())
466 mainFrame()->document()->updateViewportDescription(); 482 mainFrame()->document()->updateViewportDescription();
467 break; 483 break;
468 case SettingsDelegate::MediaTypeChange: 484 case SettingsDelegate::MediaTypeChange:
469 m_mainFrame->view()->setMediaType(AtomicString(settings().mediaTypeOverr ide())); 485 m_mainFrame->view()->setMediaType(AtomicString(settings().mediaTypeOverr ide()));
470 setNeedsRecalcStyleInAllFrames(); 486 setNeedsRecalcStyleInAllFrames();
471 break; 487 break;
472 case SettingsDelegate::DNSPrefetchingChange: 488 case SettingsDelegate::DNSPrefetchingChange:
473 for (LocalFrame* frame = mainFrame(); frame; frame = frame->tree().trave rseNext()) 489 for (Frame* frame = mainFrame(); frame; frame = frame->tree().traverseNe xt()) {
474 frame->document()->initDNSPrefetch(); 490 if (frame->isLocalFrame())
491 toLocalFrame(frame)->document()->initDNSPrefetch();
492 }
475 break; 493 break;
476 case SettingsDelegate::MultisamplingChange: { 494 case SettingsDelegate::MultisamplingChange: {
477 WillBeHeapHashSet<RawPtrWillBeWeakMember<MultisamplingChangedObserver> > ::iterator stop = m_multisamplingChangedObservers.end(); 495 WillBeHeapHashSet<RawPtrWillBeWeakMember<MultisamplingChangedObserver> > ::iterator stop = m_multisamplingChangedObservers.end();
478 for (WillBeHeapHashSet<RawPtrWillBeWeakMember<MultisamplingChangedObserv er> >::iterator it = m_multisamplingChangedObservers.begin(); it != stop; ++it) 496 for (WillBeHeapHashSet<RawPtrWillBeWeakMember<MultisamplingChangedObserv er> >::iterator it = m_multisamplingChangedObservers.begin(); it != stop; ++it)
479 (*it)->multisamplingChanged(m_settings->openGLMultisamplingEnabled() ); 497 (*it)->multisamplingChanged(m_settings->openGLMultisamplingEnabled() );
480 break; 498 break;
481 } 499 }
482 case SettingsDelegate::ImageLoadingChange: 500 case SettingsDelegate::ImageLoadingChange:
483 for (LocalFrame* frame = mainFrame(); frame; frame = frame->tree().trave rseNext()) { 501 for (Frame* frame = mainFrame(); frame; frame = frame->tree().traverseNe xt()) {
484 frame->document()->fetcher()->setImagesEnabled(settings().imagesEnab led()); 502 if (frame->isLocalFrame()) {
485 frame->document()->fetcher()->setAutoLoadImages(settings().loadsImag esAutomatically()); 503 toLocalFrame(frame)->document()->fetcher()->setImagesEnabled(set tings().imagesEnabled());
504 toLocalFrame(frame)->document()->fetcher()->setAutoLoadImages(se ttings().loadsImagesAutomatically());
505 }
486 } 506 }
487 break; 507 break;
488 case SettingsDelegate::TextAutosizingChange: 508 case SettingsDelegate::TextAutosizingChange:
489 if (!mainFrame()) 509 if (!mainFrame())
490 break; 510 break;
491 if (FastTextAutosizer* textAutosizer = mainFrame()->document()->fastText Autosizer()) { 511 if (FastTextAutosizer* textAutosizer = mainFrame()->document()->fastText Autosizer()) {
492 textAutosizer->updatePageInfoInAllFrames(); 512 textAutosizer->updatePageInfoInAllFrames();
493 } else { 513 } else {
494 for (LocalFrame* frame = mainFrame(); frame; frame = frame->tree().t raverseNext()) { 514 for (Frame* frame = mainFrame(); frame; frame = frame->tree().traver seNext()) {
495 if (TextAutosizer* textAutosizer = frame->document()->textAutosi zer()) 515 if (!frame->isLocalFrame())
516 continue;
517 if (TextAutosizer* textAutosizer = toLocalFrame(frame)->document ()->textAutosizer())
496 textAutosizer->recalculateMultipliers(); 518 textAutosizer->recalculateMultipliers();
497 } 519 }
498 // TextAutosizing updates RenderStyle during layout phase (via TextA utosizer::processSubtree). 520 // TextAutosizing updates RenderStyle during layout phase (via TextA utosizer::processSubtree).
499 // We should invoke setNeedsLayout here. 521 // We should invoke setNeedsLayout here.
500 setNeedsLayoutInAllFrames(); 522 setNeedsLayoutInAllFrames();
501 } 523 }
502 break; 524 break;
503 case SettingsDelegate::ScriptEnableChange: 525 case SettingsDelegate::ScriptEnableChange:
504 m_inspectorController->scriptsEnabled(settings().scriptEnabled()); 526 m_inspectorController->scriptsEnabled(settings().scriptEnabled());
505 break; 527 break;
506 case SettingsDelegate::FontFamilyChange: 528 case SettingsDelegate::FontFamilyChange:
507 for (LocalFrame* frame = mainFrame(); frame; frame = frame->tree().trave rseNext()) 529 for (Frame* frame = mainFrame(); frame; frame = frame->tree().traverseNe xt()) {
508 frame->document()->styleEngine()->updateGenericFontFamilySettings(); 530 if (frame->isLocalFrame())
531 toLocalFrame(frame)->document()->styleEngine()->updateGenericFon tFamilySettings();
532 }
509 setNeedsRecalcStyleInAllFrames(); 533 setNeedsRecalcStyleInAllFrames();
510 break; 534 break;
511 case SettingsDelegate::AcceleratedCompositingChange: 535 case SettingsDelegate::AcceleratedCompositingChange:
512 updateAcceleratedCompositingSettings(); 536 updateAcceleratedCompositingSettings();
513 break; 537 break;
514 } 538 }
515 } 539 }
516 540
517 void Page::updateAcceleratedCompositingSettings() 541 void Page::updateAcceleratedCompositingSettings()
518 { 542 {
519 for (LocalFrame* frame = mainFrame(); frame; frame = frame->tree().traverseN ext()) { 543 for (Frame* frame = mainFrame(); frame; frame = frame->tree().traverseNext() ) {
520 if (FrameView* view = frame->view()) 544 if (!frame->isLocalFrame())
545 continue;
546 if (FrameView* view = toLocalFrame(frame)->view())
521 view->updateAcceleratedCompositingSettings(); 547 view->updateAcceleratedCompositingSettings();
522 } 548 }
523 } 549 }
524 550
525 void Page::didCommitLoad(LocalFrame* frame) 551 void Page::didCommitLoad(LocalFrame* frame)
526 { 552 {
527 lifecycleNotifier().notifyDidCommitLoad(frame); 553 lifecycleNotifier().notifyDidCommitLoad(frame);
528 if (m_mainFrame == frame) { 554 if (m_mainFrame == frame) {
529 useCounter().didCommitLoad(); 555 useCounter().didCommitLoad();
530 m_inspectorController->didCommitLoadForMainFrame(); 556 m_inspectorController->didCommitLoadForMainFrame();
(...skipping 22 matching lines...) Expand all
553 { 579 {
554 // Disable all agents prior to resetting the frame view. 580 // Disable all agents prior to resetting the frame view.
555 m_inspectorController->willBeDestroyed(); 581 m_inspectorController->willBeDestroyed();
556 582
557 m_mainFrame->setView(nullptr); 583 m_mainFrame->setView(nullptr);
558 584
559 allPages().remove(this); 585 allPages().remove(this);
560 if (ordinaryPages().contains(this)) 586 if (ordinaryPages().contains(this))
561 ordinaryPages().remove(this); 587 ordinaryPages().remove(this);
562 588
563 for (LocalFrame* frame = mainFrame(); frame; frame = frame->tree().traverseN ext()) 589 for (Frame* frame = mainFrame(); frame; frame = frame->tree().traverseNext() ) {
564 frame->loader().frameDetached(); 590 if (frame->isLocalFrame())
591 toLocalFrame(frame)->loader().frameDetached();
592 }
565 593
566 if (m_scrollingCoordinator) 594 if (m_scrollingCoordinator)
567 m_scrollingCoordinator->willBeDestroyed(); 595 m_scrollingCoordinator->willBeDestroyed();
568 596
569 #ifndef NDEBUG 597 #ifndef NDEBUG
570 pageCounter.decrement(); 598 pageCounter.decrement();
571 #endif 599 #endif
572 600
573 m_chrome->willBeDestroyed(); 601 m_chrome->willBeDestroyed();
574 m_mainFrame.clear(); 602 m_mainFrame.clear();
(...skipping 12 matching lines...) Expand all
587 , spellCheckerClient(0) 615 , spellCheckerClient(0)
588 , storageClient(0) 616 , storageClient(0)
589 { 617 {
590 } 618 }
591 619
592 Page::PageClients::~PageClients() 620 Page::PageClients::~PageClients()
593 { 621 {
594 } 622 }
595 623
596 } // namespace WebCore 624 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/page/InjectedStyleSheets.cpp ('k') | Source/core/page/PageAnimator.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698