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

Side by Side Diff: ios/web/web_state/js/page_script_util.mm

Issue 2741343015: Add a BrowserState* parameter to GetEarlyPageScript(). (Closed)
Patch Set: Apply review comments. Created 3 years, 9 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #import "ios/web/web_state/js/page_script_util.h" 5 #import "ios/web/web_state/js/page_script_util.h"
6 6
7 #include "base/files/file_path.h" 7 #include "base/files/file_path.h"
8 #include "base/files/file_util.h" 8 #include "base/files/file_util.h"
9 #include "base/mac/bundle_locations.h" 9 #include "base/mac/bundle_locations.h"
10 #include "base/strings/sys_string_conversions.h" 10 #include "base/strings/sys_string_conversions.h"
(...skipping 14 matching lines...) Expand all
25 << base::SysNSStringToUTF8(script_file_name) << ".js"; 25 << base::SysNSStringToUTF8(script_file_name) << ".js";
26 NSError* error = nil; 26 NSError* error = nil;
27 NSString* content = [NSString stringWithContentsOfFile:path 27 NSString* content = [NSString stringWithContentsOfFile:path
28 encoding:NSUTF8StringEncoding 28 encoding:NSUTF8StringEncoding
29 error:&error]; 29 error:&error];
30 DCHECK(!error) << "Error fetching script: " << [error.description UTF8String]; 30 DCHECK(!error) << "Error fetching script: " << [error.description UTF8String];
31 DCHECK(content); 31 DCHECK(content);
32 return content; 32 return content;
33 } 33 }
34 34
35 NSString* GetEarlyPageScript() { 35 NSString* GetEarlyPageScript(BrowserState* browser_state) {
36 DCHECK(GetWebClient()); 36 DCHECK(GetWebClient());
37 NSString* embedder_page_script = GetWebClient()->GetEarlyPageScript(); 37 NSString* embedder_page_script =
38 GetWebClient()->GetEarlyPageScript(browser_state);
38 DCHECK(embedder_page_script); 39 DCHECK(embedder_page_script);
39 40
40 // Make sure that script is injected only once. For example, content of 41 // Make sure that script is injected only once. For example, content of
41 // WKUserScript can be injected into the same page multiple times 42 // WKUserScript can be injected into the same page multiple times
42 // without notifying WKNavigationDelegate (e.g. after window.document.write 43 // without notifying WKNavigationDelegate (e.g. after window.document.write
43 // JavaScript call). Injecting the script multiple times invalidates the 44 // JavaScript call). Injecting the script multiple times invalidates the
44 // __gCrWeb.windowId variable and will break the ability to send messages from 45 // __gCrWeb.windowId variable and will break the ability to send messages from
45 // JS to the native code. Wrapping injected script into "if (!injected)" check 46 // JS to the native code. Wrapping injected script into "if (!injected)" check
46 // prevents multiple injections into the same page. 47 // prevents multiple injections into the same page.
47 NSString* kScriptTemplate = @"if (typeof __gCrWeb !== 'object') { %@; %@ }"; 48 NSString* kScriptTemplate = @"if (typeof __gCrWeb !== 'object') { %@; %@ }";
48 return [NSString stringWithFormat:kScriptTemplate, 49 return [NSString stringWithFormat:kScriptTemplate,
49 GetPageScript(@"web_bundle"), 50 GetPageScript(@"web_bundle"),
50 embedder_page_script]; 51 embedder_page_script];
51 } 52 }
52 53
53 } // namespace web 54 } // namespace web
OLDNEW
« no previous file with comments | « ios/web/web_state/js/page_script_util.h ('k') | ios/web/web_state/js/page_script_util_unittest.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698