OLD | NEW |
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 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
109 , m_backForwardClient(pageClients.backForwardClient) | 109 , m_backForwardClient(pageClients.backForwardClient) |
110 , m_editorClient(pageClients.editorClient) | 110 , m_editorClient(pageClients.editorClient) |
111 , m_validationMessageClient(0) | 111 , m_validationMessageClient(0) |
112 , m_sharedWorkerRepositoryClient(0) | 112 , m_sharedWorkerRepositoryClient(0) |
113 , m_subframeCount(0) | 113 , m_subframeCount(0) |
114 , m_openedByDOM(false) | 114 , m_openedByDOM(false) |
115 , m_tabKeyCyclesThroughElements(true) | 115 , m_tabKeyCyclesThroughElements(true) |
116 , m_defersLoading(false) | 116 , m_defersLoading(false) |
117 , m_pageScaleFactor(1) | 117 , m_pageScaleFactor(1) |
118 , m_deviceScaleFactor(1) | 118 , m_deviceScaleFactor(1) |
119 , m_didLoadUserStyleSheet(false) | |
120 , m_group(0) | 119 , m_group(0) |
121 , m_timerAlignmentInterval(DOMTimer::visiblePageAlignmentInterval()) | 120 , m_timerAlignmentInterval(DOMTimer::visiblePageAlignmentInterval()) |
122 , m_visibilityState(PageVisibilityStateVisible) | 121 , m_visibilityState(PageVisibilityStateVisible) |
123 , m_isCursorVisible(true) | 122 , m_isCursorVisible(true) |
124 #ifndef NDEBUG | 123 #ifndef NDEBUG |
125 , m_isPainting(false) | 124 , m_isPainting(false) |
126 #endif | 125 #endif |
127 , m_console(PageConsole::create(this)) | 126 , m_console(PageConsole::create(this)) |
128 { | 127 { |
129 ASSERT(m_editorClient); | 128 ASSERT(m_editorClient); |
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
380 void Page::setPagination(const Pagination& pagination) | 379 void Page::setPagination(const Pagination& pagination) |
381 { | 380 { |
382 if (m_pagination == pagination) | 381 if (m_pagination == pagination) |
383 return; | 382 return; |
384 | 383 |
385 m_pagination = pagination; | 384 m_pagination = pagination; |
386 | 385 |
387 setNeedsRecalcStyleInAllFrames(); | 386 setNeedsRecalcStyleInAllFrames(); |
388 } | 387 } |
389 | 388 |
390 void Page::userStyleSheetLocationChanged() | |
391 { | |
392 // FIXME: Eventually we will move to a model of just being handed the sheet | |
393 // text instead of loading the URL ourselves. | |
394 KURL url = m_settings->userStyleSheetLocation(); | |
395 | |
396 m_didLoadUserStyleSheet = false; | |
397 m_userStyleSheet = String(); | |
398 | |
399 // Data URLs with base64-encoded UTF-8 style sheets are common. We can proce
ss them | |
400 // synchronously and avoid using a loader. | |
401 if (url.protocolIsData() && url.string().startsWith("data:text/css;charset=u
tf-8;base64,")) { | |
402 m_didLoadUserStyleSheet = true; | |
403 | |
404 Vector<char> styleSheetAsUTF8; | |
405 if (base64Decode(decodeURLEscapeSequences(url.string().substring(35)), s
tyleSheetAsUTF8, isSpaceOrNewline)) | |
406 m_userStyleSheet = String::fromUTF8(styleSheetAsUTF8.data(), styleSh
eetAsUTF8.size()); | |
407 } | |
408 | |
409 for (Frame* frame = mainFrame(); frame; frame = frame->tree().traverseNext()
) { | |
410 if (frame->document()) | |
411 frame->document()->styleEngine()->updatePageUserSheet(); | |
412 } | |
413 } | |
414 | |
415 const String& Page::userStyleSheet() const | |
416 { | |
417 return m_userStyleSheet; | |
418 } | |
419 | |
420 void Page::allVisitedStateChanged(PageGroup* group) | 389 void Page::allVisitedStateChanged(PageGroup* group) |
421 { | 390 { |
422 ASSERT(group); | 391 ASSERT(group); |
423 if (!allPages) | 392 if (!allPages) |
424 return; | 393 return; |
425 | 394 |
426 HashSet<Page*>::iterator pagesEnd = allPages->end(); | 395 HashSet<Page*>::iterator pagesEnd = allPages->end(); |
427 for (HashSet<Page*>::iterator it = allPages->begin(); it != pagesEnd; ++it)
{ | 396 for (HashSet<Page*>::iterator it = allPages->begin(); it != pagesEnd; ++it)
{ |
428 Page* page = *it; | 397 Page* page = *it; |
429 if (page->m_group != group) | 398 if (page->m_group != group) |
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
557 , inspectorClient(0) | 526 , inspectorClient(0) |
558 , backForwardClient(0) | 527 , backForwardClient(0) |
559 { | 528 { |
560 } | 529 } |
561 | 530 |
562 Page::PageClients::~PageClients() | 531 Page::PageClients::~PageClients() |
563 { | 532 { |
564 } | 533 } |
565 | 534 |
566 } // namespace WebCore | 535 } // namespace WebCore |
OLD | NEW |