 Chromium Code Reviews
 Chromium Code Reviews Issue 26792002:
  Reland: Reland: Implement new Blink IDL attribute [SetReference]  (Closed) 
  Base URL: svn://svn.chromium.org/blink/trunk
    
  
    Issue 26792002:
  Reland: Reland: Implement new Blink IDL attribute [SetReference]  (Closed) 
  Base URL: svn://svn.chromium.org/blink/trunk| OLD | NEW | 
|---|---|
| 1 /* | 1 /* | 
| 2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. | 
| 3 * Copyright (C) 2013 Apple Inc. All rights reserved. | 3 * Copyright (C) 2013 Apple Inc. All rights reserved. | 
| 4 * | 4 * | 
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without | 
| 6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions | 
| 7 * are met: | 7 * are met: | 
| 8 * | 8 * | 
| 9 * 1. Redistributions of source code must retain the above copyright | 9 * 1. Redistributions of source code must retain the above copyright | 
| 10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. | 
| (...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 200 if (!page->mainFrame()->spellChecker().isContinuousSpellCheckingEnabled()) | 200 if (!page->mainFrame()->spellChecker().isContinuousSpellCheckingEnabled()) | 
| 201 page->mainFrame()->spellChecker().toggleContinuousSpellChecking(); | 201 page->mainFrame()->spellChecker().toggleContinuousSpellChecking(); | 
| 202 if (page->mainFrame()->editor().isOverwriteModeEnabled()) | 202 if (page->mainFrame()->editor().isOverwriteModeEnabled()) | 
| 203 page->mainFrame()->editor().toggleOverwriteModeEnabled(); | 203 page->mainFrame()->editor().toggleOverwriteModeEnabled(); | 
| 204 } | 204 } | 
| 205 | 205 | 
| 206 Internals::Internals(Document* document) | 206 Internals::Internals(Document* document) | 
| 207 : ContextLifecycleObserver(document) | 207 : ContextLifecycleObserver(document) | 
| 208 , m_runtimeFlags(InternalRuntimeFlags::create()) | 208 , m_runtimeFlags(InternalRuntimeFlags::create()) | 
| 209 , m_scrollingCoordinator(document->page() ? document->page()->scrollingCoord inator() : 0) | 209 , m_scrollingCoordinator(document->page() ? document->page()->scrollingCoord inator() : 0) | 
| 210 , m_gcWithoutContextTimer(this, &Internals::garbageCollectV8WithoutContextTi merFired) | |
| 210 { | 211 { | 
| 211 } | 212 } | 
| 212 | 213 | 
| 213 Document* Internals::contextDocument() const | 214 Document* Internals::contextDocument() const | 
| 214 { | 215 { | 
| 215 return toDocument(executionContext()); | 216 return toDocument(executionContext()); | 
| 216 } | 217 } | 
| 217 | 218 | 
| 218 Frame* Internals::frame() const | 219 Frame* Internals::frame() const | 
| 219 { | 220 { | 
| (...skipping 2013 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2233 if (!sharedContext) | 2234 if (!sharedContext) | 
| 2234 return false; | 2235 return false; | 
| 2235 sharedContext->extensions()->loseContextCHROMIUM(Extensions3D::GUILTY_CONTEX T_RESET_ARB, Extensions3D::INNOCENT_CONTEXT_RESET_ARB); | 2236 sharedContext->extensions()->loseContextCHROMIUM(Extensions3D::GUILTY_CONTEX T_RESET_ARB, Extensions3D::INNOCENT_CONTEXT_RESET_ARB); | 
| 2236 // To prevent tests that call loseSharedGraphicsContext3D from being | 2237 // To prevent tests that call loseSharedGraphicsContext3D from being | 
| 2237 // flaky, we call finish so that the context is guaranteed to be lost | 2238 // flaky, we call finish so that the context is guaranteed to be lost | 
| 2238 // synchronously (i.e. before returning). | 2239 // synchronously (i.e. before returning). | 
| 2239 sharedContext->finish(); | 2240 sharedContext->finish(); | 
| 2240 return true; | 2241 return true; | 
| 2241 } | 2242 } | 
| 2242 | 2243 | 
| 2244 void Internals::garbageCollectV8WithoutContext() | |
| 
haraken
2013/10/29 01:14:53
garbageCollectV8WithoutContext => collectGarbageWi
 | |
| 2245 { | |
| 2246 m_gcWithoutContextTimer.startOneShot(0); | |
| 
haraken
2013/10/29 01:14:53
Why do you need a timer?
 | |
| 2243 } | 2247 } | 
| 2248 | |
| 2249 void Internals::garbageCollectV8WithoutContextTimerFired(Timer<Internals>*) | |
| 2250 { | |
| 2251 const int largeEnoughValueToTriggerMajorGC = 10000; | |
| 2252 for (int i = 0; i < 100; ++i) | |
| 2253 v8::V8::IdleNotification(largeEnoughValueToTriggerMajorGC); | |
| 
haraken
2013/10/29 01:14:53
This is not a reliable way to trigger GC. Instead
 | |
| 2254 } | |
| 2255 | |
| 2256 } | |
| OLD | NEW |