| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2008, 2009 Google Inc. All rights reserved. | 2 * Copyright (C) 2008, 2009 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 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 146 } | 146 } |
| 147 | 147 |
| 148 void V8Proxy::reportUnsafeAccessTo(Frame* target) | 148 void V8Proxy::reportUnsafeAccessTo(Frame* target) |
| 149 { | 149 { |
| 150 ASSERT(target); | 150 ASSERT(target); |
| 151 Document* targetDocument = target->document(); | 151 Document* targetDocument = target->document(); |
| 152 if (!targetDocument) | 152 if (!targetDocument) |
| 153 return; | 153 return; |
| 154 | 154 |
| 155 Frame* source = V8Proxy::retrieveFrameForEnteredContext(); | 155 Frame* source = V8Proxy::retrieveFrameForEnteredContext(); |
| 156 if (!source || !source->document()) | 156 if (!source) |
| 157 return; // Ignore error if the source document is gone. | 157 return; |
| 158 Page* page = source->page(); |
| 159 if (!page) |
| 160 return; |
| 158 | 161 |
| 159 Document* sourceDocument = source->document(); | 162 Document* sourceDocument = source->document(); |
| 163 if (!sourceDocument) |
| 164 return; // Ignore error if the source document is gone. |
| 160 | 165 |
| 161 // FIXME: This error message should contain more specifics of why the same | 166 // FIXME: This error message should contain more specifics of why the same |
| 162 // origin check has failed. | 167 // origin check has failed. |
| 163 String str = makeString("Unsafe JavaScript attempt to access frame with URL
", targetDocument->url().string(), | 168 String str = makeString("Unsafe JavaScript attempt to access frame with URL
", targetDocument->url().string(), |
| 164 " from frame with URL ", sourceDocument->url().strin
g(), ". Domains, protocols and ports must match.\n"); | 169 " from frame with URL ", sourceDocument->url().strin
g(), ". Domains, protocols and ports must match.\n"); |
| 165 | 170 |
| 166 // Build a console message with fake source ID and line number. | 171 // Build a console message with fake source ID and line number. |
| 167 const String kSourceID = ""; | 172 const String kSourceID = ""; |
| 168 const int kLineNumber = 1; | 173 const int kLineNumber = 1; |
| 169 | 174 |
| 170 // NOTE: Safari prints the message in the target page, but it seems like | 175 // NOTE: Safari prints the message in the target page, but it seems like |
| 171 // it should be in the source page. Even for delayed messages, we put it in | 176 // it should be in the source page. Even for delayed messages, we put it in |
| 172 // the source page. | 177 // the source page. |
| 173 addMessageToConsole(source->page(), str, kSourceID, kLineNumber); | 178 addMessageToConsole(page, str, kSourceID, kLineNumber); |
| 174 } | 179 } |
| 175 | 180 |
| 176 static void handleFatalErrorInV8() | 181 static void handleFatalErrorInV8() |
| 177 { | 182 { |
| 178 // FIXME: We temporarily deal with V8 internal error situations | 183 // FIXME: We temporarily deal with V8 internal error situations |
| 179 // such as out-of-memory by crashing the renderer. | 184 // such as out-of-memory by crashing the renderer. |
| 180 CRASH(); | 185 CRASH(); |
| 181 } | 186 } |
| 182 | 187 |
| 183 V8Proxy::V8Proxy(Frame* frame) | 188 V8Proxy::V8Proxy(Frame* frame) |
| (...skipping 637 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 821 #if ENABLE(WORKERS) | 826 #if ENABLE(WORKERS) |
| 822 } else if (context->isWorkerContext()) { | 827 } else if (context->isWorkerContext()) { |
| 823 if (WorkerContextExecutionProxy* proxy = static_cast<WorkerContext*>(con
text)->script()->proxy()) | 828 if (WorkerContextExecutionProxy* proxy = static_cast<WorkerContext*>(con
text)->script()->proxy()) |
| 824 return proxy->context(); | 829 return proxy->context(); |
| 825 #endif | 830 #endif |
| 826 } | 831 } |
| 827 return v8::Local<v8::Context>(); | 832 return v8::Local<v8::Context>(); |
| 828 } | 833 } |
| 829 | 834 |
| 830 } // namespace WebCore | 835 } // namespace WebCore |
| OLD | NEW |